@cloudflare/realtimekit 1.2.4-staging.1 → 1.2.4-staging.3

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/index.cjs.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";var tv=Object.defineProperty,sv=Object.defineProperties;var rv=Object.getOwnPropertyDescriptors;var Jc=Object.getOwnPropertySymbols,iv=Object.getPrototypeOf,Qh=Object.prototype.hasOwnProperty,Xh=Object.prototype.propertyIsEnumerable,nv=Reflect.get;var Zh=Math.pow,Zl=(s,t,e)=>t in s?tv(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,D=(s,t)=>{for(var e in t||(t={}))Qh.call(t,e)&&Zl(s,e,t[e]);if(Jc)for(var e of Jc(t))Xh.call(t,e)&&Zl(s,e,t[e]);return s},H=(s,t)=>sv(s,rv(t));var io=(s,t)=>{var e={};for(var r in s)Qh.call(s,r)&&t.indexOf(r)<0&&(e[r]=s[r]);if(s!=null&&Jc)for(var r of Jc(s))t.indexOf(r)<0&&Xh.call(s,r)&&(e[r]=s[r]);return e};var h=(s,t,e)=>(Zl(s,typeof t!="symbol"?t+"":t,e),e),eu=(s,t,e)=>{if(!t.has(s))throw TypeError("Cannot "+e)};var n=(s,t,e)=>(eu(s,t,"read from private field"),e?e.call(s):t.get(s)),m=(s,t,e)=>{if(t.has(s))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(s):t.set(s,e)},f=(s,t,e,r)=>(eu(s,t,"write to private field"),r?r.call(s,e):t.set(s,e),e);var U=(s,t,e)=>(eu(s,t,"access private method"),e),ep=(s,t,e)=>nv(iv(s),e,t);var u=(s,t,e)=>new Promise((r,i)=>{var a=d=>{try{c(e.next(d))}catch(l){i(l)}},o=d=>{try{c(e.throw(d))}catch(l){i(l)}},c=d=>d.done?r(d.value):Promise.resolve(d.value).then(a,o);c((e=e.apply(s,t)).next())});const Tr=require("uuid"),Kg=require("bowser"),y=require("@protobuf-ts/runtime"),av=require("worker-timers"),ov=require("sdp-transform");function zg(s){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const e in s)if(e!=="default"){const r=Object.getOwnPropertyDescriptor(s,e);Object.defineProperty(t,e,r.get?r:{enumerable:!0,get:()=>s[e]})}}return t.default=s,Object.freeze(t)}const id=zg(av),hs=zg(ov);function cv(s){const{length:t}=this,e=s>=0?s:t+s;return e<0||e>=t?void 0:this[e]}Array.prototype.at||Object.assign(Array.prototype,{at:cv});function dv(s){const{length:t}=this,e=s>=0?s:t+s;return e<0||e>=t?void 0:this[e]}String.prototype.at||Object.assign(String.prototype,{at:dv});const lv=s=>{!navigator.isReactNative&&typeof window!="undefined"&&(window.addEventListener("error",t=>{var e;!((e=t.filename)!=null&&e.includes("localhost"))&&t.lineno!==0&&s.error("window::error",{error:t.error},!0)}),window.addEventListener("unhandledrejection",t=>{var e,r,i,a,o,c,d,l;s.error("window::unhandledrejection",{error:t==null?void 0:t.reason,networkCall:{url:(r=(e=t==null?void 0:t.reason)==null?void 0:e.config)==null?void 0:r.url,baseURL:(a=(i=t==null?void 0:t.reason)==null?void 0:i.config)==null?void 0:a.baseURL,method:(c=(o=t==null?void 0:t.reason)==null?void 0:o.config)==null?void 0:c.method,status:(d=t==null?void 0:t.reason)==null?void 0:d.status,statusText:(l=t==null?void 0:t.reason)==null?void 0:l.statusText}},!0)}),window.addEventListener("offline",()=>{s.info("window::offline")}),window.addEventListener("online",()=>{s.info("window::online")}))},Ro="chrome",Yg="opera",Qg="firefox",Xg="iexplorer",Zg="safari",em="nwjs",tm="electron",sm="react-native",uh="unknown",yd={Chrome:Ro,Chromium:Ro,Opera:Yg,Firefox:Qg,"Internet Explorer":Xg,Safari:Zg};function uv(){const{userAgent:s}=navigator,t={name:uh,version:void 0};if(s.match(/Chrome/)&&!s.match(/Edge/))if(s.match(/Edg(A?)/)){const e=s.match(/Chrome\/([\d.]+)/)[1];Number.parseInt(e,10)>72&&(t.name=Ro,t.version=e)}else t.name=Ro,t.version=s.match(/Chrome\/([\d.]+)/)[1];return t}function hv(){const{userAgent:s}=navigator;if(s.match(/Electron/)){const t=s.match(/Electron\/([\d.]+)/)[1];return{name:tm,version:t}}return null}function pv(){const{userAgent:s}=navigator;if(s.match(/JitsiMeetNW/)){const t=s.match(/JitsiMeetNW\/([\d.]+)/)[1];return{name:em,version:t}}}function gv(){const s=navigator.userAgent.match(/\b(react[ \t_-]*native)(?:\/(\S+))?/i);let t;if(s||navigator.product==="ReactNative")return s&&s.length>2&&(s[1],t=s[2]),t||(t="unknown"),{name:sm,version:t}}function mv(s){let t;const e=[gv,hv,pv];for(let i=0;i<e.length;i+=1)if(t=e[i](),t)return t;const r=s.getBrowserName();return r in yd?{name:yd[r],version:s.getBrowserVersion()}:(t=uv(),t||{name:uh,version:void 0})}class fv{constructor(){h(this,"_bowser");h(this,"_name");h(this,"_version");h(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(t){let e,r;if(this._bowser=Kg.getParser(navigator.userAgent),typeof t=="undefined"){const i=mv(this._bowser);e=i.name,r=i.version}else t.name in yd?(e=yd[t.name],r=t.version):(e=uh,r=void 0);this._name=e,this._version=r}getName(){return this._name}isChrome(){return this._name===Ro}isOpera(){return this._name===Yg}isFirefox(){return this._name===Qg}isIExplorer(){return this._name===Xg}isSafari(){return this._name===Zg}isNWJS(){return this._name===em}isElectron(){return this._name===tm}isReactNative(){return this._name===sm||navigator.isReactNative===!0}getVersion(){return this._version}isMobile(){return this._bowser.getPlatformType()==="mobile"}_checkCondition(t){if(this._version)return this._bowser.satisfies(t)}isVersionGreaterThan(t){return this._checkCondition({[this._name]:`>${t}`})}isVersionLessThan(t){return this._checkCondition({[this._name]:`<${t}`})}isVersionEqualTo(t){return this._checkCondition({[this._name]:`~${t}`})}}class Tv extends fv{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 t=new ReadableStream;try{return window.postMessage(t,"*",[t]),!0}catch(e){return!1}}supportsAudioRed(){return Boolean(window.RTCRtpSender&&window.RTCRtpSender.getCapabilities&&window.RTCRtpSender.getCapabilities("audio").codecs.some(t=>t.mimeType==="audio/red")&&window.RTCRtpReceiver&&window.RTCRtpReceiver.getCapabilities&&window.RTCRtpReceiver.getCapabilities("audio").codecs.some(t=>t.mimeType==="audio/red"))}supportsSdpSemantics(){return this.isChromiumBased()}_getChromiumBasedVersion(){if(this.isChromiumBased()){if(this.isNWJS())return Number.parseInt(process.versions.chromium,10);const t=navigator.userAgent;if(t.match(/Chrome/))return Number.parseInt(t.match(/Chrome\/([\d.]+)/)[1],10)}return-1}isIOSMobile(){return this.isMobile&&this._bowser.getOSName()==="iOS"}}const Se=new Tv;var lt={},vv={get exports(){return lt},set exports(s){lt=s}},An=typeof Reflect=="object"?Reflect:null,tp=An&&typeof An.apply=="function"?An.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)},nd;An&&typeof An.ownKeys=="function"?nd=An.ownKeys:Object.getOwnPropertySymbols?nd=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:nd=function(t){return Object.getOwnPropertyNames(t)};function yv(s){console&&console.warn&&console.warn(s)}var rm=Number.isNaN||function(t){return t!==t};function oe(){oe.init.call(this)}vv.exports=oe;lt.once=_v;oe.EventEmitter=oe;oe.prototype._events=void 0;oe.prototype._eventsCount=0;oe.prototype._maxListeners=void 0;var sp=10;function kl(s){if(typeof s!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof s)}Object.defineProperty(oe,"defaultMaxListeners",{enumerable:!0,get:function(){return sp},set:function(s){if(typeof s!="number"||s<0||rm(s))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+s+".");sp=s}});oe.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};oe.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||rm(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 im(s){return s._maxListeners===void 0?oe.defaultMaxListeners:s._maxListeners}oe.prototype.getMaxListeners=function(){return im(this)};oe.prototype.emit=function(t){for(var e=[],r=1;r<arguments.length;r++)e.push(arguments[r]);var i=t==="error",a=this._events;if(a!==void 0)i=i&&a.error===void 0;else if(!i)return!1;if(i){var o;if(e.length>0&&(o=e[0]),o instanceof Error)throw o;var c=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw c.context=o,c}var d=a[t];if(d===void 0)return!1;if(typeof d=="function")tp(d,this,e);else for(var l=d.length,p=dm(d,l),r=0;r<l;++r)tp(p[r],this,e);return!0};function nm(s,t,e,r){var i,a,o;if(kl(e),a=s._events,a===void 0?(a=s._events=Object.create(null),s._eventsCount=0):(a.newListener!==void 0&&(s.emit("newListener",t,e.listener?e.listener:e),a=s._events),o=a[t]),o===void 0)o=a[t]=e,++s._eventsCount;else if(typeof o=="function"?o=a[t]=r?[e,o]:[o,e]:r?o.unshift(e):o.push(e),i=im(s),i>0&&o.length>i&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=s,c.type=t,c.count=o.length,yv(c)}return s}oe.prototype.addListener=function(t,e){return nm(this,t,e,!1)};oe.prototype.on=oe.prototype.addListener;oe.prototype.prependListener=function(t,e){return nm(this,t,e,!0)};function Sv(){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 am(s,t,e){var r={fired:!1,wrapFn:void 0,target:s,type:t,listener:e},i=Sv.bind(r);return i.listener=e,r.wrapFn=i,i}oe.prototype.once=function(t,e){return kl(e),this.on(t,am(this,t,e)),this};oe.prototype.prependOnceListener=function(t,e){return kl(e),this.prependListener(t,am(this,t,e)),this};oe.prototype.removeListener=function(t,e){var r,i,a,o,c;if(kl(e),i=this._events,i===void 0)return this;if(r=i[t],r===void 0)return this;if(r===e||r.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,r.listener||e));else if(typeof r!="function"){for(a=-1,o=r.length-1;o>=0;o--)if(r[o]===e||r[o].listener===e){c=r[o].listener,a=o;break}if(a<0)return this;a===0?r.shift():Ev(r,a),r.length===1&&(i[t]=r[0]),i.removeListener!==void 0&&this.emit("removeListener",t,c||e)}return this};oe.prototype.off=oe.prototype.removeListener;oe.prototype.removeAllListeners=function(t){var e,r,i;if(r=this._events,r===void 0)return this;if(r.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):r[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete r[t]),this;if(arguments.length===0){var a=Object.keys(r),o;for(i=0;i<a.length;++i)o=a[i],o!=="removeListener"&&this.removeAllListeners(o);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=r[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(i=e.length-1;i>=0;i--)this.removeListener(t,e[i]);return this};function om(s,t,e){var r=s._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?e?[i.listener||i]:[i]:e?Pv(i):dm(i,i.length)}oe.prototype.listeners=function(t){return om(this,t,!0)};oe.prototype.rawListeners=function(t){return om(this,t,!1)};oe.listenerCount=function(s,t){return typeof s.listenerCount=="function"?s.listenerCount(t):cm.call(s,t)};oe.prototype.listenerCount=cm;function cm(s){var t=this._events;if(t!==void 0){var e=t[s];if(typeof e=="function")return 1;if(e!==void 0)return e.length}return 0}oe.prototype.eventNames=function(){return this._eventsCount>0?nd(this._events):[]};function dm(s,t){for(var e=new Array(t),r=0;r<t;++r)e[r]=s[r];return e}function Ev(s,t){for(;t+1<s.length;t++)s[t]=s[t+1];s.pop()}function Pv(s){for(var t=new Array(s.length),e=0;e<t.length;++e)t[e]=s[e].listener||s[e];return t}function _v(s,t){return new Promise(function(e,r){function i(o){s.removeListener(t,a),r(o)}function a(){typeof s.removeListener=="function"&&s.removeListener("error",i),e([].slice.call(arguments))}lm(s,t,a,{once:!0}),t!=="error"&&Cv(s,i,{once:!0})})}function Cv(s,t,e){typeof s.on=="function"&&lm(s,"error",t,e)}function lm(s,t,e,r){if(typeof s.on=="function")r.once?s.once(t,e):s.on(t,e);else if(typeof s.addEventListener=="function")s.addEventListener(t,function i(a){r.once&&s.removeEventListener(t,i),e(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof s)}var z;(function(s){s[s.MAJOR_EVENT=0]="MAJOR_EVENT",s[s.MINOR_EVENT=1]="MINOR_EVENT"})(z||(z={}));var O;(function(s){s.PRECALL_TEST_BEGIN="precall_begin",s.PRECALL_TEST_COMPLETE="precall_end",s.CALL_JOIN_BEGIN="call_join",s.NET_QUALITY_TEST_BEGIN="net_quality_test_begin",s.NET_QUALITY_TEST_END="net_quality_test_end",s.WEBSOCKET_CONNECTED="websocket_connected",s.TRANSPORT_CONNECTED="transport_connected",s.AUDIO_ON="audio_on",s.AUDIO_OFF="audio_off",s.VIDEO_ON="video_on",s.VIDEO_OFF="video_off",s.PARTICIPANT_ROLE="participant_role",s.PING_STAT="ping_stat",s.DISCONNECT="disconnect",s.RECONNECT_ATTEMPT="reconnect_attempt",s.SCREENSHARE_START_REQUESTED="screenshare_start_requested",s.SCREENSHARE_STARTED="screenshare_started",s.SCREENSHARE_STOPPED="screenshare_stopped",s.TAB_CHANGE="tab_change",s.BROWSER_BACKGROUNDED="browser_backgrounded",s.BROWSER_FOREGROUNDED="browser_foregrounded",s.DOMINANT_SPEAKER="dominant_speaker",s.AUDIO_DEVICES_UPDATES="audio_devices_updates",s.VIDEO_DEVICES_UPDATES="video_devices_updates",s.SPEAKER_DEVICES_UPDATES="speaker_devices_updates",s.SELECTED_MICROHPONE_UPDATE="selected_microphone_update",s.SELECTED_CAMERA_UPDATE="selected_camera_update",s.SELECTED_SPEAKER_UPDATE="selected_speaker_update",s.EXPECTED_VIDEO_RESOLUTION="expected_video_resolution",s.EXPECTED_SCREENSHARE_RESOLUTION="expected_screenshare_resolution",s.MEDIA_PERMISSION="media_permission",s.LEGACY_SWITCH="legacy_switch",s.AUDIO_PLAY_FAILED="audio_play_failed",s.VIDEO_PLAY_FAILED="video_play_failed",s.AUDIO_TRACK_MUTED="audio_track_muted",s.VIDEO_TRACK_MUTED="video_track_muted",s.IVS_PLAYER_REBUFFERING="ivs_player_rebuffering",s.IVS_PLAYER_AUDIO_BLOCKED="ivs_player_audio_blocked",s.IVS_PLAYER_PLAYBACK_BLOCKED="ivs_player_playback_blocked",s.IVS_PLAYER_ERROR="ivs_player_error",s.IVS_PLAYER_RECOVERABLE_ERROR="ivs_player_recoverable_error",s.IVS_PLAYER_WORKER_ERROR="ivs_player_worker_error",s.IVS_PLAYER_NETWORK_UNAVAILABLE="ivs_player_network_unavailable",s.LIVESTREAM_LATENCY="livestream_latency",s.IVS_PLAYER_ANALYTICS_EVENT="ivs_player_analytics_event",s.IVS_PLAYER_PLAYBACK_RATE_CHANGED="ivs_player_playback_rate_changed",s.IVS_PLAYER_QUALITY_CHANGED="ivs_player_quality_changed",s.IVS_PLAYER_INITIALIZED="ivs_player_initialized"})(O||(O={}));const wv=new Map([[O.PRECALL_TEST_BEGIN,z.MINOR_EVENT],[O.PRECALL_TEST_COMPLETE,z.MINOR_EVENT],[O.CALL_JOIN_BEGIN,z.MAJOR_EVENT],[O.NET_QUALITY_TEST_BEGIN,z.MINOR_EVENT],[O.NET_QUALITY_TEST_END,z.MINOR_EVENT],[O.WEBSOCKET_CONNECTED,z.MINOR_EVENT],[O.TRANSPORT_CONNECTED,z.MAJOR_EVENT],[O.AUDIO_ON,z.MINOR_EVENT],[O.AUDIO_OFF,z.MINOR_EVENT],[O.VIDEO_ON,z.MINOR_EVENT],[O.VIDEO_OFF,z.MINOR_EVENT],[O.PARTICIPANT_ROLE,z.MINOR_EVENT],[O.PING_STAT,z.MAJOR_EVENT],[O.DISCONNECT,z.MAJOR_EVENT],[O.RECONNECT_ATTEMPT,z.MAJOR_EVENT],[O.SCREENSHARE_START_REQUESTED,z.MINOR_EVENT],[O.SCREENSHARE_STARTED,z.MINOR_EVENT],[O.SCREENSHARE_STOPPED,z.MINOR_EVENT],[O.TAB_CHANGE,z.MINOR_EVENT],[O.BROWSER_BACKGROUNDED,z.MINOR_EVENT],[O.BROWSER_FOREGROUNDED,z.MINOR_EVENT],[O.DOMINANT_SPEAKER,z.MINOR_EVENT],[O.AUDIO_DEVICES_UPDATES,z.MINOR_EVENT],[O.VIDEO_DEVICES_UPDATES,z.MINOR_EVENT],[O.SPEAKER_DEVICES_UPDATES,z.MINOR_EVENT],[O.SELECTED_MICROHPONE_UPDATE,z.MINOR_EVENT],[O.SELECTED_CAMERA_UPDATE,z.MINOR_EVENT],[O.SELECTED_SPEAKER_UPDATE,z.MINOR_EVENT],[O.MEDIA_PERMISSION,z.MINOR_EVENT],[O.LEGACY_SWITCH,z.MINOR_EVENT],[O.AUDIO_PLAY_FAILED,z.MINOR_EVENT],[O.VIDEO_PLAY_FAILED,z.MINOR_EVENT],[O.AUDIO_TRACK_MUTED,z.MINOR_EVENT],[O.VIDEO_TRACK_MUTED,z.MINOR_EVENT],[O.IVS_PLAYER_REBUFFERING,z.MAJOR_EVENT],[O.IVS_PLAYER_AUDIO_BLOCKED,z.MAJOR_EVENT],[O.IVS_PLAYER_PLAYBACK_BLOCKED,z.MAJOR_EVENT],[O.IVS_PLAYER_ERROR,z.MAJOR_EVENT],[O.IVS_PLAYER_RECOVERABLE_ERROR,z.MAJOR_EVENT],[O.IVS_PLAYER_WORKER_ERROR,z.MAJOR_EVENT],[O.IVS_PLAYER_NETWORK_UNAVAILABLE,z.MAJOR_EVENT],[O.LIVESTREAM_LATENCY,z.MAJOR_EVENT],[O.IVS_PLAYER_ANALYTICS_EVENT,z.MINOR_EVENT],[O.IVS_PLAYER_PLAYBACK_RATE_CHANGED,z.MINOR_EVENT],[O.IVS_PLAYER_QUALITY_CHANGED,z.MINOR_EVENT],[O.IVS_PLAYER_INITIALIZED,z.MINOR_EVENT],[O.EXPECTED_VIDEO_RESOLUTION,z.MINOR_EVENT],[O.EXPECTED_SCREENSHARE_RESOLUTION,z.MINOR_EVENT]]);class Rv{constructor(){h(this,"events");this.events=[]}add(t){this.events.push(t)}flush(){return{entries:this.events.splice(0,25)}}}class bv extends lt{constructor({logger:e,peerId:r,apiHostnames:i}){super();h(this,"logger");h(this,"peerId");h(this,"eventStore");h(this,"apiEndpoint");this.logger=e,this.peerId=r,this.apiEndpoint=`https://${i.daCollector}/api/v1/message`,this.eventStore=new Rv}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(a){return this.logger.error("callStats::sendEventsChunkToServer::catch",{error:a}),(i=e.entries)==null||i.forEach(o=>{this.eventStore.add(o)}),!1}})}callEvent(e){e.timestamp=new Date,this.eventStore.add(e),this.emit(e.event,e.metaData),wv.get(e.event)===z.MAJOR_EVENT&&this.flush()}flush(){return u(this,null,function*(){var r;const e=this.eventStore.flush();return(r=e==null?void 0:e.entries)!=null&&r.length?(yield this.sendEventsChunkToServer(e),!0):!1})}}var rp;(function(s){s.CHROMIUM="chromum",s.FIREFOX="firefox",s.SAFARI="safari"})(rp||(rp={}));const yo={DEVEL:"devel",PREPROD:"preprod",PROD:"prod"};var Kt;(function(s){s.AUDIO="AUDIO",s.VIDEO="VIDEO",s.SPEAKER="SPEAKER",s.SCREENSHARE="SCREENSHARE"})(Kt||(Kt={}));var ip;(function(s){s[s.INIT=0]="INIT",s[s.ACCEPTED=1]="ACCEPTED",s[s.DENIED=2]="DENIED",s[s.SYS_DENIED=3]="SYS_DENIED",s[s.FAILED=4]="FAILED",s[s.NOTFOUND=5]="NOTFOUND",s[s.NOT_APPLICABLE=6]="NOT_APPLICABLE"})(ip||(ip={}));function Zr(s){return s?s.split(".").slice(0,2).concat(["0","0"]).join("."):""}function Sd({packetsLost:s,packetsSent:t}){return t>0?s*100/t:0}function Ed({packetsLost:s,packetsReceived:t}){return t+s>0?s*100/(t+s):0}const um=240,hm=720,pm=8,gm=3,Il=10,Al=.02,Ml=.03;function fr({stat:s,weight:t,rangeMin:e,rangeMax:r,rangeRankingDirection:i}){return s==null?t:e===r?i==="UP"?s<=e?t:0:s>=r?t:0:i==="UP"?(1-Math.max(Math.min(r,Math.abs(s))-e,0)/(r-e))*t:i==="DOWN"?Math.max(Math.min(r,Math.abs(s))-e,0)/(r-e)*t:t}function mm({isLowQualityVideo:s,isVideoStuck:t,isVideoLagging:e,jitterQuality:r,packetsLostQuality:i}){const a=.8*((s?.85:1)*(e?.7:1)*(t?.5:1))+.2*(r*i);return Math.round((a+Number.EPSILON)*100)/100}function fm({packetsLost:s,packetsSent:t}){return t>0?s*100/t:0}function Tm({packetsLost:s,packetsSent:t,jitter:e}){const i=fr({stat:fm({packetsLost:s,packetsSent:t}),weight:.7,rangeMin:0,rangeMax:Il,rangeRankingDirection:"UP"}),o=fr({stat:e,weight:.3,rangeMin:Al,rangeMax:Ml,rangeRankingDirection:"UP"});return i+o}function kv({frameWidth:s,isScreenShare:t}){return s<(t?hm:um)}function Iv({framesPerSecond:s,isScreenShare:t}){return s<(t?gm:pm)}function Av({framesEncoded:s}){return s===0}function vm({frameWidth:s,framesPerSecond:t,packetsLost:e,packetsSent:r,jitter:i,isScreenShare:a,framesEncoded:o}){const c=fr({stat:fm({packetsLost:e,packetsSent:r}),weight:1,rangeMin:0,rangeMax:Il,rangeRankingDirection:"UP"}),d=fr({stat:i,weight:1,rangeMin:Al,rangeMax:Ml,rangeRankingDirection:"UP"}),l=kv({frameWidth:s,isScreenShare:a}),p=Iv({framesPerSecond:t,isScreenShare:a}),g=Av({framesEncoded:o,isScreenShare:a});return mm({isLowQualityVideo:l,isVideoLagging:p,isVideoStuck:g,jitterQuality:d,packetsLostQuality:c})}function ym({packetsLost:s,packetsReceived:t}){return t+s>0?s*100/(t+s):0}function Sm({concealmentEvents:s,packetsLost:t,packetsReceived:e,jitter:r}){const a=fr({stat:s,weight:.2,rangeMin:0,rangeMax:3,rangeRankingDirection:"UP"}),o=.5,c=fr({stat:ym({packetsLost:t,packetsReceived:e}),weight:o,rangeMin:0,rangeMax:Il,rangeRankingDirection:"UP"}),l=fr({stat:r,weight:.3,rangeMin:Al,rangeMax:Ml,rangeRankingDirection:"UP"});return a+c+l}function Mv({framesDecoded:s}){return s===0}function Dv({framesPerSecond:s,isScreenShare:t}){return s<(t?gm:pm)}function Ov({frameWidth:s,isScreenShare:t}){return s<(t?hm:um)}function Em({frameWidth:s,framesPerSecond:t,packetsLost:e,packetsReceived:r,jitter:i,isScreenShare:a,framesDecoded:o}){const c=fr({stat:ym({packetsLost:e,packetsReceived:r}),weight:1,rangeMin:0,rangeMax:Il,rangeRankingDirection:"UP"}),d=fr({stat:i,weight:1,rangeMin:Al,rangeMax:Ml,rangeRankingDirection:"UP"}),l=Ov({frameWidth:s,isScreenShare:a}),p=Dv({framesPerSecond:t,isScreenShare:a}),g=Mv({framesDecoded:o,isScreenShare:a});return mm({isLowQualityVideo:l,isVideoLagging:p,isVideoStuck:g,jitterQuality:d,packetsLostQuality:c})}class vr{constructor(t){h(this,"pc1");h(this,"pc2");h(this,"constrainVideoBitrateKbps");h(this,"constrainOfferToRemoveVideoFec",!1);h(this,"iceCandidateFilter");const e=new RTCPeerConnection(t),r=new RTCPeerConnection(t);this.pc1=e,this.pc2=r,this.iceCandidateFilter=vr.noFilter,this.pc1.addEventListener("icecandidate",this.onIceCandidate.bind(this,this.pc2)),this.pc2.addEventListener("icecandidate",this.onIceCandidate.bind(this,this.pc1))}static parseCandidate(t){const e="candidate:",r=t.indexOf(e)+e.length,i=t.substr(r).split(" ");return{type:i[7],protocol:i[2],address:i[4]}}static isNotHostCandidate(t){return t.type!=="host"}static isHost(t){return t.type==="host"}static isRelay(t){return t.type==="relay"}static isReflexive(t){return t.type==="srflx"}static noFilter(t){return!0}onIceCandidate(t,e){if(e.candidate){const r=vr.parseCandidate(e.candidate.candidate);this.iceCandidateFilter(r)&&t.addIceCandidate(e.candidate)}}setIceCandidateFilter(t){this.iceCandidateFilter=t}constrainVideoBitrate(t){this.constrainVideoBitrateKbps=t}disableVideoFec(){this.constrainOfferToRemoveVideoFec=!0}gotOffer(t){this.constrainOfferToRemoveVideoFec&&(t.sdp=t.sdp.replace(/(m=video 1 [^\r]+)(116 117)(\r\n)/g,`$1\r
2
2
  `),t.sdp=t.sdp.replace(/a=rtpmap:116 red\/90000\r\n/g,""),t.sdp=t.sdp.replace(/a=rtpmap:117 ulpfec\/90000\r\n/g,""),t.sdp=t.sdp.replace(/a=rtpmap:98 rtx\/90000\r\n/g,""),t.sdp=t.sdp.replace(/a=fmtp:98 apt=116\r\n/g,"")),this.pc1.setLocalDescription(t),this.pc2.setRemoteDescription(t),this.pc2.createAnswer().then(this.gotAnswer.bind(this),this.reportFatal.bind(this))}gotAnswer(t){this.constrainVideoBitrateKbps&&(t.sdp=t.sdp.replace(/a=mid:video\r\n/g,`a=mid:video\r
3
3
  b=AS:${this.constrainVideoBitrateKbps}\r
4
- `)),this.pc2.setLocalDescription(t),this.pc1.setRemoteDescription(t)}establishConnection(){this.pc1.createOffer().then(this.gotOffer.bind(this),this.reportFatal.bind(this))}reportFatal(t){console.error("Error:",t)}getRoundTripTime(){return u(this,null,function*(){const[t,e]=yield Promise.all([this.pc1.getStats(),this.pc2.getStats()]);let r,i;if(t.forEach(a=>{a.type==="candidate-pair"&&a.nominated===!0&&a.bytesSent>0&&(r=a)}),e.forEach(a=>{a.type==="candidate-pair"&&a.nominated===!0&&a.bytesReceived>0&&(i=a)}),r&&i)try{if(r.currentRoundTripTime&&i.currentRoundTripTime)return{rtt:r.currentRoundTripTime,backendRTT:i.currentRoundTripTime};const a=(i.lastPacketReceivedTimestamp-r.lastPacketSentTimestamp)/1e3;return{rtt:a,backendRTT:a}}catch(a){return}})}close(){this.pc1.close(),this.pc2.close()}}class Pm extends lt{constructor(e){super();h(this,"call");h(this,"timeOut");this.call=new vr(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 Nv=8,Lv=1/1e3;class Vv extends Pm{constructor(e){super(e);h(this,"senderChannel");h(this,"recieveChannel");h(this,"startTime");h(this,"lastBitrateMeasureTime");h(this,"sentPayloadBytes",0);h(this,"recievedPayloadBytes",0);h(this,"lastReceivedPayloadBytes",0);h(this,"stopSending",!1);h(this,"testProgress",0);h(this,"samplePacket","");h(this,"finalBitrateSum",0);h(this,"bitRateSampels",0);h(this,"maxNumberOfPacketsToSend",0);h(this,"bytesToKeepBuffered",0);h(this,"testDurationSeconds",5);this.call.setIceCandidateFilter(vr.isNotHostCandidate),this.senderChannel=this.call.pc1.createDataChannel(null);for(let r=0;r<1024*256;r+=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 i=0;i!==this.maxNumberOfPacketsToSend&&!(this.senderChannel.bufferedAmount>=this.bytesToKeepBuffered);i+=1){this.sentPayloadBytes+=this.samplePacket.length;try{this.senderChannel.send(this.samplePacket)}catch(a){}}const r=e.getTime()-this.startTime.getTime();r>=1e3*this.testDurationSeconds?(this.stopSending=!0,this.testProgress=100):(this.testProgress=r/(10*this.testDurationSeconds),setTimeout(this.sendingStep.bind(this),1))}onMessageRecieved(e){this.recievedPayloadBytes+=e.data.length;const r=new Date,i=r.getTime()-this.lastBitrateMeasureTime.getTime();if(i>=1e3){const o=(this.recievedPayloadBytes-this.lastReceivedPayloadBytes)*Nv/(i/1e3);this.finalBitrateSum+=o,this.bitRateSampels+=1,this.lastReceivedPayloadBytes=this.recievedPayloadBytes,this.lastBitrateMeasureTime=r}if(this.stopSending&&this.sentPayloadBytes===this.recievedPayloadBytes){const a=this.finalBitrateSum/this.bitRateSampels;this.testComplete({throughput:Math.round(a*Lv)})}}testComplete(e){this.call.getRoundTripTime().then(({rtt:r,backendRTT:i})=>super.testComplete({RTT:r,backendRTT:i,throughput:e.throughput}))}onRecieverChannel(e){this.recieveChannel=e.channel,this.recieveChannel.addEventListener("message",this.onMessageRecieved.bind(this))}}class hh extends Pm{constructor(e,r=vr.noFilter){super(e);h(this,"ch1");h(this,"ch2");this.call.setIceCandidateFilter(r);const i=this.call.pc1.createDataChannel(null);this.ch1=i,i.addEventListener("open",()=>{i.send("hello")}),i.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(r){}}dataChannelHandler(e){const r=e.channel;this.ch2=r,r.addEventListener("message",this.onCh2Recieve.bind(this))}hangup(e){this.testFailed(e)}}class xv extends hh{constructor(t){super(t,vr.isHost)}}class Uv extends hh{constructor(t){super(t,vr.isRelay)}}class $v extends hh{constructor(t){super(t,vr.isReflexive)}}class Fv{constructor(){h(this,"ipInformation",null)}getIPDetails(i){return u(this,arguments,function*({peerId:t,apiHostnames:e,logger:r}){var a,o,c;if(!this.ipInformation){try{const d=`https://${e.location}`,p=yield(yield fetch(d)).json();if(((a=p.loc)==null?void 0:a.length)>5)return this.ipInformation=p,(o=this.ipInformation)!=null&&o.ip&&(this.ipInformation.ip=Zr(this.ipInformation.ip)),p;throw Error("Insufficient data")}catch(d){r.error("callstats::ipDetails:: failed to fetch ip using location service",{error:d})}try{const d=yield fetch(`https://${e.locationLegacy}/?token=3c493932b0624c&peerId=${t}`,{method:"POST"});this.ipInformation=yield d.json(),(c=this.ipInformation)!=null&&c.ip&&(this.ipInformation.ip=Zr(this.ipInformation.ip))}catch(d){r.error("callstats::ipDetails:: failed to fetch ip using legacy location service",{error:d})}}return this.ipInformation})}resetCache(){this.ipInformation=null}}const ph=new Fv,np=[{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 ap(s){const[t,e]=s.split(",");return{coords:{latitude:Number(t),longitude:Number(e)}}}class _m{constructor(){h(this,"transport");h(this,"candidatePair");h(this,"outboundVideoRtp",new Map);h(this,"inboundVideoRtp",new Map);h(this,"outboundAudioRtp",new Map);h(this,"inboundAudioRtp",new Map);h(this,"remoteInboundRtp",new Map);h(this,"producerStreamMap",new Map);h(this,"consumerStreamMap",new Map);h(this,"staleProducerStreamMap",!1);h(this,"staleConsumerStreamMap",!1)}}class Cm extends lt{constructor(){super();h(this,"observer");h(this,"outboundProducerMap",new Map);h(this,"inboundConsumerMap",new Map);h(this,"consumerPeerIdMap",new Map);h(this,"pausedConsumerMap",new Map);h(this,"pausedProducerMap",new Map);h(this,"overallProducingTransportsStatsMap",{});h(this,"overallConsumingTransportsStatsMap",{});h(this,"overallConsumersStatsMap",{});h(this,"overallProducersStatsMap",{});h(this,"videoProducerToStatsMap",new Map);h(this,"audioProducerToStatsMap",new Map);h(this,"videoConsumerToStatsMap",new Map);h(this,"audioConsumerToStatsMap",new Map);h(this,"consumerIdsWithFreezedVideo",new Set);h(this,"consumerIdsWithFreezedAudio",new Set);h(this,"producerIdsWithFreezedVideo",new Set);h(this,"producerIdsWithFreezedAudio",new Set);h(this,"freezedProducingTransportIds",new Set);h(this,"freezedConsumingTransportIds",new Set);h(this,"screenShareProducers",new Set);h(this,"screenShareConsumers",new Set);h(this,"ipDetails");h(this,"callStatsInstance");this.observer=new lt}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,r,i){var o,c;const a=((c=(o=this==null?void 0:this.callStatsInstance)==null?void 0:o.consumerSharedMediaStatesMap)==null?void 0:c.get(e))||{};r.totalVideoPacketsReceived===i.packetsReceived?(this.consumerIdsWithFreezedVideo.add(e),this.callStatsInstance&&a.video&&(this.callStatsInstance.logger.debug("callstats::measurements::consumerVideoFreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_video_status","pause",e))):(r.totalVideoPacketsReceived=i.packetsReceived,this.consumerIdsWithFreezedVideo.has(e)&&(this.consumerIdsWithFreezedVideo.delete(e),this.callStatsInstance&&a.video&&(this.callStatsInstance.logger.debug("callstats::measurements::consumerVideoDefreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_video_status","resume",e))))}processInboundConsumerAudioStats(e,r,i){var o,c;const a=((c=(o=this==null?void 0:this.callStatsInstance)==null?void 0:o.consumerSharedMediaStatesMap)==null?void 0:c.get(e))||{};r.totalAudioPacketsReceived===i.packetsReceived?(this.consumerIdsWithFreezedAudio.add(e),this.callStatsInstance&&a.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::consumerAudioFreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_audio_status","pause",e))):(r.totalAudioPacketsReceived=i.packetsReceived,this.consumerIdsWithFreezedAudio.has(e)&&(this.consumerIdsWithFreezedAudio.delete(e),this.callStatsInstance&&a.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::consumerAudioDefreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_audio_status","resume",e))))}processOutboundProducerVideoStats(e,r,i){var o;const a=((o=this==null?void 0:this.callStatsInstance)==null?void 0:o.currentUserMediaStates)||{};r.totalVideoPacketsSent===i.packetsSent?(this.producerIdsWithFreezedVideo.add(e),this.callStatsInstance&&a.video&&(this.callStatsInstance.logger.debug("callStats::measurements::producerVideoFreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_video_status","pause",e))):(r.totalVideoPacketsSent=i.packetsSent,this.producerIdsWithFreezedVideo.has(e)&&(this.producerIdsWithFreezedVideo.delete(e),this.callStatsInstance&&a.video&&(this.callStatsInstance.logger.debug("callStats::measurements::producerVideoDefreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_video_status","resume",e))))}processOutboundProducerAudioStats(e,r,i){var o;const a=((o=this==null?void 0:this.callStatsInstance)==null?void 0:o.currentUserMediaStates)||{};r.totalAudioPacketsSent===i.packetsSent?(this.producerIdsWithFreezedAudio.add(e),this.callStatsInstance&&a.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::producerAudioFreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_audio_status","pause",e))):(r.totalAudioPacketsSent=i.packetsSent,this.producerIdsWithFreezedAudio.has(e)&&(this.producerIdsWithFreezedAudio.delete(e),this.callStatsInstance&&a.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::producerAudioDefreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_audio_status","resume",e))))}processProducingTransportStats(e,r,i){var p;const a=((p=this==null?void 0:this.callStatsInstance)==null?void 0:p.currentUserMediaStates)||{},{audio:o,video:c,screen:d}=a,l=o||c||d;r.totalPacketsSent===i.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))):(r.totalPacketsSent=i.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,r,i){var c,d;const o=!!Array.from(((d=(c=this==null?void 0:this.callStatsInstance)==null?void 0:c.consumerSharedMediaStatesMap)==null?void 0:d.values())||[]).reduce((l,p)=>l||p.audio||p.video||p.screen,!1);r.totalPacketsReceived===i.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))):(r.totalPacketsReceived=i.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,r=!1){return u(this,null,function*(){const i=yield e.getStats(),a=r?this.getProducerStatsFromReport(this.parseRTCReport(i,["outbound-rtp","remote-inbound-rtp"],!1,e.id))[0]:void 0;for(const o of i.values())switch(o.type){case"outbound-rtp":{this.outboundProducerMap.set(o.id,e.id);break}}return a})}generateConsumerStreamMap(e,r=!1){return u(this,null,function*(){const i=yield e.getStats(),a=r?this.getConsumerStatsFromReport(this.parseRTCReport(i,["inbound-rtp"],!1,e.id))[0]:void 0;for(const o of i.values())switch(o.type){case"inbound-rtp":{this.inboundConsumerMap.set(o.id,e.id);break}}return a})}deregisterProducer(e){this.outboundProducerMap.forEach((r,i)=>{r===e.id&&this.outboundProducerMap.delete(i)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.inboundConsumerMap.forEach((r,i)=>{r===e.id&&this.inboundConsumerMap.delete(i)}),this.consumerPeerIdMap.delete(e.id),this.pausedConsumerMap.delete(e.id),this.screenShareConsumers.delete(e.id)}getIceCandidateStats(e){var r;return{id:e.id,type:e.candidateType||e.type,address:e.address,port:e.port,url:e.url,protocol:(r=e.relayProtocol)!=null?r:e.protocol,networkType:e.networkType,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort}}getWorkingSimulcastVideoStats(e){return e.find(i=>{const a=i.framesEncoded>0,o=i.packetsSent>0,c=i.frameWidth&&i.frameHeight;return a&&o&&!!c})||e[e.length-1]}parseRTCReport(e,r=[],i=!1,a=void 0,o=void 0){var _,C,w,V,F,N,B,G,re,tt,ds,ii,ls;const c=e,d=new _m,l=r.length?new Set(r):void 0,p=[],g=[],T=[],v=new Map,P=new Map;for(const A of c.values()){if(l){if(l.size===0)break;if(l.has(A.type))i&&l.delete(A.type);else continue}switch(A.type){case"local-candidate":{p.push(this.getIceCandidateStats(A));break}case"remote-candidate":{g.push(this.getIceCandidateStats(A));break}case"candidate-pair":{const{nominated:S}=A,{selected:R}=A,x=A,fe={nominated:S!=null?S:R,currentRoundTripTime:x.currentRoundTripTime,totalRoundTripTime:x.totalRoundTripTime,bytesReceived:x.bytesReceived,bytesSent:x.bytesSent,availableOutgoingBitrate:x.availableOutgoingBitrate,availableIncomingBitrate:x.availableIncomingBitrate,lastPacketReceivedTimestamp:x.lastPacketReceivedTimestamp,lastPacketSentTimestamp:x.lastPacketSentTimestamp,localCandidateId:x.localCandidateId,remoteCandidateId:x.remoteCandidateId,bytesDiscardedOnSend:x.bytesDiscardedOnSend,packetsSent:x.packetsSent,packetsReceived:x.packetsReceived,packetsDiscardedOnSend:x.packetsDiscardedOnSend};T.push(fe),(A.nominated===!0||A.selected===!0)&&(d.candidatePair=fe);break}case"transport":{const S=A;o&&(o.producing&&(this.overallProducingTransportsStatsMap[o.id]||(this.overallProducingTransportsStatsMap[o.id]={totalPacketsSent:0})),o.consuming&&(this.overallConsumingTransportsStatsMap[o.id]||(this.overallConsumingTransportsStatsMap[o.id]={totalPacketsReceived:0})));const R={bytesReceived:S.bytesReceived,bytesSent:S.bytesSent,packetsSent:S.packetsSent,packetsReceived:S.packetsReceived,dtlsCipher:S.dtlsCipher,dtlsState:S.dtlsState,iceRole:S.iceRole};if(d.transport=R,o){if(o.producing){const x=this.overallProducingTransportsStatsMap[o.id];this.processProducingTransportStats(o.id,x,R)}if(o.consuming){const x=this.overallConsumingTransportsStatsMap[o.id];this.processConsumingTransportStats(o.id,x,R)}}break}case"remote-inbound-rtp":{const S=A,R={jitter:S.jitter,fractionLost:S.fractionLost,roundTripTime:S.roundTripTime,roundTripTimeMeasurements:S.roundTripTimeMeasurements,totalRoundTripTime:S.totalRoundTripTime,packetsLost:S.packetsLost};d.remoteInboundRtp.set(S.localId,R);break}case"outbound-rtp":{if(!this.outboundProducerMap.has(A.id))break;const S=A,R=a||this.outboundProducerMap.get(A.id),x=this.pausedProducerMap.get(R);if(x){if(x.lastReportCalculated===!0)break;this.pausedProducerMap.set(R,{lastReportCalculated:!0})}this.overallProducersStatsMap[R]||(this.overallProducersStatsMap[R]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const fe=this.overallProducersStatsMap[R];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.outboundProducerMap.has(A.id)){d.staleProducerStreamMap=!0;break}const xe=this.callStatsInstance.producers.get(R);if(((_=xe==null?void 0:xe.track)==null?void 0:_.readyState)==="ended")break;d.producerStreamMap.has(R)||d.producerStreamMap.set(R,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const L={bytesSent:S.bytesSent,packetsSent:S.packetsSent,nackCount:S.nackCount,ssrc:S.ssrc,mid:S.mid,active:S.active,codecId:S.codecId,headerBytesSent:S.headerBytesSent||0,totalPacketSendDelay:S.totalPacketSendDelay||0};if(S.mediaType==="video"||S.kind==="video"){const I=S,Ue=D({frameHeight:I.frameHeight,frameWidth:I.frameWidth,framesEncoded:I.framesEncoded,framesDropped:I.framesDropped,framesPerSecond:I.framesPerSecond,framesSent:I.framesSent,keyFramesEncoded:I.keyFramesEncoded,firCount:I.firCount,encoderImplementation:I.encoderImplementation,hugeFramesSent:I.hugeFramesSent,pliCount:I.pliCount,qpSum:I.qpSum,qualityLimitationDurations:I.qualityLimitationDurations,qualityLimitationReason:I.qualityLimitationReason,qualityLimitationResolutionChanges:I.qualityLimitationResolutionChanges,totalEncodeTime:I.targetBitrate,totalPacketSendDelay:I.totalPacketSendDelay,retransmittedBytesSent:I.retransmittedBytesSent,retransmittedPacketsSent:I.retransmittedPacketsSent,scalabilityMode:I.scalabilityMode,powerEfficientEncoder:I.powerEfficientEncoder},L);d.outboundVideoRtp.set(A.id,Ue),d.producerStreamMap.get(R).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(R,fe,Ue)}else if(S.mediaType==="audio"||S.kind==="audio"){const I=S,Ue=D({retransmittedBytesSent:I.retransmittedBytesSent,retransmittedPacketsSent:I.retransmittedPacketsSent},L);d.outboundAudioRtp.set(A.id,Ue),d.producerStreamMap.get(R).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(R,fe,Ue)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}case"inbound-rtp":{if(!this.inboundConsumerMap.has(A.id))break;const S=A,R=a||this.inboundConsumerMap.get(A.id),x=this.pausedConsumerMap.get(R);if(x){if(x.lastReportCalculated===!0)break;this.pausedConsumerMap.set(R,{lastReportCalculated:!0})}if(S.ssrc===1234)break;this.overallConsumersStatsMap[R]||(this.overallConsumersStatsMap[R]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const fe=this.overallConsumersStatsMap[R];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.inboundConsumerMap.has(A.id)){d.staleConsumerStreamMap=!0;break}d.consumerStreamMap.has(R)||d.consumerStreamMap.set(R,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const xe={bytesReceived:S.bytesReceived,packetsReceived:S.packetsReceived,packetsLost:S.packetsLost>=0?S.packetsLost:0,jitter:S.jitter,nackCount:S.nackCount,jitterBufferDelay:S.jitterBufferDelay,jitterBufferEmittedCount:S.jitterBufferEmittedCount,lastPacketReceivedTimestamp:S.lastPacketReceivedTimestamp,ssrc:S.ssrc,mid:S.mid,codecId:S.codecId,headerBytesReceived:S.headerBytesReceived||0,packetsDiscarded:S.packetsDiscarded||0,jitterBufferMinimumDelay:S.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:S.jitterBufferTargetDelay||0};if(S.mediaType==="video"||S.kind==="video"){const L=S,I=D({frameHeight:L.frameHeight,frameWidth:L.frameWidth,framesDecoded:L.framesDecoded,framesDropped:L.framesDropped,framesPerSecond:L.framesPerSecond,framesReceived:L.framesReceived,keyFramesDecoded:L.keyFramesDecoded,firCount:L.firCount,decoderImplementation:L.decoderImplementation,pliCount:L.pliCount,totalProcessingDelay:L.totalProcessingDelay,qpSum:L.qpSum||0,totalAssemblyTime:L.totalAssemblyTime||0,totalDecodeTime:L.totalDecodeTime||0,totalFreezesDuration:L.totalFreezesDuration||0,totalInterFrameDelay:L.totalInterFrameDelay||0,totalPausesDuration:L.totalPausesDuration||0,totalSquaredInterFrameDelay:L.totalSquaredInterFrameDelay||0,freezeCount:L.freezeCount||0,pauseCount:L.pauseCount||0,powerEfficientDecoder:L.powerEfficientDecoder},xe);I.score=Em({frameWidth:I.frameWidth||0,framesDecoded:(I.framesDecoded||0)-(((C=this.videoConsumerToStatsMap.get(R))==null?void 0:C.framesDecoded)||0),framesPerSecond:I.framesPerSecond||0,packetsLost:(I.packetsLost||0)-(((w=this.videoConsumerToStatsMap.get(R))==null?void 0:w.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((V=this.videoConsumerToStatsMap.get(R))==null?void 0:V.packetsReceived)||0),jitter:I.jitter||0,isScreenShare:this.screenShareConsumers.has(R)}),P.set(R,{score:+(I.score*10).toFixed(),frameWidth:I.frameWidth||0,frameHeight:I.frameHeight||0,framesPerSecond:I.framesPerSecond||0,packetsLostPercentage:Ed({packetsLost:(I.packetsLost||0)-(((F=this.videoConsumerToStatsMap.get(R))==null?void 0:F.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((N=this.videoConsumerToStatsMap.get(R))==null?void 0:N.packetsReceived)||0)}),jitter:I.jitter||0,isScreenShare:this.screenShareConsumers.has(R),bitrate:((I.bytesReceived||0)-(((B=this.videoConsumerToStatsMap.get(R))==null?void 0:B.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(R,I),d.inboundVideoRtp.set(A.id,I),d.consumerStreamMap.get(R).inboundVideoRtpId.push(A.id),this.processInboundConsumerVideoStats(R,fe,I)}else if(S.mediaType==="audio"||S.kind==="audio"){const L=S,I=D({audioLevel:L.audioLevel,concealedSamples:L.concealedSamples,concealmentEvents:L.concealmentEvents,totalAudioEnergy:L.totalAudioEnergy,totalSamplesDuration:L.totalSamplesDuration,totalSamplesReceived:L.totalSamplesReceived,fecPacketsDiscarded:L.fecPacketsDiscarded||0,fecPacketsReceived:L.fecPacketsReceived||0,insertedSamplesForDeceleration:L.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:L.removedSamplesForAcceleration||0,silentConcealedSamples:L.silentConcealedSamples||0,playoutId:L.playoutId},xe);I.score=Sm({concealmentEvents:(I.concealmentEvents||0)-(((G=this.audioConsumerToStatsMap.get(R))==null?void 0:G.concealmentEvents)||0),packetsLost:(I.packetsLost||0)-(((re=this.audioConsumerToStatsMap.get(R))==null?void 0:re.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((tt=this.audioConsumerToStatsMap.get(R))==null?void 0:tt.packetsReceived)||0),jitter:I.jitter||0}),P.set(R,{score:+(I.score*10).toFixed(),packetsLostPercentage:Ed({packetsLost:(I.packetsLost||0)-(((ds=this.audioConsumerToStatsMap.get(R))==null?void 0:ds.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((ii=this.audioConsumerToStatsMap.get(R))==null?void 0:ii.packetsReceived)||0)}),jitter:I.jitter||0,isScreenShare:this.screenShareConsumers.has(R),bitrate:((I.bytesReceived||0)-(((ls=this.audioConsumerToStatsMap.get(R))==null?void 0:ls.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(R,I),d.inboundAudioRtp.set(A.id,I),d.consumerStreamMap.get(R).inboundAudioRtpId.push(A.id),this.processInboundConsumerAudioStats(R,fe,I)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}}}if(d.producerStreamMap.forEach((A,S)=>{var R,x,fe,xe,L,I,Ue,wr,qs,ja,Ga,Wa,Ja,Ka,za,Ya,Qa,Xa,Za,eo,to,so,ro;if(A.outboundVideoRtpId.length>0){const le=[];A.outboundVideoRtpId.forEach(Xl=>{le.push(d.outboundVideoRtp.get(Xl))});const se=this.getWorkingSimulcastVideoStats(le);se.score=vm({frameWidth:se.frameWidth||0,framesPerSecond:se.framesPerSecond||0,jitter:((R=se.remoteData)==null?void 0:R.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsSent:(se.packetsSent||0)-(((x=this.videoProducerToStatsMap.get(S))==null?void 0:x.packetsSent)||0),packetsLost:(((fe=se.remoteData)==null?void 0:fe.packetsLost)||0)-(((L=(xe=this.videoProducerToStatsMap.get(S))==null?void 0:xe.remoteData)==null?void 0:L.packetsLost)||0),framesEncoded:(se.framesEncoded||0)-(((I=this.videoProducerToStatsMap.get(S))==null?void 0:I.framesEncoded)||0)}),v.set(S,{score:+(se.score*10).toFixed(),frameWidth:se.frameWidth||0,frameHeight:se.frameHeight||0,framesPerSecond:se.framesPerSecond||0,jitter:((Ue=se.remoteData)==null?void 0:Ue.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsLostPercentage:Sd({packetsSent:(se.packetsSent||0)-(((wr=this.videoProducerToStatsMap.get(S))==null?void 0:wr.packetsSent)||0),packetsLost:(((qs=se.remoteData)==null?void 0:qs.packetsLost)||0)-(((Ga=(ja=this.videoProducerToStatsMap.get(S))==null?void 0:ja.remoteData)==null?void 0:Ga.packetsLost)||0)}),bitrate:((se.bytesSent||0)-(((Wa=this.videoProducerToStatsMap.get(S))==null?void 0:Wa.bytesSent)||0))*8/7,cpuLimitations:se.qualityLimitationReason==="cpu",bandwidthLimitations:se.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(S,se)}else if(A.outboundAudioRtpId.length>0){const le=d.outboundAudioRtp.get(A.outboundAudioRtpId[0]);le.score=Tm({packetsSent:(le.packetsSent||0)-(((Ja=this.audioProducerToStatsMap.get(S))==null?void 0:Ja.packetsSent)||0),packetsLost:(((Ka=le.remoteData)==null?void 0:Ka.packetsLost)||0)-(((Ya=(za=this.audioProducerToStatsMap.get(S))==null?void 0:za.remoteData)==null?void 0:Ya.packetsLost)||0),jitter:((Qa=le.remoteData)==null?void 0:Qa.jitter)||0}),v.set(S,{score:+(le.score*10).toFixed(),bitrate:((le.bytesSent||0)-(((Xa=this.audioProducerToStatsMap.get(S))==null?void 0:Xa.bytesSent)||0))*8/7,packetsLostPercentage:Sd({packetsSent:(le.packetsSent||0)-(((Za=this.audioProducerToStatsMap.get(S))==null?void 0:Za.packetsSent)||0),packetsLost:(((eo=le.remoteData)==null?void 0:eo.packetsLost)||0)-(((so=(to=this.audioProducerToStatsMap.get(S))==null?void 0:to.remoteData)==null?void 0:so.packetsLost)||0)}),jitter:((ro=le.remoteData)==null?void 0:ro.jitter)||0,isScreenShare:this.screenShareProducers.has(S)}),this.audioProducerToStatsMap.set(S,le)}}),T.forEach(A=>{const S=p.find(x=>x.id===A.localCandidateId?(A.localCandidateId=x.id,x):null),R=g.find(x=>x.id===A.remoteCandidateId?(A.remoteCandidateId=x.id,x):null);S&&(A.localCandidateType=S.type,A.localCandidateAddress=Zr(S.address),A.localCandidatePort=S.port,A.localCandidateProtocol=S.protocol,A.localCandidateUrl=S.url,A.localCandidateNetworkType=S.networkType,A.localCandidateRelatedAddress=Zr(S.relatedAddress),A.localCandidateRelatedPort=S.relatedPort),R&&(A.remoteCandidateType=R.type,A.remoteCandidateAddress=Zr(R.address),A.remoteCandidatePort=R.port,A.remoteCandidateProtocol=R.protocol,A.remoteCandidateUrl=R.url)}),d.candidatePair&&(d.transport?(d.transport.totalRoundTripTime=d.candidatePair.totalRoundTripTime,d.transport.availableOutgoingBitrate=d.candidatePair.availableOutgoingBitrate,d.transport.availableIncomingBitrate=d.candidatePair.availableIncomingBitrate,d.transport.roundTripTime=d.candidatePair.currentRoundTripTime):d.transport={bytesReceived:d.candidatePair.bytesReceived,bytesSent:d.candidatePair.bytesSent,totalRoundTripTime:d.candidatePair.totalRoundTripTime,availableOutgoingBitrate:d.candidatePair.availableOutgoingBitrate,availableIncomingBitrate:d.candidatePair.availableIncomingBitrate,roundTripTime:d.candidatePair.currentRoundTripTime}),d.transport&&(d.transport.candidatePairs=T),d.transport&&!d.transport.roundTripTime){let A=0,S=0;d.remoteInboundRtp.forEach((R,x)=>{R.roundTripTime&&R.roundTripTime>A&&(A=R.roundTripTime,S=R.totalRoundTripTime)}),d.transport.roundTripTime=A,d.transport.totalRoundTripTime=S}if(P.size>0)try{this.observer.emit("consumer_score",P)}catch(A){}if(v.size>0)try{this.observer.emit("producer_score",v)}catch(A){}return d}getProducersReport(e){return u(this,null,function*(){const r=e.map(i=>this.generateProducerStreamMap(i,!0));return r.length>0?Promise.all(r):void 0})}getConsumersReport(e){return u(this,null,function*(){const r=e.map(i=>this.generateConsumerStreamMap(i,!0));return r.length>0?Promise.all(r):void 0})}getTransportReport(e){return u(this,null,function*(){return e.getStats()})}getProcessedStats(e,r,i){return u(this,null,function*(){const a=yield this.getTransportReport(e),o={producing:i,consuming:r,id:e.id},c=a,d=this.parseRTCReport(c,["transport","candidate-pair","inbound-rtp","outbound-rtp","remote-inbound-rtp","local-candidate","remote-candidate"],!1,void 0,o);if(!d)return;const l={stats:d.transport,transportId:e.id,consuming:r,producing:i},p=d.staleProducerStreamMap?void 0:this.getProducerStatsFromReport(d),g=d.staleConsumerStreamMap?void 0:this.getConsumerStatsFromReport(d);return{transportReport:l,producerReport:p,consumerReport:g}})}getProducerStatsFromReport(e){const r=[];try{e.producerStreamMap.forEach((i,a)=>{var o,c;r.push({producerId:a,videoStats:i.outboundVideoRtpId.map(d=>e.outboundVideoRtp.get(d)),audioStats:i.outboundAudioRtpId.map(d=>e.outboundAudioRtp.get(d)),appData:((c=(o=this.callStatsInstance.producers)==null?void 0:o.get(a))==null?void 0:c.appData)||null})})}catch(i){this.callStatsInstance.logger.error("callStats::measurements::getProducerStatsFromReport",{error:{reason:i.reason,message:i.message}})}return r}getConsumerStatsFromReport(e){const r=[];try{e.consumerStreamMap.forEach((i,a)=>{const{peerId:o,producerId:c,appData:d}=this.consumerPeerIdMap.get(a);r.push({consumerId:a,peerId:o,producerId:c,appData:d,videoStats:i.inboundVideoRtpId.map(l=>e.inboundVideoRtp.get(l)),audioStats:i.inboundAudioRtpId.map(l=>e.inboundAudioRtp.get(l))})})}catch(i){console.error("getConsumersReport: ",i,e)}return r}getUserLocation(){return u(this,null,function*(){return new Promise((e,r)=>{try{navigator.geolocation?navigator.geolocation.getCurrentPosition(i=>{e(i)}):r()}catch(i){r(i)}})})}getConnectivity(e){return u(this,null,function*(){try{const r={iceServers:e||np},i=new Promise((p,g)=>{try{const T=new xv(r);T.addListener("done",p),T.addListener("failed",()=>{p({connectivity:!1})}),T.start(2e3)}catch(T){g(T)}}),a=new Promise((p,g)=>{try{const T=new Uv(r);T.addListener("done",p),T.addListener("failed",()=>{p({connectivity:!1})}),T.start(2e3)}catch(T){g(T)}}),o=new Promise((p,g)=>{try{const T=new $v(r);T.addListener("done",p),T.addListener("failed",()=>{p({connectivity:!1})}),T.start(2e3)}catch(T){g(T)}}),[c,d,l]=yield Promise.all([i,a,o]);return{host:c==null?void 0:c.connectivity,relay:d==null?void 0:d.connectivity,reflexive:l==null?void 0:l.connectivity}}catch(r){return{host:!1,relay:!1,reflexive:!1}}})}getThroughput(e){return u(this,null,function*(){try{const i=yield new Promise((a,o)=>{try{const c={iceServers:e||np},d=new Vv(c);d.addListener("done",a),d.addListener("failed",o),d.start(1e4)}catch(c){o(c)}});return{throughput:i.throughput,fractionalLoss:0,RTT:i.RTT,jitter:0,backendRTT:i.backendRTT}}catch(r){return}})}getIPDetails(){return u(this,null,function*(){var e,r;try{return this.ipDetails||(this.ipDetails=yield ph.getIPDetails({peerId:(e=this.callStatsInstance)==null?void 0:e.peerId,apiHostnames:(r=this.callStatsInstance)==null?void 0:r.apiHostnames,logger:this.callStatsInstance.logger})),this.ipDetails}catch(i){return}})}getNetworkQuality(e){return u(this,null,function*(){const[r,i]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e)]);return{connectivity:r,throughput:i==null?void 0:i.throughput,fractionalLoss:i==null?void 0:i.fractionalLoss,RTT:i==null?void 0:i.RTT,jitter:i==null?void 0:i.jitter,backendRTT:i==null?void 0:i.backendRTT}})}getNetworkInfo(e,r=!1){return u(this,null,function*(){var c,d;if(r){const l=yield this.getIPDetails();return{ipDetails:l,effectiveNetworkType:(c=navigator.connection)==null?void 0:c.effectiveType,location:l!=null&&l.loc?ap(l==null?void 0:l.loc):void 0}}const[i,a,o]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e),this.getIPDetails()]);return{ipDetails:o,effectiveNetworkType:(d=navigator.connection)==null?void 0:d.effectiveType,location:o!=null&&o.loc?ap(o==null?void 0:o.loc):void 0,turnConnectivity:i?i.host||i.relay||i.reflexive:!1,connectivity:i,throughput:a==null?void 0:a.throughput,fractionalLoss:a==null?void 0:a.fractionalLoss,RTT:a==null?void 0:a.RTT,jitter:a==null?void 0:a.jitter,backendRTT:a==null?void 0:a.backendRTT}})}}class Bv extends Cm{}class wm extends Cm{constructor(){super(...arguments);h(this,"producerMap",new Map);h(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,r=!1){return u(this,null,function*(){const i=yield e.getStats(),a=this.parseRTCReport(i,["inbound-rtp"],!1,e.id),o=[...a.consumerStreamMap.values()][0],c=r?this.getConsumerStatsFromParsedConsumerStats(a,o,e.id):void 0;for(const d of i.values())switch(d.type){case"inbound-rtp":{this.inboundConsumerMap.set(d.id,e.id);break}}return c})}deregisterProducer(e){this.producerMap.delete(e.id),this.outboundProducerMap.forEach((r,i)=>{r===e.id&&this.outboundProducerMap.delete(i)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.consumerMap.delete(e.id),this.inboundConsumerMap.forEach((r,i)=>{r===e.id&&this.inboundConsumerMap.delete(i)}),this.consumerPeerIdMap.delete(e.id),this.pausedConsumerMap.delete(e.id),this.screenShareConsumers.delete(e.id)}getIceCandidateStats(e){var r;return{id:e.id,type:e.candidateType||e.type,address:e.address,port:e.port,url:e.url,protocol:(r=e.relayProtocol)!=null?r:e.protocol,networkType:e.networkType,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort}}parseRTCReport(e,r=[],i=!1,a=void 0,o=void 0){var _,C,w,V,F,N,B,G,re,tt,ds,ii,ls;const c=e,d=new _m,l=r.length?new Set(r):void 0,p=[],g=[],T=[],v=new Map,P=new Map;for(const A of c.values()){if(l){if(l.size===0)break;if(l.has(A.type))i&&l.delete(A.type);else continue}switch(A.type){case"local-candidate":{p.push(this.getIceCandidateStats(A));break}case"remote-candidate":{g.push(this.getIceCandidateStats(A));break}case"candidate-pair":{const{nominated:S}=A,{selected:R}=A,x=A,fe={nominated:S!=null?S:R,currentRoundTripTime:x.currentRoundTripTime,totalRoundTripTime:x.totalRoundTripTime,bytesReceived:x.bytesReceived,bytesSent:x.bytesSent,availableOutgoingBitrate:x.availableOutgoingBitrate,availableIncomingBitrate:x.availableIncomingBitrate,lastPacketReceivedTimestamp:x.lastPacketReceivedTimestamp,lastPacketSentTimestamp:x.lastPacketSentTimestamp,localCandidateId:x.localCandidateId,remoteCandidateId:x.remoteCandidateId,bytesDiscardedOnSend:x.bytesDiscardedOnSend,packetsSent:x.packetsSent,packetsReceived:x.packetsReceived,packetsDiscardedOnSend:x.packetsDiscardedOnSend};T.push(fe),(A.nominated===!0||A.selected===!0)&&(d.candidatePair=fe);break}case"transport":{const S=A;o&&(o.producing&&(this.overallProducingTransportsStatsMap[o.id]||(this.overallProducingTransportsStatsMap[o.id]={totalPacketsSent:0})),o.consuming&&(this.overallConsumingTransportsStatsMap[o.id]||(this.overallConsumingTransportsStatsMap[o.id]={totalPacketsReceived:0})));const R={bytesReceived:S.bytesReceived,bytesSent:S.bytesSent,packetsSent:S.packetsSent,packetsReceived:S.packetsReceived,dtlsCipher:S.dtlsCipher,dtlsState:S.dtlsState,iceRole:S.iceRole};if(d.transport=R,o){if(o.producing){const x=this.overallProducingTransportsStatsMap[o.id];this.processProducingTransportStats(o.id,x,R)}if(o.consuming){const x=this.overallConsumingTransportsStatsMap[o.id];this.processConsumingTransportStats(o.id,x,R)}}break}case"remote-inbound-rtp":{const S=A,R={jitter:S.jitter,fractionLost:S.fractionLost,roundTripTime:S.roundTripTime,roundTripTimeMeasurements:S.roundTripTimeMeasurements,totalRoundTripTime:S.totalRoundTripTime,packetsLost:S.packetsLost};d.remoteInboundRtp.set(S.localId,R);break}case"outbound-rtp":{if(!this.outboundProducerMap.has(A.id))break;const S=A,R=a||this.outboundProducerMap.get(A.id),x=this.pausedProducerMap.get(R);if(x){if(x.lastReportCalculated===!0)break;this.pausedProducerMap.set(R,{lastReportCalculated:!0})}this.overallProducersStatsMap[R]||(this.overallProducersStatsMap[R]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const fe=this.overallProducersStatsMap[R];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.outboundProducerMap.has(A.id)){d.staleProducerStreamMap=!0;break}const xe=this.callStatsInstance.producers.get(R);if(((_=xe==null?void 0:xe.track)==null?void 0:_.readyState)==="ended")break;d.producerStreamMap.has(R)||d.producerStreamMap.set(R,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const L={bytesSent:S.bytesSent,packetsSent:S.packetsSent,nackCount:S.nackCount,ssrc:S.ssrc,mid:S.mid,active:S.active,codecId:S.codecId,headerBytesSent:S.headerBytesSent||0,totalPacketSendDelay:S.totalPacketSendDelay||0};if(S.mediaType==="video"||S.kind==="video"){const I=S,Ue=D({frameHeight:I.frameHeight,frameWidth:I.frameWidth,framesEncoded:I.framesEncoded,framesDropped:I.framesDropped?I.framesDropped:I.droppedFrames,framesPerSecond:I.framesPerSecond?I.framesPerSecond:I.framerateMean,framesSent:I.framesSent,keyFramesEncoded:I.keyFramesEncoded,firCount:I.firCount,encoderImplementation:I.encoderImplementation,hugeFramesSent:I.hugeFramesSent,pliCount:I.pliCount,qpSum:I.qpSum,qualityLimitationReason:I.qualityLimitationReason,qualityLimitationDurations:I.qualityLimitationDurations,qualityLimitationResolutionChanges:I.qualityLimitationResolutionChanges,totalEncodeTime:I.totalEncodeTime,totalPacketSendDelay:I.totalEncodeTime,retransmittedBytesSent:I.retransmittedBytesSent,retransmittedPacketsSent:I.retransmittedPacketsSent,scalabilityMode:I.scalabilityMode,powerEfficientEncoder:I.powerEfficientEncoder},L);d.outboundVideoRtp.set(A.id,Ue),d.producerStreamMap.get(R).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(R,fe,Ue)}else if(S.mediaType==="audio"||S.kind==="audio"){const I=S,Ue=D({retransmittedBytesSent:I.retransmittedBytesSent,retransmittedPacketsSent:I.retransmittedPacketsSent},L);d.outboundAudioRtp.set(A.id,Ue),d.producerStreamMap.get(R).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(R,fe,Ue)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}case"inbound-rtp":{if(!this.inboundConsumerMap.has(A.id))break;const S=A,R=a||this.inboundConsumerMap.get(A.id),x=this.pausedConsumerMap.get(R);if(x){if(x.lastReportCalculated===!0)break;this.pausedConsumerMap.set(R,{lastReportCalculated:!0})}if(S.ssrc===1234)break;this.overallConsumersStatsMap[R]||(this.overallConsumersStatsMap[R]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const fe=this.overallConsumersStatsMap[R];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.inboundConsumerMap.has(A.id)){d.staleConsumerStreamMap=!0;break}d.consumerStreamMap.has(R)||d.consumerStreamMap.set(R,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const xe={bytesReceived:S.bytesReceived,packetsReceived:S.packetsReceived,packetsLost:S.packetsLost>=0?S.packetsLost:0,jitter:S.jitter,nackCount:S.nackCount,jitterBufferDelay:S.jitterBufferDelay,jitterBufferEmittedCount:S.jitterBufferEmittedCount,lastPacketReceivedTimestamp:S.lastPacketReceivedTimestamp,ssrc:S.ssrc,mid:S.mid,codecId:S.codecId,headerBytesReceived:S.headerBytesReceived||0,packetsDiscarded:S.packetsDiscarded||0,jitterBufferMinimumDelay:S.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:S.jitterBufferTargetDelay||0};if(S.mediaType==="video"||S.kind==="video"){const L=S,I=D({frameHeight:L.frameHeight,frameWidth:L.frameWidth,framesDecoded:L.framesDecoded,framesDropped:L.framesDropped?L.framesDropped:L.droppedFrames,framesPerSecond:L.framesPerSecond?L.framesPerSecond:L.framerateMean,framesReceived:L.framesReceived,keyFramesDecoded:L.keyFramesDecoded,firCount:L.firCount,decoderImplementation:L.decoderImplementation,pliCount:L.pliCount,totalProcessingDelay:L.totalProcessingDelay,qpSum:L.qpSum||0,totalAssemblyTime:L.totalAssemblyTime||0,totalDecodeTime:L.totalDecodeTime||0,totalFreezesDuration:L.totalFreezesDuration||0,totalInterFrameDelay:L.totalInterFrameDelay||0,totalPausesDuration:L.totalPausesDuration||0,totalSquaredInterFrameDelay:L.totalSquaredInterFrameDelay||0,freezeCount:L.freezeCount||0,pauseCount:L.pauseCount||0,powerEfficientDecoder:L.powerEfficientDecoder},xe);I.score=Em({frameWidth:I.frameWidth||0,framesDecoded:(I.framesDecoded||0)-(((C=this.videoConsumerToStatsMap.get(R))==null?void 0:C.framesDecoded)||0),framesPerSecond:I.framesPerSecond||0,packetsLost:(I.packetsLost||0)-(((w=this.videoConsumerToStatsMap.get(R))==null?void 0:w.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((V=this.videoConsumerToStatsMap.get(R))==null?void 0:V.packetsReceived)||0),jitter:I.jitter||0,isScreenShare:this.screenShareConsumers.has(R)}),P.set(R,{score:+(I.score*10).toFixed(),frameWidth:I.frameWidth||0,frameHeight:I.frameHeight||0,framesPerSecond:I.framesPerSecond||0,packetsLostPercentage:Ed({packetsLost:(I.packetsLost||0)-(((F=this.videoConsumerToStatsMap.get(R))==null?void 0:F.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((N=this.videoConsumerToStatsMap.get(R))==null?void 0:N.packetsReceived)||0)}),jitter:I.jitter||0,isScreenShare:this.screenShareConsumers.has(R),bitrate:((I.bytesReceived||0)-(((B=this.videoConsumerToStatsMap.get(R))==null?void 0:B.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(R,I),d.inboundVideoRtp.set(A.id,I),d.consumerStreamMap.get(R).inboundVideoRtpId.push(A.id),this.processInboundConsumerVideoStats(R,fe,I)}else if(S.mediaType==="audio"||S.kind==="audio"){const L=S,I=D({audioLevel:L.audioLevel,concealedSamples:L.concealedSamples,concealmentEvents:L.concealmentEvents,totalAudioEnergy:L.totalAudioEnergy,totalSamplesDuration:L.totalSamplesDuration,totalSamplesReceived:L.totalSamplesReceived,fecPacketsDiscarded:L.fecPacketsDiscarded||0,fecPacketsReceived:L.fecPacketsReceived||0,insertedSamplesForDeceleration:L.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:L.removedSamplesForAcceleration||0,silentConcealedSamples:L.silentConcealedSamples||0,playoutId:L.playoutId},xe);I.score=Sm({concealmentEvents:(I.concealmentEvents||0)-(((G=this.audioConsumerToStatsMap.get(R))==null?void 0:G.concealmentEvents)||0),packetsLost:(I.packetsLost||0)-(((re=this.audioConsumerToStatsMap.get(R))==null?void 0:re.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((tt=this.audioConsumerToStatsMap.get(R))==null?void 0:tt.packetsReceived)||0),jitter:I.jitter||0}),P.set(R,{score:+(I.score*10).toFixed(),packetsLostPercentage:Ed({packetsLost:(I.packetsLost||0)-(((ds=this.audioConsumerToStatsMap.get(R))==null?void 0:ds.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((ii=this.audioConsumerToStatsMap.get(R))==null?void 0:ii.packetsReceived)||0)}),jitter:I.jitter||0,isScreenShare:this.screenShareConsumers.has(R),bitrate:((I.bytesReceived||0)-(((ls=this.audioConsumerToStatsMap.get(R))==null?void 0:ls.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(R,I),d.inboundAudioRtp.set(A.id,I),d.consumerStreamMap.get(R).inboundAudioRtpId.push(A.id),this.processInboundConsumerAudioStats(R,fe,I)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}}}if(d.producerStreamMap.forEach((A,S)=>{var R,x,fe,xe,L,I,Ue,wr,qs,ja,Ga,Wa,Ja,Ka,za,Ya,Qa,Xa,Za,eo,to,so,ro;if(A.outboundVideoRtpId.length>0){const le=[];A.outboundVideoRtpId.forEach(Xl=>{le.push(d.outboundVideoRtp.get(Xl))});const se=this.getWorkingSimulcastVideoStats(le);se.score=vm({frameWidth:se.frameWidth||0,framesPerSecond:se.framesPerSecond||0,jitter:((R=se.remoteData)==null?void 0:R.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsSent:(se.packetsSent||0)-(((x=this.videoProducerToStatsMap.get(S))==null?void 0:x.packetsSent)||0),packetsLost:(((fe=se.remoteData)==null?void 0:fe.packetsLost)||0)-(((L=(xe=this.videoProducerToStatsMap.get(S))==null?void 0:xe.remoteData)==null?void 0:L.packetsLost)||0),framesEncoded:(se.framesEncoded||0)-(((I=this.videoProducerToStatsMap.get(S))==null?void 0:I.framesEncoded)||0)}),v.set(S,{score:+(se.score*10).toFixed(),frameWidth:se.frameWidth||0,frameHeight:se.frameHeight||0,framesPerSecond:se.framesPerSecond||0,jitter:((Ue=se.remoteData)==null?void 0:Ue.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsLostPercentage:Sd({packetsSent:(se.packetsSent||0)-(((wr=this.videoProducerToStatsMap.get(S))==null?void 0:wr.packetsSent)||0),packetsLost:(((qs=se.remoteData)==null?void 0:qs.packetsLost)||0)-(((Ga=(ja=this.videoProducerToStatsMap.get(S))==null?void 0:ja.remoteData)==null?void 0:Ga.packetsLost)||0)}),bitrate:((se.bytesSent||0)-(((Wa=this.videoProducerToStatsMap.get(S))==null?void 0:Wa.bytesSent)||0))*8/7,cpuLimitations:se.qualityLimitationReason==="cpu",bandwidthLimitations:se.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(S,se)}else if(A.outboundAudioRtpId.length>0){const le=d.outboundAudioRtp.get(A.outboundAudioRtpId[0]);le.score=Tm({packetsSent:(le.packetsSent||0)-(((Ja=this.audioProducerToStatsMap.get(S))==null?void 0:Ja.packetsSent)||0),packetsLost:(((Ka=le.remoteData)==null?void 0:Ka.packetsLost)||0)-(((Ya=(za=this.audioProducerToStatsMap.get(S))==null?void 0:za.remoteData)==null?void 0:Ya.packetsLost)||0),jitter:((Qa=le.remoteData)==null?void 0:Qa.jitter)||0}),v.set(S,{score:+(le.score*10).toFixed(),bitrate:((le.bytesSent||0)-(((Xa=this.audioProducerToStatsMap.get(S))==null?void 0:Xa.bytesSent)||0))*8/7,packetsLostPercentage:Sd({packetsSent:(le.packetsSent||0)-(((Za=this.audioProducerToStatsMap.get(S))==null?void 0:Za.packetsSent)||0),packetsLost:(((eo=le.remoteData)==null?void 0:eo.packetsLost)||0)-(((so=(to=this.audioProducerToStatsMap.get(S))==null?void 0:to.remoteData)==null?void 0:so.packetsLost)||0)}),jitter:((ro=le.remoteData)==null?void 0:ro.jitter)||0,isScreenShare:this.screenShareProducers.has(S)}),this.audioProducerToStatsMap.set(S,le)}}),T.forEach(A=>{const S=p.find(x=>x.id===A.localCandidateId?(A.localCandidateId=x.id,x):null),R=g.find(x=>x.id===A.remoteCandidateId?(A.remoteCandidateId=x.id,x):null);S&&(A.localCandidateType=S.type,A.localCandidateAddress=Zr(S.address),A.localCandidatePort=S.port,A.localCandidateProtocol=S.protocol,A.localCandidateUrl=S.url,A.localCandidateNetworkType=S.networkType,A.localCandidateRelatedAddress=Zr(S.relatedAddress),A.localCandidateRelatedPort=S.relatedPort),R&&(A.remoteCandidateType=R.type,A.remoteCandidateAddress=Zr(R.address),A.remoteCandidatePort=R.port,A.remoteCandidateProtocol=R.protocol,A.remoteCandidateUrl=R.url)}),d.candidatePair&&(d.transport?(d.transport.bytesReceived=d.candidatePair.bytesReceived,d.transport.bytesSent=d.candidatePair.bytesSent,d.transport.totalRoundTripTime=d.candidatePair.totalRoundTripTime,d.transport.availableOutgoingBitrate=d.candidatePair.availableOutgoingBitrate,d.transport.availableIncomingBitrate=d.candidatePair.availableIncomingBitrate,d.transport.roundTripTime=d.candidatePair.currentRoundTripTime):d.transport={bytesReceived:d.candidatePair.bytesReceived,bytesSent:d.candidatePair.bytesSent,totalRoundTripTime:d.candidatePair.totalRoundTripTime,availableOutgoingBitrate:d.candidatePair.availableOutgoingBitrate,availableIncomingBitrate:d.candidatePair.availableIncomingBitrate,roundTripTime:d.candidatePair.currentRoundTripTime}),d.transport&&(d.transport.candidatePairs=T),d.transport&&!d.transport.roundTripTime){let A=0,S=0;d.remoteInboundRtp.forEach((R,x)=>{R.roundTripTime&&R.roundTripTime>A&&(A=R.roundTripTime,S=R.totalRoundTripTime)}),d.transport.roundTripTime=A,d.transport.totalRoundTripTime=S}if(P.size>0)try{this.observer.emit("consumer_score",P)}catch(A){}if(v.size>0)try{this.observer.emit("producer_score",v)}catch(A){}return d}getProducerStatsFromReport(e){const r=[];try{e.producerStreamMap.forEach((i,a)=>{const o=this.producerMap.get(a),c=o.track.getSettings(),d=i.outboundVideoRtpId.map(p=>{const g=e.outboundVideoRtp.get(p);return g.frameHeight||(g.frameHeight=c.height,g.frameWidth=c.width,g.framesPerSecond=c.frameRate),g}),l={producerId:a,appData:o.appData,videoStats:d,audioStats:i.outboundAudioRtpId.map(p=>e.outboundAudioRtp.get(p))};r.push(l)})}catch(i){console.error("getProducersReport: ",i,e)}return r}getConsumerStatsFromParsedConsumerStats(e,r,i){let a;try{const{peerId:o,producerId:c,appData:d}=this.consumerPeerIdMap.get(i),l=r==null?void 0:r.inboundVideoRtpId.map(p=>{const T=this.consumerMap.get(i).track.getSettings(),v=e.inboundVideoRtp.get(p);return v.frameHeight||(v.frameHeight=T.height,v.frameWidth=T.width,v.framesPerSecond=T.frameRate),v});a={consumerId:i,peerId:o,producerId:c,appData:d,videoStats:l,audioStats:r==null?void 0:r.inboundAudioRtpId.map(p=>e.inboundAudioRtp.get(p))}}catch(o){console.error("getConsumerStatsFromParsedConsumerStats: ",o,e)}return a}getConsumerStatsFromReport(e){const r=[];try{e.consumerStreamMap.forEach((i,a)=>{r.push(this.getConsumerStatsFromParsedConsumerStats(e,i,a))})}catch(i){console.error("getConsumerStatsFromReport: ",i,e)}return r}}class Hv extends wm{}function Pd(s,t,e,r){if(s!=null&&s.logger&&s.logger.error("Callstats::handleError",{error:r}),typeof e=="function"&&r instanceof t)e.call(null,r,s);else throw r}function op(s,t,e){const r=s.value;return s.value=function(...i){try{const a=r.apply(this,i);return a&&a instanceof Promise?a.catch(o=>{Pd(this,t,e,o)}):a}catch(a){Pd(this,t,e,a)}return null},s}const X=(s,t)=>(e,r,i)=>{const a=i.value;return i.value=function(...o){try{const c=a.apply(this,o);return c&&c instanceof Promise?c.catch(d=>{Pd(this,s,t,d)}):c}catch(c){Pd(this,s,t,c)}return null},i},qv=(s,t)=>(e,r,i)=>{if(i)return op(i,s,t);for(const a of Reflect.ownKeys(e.prototype).filter(o=>o!=="constructor")){const o=Object.getOwnPropertyDescriptor(e.prototype,a);o.value instanceof Function&&Object.defineProperty(e.prototype,a,op(o,s,t))}};var Y=globalThis&&globalThis.__decorate||function(s,t,e,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(s,t,e,r);else for(var c=s.length-1;c>=0;c--)(o=s[c])&&(a=(i<3?o(a):i>3?o(t,e,a):o(t,e))||a);return i>3&&a&&Object.defineProperty(t,e,a),a};const Q=console;let K=class extends lt{constructor(e="https://api.testingv3.dyte.in",r="Blink",i=yo.PROD,a,o,c,d){super();h(this,"observer");h(this,"eventHandler");h(this,"measurements");h(this,"producingTransport");h(this,"consumingTransport");h(this,"producers",new Map);h(this,"consumers",new Map);h(this,"iceServers");h(this,"connectionInfoPromise");h(this,"pingStatsTimeout");h(this,"logger");h(this,"env");h(this,"apiHostnames");h(this,"peerId");h(this,"consumerSharedMediaStatesMap",new Map);h(this,"currentUserMediaStates",{});switch(this.env=i,this.apiHostnames=d,this.logger=o,this.peerId=c,this.eventHandler=new bv({logger:o,peerId:c,apiHostnames:d}),this.logger.debug("callStats::engineName: ",{engineName:r}),r){case"Blink":this.measurements=new Bv;break;case"Gecko":this.measurements=new wm;break;case"WebKit":this.measurements=new Hv;break;default:throw Error(`Unknown engineName! ${r}`)}this.measurements.callStatsInstance=this,this.registerProducer=this.registerProducer.bind(this),this.registerConsumer=this.registerConsumer.bind(this),this.observer=new lt,this.measurements.observer.on("consumer_score",l=>{o.debug(`callStats::consumer_score ${[...l.entries()]}`),this.eventHandler.emit("consumer_score",l)}),this.measurements.observer.on("producer_score",l=>{o.debug(`callStats::producer_score ${[...l.entries()]}`),this.eventHandler.emit("producer_score",l)})}registerIceServers(e){this.iceServers=e}registerConsumer(e){var r;this.consumerSharedMediaStatesMap.has(e.id)||this.consumerSharedMediaStatesMap.set(e.id,{}),this.consumers.set(e.id,e),this.measurements.registerConsumer(e),this.logger.debug("callStats::registerConsumer",{consumerId:e.id,consumerkind:e.kind,isScreenShare:!!((r=e.appData)!=null&&r.screenShare)}),e.on("close",this.deRegisterConsumer.bind(this,e))}registerProducer(e){var r;this.producers.set(e.id,e),this.measurements.registerProducer(e),this.logger.debug("callStats::registerProducer",{producerId:e.id,producerKind:e.kind,isScreenShare:!!((r=e.appData)!=null&&r.screenShare)}),e.on("close",this.deRegisterProducer.bind(this,e))}sendConsumerSharedMediaStateEvent(e,r){this.consumerSharedMediaStatesMap.has(e)||this.consumerSharedMediaStatesMap.set(e,{});const i=this.consumerSharedMediaStatesMap.get(e);this.consumerSharedMediaStatesMap.set(e,Object.assign(i,r))}registerProducingTransport(e){var i;this.producingTransport=e,e.on("close",this.disconnectProducingTransport.bind(this,e)),e.on("disconnect",this.disconnectProducingTransport.bind(this,e)),Array.from(((i=e._producers)==null?void 0:i.values())||[]).forEach(a=>{this.registerProducer(a)}),e.on("newproducer",this.registerProducer)}registerConsumingTransport(e){var i;this.consumingTransport=e,e.on("close",this.disconnectConsumingTransport.bind(this,e)),e.on("disconnect",this.disconnectConsumingTransport.bind(this,e)),Array.from(((i=e._consumers)==null?void 0:i.values())||[]).forEach(a=>{this.registerConsumer(a)}),e.on("newconsumer",this.registerConsumer)}deRegisterConsumer(e){this.consumers.delete(e.id)}deRegisterProducer(e){var r;this.producers.delete(e.id),this.logger.debug("callStats::deRegisterProducer",{producerId:e.id,producerKind:e.kind,isScreenShare:!!((r=e.appData)!=null&&r.screenShare)})}disconnectConsumingTransport(){this.consumingTransport=void 0}disconnectProducingTransport(){this.producingTransport=void 0}callEvent(e){this.eventHandler.callEvent(e)}sendPreCallTestBeginEvent(e=!1,r){this.connectionInfoPromise=this.measurements.getNetworkInfo(this.iceServers,e),this.eventHandler.callEvent({event:O.PRECALL_TEST_BEGIN,timestamp:r}),this.connectionInfoPromise&&this.connectionInfoPromise.then(i=>{this.eventHandler.callEvent({event:O.PRECALL_TEST_COMPLETE,metaData:{connectionInfo:i},timestamp:r})})}sendScreenShareToggleEvent(e,r=null,i){this.currentUserMediaStates.screen=e,this.eventHandler.callEvent({event:e?O.SCREENSHARE_STARTED:O.SCREENSHARE_STOPPED,metaData:{ssrc:r},timestamp:i})}sendScreenShareRequestedEvent(e){this.eventHandler.callEvent({event:O.SCREENSHARE_START_REQUESTED,timestamp:e})}sendActiveSpeakerEvent(e,r){this.eventHandler.callEvent({event:O.DOMINANT_SPEAKER,metaData:{peerId:e},timestamp:r})}devices(e,r,i){this.eventHandler.callEvent({event:e===Kt.AUDIO&&O.AUDIO_DEVICES_UPDATES||e===Kt.VIDEO&&O.VIDEO_DEVICES_UPDATES||e===Kt.SPEAKER&&O.SPEAKER_DEVICES_UPDATES,metaData:{deviceList:r},timestamp:i})}selectedDevice(e,r,i){this.eventHandler.callEvent({event:e===Kt.AUDIO&&O.SELECTED_MICROHPONE_UPDATE||e===Kt.VIDEO&&O.SELECTED_CAMERA_UPDATE||e===Kt.SPEAKER&&O.SELECTED_SPEAKER_UPDATE,metaData:{device:r},timestamp:i})}mediaPermission(e,r,i){this.eventHandler.callEvent({event:O.MEDIA_PERMISSION,metaData:{deviceType:e,permission:r},timestamp:i})}mediaPlaybackFailed(e,r){this.eventHandler.callEvent({event:e===Kt.AUDIO&&O.AUDIO_PLAY_FAILED||e===Kt.VIDEO&&O.VIDEO_PLAY_FAILED,metaData:{deviceType:e},timestamp:r})}mediaTrackMuted(e,r){this.eventHandler.callEvent({event:e===Kt.AUDIO&&O.AUDIO_TRACK_MUTED||e===Kt.VIDEO&&O.VIDEO_TRACK_MUTED,metaData:{deviceType:e},timestamp:r})}tabChanged(e,r){this.eventHandler.callEvent({event:O.TAB_CHANGE,metaData:{isMeetingsTabActive:e},timestamp:r})}browserBackgrounded(e){this.eventHandler.callEvent({event:O.BROWSER_BACKGROUNDED,timestamp:e})}browserForegrounded(e){this.eventHandler.callEvent({event:O.BROWSER_FOREGROUNDED,timestamp:e})}legacySwitch(e,r){this.eventHandler.callEvent({event:O.LEGACY_SWITCH,metadata:{on:e},timestamp:r})}getPreCallTestResults(){return u(this,null,function*(){return this.connectionInfoPromise})}sendCallJoinBeginEvent(e,r){e=H(D({},e),{meetingEnv:this.env}),e.deviceInfo=H(D({},e.deviceInfo),{userAgent:navigator.userAgent,cpus:navigator.hardwareConcurrency,memory:navigator.deviceMemory}),this.eventHandler.callEvent({event:O.CALL_JOIN_BEGIN,metaData:{peerMetaData:e},timestamp:r})}sendNetworkQualityTestBeginEvent(e,r){this.eventHandler.callEvent({event:O.NET_QUALITY_TEST_BEGIN,timestamp:r}),new Promise((a,o)=>u(this,null,function*(){const c=[];try{for(const d of e)try{if(d.iceServers&&d.iceServers.length>0){const l=yield this.measurements.getNetworkQuality(d.iceServers);c.push(H(D({},d),{networkResults:l}))}}catch(l){console.warn("Error handling ",l)}a({regionData:c})}catch(d){console.warn("Error in callstats, ",d),o(d)}})).then(a=>{this.eventHandler.callEvent({event:O.NET_QUALITY_TEST_END,timestamp:r,metaData:a})})}sendWebSocketConnectedEvent(e){this.eventHandler.callEvent({event:O.WEBSOCKET_CONNECTED,timestamp:e})}sendTransportConnectedEvent(e){this.eventHandler.callEvent({event:O.TRANSPORT_CONNECTED,timestamp:e})}sendAudioToggleEvent(e,r){this.currentUserMediaStates.audio=e;let i;e?i=O.AUDIO_ON:i=O.AUDIO_OFF,this.eventHandler.callEvent({event:i,timestamp:r})}sendVideoToggleEvent(e,r){this.currentUserMediaStates.video=e;let i;e?i=O.VIDEO_ON:i=O.VIDEO_OFF,this.eventHandler.callEvent({event:i,timestamp:r})}sendParticipantRoleToggleEvent(e,r){this.eventHandler.callEvent({event:O.PARTICIPANT_ROLE,timestamp:r,metaData:e})}startPingStats(e=7e3){this.sendPingStatsEvent(!1,new Date),this.pingStatsTimeout=setInterval(this.sendPingStatsEvent.bind(this),e)}stopPingStats(){clearInterval(this.pingStatsTimeout)}sendPingStatsEvent(e=!0,r){return u(this,null,function*(){let i,a;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 c=yield this.measurements.getProducersReport([...this.producers.values()]);i&&c?i.producerReport=c:(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&&(a=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),!a||!a.consumerReport)){this.logger.debug("callStats::sendPingStatsEvent::staleConsumingTransport",{disclaimer:"Stale consumer? Regenerating Stream Maps!"});const c=yield this.measurements.getConsumersReport([...this.consumers.values()]);a&&c?a.consumerReport=c:(a=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),(!a||!a.consumerReport)&&this.logger.debug("callStats::sendPingStatsEvent::noConsumingTransportReport",{disclaimer:"Stream maps invalid despite regenerating!"}))}const o={producingTransportStats:i?i==null?void 0:i.transportReport:void 0,consumingTransportStats:a?a==null?void 0:a.transportReport:void 0,producerStats:[].concat((i==null?void 0:i.producerReport)||[]).concat((a==null?void 0:a.producerReport)||[]),consumerStats:[].concat((a==null?void 0:a.consumerReport)||[]).concat((i==null?void 0:i.consumerReport)||[])};if(e&&o.producerStats.length===0&&o.consumerStats.length===0){yield this.eventHandler.flush();return}this.eventHandler.callEvent({event:O.PING_STAT,metaData:o,timestamp:r})})}sendIVSPlayerRebufferEvent(e){this.eventHandler.callEvent({event:O.IVS_PLAYER_REBUFFERING,timestamp:e})}sendIVSPlayerAudioBlockEvent(e){this.eventHandler.callEvent({event:O.IVS_PLAYER_AUDIO_BLOCKED,timestamp:e})}sendIVSPlayerPlaybackBlockedEvent(e){this.eventHandler.callEvent({event:O.IVS_PLAYER_PLAYBACK_BLOCKED,timestamp:e})}sendIVSPlayerNetworkUnavailableEvent(e){this.eventHandler.callEvent({event:O.IVS_PLAYER_NETWORK_UNAVAILABLE,timestamp:e})}sendIVSPlayerInitializedEvent(e){this.eventHandler.callEvent({event:O.IVS_PLAYER_INITIALIZED,timestamp:e})}sendIVSPlayerWorkerErrorEvent(e){this.eventHandler.callEvent({event:O.IVS_PLAYER_WORKER_ERROR,timestamp:e})}sendIVSPlayerErrorEvent(e,r){this.eventHandler.callEvent({event:O.IVS_PLAYER_ERROR,timestamp:r,metaData:e})}sendIVSPlayerRecoverableErrorEvent(e,r){this.eventHandler.callEvent({event:O.IVS_PLAYER_RECOVERABLE_ERROR,timestamp:r,metaData:e})}sendIVSPlayerAnalyticsEvent(e,r){this.eventHandler.callEvent({event:O.IVS_PLAYER_ANALYTICS_EVENT,timestamp:r,metaData:e})}sendIVSPlayerPlaybackRateChangedEvent(e,r){this.eventHandler.callEvent({event:O.IVS_PLAYER_PLAYBACK_RATE_CHANGED,timestamp:r,metaData:{updatedPlaybackRate:e}})}sendIVSPlayerQualityChanged(e,r){this.eventHandler.callEvent({event:O.IVS_PLAYER_QUALITY_CHANGED,timestamp:r,metaData:e})}sendPlayerLiveLatency(e,r){this.eventHandler.callEvent({event:O.LIVESTREAM_LATENCY,timestamp:r,metaData:{latency:e}})}sendDisconnectEvent(e){this.eventHandler.callEvent({event:O.DISCONNECT,timestamp:e})}sendReconnectEvent(e){this.eventHandler.callEvent({event:O.RECONNECT_ATTEMPT,timestamp:e})}expectedVideoResolution(e,r,i){this.eventHandler.callEvent({event:O.EXPECTED_VIDEO_RESOLUTION,timestamp:i,metaData:{frameWidth:e,frameHeight:r}})}expectedScreenshareResolution(e,r,i){this.eventHandler.callEvent({event:O.EXPECTED_SCREENSHARE_RESOLUTION,timestamp:i,metaData:{frameWidth:e,frameHeight:r}})}};Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"registerIceServers",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"registerConsumer",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"registerProducer",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendConsumerSharedMediaStateEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"registerProducingTransport",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"registerConsumingTransport",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"deRegisterConsumer",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"deRegisterProducer",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"disconnectConsumingTransport",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"disconnectProducingTransport",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendPreCallTestBeginEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendScreenShareToggleEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendScreenShareRequestedEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendActiveSpeakerEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"devices",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"selectedDevice",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"mediaPermission",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"mediaPlaybackFailed",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"mediaTrackMuted",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"tabChanged",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"browserBackgrounded",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"browserForegrounded",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"legacySwitch",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"getPreCallTestResults",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendCallJoinBeginEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendNetworkQualityTestBeginEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendWebSocketConnectedEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendTransportConnectedEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendAudioToggleEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendVideoToggleEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendParticipantRoleToggleEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"startPingStats",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"stopPingStats",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendPingStatsEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerRebufferEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerAudioBlockEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerPlaybackBlockedEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerNetworkUnavailableEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerInitializedEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerWorkerErrorEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerErrorEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerRecoverableErrorEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerAnalyticsEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerPlaybackRateChangedEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerQualityChanged",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendPlayerLiveLatency",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendDisconnectEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendReconnectEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"expectedVideoResolution",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"expectedScreenshareResolution",null);K=Y([qv(TypeError,(s,t)=>Q.error(t,s))],K);const jv=K;class Rm extends lt{constructor(){super(...arguments);h(this,"stats");h(this,"peerId");h(this,"backend");h(this,"iceServers");h(this,"initialized",!1);h(this,"stalled",!1);h(this,"ipInformation");h(this,"logger")}initialize(g){return u(this,arguments,function*({peerId:e,engineName:r,env:i=yo.PROD,iceServers:a,apiBase:o="https://api.cluster.dyte.in",flags:c,logger:d=console,apiHostnames:l,skipConnectivityChecks:p=!1}){var T,v,P;try{this.peerId=e,this.logger=d,this.ipInformation=yield ph.getIPDetails({peerId:e,apiHostnames:l,logger:d}),this.backend=new jv(o,r,i,c,d,e,l),this.iceServers=a,(T=this.backend)==null||T.registerIceServers(this.iceServers),this.initialized=!0,(P=(v=this.backend)==null?void 0:v.eventHandler)==null||P.emit("initialized",this.ipInformation),this.emit("initialized",this.ipInformation),this.startPreCallTest(p)}catch(_){this.logger.error("callStats::CallStatsIntegration: ",{error:_}),this.stallCallStats()}})}configureSendTransport(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.registerProducingTransport(e)})}configureRecvTransport(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.registerConsumingTransport(e)})}candidateRegionalNetworkQualityTest(e){return u(this,null,function*(){const r=new Date;this.onSafeInitialization(()=>{var i;try{(i=this.backend)==null||i.sendNetworkQualityTestBeginEvent(e,r)}catch(a){this.logger.error("callStats::sendNetworkQualityTestBeginEvent",{error:{reason:a.reason}})}})})}roomJoined(e){return u(this,null,function*(){const r=new Date;this.onSafeInitialization(()=>{var i,a;(i=this.backend)==null||i.sendCallJoinBeginEvent(e,r),this.backend,(a=this.backend)==null||a.startPingStats()})})}audioOff(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendAudioToggleEvent(!1,e)})}audioOn(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendAudioToggleEvent(!0,e)})}videoOff(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendVideoToggleEvent(!1,e)})}videoOn(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendVideoToggleEvent(!0,e)})}callEnded(){const e=new Date;this.onSafeInitialization(()=>{var r,i;(r=this.backend)==null||r.stopPingStats(),(i=this.backend)==null||i.sendDisconnectEvent(e)})}screenShareStart(e){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendScreenShareToggleEvent(!0,e,r)})}consumerSharedMediaState(e,r){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendConsumerSharedMediaStateEvent(e,r)})}screenShareStop(e){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendScreenShareToggleEvent(!1,e,r)})}screenShareRequested(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendScreenShareRequestedEvent(e)})}activeSpeaker(e){if(e!==this.peerId)return;const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendActiveSpeakerEvent(e,r)})}devices(e,r){const i=new Date;this.onSafeInitialization(()=>{var a;(a=this.backend)==null||a.devices(e,r,i)})}selectedDevice(e,r){const i=new Date;this.onSafeInitialization(()=>{var a;(a=this.backend)==null||a.selectedDevice(e,r,i)})}mediaPermission(e,r){const i=new Date;this.onSafeInitialization(()=>{var a;(a=this.backend)==null||a.mediaPermission(e,r,i)})}mediaPlaybackFailed(e){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.mediaPlaybackFailed(e,r)})}mediaTrackMuted(e){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.mediaTrackMuted(e,r)})}tabChanged(e=!1){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.tabChanged(e,r)})}browserBackgrounded(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.browserBackgrounded(e)})}browserForegrounded(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.browserForegrounded(e)})}legacySwitch(e){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.legacySwitch(e,r)})}startPreCallTest(e=!1){return u(this,null,function*(){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendPreCallTestBeginEvent(e,r)})})}onPreCallTestResults(e){return this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.once("precall_end",e)}),e}onReceivingConsumerAudioStatus(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("consumer_audio_status",e)})}onReceivingConsumerVideoStatus(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("consumer_video_status",e)})}onReceivingProducerAudioStatus(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("producer_audio_status",e)})}onReceivingProducerVideoStatus(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("producer_video_status",e)})}onReceivingProducingTransportStatus(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("producing_transport_status",e)})}onReceivingConsumingTransportStatus(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("consuming_transport_status",e)})}onProducerScore(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("producer_score",e)})}onConsumerScore(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("consumer_score",e)})}onSafeInitialization(e){if(this.initialized)e(this.ipInformation,!1);else if(!this.stalled){const r=i=>{e(i,!0)};return this.once("initialized",r),r}return()=>{}}removeInitializationListener(e){this.removeListener("initialized",e)}stallCallStats(){this.stalled=!0,this.removeAllListeners("initialized")}ivsPlayerEvent(e,r){const i=new Date;this.onSafeInitialization(()=>{var a,o,c,d,l,p,g,T,v,P,_;switch(e){case"PlayerRebuffering":(a=this.backend)==null||a.sendIVSPlayerRebufferEvent(i);break;case"PlayerAudioBlocked":(o=this.backend)==null||o.sendIVSPlayerAudioBlockEvent(i);break;case"PlayerPlaybackBlocked":(c=this.backend)==null||c.sendIVSPlayerPlaybackBlockedEvent(i);break;case"PlayerNetworkUnavailable":(d=this.backend)==null||d.sendIVSPlayerNetworkUnavailableEvent(i);break;case"PlayerInitialized":(l=this.backend)==null||l.sendIVSPlayerInitializedEvent(i);break;case"PlayerWorkerError":(p=this.backend)==null||p.sendIVSPlayerWorkerErrorEvent(i);break;case"PlayerError":(g=this.backend)==null||g.sendIVSPlayerErrorEvent(r,i);break;case"PlayerRecoverableError":(T=this.backend)==null||T.sendIVSPlayerRecoverableErrorEvent(r,i);break;case"PlayerAnalyticsEvent":(v=this.backend)==null||v.sendIVSPlayerAnalyticsEvent(r,i);break;case"PlayerPlaybackRateChanged":(P=this.backend)==null||P.sendIVSPlayerPlaybackRateChangedEvent(r,i);break;case"PlayerQualityChanged":(_=this.backend)==null||_.sendIVSPlayerQualityChanged(r,i);break}})}livestreamLatency(e){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendPlayerLiveLatency(e,r)})}expectedVideoResolution(e,r){const i=new Date;this.onSafeInitialization(()=>{var a;(a=this.backend)==null||a.expectedVideoResolution(e,r,i)})}expectedScreenshareResolution(e,r){const i=new Date;this.onSafeInitialization(()=>{var a;(a=this.backend)==null||a.expectedScreenshareResolution(e,r,i)})}}const Gv=new Rm;Gv.setMaxListeners(30);function Wv(){this.__data__=[],this.size=0}function Vc(s,t){return s===t||s!==s&&t!==t}function Dl(s,t){for(var e=s.length;e--;)if(Vc(s[e][0],t))return e;return-1}var Jv=Array.prototype,Kv=Jv.splice;function zv(s){var t=this.__data__,e=Dl(t,s);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Kv.call(t,e,1),--this.size,!0}function Yv(s){var t=this.__data__,e=Dl(t,s);return e<0?void 0:t[e][1]}function Qv(s){return Dl(this.__data__,s)>-1}function Xv(s,t){var e=this.__data__,r=Dl(e,s);return r<0?(++this.size,e.push([s,t])):e[r][1]=t,this}function Er(s){var t=-1,e=s==null?0:s.length;for(this.clear();++t<e;){var r=s[t];this.set(r[0],r[1])}}Er.prototype.clear=Wv;Er.prototype.delete=zv;Er.prototype.get=Yv;Er.prototype.has=Qv;Er.prototype.set=Xv;function Zv(){this.__data__=new Er,this.size=0}function ey(s){var t=this.__data__,e=t.delete(s);return this.size=t.size,e}function ty(s){return this.__data__.get(s)}function sy(s){return this.__data__.has(s)}var ry=typeof global=="object"&&global&&global.Object===Object&&global;const bm=ry;var iy=typeof self=="object"&&self&&self.Object===Object&&self,ny=bm||iy||Function("return this")();const ks=ny;var ay=ks.Symbol;const Bs=ay;var km=Object.prototype,oy=km.hasOwnProperty,cy=km.toString,no=Bs?Bs.toStringTag:void 0;function dy(s){var t=oy.call(s,no),e=s[no];try{s[no]=void 0;var r=!0}catch(a){}var i=cy.call(s);return r&&(t?s[no]=e:delete s[no]),i}var ly=Object.prototype,uy=ly.toString;function hy(s){return uy.call(s)}var py="[object Null]",gy="[object Undefined]",cp=Bs?Bs.toStringTag:void 0;function un(s){return s==null?s===void 0?gy:py:cp&&cp in Object(s)?dy(s):hy(s)}function as(s){var t=typeof s;return s!=null&&(t=="object"||t=="function")}var my="[object AsyncFunction]",fy="[object Function]",Ty="[object GeneratorFunction]",vy="[object Proxy]";function gh(s){if(!as(s))return!1;var t=un(s);return t==fy||t==Ty||t==my||t==vy}var yy=ks["__core-js_shared__"];const tu=yy;var dp=function(){var s=/[^.]+$/.exec(tu&&tu.keys&&tu.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""}();function Sy(s){return!!dp&&dp in s}var Ey=Function.prototype,Py=Ey.toString;function hn(s){if(s!=null){try{return Py.call(s)}catch(t){}try{return s+""}catch(t){}}return""}var _y=/[\\^$.*+?()[\]{}|]/g,Cy=/^\[object .+?Constructor\]$/,wy=Function.prototype,Ry=Object.prototype,by=wy.toString,ky=Ry.hasOwnProperty,Iy=RegExp("^"+by.call(ky).replace(_y,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ay(s){if(!as(s)||Sy(s))return!1;var t=gh(s)?Iy:Cy;return t.test(hn(s))}function My(s,t){return s==null?void 0:s[t]}function pn(s,t){var e=My(s,t);return Ay(e)?e:void 0}var Dy=pn(ks,"Map");const bo=Dy;var Oy=pn(Object,"create");const ko=Oy;function Ny(){this.__data__=ko?ko(null):{},this.size=0}function Ly(s){var t=this.has(s)&&delete this.__data__[s];return this.size-=t?1:0,t}var Vy="__lodash_hash_undefined__",xy=Object.prototype,Uy=xy.hasOwnProperty;function $y(s){var t=this.__data__;if(ko){var e=t[s];return e===Vy?void 0:e}return Uy.call(t,s)?t[s]:void 0}var Fy=Object.prototype,By=Fy.hasOwnProperty;function Hy(s){var t=this.__data__;return ko?t[s]!==void 0:By.call(t,s)}var qy="__lodash_hash_undefined__";function jy(s,t){var e=this.__data__;return this.size+=this.has(s)?0:1,e[s]=ko&&t===void 0?qy:t,this}function cn(s){var t=-1,e=s==null?0:s.length;for(this.clear();++t<e;){var r=s[t];this.set(r[0],r[1])}}cn.prototype.clear=Ny;cn.prototype.delete=Ly;cn.prototype.get=$y;cn.prototype.has=Hy;cn.prototype.set=jy;function Gy(){this.size=0,this.__data__={hash:new cn,map:new(bo||Er),string:new cn}}function Wy(s){var t=typeof s;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?s!=="__proto__":s===null}function Ol(s,t){var e=s.__data__;return Wy(t)?e[typeof t=="string"?"string":"hash"]:e.map}function Jy(s){var t=Ol(this,s).delete(s);return this.size-=t?1:0,t}function Ky(s){return Ol(this,s).get(s)}function zy(s){return Ol(this,s).has(s)}function Yy(s,t){var e=Ol(this,s),r=e.size;return e.set(s,t),this.size+=e.size==r?0:1,this}function Pr(s){var t=-1,e=s==null?0:s.length;for(this.clear();++t<e;){var r=s[t];this.set(r[0],r[1])}}Pr.prototype.clear=Gy;Pr.prototype.delete=Jy;Pr.prototype.get=Ky;Pr.prototype.has=zy;Pr.prototype.set=Yy;var Qy=200;function Xy(s,t){var e=this.__data__;if(e instanceof Er){var r=e.__data__;if(!bo||r.length<Qy-1)return r.push([s,t]),this.size=++e.size,this;e=this.__data__=new Pr(r)}return e.set(s,t),this.size=e.size,this}function bs(s){var t=this.__data__=new Er(s);this.size=t.size}bs.prototype.clear=Zv;bs.prototype.delete=ey;bs.prototype.get=ty;bs.prototype.has=sy;bs.prototype.set=Xy;function Zy(s,t){for(var e=-1,r=s==null?0:s.length;++e<r&&t(s[e],e,s)!==!1;);return s}var eS=function(){try{var s=pn(Object,"defineProperty");return s({},"",{}),s}catch(t){}}();const _d=eS;function mh(s,t,e){t=="__proto__"&&_d?_d(s,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):s[t]=e}var tS=Object.prototype,sS=tS.hasOwnProperty;function Im(s,t,e){var r=s[t];(!(sS.call(s,t)&&Vc(r,e))||e===void 0&&!(t in s))&&mh(s,t,e)}function xc(s,t,e,r){var i=!e;e||(e={});for(var a=-1,o=t.length;++a<o;){var c=t[a],d=r?r(e[c],s[c],c,e,s):void 0;d===void 0&&(d=s[c]),i?mh(e,c,d):Im(e,c,d)}return e}function rS(s,t){for(var e=-1,r=Array(s);++e<s;)r[e]=t(e);return r}function Hs(s){return s!=null&&typeof s=="object"}var iS="[object Arguments]";function lp(s){return Hs(s)&&un(s)==iS}var Am=Object.prototype,nS=Am.hasOwnProperty,aS=Am.propertyIsEnumerable,oS=lp(function(){return arguments}())?lp:function(s){return Hs(s)&&nS.call(s,"callee")&&!aS.call(s,"callee")};const Io=oS;var cS=Array.isArray;const Ht=cS;function dS(){return!1}var Mm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,up=Mm&&typeof module=="object"&&module&&!module.nodeType&&module,lS=up&&up.exports===Mm,hp=lS?ks.Buffer:void 0,uS=hp?hp.isBuffer:void 0,hS=uS||dS;const Na=hS;var pS=9007199254740991,gS=/^(?:0|[1-9]\d*)$/;function fh(s,t){var e=typeof s;return t=t==null?pS:t,!!t&&(e=="number"||e!="symbol"&&gS.test(s))&&s>-1&&s%1==0&&s<t}var mS=9007199254740991;function Th(s){return typeof s=="number"&&s>-1&&s%1==0&&s<=mS}var fS="[object Arguments]",TS="[object Array]",vS="[object Boolean]",yS="[object Date]",SS="[object Error]",ES="[object Function]",PS="[object Map]",_S="[object Number]",CS="[object Object]",wS="[object RegExp]",RS="[object Set]",bS="[object String]",kS="[object WeakMap]",IS="[object ArrayBuffer]",AS="[object DataView]",MS="[object Float32Array]",DS="[object Float64Array]",OS="[object Int8Array]",NS="[object Int16Array]",LS="[object Int32Array]",VS="[object Uint8Array]",xS="[object Uint8ClampedArray]",US="[object Uint16Array]",$S="[object Uint32Array]",ye={};ye[MS]=ye[DS]=ye[OS]=ye[NS]=ye[LS]=ye[VS]=ye[xS]=ye[US]=ye[$S]=!0;ye[fS]=ye[TS]=ye[IS]=ye[vS]=ye[AS]=ye[yS]=ye[SS]=ye[ES]=ye[PS]=ye[_S]=ye[CS]=ye[wS]=ye[RS]=ye[bS]=ye[kS]=!1;function FS(s){return Hs(s)&&Th(s.length)&&!!ye[un(s)]}function vh(s){return function(t){return s(t)}}var Dm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,So=Dm&&typeof module=="object"&&module&&!module.nodeType&&module,BS=So&&So.exports===Dm,su=BS&&bm.process,HS=function(){try{var s=So&&So.require&&So.require("util").types;return s||su&&su.binding&&su.binding("util")}catch(t){}}();const La=HS;var pp=La&&La.isTypedArray,qS=pp?vh(pp):FS;const Nl=qS;var jS=Object.prototype,GS=jS.hasOwnProperty;function Om(s,t){var e=Ht(s),r=!e&&Io(s),i=!e&&!r&&Na(s),a=!e&&!r&&!i&&Nl(s),o=e||r||i||a,c=o?rS(s.length,String):[],d=c.length;for(var l in s)(t||GS.call(s,l))&&!(o&&(l=="length"||i&&(l=="offset"||l=="parent")||a&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||fh(l,d)))&&c.push(l);return c}var WS=Object.prototype;function Ll(s){var t=s&&s.constructor,e=typeof t=="function"&&t.prototype||WS;return s===e}function Nm(s,t){return function(e){return s(t(e))}}var JS=Nm(Object.keys,Object);const KS=JS;var zS=Object.prototype,YS=zS.hasOwnProperty;function Lm(s){if(!Ll(s))return KS(s);var t=[];for(var e in Object(s))YS.call(s,e)&&e!="constructor"&&t.push(e);return t}function Uc(s){return s!=null&&Th(s.length)&&!gh(s)}function Vl(s){return Uc(s)?Om(s):Lm(s)}function QS(s,t){return s&&xc(t,Vl(t),s)}function XS(s){var t=[];if(s!=null)for(var e in Object(s))t.push(e);return t}var ZS=Object.prototype,eE=ZS.hasOwnProperty;function tE(s){if(!as(s))return XS(s);var t=Ll(s),e=[];for(var r in s)r=="constructor"&&(t||!eE.call(s,r))||e.push(r);return e}function $c(s){return Uc(s)?Om(s,!0):tE(s)}function sE(s,t){return s&&xc(t,$c(t),s)}var Vm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,gp=Vm&&typeof module=="object"&&module&&!module.nodeType&&module,rE=gp&&gp.exports===Vm,mp=rE?ks.Buffer:void 0,fp=mp?mp.allocUnsafe:void 0;function xm(s,t){if(t)return s.slice();var e=s.length,r=fp?fp(e):new s.constructor(e);return s.copy(r),r}function Um(s,t){var e=-1,r=s.length;for(t||(t=Array(r));++e<r;)t[e]=s[e];return t}function iE(s,t){for(var e=-1,r=s==null?0:s.length,i=0,a=[];++e<r;){var o=s[e];t(o,e,s)&&(a[i++]=o)}return a}function $m(){return[]}var nE=Object.prototype,aE=nE.propertyIsEnumerable,Tp=Object.getOwnPropertySymbols,oE=Tp?function(s){return s==null?[]:(s=Object(s),iE(Tp(s),function(t){return aE.call(s,t)}))}:$m;const yh=oE;function cE(s,t){return xc(s,yh(s),t)}function Fm(s,t){for(var e=-1,r=t.length,i=s.length;++e<r;)s[i+e]=t[e];return s}var dE=Nm(Object.getPrototypeOf,Object);const Sh=dE;var lE=Object.getOwnPropertySymbols,uE=lE?function(s){for(var t=[];s;)Fm(t,yh(s)),s=Sh(s);return t}:$m;const Bm=uE;function hE(s,t){return xc(s,Bm(s),t)}function Hm(s,t,e){var r=t(s);return Ht(s)?r:Fm(r,e(s))}function fu(s){return Hm(s,Vl,yh)}function pE(s){return Hm(s,$c,Bm)}var gE=pn(ks,"DataView");const Tu=gE;var mE=pn(ks,"Promise");const vu=mE;var fE=pn(ks,"Set");const Mn=fE;var TE=pn(ks,"WeakMap");const yu=TE;var vp="[object Map]",vE="[object Object]",yp="[object Promise]",Sp="[object Set]",Ep="[object WeakMap]",Pp="[object DataView]",yE=hn(Tu),SE=hn(bo),EE=hn(vu),PE=hn(Mn),_E=hn(yu),ni=un;(Tu&&ni(new Tu(new ArrayBuffer(1)))!=Pp||bo&&ni(new bo)!=vp||vu&&ni(vu.resolve())!=yp||Mn&&ni(new Mn)!=Sp||yu&&ni(new yu)!=Ep)&&(ni=function(s){var t=un(s),e=t==vE?s.constructor:void 0,r=e?hn(e):"";if(r)switch(r){case yE:return Pp;case SE:return vp;case EE:return yp;case PE:return Sp;case _E:return Ep}return t});const Va=ni;var CE=Object.prototype,wE=CE.hasOwnProperty;function RE(s){var t=s.length,e=new s.constructor(t);return t&&typeof s[0]=="string"&&wE.call(s,"index")&&(e.index=s.index,e.input=s.input),e}var bE=ks.Uint8Array;const Cd=bE;function Eh(s){var t=new s.constructor(s.byteLength);return new Cd(t).set(new Cd(s)),t}function kE(s,t){var e=t?Eh(s.buffer):s.buffer;return new s.constructor(e,s.byteOffset,s.byteLength)}var IE=/\w*$/;function AE(s){var t=new s.constructor(s.source,IE.exec(s));return t.lastIndex=s.lastIndex,t}var _p=Bs?Bs.prototype:void 0,Cp=_p?_p.valueOf:void 0;function ME(s){return Cp?Object(Cp.call(s)):{}}function qm(s,t){var e=t?Eh(s.buffer):s.buffer;return new s.constructor(e,s.byteOffset,s.length)}var DE="[object Boolean]",OE="[object Date]",NE="[object Map]",LE="[object Number]",VE="[object RegExp]",xE="[object Set]",UE="[object String]",$E="[object Symbol]",FE="[object ArrayBuffer]",BE="[object DataView]",HE="[object Float32Array]",qE="[object Float64Array]",jE="[object Int8Array]",GE="[object Int16Array]",WE="[object Int32Array]",JE="[object Uint8Array]",KE="[object Uint8ClampedArray]",zE="[object Uint16Array]",YE="[object Uint32Array]";function QE(s,t,e){var r=s.constructor;switch(t){case FE:return Eh(s);case DE:case OE:return new r(+s);case BE:return kE(s,e);case HE:case qE:case jE:case GE:case WE:case JE:case KE:case zE:case YE:return qm(s,e);case NE:return new r;case LE:case UE:return new r(s);case VE:return AE(s);case xE:return new r;case $E:return ME(s)}}var wp=Object.create,XE=function(){function s(){}return function(t){if(!as(t))return{};if(wp)return wp(t);s.prototype=t;var e=new s;return s.prototype=void 0,e}}();const ZE=XE;function jm(s){return typeof s.constructor=="function"&&!Ll(s)?ZE(Sh(s)):{}}var eP="[object Map]";function tP(s){return Hs(s)&&Va(s)==eP}var Rp=La&&La.isMap,sP=Rp?vh(Rp):tP;const rP=sP;var iP="[object Set]";function nP(s){return Hs(s)&&Va(s)==iP}var bp=La&&La.isSet,aP=bp?vh(bp):nP;const oP=aP;var cP=1,dP=2,lP=4,Gm="[object Arguments]",uP="[object Array]",hP="[object Boolean]",pP="[object Date]",gP="[object Error]",Wm="[object Function]",mP="[object GeneratorFunction]",fP="[object Map]",TP="[object Number]",Jm="[object Object]",vP="[object RegExp]",yP="[object Set]",SP="[object String]",EP="[object Symbol]",PP="[object WeakMap]",_P="[object ArrayBuffer]",CP="[object DataView]",wP="[object Float32Array]",RP="[object Float64Array]",bP="[object Int8Array]",kP="[object Int16Array]",IP="[object Int32Array]",AP="[object Uint8Array]",MP="[object Uint8ClampedArray]",DP="[object Uint16Array]",OP="[object Uint32Array]",me={};me[Gm]=me[uP]=me[_P]=me[CP]=me[hP]=me[pP]=me[wP]=me[RP]=me[bP]=me[kP]=me[IP]=me[fP]=me[TP]=me[Jm]=me[vP]=me[yP]=me[SP]=me[EP]=me[AP]=me[MP]=me[DP]=me[OP]=!0;me[gP]=me[Wm]=me[PP]=!1;function ad(s,t,e,r,i,a){var o,c=t&cP,d=t&dP,l=t&lP;if(e&&(o=i?e(s,r,i,a):e(s)),o!==void 0)return o;if(!as(s))return s;var p=Ht(s);if(p){if(o=RE(s),!c)return Um(s,o)}else{var g=Va(s),T=g==Wm||g==mP;if(Na(s))return xm(s,c);if(g==Jm||g==Gm||T&&!i){if(o=d||T?{}:jm(s),!c)return d?hE(s,sE(o,s)):cE(s,QS(o,s))}else{if(!me[g])return i?s:{};o=QE(s,g,c)}}a||(a=new bs);var v=a.get(s);if(v)return v;a.set(s,o),oP(s)?s.forEach(function(C){o.add(ad(C,t,e,C,s,a))}):rP(s)&&s.forEach(function(C,w){o.set(w,ad(C,t,e,w,s,a))});var P=l?d?pE:fu:d?$c:Vl,_=p?void 0:P(s);return Zy(_||s,function(C,w){_&&(w=C,C=s[w]),Im(o,w,ad(C,t,e,w,s,a))}),o}var NP=1,LP=4;function Ph(s){return ad(s,NP|LP)}var VP="[object Symbol]";function xl(s){return typeof s=="symbol"||Hs(s)&&un(s)==VP}var xP=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,UP=/^\w*$/;function _h(s,t){if(Ht(s))return!1;var e=typeof s;return e=="number"||e=="symbol"||e=="boolean"||s==null||xl(s)?!0:UP.test(s)||!xP.test(s)||t!=null&&s in Object(t)}var $P="Expected a function";function Ch(s,t){if(typeof s!="function"||t!=null&&typeof t!="function")throw new TypeError($P);var e=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=e.cache;if(a.has(i))return a.get(i);var o=s.apply(this,r);return e.cache=a.set(i,o)||a,o};return e.cache=new(Ch.Cache||Pr),e}Ch.Cache=Pr;var FP=500;function BP(s){var t=Ch(s,function(r){return e.size===FP&&e.clear(),r}),e=t.cache;return t}var HP=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,qP=/\\(\\)?/g,jP=BP(function(s){var t=[];return s.charCodeAt(0)===46&&t.push(""),s.replace(HP,function(e,r,i,a){t.push(i?a.replace(qP,"$1"):r||e)}),t});const GP=jP;function WP(s,t){for(var e=-1,r=s==null?0:s.length,i=Array(r);++e<r;)i[e]=t(s[e],e,s);return i}var JP=1/0,kp=Bs?Bs.prototype:void 0,Ip=kp?kp.toString:void 0;function Km(s){if(typeof s=="string")return s;if(Ht(s))return WP(s,Km)+"";if(xl(s))return Ip?Ip.call(s):"";var t=s+"";return t=="0"&&1/s==-JP?"-0":t}function KP(s){return s==null?"":Km(s)}function zm(s,t){return Ht(s)?s:_h(s,t)?[s]:GP(KP(s))}var zP=1/0;function Ul(s){if(typeof s=="string"||xl(s))return s;var t=s+"";return t=="0"&&1/s==-zP?"-0":t}function Ym(s,t){t=zm(t,s);for(var e=0,r=t.length;s!=null&&e<r;)s=s[Ul(t[e++])];return e&&e==r?s:void 0}function YP(s,t,e){var r=s==null?void 0:Ym(s,t);return r===void 0?e:r}function QP(s,t,e){t=zm(t,s);for(var r=-1,i=t.length,a=!1;++r<i;){var o=Ul(t[r]);if(!(a=s!=null&&e(s,o)))break;s=s[o]}return a||++r!=i?a:(i=s==null?0:s.length,!!i&&Th(i)&&fh(o,i)&&(Ht(s)||Io(s)))}var XP=Object.defineProperty,ZP=(s,t)=>{for(var e in t)XP(s,e,{get:t[e],enumerable:!0})},e_={};ZP(e_,{permissions:()=>t_,theme:()=>s_});var At=(s=>(s.GroupCall="GROUP_CALL",s.Webinar="WEBINAR",s.AudioRoom="AUDIO_ROOM",s.Livestream="LIVESTREAM",s.Chat="CHAT",s))(At||{}),j=(s=>(s.Allowed="ALLOWED",s.NotAllowed="NOT_ALLOWED",s.CanRequest="CAN_REQUEST",s))(j||{}),t_={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},s_={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}},Qm="hXgU8Wc8pwuGNq9ms5q9Hh",bg;typeof process!="undefined"&&(bg=process==null?void 0:process.env)!=null&&bg.FLAGSMITH_ENVIRONMENT_KEY&&(Qm=process.env.FLAGSMITH_ENVIRONMENT_KEY);function r_(s=[]){const t={};return s.forEach(e=>{t[e.feature.name]={enabled:e.enabled,value:e.feature_state_value}}),t}var Xm=class{constructor(s=Qm){h(this,"flags",{});h(this,"environmentKey",null);this.environmentKey=s}identifyAndFetchFlagsWithRetry(c){return u(this,arguments,function*({primaryEndpoint:s,secondaryEndpoint:t,forceEvaluate:e,timeout:r,uniqueIdentifier:i,traitsObj:a,logger:o}){const d=JSON.parse(JSON.stringify(a)),l=Object.entries(d).map(g=>({trait_key:g[0],trait_value:g[1]})),p=[s,t,t];for(const g of p)try{const T=new AbortController,v=setTimeout(()=>T.abort(),r),P="_"+(Math.random()+1).toString(36).substring(2),_=yield fetch(`https://${g}/api/v1/identities/`,{method:"POST",headers:{"Content-Type":"application/json","X-Environment-Key":this.environmentKey},body:JSON.stringify({identifier:i+(e?P:""),traits:l}),signal:T.signal});if(clearTimeout(v),!_.ok)throw new Error(`Request failed with status ${_.status}`);const C=yield _.json();return r_(C.flags||[])}catch(T){o.error("Flagsmith identify failed!!",{error:T,url:g})}return{}})}identify(o){return u(this,arguments,function*(s,t={},e=!1,r=5e3,i="edge.api.flagsmith.com",a=console){return this.flags=yield this.identifyAndFetchFlagsWithRetry({traitsObj:t,uniqueIdentifier:s,forceEvaluate:e,timeout:r,primaryEndpoint:i,secondaryEndpoint:"edge.api.flagsmith.com",logger:a}),this.flags})}getValue(s){return this.flags&&this.flags[s]&&this.flags[s].value}hasFeature(s){return this.flags&&this.flags[s]&&this.flags[s].enabled}getAllFlags(){return this.flags}},i_=new Xm;function n_(s){return new Xm(s)}var Zm=[-2,-1,0,1,2],a_=[0,1,2,3,4];function o_(s){s=s.trim();let t="0",e="0",r="0";return s.length==4?(t="0x"+s[1]+s[1],e="0x"+s[2]+s[2],r="0x"+s[3]+s[3]):s.length>6&&(t="0x"+s[1]+s[2],e="0x"+s[3]+s[4],r="0x"+s[5]+s[6]),[+t,+e,+r]}var c_=(s,t,e)=>{let r,i,a;if(t==0)r=i=a=e;else{const o=(l,p,g)=>(g<0&&(g+=1),g>1&&(g-=1),g<.16666666666666666?l+(p-l)*6*g:g<.5?p:g<.6666666666666666?l+(p-l)*(.6666666666666666-g)*6:l),c=e<.5?e*(1+t):e+t-e*t,d=2*e-c;r=o(d,c,s+1/3),i=o(d,c,s),a=o(d,c,s-1/3)}return[Math.round(r*255),Math.round(i*255),Math.round(a*255)]},d_=(s,t,e)=>{s/=255,t/=255,e/=255;const r=Math.max(s,t,e),i=Math.min(s,t,e);let a,o;const c=(r+i)/2;if(r==i)a=o=0;else{const d=r-i;switch(o=c>.5?d/(2-r-i):d/(r+i),r){case s:a=(t-e)/d+(t<e?6:0);break;case t:a=(e-s)/d+2;break;case e:a=(s-t)/d+4;break}a/=6}return[a,o,c]},l_=(s,t,e)=>{const r=i=>i.toString(16).padStart(2,"0");return`#${r(s)}${r(t)}${r(e)}`},ef=(s,t=Zm,e=.4)=>{const r=[],[i,a,o]=o_(s),[c,d,l]=d_(i,a,o),p=Math.round(l*100);p>70?e=.8:p>60?e=.9:p<10?e=.075:p<42&&(e=.3);const g=t.findIndex(C=>C===0);if(g===-1)throw new Error("Invalid reducer provided, it must contain atleast one zero");const T=5-g,v=g+1,P=(100-p)/T,_=p/v;for(const C of t){let w;C<0?w=p+C*_*e:C>0?w=p+C*P*e:w=p;const[V,F,N]=c_(c,d,w/100);r.push(l_(V,F,N))}return r},Ap={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"}},u_=s=>{const[t,e,r,i,a]=ef(s,Zm);return{300:t,400:e,500:r,600:i,700:a}},h_=s=>{if(s==="#FFFFFF")return Ap.light.background;if(s==="#000000")return Ap.dark.background;const[t,e,r,i,a]=ef(s,a_);return{1e3:t,900:e,800:r,700:i,600:a}},p_={border_radius:"rounded",border_width:"thin",spacing_base:4,theme:"dark",colors:{brand:u_("#2160FD"),background:h_("#141414"),danger:"#FF2D2D",text:"#EEEEEE",text_on_brand:"#EEEEEE",success:"#62A504",video_bg:"#191919",warning:"#FFCD07"}};function tf(){return Ph(p_)}var g_={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:tf(),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 m_(){return Ph(g_)}var f_={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:tf(),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 wh(){return Ph(f_)}var Do;class sf{constructor(){m(this,Do,void 0)}get telemetry(){var t;return(t=n(this,Do))==null?void 0:t.getValue("telemetry")}init(t){f(this,Do,t)}info(t,e,r){var i;(i=this.telemetry)==null||i.addLogInCurrentSpan("info",t,e,r)}error(t,e,r){var i;(i=this.telemetry)==null||i.addLogInCurrentSpan("error",t,e,r)}debug(t,e,r){var i;(i=this.telemetry)==null||i.addLogInCurrentSpan("debug",t,e,r)}log(t,e,r){var i;(i=this.telemetry)==null||i.addLogInCurrentSpan("log",t,e,r)}warn(t,e,r){var i;(i=this.telemetry)==null||i.addLogInCurrentSpan("warn",t,e,r)}}Do=new WeakMap;var Js,Ks;const Kh=class extends lt.EventEmitter{constructor(e){super();m(this,Js,void 0);m(this,Ks,void 0);h(this,"asyncPromiseTimeout");h(this,"logger");this.logger=e,f(this,Js,new Map),f(this,Ks,new Map),this.asyncPromiseTimeout=8e3}emitAsync(e,...r){return u(this,null,function*(){n(this,Js).set(e,[]);const i=n(this,Ks).get(e).map(()=>new Promise(a=>{n(this,Js).get(e).push(a)}));ep(Kh.prototype,this,"emit").call(this,e,...r),yield Promise.race([Promise.all(i),new Promise((a,o)=>setTimeout(()=>o(new Error(`emitAsync failed to resolve for event ${e}.`)),this.asyncPromiseTimeout))]),n(this,Js).delete(e)})}onAsync(e,r){const i=n(this,Js),a=(...o)=>u(this,null,function*(){var d;try{yield r(...o)}catch(l){this.logger.error("[onAsync]",{error:l})}const c=(d=i.get(e))==null?void 0:d.shift();c==null||c()});return n(this,Ks).get(e)||n(this,Ks).set(e,[]),n(this,Ks).get(e).push(a),super.on(e,a)}reset(){f(this,Js,new Map),f(this,Ks,new Map),super.removeAllListeners()}};let Su=Kh;Js=new WeakMap,Ks=new WeakMap;var T_=/\s/;function v_(s){for(var t=s.length;t--&&T_.test(s.charAt(t)););return t}var y_=/^\s+/;function S_(s){return s&&s.slice(0,v_(s)+1).replace(y_,"")}var Mp=0/0,E_=/^[-+]0x[0-9a-f]+$/i,P_=/^0b[01]+$/i,__=/^0o[0-7]+$/i,C_=parseInt;function Dp(s){if(typeof s=="number")return s;if(xl(s))return Mp;if(as(s)){var t=typeof s.valueOf=="function"?s.valueOf():s;s=as(t)?t+"":t}if(typeof s!="string")return s===0?s:+s;s=S_(s);var e=P_.test(s);return e||__.test(s)?C_(s.slice(2),e?2:8):E_.test(s)?Mp:+s}function Rh(s){return s}function w_(s,t,e){switch(e.length){case 0:return s.call(t);case 1:return s.call(t,e[0]);case 2:return s.call(t,e[0],e[1]);case 3:return s.call(t,e[0],e[1],e[2])}return s.apply(t,e)}function R_(){}var b_=800,k_=16,I_=Date.now;function A_(s){var t=0,e=0;return function(){var r=I_(),i=k_-(r-e);if(e=r,i>0){if(++t>=b_)return arguments[0]}else t=0;return s.apply(void 0,arguments)}}function M_(s){return function(){return s}}var D_=_d?function(s,t){return _d(s,"toString",{configurable:!0,enumerable:!1,value:M_(t),writable:!0})}:Rh;const O_=D_;var N_=A_(O_);const L_=N_;function V_(s,t,e,r){for(var i=s.length,a=e+(r?1:-1);r?a--:++a<i;)if(t(s[a],a,s))return a;return-1}function x_(s){return s!==s}function U_(s,t,e){for(var r=e-1,i=s.length;++r<i;)if(s[r]===t)return r;return-1}function $_(s,t,e){return t===t?U_(s,t,e):V_(s,x_,e)}function F_(s,t){var e=s==null?0:s.length;return!!e&&$_(s,t,0)>-1}var Op=Math.max;function B_(s,t,e){return t=Op(t===void 0?s.length-1:t,0),function(){for(var r=arguments,i=-1,a=Op(r.length-t,0),o=Array(a);++i<a;)o[i]=r[t+i];i=-1;for(var c=Array(t+1);++i<t;)c[i]=r[i];return c[t]=e(o),w_(s,this,c)}}function H_(s,t){return L_(B_(s,t,Rh),s+"")}function q_(s,t,e){if(!as(e))return!1;var r=typeof t;return(r=="number"?Uc(e)&&fh(t,e.length):r=="string"&&t in e)?Vc(e[t],s):!1}function j_(s){return H_(function(t,e){var r=-1,i=e.length,a=i>1?e[i-1]:void 0,o=i>2?e[2]:void 0;for(a=s.length>3&&typeof a=="function"?(i--,a):void 0,o&&q_(e[0],e[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var c=e[r];c&&s(t,c,r,a)}return t})}var G_="[object Object]",W_=Function.prototype,J_=Object.prototype,rf=W_.toString,K_=J_.hasOwnProperty,z_=rf.call(Object);function Y_(s){if(!Hs(s)||un(s)!=G_)return!1;var t=Sh(s);if(t===null)return!0;var e=K_.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&rf.call(e)==z_}var Q_="__lodash_hash_undefined__";function X_(s){return this.__data__.set(s,Q_),this}function Z_(s){return this.__data__.has(s)}function Ao(s){var t=-1,e=s==null?0:s.length;for(this.__data__=new Pr;++t<e;)this.add(s[t])}Ao.prototype.add=Ao.prototype.push=X_;Ao.prototype.has=Z_;function eC(s,t){for(var e=-1,r=s==null?0:s.length;++e<r;)if(t(s[e],e,s))return!0;return!1}function nf(s,t){return s.has(t)}var tC=1,sC=2;function af(s,t,e,r,i,a){var o=e&tC,c=s.length,d=t.length;if(c!=d&&!(o&&d>c))return!1;var l=a.get(s),p=a.get(t);if(l&&p)return l==t&&p==s;var g=-1,T=!0,v=e&sC?new Ao:void 0;for(a.set(s,t),a.set(t,s);++g<c;){var P=s[g],_=t[g];if(r)var C=o?r(_,P,g,t,s,a):r(P,_,g,s,t,a);if(C!==void 0){if(C)continue;T=!1;break}if(v){if(!eC(t,function(w,V){if(!nf(v,V)&&(P===w||i(P,w,e,r,a)))return v.push(V)})){T=!1;break}}else if(!(P===_||i(P,_,e,r,a))){T=!1;break}}return a.delete(s),a.delete(t),T}function rC(s){var t=-1,e=Array(s.size);return s.forEach(function(r,i){e[++t]=[i,r]}),e}function bh(s){var t=-1,e=Array(s.size);return s.forEach(function(r){e[++t]=r}),e}var iC=1,nC=2,aC="[object Boolean]",oC="[object Date]",cC="[object Error]",dC="[object Map]",lC="[object Number]",uC="[object RegExp]",hC="[object Set]",pC="[object String]",gC="[object Symbol]",mC="[object ArrayBuffer]",fC="[object DataView]",Np=Bs?Bs.prototype:void 0,ru=Np?Np.valueOf:void 0;function TC(s,t,e,r,i,a,o){switch(e){case fC:if(s.byteLength!=t.byteLength||s.byteOffset!=t.byteOffset)return!1;s=s.buffer,t=t.buffer;case mC:return!(s.byteLength!=t.byteLength||!a(new Cd(s),new Cd(t)));case aC:case oC:case lC:return Vc(+s,+t);case cC:return s.name==t.name&&s.message==t.message;case uC:case pC:return s==t+"";case dC:var c=rC;case hC:var d=r&iC;if(c||(c=bh),s.size!=t.size&&!d)return!1;var l=o.get(s);if(l)return l==t;r|=nC,o.set(s,t);var p=af(c(s),c(t),r,i,a,o);return o.delete(s),p;case gC:if(ru)return ru.call(s)==ru.call(t)}return!1}var vC=1,yC=Object.prototype,SC=yC.hasOwnProperty;function EC(s,t,e,r,i,a){var o=e&vC,c=fu(s),d=c.length,l=fu(t),p=l.length;if(d!=p&&!o)return!1;for(var g=d;g--;){var T=c[g];if(!(o?T in t:SC.call(t,T)))return!1}var v=a.get(s),P=a.get(t);if(v&&P)return v==t&&P==s;var _=!0;a.set(s,t),a.set(t,s);for(var C=o;++g<d;){T=c[g];var w=s[T],V=t[T];if(r)var F=o?r(V,w,T,t,s,a):r(w,V,T,s,t,a);if(!(F===void 0?w===V||i(w,V,e,r,a):F)){_=!1;break}C||(C=T=="constructor")}if(_&&!C){var N=s.constructor,B=t.constructor;N!=B&&"constructor"in s&&"constructor"in t&&!(typeof N=="function"&&N instanceof N&&typeof B=="function"&&B instanceof B)&&(_=!1)}return a.delete(s),a.delete(t),_}var PC=1,Lp="[object Arguments]",Vp="[object Array]",Kc="[object Object]",_C=Object.prototype,xp=_C.hasOwnProperty;function CC(s,t,e,r,i,a){var o=Ht(s),c=Ht(t),d=o?Vp:Va(s),l=c?Vp:Va(t);d=d==Lp?Kc:d,l=l==Lp?Kc:l;var p=d==Kc,g=l==Kc,T=d==l;if(T&&Na(s)){if(!Na(t))return!1;o=!0,p=!1}if(T&&!p)return a||(a=new bs),o||Nl(s)?af(s,t,e,r,i,a):TC(s,t,d,e,r,i,a);if(!(e&PC)){var v=p&&xp.call(s,"__wrapped__"),P=g&&xp.call(t,"__wrapped__");if(v||P){var _=v?s.value():s,C=P?t.value():t;return a||(a=new bs),i(_,C,e,r,a)}}return T?(a||(a=new bs),EC(s,t,e,r,i,a)):!1}function $l(s,t,e,r,i){return s===t?!0:s==null||t==null||!Hs(s)&&!Hs(t)?s!==s&&t!==t:CC(s,t,e,r,$l,i)}var wC=1,RC=2;function bC(s,t,e,r){var i=e.length,a=i,o=!r;if(s==null)return!a;for(s=Object(s);i--;){var c=e[i];if(o&&c[2]?c[1]!==s[c[0]]:!(c[0]in s))return!1}for(;++i<a;){c=e[i];var d=c[0],l=s[d],p=c[1];if(o&&c[2]){if(l===void 0&&!(d in s))return!1}else{var g=new bs;if(r)var T=r(l,p,d,s,t,g);if(!(T===void 0?$l(p,l,wC|RC,r,g):T))return!1}}return!0}function of(s){return s===s&&!as(s)}function kC(s){for(var t=Vl(s),e=t.length;e--;){var r=t[e],i=s[r];t[e]=[r,i,of(i)]}return t}function cf(s,t){return function(e){return e==null?!1:e[s]===t&&(t!==void 0||s in Object(e))}}function IC(s){var t=kC(s);return t.length==1&&t[0][2]?cf(t[0][0],t[0][1]):function(e){return e===s||bC(e,s,t)}}function AC(s,t){return s!=null&&t in Object(s)}function MC(s,t){return s!=null&&QP(s,t,AC)}var DC=1,OC=2;function NC(s,t){return _h(s)&&of(t)?cf(Ul(s),t):function(e){var r=YP(e,s);return r===void 0&&r===t?MC(e,s):$l(t,r,DC|OC)}}function LC(s){return function(t){return t==null?void 0:t[s]}}function VC(s){return function(t){return Ym(t,s)}}function xC(s){return _h(s)?LC(Ul(s)):VC(s)}function UC(s){return typeof s=="function"?s:s==null?Rh:typeof s=="object"?Ht(s)?NC(s[0],s[1]):IC(s):xC(s)}function $C(s){return function(t,e,r){for(var i=-1,a=Object(t),o=r(t),c=o.length;c--;){var d=o[s?c:++i];if(e(a[d],d,a)===!1)break}return t}}var FC=$C();const BC=FC;var HC=function(){return ks.Date.now()};const iu=HC;var qC="Expected a function",jC=Math.max,GC=Math.min;function kh(s,t,e){var r,i,a,o,c,d,l=0,p=!1,g=!1,T=!0;if(typeof s!="function")throw new TypeError(qC);t=Dp(t)||0,as(e)&&(p=!!e.leading,g="maxWait"in e,a=g?jC(Dp(e.maxWait)||0,t):a,T="trailing"in e?!!e.trailing:T);function v(G){var re=r,tt=i;return r=i=void 0,l=G,o=s.apply(tt,re),o}function P(G){return l=G,c=setTimeout(w,t),p?v(G):o}function _(G){var re=G-d,tt=G-l,ds=t-re;return g?GC(ds,a-tt):ds}function C(G){var re=G-d,tt=G-l;return d===void 0||re>=t||re<0||g&&tt>=a}function w(){var G=iu();if(C(G))return V(G);c=setTimeout(w,_(G))}function V(G){return c=void 0,T&&r?v(G):(r=i=void 0,o)}function F(){c!==void 0&&clearTimeout(c),l=0,r=d=i=c=void 0}function N(){return c===void 0?o:V(iu())}function B(){var G=iu(),re=C(G);if(r=arguments,i=this,d=G,re){if(c===void 0)return P(d);if(g)return clearTimeout(c),c=setTimeout(w,t),v(d)}return c===void 0&&(c=setTimeout(w,t)),o}return B.cancel=F,B.flush=N,B}function Eu(s,t,e){(e!==void 0&&!Vc(s[t],e)||e===void 0&&!(t in s))&&mh(s,t,e)}function WC(s){return Hs(s)&&Uc(s)}function Pu(s,t){if(!(t==="constructor"&&typeof s[t]=="function")&&t!="__proto__")return s[t]}function JC(s){return xc(s,$c(s))}function KC(s,t,e,r,i,a,o){var c=Pu(s,e),d=Pu(t,e),l=o.get(d);if(l){Eu(s,e,l);return}var p=a?a(c,d,e+"",s,t,o):void 0,g=p===void 0;if(g){var T=Ht(d),v=!T&&Na(d),P=!T&&!v&&Nl(d);p=d,T||v||P?Ht(c)?p=c:WC(c)?p=Um(c):v?(g=!1,p=xm(d,!0)):P?(g=!1,p=qm(d,!0)):p=[]:Y_(d)||Io(d)?(p=c,Io(c)?p=JC(c):(!as(c)||gh(c))&&(p=jm(d))):g=!1}g&&(o.set(d,p),i(p,d,r,a,o),o.delete(d)),Eu(s,e,p)}function df(s,t,e,r,i){s!==t&&BC(t,function(a,o){if(i||(i=new bs),as(a))KC(s,t,o,e,df,r,i);else{var c=r?r(Pu(s,o),a,o+"",s,t,i):void 0;c===void 0&&(c=a),Eu(s,o,c)}},$c)}function zC(s,t,e){for(var r=-1,i=s==null?0:s.length;++r<i;)if(e(t,s[r]))return!0;return!1}var YC="[object Map]",QC="[object Set]",XC=Object.prototype,ZC=XC.hasOwnProperty;function ew(s){if(s==null)return!0;if(Uc(s)&&(Ht(s)||typeof s=="string"||typeof s.splice=="function"||Na(s)||Nl(s)||Io(s)))return!s.length;var t=Va(s);if(t==YC||t==QC)return!s.size;if(Ll(s))return!Lm(s).length;for(var e in s)if(ZC.call(s,e))return!1;return!0}function tw(s,t){return $l(s,t)}var sw=j_(function(s,t,e){df(s,t,e)});const br=sw;var rw=1/0,iw=Mn&&1/bh(new Mn([,-0]))[1]==rw?function(s){return new Mn(s)}:R_;const nw=iw;var aw=200;function lf(s,t,e){var r=-1,i=F_,a=s.length,o=!0,c=[],d=c;if(e)o=!1,i=zC;else if(a>=aw){var l=t?null:nw(s);if(l)return bh(l);o=!1,i=nf,d=new Ao}else d=t?[]:c;e:for(;++r<a;){var p=s[r],g=t?t(p):p;if(p=e||p!==0?p:0,o&&g===g){for(var T=d.length;T--;)if(d[T]===g)continue e;t&&d.push(g),c.push(p)}else i(d,g,e)||(d!==c&&d.push(g),c.push(p))}return c}function ow(s){return s&&s.length?lf(s):[]}function cw(s,t){return s&&s.length?lf(s,UC(t)):[]}var _u=(s=>(s.PARTICIPANT="PARTICIPANT",s.PEER="PEER",s.CLIENT="CLIENT",s))(_u||{});const ee={PROPAGATE_KICK_ALL:"propagate_kick_across_rooms",REFRESH_ID_ON_DISCONNECTION:"refresh_id_on_disconnection",SKIP_OTEL_TRACES:"skip_otel_traces",USE_USERIDS_IN_CHAT:"use_userids_in_chat",ENABLE_CF_SIMULCAST:"enable_cf_simulcast",CF_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED:"cf_transport_force_relay_on_ice_failed",LOG_LEVEL:"log_level",V1_PLUGINS:"v1_plugins",LIVESTREAM:"feat_livestream",VAL_MIN_FRAMERATE:"val_min_framerate",SCREEENSHARE_ERR_HACK:"screenshare_err_hack",SCREEENSHARE_CONSTRAINTS_RETRY:"screenshare_constraints_retry",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",EXP_RESHARE:"exp_reshare",SKIP_SETTING_IN_USE_DEVICE:"skip_setting_in_use_device",PRECALL_BANDWIDTH_TEST:"precall_bandwidth_test",DEBUG_SOCKET_JOIN:"debug_socket_join",FORCE_RELAY:"force_relay",FORCE_VIDEO_CODEC:"force_video_codec",TRACK_HINT:"track_hint",OVERRIDE_SIMULCAST_DYNAMIC:"override_simulcast_dynamic",PRECREATE_PRODUCERS:"precreate_producers",DISABLE_OPUS_DTX_CF:"disable_opus_dtx_cf",ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS:"enable_audio_activity_debug_logs",DISABLE_LAYER_SWITCH:"disable_layer_switch"};function od(s){const t={};return typeof(s==null?void 0:s.code)=="number"&&(t.code=s.code),typeof(s==null?void 0:s.code)=="string"&&(t.code=s.code.substring(0,100)),typeof(s==null?void 0:s.name)=="string"&&(t.name=s.name.substring(0,500)),typeof(s==null?void 0:s.message)=="string"&&(t.message=s.message.substring(0,500)),typeof(s==null?void 0:s.reason)=="string"&&(t.reason=s.reason.substring(0,500)),typeof(s==null?void 0:s.stack)=="string"&&(t.stack=s.stack.substring(0,500)),t}const dw={audio:!0,video:!0,screenshareAudio:!0,screenshareVideo:!0},ao={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"},lw={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 xa(s,t){const e=s.getValue("overrides");return e&&e[t]?e[t]:!1}function uw({baseURI:s}){return s.includes("preprod.dyte")||s.includes("preprod.realtime")?yo.PREPROD:s.includes("devel.dyte")||s.includes("devel.realtime")?yo.DEVEL:yo.PROD}function nn({servicePrefix:s,baseURI:t}){return`${s}.${t}`}function uf(s){const t=s.getValue("baseURI");return{location:nn({servicePrefix:"location",baseURI:t}),locationLegacy:nn({servicePrefix:"location-legacy",baseURI:t}),daCollector:nn({servicePrefix:"da-collector",baseURI:t.replace("realtime.cloudflare.com","dyte.io")})}}const hw='<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>',pw='<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>',zc=s=>{if(!s)return;if(!s.startsWith("<svg"))return new Promise(a=>{a(s)});const e=new Blob([s],{type:"image/svg+xml"}),r=new Image,i=window.URL.createObjectURL(e);return new Promise((a,o)=>{r.onload=()=>{a(r),window.URL.revokeObjectURL(i)},r.onerror=()=>{o(),window.URL.revokeObjectURL(i)},r.src=i})},gi={logs:"https://api-silos.dyte.io/otel/logs",mock:{url:"https://mock.dyte.io",domain:"mock.dyte.io",app:"https://app.dyte.io/v2/meeting",stagingApp:"https://app.devel.dyte.io/v2/meeting"},apiBase:{prod:"https://api.dyte.io",staging:"https://api.devel.dyte.io",prodAlternate:"https://api.cluster.dyte.in"},baseURI:{prod:"dyte.io",staging:"devel.dyte.io"}};function gw(s){var r,i,a;const t=typeof navigator!="undefined"&&!navigator.isReactNative&&typeof window!="undefined"&&((r=window.location.host)==null?void 0:r.includes(gi.baseURI.staging)),e=!!((a=(i=s==null?void 0:s.getValue("modules"))==null?void 0:i.devTools)!=null&&a.logs);return t||e}function mw(s,t){var e;if(s!=null&&s.getValue("flagsmith").hasFeature(ee.LOG_LEVEL)){let r=((e=s.getValue("flagsmith").getValue(ee.LOG_LEVEL))==null?void 0:e.toString())||"all";if(r=r.toLowerCase().trim(),r==="off")return!1;if(r!=="all"){const i=["debug","log","info","warn","error"],a=i.indexOf(t),o=i.indexOf(r);if(a<o)return!1}}return!0}function hf(s,t,e={}){return Object.getOwnPropertyNames(s).forEach(r=>{var a;if([null,void 0,NaN].includes(s[r])||t&&(((a=t.match(/\./g))==null?void 0:a.length)||0)>=10)return;const i=t?`${t}.${r}`:r;typeof s[r]=="object"?hf(s[r],i,e):["number","string","boolean"].includes(typeof s[r])&&(e[i]=s[r])}),e}function Up(s,t,e={},r=""){const i={};try{const a=JSON.stringify(e),o=JSON.parse(a),c=hf(o,r),d=JSON.stringify(c);return JSON.parse(d)}catch(a){const o=od(a);i[`${r}.error.message`]=o.message||"",i[`${r}.error.stack`]=o.stack||"",i[`${r}.error.reason`]=o.reason||"",i[`${r}.error.source`]="safelyFlattenObjForOpenTelemetry"}return i}const zh=class{constructor(){h(this,"logsCache",[]);h(this,"logsProcessorTimer");h(this,"tracingEnabled",!0);h(this,"initialized",!1);h(this,"logsProcessingInterval",7e3);h(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"]);h(this,"meetingMetadata",{})}get logsEndpoint(){const t=mr.getContext(this.meetingMetadata.peerId);return`https://${nn({servicePrefix:"api-silos",baseURI:t.getValue("baseURI")})}/otel/logs`}resetPeerId(t){this.meetingMetadata.peerId=t}init(t,e,r){this.tracingEnabled=!0,this.initialized=!1,this.logsCache=[];const i=t.getValue("peerId");this.meetingMetadata=e,this.tracingEnabled=r,this.meetingMetadata.peerId=i,this.meetingMetadata.sdkVersion=t.getValue("sdkVersion");const{RNDeviceInfoImpl:a}=navigator;this.meetingMetadata.deviceInfo=navigator.isReactNative?a==null?void 0:a.getDeviceInfo():Se.getDeviceInfo(),this.meetingMetadata.visitedUrl=!navigator.isReactNative&&typeof window!="undefined"&&window.location.href,this.logsProcessorTimer=setInterval(this.processCachedLogs.bind(this),this.logsProcessingInterval),r&&(this.initialized=!0)}static trace(t,e=void 0){return(r,i,a)=>{const o=a.value;return a.value=function(...d){var T;const l=this==null?void 0:this.telemetry;if(!l||!l.initialized||navigator.isReactNative||!l.tracingEnabled||(T=mr.getContext(l.meetingMetadata.peerId))!=null&&T.getValue("flagsmith").hasFeature(ee.SKIP_OTEL_TRACES))return o.apply(this,d);l.addLogInCurrentSpan("info",t,e);const p=performance.now(),g=o.apply(this,d);return Promise.resolve(g).then(()=>{const v=performance.now();v-p>10&&l.addLogInCurrentSpan("info",`${t}_timing`,{execTime:v-p,country:zh.location.country})}).catch(()=>{const v=performance.now();l.addLogInCurrentSpan("info",`${t}_timing`,{execTime:v-p})}),g},a}}injectContext(t){var i;const e=Tr.v4().replace(/-/g,"").substring(0,16),r=(i=this.meetingMetadata.peerId)==null?void 0:i.replace(/-/g,"");t.TRACEPARENT=`00-${r}-${e}-01`}addLogInCurrentSpan(t,e,r={},i=!1){r!=null&&r.error&&Object.assign(r,{error:od(r.error)});const a=mr.getContext(this.meetingMetadata.peerId);if(gw(a)&&(ew(r)?console[t]("InternalLogs:: ",t,e):console[t]("InternalLogs:: ",t,e,r)),!!mw(a,t))try{const c=Up(a,e,r,"metadata"),d=new Date,l=H(D({message:e,level:t},c),{loggedAt:d.toISOString(),loggedAtTzOffset:d.getTimezoneOffset()});i?this.sendOtelLogsToNewRelic([l]):this.logsCache.push(l)}catch(c){this.addLogInCurrentSpan("error","opentelemetry::addLogInCurrentSpan_failed",{error:od(c)})}}sendOtelLogsToNewRelic(t){const e=mr.getContext(this.meetingMetadata.peerId);fetch(this.logsEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({meetingMetadata:Up(e,"sendOtelLogsToNewRelic",this.meetingMetadata,"meetingMetadata"),serviceName:e.getValue("sdkName"),logs:t})}).catch(r=>{this.addLogInCurrentSpan("error","opentelemetry::sendOtelLogToNewRelic_failed",{error:od(r)}),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 E=zh;h(E,"location",{country:void 0});function fw(s){const t=D({},s),e=new Map,r=(l,p)=>(e.has(l)||e.set(l,new Set),e.get(l).add(p),()=>{var g;return(g=e.get(l))==null?void 0:g.delete(p)}),i=(l,p)=>{var g;(g=e.get(l))==null||g.delete(p)},a=l=>{var p;(p=e.get(l))==null||p.forEach(g=>{try{g(t[l])}catch(T){}})};return{subscribe:r,unsubscribe:i,notify:a,setValue:(l,p,g=!0)=>{t[l]=p,g&&a(l)},getValue:l=>t[l],getAllValues:()=>t}}class Tw{constructor(){h(this,"contexts",new Map);h(this,"mostRecentPeerId",null)}createContext(t,e){if(this.contexts.has(t))return this.contexts.get(t);const r=new E,i=new sf;this.contexts.set(t,fw(e)),this.contexts.get(t).setValue("peerSessionStore",new Su(i));const a=new Rm;return a.setMaxListeners(50),this.contexts.get(t).setValue("logger",i),this.contexts.get(t).setValue("telemetry",r),this.contexts.get(t).setValue("callstats",a),this.contexts.get(t).setValue("flagsmith",n_()),this.mostRecentPeerId=t,this.contexts.get(t)}remapContext(t,e){const r=e.getValue("peerId");r!==t&&(e.setValue("peerId",t),this.mostRecentPeerId=t,this.contexts.set(t,e),this.contexts.delete(r))}getContext(t){return this.contexts.get(t)}getMostRecentPeerId(){return this.mostRecentPeerId}}const mr=new Tw,vw={"00":"Client","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"},cd={"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(cd).forEach(s=>{cd[s]=`{${vw[s.slice(0,2)]}} ${cd[s]}`});class b extends Error{constructor(e,r,i=void 0,a=!1){super(e);h(this,"code");this.code=r,this.name="ClientError",this.message=`[ERR${this.code}]: ${cd[this.code]}
4
+ `)),this.pc2.setLocalDescription(t),this.pc1.setRemoteDescription(t)}establishConnection(){this.pc1.createOffer().then(this.gotOffer.bind(this),this.reportFatal.bind(this))}reportFatal(t){console.error("Error:",t)}getRoundTripTime(){return u(this,null,function*(){const[t,e]=yield Promise.all([this.pc1.getStats(),this.pc2.getStats()]);let r,i;if(t.forEach(a=>{a.type==="candidate-pair"&&a.nominated===!0&&a.bytesSent>0&&(r=a)}),e.forEach(a=>{a.type==="candidate-pair"&&a.nominated===!0&&a.bytesReceived>0&&(i=a)}),r&&i)try{if(r.currentRoundTripTime&&i.currentRoundTripTime)return{rtt:r.currentRoundTripTime,backendRTT:i.currentRoundTripTime};const a=(i.lastPacketReceivedTimestamp-r.lastPacketSentTimestamp)/1e3;return{rtt:a,backendRTT:a}}catch(a){return}})}close(){this.pc1.close(),this.pc2.close()}}class Pm extends lt{constructor(e){super();h(this,"call");h(this,"timeOut");this.call=new vr(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 Nv=8,Lv=1/1e3;class Vv extends Pm{constructor(e){super(e);h(this,"senderChannel");h(this,"recieveChannel");h(this,"startTime");h(this,"lastBitrateMeasureTime");h(this,"sentPayloadBytes",0);h(this,"recievedPayloadBytes",0);h(this,"lastReceivedPayloadBytes",0);h(this,"stopSending",!1);h(this,"testProgress",0);h(this,"samplePacket","");h(this,"finalBitrateSum",0);h(this,"bitRateSampels",0);h(this,"maxNumberOfPacketsToSend",0);h(this,"bytesToKeepBuffered",0);h(this,"testDurationSeconds",5);this.call.setIceCandidateFilter(vr.isNotHostCandidate),this.senderChannel=this.call.pc1.createDataChannel(null);for(let r=0;r<1024*256;r+=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 i=0;i!==this.maxNumberOfPacketsToSend&&!(this.senderChannel.bufferedAmount>=this.bytesToKeepBuffered);i+=1){this.sentPayloadBytes+=this.samplePacket.length;try{this.senderChannel.send(this.samplePacket)}catch(a){}}const r=e.getTime()-this.startTime.getTime();r>=1e3*this.testDurationSeconds?(this.stopSending=!0,this.testProgress=100):(this.testProgress=r/(10*this.testDurationSeconds),setTimeout(this.sendingStep.bind(this),1))}onMessageRecieved(e){this.recievedPayloadBytes+=e.data.length;const r=new Date,i=r.getTime()-this.lastBitrateMeasureTime.getTime();if(i>=1e3){const o=(this.recievedPayloadBytes-this.lastReceivedPayloadBytes)*Nv/(i/1e3);this.finalBitrateSum+=o,this.bitRateSampels+=1,this.lastReceivedPayloadBytes=this.recievedPayloadBytes,this.lastBitrateMeasureTime=r}if(this.stopSending&&this.sentPayloadBytes===this.recievedPayloadBytes){const a=this.finalBitrateSum/this.bitRateSampels;this.testComplete({throughput:Math.round(a*Lv)})}}testComplete(e){this.call.getRoundTripTime().then(({rtt:r,backendRTT:i})=>super.testComplete({RTT:r,backendRTT:i,throughput:e.throughput}))}onRecieverChannel(e){this.recieveChannel=e.channel,this.recieveChannel.addEventListener("message",this.onMessageRecieved.bind(this))}}class hh extends Pm{constructor(e,r=vr.noFilter){super(e);h(this,"ch1");h(this,"ch2");this.call.setIceCandidateFilter(r);const i=this.call.pc1.createDataChannel(null);this.ch1=i,i.addEventListener("open",()=>{i.send("hello")}),i.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(r){}}dataChannelHandler(e){const r=e.channel;this.ch2=r,r.addEventListener("message",this.onCh2Recieve.bind(this))}hangup(e){this.testFailed(e)}}class xv extends hh{constructor(t){super(t,vr.isHost)}}class Uv extends hh{constructor(t){super(t,vr.isRelay)}}class $v extends hh{constructor(t){super(t,vr.isReflexive)}}class Fv{constructor(){h(this,"ipInformation",null)}getIPDetails(i){return u(this,arguments,function*({peerId:t,apiHostnames:e,logger:r}){var a,o,c;if(!this.ipInformation){try{const d=`https://${e.location}`,p=yield(yield fetch(d)).json();if(((a=p.loc)==null?void 0:a.length)>5)return this.ipInformation=p,(o=this.ipInformation)!=null&&o.ip&&(this.ipInformation.ip=Zr(this.ipInformation.ip)),p;throw Error("Insufficient data")}catch(d){r.error("callstats::ipDetails:: failed to fetch ip using location service",{error:d})}try{const d=yield fetch(`https://${e.locationLegacy}/?token=3c493932b0624c&peerId=${t}`,{method:"POST"});this.ipInformation=yield d.json(),(c=this.ipInformation)!=null&&c.ip&&(this.ipInformation.ip=Zr(this.ipInformation.ip))}catch(d){r.error("callstats::ipDetails:: failed to fetch ip using legacy location service",{error:d})}}return this.ipInformation})}resetCache(){this.ipInformation=null}}const ph=new Fv,np=[{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 ap(s){const[t,e]=s.split(",");return{coords:{latitude:Number(t),longitude:Number(e)}}}class _m{constructor(){h(this,"transport");h(this,"candidatePair");h(this,"outboundVideoRtp",new Map);h(this,"inboundVideoRtp",new Map);h(this,"outboundAudioRtp",new Map);h(this,"inboundAudioRtp",new Map);h(this,"remoteInboundRtp",new Map);h(this,"producerStreamMap",new Map);h(this,"consumerStreamMap",new Map);h(this,"staleProducerStreamMap",!1);h(this,"staleConsumerStreamMap",!1)}}class Cm extends lt{constructor(){super();h(this,"observer");h(this,"outboundProducerMap",new Map);h(this,"inboundConsumerMap",new Map);h(this,"consumerPeerIdMap",new Map);h(this,"pausedConsumerMap",new Map);h(this,"pausedProducerMap",new Map);h(this,"overallProducingTransportsStatsMap",{});h(this,"overallConsumingTransportsStatsMap",{});h(this,"overallConsumersStatsMap",{});h(this,"overallProducersStatsMap",{});h(this,"videoProducerToStatsMap",new Map);h(this,"audioProducerToStatsMap",new Map);h(this,"videoConsumerToStatsMap",new Map);h(this,"audioConsumerToStatsMap",new Map);h(this,"consumerIdsWithFreezedVideo",new Set);h(this,"consumerIdsWithFreezedAudio",new Set);h(this,"producerIdsWithFreezedVideo",new Set);h(this,"producerIdsWithFreezedAudio",new Set);h(this,"freezedProducingTransportIds",new Set);h(this,"freezedConsumingTransportIds",new Set);h(this,"screenShareProducers",new Set);h(this,"screenShareConsumers",new Set);h(this,"ipDetails");h(this,"callStatsInstance");this.observer=new lt}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,r,i){var o,c;const a=((c=(o=this==null?void 0:this.callStatsInstance)==null?void 0:o.consumerSharedMediaStatesMap)==null?void 0:c.get(e))||{};r.totalVideoPacketsReceived===i.packetsReceived?(this.consumerIdsWithFreezedVideo.add(e),this.callStatsInstance&&a.video&&(this.callStatsInstance.logger.debug("callstats::measurements::consumerVideoFreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_video_status","pause",e))):(r.totalVideoPacketsReceived=i.packetsReceived,this.consumerIdsWithFreezedVideo.has(e)&&(this.consumerIdsWithFreezedVideo.delete(e),this.callStatsInstance&&a.video&&(this.callStatsInstance.logger.debug("callstats::measurements::consumerVideoDefreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_video_status","resume",e))))}processInboundConsumerAudioStats(e,r,i){var o,c;const a=((c=(o=this==null?void 0:this.callStatsInstance)==null?void 0:o.consumerSharedMediaStatesMap)==null?void 0:c.get(e))||{};r.totalAudioPacketsReceived===i.packetsReceived?(this.consumerIdsWithFreezedAudio.add(e),this.callStatsInstance&&a.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::consumerAudioFreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_audio_status","pause",e))):(r.totalAudioPacketsReceived=i.packetsReceived,this.consumerIdsWithFreezedAudio.has(e)&&(this.consumerIdsWithFreezedAudio.delete(e),this.callStatsInstance&&a.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::consumerAudioDefreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_audio_status","resume",e))))}processOutboundProducerVideoStats(e,r,i){var o;const a=((o=this==null?void 0:this.callStatsInstance)==null?void 0:o.currentUserMediaStates)||{};r.totalVideoPacketsSent===i.packetsSent?(this.producerIdsWithFreezedVideo.add(e),this.callStatsInstance&&a.video&&(this.callStatsInstance.logger.debug("callStats::measurements::producerVideoFreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_video_status","pause",e))):(r.totalVideoPacketsSent=i.packetsSent,this.producerIdsWithFreezedVideo.has(e)&&(this.producerIdsWithFreezedVideo.delete(e),this.callStatsInstance&&a.video&&(this.callStatsInstance.logger.debug("callStats::measurements::producerVideoDefreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_video_status","resume",e))))}processOutboundProducerAudioStats(e,r,i){var o;const a=((o=this==null?void 0:this.callStatsInstance)==null?void 0:o.currentUserMediaStates)||{};r.totalAudioPacketsSent===i.packetsSent?(this.producerIdsWithFreezedAudio.add(e),this.callStatsInstance&&a.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::producerAudioFreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_audio_status","pause",e))):(r.totalAudioPacketsSent=i.packetsSent,this.producerIdsWithFreezedAudio.has(e)&&(this.producerIdsWithFreezedAudio.delete(e),this.callStatsInstance&&a.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::producerAudioDefreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_audio_status","resume",e))))}processProducingTransportStats(e,r,i){var p;const a=((p=this==null?void 0:this.callStatsInstance)==null?void 0:p.currentUserMediaStates)||{},{audio:o,video:c,screen:d}=a,l=o||c||d;r.totalPacketsSent===i.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))):(r.totalPacketsSent=i.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,r,i){var c,d;const o=!!Array.from(((d=(c=this==null?void 0:this.callStatsInstance)==null?void 0:c.consumerSharedMediaStatesMap)==null?void 0:d.values())||[]).reduce((l,p)=>l||p.audio||p.video||p.screen,!1);r.totalPacketsReceived===i.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))):(r.totalPacketsReceived=i.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,r=!1){return u(this,null,function*(){const i=yield e.getStats(),a=r?this.getProducerStatsFromReport(this.parseRTCReport(i,["outbound-rtp","remote-inbound-rtp"],!1,e.id))[0]:void 0;for(const o of i.values())switch(o.type){case"outbound-rtp":{this.outboundProducerMap.set(o.id,e.id);break}}return a})}generateConsumerStreamMap(e,r=!1){return u(this,null,function*(){const i=yield e.getStats(),a=r?this.getConsumerStatsFromReport(this.parseRTCReport(i,["inbound-rtp"],!1,e.id))[0]:void 0;for(const o of i.values())switch(o.type){case"inbound-rtp":{this.inboundConsumerMap.set(o.id,e.id);break}}return a})}deregisterProducer(e){this.outboundProducerMap.forEach((r,i)=>{r===e.id&&this.outboundProducerMap.delete(i)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.inboundConsumerMap.forEach((r,i)=>{r===e.id&&this.inboundConsumerMap.delete(i)}),this.consumerPeerIdMap.delete(e.id),this.pausedConsumerMap.delete(e.id),this.screenShareConsumers.delete(e.id)}getIceCandidateStats(e){var r;return{id:e.id,type:e.candidateType||e.type,address:e.address,port:e.port,url:e.url,protocol:(r=e.relayProtocol)!=null?r:e.protocol,networkType:e.networkType,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort}}getWorkingSimulcastVideoStats(e){return e.find(i=>{const a=i.framesEncoded>0,o=i.packetsSent>0,c=i.frameWidth&&i.frameHeight;return a&&o&&!!c})||e[e.length-1]}parseRTCReport(e,r=[],i=!1,a=void 0,o=void 0){var _,C,w,V,F,N,B,G,re,tt,ds,ii,ls;const c=e,d=new _m,l=r.length?new Set(r):void 0,p=[],g=[],T=[],v=new Map,P=new Map;for(const A of c.values()){if(l){if(l.size===0)break;if(l.has(A.type))i&&l.delete(A.type);else continue}switch(A.type){case"local-candidate":{p.push(this.getIceCandidateStats(A));break}case"remote-candidate":{g.push(this.getIceCandidateStats(A));break}case"candidate-pair":{const{nominated:S}=A,{selected:R}=A,x=A,fe={nominated:S!=null?S:R,currentRoundTripTime:x.currentRoundTripTime,totalRoundTripTime:x.totalRoundTripTime,bytesReceived:x.bytesReceived,bytesSent:x.bytesSent,availableOutgoingBitrate:x.availableOutgoingBitrate,availableIncomingBitrate:x.availableIncomingBitrate,lastPacketReceivedTimestamp:x.lastPacketReceivedTimestamp,lastPacketSentTimestamp:x.lastPacketSentTimestamp,localCandidateId:x.localCandidateId,remoteCandidateId:x.remoteCandidateId,bytesDiscardedOnSend:x.bytesDiscardedOnSend,packetsSent:x.packetsSent,packetsReceived:x.packetsReceived,packetsDiscardedOnSend:x.packetsDiscardedOnSend};T.push(fe),(A.nominated===!0||A.selected===!0)&&(d.candidatePair=fe);break}case"transport":{const S=A;o&&(o.producing&&(this.overallProducingTransportsStatsMap[o.id]||(this.overallProducingTransportsStatsMap[o.id]={totalPacketsSent:0})),o.consuming&&(this.overallConsumingTransportsStatsMap[o.id]||(this.overallConsumingTransportsStatsMap[o.id]={totalPacketsReceived:0})));const R={bytesReceived:S.bytesReceived,bytesSent:S.bytesSent,packetsSent:S.packetsSent,packetsReceived:S.packetsReceived,dtlsCipher:S.dtlsCipher,dtlsState:S.dtlsState,iceRole:S.iceRole};if(d.transport=R,o){if(o.producing){const x=this.overallProducingTransportsStatsMap[o.id];this.processProducingTransportStats(o.id,x,R)}if(o.consuming){const x=this.overallConsumingTransportsStatsMap[o.id];this.processConsumingTransportStats(o.id,x,R)}}break}case"remote-inbound-rtp":{const S=A,R={jitter:S.jitter,fractionLost:S.fractionLost,roundTripTime:S.roundTripTime,roundTripTimeMeasurements:S.roundTripTimeMeasurements,totalRoundTripTime:S.totalRoundTripTime,packetsLost:S.packetsLost};d.remoteInboundRtp.set(S.localId,R);break}case"outbound-rtp":{if(!this.outboundProducerMap.has(A.id))break;const S=A,R=a||this.outboundProducerMap.get(A.id),x=this.pausedProducerMap.get(R);if(x){if(x.lastReportCalculated===!0)break;this.pausedProducerMap.set(R,{lastReportCalculated:!0})}this.overallProducersStatsMap[R]||(this.overallProducersStatsMap[R]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const fe=this.overallProducersStatsMap[R];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.outboundProducerMap.has(A.id)){d.staleProducerStreamMap=!0;break}const xe=this.callStatsInstance.producers.get(R);if(((_=xe==null?void 0:xe.track)==null?void 0:_.readyState)==="ended")break;d.producerStreamMap.has(R)||d.producerStreamMap.set(R,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const L={bytesSent:S.bytesSent,packetsSent:S.packetsSent,nackCount:S.nackCount,ssrc:S.ssrc,mid:S.mid,active:S.active,codecId:S.codecId,headerBytesSent:S.headerBytesSent||0,totalPacketSendDelay:S.totalPacketSendDelay||0};if(S.mediaType==="video"||S.kind==="video"){const I=S,Ue=D({frameHeight:I.frameHeight,frameWidth:I.frameWidth,framesEncoded:I.framesEncoded,framesDropped:I.framesDropped,framesPerSecond:I.framesPerSecond,framesSent:I.framesSent,keyFramesEncoded:I.keyFramesEncoded,firCount:I.firCount,encoderImplementation:I.encoderImplementation,hugeFramesSent:I.hugeFramesSent,pliCount:I.pliCount,qpSum:I.qpSum,qualityLimitationDurations:I.qualityLimitationDurations,qualityLimitationReason:I.qualityLimitationReason,qualityLimitationResolutionChanges:I.qualityLimitationResolutionChanges,totalEncodeTime:I.targetBitrate,totalPacketSendDelay:I.totalPacketSendDelay,retransmittedBytesSent:I.retransmittedBytesSent,retransmittedPacketsSent:I.retransmittedPacketsSent,scalabilityMode:I.scalabilityMode,powerEfficientEncoder:I.powerEfficientEncoder},L);d.outboundVideoRtp.set(A.id,Ue),d.producerStreamMap.get(R).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(R,fe,Ue)}else if(S.mediaType==="audio"||S.kind==="audio"){const I=S,Ue=D({retransmittedBytesSent:I.retransmittedBytesSent,retransmittedPacketsSent:I.retransmittedPacketsSent},L);d.outboundAudioRtp.set(A.id,Ue),d.producerStreamMap.get(R).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(R,fe,Ue)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}case"inbound-rtp":{if(!this.inboundConsumerMap.has(A.id))break;const S=A,R=a||this.inboundConsumerMap.get(A.id),x=this.pausedConsumerMap.get(R);if(x){if(x.lastReportCalculated===!0)break;this.pausedConsumerMap.set(R,{lastReportCalculated:!0})}if(S.ssrc===1234)break;this.overallConsumersStatsMap[R]||(this.overallConsumersStatsMap[R]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const fe=this.overallConsumersStatsMap[R];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.inboundConsumerMap.has(A.id)){d.staleConsumerStreamMap=!0;break}d.consumerStreamMap.has(R)||d.consumerStreamMap.set(R,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const xe={bytesReceived:S.bytesReceived,packetsReceived:S.packetsReceived,packetsLost:S.packetsLost>=0?S.packetsLost:0,jitter:S.jitter,nackCount:S.nackCount,jitterBufferDelay:S.jitterBufferDelay,jitterBufferEmittedCount:S.jitterBufferEmittedCount,lastPacketReceivedTimestamp:S.lastPacketReceivedTimestamp,ssrc:S.ssrc,mid:S.mid,codecId:S.codecId,headerBytesReceived:S.headerBytesReceived||0,packetsDiscarded:S.packetsDiscarded||0,jitterBufferMinimumDelay:S.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:S.jitterBufferTargetDelay||0};if(S.mediaType==="video"||S.kind==="video"){const L=S,I=D({frameHeight:L.frameHeight,frameWidth:L.frameWidth,framesDecoded:L.framesDecoded,framesDropped:L.framesDropped,framesPerSecond:L.framesPerSecond,framesReceived:L.framesReceived,keyFramesDecoded:L.keyFramesDecoded,firCount:L.firCount,decoderImplementation:L.decoderImplementation,pliCount:L.pliCount,totalProcessingDelay:L.totalProcessingDelay,qpSum:L.qpSum||0,totalAssemblyTime:L.totalAssemblyTime||0,totalDecodeTime:L.totalDecodeTime||0,totalFreezesDuration:L.totalFreezesDuration||0,totalInterFrameDelay:L.totalInterFrameDelay||0,totalPausesDuration:L.totalPausesDuration||0,totalSquaredInterFrameDelay:L.totalSquaredInterFrameDelay||0,freezeCount:L.freezeCount||0,pauseCount:L.pauseCount||0,powerEfficientDecoder:L.powerEfficientDecoder},xe);I.score=Em({frameWidth:I.frameWidth||0,framesDecoded:(I.framesDecoded||0)-(((C=this.videoConsumerToStatsMap.get(R))==null?void 0:C.framesDecoded)||0),framesPerSecond:I.framesPerSecond||0,packetsLost:(I.packetsLost||0)-(((w=this.videoConsumerToStatsMap.get(R))==null?void 0:w.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((V=this.videoConsumerToStatsMap.get(R))==null?void 0:V.packetsReceived)||0),jitter:I.jitter||0,isScreenShare:this.screenShareConsumers.has(R)}),P.set(R,{score:+(I.score*10).toFixed(),frameWidth:I.frameWidth||0,frameHeight:I.frameHeight||0,framesPerSecond:I.framesPerSecond||0,packetsLostPercentage:Ed({packetsLost:(I.packetsLost||0)-(((F=this.videoConsumerToStatsMap.get(R))==null?void 0:F.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((N=this.videoConsumerToStatsMap.get(R))==null?void 0:N.packetsReceived)||0)}),jitter:I.jitter||0,isScreenShare:this.screenShareConsumers.has(R),bitrate:((I.bytesReceived||0)-(((B=this.videoConsumerToStatsMap.get(R))==null?void 0:B.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(R,I),d.inboundVideoRtp.set(A.id,I),d.consumerStreamMap.get(R).inboundVideoRtpId.push(A.id),this.processInboundConsumerVideoStats(R,fe,I)}else if(S.mediaType==="audio"||S.kind==="audio"){const L=S,I=D({audioLevel:L.audioLevel,concealedSamples:L.concealedSamples,concealmentEvents:L.concealmentEvents,totalAudioEnergy:L.totalAudioEnergy,totalSamplesDuration:L.totalSamplesDuration,totalSamplesReceived:L.totalSamplesReceived,fecPacketsDiscarded:L.fecPacketsDiscarded||0,fecPacketsReceived:L.fecPacketsReceived||0,insertedSamplesForDeceleration:L.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:L.removedSamplesForAcceleration||0,silentConcealedSamples:L.silentConcealedSamples||0,playoutId:L.playoutId},xe);I.score=Sm({concealmentEvents:(I.concealmentEvents||0)-(((G=this.audioConsumerToStatsMap.get(R))==null?void 0:G.concealmentEvents)||0),packetsLost:(I.packetsLost||0)-(((re=this.audioConsumerToStatsMap.get(R))==null?void 0:re.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((tt=this.audioConsumerToStatsMap.get(R))==null?void 0:tt.packetsReceived)||0),jitter:I.jitter||0}),P.set(R,{score:+(I.score*10).toFixed(),packetsLostPercentage:Ed({packetsLost:(I.packetsLost||0)-(((ds=this.audioConsumerToStatsMap.get(R))==null?void 0:ds.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((ii=this.audioConsumerToStatsMap.get(R))==null?void 0:ii.packetsReceived)||0)}),jitter:I.jitter||0,isScreenShare:this.screenShareConsumers.has(R),bitrate:((I.bytesReceived||0)-(((ls=this.audioConsumerToStatsMap.get(R))==null?void 0:ls.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(R,I),d.inboundAudioRtp.set(A.id,I),d.consumerStreamMap.get(R).inboundAudioRtpId.push(A.id),this.processInboundConsumerAudioStats(R,fe,I)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}}}if(d.producerStreamMap.forEach((A,S)=>{var R,x,fe,xe,L,I,Ue,wr,qs,ja,Ga,Wa,Ja,Ka,za,Ya,Qa,Xa,Za,eo,to,so,ro;if(A.outboundVideoRtpId.length>0){const le=[];A.outboundVideoRtpId.forEach(Xl=>{le.push(d.outboundVideoRtp.get(Xl))});const se=this.getWorkingSimulcastVideoStats(le);se.score=vm({frameWidth:se.frameWidth||0,framesPerSecond:se.framesPerSecond||0,jitter:((R=se.remoteData)==null?void 0:R.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsSent:(se.packetsSent||0)-(((x=this.videoProducerToStatsMap.get(S))==null?void 0:x.packetsSent)||0),packetsLost:(((fe=se.remoteData)==null?void 0:fe.packetsLost)||0)-(((L=(xe=this.videoProducerToStatsMap.get(S))==null?void 0:xe.remoteData)==null?void 0:L.packetsLost)||0),framesEncoded:(se.framesEncoded||0)-(((I=this.videoProducerToStatsMap.get(S))==null?void 0:I.framesEncoded)||0)}),v.set(S,{score:+(se.score*10).toFixed(),frameWidth:se.frameWidth||0,frameHeight:se.frameHeight||0,framesPerSecond:se.framesPerSecond||0,jitter:((Ue=se.remoteData)==null?void 0:Ue.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsLostPercentage:Sd({packetsSent:(se.packetsSent||0)-(((wr=this.videoProducerToStatsMap.get(S))==null?void 0:wr.packetsSent)||0),packetsLost:(((qs=se.remoteData)==null?void 0:qs.packetsLost)||0)-(((Ga=(ja=this.videoProducerToStatsMap.get(S))==null?void 0:ja.remoteData)==null?void 0:Ga.packetsLost)||0)}),bitrate:((se.bytesSent||0)-(((Wa=this.videoProducerToStatsMap.get(S))==null?void 0:Wa.bytesSent)||0))*8/7,cpuLimitations:se.qualityLimitationReason==="cpu",bandwidthLimitations:se.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(S,se)}else if(A.outboundAudioRtpId.length>0){const le=d.outboundAudioRtp.get(A.outboundAudioRtpId[0]);le.score=Tm({packetsSent:(le.packetsSent||0)-(((Ja=this.audioProducerToStatsMap.get(S))==null?void 0:Ja.packetsSent)||0),packetsLost:(((Ka=le.remoteData)==null?void 0:Ka.packetsLost)||0)-(((Ya=(za=this.audioProducerToStatsMap.get(S))==null?void 0:za.remoteData)==null?void 0:Ya.packetsLost)||0),jitter:((Qa=le.remoteData)==null?void 0:Qa.jitter)||0}),v.set(S,{score:+(le.score*10).toFixed(),bitrate:((le.bytesSent||0)-(((Xa=this.audioProducerToStatsMap.get(S))==null?void 0:Xa.bytesSent)||0))*8/7,packetsLostPercentage:Sd({packetsSent:(le.packetsSent||0)-(((Za=this.audioProducerToStatsMap.get(S))==null?void 0:Za.packetsSent)||0),packetsLost:(((eo=le.remoteData)==null?void 0:eo.packetsLost)||0)-(((so=(to=this.audioProducerToStatsMap.get(S))==null?void 0:to.remoteData)==null?void 0:so.packetsLost)||0)}),jitter:((ro=le.remoteData)==null?void 0:ro.jitter)||0,isScreenShare:this.screenShareProducers.has(S)}),this.audioProducerToStatsMap.set(S,le)}}),T.forEach(A=>{const S=p.find(x=>x.id===A.localCandidateId?(A.localCandidateId=x.id,x):null),R=g.find(x=>x.id===A.remoteCandidateId?(A.remoteCandidateId=x.id,x):null);S&&(A.localCandidateType=S.type,A.localCandidateAddress=Zr(S.address),A.localCandidatePort=S.port,A.localCandidateProtocol=S.protocol,A.localCandidateUrl=S.url,A.localCandidateNetworkType=S.networkType,A.localCandidateRelatedAddress=Zr(S.relatedAddress),A.localCandidateRelatedPort=S.relatedPort),R&&(A.remoteCandidateType=R.type,A.remoteCandidateAddress=Zr(R.address),A.remoteCandidatePort=R.port,A.remoteCandidateProtocol=R.protocol,A.remoteCandidateUrl=R.url)}),d.candidatePair&&(d.transport?(d.transport.totalRoundTripTime=d.candidatePair.totalRoundTripTime,d.transport.availableOutgoingBitrate=d.candidatePair.availableOutgoingBitrate,d.transport.availableIncomingBitrate=d.candidatePair.availableIncomingBitrate,d.transport.roundTripTime=d.candidatePair.currentRoundTripTime):d.transport={bytesReceived:d.candidatePair.bytesReceived,bytesSent:d.candidatePair.bytesSent,totalRoundTripTime:d.candidatePair.totalRoundTripTime,availableOutgoingBitrate:d.candidatePair.availableOutgoingBitrate,availableIncomingBitrate:d.candidatePair.availableIncomingBitrate,roundTripTime:d.candidatePair.currentRoundTripTime}),d.transport&&(d.transport.candidatePairs=T),d.transport&&!d.transport.roundTripTime){let A=0,S=0;d.remoteInboundRtp.forEach((R,x)=>{R.roundTripTime&&R.roundTripTime>A&&(A=R.roundTripTime,S=R.totalRoundTripTime)}),d.transport.roundTripTime=A,d.transport.totalRoundTripTime=S}if(P.size>0)try{this.observer.emit("consumer_score",P)}catch(A){}if(v.size>0)try{this.observer.emit("producer_score",v)}catch(A){}return d}getProducersReport(e){return u(this,null,function*(){const r=e.map(i=>this.generateProducerStreamMap(i,!0));return r.length>0?Promise.all(r):void 0})}getConsumersReport(e){return u(this,null,function*(){const r=e.map(i=>this.generateConsumerStreamMap(i,!0));return r.length>0?Promise.all(r):void 0})}getTransportReport(e){return u(this,null,function*(){return e.getStats()})}getProcessedStats(e,r,i){return u(this,null,function*(){const a=yield this.getTransportReport(e),o={producing:i,consuming:r,id:e.id},c=a,d=this.parseRTCReport(c,["transport","candidate-pair","inbound-rtp","outbound-rtp","remote-inbound-rtp","local-candidate","remote-candidate"],!1,void 0,o);if(!d)return;const l={stats:d.transport,transportId:e.id,consuming:r,producing:i},p=d.staleProducerStreamMap?void 0:this.getProducerStatsFromReport(d),g=d.staleConsumerStreamMap?void 0:this.getConsumerStatsFromReport(d);return{transportReport:l,producerReport:p,consumerReport:g}})}getProducerStatsFromReport(e){const r=[];try{e.producerStreamMap.forEach((i,a)=>{var o,c;r.push({producerId:a,videoStats:i.outboundVideoRtpId.map(d=>e.outboundVideoRtp.get(d)),audioStats:i.outboundAudioRtpId.map(d=>e.outboundAudioRtp.get(d)),appData:((c=(o=this.callStatsInstance.producers)==null?void 0:o.get(a))==null?void 0:c.appData)||null})})}catch(i){this.callStatsInstance.logger.error("callStats::measurements::getProducerStatsFromReport",{error:{reason:i.reason,message:i.message}})}return r}getConsumerStatsFromReport(e){const r=[];try{e.consumerStreamMap.forEach((i,a)=>{const{peerId:o,producerId:c,appData:d}=this.consumerPeerIdMap.get(a);r.push({consumerId:a,peerId:o,producerId:c,appData:d,videoStats:i.inboundVideoRtpId.map(l=>e.inboundVideoRtp.get(l)),audioStats:i.inboundAudioRtpId.map(l=>e.inboundAudioRtp.get(l))})})}catch(i){console.error("getConsumersReport: ",i,e)}return r}getUserLocation(){return u(this,null,function*(){return new Promise((e,r)=>{try{navigator.geolocation?navigator.geolocation.getCurrentPosition(i=>{e(i)}):r()}catch(i){r(i)}})})}getConnectivity(e){return u(this,null,function*(){try{const r={iceServers:e||np},i=new Promise((p,g)=>{try{const T=new xv(r);T.addListener("done",p),T.addListener("failed",()=>{p({connectivity:!1})}),T.start(2e3)}catch(T){g(T)}}),a=new Promise((p,g)=>{try{const T=new Uv(r);T.addListener("done",p),T.addListener("failed",()=>{p({connectivity:!1})}),T.start(2e3)}catch(T){g(T)}}),o=new Promise((p,g)=>{try{const T=new $v(r);T.addListener("done",p),T.addListener("failed",()=>{p({connectivity:!1})}),T.start(2e3)}catch(T){g(T)}}),[c,d,l]=yield Promise.all([i,a,o]);return{host:c==null?void 0:c.connectivity,relay:d==null?void 0:d.connectivity,reflexive:l==null?void 0:l.connectivity}}catch(r){return{host:!1,relay:!1,reflexive:!1}}})}getThroughput(e){return u(this,null,function*(){try{const i=yield new Promise((a,o)=>{try{const c={iceServers:e||np},d=new Vv(c);d.addListener("done",a),d.addListener("failed",o),d.start(1e4)}catch(c){o(c)}});return{throughput:i.throughput,fractionalLoss:0,RTT:i.RTT,jitter:0,backendRTT:i.backendRTT}}catch(r){return}})}getIPDetails(){return u(this,null,function*(){var e,r;try{return this.ipDetails||(this.ipDetails=yield ph.getIPDetails({peerId:(e=this.callStatsInstance)==null?void 0:e.peerId,apiHostnames:(r=this.callStatsInstance)==null?void 0:r.apiHostnames,logger:this.callStatsInstance.logger})),this.ipDetails}catch(i){return}})}getNetworkQuality(e){return u(this,null,function*(){const[r,i]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e)]);return{connectivity:r,throughput:i==null?void 0:i.throughput,fractionalLoss:i==null?void 0:i.fractionalLoss,RTT:i==null?void 0:i.RTT,jitter:i==null?void 0:i.jitter,backendRTT:i==null?void 0:i.backendRTT}})}getNetworkInfo(e,r=!1){return u(this,null,function*(){var c,d;if(r){const l=yield this.getIPDetails();return{ipDetails:l,effectiveNetworkType:(c=navigator.connection)==null?void 0:c.effectiveType,location:l!=null&&l.loc?ap(l==null?void 0:l.loc):void 0}}const[i,a,o]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e),this.getIPDetails()]);return{ipDetails:o,effectiveNetworkType:(d=navigator.connection)==null?void 0:d.effectiveType,location:o!=null&&o.loc?ap(o==null?void 0:o.loc):void 0,turnConnectivity:i?i.host||i.relay||i.reflexive:!1,connectivity:i,throughput:a==null?void 0:a.throughput,fractionalLoss:a==null?void 0:a.fractionalLoss,RTT:a==null?void 0:a.RTT,jitter:a==null?void 0:a.jitter,backendRTT:a==null?void 0:a.backendRTT}})}}class Bv extends Cm{}class wm extends Cm{constructor(){super(...arguments);h(this,"producerMap",new Map);h(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,r=!1){return u(this,null,function*(){const i=yield e.getStats(),a=this.parseRTCReport(i,["inbound-rtp"],!1,e.id),o=[...a.consumerStreamMap.values()][0],c=r?this.getConsumerStatsFromParsedConsumerStats(a,o,e.id):void 0;for(const d of i.values())switch(d.type){case"inbound-rtp":{this.inboundConsumerMap.set(d.id,e.id);break}}return c})}deregisterProducer(e){this.producerMap.delete(e.id),this.outboundProducerMap.forEach((r,i)=>{r===e.id&&this.outboundProducerMap.delete(i)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.consumerMap.delete(e.id),this.inboundConsumerMap.forEach((r,i)=>{r===e.id&&this.inboundConsumerMap.delete(i)}),this.consumerPeerIdMap.delete(e.id),this.pausedConsumerMap.delete(e.id),this.screenShareConsumers.delete(e.id)}getIceCandidateStats(e){var r;return{id:e.id,type:e.candidateType||e.type,address:e.address,port:e.port,url:e.url,protocol:(r=e.relayProtocol)!=null?r:e.protocol,networkType:e.networkType,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort}}parseRTCReport(e,r=[],i=!1,a=void 0,o=void 0){var _,C,w,V,F,N,B,G,re,tt,ds,ii,ls;const c=e,d=new _m,l=r.length?new Set(r):void 0,p=[],g=[],T=[],v=new Map,P=new Map;for(const A of c.values()){if(l){if(l.size===0)break;if(l.has(A.type))i&&l.delete(A.type);else continue}switch(A.type){case"local-candidate":{p.push(this.getIceCandidateStats(A));break}case"remote-candidate":{g.push(this.getIceCandidateStats(A));break}case"candidate-pair":{const{nominated:S}=A,{selected:R}=A,x=A,fe={nominated:S!=null?S:R,currentRoundTripTime:x.currentRoundTripTime,totalRoundTripTime:x.totalRoundTripTime,bytesReceived:x.bytesReceived,bytesSent:x.bytesSent,availableOutgoingBitrate:x.availableOutgoingBitrate,availableIncomingBitrate:x.availableIncomingBitrate,lastPacketReceivedTimestamp:x.lastPacketReceivedTimestamp,lastPacketSentTimestamp:x.lastPacketSentTimestamp,localCandidateId:x.localCandidateId,remoteCandidateId:x.remoteCandidateId,bytesDiscardedOnSend:x.bytesDiscardedOnSend,packetsSent:x.packetsSent,packetsReceived:x.packetsReceived,packetsDiscardedOnSend:x.packetsDiscardedOnSend};T.push(fe),(A.nominated===!0||A.selected===!0)&&(d.candidatePair=fe);break}case"transport":{const S=A;o&&(o.producing&&(this.overallProducingTransportsStatsMap[o.id]||(this.overallProducingTransportsStatsMap[o.id]={totalPacketsSent:0})),o.consuming&&(this.overallConsumingTransportsStatsMap[o.id]||(this.overallConsumingTransportsStatsMap[o.id]={totalPacketsReceived:0})));const R={bytesReceived:S.bytesReceived,bytesSent:S.bytesSent,packetsSent:S.packetsSent,packetsReceived:S.packetsReceived,dtlsCipher:S.dtlsCipher,dtlsState:S.dtlsState,iceRole:S.iceRole};if(d.transport=R,o){if(o.producing){const x=this.overallProducingTransportsStatsMap[o.id];this.processProducingTransportStats(o.id,x,R)}if(o.consuming){const x=this.overallConsumingTransportsStatsMap[o.id];this.processConsumingTransportStats(o.id,x,R)}}break}case"remote-inbound-rtp":{const S=A,R={jitter:S.jitter,fractionLost:S.fractionLost,roundTripTime:S.roundTripTime,roundTripTimeMeasurements:S.roundTripTimeMeasurements,totalRoundTripTime:S.totalRoundTripTime,packetsLost:S.packetsLost};d.remoteInboundRtp.set(S.localId,R);break}case"outbound-rtp":{if(!this.outboundProducerMap.has(A.id))break;const S=A,R=a||this.outboundProducerMap.get(A.id),x=this.pausedProducerMap.get(R);if(x){if(x.lastReportCalculated===!0)break;this.pausedProducerMap.set(R,{lastReportCalculated:!0})}this.overallProducersStatsMap[R]||(this.overallProducersStatsMap[R]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const fe=this.overallProducersStatsMap[R];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.outboundProducerMap.has(A.id)){d.staleProducerStreamMap=!0;break}const xe=this.callStatsInstance.producers.get(R);if(((_=xe==null?void 0:xe.track)==null?void 0:_.readyState)==="ended")break;d.producerStreamMap.has(R)||d.producerStreamMap.set(R,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const L={bytesSent:S.bytesSent,packetsSent:S.packetsSent,nackCount:S.nackCount,ssrc:S.ssrc,mid:S.mid,active:S.active,codecId:S.codecId,headerBytesSent:S.headerBytesSent||0,totalPacketSendDelay:S.totalPacketSendDelay||0};if(S.mediaType==="video"||S.kind==="video"){const I=S,Ue=D({frameHeight:I.frameHeight,frameWidth:I.frameWidth,framesEncoded:I.framesEncoded,framesDropped:I.framesDropped?I.framesDropped:I.droppedFrames,framesPerSecond:I.framesPerSecond?I.framesPerSecond:I.framerateMean,framesSent:I.framesSent,keyFramesEncoded:I.keyFramesEncoded,firCount:I.firCount,encoderImplementation:I.encoderImplementation,hugeFramesSent:I.hugeFramesSent,pliCount:I.pliCount,qpSum:I.qpSum,qualityLimitationReason:I.qualityLimitationReason,qualityLimitationDurations:I.qualityLimitationDurations,qualityLimitationResolutionChanges:I.qualityLimitationResolutionChanges,totalEncodeTime:I.totalEncodeTime,totalPacketSendDelay:I.totalEncodeTime,retransmittedBytesSent:I.retransmittedBytesSent,retransmittedPacketsSent:I.retransmittedPacketsSent,scalabilityMode:I.scalabilityMode,powerEfficientEncoder:I.powerEfficientEncoder},L);d.outboundVideoRtp.set(A.id,Ue),d.producerStreamMap.get(R).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(R,fe,Ue)}else if(S.mediaType==="audio"||S.kind==="audio"){const I=S,Ue=D({retransmittedBytesSent:I.retransmittedBytesSent,retransmittedPacketsSent:I.retransmittedPacketsSent},L);d.outboundAudioRtp.set(A.id,Ue),d.producerStreamMap.get(R).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(R,fe,Ue)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}case"inbound-rtp":{if(!this.inboundConsumerMap.has(A.id))break;const S=A,R=a||this.inboundConsumerMap.get(A.id),x=this.pausedConsumerMap.get(R);if(x){if(x.lastReportCalculated===!0)break;this.pausedConsumerMap.set(R,{lastReportCalculated:!0})}if(S.ssrc===1234)break;this.overallConsumersStatsMap[R]||(this.overallConsumersStatsMap[R]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const fe=this.overallConsumersStatsMap[R];if(["video","audio"].includes(S.mediaType)||["video","audio"].includes(S.kind)){if(!this.inboundConsumerMap.has(A.id)){d.staleConsumerStreamMap=!0;break}d.consumerStreamMap.has(R)||d.consumerStreamMap.set(R,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const xe={bytesReceived:S.bytesReceived,packetsReceived:S.packetsReceived,packetsLost:S.packetsLost>=0?S.packetsLost:0,jitter:S.jitter,nackCount:S.nackCount,jitterBufferDelay:S.jitterBufferDelay,jitterBufferEmittedCount:S.jitterBufferEmittedCount,lastPacketReceivedTimestamp:S.lastPacketReceivedTimestamp,ssrc:S.ssrc,mid:S.mid,codecId:S.codecId,headerBytesReceived:S.headerBytesReceived||0,packetsDiscarded:S.packetsDiscarded||0,jitterBufferMinimumDelay:S.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:S.jitterBufferTargetDelay||0};if(S.mediaType==="video"||S.kind==="video"){const L=S,I=D({frameHeight:L.frameHeight,frameWidth:L.frameWidth,framesDecoded:L.framesDecoded,framesDropped:L.framesDropped?L.framesDropped:L.droppedFrames,framesPerSecond:L.framesPerSecond?L.framesPerSecond:L.framerateMean,framesReceived:L.framesReceived,keyFramesDecoded:L.keyFramesDecoded,firCount:L.firCount,decoderImplementation:L.decoderImplementation,pliCount:L.pliCount,totalProcessingDelay:L.totalProcessingDelay,qpSum:L.qpSum||0,totalAssemblyTime:L.totalAssemblyTime||0,totalDecodeTime:L.totalDecodeTime||0,totalFreezesDuration:L.totalFreezesDuration||0,totalInterFrameDelay:L.totalInterFrameDelay||0,totalPausesDuration:L.totalPausesDuration||0,totalSquaredInterFrameDelay:L.totalSquaredInterFrameDelay||0,freezeCount:L.freezeCount||0,pauseCount:L.pauseCount||0,powerEfficientDecoder:L.powerEfficientDecoder},xe);I.score=Em({frameWidth:I.frameWidth||0,framesDecoded:(I.framesDecoded||0)-(((C=this.videoConsumerToStatsMap.get(R))==null?void 0:C.framesDecoded)||0),framesPerSecond:I.framesPerSecond||0,packetsLost:(I.packetsLost||0)-(((w=this.videoConsumerToStatsMap.get(R))==null?void 0:w.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((V=this.videoConsumerToStatsMap.get(R))==null?void 0:V.packetsReceived)||0),jitter:I.jitter||0,isScreenShare:this.screenShareConsumers.has(R)}),P.set(R,{score:+(I.score*10).toFixed(),frameWidth:I.frameWidth||0,frameHeight:I.frameHeight||0,framesPerSecond:I.framesPerSecond||0,packetsLostPercentage:Ed({packetsLost:(I.packetsLost||0)-(((F=this.videoConsumerToStatsMap.get(R))==null?void 0:F.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((N=this.videoConsumerToStatsMap.get(R))==null?void 0:N.packetsReceived)||0)}),jitter:I.jitter||0,isScreenShare:this.screenShareConsumers.has(R),bitrate:((I.bytesReceived||0)-(((B=this.videoConsumerToStatsMap.get(R))==null?void 0:B.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(R,I),d.inboundVideoRtp.set(A.id,I),d.consumerStreamMap.get(R).inboundVideoRtpId.push(A.id),this.processInboundConsumerVideoStats(R,fe,I)}else if(S.mediaType==="audio"||S.kind==="audio"){const L=S,I=D({audioLevel:L.audioLevel,concealedSamples:L.concealedSamples,concealmentEvents:L.concealmentEvents,totalAudioEnergy:L.totalAudioEnergy,totalSamplesDuration:L.totalSamplesDuration,totalSamplesReceived:L.totalSamplesReceived,fecPacketsDiscarded:L.fecPacketsDiscarded||0,fecPacketsReceived:L.fecPacketsReceived||0,insertedSamplesForDeceleration:L.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:L.removedSamplesForAcceleration||0,silentConcealedSamples:L.silentConcealedSamples||0,playoutId:L.playoutId},xe);I.score=Sm({concealmentEvents:(I.concealmentEvents||0)-(((G=this.audioConsumerToStatsMap.get(R))==null?void 0:G.concealmentEvents)||0),packetsLost:(I.packetsLost||0)-(((re=this.audioConsumerToStatsMap.get(R))==null?void 0:re.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((tt=this.audioConsumerToStatsMap.get(R))==null?void 0:tt.packetsReceived)||0),jitter:I.jitter||0}),P.set(R,{score:+(I.score*10).toFixed(),packetsLostPercentage:Ed({packetsLost:(I.packetsLost||0)-(((ds=this.audioConsumerToStatsMap.get(R))==null?void 0:ds.packetsLost)||0),packetsReceived:(I.packetsReceived||0)-(((ii=this.audioConsumerToStatsMap.get(R))==null?void 0:ii.packetsReceived)||0)}),jitter:I.jitter||0,isScreenShare:this.screenShareConsumers.has(R),bitrate:((I.bytesReceived||0)-(((ls=this.audioConsumerToStatsMap.get(R))==null?void 0:ls.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(R,I),d.inboundAudioRtp.set(A.id,I),d.consumerStreamMap.get(R).inboundAudioRtpId.push(A.id),this.processInboundConsumerAudioStats(R,fe,I)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${S.mediaType} kind: ${S.kind}`);break}}}if(d.producerStreamMap.forEach((A,S)=>{var R,x,fe,xe,L,I,Ue,wr,qs,ja,Ga,Wa,Ja,Ka,za,Ya,Qa,Xa,Za,eo,to,so,ro;if(A.outboundVideoRtpId.length>0){const le=[];A.outboundVideoRtpId.forEach(Xl=>{le.push(d.outboundVideoRtp.get(Xl))});const se=this.getWorkingSimulcastVideoStats(le);se.score=vm({frameWidth:se.frameWidth||0,framesPerSecond:se.framesPerSecond||0,jitter:((R=se.remoteData)==null?void 0:R.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsSent:(se.packetsSent||0)-(((x=this.videoProducerToStatsMap.get(S))==null?void 0:x.packetsSent)||0),packetsLost:(((fe=se.remoteData)==null?void 0:fe.packetsLost)||0)-(((L=(xe=this.videoProducerToStatsMap.get(S))==null?void 0:xe.remoteData)==null?void 0:L.packetsLost)||0),framesEncoded:(se.framesEncoded||0)-(((I=this.videoProducerToStatsMap.get(S))==null?void 0:I.framesEncoded)||0)}),v.set(S,{score:+(se.score*10).toFixed(),frameWidth:se.frameWidth||0,frameHeight:se.frameHeight||0,framesPerSecond:se.framesPerSecond||0,jitter:((Ue=se.remoteData)==null?void 0:Ue.jitter)||0,isScreenShare:this.screenShareProducers.has(S),packetsLostPercentage:Sd({packetsSent:(se.packetsSent||0)-(((wr=this.videoProducerToStatsMap.get(S))==null?void 0:wr.packetsSent)||0),packetsLost:(((qs=se.remoteData)==null?void 0:qs.packetsLost)||0)-(((Ga=(ja=this.videoProducerToStatsMap.get(S))==null?void 0:ja.remoteData)==null?void 0:Ga.packetsLost)||0)}),bitrate:((se.bytesSent||0)-(((Wa=this.videoProducerToStatsMap.get(S))==null?void 0:Wa.bytesSent)||0))*8/7,cpuLimitations:se.qualityLimitationReason==="cpu",bandwidthLimitations:se.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(S,se)}else if(A.outboundAudioRtpId.length>0){const le=d.outboundAudioRtp.get(A.outboundAudioRtpId[0]);le.score=Tm({packetsSent:(le.packetsSent||0)-(((Ja=this.audioProducerToStatsMap.get(S))==null?void 0:Ja.packetsSent)||0),packetsLost:(((Ka=le.remoteData)==null?void 0:Ka.packetsLost)||0)-(((Ya=(za=this.audioProducerToStatsMap.get(S))==null?void 0:za.remoteData)==null?void 0:Ya.packetsLost)||0),jitter:((Qa=le.remoteData)==null?void 0:Qa.jitter)||0}),v.set(S,{score:+(le.score*10).toFixed(),bitrate:((le.bytesSent||0)-(((Xa=this.audioProducerToStatsMap.get(S))==null?void 0:Xa.bytesSent)||0))*8/7,packetsLostPercentage:Sd({packetsSent:(le.packetsSent||0)-(((Za=this.audioProducerToStatsMap.get(S))==null?void 0:Za.packetsSent)||0),packetsLost:(((eo=le.remoteData)==null?void 0:eo.packetsLost)||0)-(((so=(to=this.audioProducerToStatsMap.get(S))==null?void 0:to.remoteData)==null?void 0:so.packetsLost)||0)}),jitter:((ro=le.remoteData)==null?void 0:ro.jitter)||0,isScreenShare:this.screenShareProducers.has(S)}),this.audioProducerToStatsMap.set(S,le)}}),T.forEach(A=>{const S=p.find(x=>x.id===A.localCandidateId?(A.localCandidateId=x.id,x):null),R=g.find(x=>x.id===A.remoteCandidateId?(A.remoteCandidateId=x.id,x):null);S&&(A.localCandidateType=S.type,A.localCandidateAddress=Zr(S.address),A.localCandidatePort=S.port,A.localCandidateProtocol=S.protocol,A.localCandidateUrl=S.url,A.localCandidateNetworkType=S.networkType,A.localCandidateRelatedAddress=Zr(S.relatedAddress),A.localCandidateRelatedPort=S.relatedPort),R&&(A.remoteCandidateType=R.type,A.remoteCandidateAddress=Zr(R.address),A.remoteCandidatePort=R.port,A.remoteCandidateProtocol=R.protocol,A.remoteCandidateUrl=R.url)}),d.candidatePair&&(d.transport?(d.transport.bytesReceived=d.candidatePair.bytesReceived,d.transport.bytesSent=d.candidatePair.bytesSent,d.transport.totalRoundTripTime=d.candidatePair.totalRoundTripTime,d.transport.availableOutgoingBitrate=d.candidatePair.availableOutgoingBitrate,d.transport.availableIncomingBitrate=d.candidatePair.availableIncomingBitrate,d.transport.roundTripTime=d.candidatePair.currentRoundTripTime):d.transport={bytesReceived:d.candidatePair.bytesReceived,bytesSent:d.candidatePair.bytesSent,totalRoundTripTime:d.candidatePair.totalRoundTripTime,availableOutgoingBitrate:d.candidatePair.availableOutgoingBitrate,availableIncomingBitrate:d.candidatePair.availableIncomingBitrate,roundTripTime:d.candidatePair.currentRoundTripTime}),d.transport&&(d.transport.candidatePairs=T),d.transport&&!d.transport.roundTripTime){let A=0,S=0;d.remoteInboundRtp.forEach((R,x)=>{R.roundTripTime&&R.roundTripTime>A&&(A=R.roundTripTime,S=R.totalRoundTripTime)}),d.transport.roundTripTime=A,d.transport.totalRoundTripTime=S}if(P.size>0)try{this.observer.emit("consumer_score",P)}catch(A){}if(v.size>0)try{this.observer.emit("producer_score",v)}catch(A){}return d}getProducerStatsFromReport(e){const r=[];try{e.producerStreamMap.forEach((i,a)=>{const o=this.producerMap.get(a),c=o.track.getSettings(),d=i.outboundVideoRtpId.map(p=>{const g=e.outboundVideoRtp.get(p);return g.frameHeight||(g.frameHeight=c.height,g.frameWidth=c.width,g.framesPerSecond=c.frameRate),g}),l={producerId:a,appData:o.appData,videoStats:d,audioStats:i.outboundAudioRtpId.map(p=>e.outboundAudioRtp.get(p))};r.push(l)})}catch(i){console.error("getProducersReport: ",i,e)}return r}getConsumerStatsFromParsedConsumerStats(e,r,i){let a;try{const{peerId:o,producerId:c,appData:d}=this.consumerPeerIdMap.get(i),l=r==null?void 0:r.inboundVideoRtpId.map(p=>{const T=this.consumerMap.get(i).track.getSettings(),v=e.inboundVideoRtp.get(p);return v.frameHeight||(v.frameHeight=T.height,v.frameWidth=T.width,v.framesPerSecond=T.frameRate),v});a={consumerId:i,peerId:o,producerId:c,appData:d,videoStats:l,audioStats:r==null?void 0:r.inboundAudioRtpId.map(p=>e.inboundAudioRtp.get(p))}}catch(o){console.error("getConsumerStatsFromParsedConsumerStats: ",o,e)}return a}getConsumerStatsFromReport(e){const r=[];try{e.consumerStreamMap.forEach((i,a)=>{r.push(this.getConsumerStatsFromParsedConsumerStats(e,i,a))})}catch(i){console.error("getConsumerStatsFromReport: ",i,e)}return r}}class Hv extends wm{}function Pd(s,t,e,r){if(s!=null&&s.logger&&s.logger.error("Callstats::handleError",{error:r}),typeof e=="function"&&r instanceof t)e.call(null,r,s);else throw r}function op(s,t,e){const r=s.value;return s.value=function(...i){try{const a=r.apply(this,i);return a&&a instanceof Promise?a.catch(o=>{Pd(this,t,e,o)}):a}catch(a){Pd(this,t,e,a)}return null},s}const X=(s,t)=>(e,r,i)=>{const a=i.value;return i.value=function(...o){try{const c=a.apply(this,o);return c&&c instanceof Promise?c.catch(d=>{Pd(this,s,t,d)}):c}catch(c){Pd(this,s,t,c)}return null},i},qv=(s,t)=>(e,r,i)=>{if(i)return op(i,s,t);for(const a of Reflect.ownKeys(e.prototype).filter(o=>o!=="constructor")){const o=Object.getOwnPropertyDescriptor(e.prototype,a);o.value instanceof Function&&Object.defineProperty(e.prototype,a,op(o,s,t))}};var Y=globalThis&&globalThis.__decorate||function(s,t,e,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,e):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(s,t,e,r);else for(var c=s.length-1;c>=0;c--)(o=s[c])&&(a=(i<3?o(a):i>3?o(t,e,a):o(t,e))||a);return i>3&&a&&Object.defineProperty(t,e,a),a};const Q=console;let K=class extends lt{constructor(e="https://api.testingv3.dyte.in",r="Blink",i=yo.PROD,a,o,c,d){super();h(this,"observer");h(this,"eventHandler");h(this,"measurements");h(this,"producingTransport");h(this,"consumingTransport");h(this,"producers",new Map);h(this,"consumers",new Map);h(this,"iceServers");h(this,"connectionInfoPromise");h(this,"pingStatsTimeout");h(this,"logger");h(this,"env");h(this,"apiHostnames");h(this,"peerId");h(this,"consumerSharedMediaStatesMap",new Map);h(this,"currentUserMediaStates",{});switch(this.env=i,this.apiHostnames=d,this.logger=o,this.peerId=c,this.eventHandler=new bv({logger:o,peerId:c,apiHostnames:d}),this.logger.debug("callStats::engineName: ",{engineName:r}),r){case"Blink":this.measurements=new Bv;break;case"Gecko":this.measurements=new wm;break;case"WebKit":this.measurements=new Hv;break;default:throw Error(`Unknown engineName! ${r}`)}this.measurements.callStatsInstance=this,this.registerProducer=this.registerProducer.bind(this),this.registerConsumer=this.registerConsumer.bind(this),this.observer=new lt,this.measurements.observer.on("consumer_score",l=>{o.debug(`callStats::consumer_score ${[...l.entries()]}`),this.eventHandler.emit("consumer_score",l)}),this.measurements.observer.on("producer_score",l=>{o.debug(`callStats::producer_score ${[...l.entries()]}`),this.eventHandler.emit("producer_score",l)})}registerIceServers(e){this.iceServers=e}registerConsumer(e){var r;this.consumerSharedMediaStatesMap.has(e.id)||this.consumerSharedMediaStatesMap.set(e.id,{}),this.consumers.set(e.id,e),this.measurements.registerConsumer(e),this.logger.debug("callStats::registerConsumer",{consumerId:e.id,consumerkind:e.kind,isScreenShare:!!((r=e.appData)!=null&&r.screenShare)}),e.on("close",this.deRegisterConsumer.bind(this,e))}registerProducer(e){var r;this.producers.set(e.id,e),this.measurements.registerProducer(e),this.logger.debug("callStats::registerProducer",{producerId:e.id,producerKind:e.kind,isScreenShare:!!((r=e.appData)!=null&&r.screenShare)}),e.on("close",this.deRegisterProducer.bind(this,e))}sendConsumerSharedMediaStateEvent(e,r){this.consumerSharedMediaStatesMap.has(e)||this.consumerSharedMediaStatesMap.set(e,{});const i=this.consumerSharedMediaStatesMap.get(e);this.consumerSharedMediaStatesMap.set(e,Object.assign(i,r))}registerProducingTransport(e){var i;this.producingTransport=e,e.on("close",this.disconnectProducingTransport.bind(this,e)),e.on("disconnect",this.disconnectProducingTransport.bind(this,e)),Array.from(((i=e._producers)==null?void 0:i.values())||[]).forEach(a=>{this.registerProducer(a)}),e.on("newproducer",this.registerProducer)}registerConsumingTransport(e){var i;this.consumingTransport=e,e.on("close",this.disconnectConsumingTransport.bind(this,e)),e.on("disconnect",this.disconnectConsumingTransport.bind(this,e)),Array.from(((i=e._consumers)==null?void 0:i.values())||[]).forEach(a=>{this.registerConsumer(a)}),e.on("newconsumer",this.registerConsumer)}deRegisterConsumer(e){this.consumers.delete(e.id)}deRegisterProducer(e){var r;this.producers.delete(e.id),this.logger.debug("callStats::deRegisterProducer",{producerId:e.id,producerKind:e.kind,isScreenShare:!!((r=e.appData)!=null&&r.screenShare)})}disconnectConsumingTransport(){this.consumingTransport=void 0}disconnectProducingTransport(){this.producingTransport=void 0}callEvent(e){this.eventHandler.callEvent(e)}sendPreCallTestBeginEvent(e=!1,r){this.connectionInfoPromise=this.measurements.getNetworkInfo(this.iceServers,e),this.eventHandler.callEvent({event:O.PRECALL_TEST_BEGIN,timestamp:r}),this.connectionInfoPromise&&this.connectionInfoPromise.then(i=>{this.eventHandler.callEvent({event:O.PRECALL_TEST_COMPLETE,metaData:{connectionInfo:i},timestamp:r})})}sendScreenShareToggleEvent(e,r=null,i){this.currentUserMediaStates.screen=e,this.eventHandler.callEvent({event:e?O.SCREENSHARE_STARTED:O.SCREENSHARE_STOPPED,metaData:{ssrc:r},timestamp:i})}sendScreenShareRequestedEvent(e){this.eventHandler.callEvent({event:O.SCREENSHARE_START_REQUESTED,timestamp:e})}sendActiveSpeakerEvent(e,r){this.eventHandler.callEvent({event:O.DOMINANT_SPEAKER,metaData:{peerId:e},timestamp:r})}devices(e,r,i){this.eventHandler.callEvent({event:e===Kt.AUDIO&&O.AUDIO_DEVICES_UPDATES||e===Kt.VIDEO&&O.VIDEO_DEVICES_UPDATES||e===Kt.SPEAKER&&O.SPEAKER_DEVICES_UPDATES,metaData:{deviceList:r},timestamp:i})}selectedDevice(e,r,i){this.eventHandler.callEvent({event:e===Kt.AUDIO&&O.SELECTED_MICROHPONE_UPDATE||e===Kt.VIDEO&&O.SELECTED_CAMERA_UPDATE||e===Kt.SPEAKER&&O.SELECTED_SPEAKER_UPDATE,metaData:{device:r},timestamp:i})}mediaPermission(e,r,i){this.eventHandler.callEvent({event:O.MEDIA_PERMISSION,metaData:{deviceType:e,permission:r},timestamp:i})}mediaPlaybackFailed(e,r){this.eventHandler.callEvent({event:e===Kt.AUDIO&&O.AUDIO_PLAY_FAILED||e===Kt.VIDEO&&O.VIDEO_PLAY_FAILED,metaData:{deviceType:e},timestamp:r})}mediaTrackMuted(e,r){this.eventHandler.callEvent({event:e===Kt.AUDIO&&O.AUDIO_TRACK_MUTED||e===Kt.VIDEO&&O.VIDEO_TRACK_MUTED,metaData:{deviceType:e},timestamp:r})}tabChanged(e,r){this.eventHandler.callEvent({event:O.TAB_CHANGE,metaData:{isMeetingsTabActive:e},timestamp:r})}browserBackgrounded(e){this.eventHandler.callEvent({event:O.BROWSER_BACKGROUNDED,timestamp:e})}browserForegrounded(e){this.eventHandler.callEvent({event:O.BROWSER_FOREGROUNDED,timestamp:e})}legacySwitch(e,r){this.eventHandler.callEvent({event:O.LEGACY_SWITCH,metadata:{on:e},timestamp:r})}getPreCallTestResults(){return u(this,null,function*(){return this.connectionInfoPromise})}sendCallJoinBeginEvent(e,r){e=H(D({},e),{meetingEnv:this.env}),e.deviceInfo=H(D({},e.deviceInfo),{userAgent:navigator.userAgent,cpus:navigator.hardwareConcurrency,memory:navigator.deviceMemory}),this.eventHandler.callEvent({event:O.CALL_JOIN_BEGIN,metaData:{peerMetaData:e},timestamp:r})}sendNetworkQualityTestBeginEvent(e,r){this.eventHandler.callEvent({event:O.NET_QUALITY_TEST_BEGIN,timestamp:r}),new Promise((a,o)=>u(this,null,function*(){const c=[];try{for(const d of e)try{if(d.iceServers&&d.iceServers.length>0){const l=yield this.measurements.getNetworkQuality(d.iceServers);c.push(H(D({},d),{networkResults:l}))}}catch(l){console.warn("Error handling ",l)}a({regionData:c})}catch(d){console.warn("Error in callstats, ",d),o(d)}})).then(a=>{this.eventHandler.callEvent({event:O.NET_QUALITY_TEST_END,timestamp:r,metaData:a})})}sendWebSocketConnectedEvent(e){this.eventHandler.callEvent({event:O.WEBSOCKET_CONNECTED,timestamp:e})}sendTransportConnectedEvent(e){this.eventHandler.callEvent({event:O.TRANSPORT_CONNECTED,timestamp:e})}sendAudioToggleEvent(e,r){this.currentUserMediaStates.audio=e;let i;e?i=O.AUDIO_ON:i=O.AUDIO_OFF,this.eventHandler.callEvent({event:i,timestamp:r})}sendVideoToggleEvent(e,r){this.currentUserMediaStates.video=e;let i;e?i=O.VIDEO_ON:i=O.VIDEO_OFF,this.eventHandler.callEvent({event:i,timestamp:r})}sendParticipantRoleToggleEvent(e,r){this.eventHandler.callEvent({event:O.PARTICIPANT_ROLE,timestamp:r,metaData:e})}startPingStats(e=7e3){this.sendPingStatsEvent(!1,new Date),this.pingStatsTimeout=setInterval(this.sendPingStatsEvent.bind(this),e)}stopPingStats(){clearInterval(this.pingStatsTimeout)}sendPingStatsEvent(e=!0,r){return u(this,null,function*(){let i,a;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 c=yield this.measurements.getProducersReport([...this.producers.values()]);i&&c?i.producerReport=c:(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&&(a=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),!a||!a.consumerReport)){this.logger.debug("callStats::sendPingStatsEvent::staleConsumingTransport",{disclaimer:"Stale consumer? Regenerating Stream Maps!"});const c=yield this.measurements.getConsumersReport([...this.consumers.values()]);a&&c?a.consumerReport=c:(a=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),(!a||!a.consumerReport)&&this.logger.debug("callStats::sendPingStatsEvent::noConsumingTransportReport",{disclaimer:"Stream maps invalid despite regenerating!"}))}const o={producingTransportStats:i?i==null?void 0:i.transportReport:void 0,consumingTransportStats:a?a==null?void 0:a.transportReport:void 0,producerStats:[].concat((i==null?void 0:i.producerReport)||[]).concat((a==null?void 0:a.producerReport)||[]),consumerStats:[].concat((a==null?void 0:a.consumerReport)||[]).concat((i==null?void 0:i.consumerReport)||[])};if(e&&o.producerStats.length===0&&o.consumerStats.length===0){yield this.eventHandler.flush();return}this.eventHandler.callEvent({event:O.PING_STAT,metaData:o,timestamp:r})})}sendIVSPlayerRebufferEvent(e){this.eventHandler.callEvent({event:O.IVS_PLAYER_REBUFFERING,timestamp:e})}sendIVSPlayerAudioBlockEvent(e){this.eventHandler.callEvent({event:O.IVS_PLAYER_AUDIO_BLOCKED,timestamp:e})}sendIVSPlayerPlaybackBlockedEvent(e){this.eventHandler.callEvent({event:O.IVS_PLAYER_PLAYBACK_BLOCKED,timestamp:e})}sendIVSPlayerNetworkUnavailableEvent(e){this.eventHandler.callEvent({event:O.IVS_PLAYER_NETWORK_UNAVAILABLE,timestamp:e})}sendIVSPlayerInitializedEvent(e){this.eventHandler.callEvent({event:O.IVS_PLAYER_INITIALIZED,timestamp:e})}sendIVSPlayerWorkerErrorEvent(e){this.eventHandler.callEvent({event:O.IVS_PLAYER_WORKER_ERROR,timestamp:e})}sendIVSPlayerErrorEvent(e,r){this.eventHandler.callEvent({event:O.IVS_PLAYER_ERROR,timestamp:r,metaData:e})}sendIVSPlayerRecoverableErrorEvent(e,r){this.eventHandler.callEvent({event:O.IVS_PLAYER_RECOVERABLE_ERROR,timestamp:r,metaData:e})}sendIVSPlayerAnalyticsEvent(e,r){this.eventHandler.callEvent({event:O.IVS_PLAYER_ANALYTICS_EVENT,timestamp:r,metaData:e})}sendIVSPlayerPlaybackRateChangedEvent(e,r){this.eventHandler.callEvent({event:O.IVS_PLAYER_PLAYBACK_RATE_CHANGED,timestamp:r,metaData:{updatedPlaybackRate:e}})}sendIVSPlayerQualityChanged(e,r){this.eventHandler.callEvent({event:O.IVS_PLAYER_QUALITY_CHANGED,timestamp:r,metaData:e})}sendPlayerLiveLatency(e,r){this.eventHandler.callEvent({event:O.LIVESTREAM_LATENCY,timestamp:r,metaData:{latency:e}})}sendDisconnectEvent(e){this.eventHandler.callEvent({event:O.DISCONNECT,timestamp:e})}sendReconnectEvent(e){this.eventHandler.callEvent({event:O.RECONNECT_ATTEMPT,timestamp:e})}expectedVideoResolution(e,r,i){this.eventHandler.callEvent({event:O.EXPECTED_VIDEO_RESOLUTION,timestamp:i,metaData:{frameWidth:e,frameHeight:r}})}expectedScreenshareResolution(e,r,i){this.eventHandler.callEvent({event:O.EXPECTED_SCREENSHARE_RESOLUTION,timestamp:i,metaData:{frameWidth:e,frameHeight:r}})}};Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"registerIceServers",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"registerConsumer",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"registerProducer",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendConsumerSharedMediaStateEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"registerProducingTransport",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"registerConsumingTransport",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"deRegisterConsumer",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"deRegisterProducer",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"disconnectConsumingTransport",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"disconnectProducingTransport",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendPreCallTestBeginEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendScreenShareToggleEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendScreenShareRequestedEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendActiveSpeakerEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"devices",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"selectedDevice",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"mediaPermission",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"mediaPlaybackFailed",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"mediaTrackMuted",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"tabChanged",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"browserBackgrounded",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"browserForegrounded",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"legacySwitch",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"getPreCallTestResults",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendCallJoinBeginEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendNetworkQualityTestBeginEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendWebSocketConnectedEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendTransportConnectedEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendAudioToggleEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendVideoToggleEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendParticipantRoleToggleEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"startPingStats",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"stopPingStats",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendPingStatsEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerRebufferEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerAudioBlockEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerPlaybackBlockedEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerNetworkUnavailableEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerInitializedEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerWorkerErrorEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerErrorEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerRecoverableErrorEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerAnalyticsEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerPlaybackRateChangedEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendIVSPlayerQualityChanged",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendPlayerLiveLatency",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendDisconnectEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"sendReconnectEvent",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"expectedVideoResolution",null);Y([X(TypeError,(s,t)=>Q.error(t,s))],K.prototype,"expectedScreenshareResolution",null);K=Y([qv(TypeError,(s,t)=>Q.error(t,s))],K);const jv=K;class Rm extends lt{constructor(){super(...arguments);h(this,"stats");h(this,"peerId");h(this,"backend");h(this,"iceServers");h(this,"initialized",!1);h(this,"stalled",!1);h(this,"ipInformation");h(this,"logger")}initialize(g){return u(this,arguments,function*({peerId:e,engineName:r,env:i=yo.PROD,iceServers:a,apiBase:o="https://api.cluster.dyte.in",flags:c,logger:d=console,apiHostnames:l,skipConnectivityChecks:p=!1}){var T,v,P;try{this.peerId=e,this.logger=d,this.ipInformation=yield ph.getIPDetails({peerId:e,apiHostnames:l,logger:d}),this.backend=new jv(o,r,i,c,d,e,l),this.iceServers=a,(T=this.backend)==null||T.registerIceServers(this.iceServers),this.initialized=!0,(P=(v=this.backend)==null?void 0:v.eventHandler)==null||P.emit("initialized",this.ipInformation),this.emit("initialized",this.ipInformation),this.startPreCallTest(p)}catch(_){this.logger.error("callStats::CallStatsIntegration: ",{error:_}),this.stallCallStats()}})}configureSendTransport(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.registerProducingTransport(e)})}configureRecvTransport(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.registerConsumingTransport(e)})}candidateRegionalNetworkQualityTest(e){return u(this,null,function*(){const r=new Date;this.onSafeInitialization(()=>{var i;try{(i=this.backend)==null||i.sendNetworkQualityTestBeginEvent(e,r)}catch(a){this.logger.error("callStats::sendNetworkQualityTestBeginEvent",{error:{reason:a.reason}})}})})}roomJoined(e){return u(this,null,function*(){const r=new Date;this.onSafeInitialization(()=>{var i,a;(i=this.backend)==null||i.sendCallJoinBeginEvent(e,r),this.backend,(a=this.backend)==null||a.startPingStats()})})}audioOff(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendAudioToggleEvent(!1,e)})}audioOn(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendAudioToggleEvent(!0,e)})}videoOff(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendVideoToggleEvent(!1,e)})}videoOn(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendVideoToggleEvent(!0,e)})}callEnded(){const e=new Date;this.onSafeInitialization(()=>{var r,i;(r=this.backend)==null||r.stopPingStats(),(i=this.backend)==null||i.sendDisconnectEvent(e)})}screenShareStart(e){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendScreenShareToggleEvent(!0,e,r)})}consumerSharedMediaState(e,r){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendConsumerSharedMediaStateEvent(e,r)})}screenShareStop(e){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendScreenShareToggleEvent(!1,e,r)})}screenShareRequested(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendScreenShareRequestedEvent(e)})}activeSpeaker(e){if(e!==this.peerId)return;const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendActiveSpeakerEvent(e,r)})}devices(e,r){const i=new Date;this.onSafeInitialization(()=>{var a;(a=this.backend)==null||a.devices(e,r,i)})}selectedDevice(e,r){const i=new Date;this.onSafeInitialization(()=>{var a;(a=this.backend)==null||a.selectedDevice(e,r,i)})}mediaPermission(e,r){const i=new Date;this.onSafeInitialization(()=>{var a;(a=this.backend)==null||a.mediaPermission(e,r,i)})}mediaPlaybackFailed(e){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.mediaPlaybackFailed(e,r)})}mediaTrackMuted(e){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.mediaTrackMuted(e,r)})}tabChanged(e=!1){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.tabChanged(e,r)})}browserBackgrounded(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.browserBackgrounded(e)})}browserForegrounded(){const e=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.browserForegrounded(e)})}legacySwitch(e){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.legacySwitch(e,r)})}startPreCallTest(e=!1){return u(this,null,function*(){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendPreCallTestBeginEvent(e,r)})})}onPreCallTestResults(e){return this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.once("precall_end",e)}),e}onReceivingConsumerAudioStatus(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("consumer_audio_status",e)})}onReceivingConsumerVideoStatus(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("consumer_video_status",e)})}onReceivingProducerAudioStatus(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("producer_audio_status",e)})}onReceivingProducerVideoStatus(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("producer_video_status",e)})}onReceivingProducingTransportStatus(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("producing_transport_status",e)})}onReceivingConsumingTransportStatus(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("consuming_transport_status",e)})}onProducerScore(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("producer_score",e)})}onConsumerScore(e){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.eventHandler.on("consumer_score",e)})}onSafeInitialization(e){if(this.initialized)e(this.ipInformation,!1);else if(!this.stalled){const r=i=>{e(i,!0)};return this.once("initialized",r),r}return()=>{}}removeInitializationListener(e){this.removeListener("initialized",e)}stallCallStats(){this.stalled=!0,this.removeAllListeners("initialized")}ivsPlayerEvent(e,r){const i=new Date;this.onSafeInitialization(()=>{var a,o,c,d,l,p,g,T,v,P,_;switch(e){case"PlayerRebuffering":(a=this.backend)==null||a.sendIVSPlayerRebufferEvent(i);break;case"PlayerAudioBlocked":(o=this.backend)==null||o.sendIVSPlayerAudioBlockEvent(i);break;case"PlayerPlaybackBlocked":(c=this.backend)==null||c.sendIVSPlayerPlaybackBlockedEvent(i);break;case"PlayerNetworkUnavailable":(d=this.backend)==null||d.sendIVSPlayerNetworkUnavailableEvent(i);break;case"PlayerInitialized":(l=this.backend)==null||l.sendIVSPlayerInitializedEvent(i);break;case"PlayerWorkerError":(p=this.backend)==null||p.sendIVSPlayerWorkerErrorEvent(i);break;case"PlayerError":(g=this.backend)==null||g.sendIVSPlayerErrorEvent(r,i);break;case"PlayerRecoverableError":(T=this.backend)==null||T.sendIVSPlayerRecoverableErrorEvent(r,i);break;case"PlayerAnalyticsEvent":(v=this.backend)==null||v.sendIVSPlayerAnalyticsEvent(r,i);break;case"PlayerPlaybackRateChanged":(P=this.backend)==null||P.sendIVSPlayerPlaybackRateChangedEvent(r,i);break;case"PlayerQualityChanged":(_=this.backend)==null||_.sendIVSPlayerQualityChanged(r,i);break}})}livestreamLatency(e){const r=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendPlayerLiveLatency(e,r)})}expectedVideoResolution(e,r){const i=new Date;this.onSafeInitialization(()=>{var a;(a=this.backend)==null||a.expectedVideoResolution(e,r,i)})}expectedScreenshareResolution(e,r){const i=new Date;this.onSafeInitialization(()=>{var a;(a=this.backend)==null||a.expectedScreenshareResolution(e,r,i)})}}const Gv=new Rm;Gv.setMaxListeners(30);function Wv(){this.__data__=[],this.size=0}function Vc(s,t){return s===t||s!==s&&t!==t}function Dl(s,t){for(var e=s.length;e--;)if(Vc(s[e][0],t))return e;return-1}var Jv=Array.prototype,Kv=Jv.splice;function zv(s){var t=this.__data__,e=Dl(t,s);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():Kv.call(t,e,1),--this.size,!0}function Yv(s){var t=this.__data__,e=Dl(t,s);return e<0?void 0:t[e][1]}function Qv(s){return Dl(this.__data__,s)>-1}function Xv(s,t){var e=this.__data__,r=Dl(e,s);return r<0?(++this.size,e.push([s,t])):e[r][1]=t,this}function Er(s){var t=-1,e=s==null?0:s.length;for(this.clear();++t<e;){var r=s[t];this.set(r[0],r[1])}}Er.prototype.clear=Wv;Er.prototype.delete=zv;Er.prototype.get=Yv;Er.prototype.has=Qv;Er.prototype.set=Xv;function Zv(){this.__data__=new Er,this.size=0}function ey(s){var t=this.__data__,e=t.delete(s);return this.size=t.size,e}function ty(s){return this.__data__.get(s)}function sy(s){return this.__data__.has(s)}var ry=typeof global=="object"&&global&&global.Object===Object&&global;const bm=ry;var iy=typeof self=="object"&&self&&self.Object===Object&&self,ny=bm||iy||Function("return this")();const ks=ny;var ay=ks.Symbol;const Bs=ay;var km=Object.prototype,oy=km.hasOwnProperty,cy=km.toString,no=Bs?Bs.toStringTag:void 0;function dy(s){var t=oy.call(s,no),e=s[no];try{s[no]=void 0;var r=!0}catch(a){}var i=cy.call(s);return r&&(t?s[no]=e:delete s[no]),i}var ly=Object.prototype,uy=ly.toString;function hy(s){return uy.call(s)}var py="[object Null]",gy="[object Undefined]",cp=Bs?Bs.toStringTag:void 0;function un(s){return s==null?s===void 0?gy:py:cp&&cp in Object(s)?dy(s):hy(s)}function as(s){var t=typeof s;return s!=null&&(t=="object"||t=="function")}var my="[object AsyncFunction]",fy="[object Function]",Ty="[object GeneratorFunction]",vy="[object Proxy]";function gh(s){if(!as(s))return!1;var t=un(s);return t==fy||t==Ty||t==my||t==vy}var yy=ks["__core-js_shared__"];const tu=yy;var dp=function(){var s=/[^.]+$/.exec(tu&&tu.keys&&tu.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""}();function Sy(s){return!!dp&&dp in s}var Ey=Function.prototype,Py=Ey.toString;function hn(s){if(s!=null){try{return Py.call(s)}catch(t){}try{return s+""}catch(t){}}return""}var _y=/[\\^$.*+?()[\]{}|]/g,Cy=/^\[object .+?Constructor\]$/,wy=Function.prototype,Ry=Object.prototype,by=wy.toString,ky=Ry.hasOwnProperty,Iy=RegExp("^"+by.call(ky).replace(_y,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Ay(s){if(!as(s)||Sy(s))return!1;var t=gh(s)?Iy:Cy;return t.test(hn(s))}function My(s,t){return s==null?void 0:s[t]}function pn(s,t){var e=My(s,t);return Ay(e)?e:void 0}var Dy=pn(ks,"Map");const bo=Dy;var Oy=pn(Object,"create");const ko=Oy;function Ny(){this.__data__=ko?ko(null):{},this.size=0}function Ly(s){var t=this.has(s)&&delete this.__data__[s];return this.size-=t?1:0,t}var Vy="__lodash_hash_undefined__",xy=Object.prototype,Uy=xy.hasOwnProperty;function $y(s){var t=this.__data__;if(ko){var e=t[s];return e===Vy?void 0:e}return Uy.call(t,s)?t[s]:void 0}var Fy=Object.prototype,By=Fy.hasOwnProperty;function Hy(s){var t=this.__data__;return ko?t[s]!==void 0:By.call(t,s)}var qy="__lodash_hash_undefined__";function jy(s,t){var e=this.__data__;return this.size+=this.has(s)?0:1,e[s]=ko&&t===void 0?qy:t,this}function cn(s){var t=-1,e=s==null?0:s.length;for(this.clear();++t<e;){var r=s[t];this.set(r[0],r[1])}}cn.prototype.clear=Ny;cn.prototype.delete=Ly;cn.prototype.get=$y;cn.prototype.has=Hy;cn.prototype.set=jy;function Gy(){this.size=0,this.__data__={hash:new cn,map:new(bo||Er),string:new cn}}function Wy(s){var t=typeof s;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?s!=="__proto__":s===null}function Ol(s,t){var e=s.__data__;return Wy(t)?e[typeof t=="string"?"string":"hash"]:e.map}function Jy(s){var t=Ol(this,s).delete(s);return this.size-=t?1:0,t}function Ky(s){return Ol(this,s).get(s)}function zy(s){return Ol(this,s).has(s)}function Yy(s,t){var e=Ol(this,s),r=e.size;return e.set(s,t),this.size+=e.size==r?0:1,this}function Pr(s){var t=-1,e=s==null?0:s.length;for(this.clear();++t<e;){var r=s[t];this.set(r[0],r[1])}}Pr.prototype.clear=Gy;Pr.prototype.delete=Jy;Pr.prototype.get=Ky;Pr.prototype.has=zy;Pr.prototype.set=Yy;var Qy=200;function Xy(s,t){var e=this.__data__;if(e instanceof Er){var r=e.__data__;if(!bo||r.length<Qy-1)return r.push([s,t]),this.size=++e.size,this;e=this.__data__=new Pr(r)}return e.set(s,t),this.size=e.size,this}function bs(s){var t=this.__data__=new Er(s);this.size=t.size}bs.prototype.clear=Zv;bs.prototype.delete=ey;bs.prototype.get=ty;bs.prototype.has=sy;bs.prototype.set=Xy;function Zy(s,t){for(var e=-1,r=s==null?0:s.length;++e<r&&t(s[e],e,s)!==!1;);return s}var eS=function(){try{var s=pn(Object,"defineProperty");return s({},"",{}),s}catch(t){}}();const _d=eS;function mh(s,t,e){t=="__proto__"&&_d?_d(s,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):s[t]=e}var tS=Object.prototype,sS=tS.hasOwnProperty;function Im(s,t,e){var r=s[t];(!(sS.call(s,t)&&Vc(r,e))||e===void 0&&!(t in s))&&mh(s,t,e)}function xc(s,t,e,r){var i=!e;e||(e={});for(var a=-1,o=t.length;++a<o;){var c=t[a],d=r?r(e[c],s[c],c,e,s):void 0;d===void 0&&(d=s[c]),i?mh(e,c,d):Im(e,c,d)}return e}function rS(s,t){for(var e=-1,r=Array(s);++e<s;)r[e]=t(e);return r}function Hs(s){return s!=null&&typeof s=="object"}var iS="[object Arguments]";function lp(s){return Hs(s)&&un(s)==iS}var Am=Object.prototype,nS=Am.hasOwnProperty,aS=Am.propertyIsEnumerable,oS=lp(function(){return arguments}())?lp:function(s){return Hs(s)&&nS.call(s,"callee")&&!aS.call(s,"callee")};const Io=oS;var cS=Array.isArray;const Ht=cS;function dS(){return!1}var Mm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,up=Mm&&typeof module=="object"&&module&&!module.nodeType&&module,lS=up&&up.exports===Mm,hp=lS?ks.Buffer:void 0,uS=hp?hp.isBuffer:void 0,hS=uS||dS;const Na=hS;var pS=9007199254740991,gS=/^(?:0|[1-9]\d*)$/;function fh(s,t){var e=typeof s;return t=t==null?pS:t,!!t&&(e=="number"||e!="symbol"&&gS.test(s))&&s>-1&&s%1==0&&s<t}var mS=9007199254740991;function Th(s){return typeof s=="number"&&s>-1&&s%1==0&&s<=mS}var fS="[object Arguments]",TS="[object Array]",vS="[object Boolean]",yS="[object Date]",SS="[object Error]",ES="[object Function]",PS="[object Map]",_S="[object Number]",CS="[object Object]",wS="[object RegExp]",RS="[object Set]",bS="[object String]",kS="[object WeakMap]",IS="[object ArrayBuffer]",AS="[object DataView]",MS="[object Float32Array]",DS="[object Float64Array]",OS="[object Int8Array]",NS="[object Int16Array]",LS="[object Int32Array]",VS="[object Uint8Array]",xS="[object Uint8ClampedArray]",US="[object Uint16Array]",$S="[object Uint32Array]",ye={};ye[MS]=ye[DS]=ye[OS]=ye[NS]=ye[LS]=ye[VS]=ye[xS]=ye[US]=ye[$S]=!0;ye[fS]=ye[TS]=ye[IS]=ye[vS]=ye[AS]=ye[yS]=ye[SS]=ye[ES]=ye[PS]=ye[_S]=ye[CS]=ye[wS]=ye[RS]=ye[bS]=ye[kS]=!1;function FS(s){return Hs(s)&&Th(s.length)&&!!ye[un(s)]}function vh(s){return function(t){return s(t)}}var Dm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,So=Dm&&typeof module=="object"&&module&&!module.nodeType&&module,BS=So&&So.exports===Dm,su=BS&&bm.process,HS=function(){try{var s=So&&So.require&&So.require("util").types;return s||su&&su.binding&&su.binding("util")}catch(t){}}();const La=HS;var pp=La&&La.isTypedArray,qS=pp?vh(pp):FS;const Nl=qS;var jS=Object.prototype,GS=jS.hasOwnProperty;function Om(s,t){var e=Ht(s),r=!e&&Io(s),i=!e&&!r&&Na(s),a=!e&&!r&&!i&&Nl(s),o=e||r||i||a,c=o?rS(s.length,String):[],d=c.length;for(var l in s)(t||GS.call(s,l))&&!(o&&(l=="length"||i&&(l=="offset"||l=="parent")||a&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||fh(l,d)))&&c.push(l);return c}var WS=Object.prototype;function Ll(s){var t=s&&s.constructor,e=typeof t=="function"&&t.prototype||WS;return s===e}function Nm(s,t){return function(e){return s(t(e))}}var JS=Nm(Object.keys,Object);const KS=JS;var zS=Object.prototype,YS=zS.hasOwnProperty;function Lm(s){if(!Ll(s))return KS(s);var t=[];for(var e in Object(s))YS.call(s,e)&&e!="constructor"&&t.push(e);return t}function Uc(s){return s!=null&&Th(s.length)&&!gh(s)}function Vl(s){return Uc(s)?Om(s):Lm(s)}function QS(s,t){return s&&xc(t,Vl(t),s)}function XS(s){var t=[];if(s!=null)for(var e in Object(s))t.push(e);return t}var ZS=Object.prototype,eE=ZS.hasOwnProperty;function tE(s){if(!as(s))return XS(s);var t=Ll(s),e=[];for(var r in s)r=="constructor"&&(t||!eE.call(s,r))||e.push(r);return e}function $c(s){return Uc(s)?Om(s,!0):tE(s)}function sE(s,t){return s&&xc(t,$c(t),s)}var Vm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,gp=Vm&&typeof module=="object"&&module&&!module.nodeType&&module,rE=gp&&gp.exports===Vm,mp=rE?ks.Buffer:void 0,fp=mp?mp.allocUnsafe:void 0;function xm(s,t){if(t)return s.slice();var e=s.length,r=fp?fp(e):new s.constructor(e);return s.copy(r),r}function Um(s,t){var e=-1,r=s.length;for(t||(t=Array(r));++e<r;)t[e]=s[e];return t}function iE(s,t){for(var e=-1,r=s==null?0:s.length,i=0,a=[];++e<r;){var o=s[e];t(o,e,s)&&(a[i++]=o)}return a}function $m(){return[]}var nE=Object.prototype,aE=nE.propertyIsEnumerable,Tp=Object.getOwnPropertySymbols,oE=Tp?function(s){return s==null?[]:(s=Object(s),iE(Tp(s),function(t){return aE.call(s,t)}))}:$m;const yh=oE;function cE(s,t){return xc(s,yh(s),t)}function Fm(s,t){for(var e=-1,r=t.length,i=s.length;++e<r;)s[i+e]=t[e];return s}var dE=Nm(Object.getPrototypeOf,Object);const Sh=dE;var lE=Object.getOwnPropertySymbols,uE=lE?function(s){for(var t=[];s;)Fm(t,yh(s)),s=Sh(s);return t}:$m;const Bm=uE;function hE(s,t){return xc(s,Bm(s),t)}function Hm(s,t,e){var r=t(s);return Ht(s)?r:Fm(r,e(s))}function fu(s){return Hm(s,Vl,yh)}function pE(s){return Hm(s,$c,Bm)}var gE=pn(ks,"DataView");const Tu=gE;var mE=pn(ks,"Promise");const vu=mE;var fE=pn(ks,"Set");const Mn=fE;var TE=pn(ks,"WeakMap");const yu=TE;var vp="[object Map]",vE="[object Object]",yp="[object Promise]",Sp="[object Set]",Ep="[object WeakMap]",Pp="[object DataView]",yE=hn(Tu),SE=hn(bo),EE=hn(vu),PE=hn(Mn),_E=hn(yu),ni=un;(Tu&&ni(new Tu(new ArrayBuffer(1)))!=Pp||bo&&ni(new bo)!=vp||vu&&ni(vu.resolve())!=yp||Mn&&ni(new Mn)!=Sp||yu&&ni(new yu)!=Ep)&&(ni=function(s){var t=un(s),e=t==vE?s.constructor:void 0,r=e?hn(e):"";if(r)switch(r){case yE:return Pp;case SE:return vp;case EE:return yp;case PE:return Sp;case _E:return Ep}return t});const Va=ni;var CE=Object.prototype,wE=CE.hasOwnProperty;function RE(s){var t=s.length,e=new s.constructor(t);return t&&typeof s[0]=="string"&&wE.call(s,"index")&&(e.index=s.index,e.input=s.input),e}var bE=ks.Uint8Array;const Cd=bE;function Eh(s){var t=new s.constructor(s.byteLength);return new Cd(t).set(new Cd(s)),t}function kE(s,t){var e=t?Eh(s.buffer):s.buffer;return new s.constructor(e,s.byteOffset,s.byteLength)}var IE=/\w*$/;function AE(s){var t=new s.constructor(s.source,IE.exec(s));return t.lastIndex=s.lastIndex,t}var _p=Bs?Bs.prototype:void 0,Cp=_p?_p.valueOf:void 0;function ME(s){return Cp?Object(Cp.call(s)):{}}function qm(s,t){var e=t?Eh(s.buffer):s.buffer;return new s.constructor(e,s.byteOffset,s.length)}var DE="[object Boolean]",OE="[object Date]",NE="[object Map]",LE="[object Number]",VE="[object RegExp]",xE="[object Set]",UE="[object String]",$E="[object Symbol]",FE="[object ArrayBuffer]",BE="[object DataView]",HE="[object Float32Array]",qE="[object Float64Array]",jE="[object Int8Array]",GE="[object Int16Array]",WE="[object Int32Array]",JE="[object Uint8Array]",KE="[object Uint8ClampedArray]",zE="[object Uint16Array]",YE="[object Uint32Array]";function QE(s,t,e){var r=s.constructor;switch(t){case FE:return Eh(s);case DE:case OE:return new r(+s);case BE:return kE(s,e);case HE:case qE:case jE:case GE:case WE:case JE:case KE:case zE:case YE:return qm(s,e);case NE:return new r;case LE:case UE:return new r(s);case VE:return AE(s);case xE:return new r;case $E:return ME(s)}}var wp=Object.create,XE=function(){function s(){}return function(t){if(!as(t))return{};if(wp)return wp(t);s.prototype=t;var e=new s;return s.prototype=void 0,e}}();const ZE=XE;function jm(s){return typeof s.constructor=="function"&&!Ll(s)?ZE(Sh(s)):{}}var eP="[object Map]";function tP(s){return Hs(s)&&Va(s)==eP}var Rp=La&&La.isMap,sP=Rp?vh(Rp):tP;const rP=sP;var iP="[object Set]";function nP(s){return Hs(s)&&Va(s)==iP}var bp=La&&La.isSet,aP=bp?vh(bp):nP;const oP=aP;var cP=1,dP=2,lP=4,Gm="[object Arguments]",uP="[object Array]",hP="[object Boolean]",pP="[object Date]",gP="[object Error]",Wm="[object Function]",mP="[object GeneratorFunction]",fP="[object Map]",TP="[object Number]",Jm="[object Object]",vP="[object RegExp]",yP="[object Set]",SP="[object String]",EP="[object Symbol]",PP="[object WeakMap]",_P="[object ArrayBuffer]",CP="[object DataView]",wP="[object Float32Array]",RP="[object Float64Array]",bP="[object Int8Array]",kP="[object Int16Array]",IP="[object Int32Array]",AP="[object Uint8Array]",MP="[object Uint8ClampedArray]",DP="[object Uint16Array]",OP="[object Uint32Array]",me={};me[Gm]=me[uP]=me[_P]=me[CP]=me[hP]=me[pP]=me[wP]=me[RP]=me[bP]=me[kP]=me[IP]=me[fP]=me[TP]=me[Jm]=me[vP]=me[yP]=me[SP]=me[EP]=me[AP]=me[MP]=me[DP]=me[OP]=!0;me[gP]=me[Wm]=me[PP]=!1;function ad(s,t,e,r,i,a){var o,c=t&cP,d=t&dP,l=t&lP;if(e&&(o=i?e(s,r,i,a):e(s)),o!==void 0)return o;if(!as(s))return s;var p=Ht(s);if(p){if(o=RE(s),!c)return Um(s,o)}else{var g=Va(s),T=g==Wm||g==mP;if(Na(s))return xm(s,c);if(g==Jm||g==Gm||T&&!i){if(o=d||T?{}:jm(s),!c)return d?hE(s,sE(o,s)):cE(s,QS(o,s))}else{if(!me[g])return i?s:{};o=QE(s,g,c)}}a||(a=new bs);var v=a.get(s);if(v)return v;a.set(s,o),oP(s)?s.forEach(function(C){o.add(ad(C,t,e,C,s,a))}):rP(s)&&s.forEach(function(C,w){o.set(w,ad(C,t,e,w,s,a))});var P=l?d?pE:fu:d?$c:Vl,_=p?void 0:P(s);return Zy(_||s,function(C,w){_&&(w=C,C=s[w]),Im(o,w,ad(C,t,e,w,s,a))}),o}var NP=1,LP=4;function Ph(s){return ad(s,NP|LP)}var VP="[object Symbol]";function xl(s){return typeof s=="symbol"||Hs(s)&&un(s)==VP}var xP=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,UP=/^\w*$/;function _h(s,t){if(Ht(s))return!1;var e=typeof s;return e=="number"||e=="symbol"||e=="boolean"||s==null||xl(s)?!0:UP.test(s)||!xP.test(s)||t!=null&&s in Object(t)}var $P="Expected a function";function Ch(s,t){if(typeof s!="function"||t!=null&&typeof t!="function")throw new TypeError($P);var e=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=e.cache;if(a.has(i))return a.get(i);var o=s.apply(this,r);return e.cache=a.set(i,o)||a,o};return e.cache=new(Ch.Cache||Pr),e}Ch.Cache=Pr;var FP=500;function BP(s){var t=Ch(s,function(r){return e.size===FP&&e.clear(),r}),e=t.cache;return t}var HP=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,qP=/\\(\\)?/g,jP=BP(function(s){var t=[];return s.charCodeAt(0)===46&&t.push(""),s.replace(HP,function(e,r,i,a){t.push(i?a.replace(qP,"$1"):r||e)}),t});const GP=jP;function WP(s,t){for(var e=-1,r=s==null?0:s.length,i=Array(r);++e<r;)i[e]=t(s[e],e,s);return i}var JP=1/0,kp=Bs?Bs.prototype:void 0,Ip=kp?kp.toString:void 0;function Km(s){if(typeof s=="string")return s;if(Ht(s))return WP(s,Km)+"";if(xl(s))return Ip?Ip.call(s):"";var t=s+"";return t=="0"&&1/s==-JP?"-0":t}function KP(s){return s==null?"":Km(s)}function zm(s,t){return Ht(s)?s:_h(s,t)?[s]:GP(KP(s))}var zP=1/0;function Ul(s){if(typeof s=="string"||xl(s))return s;var t=s+"";return t=="0"&&1/s==-zP?"-0":t}function Ym(s,t){t=zm(t,s);for(var e=0,r=t.length;s!=null&&e<r;)s=s[Ul(t[e++])];return e&&e==r?s:void 0}function YP(s,t,e){var r=s==null?void 0:Ym(s,t);return r===void 0?e:r}function QP(s,t,e){t=zm(t,s);for(var r=-1,i=t.length,a=!1;++r<i;){var o=Ul(t[r]);if(!(a=s!=null&&e(s,o)))break;s=s[o]}return a||++r!=i?a:(i=s==null?0:s.length,!!i&&Th(i)&&fh(o,i)&&(Ht(s)||Io(s)))}var XP=Object.defineProperty,ZP=(s,t)=>{for(var e in t)XP(s,e,{get:t[e],enumerable:!0})},e_={};ZP(e_,{permissions:()=>t_,theme:()=>s_});var At=(s=>(s.GroupCall="GROUP_CALL",s.Webinar="WEBINAR",s.AudioRoom="AUDIO_ROOM",s.Livestream="LIVESTREAM",s.Chat="CHAT",s))(At||{}),j=(s=>(s.Allowed="ALLOWED",s.NotAllowed="NOT_ALLOWED",s.CanRequest="CAN_REQUEST",s))(j||{}),t_={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},s_={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}},Qm="hXgU8Wc8pwuGNq9ms5q9Hh",bg;typeof process!="undefined"&&(bg=process==null?void 0:process.env)!=null&&bg.FLAGSMITH_ENVIRONMENT_KEY&&(Qm=process.env.FLAGSMITH_ENVIRONMENT_KEY);function r_(s=[]){const t={};return s.forEach(e=>{t[e.feature.name]={enabled:e.enabled,value:e.feature_state_value}}),t}var Xm=class{constructor(s=Qm){h(this,"flags",{});h(this,"environmentKey",null);this.environmentKey=s}identifyAndFetchFlagsWithRetry(c){return u(this,arguments,function*({primaryEndpoint:s,secondaryEndpoint:t,forceEvaluate:e,timeout:r,uniqueIdentifier:i,traitsObj:a,logger:o}){const d=JSON.parse(JSON.stringify(a)),l=Object.entries(d).map(g=>({trait_key:g[0],trait_value:g[1]})),p=[s,t,t];for(const g of p)try{const T=new AbortController,v=setTimeout(()=>T.abort(),r),P="_"+(Math.random()+1).toString(36).substring(2),_=yield fetch(`https://${g}/api/v1/identities/`,{method:"POST",headers:{"Content-Type":"application/json","X-Environment-Key":this.environmentKey},body:JSON.stringify({identifier:i+(e?P:""),traits:l}),signal:T.signal});if(clearTimeout(v),!_.ok)throw new Error(`Request failed with status ${_.status}`);const C=yield _.json();return r_(C.flags||[])}catch(T){o.error("Flagsmith identify failed!!",{error:T,url:g})}return{}})}identify(o){return u(this,arguments,function*(s,t={},e=!1,r=5e3,i="edge.api.flagsmith.com",a=console){return this.flags=yield this.identifyAndFetchFlagsWithRetry({traitsObj:t,uniqueIdentifier:s,forceEvaluate:e,timeout:r,primaryEndpoint:i,secondaryEndpoint:"edge.api.flagsmith.com",logger:a}),this.flags})}getValue(s){return this.flags&&this.flags[s]&&this.flags[s].value}hasFeature(s){return this.flags&&this.flags[s]&&this.flags[s].enabled}getAllFlags(){return this.flags}},i_=new Xm;function n_(s){return new Xm(s)}var Zm=[-2,-1,0,1,2],a_=[0,1,2,3,4];function o_(s){s=s.trim();let t="0",e="0",r="0";return s.length==4?(t="0x"+s[1]+s[1],e="0x"+s[2]+s[2],r="0x"+s[3]+s[3]):s.length>6&&(t="0x"+s[1]+s[2],e="0x"+s[3]+s[4],r="0x"+s[5]+s[6]),[+t,+e,+r]}var c_=(s,t,e)=>{let r,i,a;if(t==0)r=i=a=e;else{const o=(l,p,g)=>(g<0&&(g+=1),g>1&&(g-=1),g<.16666666666666666?l+(p-l)*6*g:g<.5?p:g<.6666666666666666?l+(p-l)*(.6666666666666666-g)*6:l),c=e<.5?e*(1+t):e+t-e*t,d=2*e-c;r=o(d,c,s+1/3),i=o(d,c,s),a=o(d,c,s-1/3)}return[Math.round(r*255),Math.round(i*255),Math.round(a*255)]},d_=(s,t,e)=>{s/=255,t/=255,e/=255;const r=Math.max(s,t,e),i=Math.min(s,t,e);let a,o;const c=(r+i)/2;if(r==i)a=o=0;else{const d=r-i;switch(o=c>.5?d/(2-r-i):d/(r+i),r){case s:a=(t-e)/d+(t<e?6:0);break;case t:a=(e-s)/d+2;break;case e:a=(s-t)/d+4;break}a/=6}return[a,o,c]},l_=(s,t,e)=>{const r=i=>i.toString(16).padStart(2,"0");return`#${r(s)}${r(t)}${r(e)}`},ef=(s,t=Zm,e=.4)=>{const r=[],[i,a,o]=o_(s),[c,d,l]=d_(i,a,o),p=Math.round(l*100);p>70?e=.8:p>60?e=.9:p<10?e=.075:p<42&&(e=.3);const g=t.findIndex(C=>C===0);if(g===-1)throw new Error("Invalid reducer provided, it must contain atleast one zero");const T=5-g,v=g+1,P=(100-p)/T,_=p/v;for(const C of t){let w;C<0?w=p+C*_*e:C>0?w=p+C*P*e:w=p;const[V,F,N]=c_(c,d,w/100);r.push(l_(V,F,N))}return r},Ap={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"}},u_=s=>{const[t,e,r,i,a]=ef(s,Zm);return{300:t,400:e,500:r,600:i,700:a}},h_=s=>{if(s==="#FFFFFF")return Ap.light.background;if(s==="#000000")return Ap.dark.background;const[t,e,r,i,a]=ef(s,a_);return{1e3:t,900:e,800:r,700:i,600:a}},p_={border_radius:"rounded",border_width:"thin",spacing_base:4,theme:"dark",colors:{brand:u_("#2160FD"),background:h_("#141414"),danger:"#FF2D2D",text:"#EEEEEE",text_on_brand:"#EEEEEE",success:"#62A504",video_bg:"#191919",warning:"#FFCD07"}};function tf(){return Ph(p_)}var g_={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:tf(),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 m_(){return Ph(g_)}var f_={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:tf(),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 wh(){return Ph(f_)}var Do;class sf{constructor(){m(this,Do,void 0)}get telemetry(){var t;return(t=n(this,Do))==null?void 0:t.getValue("telemetry")}init(t){f(this,Do,t)}info(t,e,r){var i;(i=this.telemetry)==null||i.addLogInCurrentSpan("info",t,e,r)}error(t,e,r){var i;(i=this.telemetry)==null||i.addLogInCurrentSpan("error",t,e,r)}debug(t,e,r){var i;(i=this.telemetry)==null||i.addLogInCurrentSpan("debug",t,e,r)}log(t,e,r){var i;(i=this.telemetry)==null||i.addLogInCurrentSpan("log",t,e,r)}warn(t,e,r){var i;(i=this.telemetry)==null||i.addLogInCurrentSpan("warn",t,e,r)}}Do=new WeakMap;var Js,Ks;const Kh=class extends lt.EventEmitter{constructor(e){super();m(this,Js,void 0);m(this,Ks,void 0);h(this,"asyncPromiseTimeout");h(this,"logger");this.logger=e,f(this,Js,new Map),f(this,Ks,new Map),this.asyncPromiseTimeout=8e3}emitAsync(e,...r){return u(this,null,function*(){n(this,Js).set(e,[]);const i=n(this,Ks).get(e).map(()=>new Promise(a=>{n(this,Js).get(e).push(a)}));ep(Kh.prototype,this,"emit").call(this,e,...r),yield Promise.race([Promise.all(i),new Promise((a,o)=>setTimeout(()=>o(new Error(`emitAsync failed to resolve for event ${e}.`)),this.asyncPromiseTimeout))]),n(this,Js).delete(e)})}onAsync(e,r){const i=n(this,Js),a=(...o)=>u(this,null,function*(){var d;try{yield r(...o)}catch(l){this.logger.error("[onAsync]",{error:l})}const c=(d=i.get(e))==null?void 0:d.shift();c==null||c()});return n(this,Ks).get(e)||n(this,Ks).set(e,[]),n(this,Ks).get(e).push(a),super.on(e,a)}reset(){f(this,Js,new Map),f(this,Ks,new Map),super.removeAllListeners()}};let Su=Kh;Js=new WeakMap,Ks=new WeakMap;var T_=/\s/;function v_(s){for(var t=s.length;t--&&T_.test(s.charAt(t)););return t}var y_=/^\s+/;function S_(s){return s&&s.slice(0,v_(s)+1).replace(y_,"")}var Mp=0/0,E_=/^[-+]0x[0-9a-f]+$/i,P_=/^0b[01]+$/i,__=/^0o[0-7]+$/i,C_=parseInt;function Dp(s){if(typeof s=="number")return s;if(xl(s))return Mp;if(as(s)){var t=typeof s.valueOf=="function"?s.valueOf():s;s=as(t)?t+"":t}if(typeof s!="string")return s===0?s:+s;s=S_(s);var e=P_.test(s);return e||__.test(s)?C_(s.slice(2),e?2:8):E_.test(s)?Mp:+s}function Rh(s){return s}function w_(s,t,e){switch(e.length){case 0:return s.call(t);case 1:return s.call(t,e[0]);case 2:return s.call(t,e[0],e[1]);case 3:return s.call(t,e[0],e[1],e[2])}return s.apply(t,e)}function R_(){}var b_=800,k_=16,I_=Date.now;function A_(s){var t=0,e=0;return function(){var r=I_(),i=k_-(r-e);if(e=r,i>0){if(++t>=b_)return arguments[0]}else t=0;return s.apply(void 0,arguments)}}function M_(s){return function(){return s}}var D_=_d?function(s,t){return _d(s,"toString",{configurable:!0,enumerable:!1,value:M_(t),writable:!0})}:Rh;const O_=D_;var N_=A_(O_);const L_=N_;function V_(s,t,e,r){for(var i=s.length,a=e+(r?1:-1);r?a--:++a<i;)if(t(s[a],a,s))return a;return-1}function x_(s){return s!==s}function U_(s,t,e){for(var r=e-1,i=s.length;++r<i;)if(s[r]===t)return r;return-1}function $_(s,t,e){return t===t?U_(s,t,e):V_(s,x_,e)}function F_(s,t){var e=s==null?0:s.length;return!!e&&$_(s,t,0)>-1}var Op=Math.max;function B_(s,t,e){return t=Op(t===void 0?s.length-1:t,0),function(){for(var r=arguments,i=-1,a=Op(r.length-t,0),o=Array(a);++i<a;)o[i]=r[t+i];i=-1;for(var c=Array(t+1);++i<t;)c[i]=r[i];return c[t]=e(o),w_(s,this,c)}}function H_(s,t){return L_(B_(s,t,Rh),s+"")}function q_(s,t,e){if(!as(e))return!1;var r=typeof t;return(r=="number"?Uc(e)&&fh(t,e.length):r=="string"&&t in e)?Vc(e[t],s):!1}function j_(s){return H_(function(t,e){var r=-1,i=e.length,a=i>1?e[i-1]:void 0,o=i>2?e[2]:void 0;for(a=s.length>3&&typeof a=="function"?(i--,a):void 0,o&&q_(e[0],e[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++r<i;){var c=e[r];c&&s(t,c,r,a)}return t})}var G_="[object Object]",W_=Function.prototype,J_=Object.prototype,rf=W_.toString,K_=J_.hasOwnProperty,z_=rf.call(Object);function Y_(s){if(!Hs(s)||un(s)!=G_)return!1;var t=Sh(s);if(t===null)return!0;var e=K_.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&rf.call(e)==z_}var Q_="__lodash_hash_undefined__";function X_(s){return this.__data__.set(s,Q_),this}function Z_(s){return this.__data__.has(s)}function Ao(s){var t=-1,e=s==null?0:s.length;for(this.__data__=new Pr;++t<e;)this.add(s[t])}Ao.prototype.add=Ao.prototype.push=X_;Ao.prototype.has=Z_;function eC(s,t){for(var e=-1,r=s==null?0:s.length;++e<r;)if(t(s[e],e,s))return!0;return!1}function nf(s,t){return s.has(t)}var tC=1,sC=2;function af(s,t,e,r,i,a){var o=e&tC,c=s.length,d=t.length;if(c!=d&&!(o&&d>c))return!1;var l=a.get(s),p=a.get(t);if(l&&p)return l==t&&p==s;var g=-1,T=!0,v=e&sC?new Ao:void 0;for(a.set(s,t),a.set(t,s);++g<c;){var P=s[g],_=t[g];if(r)var C=o?r(_,P,g,t,s,a):r(P,_,g,s,t,a);if(C!==void 0){if(C)continue;T=!1;break}if(v){if(!eC(t,function(w,V){if(!nf(v,V)&&(P===w||i(P,w,e,r,a)))return v.push(V)})){T=!1;break}}else if(!(P===_||i(P,_,e,r,a))){T=!1;break}}return a.delete(s),a.delete(t),T}function rC(s){var t=-1,e=Array(s.size);return s.forEach(function(r,i){e[++t]=[i,r]}),e}function bh(s){var t=-1,e=Array(s.size);return s.forEach(function(r){e[++t]=r}),e}var iC=1,nC=2,aC="[object Boolean]",oC="[object Date]",cC="[object Error]",dC="[object Map]",lC="[object Number]",uC="[object RegExp]",hC="[object Set]",pC="[object String]",gC="[object Symbol]",mC="[object ArrayBuffer]",fC="[object DataView]",Np=Bs?Bs.prototype:void 0,ru=Np?Np.valueOf:void 0;function TC(s,t,e,r,i,a,o){switch(e){case fC:if(s.byteLength!=t.byteLength||s.byteOffset!=t.byteOffset)return!1;s=s.buffer,t=t.buffer;case mC:return!(s.byteLength!=t.byteLength||!a(new Cd(s),new Cd(t)));case aC:case oC:case lC:return Vc(+s,+t);case cC:return s.name==t.name&&s.message==t.message;case uC:case pC:return s==t+"";case dC:var c=rC;case hC:var d=r&iC;if(c||(c=bh),s.size!=t.size&&!d)return!1;var l=o.get(s);if(l)return l==t;r|=nC,o.set(s,t);var p=af(c(s),c(t),r,i,a,o);return o.delete(s),p;case gC:if(ru)return ru.call(s)==ru.call(t)}return!1}var vC=1,yC=Object.prototype,SC=yC.hasOwnProperty;function EC(s,t,e,r,i,a){var o=e&vC,c=fu(s),d=c.length,l=fu(t),p=l.length;if(d!=p&&!o)return!1;for(var g=d;g--;){var T=c[g];if(!(o?T in t:SC.call(t,T)))return!1}var v=a.get(s),P=a.get(t);if(v&&P)return v==t&&P==s;var _=!0;a.set(s,t),a.set(t,s);for(var C=o;++g<d;){T=c[g];var w=s[T],V=t[T];if(r)var F=o?r(V,w,T,t,s,a):r(w,V,T,s,t,a);if(!(F===void 0?w===V||i(w,V,e,r,a):F)){_=!1;break}C||(C=T=="constructor")}if(_&&!C){var N=s.constructor,B=t.constructor;N!=B&&"constructor"in s&&"constructor"in t&&!(typeof N=="function"&&N instanceof N&&typeof B=="function"&&B instanceof B)&&(_=!1)}return a.delete(s),a.delete(t),_}var PC=1,Lp="[object Arguments]",Vp="[object Array]",Kc="[object Object]",_C=Object.prototype,xp=_C.hasOwnProperty;function CC(s,t,e,r,i,a){var o=Ht(s),c=Ht(t),d=o?Vp:Va(s),l=c?Vp:Va(t);d=d==Lp?Kc:d,l=l==Lp?Kc:l;var p=d==Kc,g=l==Kc,T=d==l;if(T&&Na(s)){if(!Na(t))return!1;o=!0,p=!1}if(T&&!p)return a||(a=new bs),o||Nl(s)?af(s,t,e,r,i,a):TC(s,t,d,e,r,i,a);if(!(e&PC)){var v=p&&xp.call(s,"__wrapped__"),P=g&&xp.call(t,"__wrapped__");if(v||P){var _=v?s.value():s,C=P?t.value():t;return a||(a=new bs),i(_,C,e,r,a)}}return T?(a||(a=new bs),EC(s,t,e,r,i,a)):!1}function $l(s,t,e,r,i){return s===t?!0:s==null||t==null||!Hs(s)&&!Hs(t)?s!==s&&t!==t:CC(s,t,e,r,$l,i)}var wC=1,RC=2;function bC(s,t,e,r){var i=e.length,a=i,o=!r;if(s==null)return!a;for(s=Object(s);i--;){var c=e[i];if(o&&c[2]?c[1]!==s[c[0]]:!(c[0]in s))return!1}for(;++i<a;){c=e[i];var d=c[0],l=s[d],p=c[1];if(o&&c[2]){if(l===void 0&&!(d in s))return!1}else{var g=new bs;if(r)var T=r(l,p,d,s,t,g);if(!(T===void 0?$l(p,l,wC|RC,r,g):T))return!1}}return!0}function of(s){return s===s&&!as(s)}function kC(s){for(var t=Vl(s),e=t.length;e--;){var r=t[e],i=s[r];t[e]=[r,i,of(i)]}return t}function cf(s,t){return function(e){return e==null?!1:e[s]===t&&(t!==void 0||s in Object(e))}}function IC(s){var t=kC(s);return t.length==1&&t[0][2]?cf(t[0][0],t[0][1]):function(e){return e===s||bC(e,s,t)}}function AC(s,t){return s!=null&&t in Object(s)}function MC(s,t){return s!=null&&QP(s,t,AC)}var DC=1,OC=2;function NC(s,t){return _h(s)&&of(t)?cf(Ul(s),t):function(e){var r=YP(e,s);return r===void 0&&r===t?MC(e,s):$l(t,r,DC|OC)}}function LC(s){return function(t){return t==null?void 0:t[s]}}function VC(s){return function(t){return Ym(t,s)}}function xC(s){return _h(s)?LC(Ul(s)):VC(s)}function UC(s){return typeof s=="function"?s:s==null?Rh:typeof s=="object"?Ht(s)?NC(s[0],s[1]):IC(s):xC(s)}function $C(s){return function(t,e,r){for(var i=-1,a=Object(t),o=r(t),c=o.length;c--;){var d=o[s?c:++i];if(e(a[d],d,a)===!1)break}return t}}var FC=$C();const BC=FC;var HC=function(){return ks.Date.now()};const iu=HC;var qC="Expected a function",jC=Math.max,GC=Math.min;function kh(s,t,e){var r,i,a,o,c,d,l=0,p=!1,g=!1,T=!0;if(typeof s!="function")throw new TypeError(qC);t=Dp(t)||0,as(e)&&(p=!!e.leading,g="maxWait"in e,a=g?jC(Dp(e.maxWait)||0,t):a,T="trailing"in e?!!e.trailing:T);function v(G){var re=r,tt=i;return r=i=void 0,l=G,o=s.apply(tt,re),o}function P(G){return l=G,c=setTimeout(w,t),p?v(G):o}function _(G){var re=G-d,tt=G-l,ds=t-re;return g?GC(ds,a-tt):ds}function C(G){var re=G-d,tt=G-l;return d===void 0||re>=t||re<0||g&&tt>=a}function w(){var G=iu();if(C(G))return V(G);c=setTimeout(w,_(G))}function V(G){return c=void 0,T&&r?v(G):(r=i=void 0,o)}function F(){c!==void 0&&clearTimeout(c),l=0,r=d=i=c=void 0}function N(){return c===void 0?o:V(iu())}function B(){var G=iu(),re=C(G);if(r=arguments,i=this,d=G,re){if(c===void 0)return P(d);if(g)return clearTimeout(c),c=setTimeout(w,t),v(d)}return c===void 0&&(c=setTimeout(w,t)),o}return B.cancel=F,B.flush=N,B}function Eu(s,t,e){(e!==void 0&&!Vc(s[t],e)||e===void 0&&!(t in s))&&mh(s,t,e)}function WC(s){return Hs(s)&&Uc(s)}function Pu(s,t){if(!(t==="constructor"&&typeof s[t]=="function")&&t!="__proto__")return s[t]}function JC(s){return xc(s,$c(s))}function KC(s,t,e,r,i,a,o){var c=Pu(s,e),d=Pu(t,e),l=o.get(d);if(l){Eu(s,e,l);return}var p=a?a(c,d,e+"",s,t,o):void 0,g=p===void 0;if(g){var T=Ht(d),v=!T&&Na(d),P=!T&&!v&&Nl(d);p=d,T||v||P?Ht(c)?p=c:WC(c)?p=Um(c):v?(g=!1,p=xm(d,!0)):P?(g=!1,p=qm(d,!0)):p=[]:Y_(d)||Io(d)?(p=c,Io(c)?p=JC(c):(!as(c)||gh(c))&&(p=jm(d))):g=!1}g&&(o.set(d,p),i(p,d,r,a,o),o.delete(d)),Eu(s,e,p)}function df(s,t,e,r,i){s!==t&&BC(t,function(a,o){if(i||(i=new bs),as(a))KC(s,t,o,e,df,r,i);else{var c=r?r(Pu(s,o),a,o+"",s,t,i):void 0;c===void 0&&(c=a),Eu(s,o,c)}},$c)}function zC(s,t,e){for(var r=-1,i=s==null?0:s.length;++r<i;)if(e(t,s[r]))return!0;return!1}var YC="[object Map]",QC="[object Set]",XC=Object.prototype,ZC=XC.hasOwnProperty;function ew(s){if(s==null)return!0;if(Uc(s)&&(Ht(s)||typeof s=="string"||typeof s.splice=="function"||Na(s)||Nl(s)||Io(s)))return!s.length;var t=Va(s);if(t==YC||t==QC)return!s.size;if(Ll(s))return!Lm(s).length;for(var e in s)if(ZC.call(s,e))return!1;return!0}function tw(s,t){return $l(s,t)}var sw=j_(function(s,t,e){df(s,t,e)});const br=sw;var rw=1/0,iw=Mn&&1/bh(new Mn([,-0]))[1]==rw?function(s){return new Mn(s)}:R_;const nw=iw;var aw=200;function lf(s,t,e){var r=-1,i=F_,a=s.length,o=!0,c=[],d=c;if(e)o=!1,i=zC;else if(a>=aw){var l=t?null:nw(s);if(l)return bh(l);o=!1,i=nf,d=new Ao}else d=t?[]:c;e:for(;++r<a;){var p=s[r],g=t?t(p):p;if(p=e||p!==0?p:0,o&&g===g){for(var T=d.length;T--;)if(d[T]===g)continue e;t&&d.push(g),c.push(p)}else i(d,g,e)||(d!==c&&d.push(g),c.push(p))}return c}function ow(s){return s&&s.length?lf(s):[]}function cw(s,t){return s&&s.length?lf(s,UC(t)):[]}var _u=(s=>(s.PARTICIPANT="PARTICIPANT",s.PEER="PEER",s.CLIENT="CLIENT",s))(_u||{});const ee={PROPAGATE_KICK_ALL:"propagate_kick_across_rooms",REFRESH_ID_ON_DISCONNECTION:"refresh_id_on_disconnection",SKIP_OTEL_TRACES:"skip_otel_traces",ENABLE_CF_SIMULCAST:"enable_cf_simulcast",CF_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED:"cf_transport_force_relay_on_ice_failed",LOG_LEVEL:"log_level",V1_PLUGINS:"v1_plugins",LIVESTREAM:"feat_livestream",VAL_MIN_FRAMERATE:"val_min_framerate",SCREEENSHARE_ERR_HACK:"screenshare_err_hack",SCREEENSHARE_CONSTRAINTS_RETRY:"screenshare_constraints_retry",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",EXP_RESHARE:"exp_reshare",SKIP_SETTING_IN_USE_DEVICE:"skip_setting_in_use_device",PRECALL_BANDWIDTH_TEST:"precall_bandwidth_test",DEBUG_SOCKET_JOIN:"debug_socket_join",FORCE_RELAY:"force_relay",FORCE_VIDEO_CODEC:"force_video_codec",TRACK_HINT:"track_hint",OVERRIDE_SIMULCAST_DYNAMIC:"override_simulcast_dynamic",PRECREATE_PRODUCERS:"precreate_producers",DISABLE_OPUS_DTX_CF:"disable_opus_dtx_cf",ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS:"enable_audio_activity_debug_logs",DISABLE_LAYER_SWITCH:"disable_layer_switch"};function od(s){const t={};return typeof(s==null?void 0:s.code)=="number"&&(t.code=s.code),typeof(s==null?void 0:s.code)=="string"&&(t.code=s.code.substring(0,100)),typeof(s==null?void 0:s.name)=="string"&&(t.name=s.name.substring(0,500)),typeof(s==null?void 0:s.message)=="string"&&(t.message=s.message.substring(0,500)),typeof(s==null?void 0:s.reason)=="string"&&(t.reason=s.reason.substring(0,500)),typeof(s==null?void 0:s.stack)=="string"&&(t.stack=s.stack.substring(0,500)),t}const dw={audio:!0,video:!0,screenshareAudio:!0,screenshareVideo:!0},ao={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"},lw={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 xa(s,t){const e=s.getValue("overrides");return e&&e[t]?e[t]:!1}function uw({baseURI:s}){return s.includes("preprod.dyte")||s.includes("preprod.realtime")?yo.PREPROD:s.includes("devel.dyte")||s.includes("devel.realtime")?yo.DEVEL:yo.PROD}function nn({servicePrefix:s,baseURI:t}){return`${s}.${t}`}function uf(s){const t=s.getValue("baseURI");return{location:nn({servicePrefix:"location",baseURI:t}),locationLegacy:nn({servicePrefix:"location-legacy",baseURI:t}),daCollector:nn({servicePrefix:"da-collector",baseURI:t.replace("realtime.cloudflare.com","dyte.io")})}}const hw='<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>',pw='<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>',zc=s=>{if(!s)return;if(!s.startsWith("<svg"))return new Promise(a=>{a(s)});const e=new Blob([s],{type:"image/svg+xml"}),r=new Image,i=window.URL.createObjectURL(e);return new Promise((a,o)=>{r.onload=()=>{a(r),window.URL.revokeObjectURL(i)},r.onerror=()=>{o(),window.URL.revokeObjectURL(i)},r.src=i})},gi={logs:"https://api-silos.dyte.io/otel/logs",mock:{url:"https://mock.dyte.io",domain:"mock.dyte.io",app:"https://app.dyte.io/v2/meeting",stagingApp:"https://app.devel.dyte.io/v2/meeting"},apiBase:{prod:"https://api.dyte.io",staging:"https://api.devel.dyte.io",prodAlternate:"https://api.cluster.dyte.in"},baseURI:{prod:"dyte.io",staging:"devel.dyte.io"}};function gw(s){var r,i,a;const t=typeof navigator!="undefined"&&!navigator.isReactNative&&typeof window!="undefined"&&((r=window.location.host)==null?void 0:r.includes(gi.baseURI.staging)),e=!!((a=(i=s==null?void 0:s.getValue("modules"))==null?void 0:i.devTools)!=null&&a.logs);return t||e}function mw(s,t){var e;if(s!=null&&s.getValue("flagsmith").hasFeature(ee.LOG_LEVEL)){let r=((e=s.getValue("flagsmith").getValue(ee.LOG_LEVEL))==null?void 0:e.toString())||"all";if(r=r.toLowerCase().trim(),r==="off")return!1;if(r!=="all"){const i=["debug","log","info","warn","error"],a=i.indexOf(t),o=i.indexOf(r);if(a<o)return!1}}return!0}function hf(s,t,e={}){return Object.getOwnPropertyNames(s).forEach(r=>{var a;if([null,void 0,NaN].includes(s[r])||t&&(((a=t.match(/\./g))==null?void 0:a.length)||0)>=10)return;const i=t?`${t}.${r}`:r;typeof s[r]=="object"?hf(s[r],i,e):["number","string","boolean"].includes(typeof s[r])&&(e[i]=s[r])}),e}function Up(s,t,e={},r=""){const i={};try{const a=JSON.stringify(e),o=JSON.parse(a),c=hf(o,r),d=JSON.stringify(c);return JSON.parse(d)}catch(a){const o=od(a);i[`${r}.error.message`]=o.message||"",i[`${r}.error.stack`]=o.stack||"",i[`${r}.error.reason`]=o.reason||"",i[`${r}.error.source`]="safelyFlattenObjForOpenTelemetry"}return i}const zh=class{constructor(){h(this,"logsCache",[]);h(this,"logsProcessorTimer");h(this,"tracingEnabled",!0);h(this,"initialized",!1);h(this,"logsProcessingInterval",7e3);h(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"]);h(this,"meetingMetadata",{})}get logsEndpoint(){const t=mr.getContext(this.meetingMetadata.peerId);return`https://${nn({servicePrefix:"api-silos",baseURI:t.getValue("baseURI")})}/otel/logs`}resetPeerId(t){this.meetingMetadata.peerId=t}init(t,e,r){this.tracingEnabled=!0,this.initialized=!1,this.logsCache=[];const i=t.getValue("peerId");this.meetingMetadata=e,this.tracingEnabled=r,this.meetingMetadata.peerId=i,this.meetingMetadata.sdkVersion=t.getValue("sdkVersion");const{RNDeviceInfoImpl:a}=navigator;this.meetingMetadata.deviceInfo=navigator.isReactNative?a==null?void 0:a.getDeviceInfo():Se.getDeviceInfo(),this.meetingMetadata.visitedUrl=!navigator.isReactNative&&typeof window!="undefined"&&window.location.href,this.logsProcessorTimer=setInterval(this.processCachedLogs.bind(this),this.logsProcessingInterval),r&&(this.initialized=!0)}static trace(t,e=void 0){return(r,i,a)=>{const o=a.value;return a.value=function(...d){var T;const l=this==null?void 0:this.telemetry;if(!l||!l.initialized||navigator.isReactNative||!l.tracingEnabled||(T=mr.getContext(l.meetingMetadata.peerId))!=null&&T.getValue("flagsmith").hasFeature(ee.SKIP_OTEL_TRACES))return o.apply(this,d);l.addLogInCurrentSpan("info",t,e);const p=performance.now(),g=o.apply(this,d);return Promise.resolve(g).then(()=>{const v=performance.now();v-p>10&&l.addLogInCurrentSpan("info",`${t}_timing`,{execTime:v-p,country:zh.location.country})}).catch(()=>{const v=performance.now();l.addLogInCurrentSpan("info",`${t}_timing`,{execTime:v-p})}),g},a}}injectContext(t){var i;const e=Tr.v4().replace(/-/g,"").substring(0,16),r=(i=this.meetingMetadata.peerId)==null?void 0:i.replace(/-/g,"");t.TRACEPARENT=`00-${r}-${e}-01`}addLogInCurrentSpan(t,e,r={},i=!1){r!=null&&r.error&&Object.assign(r,{error:od(r.error)});const a=mr.getContext(this.meetingMetadata.peerId);if(gw(a)&&(ew(r)?console[t]("InternalLogs:: ",t,e):console[t]("InternalLogs:: ",t,e,r)),!!mw(a,t))try{const c=Up(a,e,r,"metadata"),d=new Date,l=H(D({message:e,level:t},c),{loggedAt:d.toISOString(),loggedAtTzOffset:d.getTimezoneOffset()});i?this.sendOtelLogsToNewRelic([l]):this.logsCache.push(l)}catch(c){this.addLogInCurrentSpan("error","opentelemetry::addLogInCurrentSpan_failed",{error:od(c)})}}sendOtelLogsToNewRelic(t){const e=mr.getContext(this.meetingMetadata.peerId);fetch(this.logsEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({meetingMetadata:Up(e,"sendOtelLogsToNewRelic",this.meetingMetadata,"meetingMetadata"),serviceName:e.getValue("sdkName"),logs:t})}).catch(r=>{this.addLogInCurrentSpan("error","opentelemetry::sendOtelLogToNewRelic_failed",{error:od(r)}),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 E=zh;h(E,"location",{country:void 0});function fw(s){const t=D({},s),e=new Map,r=(l,p)=>(e.has(l)||e.set(l,new Set),e.get(l).add(p),()=>{var g;return(g=e.get(l))==null?void 0:g.delete(p)}),i=(l,p)=>{var g;(g=e.get(l))==null||g.delete(p)},a=l=>{var p;(p=e.get(l))==null||p.forEach(g=>{try{g(t[l])}catch(T){}})};return{subscribe:r,unsubscribe:i,notify:a,setValue:(l,p,g=!0)=>{t[l]=p,g&&a(l)},getValue:l=>t[l],getAllValues:()=>t}}class Tw{constructor(){h(this,"contexts",new Map);h(this,"mostRecentPeerId",null)}createContext(t,e){if(this.contexts.has(t))return this.contexts.get(t);const r=new E,i=new sf;this.contexts.set(t,fw(e)),this.contexts.get(t).setValue("peerSessionStore",new Su(i));const a=new Rm;return a.setMaxListeners(50),this.contexts.get(t).setValue("logger",i),this.contexts.get(t).setValue("telemetry",r),this.contexts.get(t).setValue("callstats",a),this.contexts.get(t).setValue("flagsmith",n_()),this.mostRecentPeerId=t,this.contexts.get(t)}remapContext(t,e){const r=e.getValue("peerId");r!==t&&(e.setValue("peerId",t),this.mostRecentPeerId=t,this.contexts.set(t,e),this.contexts.delete(r))}getContext(t){return this.contexts.get(t)}getMostRecentPeerId(){return this.mostRecentPeerId}}const mr=new Tw,vw={"00":"Client","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"},cd={"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(cd).forEach(s=>{cd[s]=`{${vw[s.slice(0,2)]}} ${cd[s]}`});class b extends Error{constructor(e,r,i=void 0,a=!1){super(e);h(this,"code");this.code=r,this.name="ClientError",this.message=`[ERR${this.code}]: ${cd[this.code]}
5
5
  ${this.message}`;try{let o=a&&!!i;r&&r.endsWith("00")&&i&&(o=!0),o&&i.error("ClientError",{error:{message:this.message,name:this.name,code:r}});const c=mr.getContext(mr.getMostRecentPeerId());if(c){const d=c.getValue("onError");try{d(this)}catch(l){}}typeof window!="undefined"&&window.dispatchEvent(new CustomEvent("ClientError",{detail:this}))}catch(o){}}}function Yc(s,t,e,r){if(r instanceof b)throw r;if(r instanceof t){const i=new b(r.message,e);throw i.stack=r.stack,i}else throw r}function $p(s,t,e){if(!s.value){const i=s.get,a=s.set;return i&&(s.get=function(){try{return i.apply(this)}catch(o){Yc(this,t,e,o)}}),a&&(s.set=function(o){try{return a.apply(this,[o])}catch(c){Yc(this,t,e,c)}}),s}const r=s.value;return s.value=function(...i){try{const a=r.apply(this,i);return a&&a instanceof Promise?a.catch(o=>{Yc(this,t,e,o)}):a}catch(a){Yc(this,t,e,a)}},s}function yw(s,t){return(e,r,i)=>{if(i)return $p(i,s,t);for(const a of Reflect.ownKeys(e.prototype).filter(o=>o!=="constructor")){const o=Object.getOwnPropertyDescriptor(e.prototype,a);(o.value instanceof Function||o.get instanceof Function||o.set instanceof Function)&&Object.defineProperty(e.prototype,a,$p(o,s,t))}}}const ut=s=>yw(Error,s);function Sw(s){let t=0,e,r;if(!s)return t;for(e=0;e<s.length;e+=1)r=s.charCodeAt(e),t=(t<<5)-t+r,t|=0;return Math.abs(t)%100+1}function Ew(){Se.isElectron()&&window.electronGetDisplayMediaSource&&(navigator.mediaDevices.getDisplayMedia=()=>u(this,null,function*(){const s=yield window.electronGetDisplayMediaSource({types:["window","screen"]});let t=[];if(s&&(Array.isArray(s)?t=s:t=[s]),!(t!=null&&t.length))throw new Error("Couldn't find any media source for screen share.");let e=t.find(a=>{var o;return(o=a.id)==null?void 0:o.includes("screen")});e=e!=null?e:t[0];const r={audio:!1,video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:e.id}}};return yield navigator.mediaDevices.getUserMedia(r)}))}var k=(s=>(s.NEW_PRODUCER="NEW_PRODUCER",s.ROOM_NODE_CONNECTION_ERROR="ROOM_NODE_CONNECTION_ERROR",s.SOCKET_SERVICE_ROOM_JOINED="SOCKET_SERVICE_ROOM_JOINED",s.SOCKET_SERVICE_RECONNECTED="SOCKET_SERVICE_RECONNECTED",s.SOCKET_SERVICE_DISCONNECTED="SOCKET_SERVICE_DISCONNECTED",s.SOCKET_SERVICE_FAILED="SOCKET_SERVICE_FAILED",s.SOCKET_STATE_UPDATE="SOCKET_STATE_UPDATE",s.ROOM_NODE_RECONNECTED="ROOM_NODE_RECONNECTED",s.ROOM_NODE_DISCONNECTED="ROOM_NODE_DISCONNECTED",s.ROOM_NODE_FAILED="ROOM_NODE_FAILED",s.TRANSPORT_STATE_UPDATE="TRANSPORT_STATE_UPDATE",s.PRODUCER_SCORE_UPDATE="PRODUCER_SCORE_UPDATE",s.CONSUMER_SCORE_UPDATE="CONSUMER_SCORE_UPDATE",s.PRODUCER_STATUS_UPDATE="PRODUCER_STATUS_UPDATE",s.CONSUMER_STATUS_UPDATE="CONSUMER_STATUS_UPDATE",s.LOW_CONSUMER_SCORE="LOW_CONSUMER_SCORE",s.MEDIA_PERMISSION_ERROR="MEDIA_PERMISSION_ERROR",s.MEDIA_PERMISSION_UPDATE="MEDIA_PERMISSION_UPDATE",s.MESSAGE="websocket/message",s.ROOM_MESSAGE="websocket/room-message",s.PEER_JOINED_INTERNAL="peer/joined-internal",s.PEER_CLOSED="websocket/peer-closed",s.CONSUMER_CLOSED="websocket/consumer-closed",s.CONSUMER_PAUSED="websocket/consumer-paused",s.CONSUMER_RESUMED="websocket/consumer-resumed",s.PRODUCER_CLOSED="websocket/producer-closed",s.NEW_CONSUMER="websocket/new-consumer",s.PRODUCER_SCORE="websocket/producer-score",s.CONSUMER_SCORE="websocket/consumer-score",s.PRODUCER_TOGGLE="cf/producer-toggle",s.UPDATE_ACTIVE="media/update-active",s.RESET_PRODUCER_STATE="cf/reset-producer-state",s.ROOM_STATE="sockethub/room-state",s.GET_STAGE_REQUESTS="GET_STAGE_REQUESTS",s.UPDATE_STAGE_REQUESTS="UPDATE_STAGE_REQUESTS",s.KICK_PEER="KICK_PEER",s.UPDATE_PEER_STAGE_STATUS="UPDATE_PEER_STAGE_STATUS",s.JOIN_MEDIA_ROOM="JOIN_MEDIA_ROOM",s.LEAVE_MEDIA_ROOM="LEAVE_MEDIA_ROOM",s.PIP_HANGUP="PIP_HANGUP",s.E2EE_ACTIVE_PRODUCER="E2EE_ACTIVE_PRODUCER",s.E2EE_INACTIVE_PRODUCER="E2EE_INACTIVE_PRODUCER",s.E2EE_ACTIVE_CONSUMER="E2EE_ACTIVE_CONSUMER",s.E2EE_INACTIVE_CONSUMER="E2EE_INACTIVE_CONSUMER",s.SOCKET_PEERS="SOCKET_PEERS",s.UPDATE_PERMISSIONS="UPDATE_PERMISSIONS",s.MAX_SPATIAL_LAYER_CHANGE="MAX_SPATIAL_LAYER_CHANGE",s.MUTE_SELF="MUTE_SELF",s.MUTE_SELF_VIDEO="MUTE_SELF_VIDEO",s))(k||{});class $a extends lt.EventEmitter{constructor(e){super();h(this,"logger");this.logger=e,super.setMaxListeners(25)}emit(e,...r){return super.emit("*",e,...r),super.emit(e,...r)}on(e,r){var i;try{const a=this.listenerCount(e);a>25&&a%25===0&&((i=this.logger)==null||i.warn("CustomEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}}))}catch(a){}return super.on(e,r)}addListener(e,r){var i;try{const a=this.listenerCount(e);a>25&&a%25===0&&((i=this.logger)==null||i.warn("CustomEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}}))}catch(a){}return super.addListener(e,r)}off(e,r){return super.off(e,r)}once(e,r){return super.once(e,r)}prependListener(e,r){return super.prependListener(e,r)}prependOnceListener(e,r){return super.prependOnceListener(e,r)}removeListener(e,r){return super.removeListener(e,r)}removeAllListeners(e){return super.removeAllListeners(e)}listeners(e){return super.listeners(e)}listenerCount(e){return super.listenerCount(e)}}class jt extends lt.EventEmitter{constructor(e){super();h(this,"logger");this.logger=e,super.setMaxListeners(25)}emit(e,...r){return super.emit("*",e,...r),super.emit(e,...r)}on(e,r){var i;try{const a=this.listenerCount(e);a>25&&a%25===0&&((i=this.logger)==null||i.warn("CustomEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}}))}catch(a){}return super.on(e,r)}addListener(e,r){var i;try{const a=this.listenerCount(e);a>25&&a%25===0&&((i=this.logger)==null||i.warn("CustomEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}}))}catch(a){}return super.addListener(e,r)}off(e,r){return super.off(e,r)}once(e,r){return super.once(e,r)}prependListener(e,r){return super.prependListener(e,r)}prependOnceListener(e,r){return super.prependOnceListener(e,r)}removeListener(e,r){return super.removeListener(e,r)}removeAllListeners(e){return super.removeAllListeners(e)}listeners(e){return super.listeners(e)}listenerCount(e){return super.listenerCount(e)}}function Pw(s,t=2){return s.replace(/[^\u00BF-\u1FFF\u2C00-\uD7FF\w\s]/g,"").trim().split(/\s+/).slice(0,t).map(i=>i.charAt(0)).join("").toUpperCase()}const Fp=1080,Bp=1920,_w=(s,t,e,r,i,a)=>{let o=.5,c=.5;const d=i,l=a,p=Math.min(e/d,r/l);let g=d*p,T=l*p,v,P,_,C,w=1;return g<e&&(w=e/g),Math.abs(w-1)<1e-14&&T<r&&(w=r/T),g*=w,T*=w,_=d/(g/e),C=l/(T/r),v=(d-_)*o,P=(l-C)*c,v<0&&(v=0),P<0&&(P=0),_>d&&(_=d),C>l&&(C=l),[v,P,_,C,s,t,e,r]};var zt,mi,st,Yt,be,ps,zs,gt,De,Ln,Vn,Ys,xn;const Yh=class extends jt{constructor(e,r,i,a){const o=e.getValue("logger");super(o);m(this,zt,void 0);m(this,mi,void 0);m(this,st,void 0);m(this,Yt,void 0);m(this,be,{height:Fp,width:Bp});m(this,ps,{brand:"#2160FD",background:"#141414",text:"#000000",videoBackground:"#191919",textOnBrand:"#EEEEEE"});m(this,zs,void 0);m(this,gt,{});m(this,De,void 0);m(this,Ln,void 0);m(this,Vn,void 0);m(this,Ys,void 0);m(this,xn,!1);h(this,"cleanupEventListeners",()=>{n(this,mi).unsubscribe("stageStatus",this.handlePipMediaControls),n(this,De).removeListener("videoUpdate",this.onSelfVideoUpdateListener),n(this,De).removeListener("audioUpdate",this.onSelfAudioUpdateListener),n(this,De).removeListener("roomLeft",()=>this.disable())});h(this,"enablePipMediaControls",()=>{this.mountAudioEvents(),this.mountVideoEvents()});h(this,"onSelfVideoUpdateListener",({videoEnabled:e})=>{this.updateMediaSession("CAMERA",e)});h(this,"onSelfAudioUpdateListener",({audioEnabled:e})=>{this.updateMediaSession("MIC",e)});h(this,"handlePipMediaControls",e=>{e==="ON_STAGE"?this.enablePipMediaControls():this.unmountEvents()});h(this,"eventCallback",e=>{e==="CAMERA"&&(n(this,De).videoEnabled?n(this,De).disableVideo():n(this,De).enableVideo(),this.emit("cameraToggled")),e==="MIC"&&(n(this,De).audioEnabled?n(this,De).disableAudio():n(this,De).enableAudio(),this.emit("micToggled")),e==="END"&&(n(this,mi).getValue("peerSessionStore").emit(k.PIP_HANGUP),this.cleanupEventListeners(),this.emit("hangup"),this.cleanup())});h(this,"unmountEvents",()=>{navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||(navigator.mediaSession.setActionHandler("togglemicrophone",void 0),navigator.mediaSession.setActionHandler("togglecamera",void 0))});h(this,"animate",()=>{if(!this.isActive&&n(this,Ys)==="active"){this.disable(!0);return}n(this,gt)!==void 0&&this.paintCanvas(),n(this,zs)!==void 0&&f(this,zs,requestAnimationFrame(()=>this.animate()))});h(this,"disable",(e=!1)=>{f(this,Ys,"idle"),this.cleanupEventListeners(),cancelAnimationFrame(n(this,zs)),e!==!0&&document.body.removeChild(n(this,st)),f(this,zs,void 0),document.pictureInPictureElement&&document.exitPictureInPicture()});f(this,mi,e),f(this,Ys,"idle"),f(this,De,r),f(this,ps,{brand:r.config.designTokens.colors.brand[500],background:r.config.designTokens.colors.background[1e3],text:r.config.designTokens.colors.text,videoBackground:r.config.designTokens.colors.videoBg,textOnBrand:r.config.designTokens.colors.textOnBrand}),i&&this.setupIcon("pin",i),a&&this.setupIcon("handRaise",a)}static _init(e,r){return u(this,null,function*(){let i,a;try{i=yield zc(hw),a=yield zc(pw)}catch(o){}return new Yh(e,r,i,a)})}setupIcon(e,r){return u(this,null,function*(){switch(e){case"handRaise":f(this,Vn,r);break;case"pin":f(this,Ln,r);break}})}overrideIcon(e,r){return u(this,null,function*(){switch(e){case"handRaise":f(this,Vn,yield zc(r));break;case"pin":f(this,Ln,yield zc(r));break}})}constructImage(e){const r=new Image,i=new Blob([e],{type:"image/svg+xml"}),a=window.URL.createObjectURL(i);return new Promise(o=>{r.onload=()=>{o(r),window.URL.revokeObjectURL(a)},r.src=a})}createVideoContainer(){f(this,st,document.createElement("div")),n(this,st).style.width="0.1px",n(this,st).style.height="0.1px",n(this,st).style.overflow="hidden",n(this,st).style.position="absolute",n(this,st).style.bottom="0",n(this,st).style.right="0",n(this,st).style.opacity="0",n(this,st).appendChild(n(this,Yt))}setupEventListeners(){n(this,mi).subscribe("stageStatus",this.handlePipMediaControls),n(this,De).addListener("videoUpdate",this.onSelfVideoUpdateListener),n(this,De).addListener("audioUpdate",this.onSelfAudioUpdateListener),n(this,De).addListener("roomLeft",()=>this.disable())}createCanvas(){const e=document.createElement("canvas");e.height=n(this,be).height,e.width=n(this,be).width,f(this,zt,e)}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||n(this,De).permissions.canProduceAudio&&navigator.mediaSession.setActionHandler("togglemicrophone",()=>{this.eventCallback("MIC")})}mountVideoEvents(){navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||n(this,De).permissions.canProduceVideo&&navigator.mediaSession.setActionHandler("togglecamera",()=>{this.eventCallback("CAMERA")})}getSources(){const r=Object.values(n(this,gt)).reduce((i,a)=>(i[a.pinned?"pinned":"regular"].push(a),i),{pinned:[],regular:[]});return[...r.pinned,...r.regular]}drawEmptyTile(e,r,i,a){if(n(this,zt)===void 0)return;const o=n(this,zt).getContext("2d"),c=n(this,zt).width,d=0,l=0,p=r-d*2,g=i-d*2,T=Math.floor(c/p),v=Math.floor(e/T),_=e%T*(p+d)+d,C=v*(g+d)+d,{displayText:w,image:V}=a!=null?a:{};o.fillStyle=w||V?n(this,ps).videoBackground:n(this,ps).background,o.strokeStyle=n(this,ps).brand,o.beginPath(),o.moveTo(_+l,C),o.arcTo(_+p,C,_+p,C+l,l),o.arcTo(_+p,C+g,_+p-l,C+g,l),o.arcTo(_,C+g,_,C+g-l,l),o.arcTo(_,C,_+l,C,l),o.closePath(),o.fill(),o.stroke();const F=p/6,N=p/2+_,B=g/2+C;o.save(),(w||V)&&(o.beginPath(),o.arc(N,B,F,0,Math.PI*2),o.fillStyle=n(this,ps).brand,o.fill(),V?(o.clip(),o.drawImage(V,N-F,B-F,F*2,F*2),o.restore()):w&&(o.fillStyle=n(this,ps).textOnBrand,o.font=`${F/2}px sans-serif`,o.textAlign="center",o.textBaseline="middle",o.fillText(w,N,B)),this.drawIcons(a,_,C,Math.max(p,g)))}drawIcons(e,r,i,a){const o=Math.min(Math.max(a*.15,100),200),c=o*.2,d=o*.2;let l=r+c;const p=i+c,g=T=>{const v=n(this,zt).getContext("2d");v.save(),v.fillStyle=n(this,ps).background,v.beginPath(),v.moveTo(l+d,p),v.arcTo(l+o,p,l+o,p+d,d),v.arcTo(l+o,p+o,l+o-d,p+o,d),v.arcTo(l,p+o,l,p+o-d,d),v.arcTo(l,p,l+d,p,d),v.closePath(),v.fill(),typeof T=="string"?(v.font=`${o/1.5}px sans-serif`,v.fillStyle=n(this,ps).text,v.textAlign="center",v.textBaseline="top",v.fillText(T,o/2+l,p+c)):v.drawImage(T,l+c,p+c,o-c*2,o-c*2),l+=o+c,v.restore()};e.pinned&&g(n(this,Ln)),e.handRaised&&g(n(this,Vn)),e.reaction&&g(e.reaction)}drawTile(e,r,i){var l,p;if(n(this,zt)===void 0)return;const a=n(this,zt).getContext("2d"),o=this.getSources();let c=0,d=0;for(;c<n(this,be).height-5;){let g=0;for(;g<n(this,be).width-5&&d<i;){if((l=o[d])!=null&&l.enabled){const T=o[d].element,[v,P,_,C,w,V,F,N]=_w(g,c,e,r,T.videoWidth,T.videoHeight);((p=T==null?void 0:T.classList)==null?void 0:p.contains("mirror"))?(a.save(),a.scale(-1,1),a.drawImage(T,v,P,_,C,-1*w,V,-1*F,N),a.restore()):a.drawImage(T,v,P,_,C,w,V,F,N),this.drawIcons(o[d],w,V,Math.max(F,N))}else this.drawEmptyTile(d,e,r,o[d]);d+=1,g+=e}c+=r}}calcGridElemSize(e){switch(e){case 0:case 1:return[n(this,be).width,n(this,be).height];case 2:return[Math.floor(n(this,be).width/2),n(this,be).height];case 3:case 4:return[Math.floor(n(this,be).width/2),Math.floor(n(this,be).height/2)];case 5:case 6:return[Math.floor(n(this,be).width/3),Math.floor(n(this,be).height/2)];case 7:case 8:case 9:return[Math.floor(n(this,be).width/3),Math.floor(n(this,be).height/3)];default:return[Math.floor(n(this,be).width/3),Math.floor(n(this,be).height/2)]}}paintCanvas(){let e=this.getSources().length;e!==1&&(e=e%2>0?e+1:e);const[r,i]=this.calcGridElemSize(e);this.drawTile(r,i,e)}isSupported(){var e;return!!window.chrome&&document.pictureInPictureEnabled&&((e=n(this,De).config)==null?void 0:e.viewType)!=="LIVESTREAM"}get isActive(){return document.pictureInPictureElement!==null}cleanup(){if(f(this,xn,!1),this.isSupported()&&document.exitPictureInPicture!==void 0&&document.pictureInPictureElement!==null&&document.exitPictureInPicture(),n(this,st))try{document.body.removeChild(n(this,st))}catch(e){}this.removeAllSources(),f(this,zt,void 0),f(this,Yt,void 0),f(this,zs,void 0)}init({height:e,width:r}={}){if(!this.isSupported())throw this.logger.error("Pip.unsupported"),new Error("Picture-in-picture is not available in this environment");if(n(this,xn))return;f(this,xn,!0),this.createCanvas(),this.setupMediaSessionEvents();const i=document.createElement("video");f(this,be,{height:e!=null?e:Fp,width:r!=null?r:Bp}),i.height=n(this,be).height,i.width=n(this,be).width,i.autoplay=!0,i.muted=!0,i.srcObject=n(this,zt).captureStream(24),f(this,Yt,i),n(this,Yt).onloadedmetadata=()=>{try{this.emit("pipStarted"),n(this,Yt).onleavepictureinpicture=()=>{this.emit("pipEnded")}}catch(a){this.emit("pipEnded")}},this.createVideoContainer(),this.paintCanvas()}updateMediaSession(e,r){navigator.mediaSession!==void 0&&(e==="CAMERA"&&navigator.mediaSession.setCameraActive!==void 0&&navigator.mediaSession.setCameraActive(r),e==="MIC"&&navigator.mediaSession.setMicrophoneActive!==void 0&&navigator.mediaSession.setMicrophoneActive(r))}enableSource(e){n(this,gt)[e]!==void 0&&(n(this,gt)[e].enabled=!0)}disableSource(e){n(this,gt)[e]!==void 0&&(n(this,gt)[e].enabled=!1)}generateAvatar(e,r){return u(this,null,function*(){if(!r)return;const i=new Image;try{const a=yield(yield fetch(r)).blob(),o=window.URL.createObjectURL(a);i.onload=()=>{this.updateSource(e,{image:i}),window.URL.revokeObjectURL(o)},i.src=o}catch(a){this.logger.error("Pip::GenerateAvatar",{error:a})}})}addSource(e,r,i,a=!1,o=void 0,c=void 0,d=!1){this.logger.debug("Pip::AddSource",{pip:{id:e,handRaised:d}}),n(this,gt)[e]={id:e,element:r,enabled:i,pinned:a,displayText:o?Pw(o):void 0,imageUrl:c,handRaised:d},c&&this.generateAvatar(e,c)}updateSource(e,r){this.logger.info("Pip::UpdateSource",{pip:{id:e,handRaised:r.handRaised,reaction:r.reaction}});const i=n(this,gt)[e];i&&(n(this,gt)[e]=D(D({},i),r))}removeSource(e){delete n(this,gt)[e]}removePinnedSource(){Object.values(n(this,gt)).forEach(r=>{r.pinned&&this.removeSource(r.id)})}removeAllSources(){f(this,gt,{})}enable(){f(this,Ys,"activating"),this.setupEventListeners(),this.updateMediaSession("CAMERA",n(this,De).videoEnabled),this.updateMediaSession("MIC",n(this,De).audioEnabled),document.body.appendChild(n(this,st)),f(this,zs,requestAnimationFrame(()=>this.animate())),n(this,Yt).onloadedmetadata=()=>{n(this,Yt).requestPictureInPicture().then(()=>{f(this,Ys,"active")})},n(this,Yt).readyState===4&&n(this,Yt).requestPictureInPicture().then(()=>{f(this,Ys,"active")})}};let Cu=Yh;zt=new WeakMap,mi=new WeakMap,st=new WeakMap,Yt=new WeakMap,be=new WeakMap,ps=new WeakMap,zs=new WeakMap,gt=new WeakMap,De=new WeakMap,Ln=new WeakMap,Vn=new WeakMap,Ys=new WeakMap,xn=new WeakMap;var yr;(function(s){s[s.PUBLISHER=0]="PUBLISHER",s[s.SUBSCRIBER=1]="SUBSCRIBER"})(yr||(yr={}));var Fs;(function(s){s[s.AUDIO=0]="AUDIO",s[s.VIDEO=1]="VIDEO"})(Fs||(Fs={}));class Cw extends y.MessageType{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 pf=new Cw;class ww extends y.MessageType{constructor(){super("media.HeaderExtension",[{no:1,name:"direction",kind:"scalar",opt:!0,T:9},{no:2,name:"uri",kind:"scalar",T:9}])}}const Rw=new ww;class bw extends y.MessageType{constructor(){super("media.Fingerprint",[{no:1,name:"algorithm",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:9}])}}new bw;class kw extends y.MessageType{constructor(){super("media.SessionDescription",[{no:1,name:"target",kind:"enum",T:()=>["media.Target",yr]},{no:2,name:"type",kind:"scalar",T:9},{no:3,name:"sdp",kind:"scalar",T:9}])}}const Is=new kw;class Iw extends y.MessageType{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 Aw=new Iw;class Mw extends y.MessageType{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:()=>Is},{no:4,name:"private_ice",kind:"scalar",opt:!0,T:8},{no:5,name:"producers",kind:"message",repeat:1,T:()=>Aw}])}}const Dw=new Mw;class Ow extends y.MessageType{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 Nw=new Ow;class Lw extends y.MessageType{constructor(){super("media.CreateTransportResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>Is},{no:3,name:"transcription_enabled",kind:"scalar",opt:!0,T:8},{no:4,name:"producer_ids",kind:"scalar",repeat:2,T:9}])}}const gf=new Lw;class Vw extends y.MessageType{constructor(){super("media.RenegotiateRequest",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>Is}])}}const xw=new Vw;class Uw extends y.MessageType{constructor(){super("media.RenegotiateResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>Is}])}}new Uw;class $w extends y.MessageType{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 Fw=new $w;class Bw extends y.MessageType{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 Hw=new Bw;class qw extends y.MessageType{constructor(){super("media.ProducerEntry",[{no:1,name:"producing_transport_id",kind:"scalar",T:9},{no:2,name:"producer_id",kind:"scalar",T:9}])}}new qw;class jw extends y.MessageType{constructor(){super("media.ConsumerEntry",[{no:1,name:"consuming_transport_id",kind:"scalar",T:9},{no:2,name:"consumer_id",kind:"scalar",T:9}])}}new jw;class Gw extends y.MessageType{constructor(){super("media.ProducerState",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"kind",kind:"enum",T:()=>["media.ProducerKind",Fs]},{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:()=>pf}])}}const Fc=new Gw;class Ww extends y.MessageType{constructor(){super("media.ConsumerState",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>Fc},{no:3,name:"producer_track",kind:"message",T:()=>Hw},{no:4,name:"error_code",kind:"scalar",opt:!0,T:9}])}}const Jw=new Ww;class Kw extends y.MessageType{constructor(){super("media.ProducerIdToConsumerMap",[{no:1,name:"map",kind:"map",K:9,V:{kind:"message",T:()=>Jw}}])}}const mf=new Kw;class zw extends y.MessageType{constructor(){super("media.PeerRtpCapabilitites",[{no:1,name:"sender",kind:"message",T:()=>qp},{no:2,name:"receiver",kind:"message",T:()=>qp}])}}const ff=new zw;class Yw extends y.MessageType{constructor(){super("media.RtpCapability",[{no:1,name:"codecs",kind:"message",repeat:1,T:()=>pf},{no:2,name:"header_extensions",kind:"message",repeat:1,T:()=>Rw}])}}const Hp=new Yw;class Qw extends y.MessageType{constructor(){super("media.RtpCapabilitites",[{no:1,name:"audio",kind:"message",T:()=>Hp},{no:2,name:"video",kind:"message",T:()=>Hp}])}}const qp=new Qw;class Xw extends y.MessageType{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 Zw=new Xw;class eR extends y.MessageType{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 Tf=new eR;class tR extends y.MessageType{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 sR=new tR;class rR extends y.MessageType{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:()=>sR},{no:9,name:"capabilities",kind:"message",T:()=>ff}])}}const iR=new rR;class nR extends y.MessageType{constructor(){super("media.edge.PeerJoinCompleteRequest",[])}}const aR=new nR;class oR extends y.MessageType{constructor(){super("media.edge.PeerLeaveRequest",[{no:1,name:"close_room",kind:"scalar",T:8}])}}const cR=new oR;class dR extends y.MessageType{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 dR;class lR extends y.MessageType{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:()=>Zw},{no:5,name:"producing_transport_id",kind:"scalar",opt:!0,T:9},{no:6,name:"simulcast",kind:"message",T:()=>Tf}])}}const uR=new lR;class hR extends y.MessageType{constructor(){super("media.edge.ConsumePeersRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>uR},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const pR=new hR;class gR extends y.MessageType{constructor(){super("media.edge.UpdateConsumerSimulcastConfigRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"simulcast",kind:"message",T:()=>Tf},{no:3,name:"producing_transport_id",kind:"scalar",T:9},{no:4,name:"mid",kind:"scalar",T:9}])}}const mR=new gR;class fR extends y.MessageType{constructor(){super("media.edge.UpdateConsumersSimulcastConfigRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>mR},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const TR=new fR;class vR extends y.MessageType{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:()=>Is},{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 yR=new vR;class SR extends y.MessageType{constructor(){super("media.edge.SelectedPeersRequest",[])}}new SR;class ER extends y.MessageType{constructor(){super("media.edge.GlobalPeerPinningRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const PR=new ER;class _R extends y.MessageType{constructor(){super("media.edge.ProducerToggleRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"pause",kind:"scalar",T:8}])}}const Qc=new _R;class CR extends y.MessageType{constructor(){super("media.edge.ConsumerToggleRequest",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"pause",kind:"scalar",T:8}])}}new CR;class wR extends y.MessageType{constructor(){super("media.edge.ProducerCloseRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>Is},{no:3,name:"producing_transport_id",kind:"scalar",opt:!0,T:9}])}}const RR=new wR;class bR extends y.MessageType{constructor(){super("media.edge.ConsumerCloseRequest",[{no:1,name:"consumer_ids",kind:"scalar",repeat:2,T:9},{no:2,name:"description",kind:"message",T:()=>Is},{no:3,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const kR=new bR;class IR extends y.MessageType{constructor(){super("media.edge.KickPeerRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new IR;class AR extends y.MessageType{constructor(){super("media.edge.KickAllPeersRequest",[{no:1,name:"propagate_kick_across_rooms",kind:"scalar",T:8}])}}const vf=new AR;class MR extends y.MessageType{constructor(){super("media.edge.PeerDisplayNameEditRequest",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",T:9}])}}const DR=new MR;class OR extends y.MessageType{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 NR=new OR;class LR extends y.MessageType{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 VR=new LR;class xR extends y.MessageType{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 UR=new xR;class $R extends y.MessageType{constructor(){super("media.edge.ErrorResponse",[{no:1,name:"error_message",kind:"scalar",T:9},{no:2,name:"event_id",kind:"scalar",T:5}])}}const FR=new $R;class BR extends y.MessageType{constructor(){super("media.edge.EmptyResponse",[])}}new BR;class HR extends y.MessageType{constructor(){super("media.edge.RoomParticipants",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"producer_states",kind:"message",repeat:1,T:()=>Fc},{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:()=>ff}])}}const yf=new HR;class qR extends y.MessageType{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 wu=new qR;class jR extends y.MessageType{constructor(){super("media.edge.SelectedPeersDiffEntry",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"priority",kind:"scalar",T:5}])}}const GR=new jR;class WR extends y.MessageType{constructor(){super("media.edge.SelectedPeersDiffResponse",[{no:1,name:"entries",kind:"message",repeat:1,T:()=>GR}])}}const jp=new WR;class JR extends y.MessageType{constructor(){super("media.edge.PeerJoinResponse",[])}}new JR;class KR extends y.MessageType{constructor(){super("media.edge.PeerJoinCompleteResponse",[{no:1,name:"room_state",kind:"message",T:()=>UR},{no:2,name:"participants",kind:"message",repeat:1,T:()=>yf},{no:3,name:"selected_peers",kind:"message",T:()=>wu},{no:4,name:"max_preferred_streams",kind:"scalar",T:5}])}}const Ru=new KR;class zR extends y.MessageType{constructor(){super("media.edge.PeerLeaveResponse",[{no:1,name:"closed",kind:"scalar",T:8}])}}const YR=new zR;class QR extends y.MessageType{constructor(){super("media.edge.ConsumeMultipleProducerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>mf}])}}new QR;class XR extends y.MessageType{constructor(){super("media.edge.ConsumePeerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>mf},{no:3,name:"description",kind:"message",T:()=>Is}])}}const ZR=new XR;class eb extends y.MessageType{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:()=>Is}])}}const tb=new eb;class sb extends y.MessageType{constructor(){super("media.edge.ProducerScoreResponse",[{no:1,name:"responseid",kind:"scalar",T:9},{no:2,name:"score",kind:"message",T:()=>Fw}])}}new sb;class rb extends y.MessageType{constructor(){super("media.edge.ActiveSpeakerResponse",[{no:1,name:"responsepeer_id",kind:"scalar",T:9},{no:2,name:"volume",kind:"scalar",T:5}])}}new rb;class ib extends y.MessageType{constructor(){super("media.edge.NoActiveSpeakerResponse",[])}}new ib;class nb extends y.MessageType{constructor(){super("media.edge.ProducerToggleResponse",[])}}new nb;class ab extends y.MessageType{constructor(){super("media.edge.ConsumerToggleResponse",[])}}new ab;class ob extends y.MessageType{constructor(){super("media.edge.ProducerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>Is}])}}const cb=new ob;class db extends y.MessageType{constructor(){super("media.edge.ConsumerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>Is}])}}const lb=new db;class ub extends y.MessageType{constructor(){super("media.edge.GlobalPeerPinningResponse",[])}}new ub;class hb extends y.MessageType{constructor(){super("media.edge.KickPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new hb;class pb extends y.MessageType{constructor(){super("media.edge.KickAllPeersResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new pb;class gb extends y.MessageType{constructor(){super("media.edge.HostMediaControlForPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const mb=new gb;class fb extends y.MessageType{constructor(){super("media.edge.HostMediaControlForAllPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const Tb=new fb;class vb extends y.MessageType{constructor(){super("media.edge.PeerDisplayNameEditResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const yb=new vb;class Sb extends y.MessageType{constructor(){super("media.edge.PeerJoinBroadcastResponse",[{no:1,name:"participant",kind:"message",T:()=>yf}])}}const Gp=new Sb;class Eb extends y.MessageType{constructor(){super("media.edge.TrackSubscriptionKind",[{no:1,name:"audio",kind:"scalar",T:8},{no:2,name:"video",kind:"scalar",T:8}])}}const Wp=new Eb;class Pb extends y.MessageType{constructor(){super("media.edge.TrackSubscription",[{no:1,name:"label",kind:"scalar",T:9},{no:2,name:"webcam",kind:"message",T:()=>Wp},{no:3,name:"screenshare",kind:"message",T:()=>Wp}])}}const _b=new Pb;class Cb extends y.MessageType{constructor(){super("media.edge.PeerProducingTransportCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"transport_details",kind:"message",T:()=>gf},{no:3,name:"track_subscriptions",kind:"message",repeat:1,T:()=>_b}])}}new Cb;class wb extends y.MessageType{constructor(){super("media.edge.PeerProducerCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>Fc}])}}const Rb=new wb;class bb extends y.MessageType{constructor(){super("media.edge.PeerProducerToggleBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>Fc},{no:3,name:"initiator_participant_id",kind:"scalar",opt:!0,T:9}])}}const Jp=new bb;class kb extends y.MessageType{constructor(){super("media.edge.PeerProducerCloseBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>Fc}])}}const Ib=new kb;class Ab extends y.MessageType{constructor(){super("media.edge.PeerLeaveBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const bu=new Ab;class Mb extends y.MessageType{constructor(){super("media.edge.GlobalPeerPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const Kp=new Mb;class Db extends y.MessageType{constructor(){super("media.edge.GlobalPeerUnPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new Db;class Ob extends y.MessageType{constructor(){super("media.edge.RecordingStartedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new Ob;class Nb extends y.MessageType{constructor(){super("media.edge.RecordingStoppedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new Nb;class Lb extends y.MessageType{constructor(){super("media.edge.PeerDisplayNameEditBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",T:9}])}}new Lb;class Vb extends y.MessageType{constructor(){super("media.edge.PeerPingRequestBroadcastResponse",[{no:1,name:"password",kind:"scalar",T:9}])}}new Vb;class xb extends y.MessageType{constructor(){super("media.edge.MediaRoomTerminationBroadcastResponse",[{no:1,name:"reason",kind:"scalar",T:9}])}}new xb;class Ub extends y.MessageType{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 nu=new Ub;class $b extends y.MessageType{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 $b;class Fb extends y.MessageType{constructor(){super("socket.api.ErrorMessage",[{no:1,name:"code",kind:"scalar",opt:!0,T:5},{no:2,name:"message",kind:"scalar",T:9}])}}const Bb=new Fb;var an;(function(s){s[s.BROWSER=0]="BROWSER",s[s.TRACK=1]="TRACK",s[s.COMPOSITE=2]="COMPOSITE"})(an||(an={}));var pr;(function(s){s[s.UNSPECIFIED=0]="UNSPECIFIED",s[s.ON_STAGE=1]="ON_STAGE",s[s.APPROVED_STAGE=2]="APPROVED_STAGE",s[s.REQUESTED_STAGE=3]="REQUESTED_STAGE",s[s.OFF_STAGE=4]="OFF_STAGE"})(pr||(pr={}));var ku;(function(s){s[s.NONE=0]="NONE",s[s.RECORDER=1]="RECORDER",s[s.LIVESTREAMER=2]="LIVESTREAMER"})(ku||(ku={}));var Iu;(function(s){s[s.PEERS=0]="PEERS",s[s.ROOMS=1]="ROOMS"})(Iu||(Iu={}));var wd;(function(s){s[s.HIVE=0]="HIVE",s[s.CHAT=1]="CHAT",s[s.PING=2]="PING"})(wd||(wd={}));class Hb extends y.MessageType{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 qb=new Hb;class jb extends y.MessageType{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",pr,"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:()=>qb}])}}const Fl=new jb;class Gb extends y.MessageType{constructor(){super("socket.room.PeerInfoResponse",[{no:1,name:"peer",kind:"message",T:()=>Fl}])}}const yn=new Gb;class Wb extends y.MessageType{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",pr,"STAGE_TYPE_"]}])}}const zp=new Wb;class Jb extends y.MessageType{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 Kb=new Jb;class zb extends y.MessageType{constructor(){super("socket.room.RoomPeersInfoResponse",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>Fl}])}}const au=new zb;class Yb extends y.MessageType{constructor(){super("socket.room.RoomPeerCountResponse",[{no:1,name:"count",kind:"scalar",T:4,L:2}])}}const Yp=new Yb;class Qb extends y.MessageType{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:()=>Zb},{no:6,name:"room_uuid",kind:"scalar",opt:!0,T:9}])}}const Sf=new Qb;class Xb extends y.MessageType{constructor(){super("socket.room.ActiveRecording",[{no:1,name:"recording_id",kind:"scalar",T:9},{no:2,name:"recording_type",kind:"enum",T:()=>["common.RecordingType",an]},{no:3,name:"recording_status",kind:"scalar",T:9}])}}const Zb=new Xb;class ek extends y.MessageType{constructor(){super("socket.room.RoomInfoResponse",[{no:1,name:"room",kind:"message",T:()=>Sf}])}}const Qp=new ek;class tk extends y.MessageType{constructor(){super("socket.room.GetPeerInfoRequest",[{no:1,name:"peer_id",kind:"scalar",T:9}])}}const Ef=new tk;class sk extends y.MessageType{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 sk;class rk extends y.MessageType{constructor(){super("socket.room.JoinRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>Fl},{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",wd,"CAPABILITIES_"]},{no:8,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const ik=new rk;class nk extends y.MessageType{constructor(){super("socket.room.LeaveRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>Fl},{no:2,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const ak=new nk;class ok extends y.MessageType{constructor(){super("socket.room.UpdateRoomInfoRequest",[{no:1,name:"room",kind:"message",T:()=>Sf}])}}new ok;class ck extends y.MessageType{constructor(){super("socket.room.GetConnectedRoomsDumpRequest",[])}}new ck;class dk extends y.MessageType{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 Ih=new dk;class lk extends y.MessageType{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 uk=new lk;class hk extends y.MessageType{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:()=>uk}])}}const Xp=new hk;class pk extends y.MessageType{constructor(){super("socket.room.GetConnectedRoomsDumpResponse",[{no:1,name:"parent_meeting",kind:"message",T:()=>Xp},{no:2,name:"meetings",kind:"message",repeat:1,T:()=>Xp}])}}const gk=new pk;class mk extends y.MessageType{constructor(){super("socket.room.CreateRoomRequestPayload",[{no:1,name:"title",kind:"scalar",opt:!0,T:9}])}}const fk=new mk;class Tk extends y.MessageType{constructor(){super("socket.room.CreateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>fk}])}}const vk=new Tk;class yk extends y.MessageType{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:()=>Ih}])}}const Sk=new yk;class Ek extends y.MessageType{constructor(){super("socket.room.CreateConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>Sk}])}}const Zp=new Ek;class Pk extends y.MessageType{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 _k=new Pk;class Ck extends y.MessageType{constructor(){super("socket.room.UpdateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>_k}])}}new Ck;class wk extends y.MessageType{constructor(){super("socket.room.DisableRoomPayload",[{no:1,name:"id",kind:"scalar",opt:!0,T:9}])}}const Rk=new wk;class bk extends y.MessageType{constructor(){super("socket.room.DisableConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>Rk}])}}const kk=new bk;class Ik extends y.MessageType{constructor(){super("socket.room.DisableConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>Dk}])}}const Ak=new Ik;class Mk extends y.MessageType{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:()=>Ih}])}}const Dk=new Mk;class Ok extends y.MessageType{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 Nk=new Ok;class Lk extends y.MessageType{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:()=>Nk}])}}const Vk=new Lk;class xk extends y.MessageType{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:()=>Ih}])}}const Pf=new xk;class Uk extends y.MessageType{constructor(){super("socket.room.MovePeersBetweenRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>Pf}])}}new Uk;class $k extends y.MessageType{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 Fk=new $k;class Bk extends y.MessageType{constructor(){super("socket.room.GetAllAddedParticipantsResponse",[{no:1,name:"participants",kind:"message",repeat:1,T:()=>jk}])}}const Hk=new Bk;class qk extends y.MessageType{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 jk=new qk;class Gk extends y.MessageType{constructor(){super("socket.room.RemoveParticipantsRequest",[{no:1,name:"peer_ids",kind:"scalar",repeat:2,T:9}])}}const _f=new Gk;class Wk extends y.MessageType{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",Iu,"BROADCAST_TYPE_"]}])}}const oo=new Wk;class Jk extends y.MessageType{constructor(){super("socket.room.AcceptWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const Kk=new Jk;class zk extends y.MessageType{constructor(){super("socket.room.DenyWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const Yk=new zk;class Qk extends y.MessageType{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 Xk=new Qk;class Zk extends y.MessageType{constructor(){super("socket.room.GetWaitingRoomRequests",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>Xk}])}}const eg=new Zk;class eI extends y.MessageType{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 tg=new eI;var Au;(function(s){s[s.NONE=0]="NONE",s[s.SKIP=1]="SKIP",s[s.ON_PRIVILEGED_USER_ENTRY=2]="ON_PRIVILEGED_USER_ENTRY",s[s.SKIP_ON_ACCEPT=3]="SKIP_ON_ACCEPT"})(Au||(Au={}));var Qr;(function(s){s[s.NONE=0]="NONE",s[s.ALLOWED=1]="ALLOWED",s[s.NOT_ALLOWED=2]="NOT_ALLOWED",s[s.CAN_REQUEST=3]="CAN_REQUEST"})(Qr||(Qr={}));class tI extends y.MessageType{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 sI=new tI;class rI extends y.MessageType{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 iI=new rI;class nI extends y.MessageType{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 aI=new nI;class oI extends y.MessageType{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 cI=new oI;class dI extends y.MessageType{constructor(){super("socket.preset.ChatPermissionUpdate",[{no:1,name:"public",kind:"message",T:()=>aI},{no:2,name:"private",kind:"message",T:()=>cI}])}}const lI=new dI;class uI extends y.MessageType{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 hI=new uI;class pI extends y.MessageType{constructor(){super("socket.preset.StreamPermission",[{no:1,name:"can_produce",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",Qr,"STREAM_PERMISSION_TYPE_"]},{no:2,name:"can_consume",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",Qr,"STREAM_PERMISSION_TYPE_"]}])}}const ou=new pI;class gI extends y.MessageType{constructor(){super("socket.preset.MediaPermissionUpdate",[{no:1,name:"video",kind:"message",T:()=>ou},{no:2,name:"audio",kind:"message",T:()=>ou},{no:3,name:"screenshare",kind:"message",T:()=>ou}])}}const mI=new gI;class fI extends y.MessageType{constructor(){super("socket.preset.PresetUpdates",[{no:1,name:"polls",kind:"message",T:()=>sI},{no:2,name:"plugins",kind:"message",T:()=>iI},{no:3,name:"chat",kind:"message",T:()=>lI},{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",Au,"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",ku,"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:()=>hI},{no:23,name:"media",kind:"message",T:()=>mI}])}}const Ah=new fI;class TI extends y.MessageType{constructor(){super("socket.preset.ReadPeersPresetRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const vI=new TI;class yI extends y.MessageType{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 SI=new yI;class EI extends y.MessageType{constructor(){super("socket.preset.ReadPeersPresetResponse",[{no:1,name:"peer_presets",kind:"message",repeat:1,T:()=>SI}])}}const PI=new EI;class _I extends y.MessageType{constructor(){super("socket.preset.UpdatePeerPreset",[{no:1,name:"user_ids",kind:"scalar",T:9},{no:2,name:"patch",kind:"message",T:()=>Ah}])}}const Cf=new _I;class CI extends y.MessageType{constructor(){super("socket.preset.UpdatePeersPresetRequest",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>Cf}])}}const wI=new CI;class RI extends y.MessageType{constructor(){super("socket.preset.UpdatePeersPresetResponse",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>Cf}])}}const sg=new RI;class bI extends y.MessageType{constructor(){super("socket.preset.PeerUserIDMap",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9}])}}const kI=new bI;class II extends y.MessageType{constructor(){super("socket.preset.BulkUpdatePeerPresetRequest",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>kI},{no:2,name:"patch",kind:"message",T:()=>Ah}])}}new II;class AI extends y.MessageType{constructor(){super("socket.preset.BulkUpdatePeerPresetResponse",[{no:2,name:"patch",kind:"message",T:()=>Ah}])}}new AI;class MI extends y.MessageType{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 MI;class DI extends y.MessageType{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 OI=new DI;class NI extends y.MessageType{constructor(){super("socket.chat.GetPaginatedChatMessageRoomResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>gn},{no:2,name:"next",kind:"scalar",T:8}])}}const LI=new NI;class VI extends y.MessageType{constructor(){super("socket.chat.GetChatMessagesResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>gn}])}}const wf=new VI;class xI extends y.MessageType{constructor(){super("socket.chat.SendChatMessageToRoomRequest",[{no:1,name:"payload_type",kind:"scalar",T:5},{no:2,name:"payload",kind:"scalar",T:9}])}}const UI=new xI;class $I extends y.MessageType{constructor(){super("socket.chat.SendChatMessageToRoomResponse",[{no:1,name:"message",kind:"message",T:()=>gn}])}}const cu=new $I;class FI extends y.MessageType{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 BI=new FI;class HI extends y.MessageType{constructor(){super("socket.chat.SendChatMessageToPeersResponse",[{no:1,name:"message",kind:"message",T:()=>gn}])}}const du=new HI;class qI extends y.MessageType{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 jI=new qI;class GI extends y.MessageType{constructor(){super("socket.chat.SendChatMessageToChannelResponse",[{no:1,name:"message",kind:"message",T:()=>gn}])}}new GI;class WI extends y.MessageType{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 JI=new WI;class KI extends y.MessageType{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 zI=new KI;class YI extends y.MessageType{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 Xc=new YI;class QI extends y.MessageType{constructor(){super("socket.chat.EditChatMessageResponse",[{no:1,name:"message",kind:"message",T:()=>gn}])}}const Zc=new QI;class XI extends y.MessageType{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 ZI=new XI;class eA extends y.MessageType{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 ed=new eA;class tA extends y.MessageType{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 sA=new tA;class rA extends y.MessageType{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 iA=new rA;class nA extends y.MessageType{constructor(){super("socket.chat.MarkChannelIndexAsReadResponse",[{no:1,name:"channel_index",kind:"scalar",T:9}])}}const aA=new nA;class oA extends y.MessageType{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 cA=new oA;class dA extends y.MessageType{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 lA=new dA;class uA extends y.MessageType{constructor(){super("socket.chat.CreateChatChannelResponse",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}new uA;class hA extends y.MessageType{constructor(){super("socket.chat.GetChatChannelRequest",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}const pA=new hA;class gA extends y.MessageType{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 mA=new gA;class fA extends y.MessageType{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:()=>mA},{no:7,name:"target_user_ids",kind:"scalar",repeat:2,T:9}])}}const TA=new fA;class vA extends y.MessageType{constructor(){super("socket.chat.GetChatChannelResponse",[{no:1,name:"chat_channels",kind:"message",repeat:1,T:()=>TA}])}}const js=new vA;class yA extends y.MessageType{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 SA=new yA;class EA extends y.MessageType{constructor(){super("socket.chat.GetChatChannelMembersResponse",[{no:1,name:"channel_members",kind:"message",repeat:1,T:()=>SA}])}}const PA=new EA;class _A extends y.MessageType{constructor(){super("socket.plugin.AddPluginRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"staggered",kind:"scalar",T:8}])}}const CA=new _A;class wA extends y.MessageType{constructor(){super("socket.plugin.RemovePluginRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"staggered",kind:"scalar",T:8}])}}const RA=new wA;class bA extends y.MessageType{constructor(){super("socket.plugin.EnablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const kA=new bA;class IA extends y.MessageType{constructor(){super("socket.plugin.DisablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const AA=new IA;class MA extends y.MessageType{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 DA=new MA;class OA extends y.MessageType{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 NA=new OA;class LA extends y.MessageType{constructor(){super("socket.plugin.PluginEventToRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"plugin_data",kind:"scalar",T:12}])}}const VA=new LA;class xA extends y.MessageType{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 UA=new xA;class $A extends y.MessageType{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 Mh=new $A;class FA extends y.MessageType{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:()=>Mh}])}}const rg=new FA;class BA extends y.MessageType{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:()=>Mh}])}}const HA=new BA;class qA extends y.MessageType{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:()=>Mh}])}}const jA=new qA;class GA extends y.MessageType{constructor(){super("socket.plugin.PluginStoreDeleteRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"store_name",kind:"scalar",T:9}])}}const WA=new GA;class JA extends y.MessageType{constructor(){super("socket.plugin.EnablePluginResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"enabled_by",kind:"scalar",T:9}])}}const Mu=new JA;class KA extends y.MessageType{constructor(){super("socket.plugin.EnablePluginsResponse",[{no:1,name:"plugins",kind:"message",repeat:1,T:()=>Mu}])}}const zA=new KA;class YA extends y.MessageType{constructor(){super("socket.plugin.DisablePluginResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"disabled_by",kind:"scalar",T:9}])}}const ig=new YA;class QA extends y.MessageType{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 XA=new QA;class ZA extends y.MessageType{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:()=>XA}])}}const ng=new ZA;class eM extends y.MessageType{constructor(){super("socket.plugin.PluginEventResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"plugin_data",kind:"scalar",T:12}])}}const ag=new eM;class tM extends y.MessageType{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 og=new tM;class sM extends y.MessageType{constructor(){super("socket.livestreaming.GetStagePeersResponse",[{no:1,name:"stage_peers",kind:"scalar",repeat:2,T:9}])}}const cg=new sM;class rM extends y.MessageType{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 iM=new rM;class nM extends y.MessageType{constructor(){super("socket.livestreaming.GetStageRequestsResponse",[{no:1,name:"stage_requests",kind:"message",repeat:1,T:()=>iM}])}}const lu=new nM;class aM extends y.MessageType{constructor(){super("socket.livestreaming.GrantStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const oM=new aM;class cM extends y.MessageType{constructor(){super("socket.livestreaming.DenyStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const dM=new cM;class lM extends y.MessageType{constructor(){super("socket.livestreaming.LeaveStageRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const dg=new lM;class uM extends y.MessageType{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:()=>pM},{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 Rf=new uM;class hM extends y.MessageType{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:()=>mM}])}}const pM=new hM;class gM extends y.MessageType{constructor(){super("socket.polls.PollVote",[{no:1,name:"user_id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9}])}}const mM=new gM;class fM extends y.MessageType{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 TM=new fM;class vM extends y.MessageType{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 yM=new vM;class SM extends y.MessageType{constructor(){super("socket.polls.UpdatePollResponse",[{no:1,name:"poll",kind:"message",T:()=>Rf}])}}const uu=new SM;class EM extends y.MessageType{constructor(){super("socket.polls.GetPollsResponse",[{no:1,name:"polls",kind:"message",repeat:1,T:()=>Rf}])}}const PM=new EM;class _M extends y.MessageType{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",an]}])}}const lg=new _M;class CM extends y.MessageType{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 t=this.create(),e=Date.now();return t.seconds=y.PbLong.from(Math.floor(e/1e3)).toBigInt(),t.nanos=e%1e3*1e6,t}toDate(t){return new Date(y.PbLong.from(t.seconds).toNumber()*1e3+Math.ceil(t.nanos/1e6))}fromDate(t){const e=this.create(),r=t.getTime();return e.seconds=y.PbLong.from(Math.floor(r/1e3)).toBigInt(),e.nanos=r%1e3*1e6,e}internalJsonWrite(t,e){let r=y.PbLong.from(t.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(t.nanos<0)throw new Error("Unable to encode invalid Timestamp to JSON. Nanos must not be negative.");let i="Z";if(t.nanos>0){let a=(t.nanos+1e9).toString().substring(1);a.substring(3)==="000000"?i="."+a.substring(0,3)+"Z":a.substring(6)==="000"?i="."+a.substring(0,6)+"Z":i="."+a+"Z"}return new Date(r).toISOString().replace(".000Z",i)}internalJsonRead(t,e,r){if(typeof t!="string")throw new Error("Unable to parse Timestamp from JSON "+y.typeofJsonValue(t)+".");let i=t.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(!i)throw new Error("Unable to parse Timestamp from JSON. Invalid format.");let a=Date.parse(i[1]+"-"+i[2]+"-"+i[3]+"T"+i[4]+":"+i[5]+":"+i[6]+(i[8]?i[8]:"Z"));if(Number.isNaN(a))throw new Error("Unable to parse Timestamp from JSON. Invalid value.");if(a<Date.parse("0001-01-01T00:00:00Z")||a>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=y.PbLong.from(a/1e3).toBigInt(),r.nanos=0,i[7]&&(r.nanos=parseInt("1"+i[7]+"0".repeat(9-i[7].length))-1e9),r}}new CM;class wM extends y.MessageType{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 Du=new wM;class RM extends y.MessageType{constructor(){super("common.BulkedHubMessage",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>Du}])}}new RM;class bM extends y.MessageType{constructor(){super("common.CFWorkersResponse",[{no:1,name:"responses",kind:"message",repeat:1,T:()=>Du},{no:2,name:"broadcast_responses",kind:"message",repeat:1,T:()=>Du}])}}new bM;const kM=0,IM=1,AM=2,MM=3,DM=4,OM=5,NM={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},LM={getMessages:0,sendMessageToRoom:1,sendMessageToPeers:2,editMessage:3,deleteMessage:4,getPaginatedMessages:5,sendMessageToChannel:6,searchChannelMessages:7,getAllChatChannels:8,markChannelIndexAsRead:9,pinMessage:10},VM={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},xM={createPoll:0,getPolls:1,votePoll:2,updatePoll:3},bf={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},UM={createChatChannel:0,getChatChannel:1,deprecatedGetAllChatChannels:2,getChannelMembers:3,updateChatChannel:4},$M={getUserPresets:0,updateUserPreset:1};function Fa(s,t){return Object.keys(t).reduce((e,r)=>(e[r]=(s<<16)+t[r],e),{})}function kf(s,t){return Object.keys(s).reduce((e,r)=>(e[r]=t|s[r],e),{})}const $=Fa(kM,NM),Re=Fa(IM,LM),J=Fa(AM,VM),Ws=Fa(MM,xM),ui=Fa(DM,UM),Mr=kf(bf,16777216),Cs=kf(bf,50331648),dd=Fa(OM,$M);var FM=Object.defineProperty,BM=Object.getOwnPropertyDescriptor,Dh=(s,t,e,r)=>{for(var i=r>1?void 0:r?BM(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&FM(t,e,i),i},Dr,Un,kg;const Ou=(kg=class{constructor(s,t){m(this,Dr,void 0);m(this,Un,void 0);f(this,Dr,t),f(this,Un,s)}get telemetry(){return n(this,Un).getValue("telemetry")}get logger(){return n(this,Un).getValue("logger")}createChannel(s,t,e,r="public",i=!1){return u(this,null,function*(){const a={displayName:s,targetUserIds:t,displayPictureUrl:e,visibility:r,isDirectMessage:i};i&&(a.visibility="private");const o=yield n(this,Dr).sendMessagePromise(ui.createChatChannel,cA.toBinary(a)),c=js.fromBinary(o.payload).chatChannels;return Ou.formatChannel(c[0])})}updateChannel(s,t){return u(this,null,function*(){const e=yield n(this,Dr).sendMessagePromise(ui.updateChatChannel,lA.toBinary({chatChannelId:s,targetUserIds:t.memberIds,displayName:t.displayName,displayPictureUrl:t.displayPictureUrl,visibility:t.visibility})),r=js.fromBinary(e.payload).chatChannels;return Ou.formatChannel(r[0])})}static formatChannel(s){var r;const{latestMessageAndUnreadCount:t}=s,e=H(D({},s),{id:s.chatChannelId,memberIds:s.targetUserIds,unreadCount:(r=t==null?void 0:t.unreadCount)!=null?r:0});return t!=null&&t.message&&(e.latestMessage=ws.formatSocketPeerMessage(t.message)),delete e.chatChannelId,delete e.targetUserIds,delete e.latestMessageAndUnreadCount,e}getChannelMembers(s){return u(this,null,function*(){try{const t=yield n(this,Dr).sendMessagePromise(ui.getChannelMembers,pA.toBinary({chatChannelId:s}));return PA.fromBinary(t.payload).channelMembers.map(i=>{var a=i,{id:e}=a,r=io(a,["id"]);return H(D({},r),{userId:e})})}catch(t){return[]}})}on(s,t){let e,r;switch(s){case ui.createChatChannel:{e=js.fromBinary.bind(js),r=js.create();break}case ui.updateChatChannel:{e=js.fromBinary.bind(js),r=js.create();break}}if(!e){this.logger.warn(`ChatChannelSocketHandler::Event ${s} is not recognized`);return}n(this,Dr).on(s,({payload:i})=>{let a=r;try{a=e(i)}catch(o){this.logger.error("ChatChannelSocketHandler::on::binary_decode_error",{error:o})}return t(a)})}},Dr=new WeakMap,Un=new WeakMap,kg);let dn=Ou;Dh([E.trace("ChatChannelHandler.createChannel")],dn.prototype,"createChannel",1);Dh([E.trace("ChatChannelHandler.updateChannel")],dn.prototype,"updateChannel",1);Dh([E.trace("ChatChannelHandler.getChannelMembers")],dn.prototype,"getChannelMembers",1);var HM=Object.defineProperty,qM=Object.getOwnPropertyDescriptor,As=(s,t,e,r)=>{for(var i=r>1?void 0:r?qM(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&HM(t,e,i),i},Et=(s=>(s[s.TEXT=0]="TEXT",s[s.IMAGE=1]="IMAGE",s[s.FILE=2]="FILE",s[s.CUSTOM=3]="CUSTOM",s))(Et||{}),rt,$n;class os{constructor(t,e){m(this,rt,void 0);m(this,$n,void 0);f(this,rt,e),f(this,$n,t)}get telemetry(){return n(this,$n).getValue("telemetry")}get logger(){return n(this,$n).getValue("logger")}getChatMessages(){return n(this,rt).sendMessagePromise(Re.getMessages)}getChatMessagesPaginated(t,e,r,i=0,a=""){return u(this,null,function*(){const o={timeStamp:t,size:e,from:i,reversed:r,channelId:a},c=yield n(this,rt).sendMessagePromise(Re.getPaginatedMessages,OI.toBinary(o));return c.payload?LI.fromBinary(c.payload):{messages:[],next:!1}})}sendMessageToRoom(t,e){const r={payloadType:e,payload:t};n(this,rt).sendMessage(Re.sendMessageToRoom,UI.toBinary(r))}sendMessageToPeers(t,e,r){const i={payloadType:e,peerIds:r,payload:t};n(this,rt).sendMessage(Re.sendMessageToPeers,BI.toBinary(i))}sendMessageToChannel(t,e,r){const i={payloadType:e,channelId:r,payload:t};n(this,rt).sendMessage(Re.sendMessageToChannel,jI.toBinary(i))}sendMessage(t,e,r,i){if(i&&this.sendMessageToChannel(t,e,i),r&&r.length>0){this.sendMessageToPeers(t,e,r);return}this.sendMessageToRoom(t,e)}editMessage(t,e,r,i,a){return u(this,null,function*(){const o={chatId:t,payloadType:r,payload:e};i&&(o.channelId=i),a!==void 0&&(o.pinned=a);const c=yield n(this,rt).sendMessagePromise(Re.editMessage,JI.toBinary(o));return Zc.fromBinary(c.payload).message})}deleteMessage(t,e){return u(this,null,function*(){const r={chatId:t};e&&(r.channelId=e);const i=yield n(this,rt).sendMessagePromise(Re.deleteMessage,ZI.toBinary(r)),a=ed.fromBinary(i.payload);return D({id:a.chatId},a.channelId?{channelId:a.channelId}:{})})}searchMessages(t,e){return u(this,null,function*(){var i,a,o;const r={searchTerm:t,timeStamp:(i=e.timestamp)!=null?i:Date.now(),size:(a=e.size)!=null?a:75,from:0,reversed:(o=e.reversed)!=null?o:!0};e.channelId&&(r.channelId=e.channelId);try{const c=yield n(this,rt).sendMessagePromise(Re.searchChannelMessages,sA.toBinary(r));return wf.fromBinary(c.payload).messages}catch(c){return[]}})}getAllChannels(){return u(this,null,function*(){try{const t=yield n(this,rt).sendMessagePromise(Re.getAllChatChannels);return js.fromBinary(t.payload).chatChannels.map(dn.formatChannel)}catch(t){return[]}})}markLastReadMessage(t,e){return u(this,null,function*(){const r=yield n(this,rt).sendMessagePromise(Re.markChannelIndexAsRead,iA.toBinary({channelId:t,userId:e.userId,channelIndex:e.channelIndex}));return aA.fromBinary(r.payload).channelIndex})}setPinState(t,e){return u(this,null,function*(){const r={chatId:t.id,pinned:e,channelId:t.channelId},i=yield n(this,rt).sendMessagePromise(Re.pinMessage,zI.toBinary(r));return Xc.fromBinary(i.payload)})}on(t,e){let r,i;switch(t){case Re.sendMessageToRoom:{r=cu.fromBinary.bind(cu),i=cu.create();break}case Re.sendMessageToPeers:{r=du.fromBinary.bind(du),i=du.create();break}case Re.editMessage:{r=Zc.fromBinary.bind(Zc),i=Zc.create();break}case Re.pinMessage:{r=Xc.fromBinary.bind(Xc),i=Xc.create();break}case Re.deleteMessage:{r=ed.fromBinary.bind(ed),i=ed.create();break}}if(!r){this.logger.warn(`ChatSocketHandler::Event ${t} is not recognized`);return}n(this,rt).on(t,({payload:a})=>{let o=i;try{o=r(a)}catch(c){this.logger.error("chatSocketHandler::on::binary_decode_error",{error:c})}return e(o)})}}rt=new WeakMap,$n=new WeakMap;As([E.trace("SocketService.getChatMessages")],os.prototype,"getChatMessages",1);As([E.trace("SocketService.getChatMessagesPaginated")],os.prototype,"getChatMessagesPaginated",1);As([E.trace("SocketService.sendMessageToRoom")],os.prototype,"sendMessageToRoom",1);As([E.trace("SocketService.sendMessageToPeers")],os.prototype,"sendMessageToPeers",1);As([E.trace("SocketService.sendMessageToChannel")],os.prototype,"sendMessageToChannel",1);As([E.trace("SocketService.sendMessage")],os.prototype,"sendMessage",1);As([E.trace("SocketService.editMessage")],os.prototype,"editMessage",1);As([E.trace("SocketService.deleteMessage")],os.prototype,"deleteMessage",1);As([E.trace("SocketService.searchMessages")],os.prototype,"searchMessages",1);As([E.trace("SocketService.getAllChannels")],os.prototype,"getAllChannels",1);As([E.trace("SocketService.markLastReadMessage")],os.prototype,"markLastReadMessage",1);function jM(s){return s.replace(/([-_]\w)/g,t=>t[1].toUpperCase())}function Rs(s){if(!s||typeof s!="object")return s;if(Array.isArray(s))return s.map(e=>Rs(e));const t={};return Object.keys(s).forEach(e=>{const r=Tr.validate(e)?e:jM(e);t[r]=Rs(s[e])}),t}function GM(s){return s.replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function If(s){if(!s||typeof s!="object")return s;if(Array.isArray(s))return s.map(e=>If(e));const t={};return Object.keys(s).forEach(e=>{const r=Tr.validate(e)?e:GM(e);t[r]=s[e]}),t}function Rd(s,t={}){return s==null?{}:(Object.getOwnPropertyNames(s).forEach(e=>{if(typeof s[e]!="function"){if(typeof s[e]=="object"){Rd(s[e],t[e]={});return}t[e]=s[e]}}),t)}class ug{constructor(t){h(this,"defaults");this.defaults={baseURL:t.baseURL,headers:{common:{}},timeout:t.timeout,retry:t.retry,retryDelay:t.retryDelay}}buildURL(t,e){const{baseURL:r}=this.defaults,i=t.startsWith("http")?t:`${r}${t.startsWith("/")?t:`/${t}`}`;if(e){const a=new URLSearchParams;return Object.entries(e).forEach(([o,c])=>{a.append(o,c)}),`${i}${i.includes("?")?"&":"?"}${a.toString()}`}return i}request(t){return u(this,null,function*(){var g;const e=((g=t.method)==null?void 0:g.toUpperCase())||"GET",r=this.buildURL(t.url||"",t.params),i=D(D({},this.defaults.headers.common),t.headers);e!=="GET"&&e!=="HEAD"&&t.data&&!i["Content-Type"]&&(i["Content-Type"]="application/json");const o=i["Content-Type"]==="application/json"?JSON.stringify(t.data):t.data,c={method:e,headers:i,body:e!=="GET"&&e!=="HEAD"&&t.data?o:void 0},d=t.timeout||this.defaults.timeout,l=t.retry!==void 0?t.retry:this.defaults.retry,p=t.retryDelay||this.defaults.retryDelay;try{const T=new AbortController,v=setTimeout(()=>T.abort(),d);c.signal=T.signal;const P=yield fetch(r,c);clearTimeout(v);let _=null;const C=P.headers.get("content-type");C&&C.includes("application/json")?_=yield P.json():_=yield P.text();const w={};P.headers.forEach((F,N)=>{w[N]=F});const V={data:_,status:P.status,statusText:P.statusText,headers:w,config:t};if(!P.ok)throw V;return V}catch(T){if(T instanceof Error&&l>0)return yield new Promise(v=>setTimeout(v,p)),this.defaults.baseURL===gi.apiBase.prod?this.defaults.baseURL=gi.apiBase.prodAlternate:this.defaults.baseURL===gi.apiBase.prodAlternate&&(this.defaults.baseURL=gi.apiBase.prod),this.request(H(D({},t),{retry:l-1}));throw T}})}get(r){return u(this,arguments,function*(t,e={}){return this.request(H(D({},e),{method:"GET",url:t}))})}post(i,a){return u(this,arguments,function*(t,e,r={}){return this.request(H(D({},r),{method:"POST",url:t,data:e}))})}put(i,a){return u(this,arguments,function*(t,e,r={}){return this.request(H(D({},r),{method:"PUT",url:t,data:e}))})}}const WM=3,JM=30,KM=8e3;class zM{constructor(t,e){h(this,"ipInfo");h(this,"fetchClient");h(this,"requests");h(this,"roomName");h(this,"roomUUID");h(this,"authToken");h(this,"organizationId");h(this,"iceServers");h(this,"pluginInformation");h(this,"userDetails");h(this,"roomDetails");h(this,"context");this.context=t;const{timeout:r=KM,retry:i=WM,retryDelay:a=JM,baseURL:o=gi.apiBase.prod,authToken:c,cachedUserDetails:d}=e||{};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 ug({baseURL:o,timeout:r,retry:i,retryDelay:a,responseType:"json"}),this.fetchClient=new ug({baseURL:"",timeout:r,retry:i,retryDelay:a,responseType:"json"}),this.setAuthToken(c,{bearer:!0});const l=this.requests.request.bind(this.requests);this.requests.request=p=>u(this,null,function*(){var T,v,P,_,C;const g=t.getValue("telemetry");try{g.injectContext(this.requests.defaults.headers.common);const w=yield l(p);return p.url!==g.logsEndpoint&&this.logger.debug("xhr::fetch",{networkCall:{status:w.status,statusText:w.statusText,baseURL:p.baseURL||this.requests.defaults.baseURL,url:p.url,method:p.method}}),w}catch(w){throw w?(((T=w.config)==null?void 0:T.url)!==g.logsEndpoint&&this.logger.error("xhr::fetch",{error:w,networkCall:{status:w.status,statusText:w.statusText,baseURL:((v=w.config)==null?void 0:v.baseURL)||this.requests.defaults.baseURL,url:(P=w.config)==null?void 0:P.url,retries:(_=w.config)==null?void 0:_.retry,method:(C=w.config)==null?void 0:C.method,isOnline:navigator.onLine?"online":"offline"}}),new b(w.message||"Network request failed","0011")):new b("Unknown network error occurred","0011")}})}get peerId(){return this.context.getValue("peerId")}get logger(){return this.context.getValue("logger")}setAuthToken(t,e){const{bearer:r}=e||{};this.authToken=t,this.requests.defaults.headers.common.Authorization=r?`Bearer ${t}`:t}setHeader(t,e){this.requests.defaults.headers.common[t]=e}setRoomName(t){this.roomName=t}setRoomUUID(t){this.roomUUID=t}setOrganizationId(t){this.organizationId=t}}var YM=Object.defineProperty,QM=Object.getOwnPropertyDescriptor,cs=(s,t,e,r)=>{for(var i=r>1?void 0:r?QM(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&YM(t,e,i),i};class Gt extends zM{constructor(e,r){super(e,r);h(this,"telemetry");this.telemetry=e.getValue("telemetry"),this.setHeader("x-realtimekit-version",e.getValue("sdkVersion"))}getIPDetails(){return u(this,null,function*(){var r;const{peerId:e}=this;try{const i=yield ph.getIPDetails({peerId:e,apiHostnames:uf(this.context),logger:sf});if(this.logger.log("ipInfo",{ipInfo:i}),((r=i==null?void 0:i.loc)==null?void 0:r.length)>5)return i;throw Error("Insufficient data")}catch(i){this.logger.warn("APIClient.getIPDetails Failed to get ip details",{error:{name:i.name,message:i.message}});return}})}getICEServers(){return u(this,null,function*(){if(this.iceServers)return this.iceServers;const{success:e,iceServers:r}=(yield this.requests.get("/iceservers")).data;if(e)return(r==null?void 0:r.length)>0&&(this.iceServers=r),r})}getPlugins(){return u(this,null,function*(){var a,o,c,d,l,p,g;if(this.pluginInformation)return this.pluginInformation;const{plugins:e}=(yield this.requests.get("/v2/plugins/user")).data.data,r=((o=(a=this.context.getValue("flagsmith").getValue(ee.V1_PLUGINS))==null?void 0:a.toString())==null?void 0:o.split(","))||[],i=e.reduce((T,v)=>(T[r.includes(v.id)?"v1":"v2"].push(H(D({},v),{name:v.name.replace("v2","")})),T),{v1:[],v2:[]});return(l=(d=(c=this.context.getValue("modules"))==null?void 0:c.devTools)==null?void 0:d.plugins)!=null&&l.length&&((g=(p=this.context.getValue("modules"))==null?void 0:p.devTools)==null||g.plugins.forEach(T=>{var P,_,C;const v=H(D({},ao),{tags:[...ao.tags],baseUrl:`http://localhost:${T.port}`,name:T.name,picture:(P=T.picture)!=null?P:ao.picture,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),id:T.id,organizationId:this.organizationId,description:(_=T.description)!=null?_:ao.description,staggered:(C=T.staggered)!=null?C:ao.staggered});i.v2.push(v)})),i.v2})}getPluginDetails(e){return u(this,null,function*(){const{plugin:r}=(yield this.requests.get(`/v2/plugins/view/${e}`)).data.data;return r})}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 r={peerId:this.peerId},{token:i}=(yield this.requests.post(`/v2/plugins/authorize/${e}`,r)).data.data;return i})}getPresignedUrls(e,r){return u(this,null,function*(){const i=xa(this.context,"chat_upload_expiry"),a={roomUUID:this.roomUUID,filename:e,expiry:typeof i=="number"?i:void 0};this.context.getValue("flagsmith").hasFeature(ee.FEAT_CHAT_SDK)&&(a.viewType=r);const{getLocation:o,putLocation:c}=(yield this.requests.post("/v1/meetings/genPreSignedUploadUrl",a)).data.data;return{getLocation:o,putLocation:c}})}uploadFile(e,r){return u(this,null,function*(){if(navigator.isReactNative&&"uri"in e)try{yield fetch(r,{method:"PUT",headers:{"Content-Type":"application/octet-stream"},body:{uri:e.uri,name:e.name}})}catch(i){this.logger.error(`sendFileMessage::${i}`)}else yield this.fetchClient.put(r,e,{headers:{"Content-Type":e.type}})})}startLivestreaming(r){return u(this,arguments,function*({manualIngestion:e}){const i=Rs(yield this.requests.post(`/v2/meetings/${this.context.getValue("meetingId")}/livestreams`,{manual_ingest:!!e})).data.data;return{playbackUrl:i.playbackUrl,status:i.status,manualIngest:i.manualIngest,ingestionCredentials:i.streamKey?{ingestionServer:i.ingestServer,streamKey:i.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=Rs((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 Rs(e)})}startRecording(e,r){return u(this,null,function*(){return(yield this.requests.post("/v2/recordings",H(D({},If(e)),{meeting_id:this.context.getValue("meetingId"),allow_multiple_recordings:!!r}))).data.data.id})}updateRecording(e,r){return u(this,null,function*(){return this.requests.put(`v2/recordings/${e}`,{action:r})})}getActiveRecording(){return u(this,null,function*(){const{status:e,id:r}=(yield this.requests.get(`v2/recordings/active-recording/${this.context.getValue("meetingId")}`)).data.data;return{status:e,id:r}})}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(r){throw new b("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{title:r}=Rs((yield this.requests.post("v2/internals/rooms",{ip_information:e})).data.data);return{meetingTitle:r}})}}cs([E.trace("APIClient.getIPDetails")],Gt.prototype,"getIPDetails",1);cs([E.trace("APIClient.getICEServers")],Gt.prototype,"getICEServers",1);cs([E.trace("APIClient.getPlugins")],Gt.prototype,"getPlugins",1);cs([E.trace("APIClient.startLivestreaming")],Gt.prototype,"startLivestreaming",1);cs([E.trace("APIClient.stopLivestreaming")],Gt.prototype,"stopLivestreaming",1);cs([E.trace("APIClient.getActiveLivestream")],Gt.prototype,"getActiveLivestream",1);cs([E.trace("APIClient.getUserDetails")],Gt.prototype,"getUserDetails",1);cs([E.trace("APIClient.startRecording")],Gt.prototype,"startRecording",1);cs([E.trace("APIClient.stopRecording")],Gt.prototype,"updateRecording",1);cs([E.trace("APIClient.getActiveRecording")],Gt.prototype,"getActiveRecording",1);cs([E.trace("APIClient.getActiveTranscript")],Gt.prototype,"getActiveTranscript",1);cs([E.trace("APIClient.getRoomNodeData")],Gt.prototype,"getRoomNodeData",1);let Nu;function XM(s,t){return Nu=new Gt(s,t),Nu}function dt(){return Nu}function ZM(s,t){return`<blockquote>${t.replace(/<blockquote>[.\s\S]*<\/blockquote>\n\n/m,"")}</blockquote>
6
6
 
7
7
  ${s}`}const Ba={maxInvocations:5,period:1};function Mt(s,t){return function(e,r,i){const a=i.value;let o=0,c=Date.now();return i.value=function(...d){const l=Date.now(),p=t?this[t]:s;if(l-c>p.period*1e3&&(c=l,o=0),o>=p.maxInvocations)throw new b(`Method rate limit ${p.maxInvocations} invocations/${p.period}sec exceeded`,"0013");return o+=1,a.apply(this,d)},i}}var e0=Object.defineProperty,t0=Object.getOwnPropertyDescriptor,ht=(s,t,e,r)=>{for(var i=r>1?void 0:r?t0(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&e0(t,e,i),i};const s0=["text","image","file","custom","poll"],ld={maxInvocations:180,period:60};var Z,fi,$e,Ti,vi,Vd,Af,Oo,Lu,Ig;let ze=(Ig=class extends jt{constructor(t,e,r,i,a){const o=t.getValue("logger");super(o);m(this,Vd);m(this,Oo);h(this,"messages");h(this,"channels",[]);m(this,Z,void 0);m(this,fi,void 0);m(this,$e,void 0);m(this,Ti,void 0);m(this,vi,void 0);h(this,"maxTextLimit",2e3);f(this,vi,t),f(this,$e,e),f(this,Ti,r),f(this,Z,i),f(this,fi,a),this.messages=[]}get telemetry(){return n(this,vi).getValue("telemetry")}setMaxTextLimit(t){this.maxTextLimit=t}sendMessageInternal(a,o,c){return u(this,arguments,function*(t,e,r,i={}){switch(t.type){case"text":{const d=i.replyTo&&i.replyTo.type==="text"?ZM(t.message,i.replyTo.message):t.message;yield this.sendTextMessageInternal(d,e,r);break}case"image":yield this.sendImageMessageInternal(t.image,e,r);break;case"file":yield this.sendFileMessageInternal(t.file,e,r);break;default:this.logger.error("sendMessage::message_type_not_supported",{chat:{messageType:t.type}});break}})}sendTextMessageInternal(t,e,r){return u(this,null,function*(){var a,o,c,d,l,p;if(t.length>this.maxTextLimit)throw new b("Max character limit breached","0503");if(e&&e.length>0){if(!((a=n(this,Z).permissions)!=null&&a.chatPrivate.canSend)||!((o=n(this,Z).permissions)!=null&&o.chatPrivate.text))throw this.logger.error("sendTextMessage::private_chat_permission_denied"),new b("Could not send message to private chat.","0501")}else if(!((d=(c=n(this,Z).permissions)==null?void 0:c.chatPublic)!=null&&d.canSend)||!((p=(l=n(this,Z).permissions)==null?void 0:l.chatPublic)!=null&&p.text))throw this.logger.error("sendTextMessage::public_chat_permission_denied"),new b("Could not send message to public chat.","0501");if(!t)throw this.logger.error("sendTextMessage::message_can_not_be_empty"),new b("Message can not be empty.","0502");if(r){n(this,$e).sendMessageToChannel(t,Et.TEXT,r);return}let i=[];e&&e.length>0&&(e.push(n(this,Z).id),i=n(this,fi).joined.toArray().filter(g=>e.includes(g.id)).map(g=>g.userId),i.push(n(this,Z).userId)),n(this,$e).sendMessage(t,Et.TEXT,e)})}sendImageMessageInternal(t,e,r){return u(this,null,function*(){var a,o,c,d,l,p;if(e&&e.length>0){if(!((a=n(this,Z).permissions)!=null&&a.chatPrivate.canSend)||!((o=n(this,Z).permissions)!=null&&o.chatPrivate.files)){this.logger.error("sendImageMessage::private_chat_permission_denied");return}}else if(!((d=(c=n(this,Z).permissions)==null?void 0:c.chatPublic)!=null&&d.canSend)||!((p=(l=n(this,Z).permissions)==null?void 0:l.chatPublic)!=null&&p.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",{chat:{imageType:t.type}});return}try{const g=dt(),{getLocation:T,putLocation:v}=yield g.getPresignedUrls(t.name,n(this,Z).config.viewType);if(yield g.uploadFile(t,v),r){n(this,$e).sendMessageToChannel(T,Et.IMAGE,r);return}let P=[];e&&e.length>0&&(e.push(n(this,Z).id),P=n(this,fi).joined.toArray().filter(_=>e.includes(_.id)).map(_=>_.userId),P.push(n(this,Z).userId)),n(this,$e).sendMessage(T,Et.IMAGE,e)}catch(g){throw new b("Error sending image message.","0500",this.logger)}})}sendFileMessageInternal(t,e,r){return u(this,null,function*(){var i,a,o,c,d,l;if(e&&e.length>0){if(!((i=n(this,Z).permissions)!=null&&i.chatPrivate.canSend)||!((a=n(this,Z).permissions)!=null&&a.chatPrivate.files)){this.logger.error("sendFileMessage::private_chat_permission_denied");return}}else if(!((c=(o=n(this,Z).permissions)==null?void 0:o.chatPublic)!=null&&c.canSend)||!((l=(d=n(this,Z).permissions)==null?void 0:d.chatPublic)!=null&&l.files)){this.logger.error("sendFileMessage::permission_denied");return}if(!t){this.logger.error("sendFileMessage::required_argument_file_can_not_be_empty");return}try{const p=dt(),{getLocation:g,putLocation:T}=yield p.getPresignedUrls(t.name,n(this,Z).config.viewType);if(yield p.uploadFile(t,T),r){n(this,$e).sendMessageToChannel(JSON.stringify({link:g,name:t.name,size:"size"in t?t.size:0}),Et.FILE,r);return}let v=[];e&&e.length>0&&(e.push(n(this,Z).id),v=n(this,fi).joined.toArray().filter(_=>e.includes(_.id)).map(_=>_.userId),v.push(n(this,Z).userId));const P=JSON.stringify({link:g,name:t.name,size:"size"in t?t.size:0});n(this,$e).sendMessage(P,Et.FILE,e)}catch(p){throw new b("Error sending file message.","0500",this.logger)}})}get rateLimits(){return ld}updateRateLimits(t,e){ld.maxInvocations=t,ld.period=e}sendTextMessage(t,e){return u(this,null,function*(){return this.sendTextMessageInternal(t,e)})}sendCustomMessage(t,e){return u(this,null,function*(){var a,o,c,d,l,p,g,T,v,P,_,C,w,V,F;if(e&&e.length>0){if(!((a=n(this,Z).permissions)!=null&&a.chatPrivate.canSend)||!((o=n(this,Z).permissions)!=null&&o.chatPrivate.files)||!((c=n(this,Z).permissions)!=null&&c.chatPrivate.text)){this.logger.error("sendCustomMessage::private_chat_permission_denied");return}}else if(!((l=(d=n(this,Z).permissions)==null?void 0:d.chatPublic)!=null&&l.canSend)||!((g=(p=n(this,Z).permissions)==null?void 0:p.chatPublic)!=null&&g.files)||!((v=(T=n(this,Z).permissions)==null?void 0:T.chatPublic)!=null&&v.text)){this.logger.error("sendCustomMessage::permission_denied");return}const r=N=>u(this,null,function*(){try{if(typeof N=="string")return{link:N};const B=dt(),{getLocation:G,putLocation:re}=yield B.getPresignedUrls(N.name,n(this,Z).config.viewType);return yield B.uploadFile(N,re),{link:G,type:N.type,name:N.name,size:N.size}}catch(B){throw new b("Error sending image message.","0500",this.logger)}}),i=H(D({},t),{files:yield Promise.all((_=(P=t.files)!=null?P:[])==null?void 0:_.map(N=>u(this,null,function*(){return r(N)}))),images:yield Promise.all((w=(C=t.images)!=null?C:[])==null?void 0:w.map(N=>u(this,null,function*(){return r(N)}))),videos:yield Promise.all((F=(V=t.videos)!=null?V:[])==null?void 0:F.map(N=>u(this,null,function*(){return r(N)})))});n(this,$e).sendMessage(JSON.stringify(i),Et.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,r){return u(this,null,function*(){var i,a,o,c,d,l;if(((a=(i=n(this,Z).permissions)==null?void 0:i.chatMessage)==null?void 0:a.canEdit)==="NONE")throw new b("Not permitted to edit messages","0501");if(!((c=(o=n(this,Z).permissions)==null?void 0:o.chatPublic)!=null&&c.canSend)||!((l=(d=n(this,Z).permissions)==null?void 0:d.chatPublic)!=null&&l.text)){this.logger.error("editTextMessage::permission_denied");return}if(!e){this.logger.error("editTextMessage::message_can_not_be_empty");return}n(this,$e).editMessage(t,e,Et.TEXT,r)})}editImageMessage(t,e,r){return u(this,null,function*(){var a,o,c,d;if(!((o=(a=n(this,Z).permissions)==null?void 0:a.chatPublic)!=null&&o.canSend)||!((d=(c=n(this,Z).permissions)==null?void 0:c.chatPublic)!=null&&d.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",{chat:{imageType:e.type}});return}try{const l=dt(),{getLocation:p,putLocation:g}=yield l.getPresignedUrls(e.name,n(this,Z).config.viewType);yield l.uploadFile(e,g),n(this,$e).editMessage(t,p,Et.IMAGE,r)}catch(l){throw new b("Error editing image message.","0500",this.logger)}})}editFileMessage(t,e,r){return u(this,null,function*(){var i,a,o,c;if(!((a=(i=n(this,Z).permissions)==null?void 0:i.chatPublic)!=null&&a.canSend)||!((c=(o=n(this,Z).permissions)==null?void 0:o.chatPublic)!=null&&c.files)){this.logger.error("sendFileMessage::permission_denied");return}if(!e){this.logger.error("sendFileMessage::required_argument_file_can_not_be_empty");return}try{const d=dt(),{getLocation:l,putLocation:p}=yield d.getPresignedUrls(e.name,n(this,Z).config.viewType);yield d.uploadFile(e,p),n(this,$e).editMessage(t,JSON.stringify({link:l,name:e.name,size:"size"in e?e.size:0}),Et.FILE,r)}catch(d){throw new b("Error editing file message.","0500",this.logger)}})}editMessage(t,e,r){return u(this,null,function*(){switch(e.type){case"text":{this.editTextMessage(t,e.message,r);break}case"image":{this.editImageMessage(t,e.image,r);break}case"file":{this.editFileMessage(t,e.file,r);break}default:{this.logger.error("editMessage::message_type_not_supported",{chat:{messageType:e.type}});break}}})}deleteMessage(t,e){return u(this,null,function*(){var r,i;if(((i=(r=n(this,Z).permissions)==null?void 0:r.chatMessage)==null?void 0:i.canDelete)==="NONE")throw new b("Not permitted to delete messages","0501");n(this,$e).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(!n(this,Oo,Lu))throw new b("Can`t pin message without joining room","0505");if(!n(this,Z).permissions.pinParticipant)throw new b("You do not have permission to pin messages.","0501");const e=this.messages.find(r=>r.id===t);if(e){n(this,$e).setPinState(e,!0);return}throw new b(`No message found with id: ${t}`,"0504")})}unpin(t){return u(this,null,function*(){if(!n(this,Oo,Lu))throw new b("Can`t unpin message without joining room","0505");if(!n(this,Z).permissions.pinParticipant)throw new b("You do not have permission to unpin messages.","0501");const e=this.messages.find(r=>r.id===t);if(e){n(this,$e).setPinState(e,!1);return}throw new b(`No message found with id: ${t}`,"0504")})}getMessages(t,e,r,i=0,a=void 0){return u(this,null,function*(){const o=yield n(this,$e).getChatMessagesPaginated(t,e,r,i,a);return{messages:o.messages.map(c=>ws.formatSocketPeerMessage(c)),next:o.next}})}createChannel(i,a){return u(this,arguments,function*(t,e,r={}){var l;const o=(l=n(this,Z).permissions)==null?void 0:l.chatChannel;if(o){if(o.canCreate==="NONE")throw new b("Not permitted to create channels","0501");if(r.visibility==="public"&&!(o.canCreate==="PUBLIC"||o.canCreate==="ALL"))throw new b("Not permitted to create public channels","0501");if(r.visibility==="private"&&!(o.canCreate==="PRIVATE"||o.canCreate==="ALL"))throw new b("Not permitted to create private channels","0501")}if(!t||t.trim().length===0)throw new b("channel name cannot be empty.","0510");const c=[...new Set([...e,n(this,Z).userId])];return yield n(this,Ti).createChannel(t.trim(),c,r.displayPictureUrl,r.visibility,r.isDirectMessage)})}updateChannel(t,e){var o,c,d,l,p;const r=this.channels.find(g=>g.id===t),i=(o=n(this,Z).permissions)==null?void 0:o.chatChannel;if(i){if(i.canUpdate==="NONE")throw new b("Not permitted to update channels","0501");if(r.visibility==="public"&&!(i.canUpdate==="PUBLIC"||i.canUpdate==="ALL"))throw new b("Not permitted to update public channels","0501");if(r.visibility==="private"&&!(i.canUpdate==="PRIVATE"||i.canUpdate==="ALL"))throw new b("Not permitted to update private channels","0501")}const a={memberIds:(c=e.memberIds)!=null?c:r.memberIds,displayName:(d=e.displayName)!=null?d:r.displayName,displayPictureUrl:(l=e.displayPictureUrl)!=null?l:r.displayPictureUrl,visibility:(p=e.visibility)!=null?p:r.visibility};return n(this,Ti).updateChannel(t,a)}sendMessageToChannel(i,a){return u(this,arguments,function*(t,e,r={}){return this.sendMessageInternal(t,null,e,r)})}getChannelMembers(t){return u(this,null,function*(){return n(this,Ti).getChannelMembers(t)})}searchMessages(r){return u(this,arguments,function*(t,e={}){if(!n(this,vi).getValue("flagsmith").hasFeature(ee.FEAT_CHAT_SDK_SEARCH))throw new b("searchMessages is temporarily disabled!","0506");return(yield n(this,$e).searchMessages(t,e)).map(ws.formatSocketPeerMessage)})}markLastReadMessage(t,e){return u(this,null,function*(){yield n(this,$e).markLastReadMessage(t,e);const r=this.channels.find(i=>i.id===t);if(r){const i=H(D({},r),{unreadCount:0});this.channels=this.channels.map(a=>a.id===t?i:a),this.emit("channelMessageUpdate",i)}})}get pinned(){return this.messages.filter(t=>t.pinned)}},Z=new WeakMap,fi=new WeakMap,$e=new WeakMap,Ti=new WeakMap,vi=new WeakMap,Vd=new WeakSet,Af=function(){return n(this,vi).getValue("connectionHandler")},Oo=new WeakSet,Lu=function(){return n(this,Vd,Af).socketJoined===!0},Ig);ht([E.trace("Chat.sendTextMessage"),Mt(ld)],ze.prototype,"sendTextMessage",1);ht([E.trace("Chat.sendImageMessage"),Mt({maxInvocations:20,period:60})],ze.prototype,"sendImageMessage",1);ht([E.trace("Chat.sendFileMessage"),Mt({maxInvocations:20,period:60})],ze.prototype,"sendFileMessage",1);ht([E.trace("Chat.sendMessage"),Mt({maxInvocations:180,period:60})],ze.prototype,"sendMessage",1);ht([E.trace("Chat.editTextMessage")],ze.prototype,"editTextMessage",1);ht([E.trace("Chat.editImageMessage")],ze.prototype,"editImageMessage",1);ht([E.trace("Chat.editFileMessage")],ze.prototype,"editFileMessage",1);ht([E.trace("Chat.editMessage")],ze.prototype,"editMessage",1);ht([E.trace("Chat.deleteMessage")],ze.prototype,"deleteMessage",1);ht([E.trace("Chat.createChannel")],ze.prototype,"createChannel",1);ht([E.trace("Chat.updateChannel")],ze.prototype,"updateChannel",1);ht([E.trace("Chat.sendMessageToChannel")],ze.prototype,"sendMessageToChannel",1);ht([E.trace("Chat.getChannelMembers")],ze.prototype,"getChannelMembers",1);ht([E.trace("Chat.searchMessages")],ze.prototype,"searchMessages",1);ht([E.trace("Chat.markLastReadMessage")],ze.prototype,"markLastReadMessage",1);ze=ht([ut("0500")],ze);var r0=Object.defineProperty,i0=Object.getOwnPropertyDescriptor,n0=(s,t,e,r)=>{for(var i=r>1?void 0:r?i0(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&r0(t,e,i),i},yi,Ag;const ai=(Ag=class{constructor(s,t,e,r,i){h(this,"chat");h(this,"chatSocketHandler");h(this,"chatChannelSocketHandler");h(this,"self");m(this,yi,void 0);f(this,yi,s),this.chatSocketHandler=t,this.chatChannelSocketHandler=e,this.chat=new ze(s,t,e,r,i),this.self=r,this.setupEvents()}get telemetry(){return n(this,yi).getValue("telemetry")}get logger(){return n(this,yi).getValue("logger")}static init(s,t,e,r,i){return u(this,null,function*(){return new ai(s,t,e,r,i)})}static formatMessage(s){return H(D({},s),{time:new Date(s.time),type:s0[s.type]})}static formatSocketPeerMessage(s){const t=s.createdAt*1e3,e={displayName:s.displayName,id:s.chatId,time:t,timeMs:s.createdAtMs,type:s.payloadType,isEdited:s.isEdited,userId:s.userId,targetUserIds:s.targetUserIds,channelId:s.channelId,channelIndex:s.channelIndex,message:"",link:"",name:"",html:"",images:[],videos:[],files:[],size:0,pinned:s.pinned};switch(e.type){case Et.TEXT:{e.message=s.payload;break}case Et.IMAGE:{e.link=s.payload;break}case Et.FILE:{const{link:r,name:i,size:a}=JSON.parse(s.payload);e.link=r,e.name=i,e.size=a;break}case Et.CUSTOM:{const{html:r,images:i,message:a,videos:o,files:c}=JSON.parse(s.payload);e.message=a,e.html=r,e.images=i,e.videos=o,e.files=c;break}}return ai.formatMessage(e)}getChatMessages(){return u(this,null,function*(){if(this.self.config.viewType==="LIVESTREAM")return;const s=yield this.chatSocketHandler.getChatMessages();if(!(s!=null&&s.payload))return;const t=wf.fromBinary(s.payload).messages;this.chat.messages=t.map(e=>ai.formatSocketPeerMessage(e))})}setupEvents(){n(this,yi).getValue("peerSessionStore").on(k.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){this.getChatMessages()})),this.chatSocketHandler.on(Re.sendMessageToRoom,s=>{const t=ai.formatSocketPeerMessage(s.message);if(!t.channelId)this.chat.messages=[...this.chat.messages,t];else{const e=this.chat.channels.find(r=>r.id===t.channelId);e&&(e.latestMessage=t,e.unreadCount+=1,this.chat.emit("channelMessageUpdate",e))}this.chat.emit("chatUpdate",{action:"add",message:t,messages:this.chat.messages})}),this.chatSocketHandler.on(Re.sendMessageToPeers,s=>{const t=ai.formatSocketPeerMessage(s.message);this.chat.messages=[...this.chat.messages,t],this.chat.emit("chatUpdate",{action:"add",message:t,messages:this.chat.messages})}),this.chatSocketHandler.on(Re.editMessage,s=>{const t=ai.formatSocketPeerMessage(s.message);if(t.channelId){this.chat.emit("chatUpdate",{action:"edit",message:t,messages:this.chat.messages});return}const e=this.chat.messages.findIndex(r=>r.id===t.id);e!==-1&&(this.chat.messages[e]=t,this.chat.emit("chatUpdate",{action:"edit",message:t,messages:this.chat.messages}))}),this.chatSocketHandler.on(Re.deleteMessage,s=>{if(s.channelId){this.chat.emit("chatUpdate",{action:"delete",message:{id:s.chatId,channelId:s.channelId},messages:this.chat.messages});return}const t=this.chat.messages.findIndex(r=>r.id===s.chatId);if(t===-1)return;const[e]=this.chat.messages.splice(t,1);this.chat.emit("chatUpdate",{action:"delete",message:e,messages:this.chat.messages})}),this.chatChannelSocketHandler.on(ui.createChatChannel,s=>{const[t]=s.chatChannels,e=dn.formatChannel(t);this.chat.channels.push(e),this.chat.emit("channelCreate",e)}),this.chatSocketHandler.on(Re.pinMessage,s=>{const t=this.chat.messages.findIndex(r=>r.id===s.chatId);if(t===-1)return;const e=this.chat.messages[t];e.pinned=s.pinned,this.chat.messages[t]=e,this.chat.emit("chatUpdate",{action:"edit",message:e,messages:this.chat.messages})}),this.chatChannelSocketHandler.on(ui.updateChatChannel,s=>{const[t]=s.chatChannels,e=dn.formatChannel(t);this.chat.channels=this.chat.channels.map(r=>r.id===e.id?e:r),this.chat.emit("channelUpdate",e)})}},yi=new WeakMap,Ag);let ws=ai;n0([E.trace("ChatController.setupEvents")],ws.prototype,"setupEvents",1);var a0=Object.defineProperty,o0=Object.getOwnPropertyDescriptor,c0=(s,t,e,r)=>{for(var i=r>1?void 0:r?o0(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&a0(t,e,i),i},xd,Mf,Ud,Df,Fn,Bn,No,Mg;let Vu=(Mg=class extends jt{constructor(t,e,r){const i=t.getValue("logger");super(i);m(this,xd);m(this,Ud);h(this,"items");m(this,Fn,void 0);m(this,Bn,void 0);m(this,No,void 0);f(this,No,t),f(this,Fn,e),f(this,Bn,r),this.items=[]}create(t,e,r=!1,i=!1){return u(this,null,function*(){if(!n(this,Ud,Df))throw new b("Can't create polls without joining room","0705");if(!n(this,Fn).permissions.polls.canCreate){this.logger.error("Polls::create::permission_denied");return}if(!t||!e){this.logger.error("Polls::question_and_options_can_not_be_empty",{polls:{hasQuestion:!!t,optionsLength:e==null?void 0:e.length}});return}if(e.length<2){this.logger.error("Polls::there_must_be_at_least_two_options",{polls:{hasQuestion:!!t,optionsLength:e.length}});return}yield n(this,Bn).createPoll(t,e,r,i)})}vote(t,e){return u(this,null,function*(){if(!n(this,Fn).permissions.polls.canVote){this.logger.error("Polls::vote::permission_denied");return}yield n(this,Bn).votePoll(t,e)})}},xd=new WeakSet,Mf=function(){return n(this,No).getValue("connectionHandler")},Ud=new WeakSet,Df=function(){var t;return((t=n(this,xd,Mf))==null?void 0:t.socketJoined)===!0},Fn=new WeakMap,Bn=new WeakMap,No=new WeakMap,Mg);Vu=c0([ut("0700")],Vu);var d0=Object.defineProperty,l0=Object.getOwnPropertyDescriptor,u0=(s,t,e,r)=>{for(var i=r>1?void 0:r?l0(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&d0(t,e,i),i},Or,Hn,Si,Dg;const Sn=(Dg=class{constructor(s,t,e){h(this,"polls");m(this,Or,void 0);m(this,Hn,void 0);m(this,Si,void 0);this.polls=new Vu(s,t,e),f(this,Hn,t),f(this,Or,s),f(this,Si,e),this.setupEvents()}get telemetry(){return n(this,Or).getValue("telemetry")}get logger(){return n(this,Or).getValue("logger")}static init(s,t,e){return u(this,null,function*(){return new Sn(s,t,e)})}canViewPolls(){return n(this,Hn).permissions.polls.canView}setupEvents(){const s={[Ws.createPoll]:r=>{r.poll&&this.updatePoll(Sn.formatSocketServicePoll(r.poll))},[Ws.updatePoll]:r=>{r.poll&&this.updatePoll(Sn.formatSocketServicePoll(r.poll))},[Ws.votePoll]:r=>{r.poll&&this.updatePoll(Sn.formatSocketServicePoll(r.poll))}},t=()=>{n(this,Or).getValue("peerSessionStore").on(k.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(s).map(Number).forEach(r=>{n(this,Si).on(r,s[r])})},e=()=>{n(this,Or).getValue("peerSessionStore").on(k.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(s).map(Number).forEach(r=>{n(this,Si).removeListeners(r)})};n(this,Hn).permissions.on("permissionsUpdate",r=>u(this,null,function*(){var i;r!=null&&r.polls&&((i=r==null?void 0:r.polls)!=null&&i.canView?(yield this.getPolls(),t()):(this.polls.items=[],e()))})),this.canViewPolls()&&t()}updatePoll(s){if(!this.canViewPolls())return;const t=this.polls.items.findIndex(e=>e.id===s.id);if(t>-1){const e=JSON.stringify(this.polls.items[t]);this.polls.items[t]=s,e!==JSON.stringify(s)&&this.polls.emit("pollsUpdate",{polls:this.polls.items,newPoll:!1});return}this.polls.items=[...this.polls.items,s],this.polls.emit("pollsUpdate",{polls:this.polls.items,newPoll:!0})}getPolls(){return u(this,null,function*(){const s=yield n(this,Si).getPolls();if(!(s!=null&&s.payload))return;const{polls:t}=PM.fromBinary(s.payload);this.polls.items=t.map(e=>Sn.formatSocketServicePoll(e))})}static formatSocketServicePoll(s){const t=s.options.map(e=>({count:e.count,text:e.text,votes:e.votes.map(r=>({id:r.userId,name:r.name}))}));return{anonymous:s.anonymous,createdBy:s.createdBy,createdByUserId:s.createdByUserId,hideVotes:s.hideVotes,id:s.pollId,options:t,question:s.question,voted:s.votes}}},Or=new WeakMap,Hn=new WeakMap,Si=new WeakMap,Dg);let Of=Sn;u0([E.trace("PollController.setupEvents")],Of.prototype,"setupEvents",1);var h0=Object.defineProperty,p0=Object.getOwnPropertyDescriptor,g0=(s,t,e,r)=>{for(var i=r>1?void 0:r?p0(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&h0(t,e,i),i},Nf=(s=>(s[s.User=0]="User",s[s.Meeting=1]="Meeting",s))(Nf||{}),qn,Lo,Uu,Ei,Vo,Og;let xu=(Og=class extends jt{constructor(t,e,r,i,a){const o=t.getValue("logger");super(o);m(this,Lo);h(this,"selfActiveTab");h(this,"broadcastTabChanges");m(this,qn,void 0);m(this,Ei,void 0);m(this,Vo,void 0);h(this,"viewType");h(this,"meetingStartedTimestamp");h(this,"meetingTitle");h(this,"sessionId");f(this,qn,t),f(this,Ei,e),this.viewType=r,f(this,Vo,i),this.meetingTitle=a,this.broadcastTabChanges=e.permissions.canSpotlight}get socketState(){return n(this,Lo,Uu).socketState}get mediaState(){return n(this,Lo,Uu).mediaState}get meetingId(){return n(this,qn).getValue("meetingId")}setBroadcastTabChanges(t){if(!n(this,Ei).permissions.canSpotlight)throw this.logger.error("Spotlight::setSpotlighted::permission_denied"),new b("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 r;this.logger.info("Spotlight::setActiveTab",{spotlight:{currentTab:{id:t.id,type:t.type}}}),this.selfActiveTab=t,e===0&&this.emit("selfTabUpdate",t),(r=n(this,Ei).permissions)!=null&&r.canSpotlight&&this.broadcastTabChanges&&e===0&&this.assertActiveTabToRoom()}assertActiveTabToRoom(){n(this,Vo).broadcastMessage("spotlight",{userId:n(this,Ei).userId,currentTab:this.selfActiveTab})}},qn=new WeakMap,Lo=new WeakSet,Uu=function(){return n(this,qn).getValue("connectionHandler")},Ei=new WeakMap,Vo=new WeakMap,Og);xu=g0([ut("0800")],xu);function m0(s){let t="",e=[""];const r=[e];let i=0,a=0,o=!0,c;for(c of s)c==='"'?(o&&c===t&&(e[i]+=c),o=!o):c===","&&o?c=e[++i]="":c===`
@@ -12,4 +12,4 @@ ${s}`}const Ba={maxInvocations:5,period:1};function Mt(s,t){return function(e,r,
12
12
  maxEnergy: ${n(this,Jr)}`),i===-1/0||e<1e-6?{energy:0,isVoice:!1}:((!n(this,cr)||i<n(this,cr))&&f(this,cr,i),(!n(this,Jr)||i>n(this,Jr))&&f(this,Jr,i),{energy:(i-n(this,cr))/(n(this,Jr)-n(this,cr))*10||0,isVoice:r})},_c=new WeakSet,th=function(t){return t<5},ml=new WeakSet,ST=function(t=n(this,Wi)){var r;if(!n(this,Ss)||!t){n(this,dr).getValue("flagsmith").hasFeature(ee.ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS)&&this.logger.debug(`AudioActivityReporter: No producerId or energy to report: ${n(this,Ss)}`);return}const e={producerId:n(this,Ss),energy:Math.round(t),silent:U(r=wo,_c,th).call(r,t)};f(this,Ma,e.silent),this.reportRequest(e)},fl=new WeakSet,ET=function(t){const e=Math.log10(t);return Math.round(e)},m(fo,_c),m(fo,fl);const nO=(s=!1)=>{if("MediaStreamTrackGenerator"in window&&"AudioData"in window)try{const e=new window.MediaStreamTrackGenerator({kind:"audio"}),r=e.writable.getWriter(),i=48e3,a=128,o=1;let c=0,d=null;const l=()=>u(exports,null,function*(){try{const T=new Float32Array(a*o),v=new window.AudioData({format:"f32",sampleRate:i,numberOfFrames:a,numberOfChannels:o,timestamp:c,data:T});c+=a/i*1e6,yield r.ready,yield r.write(v)}catch(T){d&&clearInterval(d),r.releaseLock(),e.writable.abort()}});d=window.setInterval(l,100);const g=new MediaStream([e]).getAudioTracks()[0];return g.addEventListener("ended",()=>{d&&clearInterval(d),r.releaseLock(),e.writable.abort()}),Object.assign(g,{fakeTracks:"fakeTracks:fakeAudioTrack"}),g.enabled=s,g}catch(e){}const t=window.AudioContext||window.webkitAudioContext;if(t)try{const e=new t;if(!e||e.state!=="running"||!e.destination)return;const r=e.createOscillator();r.frequency.value=0,r.type="sine";const i=e.createGain();i.gain.value=0,r.connect(i);const a=e.createMediaStreamDestination();i.connect(a),r.start();const o=a.stream.getAudioTracks()[0];return o?(Object.assign(o,{fakeTracks:"fakeTracks:fakeAudioTrack"}),o.enabled=s,o):void 0}catch(e){return}},aO=(s=!1)=>{var a,o;const t=new MediaStream().getVideoTracks()[0],e=document.createElement("canvas");e.height=(a=t==null?void 0:t.getSettings().height)!=null?a:720,e.width=(o=t==null?void 0:t.getSettings().width)!=null?o:1280;const r=e.getContext("2d");r.fillStyle="black",r.fillRect(0,0,e.width,e.height),setInterval(()=>{r.fillStyle="black",r.fillRect(0,0,e.width,e.height)},1e3);const i=e.captureStream().getVideoTracks()[0];return Object.assign(i,{fakeTracks:"fakeTracks:fakeVideoTrack"}),i.enabled=s,i};var oO=Object.defineProperty,cO=Object.getOwnPropertyDescriptor,de=(s,t,e,r)=>{for(var i=r>1?void 0:r?cO(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&oO(t,e,i),i};const Ot=["video/VP9","video/VP8"];var Cc,wc,ct,W,Da,vt,Ji,Ki,zi,Rc,is,ur,bc,Yi,Qi,yt,bt,Kr,Pn,Tl,_T,vl,CT,yl,wT,kc,sh,Sl,mu,RT,El,bT,Pl,kT,_l,IT,Ze,pt,Xi,To,Cl,AT,wl,MT,Rl,DT;const PT=(mu=class{constructor(s,t){m(this,Kr);m(this,Tl);m(this,vl);m(this,yl);m(this,kc);m(this,El);m(this,Pl);m(this,_l);m(this,Ze);m(this,Xi);m(this,Cl);m(this,wl);m(this,Rl);h(this,"context");h(this,"authToken");h(this,"e2ee");m(this,Cc,void 0);m(this,wc,void 0);m(this,ct,void 0);m(this,W,void 0);m(this,Da,void 0);m(this,vt,void 0);m(this,Ji,void 0);m(this,Ki,void 0);m(this,zi,void 0);m(this,Rc,void 0);m(this,is,null);m(this,ur,void 0);m(this,bc,void 0);m(this,Yi,void 0);m(this,Qi,void 0);m(this,yt,void 0);m(this,bt,void 0);var r,i;this.context=s;const{socket:e}=t;this.mediaJoined=!1,f(this,Yi,new Map([["video/VP9",new Set],["video/VP8",new Set]])),f(this,Qi,new Map([["video/VP9",new Set],["video/VP8",new Set]])),f(this,ct,e),f(this,Ji,!1),f(this,W,new tO(s,e)),f(this,vt,n(this,W).events),f(this,ur,new Set),f(this,yt,new Map),f(this,Ki,!1),f(this,zi,new Ju(s.getValue("logger"))),f(this,bt,new fo(this.context,n(this,W).socketHandler.audioActivity.bind(n(this,W).socketHandler))),this.e2ee=(i=(r=s.getValue("modules").e2ee)==null?void 0:r.enabled)!=null?i:!1,this.handleSocketEvents(),this.handleCallstatsEvents(),f(this,Rc,kh(()=>u(this,null,function*(){if(!n(this,Kr,Pn).mediaJoinAttempted)return;const{roomJoined:a}=yield this.joinRoom(n(this,wc),n(this,Cc),!0,!0);a&&(this.context.getValue("peerSessionStore").emit(k.RESET_PRODUCER_STATE),this.context.getValue("peerSessionStore").emit(k.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 n(this,Kr,Pn).mediaJoined}set mediaJoined(s){n(this,Kr,Pn).mediaJoined=s}reset(){n(this,W).closeAllProducers(),n(this,W).closeAllConsumers(),n(this,yt).clear(),n(this,ur).clear(),f(this,is,null),n(this,zi).stop(),n(this,W).stopAllTransports(),n(this,W).reset(),f(this,zi,new Ju)}joinRoom(a,o){return u(this,arguments,function*(s,t,e=!1,r=!1,i={}){n(this,Kr,Pn).mediaJoinAttempted=!0,f(this,Ji,!0),e&&this.reset();try{return yield n(this,zi).push(()=>U(this,Tl,_T).call(this,s,t,r,i),"joinRoom")}catch(c){return this.logger.error("Error in room joining process",{error:c}),this.context.getValue("peerSessionStore").emit(k.ROOM_NODE_FAILED),{roomJoined:!1}}})}initializeConnection(i,a){return u(this,arguments,function*(s,t,e=!1,r={}){return n(this,is)?n(this,is):(f(this,is,(()=>u(this,null,function*(){try{yield U(this,kc,sh).call(this,s,t,e,r)}catch(o){throw f(this,is,null),o}}))()),n(this,is))})}getConsumers(){return n(this,W).consumers}getProducers(){return n(this,W).producers}leaveRoom(){return u(this,null,function*(){n(this,W).stopAllTransports(),f(this,Ki,!1),n(this,Kr,Pn).mediaJoinAttempted=!1;const s={closeRoom:!1};n(this,ct).sendMessagePromise(n(this,vt).leaveRoom,cR.toBinary(s)).then(e=>{var r;(r=YR.fromBinary(e.payload))!=null&&r.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(s){return u(this,null,function*(){return this.createConsumers(s)})}createConsumers(s){return u(this,null,function*(){return s.length===0?Promise.resolve():n(this,W).createConsumers(s)})}closeConsumers(s){return u(this,null,function*(){if(!s.length)return;const t=s.reduce((e,r)=>{const i=n(this,W).producerIdToConsumerIdMap.get(r.producerId);return i?(e.push(i),e):(this.logger.warn(`consumer not found in close consumers: ${r.producerId}`),e)},[]);yield n(this,W).closeConsumers(t)})}_shareWebcam(s,t){return u(this,null,function*(){var g,T;const e=t==="video/VP9"?he.WEBCAM:he.WEBCAM_BACKUP,r=U(this,Ze,pt).call(this,e);if(r){const v=yield r;if(n(this,W).producers.has(v)){const P=n(this,W).producers.get(v);if(!P.closed)return yield P.replaceTrack({track:s}),yield this.resumeWebcam(e),s;yield this.disableWebcam(t)}return this._shareWebcam(s,t)}const i=[t].concat(Ot.filter(v=>v!==t)),a=U(this,Rl,DT).call(this,s,i),o=xa(this.context,"disableSimulcast"),c=(T=(g=this.context)==null?void 0:g.getValue("overrides"))==null?void 0:T.simulcastConfig;!(o||c&&c.disable)&&this.context.getValue("flagsmith").hasFeature(ee.ENABLE_CF_SIMULCAST)?(this.logger.info("Simulcast enabled for SFU: CF"),a.encodings=J0(this.context,s)):this.logger.info("Simulcast disabled for webcam producer, SFU: CF"),this.context.getValue("flagsmith").hasFeature(ee.TRACK_HINT)&&(a.track.contentHint=this.context.getValue("flagsmith").getValue(ee.TRACK_HINT));const l=()=>{this.logger.info("Disabling video due to the producer closure"),n(this,yt).delete(e)},p=n(this,W).createProducer(a,l);return U(this,Xi,To).call(this,e,p.then(v=>v.id)),p.then(v=>v.track)})}shareWebcam(s){return u(this,null,function*(){var r;if(s===void 0)return null;const t=(r=this.context.getValue("flagsmith").getValue(ee.FORCE_VIDEO_CODEC))==null?void 0:r.toString();if(t)return this.logger.debug(`Calling _shareWebcam with forced video codec: ${t}`),this._shareWebcam(s,t);const e=Ot.filter(i=>{var a,o;return((o=(a=n(this,Da).sender)==null?void 0:a.video)==null?void 0:o.codecs.findIndex(c=>c.mimeType===i))>=0&&n(this,Qi).get(i).size>0});return e.length===0&&e.push(Ot[0]),yield Promise.all(e.map(i=>(this.logger.debug(`Calling _shareWebcam with video codec: ${i}`),this._shareWebcam(s,i)))),s})}shareScreen(s){return u(this,null,function*(){const{video:t,audio:e}=s;if(t===void 0)return;const r={track:t,codecOptions:[{name:"VP8"}],appData:{screenShare:!0,e2ee:this.e2ee,supportsRemoteControl:Se.isElectron()},stopTracks:!1},i=()=>{this.logger.info("Disabling screenShare due to the producer closure"),n(this,yt).delete(he.SCREENSHARE_VIDEO),n(this,yt).delete(he.SCREENSHARE_AUDIO)},a=n(this,W).createProducer(r,i);U(this,Xi,To).call(this,he.SCREENSHARE_VIDEO,a.then(c=>c.id));let o;if(e){const c={track:e,codecOptions:[{name:"opus"}],appData:{screenShare:!0,e2ee:this.e2ee,supportsRemoteControl:Se.isElectron()},stopTracks:!1,zeroRtpOnPause:!1},d=()=>{};o=n(this,W).createProducer(c,d),U(this,Xi,To).call(this,he.SCREENSHARE_AUDIO,o.then(l=>l.id))}yield Promise.all([a,o||Promise.resolve()]),this.context.getValue("callstats").screenShareStart()})}shareMic(s){return u(this,null,function*(){try{if(s===void 0)throw new It("track undefined");const t=U(this,Ze,pt).call(this,he.MIC);if(t){const a=yield t;if(n(this,W).producers.has(a)){const o=n(this,W).producers.get(a);if(!o.closed){yield o.replaceTrack({track:s}),yield this.resumeMic(),n(this,bt)&&(n(this,bt).audioTrack=s,n(this,bt).producerId=a,n(this,bt).start());return}yield n(this,W).closeProducer(a,{stopTrack:!1})}yield this.shareMic(s);return}const e=U(this,wl,MT).call(this,s),r=()=>{n(this,yt).delete(he.MIC)},i=n(this,W).createProducer(e,r);U(this,Xi,To).call(this,he.MIC,i.then(a=>a.id)),yield i.then(a=>{n(this,bt)&&(n(this,bt).audioTrack=a.track,n(this,bt).producerId=a.id,n(this,bt).start())})}catch(t){throw new b(t)}})}pauseMic(){return u(this,null,function*(){var r;const s=yield U(this,Ze,pt).call(this,he.MIC),t=n(this,W).producers.get(s);if(!t){this.logger.error("pauseMic::could_not_find_mic_producer");return}if(t.paused){this.logger.info("pauseMic::mic_producer_already_paused");return}t.pause(),(r=n(this,bt))==null||r.stop();const e={producerId:t.id,pause:!0};n(this,ct).sendMessage(n(this,vt).toggleProducer,Qc.toBinary(e))})}pauseWebcam(){return u(this,null,function*(){const s=yield U(this,Ze,pt).call(this,he.WEBCAM),t=yield U(this,Ze,pt).call(this,he.WEBCAM_BACKUP),e=n(this,W).producers.get(s),r=n(this,W).producers.get(t);if(!e&&!r){this.logger.error("pauseWebcam::could_not_find_webcam_producer");return}const i=a=>{const o={producerId:a.id,pause:!0};n(this,ct).sendMessage(n(this,vt).toggleProducer,Qc.toBinary(o))};e&&(e.pause(),i(e)),r&&(r.pause(),i(r))})}resumeMic(){return u(this,null,function*(){const s=yield U(this,Ze,pt).call(this,he.MIC),t=n(this,W).producers.get(s);if(!t){this.logger.error("resumeMic::could_not_find_mic_producer");return}if(!t.pause){this.logger.info("resumeMic::mic_producer_already_resumed");return}t.resume(),t.appData.e2ee&&this.context.getValue("peerSessionStore").emit(k.E2EE_ACTIVE_PRODUCER,t);const e={producerId:t.id,pause:!1};n(this,ct).sendMessage(n(this,vt).toggleProducer,Qc.toBinary(e))})}resumeWebcam(){return u(this,arguments,function*(s=he.WEBCAM){const t=yield U(this,Ze,pt).call(this,s),e=n(this,W).producers.get(t);if(!e){this.logger.error("resumeWebcam::could_not_find_webcam_producer");return}if(!e.paused){this.logger.info("resumeWebcam::webcam_producer_already_resumed");return}e.resume(),e.appData.e2ee&&this.context.getValue("peerSessionStore").emit(k.E2EE_ACTIVE_PRODUCER,e);const r={producerId:e.id,pause:!1};n(this,ct).sendMessage(n(this,vt).toggleProducer,Qc.toBinary(r))})}disableWebcam(s){return u(this,null,function*(){const t=s==="video/VP9"?he.WEBCAM:he.WEBCAM_BACKUP,e=yield U(this,Ze,pt).call(this,t);U(this,Cl,AT).call(this,t),e&&(yield n(this,W).closeProducer(e))})}disableMic(){return u(this,null,function*(){var t;const s=yield U(this,Ze,pt).call(this,he.MIC);s&&(yield n(this,W).closeProducer(s)),(t=n(this,bt))==null||t.stop(),n(this,yt).delete(he.MIC)})}disableScreenShare(){return u(this,null,function*(){this.logger.info("screen_sharing_stopped"),this.context.getValue("callstats").screenShareStop();const s=yield U(this,Ze,pt).call(this,he.SCREENSHARE_VIDEO),t=yield U(this,Ze,pt).call(this,he.SCREENSHARE_AUDIO);s&&(yield n(this,W).closeProducer(s)),t&&(yield n(this,W).closeProducer(t)),n(this,ur).clear(),n(this,yt).delete(he.SCREENSHARE_VIDEO),n(this,yt).delete(he.SCREENSHARE_AUDIO)})}muteSelf(){return u(this,null,function*(){this.pauseMic()})}resetVideoProducers(s,t){return u(this,null,function*(){if(s){const e=yield U(this,Ze,pt).call(this,he.WEBCAM),r=yield U(this,Ze,pt).call(this,he.WEBCAM_BACKUP);yield n(this,W).closeProducer(e,{stopTrack:!1}),yield n(this,W).closeProducer(r,{stopTrack:!1}),this.shareWebcam(s)}if(t){const e=yield U(this,Ze,pt).call(this,he.SCREENSHARE_VIDEO);yield n(this,W).closeProducer(e,{stopTrack:!1}),this.shareScreen({video:t})}})}changeDisplayName(s,t){return u(this,null,function*(){const e={displayName:s,participantId:t!=null?t:this.peerId};if(!(yield n(this,W).socketHandler.changeDisplayName(e)))throw new Error("failed to change display name!")})}kick(s){const t={peerIds:[s]};n(this,W).socketHandler.kickPeer(t)}kickAll(){n(this,W).socketHandler.kickAll()}muteAll(s){return u(this,null,function*(){if(!(yield n(this,W).socketHandler.hostControlForAll("audio")))throw new Error("failed to mute all participant")})}muteAllVideo(){return u(this,null,function*(){if(!(yield n(this,W).socketHandler.hostControlForAll("video")))throw new Error("failed to mute all video participant")})}disableAudio(s){return u(this,null,function*(){if(!(yield n(this,W).socketHandler.hostControlForPeer(s,"audio")))throw new Error("failed to mute given participant")})}disableVideo(s){return u(this,null,function*(){if(!(yield n(this,W).socketHandler.hostControlForPeer(s,"video")))throw new Error("failed to mute video of given participant")})}pinPeer(s){return u(this,null,function*(){const t={participantId:s!=null?s:""};try{yield n(this,ct).sendMessagePromise(n(this,vt).globalPinPeer,PR.toBinary(t))}catch(e){this.logger.error("Error in pinning peer:",{error:e})}})}validateScreenShare(s){return this.peerId===s.peerId&&n(this,W).producers.get(s.producerId)&&n(this,ur).add(s.consumerPeerId),n(this,ur).size}switchConsumersToLayer(s,t){return u(this,null,function*(){const e=s.map(r=>this.getConsumers().get(r));n(this,W).switchConsumersToLayer(e,t)})}handleSocketEvents(){return u(this,null,function*(){n(this,ct).on(n(this,vt).peerProducerCreateBroadcast,({payload:s})=>{var t,e;if(this.mediaJoined)try{const{participantId:r,producerState:i}=Rb.fromBinary(s);if(r===this.peerId)return;if(i!=null&&i.mimeType||(i.mimeType=i.kind===Fs.AUDIO?"audio/opus":"video/VP8"),i.kind===Fs.VIDEO&&!i.screenShare&&((e=(t=n(this,Da).receiver)==null?void 0:t.video)==null?void 0:e.codecs.findIndex(a=>a.mimeType===Ot[0]))>=0&&n(this,Yi).get(Ot[0]).has(r)&&i.mimeType!==Ot[0]){this.logger.warn(`Ignoring producer: ${i.producerId}`);return}this.logger.info(`producer created broadcast: ${r}, producer state: ${i}`),this.context.getValue("peerSessionStore").emit(k.NEW_PRODUCER,{peerId:r,producer:H(D({},i),{kind:i.kind===Fs.AUDIO?"audio":"video",producingPeerId:r})})}catch(r){this.logger.error("error in peer-producer-create-broadcast",{error:r})}}),n(this,ct).on(n(this,vt).peerProducerToggleBroadcast,({payload:s})=>{if(this.mediaJoined)try{const{participantId:t,initiatorParticipantId:e,producerState:{kind:r,pause:i,producerId:a,screenShare:o}}=Jp.fromBinary(s);if(o)return;const c=r===Fs.AUDIO?"audio":"video";if(this.logger.info(`producer toggle broadcast: ${t}, producerId: ${a}, kind:${c}, paused:${i} payload: ${JSON.stringify(Jp.fromBinary(s))}`),t===this.peerId&&e!==this.peerId&&i&&this.context.getValue("peerSessionStore").emit(c==="audio"?k.MUTE_SELF:k.MUTE_SELF_VIDEO),t===this.peerId)return;this.context.getValue("peerSessionStore").emit(k.PRODUCER_TOGGLE,{peerId:t,producerId:a,paused:i,kind:c}),Array.from(this.getConsumers().values()).filter(l=>l.producerId===a).forEach(l=>{l.kind==="video"&&i||l.paused!==i&&(this.logger.debug(`consumer state mismatched for ${l.id}. updating consumer pause state ${l.paused} to ${i}`),i?(l.pause(),this.context.getValue("peerSessionStore").emit(k.CONSUMER_PAUSED,{id:l.id})):(l.resume(),this.context.getValue("peerSessionStore").emit(k.CONSUMER_RESUMED,{id:l.id})))})}catch(t){this.logger.error("error in producer toggle broadcast handler",{error:t})}}),n(this,ct).on(n(this,vt).peerLeaveBroadcast,({payload:s})=>{if(this.mediaJoined)try{const{participantId:t}=bu.fromBinary(s);if(t===this.peerId)return;this.logger.info(`peer left broadcast:${t}`),n(this,ur).delete(t),n(this,W).consumers.forEach(e=>{e.peerId===t&&e.close()}),this.context.getValue("peerSessionStore").emit(k.PEER_CLOSED,{id:t})}catch(t){this.logger.error("error in peer left broadcast",{error:t})}}),n(this,ct).on(n(this,vt).peerProducerCloseBroadcast,({payload:s})=>{if(this.mediaJoined)try{const{participantId:t,producerState:{producerId:e}}=Ib.fromBinary(s);if(t===this.peerId)return;this.logger.info(`producer closed broadcast:${t}`),this.context.getValue("peerSessionStore").emit(k.PRODUCER_CLOSED,{peerId:t,producerId:e});const r=n(this,W).producerIdToConsumerIdMap.get(e);if(!r){this.logger.warn(`no consumer found for producer:${e}`);return}this.logger.info(`closing consumer ${r}, producer id: ${e}`),n(this,W).closeConsumer(r).then(()=>{this.logger.info(`closed consumer: ${r}`),n(this,W).producerIdToConsumerIdMap.delete(e),this.context.getValue("peerSessionStore").emit(k.CONSUMER_CLOSED,{id:r})}).catch(i=>{this.logger.error("error closing consumer",{error:i})})}catch(t){this.logger.error("error on producer close broadcast",{error:t})}}),n(this,ct).on(n(this,vt).mediaRoomTerminationBroadcastResponse,()=>{!this.mediaJoined&&!n(this,Ji)&&!n(this,Ki)||(this.logger.warn("media hub termination broadcast received, rejoining room"),this.context.getValue("peerSessionStore").emit(k.ROOM_NODE_DISCONNECTED),n(this,Rc).call(this))})})}handleCallstatsEvents(){this.context.getValue("callstats").onConsumerScore(s=>{s.forEach((t,e)=>{const r=n(this,W).consumers.get(e);r&&this.context.getValue("peerSessionStore").emit(k.CONSUMER_SCORE_UPDATE,{id:e,kind:r.kind,peerId:r.peerId,score:t.score,scoreStats:t})})}),this.context.getValue("callstats").onProducerScore(s=>{s.forEach((t,e)=>{const r=Array.from(n(this,W).producers.values()).find(i=>i.id===e);r&&this.context.getValue("peerSessionStore").emit(k.PRODUCER_SCORE_UPDATE,{id:e,kind:r.kind,appData:r.appData,score:t.score,scoreStats:t})})})}handlePeerCapabilities(s,t){var e,r,i,a;for(let o=0;o<=Ot.length;o+=1){const c=Ot[o];if(((r=(e=t==null?void 0:t.receiver)==null?void 0:e.video)==null?void 0:r.codecs.findIndex(d=>d.mimeType===c))>=0||o===Ot.length-1){n(this,Qi).get(c).add(s);break}}for(let o=0;o<=Ot.length;o+=1){const c=Ot[o];if(((a=(i=t==null?void 0:t.sender)==null?void 0:i.video)==null?void 0:a.codecs.findIndex(d=>d.mimeType===c))>=0||o===Ot.length-1){n(this,Yi).get(c).add(s);break}}}handlePeerLeaving(s){this.context.getValue("flagsmith").hasFeature(ee.FORCE_VIDEO_CODEC)||(n(this,Yi).forEach(t=>t.delete(s)),n(this,Qi).forEach((t,e)=>{t.delete(s),!(t.size!==0||e===Ot[0])&&this.disableWebcam(e)}))}},Cc=new WeakMap,wc=new WeakMap,ct=new WeakMap,W=new WeakMap,Da=new WeakMap,vt=new WeakMap,Ji=new WeakMap,Ki=new WeakMap,zi=new WeakMap,Rc=new WeakMap,is=new WeakMap,ur=new WeakMap,bc=new WeakMap,Yi=new WeakMap,Qi=new WeakMap,yt=new WeakMap,bt=new WeakMap,Kr=new WeakSet,Pn=function(){return this.context.getValue("connectionHandler")},Tl=new WeakSet,_T=function(s,t,e,r){return u(this,null,function*(){f(this,wc,s);try{return n(this,is)?yield n(this,is):yield U(this,kc,sh).call(this,s,t,e,r),U(this,yl,wT).call(this,t),{roomJoined:yield U(this,vl,CT).call(this)}}catch(i){return this.logger.error("Failed to complete room join",{error:i}),{roomJoined:!1}}finally{f(this,is,null)}})},vl=new WeakSet,CT=function(){return u(this,null,function*(){try{this.mediaJoined=!0;const{roomState:s}=yield n(this,W).socketHandler.notifySelfJoinComplete();return f(this,Cc,s.roomUuid),f(this,Ki,!0),f(this,Ji,!1),!0}catch(s){return this.logger.error("Error completing room join",{error:s}),this.mediaJoined=!1,!1}})},yl=new WeakSet,wT=function(s){navigator.product!=="ReactNative"&&setTimeout(()=>{try{const e={userId:this.context.getValue("userId"),peerId:this.peerId,roomUUID:s,roomViewType:"groupCall",deviceInfo:H(D({},Se.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(t){this.logger.error("Error reporting room joined analytics",{error:t})}},0)},kc=new WeakSet,sh=function(s,t,e,r){return u(this,null,function*(){var i,a;try{(a=n(this,bc))!=null||f(this,bc,U(i=PT,Sl,RT).call(i));const o=U(this,El,bT).call(this);yield U(this,Pl,kT).call(this,s,t,e,o),yield n(this,W).setupTransports({send:!0,recv:!0}),yield U(this,_l,IT).call(this,r)}catch(o){throw this.logger.error("Failed to initialize connection",{error:o}),o}})},Sl=new WeakSet,RT=function(){const{ipInfo:s}=dt();if(!(s!=null&&s.loc))return;const[t,e]=s.loc.split(",").map(parseFloat);return{latitude:t,longitude:e}},El=new WeakSet,bT=function(){var e;const s=(e=this.context.getValue("flagsmith").getValue(ee.FORCE_VIDEO_CODEC))==null?void 0:e.toString(),t=qD(s);return f(this,Da,t),t},Pl=new WeakSet,kT=function(s,t,e,r){return u(this,null,function*(){yield tT((i,a)=>u(this,null,function*(){if(!n(this,ct).isConnected){a(new Error("Socket is not connected"));return}i>0&&this.logger.warn("Retry: send joinRoom message",{debuggingHint:`Retry attempt ${i}`});try{yield n(this,W).socketHandler.joinRoom(t,s,r,e,n(this,bc))}catch(o){throw this.logger.error("Failed to send joinRoom message after retries",{error:o}),o}}),{delayTime:1e3,strategy:"exponential",maxRetryCount:1/0})})},_l=new WeakSet,IT=function(s){return u(this,null,function*(){if(!(!this.context.getValue("flagsmith").hasFeature(ee.PRECREATE_PRODUCERS)||!s))try{const e=[];if(s.canProduceVideo===j.Allowed&&e.push(this.shareWebcam(aO(!1))),s.canProduceAudio===j.Allowed){const r=nO(!1);r&&e.push(this.shareMic(r))}e.length>0&&(yield Promise.all(e))}catch(e){this.logger.warn("Failed to precreate producers",{error:e})}})},Ze=new WeakSet,pt=function(s){return n(this,yt).get(s)},Xi=new WeakSet,To=function(s,t){return n(this,yt).set(s,t)},Cl=new WeakSet,AT=function(s){return n(this,yt).delete(s)},wl=new WeakSet,MT=function(s){return{track:s,encodings:[{priority:"high"}],codecOptions:[{name:"opus"}],appData:{e2ee:this.e2ee},stopTracks:!1,zeroRtpOnPause:!1}},Rl=new WeakSet,DT=function(s,t){return{track:s,codecOptions:t?t.map(e=>({name:e.split("/")[1]})):[{name:"VP8"}],appData:{screenShare:!1,e2ee:this.e2ee},stopTracks:!1}},m(mu,Sl),mu);let ae=PT;de([E.trace("MediaNodeClient.reset",{country:E.location.country})],ae.prototype,"reset",1);de([E.trace("MediaNodeClient.joinRoom")],ae.prototype,"joinRoom",1);de([E.trace("MediaNodeClient.leaveRoom")],ae.prototype,"leaveRoom",1);de([E.trace("MediaNodeClient.activatePeers")],ae.prototype,"activatePeers",1);de([E.trace("MediaNodeClient.createConsumers")],ae.prototype,"createConsumers",1);de([E.trace("MediaNodeClient.closeConsumers")],ae.prototype,"closeConsumers",1);de([E.trace("MediaNodeClient._shareWebcam")],ae.prototype,"_shareWebcam",1);de([E.trace("MediaNodeClient.shareWebcam")],ae.prototype,"shareWebcam",1);de([E.trace("MediaNodeClient.shareScreen")],ae.prototype,"shareScreen",1);de([E.trace("MediaNodeClient.shareMic")],ae.prototype,"shareMic",1);de([E.trace("MediaNodeClient.pauseMic")],ae.prototype,"pauseMic",1);de([E.trace("MediaNodeClient.pauseWebcam")],ae.prototype,"pauseWebcam",1);de([E.trace("MediaNodeClient.resumeMic")],ae.prototype,"resumeMic",1);de([E.trace("MediaNodeClient.resumeWebcam")],ae.prototype,"resumeWebcam",1);de([E.trace("MediaNodeClient.disableWebcam")],ae.prototype,"disableWebcam",1);de([E.trace("MediaNodeClient.disableMic")],ae.prototype,"disableMic",1);de([E.trace("MediaNodeClient.disableScreenShare")],ae.prototype,"disableScreenShare",1);de([E.trace("MediaNodeClient.muteSelf")],ae.prototype,"muteSelf",1);de([E.trace("MediaNodeClient.resetVideoProducers")],ae.prototype,"resetVideoProducers",1);de([E.trace("MediaNodeClient.changeDisplayName")],ae.prototype,"changeDisplayName",1);de([E.trace("MediaNodeClient.kickPeer")],ae.prototype,"kick",1);de([E.trace("MediaNodeClient.kickAllPeers")],ae.prototype,"kickAll",1);de([E.trace("MediaNodeClient.muteAll")],ae.prototype,"muteAll",1);de([E.trace("MediaNodeClient.muteAllVideo")],ae.prototype,"muteAllVideo",1);de([E.trace("MediaNodeClient.disableAudio")],ae.prototype,"disableAudio",1);de([E.trace("MediaNodeClient.disableVideo")],ae.prototype,"disableVideo",1);de([E.trace("MediaNodeClient.pinPeer")],ae.prototype,"pinPeer",1);de([E.trace("MediaNodeClient.validateScreenShare")],ae.prototype,"validateScreenShare",1);function OT(s,t){const e=s.getValue("roomNodeClient");if(e){if(e)return e;throw new Error("Room node client already set up.")}const r=new ae(s,t);return s.setValue("roomNodeClient",r),r}function NT(s){const t=s.getValue("roomNodeClient");try{t==null||t.leaveRoom()}catch(e){s.getValue("logger").error("roomNodeClient::cleanupRoomNodeClient")}s.setValue("roomNodeClient",void 0)}var dO=Object.defineProperty,lO=Object.getOwnPropertyDescriptor,Tn=(s,t,e,r)=>{for(var i=r>1?void 0:r?lO(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&dO(t,e,i),i},Zi,Es,te,St,Lt,jg;const LT=(jg=class{constructor(s,t,e,r){m(this,St);h(this,"self");h(this,"authToken");m(this,Zi,void 0);h(this,"viewType");m(this,Es,void 0);m(this,te,void 0);const{socket:i}=e,a=s.getValue("authToken");this.self=t,f(this,te,s),this.viewType=r,this.authToken=a,f(this,Zi,i),f(this,Es,e),t.config.viewType!==At.Chat&&this.setupEvents()}get peerId(){return n(this,te).getValue("peerId")}get telemetry(){return n(this,te).getValue("telemetry")}get logger(){return n(this,te).getValue("logger")}get mediaJoined(){return n(this,te).getValue("connectionHandler").mediaJoined}static init(s,t,e,r,i){return u(this,null,function*(){const a=dt(),o=s.getValue("peerId"),c=!!s.getValue("cachedUserDetails"),d=yield Ye.__init__(s,e,r,i,i.name,c);s.setValue("self",d);const l=s.getValue("logger");if(navigator.product!=="ReactNative"){const p=!s.getValue("flagsmith").hasFeature(ee.PRECALL_BANDWIDTH_TEST);setTimeout(()=>u(this,null,function*(){const g=yield d.getAllDevices();l.info("populated_full_device_list",{devices:JSON.stringify(g)}),s.getValue("callstats").devices("AUDIO",g==null?void 0:g.filter(T=>T.kind==="audioinput")),s.getValue("callstats").devices("VIDEO",g==null?void 0:g.filter(T=>T.kind==="videoinput")),s.getValue("callstats").devices("SPEAKER",g==null?void 0:g.filter(T=>T.kind==="audiooutput")),l.info("Callstats:: initializing");try{yield s.getValue("callstats").initialize({peerId:o,engineName:Se.getDeviceInfo().engineName,env:s.getValue("env"),iceServers:yield a.getICEServers(),apiBase:s.getValue("apiBase"),flags:s.getValue("flagsmith").getAllFlags(),logger:l,apiHostnames:uf(s),skipConnectivityChecks:p}),l.info("Callstats:: initialized")}catch(T){l.error("Callstats:: initialization failed",{error:T})}}),0)}else l.info("Callstats:: Skipped initialization due to navigator product being ReactNative.");return new LT(s,d,t,i.viewType)})}shareMediaTracks(){return u(this,null,function*(){var c;const{audioTrack:s,videoTrack:t,permissions:e,audioEnabled:r,videoEnabled:i,screenShareEnabled:a,screenShareTracks:o}=this.self;if(e.canProduceAudio===j.Allowed&&r)try{yield n(this,St,Lt).shareMic(s),this.self.audioEnabled||n(this,St,Lt).pauseMic()}catch(d){this.self.disableAudio()}if(e.canProduceVideo===j.Allowed&&i)try{const d=yield n(this,St,Lt).shareWebcam(t);d&&d.id!==t.id&&n(this,te).getValue("flagsmith").hasFeature(ee.EXP_RESHARE)&&(yield n(this,St,Lt).shareWebcam(d)),this.self.videoEnabled||n(this,St,Lt).pauseWebcam()}catch(d){this.self.disableVideo()}if(e.canProduceScreenshare===j.Allowed&&a)try{yield(c=n(this,St,Lt))==null?void 0:c.shareScreen({video:o.video,audio:o.audio})}catch(d){this.self.disableScreenShare()}})}kickHandler(s){return u(this,null,function*(){let t="kicked";(s==null?void 0:s.kickType)==="kickAll"&&(t="ended"),this.leaveRoom(t)})}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(s){return u(this,null,function*(){n(this,te).getValue("callstats").callEnded(),n(this,St,Lt).reset(),s&&(yield this.joinRoom(s))})}setupEvents(){n(this,te).getValue("peerSessionStore").on(k.RESET_PRODUCER_STATE,()=>u(this,null,function*(){this.mediaJoined&&this.shareMediaTracks()})),n(this,te).getValue("peerSessionStore").on(k.ROOM_NODE_RECONNECTED,()=>{this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:!0})}),n(this,te).getValue("peerSessionStore").on(k.ROOM_NODE_DISCONNECTED,()=>{this.self.roomState!=="disconnected"&&(this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"}))}),n(this,te).getValue("peerSessionStore").on(k.ROOM_NODE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),n(this,te).getValue("peerSessionStore").on(k.SOCKET_SERVICE_RECONNECTED,({wasJoinAttempted:s})=>{s===!1&&(this.self.roomState="init"),this.resetSelf(s)}),n(this,te).getValue("peerSessionStore").on(k.SOCKET_SERVICE_DISCONNECTED,({joinAttempted:s})=>{if(this.self.roomState==="disconnected")return;let{peerId:t}=this;s&&n(this,te).getValue("flagsmith").hasFeature(ee.REFRESH_ID_ON_DISCONNECTION)&&(t=Tr.v4()),n(this,Zi).updateURL(t),n(this,te).getValue("telemetry").resetPeerId(t),dt().setHeader("tracing-id",t),mr.remapContext(t,n(this,te)),this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"})}),n(this,te).getValue("peerSessionStore").on(k.SOCKET_SERVICE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),n(this,Es).on($.waitingRoomRequestAccepted,()=>{this.waitlistAcceptHandler()}),n(this,Es).on(dd.updateUserPreset,s=>{s.updatePeersPresets.forEach(t=>{t.userIds===this.self.userId&&n(this,te).getValue("peerSessionStore").emit(k.UPDATE_PERMISSIONS,t.patch)})}),n(this,Es).on($.waitingRoomRequestDenied,()=>{this.waitlistRejectedHandler()}),n(this,Es).on($.kick,()=>{this.kickHandler({kickType:"kick"})}),n(this,Es).on($.kickAll,()=>{this.kickHandler({kickType:"kickAll"})}),n(this,te).getValue("peerSessionStore").onAsync(k.JOIN_MEDIA_ROOM,this.joinMediaRoom.bind(this)),n(this,te).getValue("peerSessionStore").on(k.PRODUCER_SCORE_UPDATE,({score:s,kind:t,appData:e,scoreStats:r})=>{var a;const i=(a=e==null?void 0:e.screenShare)!=null?a:!1;this.self.emit("mediaScoreUpdate",{kind:t,isScreenshare:i,score:s,participantId:this.self.id,scoreStats:r})}),n(this,te).getValue("peerSessionStore").on(k.MUTE_SELF,()=>u(this,null,function*(){this.self.audioEnabled&&(yield this.self.disableAudio(),n(this,te).getValue("callstats").audioOff())})),n(this,te).getValue("peerSessionStore").on(k.MUTE_SELF_VIDEO,()=>u(this,null,function*(){this.self.videoEnabled&&(yield this.self.disableVideo(),n(this,te).getValue("callstats").videoOff())})),n(this,te).getValue("peerSessionStore").onAsync(k.LEAVE_MEDIA_ROOM,this.leaveMediaRoom.bind(this)),n(this,te).getValue("peerSessionStore").on(k.PIP_HANGUP,this.leaveRoom.bind(this))}joinRoom(s=!1){return u(this,null,function*(){try{const{peer:t}=yield n(this,Es).joinRoom(this.self);n(this,Es).socket.flush();const e=Oh(t.stageType);if(n(this,te).setValue("stageStatus",e,!1),t.waitlisted){this.waitlistedHandler();return}yield this.joinMediaRoom(s),n(this,te).notify("stageStatus")}catch(t){throw this.logger.error("Error in joinRoom",{error:t}),t}})}leaveRoom(s="left"){return u(this,null,function*(){var t,e;if(this.logger.info(`Leaving room with state: ${s}`),(t=n(this,te).getValue("roomSocketHandler"))==null||t.cleanup(),s==="rejected"){this.self.roomState=s,this.self.emit("roomLeft",{state:s});return}this.self.setIsPinned(!1),n(this,te).setValue("stageStatus","OFF_STAGE",!1),yield this.leaveMediaRoom(s),n(this,te).notify("stageStatus");try{(e=n(this,Zi))==null||e.disconnect()}catch(r){this.logger.error("SelfController::leaveRoom::socketDisconnect")}NT(n(this,te)),this.self.roomState=s,this.self.emit("roomLeft",{state:s}),this.logger.info(`roomLeft event emitted with state: ${s}`)})}joinMediaRoom(s=!1){return u(this,null,function*(){var a,o;const{peerId:t,viewType:e,meetingId:r,stageStatus:i}=n(this,te).getAllValues();try{if(e===At.Livestream){if(i!=="ON_STAGE"){this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:s});return}OT(n(this,te),{socket:n(this,Zi),peerId:t})}const{canProduceAudio:c,canProduceVideo:d,canProduceScreenshare:l}=this.self.permissions,{roomJoined:p}=(o=yield(a=n(this,St,Lt))==null?void 0:a.joinRoom(this.self.name,r,s,s,{canProduceAudio:c,canProduceVideo:d,canProduceScreenshare:l}))!=null?o:{};if(!p)return;i==="ON_STAGE"&&(yield this.shareMediaTracks()),this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:s})}catch(c){throw this.logger.error("Error:SelfController.mediaRoomJoin",{error:c}),new b("Error: could not join media room","0002")}})}leaveMediaRoom(s){return u(this,null,function*(){const t=n(this,te).getValue("viewType");s!=="connected-meeting"&&(yield this.cleanupSelf()),!(s==="stageLeft"&&t===At.Webinar)&&n(this,St,Lt)&&(n(this,St,Lt).mediaJoined&&s!=="disconnected"&&(yield n(this,St,Lt).leaveRoom()),!(s==="stageLeft"&&t===At.Livestream)&&(n(this,St,Lt).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()})}},Zi=new WeakMap,Es=new WeakMap,te=new WeakMap,St=new WeakSet,Lt=function(){return n(this,te).getValue("roomNodeClient")},jg);let ri=LT;Tn([E.trace("SelfController.resetSelf")],ri.prototype,"resetSelf",1);Tn([E.trace("SelfController.setupEvents")],ri.prototype,"setupEvents",1);Tn([E.trace("SelfController.joinRoom")],ri.prototype,"joinRoom",1);Tn([E.trace("SelfController.leaveRoom")],ri.prototype,"leaveRoom",1);Tn([E.trace("SelfController.joinMediaRoom")],ri.prototype,"joinMediaRoom",1);Tn([E.trace("SelfController.leaveMediaRoom")],ri.prototype,"leaveMediaRoom",1);Tn([E.trace("SelfController.init")],ri,"init",1);var Ic;class uO{constructor(t){m(this,Ic,void 0);f(this,Ic,t)}on(t,e){let r;t===$.roomPeerCount?r=Yp.fromBinary.bind(Yp):r=og.fromBinary.bind(og),n(this,Ic).on(t,({payload:i})=>{if(t===$.roomPeerCount&&!i)return;const a=r(i);e(a)})}}Ic=new WeakMap;var Ac,Mc;class hO{constructor(t,e){m(this,Ac,void 0);m(this,Mc,void 0);f(this,Ac,e),f(this,Mc,t)}get logger(){return n(this,Mc).getValue("logger")}on(t,e){let r,i;switch(t){case $.transcript:{r=nu.fromBinary.bind(nu),i=nu.create();break}default:{this.logger.debug("AISocketHandler switch case hit default, event not accounted for.");break}}n(this,Ac).on(t,({payload:a})=>{let o=i;try{o=r(a)}catch(c){this.logger.error("aiSocketHandler::on::binary_decode_error",{error:c})}return e(o)})}}Ac=new WeakMap,Mc=new WeakMap;var pO=Object.defineProperty,gO=Object.getOwnPropertyDescriptor,Gh=(s,t,e,r)=>{for(var i=r>1?void 0:r?gO(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&pO(t,e,i),i},hr,Oa;class Wl{constructor(t,e){m(this,hr,void 0);m(this,Oa,void 0);f(this,hr,e),f(this,Oa,t)}get logger(){return n(this,Oa).getValue("logger")}get telemetry(){return n(this,Oa).getValue("telemetry")}getPolls(){return n(this,hr).sendMessagePromise(Ws.getPolls)}createPoll(t,e,r=!1,i=!1){const a={anonymous:r,hideVotes:i,question:t,options:e};return n(this,hr).sendMessage(Ws.createPoll,TM.toBinary(a))}votePoll(t,e){const r={index:e,pollId:t};return n(this,hr).sendMessage(Ws.votePoll,yM.toBinary(r))}on(t,e){let r,i;switch(t){case Ws.updatePoll:case Ws.createPoll:case Ws.votePoll:{r=uu.fromBinary.bind(uu),i=uu.create();break}}n(this,hr).on(t,({payload:a})=>{let o=i;try{o=r(a)}catch(c){this.logger.error("pollSocketHandler::on::binary_decode_error",{error:c})}return e(o)})}removeListeners(t){n(this,hr).removeListeners(t)}}hr=new WeakMap,Oa=new WeakMap;Gh([E.trace("PollSocketHandler.getPolls")],Wl.prototype,"getPolls",1);Gh([E.trace("PollSocketHandler.createPoll")],Wl.prototype,"createPoll",1);Gh([E.trace("PollSocketHandler.votePoll")],Wl.prototype,"votePoll",1);var mO=Object.defineProperty,fO=Object.getOwnPropertyDescriptor,TO=(s,t,e,r)=>{for(var i=r>1?void 0:r?fO(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&mO(t,e,i),i},Bt;class VT{constructor(t,e){h(this,"socket");m(this,Bt,void 0);f(this,Bt,t),this.socket=e,this.handleSocketEvents(),n(this,Bt).setValue("roomSocketHandler",this)}get telemetry(){return n(this,Bt).getValue("telemetry")}get logger(){return n(this,Bt).getValue("logger")}cleanup(){var t;try{(t=this.socket)==null||t.disconnect()}catch(e){this.logger.error("roomSocketHandler::cleanup")}}joinRoom(t){return u(this,null,function*(){var i;this.socket.joinAttempted=!0;const e={capabilities:[],peer:{displayName:(i=t.name)!=null?i:"Participant",customParticipantId:t.customParticipantId,peerId:t.id,userId:t.userId,displayPictureUrl:t.picture,waitlisted:!1},roomUuid:""},r=this.socket.sendMessagePromise($.joinRoom,ik.toBinary(e));try{const{peer:a}=yn.fromBinary((yield r).payload);n(this,Bt).getValue("connectionHandler").socketJoined=!0,n(this,Bt).getValue("peerSessionStore").emit(k.SOCKET_SERVICE_ROOM_JOINED,{peer:a});const o=this.getRoomState(),c=this.getRoomPeersNonPaginated(),[{room:d},{peers:l}]=yield Promise.all([o,c]);return n(this,Bt).getValue("peerSessionStore").emit(k.ROOM_STATE,d),n(this,Bt).getValue("peerSessionStore").emit(k.SOCKET_PEERS,l),{peer:a}}catch(a){throw this.logger.error("RoomSocketHandler.joinRoom.failed",{error:a}),new b("Error: RoomSocketHandler.joinRoom failed.","0002",this.logger,a)}})}getAllAddedParticipants(){return u(this,null,function*(){try{return Hk.fromBinary((yield this.socket.sendMessagePromise($.getAllAddedParticipants)).payload).participants.map(i=>{var a=i,{id:e}=a,r=io(a,["id"]);return H(D({},r),{userId:e})})}catch(t){return[]}})}getRoomPeers(t,e,r){return u(this,null,function*(){let i;try{const a={seachQuery:t,limit:e,offset:r},o=yield this.socket.sendMessagePromise($.getRoomPeersInfo,Kb.toBinary(a));i=au.fromBinary(o.payload)}catch(a){this.logger.error("getRoomPeers::binary_decode_error",{error:a})}return i})}getRoomPeersNonPaginated(){return u(this,null,function*(){let t;try{const e=yield this.socket.sendMessagePromise($.getRoomPeersInfo);t=au.fromBinary(e.payload)}catch(e){this.logger.error("getRoomJoinedPeers::binary_decode_error",{error:e})}return t})}getStagePeers(){return u(this,null,function*(){let t;try{const e=yield this.socket.sendMessagePromise($.getRoomPeersInfo);t=au.fromBinary(e.payload)}catch(e){this.logger.error("getRoomJoinedPeers::binary_decode_error",{error:e})}return t})}getPeerInfo(t){return u(this,null,function*(){let e;try{const r=yield this.socket.sendMessagePromise($.getPeerInfo,Ef.toBinary({peerId:t}));e=yn.fromBinary(r.payload)}catch(r){this.logger.error("getPeerInfo::binary_decode_error",{error:r})}return e})}getRoomState(){return u(this,null,function*(){let t=Qp.create();try{const e=yield this.socket.sendMessagePromise($.getRoomInfo);t=Qp.fromBinary(e.payload)}catch(e){this.logger.error("getRoomState::binary_decode_error",{error:e})}return t})}getRoomStageState(){return u(this,null,function*(){let t=tg.create();try{const e=yield this.socket.sendMessagePromise($.getRoomStageState);t=tg.fromBinary(e.payload)}catch(e){this.logger.error("getRoomStageState::binary_decode_error",{error:e})}return t})}broadcastMessage(t,e){return u(this,null,function*(){const r={type:t,payload:new TextEncoder().encode(JSON.stringify(e)),timestamp:Date.now(),ids:[]};return this.socket.sendMessagePromise($.broadcastMessage,oo.toBinary(r))})}broadcastToMeetings(t,e,r){return u(this,null,function*(){const i={type:t,payload:new TextEncoder().encode(JSON.stringify(r)),timestamp:Date.now(),ids:e,broadcastType:1};return this.socket.sendMessagePromise($.broadcastToEntity,oo.toBinary(i))})}broadcastToPeers(t,e,r){return u(this,null,function*(){const i={type:t,payload:new TextEncoder().encode(JSON.stringify(r)),timestamp:Date.now(),ids:e,broadcastType:0};return this.socket.sendMessage($.broadcastToEntity,oo.toBinary(i))})}leaveRoom(){return u(this,null,function*(){this.socket.joinAttempted=!1,this.socket.sendMessagePromise($.leaveRoom,ak.toBinary({}))})}kick(t){return u(this,null,function*(){const e={peerIds:[t]};this.socket.sendMessage($.kick,_f.toBinary(e))})}kickAll(t=!1){return u(this,null,function*(){const e={propagateKickAcrossRooms:t};this.socket.sendMessage($.kickAll,vf.toBinary(e))})}getWaitingRoomRequests(){this.socket.sendMessage($.getWaitingRoomRequests)}acceptWaitingRoomRequest(t){const e={userIds:t};this.socket.sendMessage($.acceptWaitingRoomRequests,Kk.toBinary(e))}rejectWaitingRoomRequest(t){const e={userIds:t};this.socket.sendMessage($.denyWaitingRoomRequests,Yk.toBinary(e))}updatePermissions(t,e){return u(this,null,function*(){const r={updatePeersPresets:[]};return t.forEach(i=>{r.updatePeersPresets.push({userIds:i,patch:e})}),this.socket.sendMessagePromise(dd.updateUserPreset,wI.toBinary(r))})}handleSocketEvents(){this.socket.on($.broadcastMessage,({payload:t})=>{try{const e=oo.fromBinary(t);n(this,Bt).getValue("peerSessionStore").emit(k.ROOM_MESSAGE,{payload:JSON.parse(new TextDecoder().decode(e.payload)),type:e.type,timestamp:e.timestamp})}catch(e){this.logger.error("failed to decode broadcast message:",e)}}),this.socket.on($.broadcastToEntity,({payload:t})=>{try{const e=oo.fromBinary(t);n(this,Bt).getValue("peerSessionStore").emit(k.MESSAGE,{payload:JSON.parse(new TextDecoder().decode(e.payload)),type:e.type,timestamp:e.timestamp})}catch(e){this.logger.error("failed to decode peer broadcast message:",e)}})}on(t,e){let r,i;switch(t){case $.joinRoom:case $.leaveRoom:case $.kick:case $.kickAll:{r=yn.fromBinary.bind(yn),i=yn.create();break}case $.getWaitingRoomRequests:{r=(a,o)=>a?eg.fromBinary(a,o):{requests:[]},i=eg.create();break}case $.recordingPaused:case $.recordingStarted:case $.recordingStopped:{r=lg.fromBinary.bind(lg);break}case dd.updateUserPreset:{r=sg.fromBinary.bind(sg);break}case Cs.peerJoinedBroadcast:case Mr.peerJoinedBroadcast:{r=Gp.fromBinary.bind(Gp);break}case Cs.selfJoinComplete:case Mr.selfJoinComplete:{r=Ru.fromBinary.bind(Ru);break}case Cs.globalPeerPinBroadcast:case Mr.globalPeerPinBroadcast:{r=Kp.fromBinary.bind(Kp);break}case Cs.selectedPeer:case Mr.selectedPeer:{r=wu.fromBinary.bind(wu);break}case Cs.selectedPeerDiff:case Mr.selectedPeerDiff:{r=jp.fromBinary.bind(jp);break}case Cs.leaveRoom:case Mr.leaveRoom:{r=bu.fromBinary.bind(bu);break}}this.socket.on(t,({payload:a})=>{let o=i;if(!r)return e(void 0);try{o=r(a)}catch(c){this.logger.error("roomSocketHandler::on::binary_decode_error",{error:c})}return e(o)})}getUserPermissions(t){return u(this,null,function*(){const e={userIds:[t]};try{const r=yield this.socket.sendMessagePromise(dd.getUserPresets,vI.toBinary(e)),i=PI.fromBinary(r.payload).peerPresets[0],a=new TextDecoder().decode(i.preset),o=JSON.parse(a).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}})}}Bt=new WeakMap;TO([E.trace("RoomSocketHandler.joinRoom")],VT.prototype,"joinRoom",1);var kt;class vO{constructor(t){m(this,kt,void 0);f(this,kt,t)}getStageRequests(){return u(this,null,function*(){const{payload:t}=yield n(this,kt).sendMessagePromise($.getStageRequests);return t?lu.fromBinary(t):{stageRequests:[]}})}requestAccess(){n(this,kt).sendMessage($.requestStageAccess)}cancelRequestAccess(){n(this,kt).sendMessage($.cancelStageRequest)}grantAccess(t){return u(this,null,function*(){const e={userIds:t};n(this,kt).sendMessage($.grantStageAccess,oM.toBinary(e))})}denyAccess(t){return u(this,null,function*(){const e={userIds:t};n(this,kt).sendMessage($.denyStageAccess,dM.toBinary(e))})}joinStage(){return n(this,kt).sendMessagePromise($.joinStage,void 0,void 0,$.peerStageStatusUpdate)}leaveStage(t){const e={userIds:[t]};return n(this,kt).sendMessagePromise($.leaveStage,dg.toBinary(e),void 0,$.peerStageStatusUpdate)}kick(t){const e={userIds:t};return n(this,kt).sendMessagePromise($.leaveStage,dg.toBinary(e))}on(t,e){let r;switch(t){case $.grantStageAccess:case $.denyStageAccess:{r=void 0;break}case $.getStagePeers:{r=cg.fromBinary.bind(cg);break}case $.getStageRequests:case $.requestStageAccess:case $.cancelStageRequest:{r=lu.fromBinary.bind(lu);break}case $.peerStageStatusUpdate:{r=zp.fromBinary.bind(zp);break}}n(this,kt).on(t,({payload:i,id:a})=>{if(!i||!r)return e(void 0,a);const o=r(i);return e(o,a)})}getPeerInfo(t){return u(this,null,function*(){const e=yield n(this,kt).sendMessagePromise($.getPeerInfo,Ef.toBinary({peerId:t}));return yn.fromBinary(e.payload)})}}kt=new WeakMap;var je,Dc;class yO{constructor(t,e){m(this,je,void 0);m(this,Dc,void 0);f(this,je,e),f(this,Dc,t)}get logger(){return n(this,Dc).getValue("logger")}addPlugin(t,e){n(this,je).sendMessage(J.addPlugin,CA.toBinary({pluginId:t,staggered:e}))}removePlugin(t){n(this,je).sendMessage(J.removePlugin,RA.toBinary({pluginId:t,staggered:!1}))}getActivePlugins(){return u(this,null,function*(){const{payload:t}=yield n(this,je).sendMessagePromise(J.getPlugins);return t?zA.fromBinary(t):{plugins:[]}})}customPluginEventToRoom(t,e,r){const i={pluginId:t,pluginData:new TextEncoder().encode(JSON.stringify(e))};n(this,je).sendMessage(J.customPluginEventToRoom,VA.toBinary(i),r)}customPluginEventToPeers(t,e,r,i){const a={pluginId:t,peerIds:e,pluginData:new TextEncoder().encode(JSON.stringify(r))};n(this,je).sendMessage(J.customPluginEventToPeers,UA.toBinary(a),i)}enablePluginForRoom(t,e){n(this,je).sendMessage(J.enablePluginForRoom,kA.toBinary({pluginId:t}),e)}enablePluginForPeers(t,e,r){n(this,je).sendMessage(J.enablePluginForPeers,DA.toBinary({pluginId:t,peerIds:e}),r)}disablePluginForRoom(t,e){n(this,je).sendMessage(J.disablePluginForRoom,AA.toBinary({pluginId:t}),e)}disablePluginForPeers(t,e,r){n(this,je).sendMessage(J.disablePluginForPeers,NA.toBinary({pluginId:t,peerIds:e}),r)}storeInsertKeys(t,e,r,i){const a={pluginId:t,storeName:e,insertKeys:r.map(o=>({storeKey:o.key,payload:new TextEncoder().encode(JSON.stringify(o.payload))}))};n(this,je).sendMessage(J.storeInsertKeys,rg.toBinary(a),i)}storeGetKeys(t,e,r,i){const a={pluginId:t,storeName:e,getKeys:r.map(o=>({storeKey:o.key}))};n(this,je).sendMessage(J.storeGetKeys,HA.toBinary(a),i)}storeDeleteKeys(t,e,r,i){const a={pluginId:t,storeName:e,deleteKeys:r.map(o=>({storeKey:o.key}))};n(this,je).sendMessage(J.storeDeleteKeys,jA.toBinary(a),i)}storeDelete(t,e,r){n(this,je).sendMessage(J.storeDelete,WA.toBinary({pluginId:t,storeName:e}),r)}getPluginDataOld(t,e){this.logger.info("getPluginDataOld",{plugin:{id:t,storeName:e}})}storePluginDataOld(t,e,r){const i={pluginId:t,storeName:e,insertKeys:[{storeKey:r.key,payload:new TextEncoder().encode(JSON.stringify(r))}]};n(this,je).sendMessage(J.storeInsertKeys,rg.toBinary(i))}on(t,e){let r;switch(t){case J.addPlugin:case J.enablePluginForPeers:case J.enablePluginForRoom:{r=Mu.fromBinary.bind(Mu);break}case J.removePlugin:case J.disablePluginForPeers:case J.disablePluginForRoom:{r=ig.fromBinary.bind(ig);break}case J.customPluginEventToPeers:case J.customPluginEventToRoom:{r=ag.fromBinary.bind(ag);break}case J.storeInsertKeys:case J.storeGetKeys:case J.storeDeleteKeys:case J.storeDelete:{r=ng.fromBinary.bind(ng);break}}n(this,je).on(t,({payload:i,id:a})=>{const o=r(i);return e(o,a)})}}je=new WeakMap,Dc=new WeakMap;var SO=Object.defineProperty,EO=(s,t,e)=>t in s?SO(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,PO=(s,t,e)=>(EO(s,typeof t!="symbol"?t+"":t,e),e),Wh=(s,t,e)=>{if(!t.has(s))throw TypeError("Cannot "+e)},M=(s,t,e)=>(Wh(s,t,"read from private field"),e?e.call(s):t.get(s)),Te=(s,t,e)=>{if(t.has(s))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(s):t.set(s,e)},ne=(s,t,e,r)=>(Wh(s,t,"write to private field"),r?r.call(s,e):t.set(s,e),e),_e=(s,t,e)=>(Wh(s,t,"access private method"),e),Md={},_O={get exports(){return Md},set exports(s){Md=s}},On=typeof Reflect=="object"?Reflect:null,Eg=On&&typeof On.apply=="function"?On.apply:function(s,t,e){return Function.prototype.apply.call(s,t,e)},fd;On&&typeof On.ownKeys=="function"?fd=On.ownKeys:Object.getOwnPropertySymbols?fd=function(s){return Object.getOwnPropertyNames(s).concat(Object.getOwnPropertySymbols(s))}:fd=function(s){return Object.getOwnPropertyNames(s)};function CO(s){console&&console.warn&&console.warn(s)}var xT=Number.isNaN||function(s){return s!==s};function ce(){ce.init.call(this)}_O.exports=ce;Md.once=kO;ce.EventEmitter=ce;ce.prototype._events=void 0;ce.prototype._eventsCount=0;ce.prototype._maxListeners=void 0;var Pg=10;function Jl(s){if(typeof s!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof s)}Object.defineProperty(ce,"defaultMaxListeners",{enumerable:!0,get:function(){return Pg},set:function(s){if(typeof s!="number"||s<0||xT(s))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+s+".");Pg=s}});ce.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};ce.prototype.setMaxListeners=function(s){if(typeof s!="number"||s<0||xT(s))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+s+".");return this._maxListeners=s,this};function UT(s){return s._maxListeners===void 0?ce.defaultMaxListeners:s._maxListeners}ce.prototype.getMaxListeners=function(){return UT(this)};ce.prototype.emit=function(s){for(var t=[],e=1;e<arguments.length;e++)t.push(arguments[e]);var r=s==="error",i=this._events;if(i!==void 0)r=r&&i.error===void 0;else if(!r)return!1;if(r){var a;if(t.length>0&&(a=t[0]),a instanceof Error)throw a;var o=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw o.context=a,o}var c=i[s];if(c===void 0)return!1;if(typeof c=="function")Eg(c,this,t);else for(var d=c.length,l=qT(c,d),e=0;e<d;++e)Eg(l[e],this,t);return!0};function $T(s,t,e,r){var i,a,o;if(Jl(e),a=s._events,a===void 0?(a=s._events=Object.create(null),s._eventsCount=0):(a.newListener!==void 0&&(s.emit("newListener",t,e.listener?e.listener:e),a=s._events),o=a[t]),o===void 0)o=a[t]=e,++s._eventsCount;else if(typeof o=="function"?o=a[t]=r?[e,o]:[o,e]:r?o.unshift(e):o.push(e),i=UT(s),i>0&&o.length>i&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=s,c.type=t,c.count=o.length,CO(c)}return s}ce.prototype.addListener=function(s,t){return $T(this,s,t,!1)};ce.prototype.on=ce.prototype.addListener;ce.prototype.prependListener=function(s,t){return $T(this,s,t,!0)};function wO(){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 FT(s,t,e){var r={fired:!1,wrapFn:void 0,target:s,type:t,listener:e},i=wO.bind(r);return i.listener=e,r.wrapFn=i,i}ce.prototype.once=function(s,t){return Jl(t),this.on(s,FT(this,s,t)),this};ce.prototype.prependOnceListener=function(s,t){return Jl(t),this.prependListener(s,FT(this,s,t)),this};ce.prototype.removeListener=function(s,t){var e,r,i,a,o;if(Jl(t),r=this._events,r===void 0)return this;if(e=r[s],e===void 0)return this;if(e===t||e.listener===t)--this._eventsCount===0?this._events=Object.create(null):(delete r[s],r.removeListener&&this.emit("removeListener",s,e.listener||t));else if(typeof e!="function"){for(i=-1,a=e.length-1;a>=0;a--)if(e[a]===t||e[a].listener===t){o=e[a].listener,i=a;break}if(i<0)return this;i===0?e.shift():RO(e,i),e.length===1&&(r[s]=e[0]),r.removeListener!==void 0&&this.emit("removeListener",s,o||t)}return this};ce.prototype.off=ce.prototype.removeListener;ce.prototype.removeAllListeners=function(s){var t,e,r;if(e=this._events,e===void 0)return this;if(e.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):e[s]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete e[s]),this;if(arguments.length===0){var i=Object.keys(e),a;for(r=0;r<i.length;++r)a=i[r],a!=="removeListener"&&this.removeAllListeners(a);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(t=e[s],typeof t=="function")this.removeListener(s,t);else if(t!==void 0)for(r=t.length-1;r>=0;r--)this.removeListener(s,t[r]);return this};function BT(s,t,e){var r=s._events;if(r===void 0)return[];var i=r[t];return i===void 0?[]:typeof i=="function"?e?[i.listener||i]:[i]:e?bO(i):qT(i,i.length)}ce.prototype.listeners=function(s){return BT(this,s,!0)};ce.prototype.rawListeners=function(s){return BT(this,s,!1)};ce.listenerCount=function(s,t){return typeof s.listenerCount=="function"?s.listenerCount(t):HT.call(s,t)};ce.prototype.listenerCount=HT;function HT(s){var t=this._events;if(t!==void 0){var e=t[s];if(typeof e=="function")return 1;if(e!==void 0)return e.length}return 0}ce.prototype.eventNames=function(){return this._eventsCount>0?fd(this._events):[]};function qT(s,t){for(var e=new Array(t),r=0;r<t;++r)e[r]=s[r];return e}function RO(s,t){for(;t+1<s.length;t++)s[t]=s[t+1];s.pop()}function bO(s){for(var t=new Array(s.length),e=0;e<t.length;++e)t[e]=s[e].listener||s[e];return t}function kO(s,t){return new Promise(function(e,r){function i(o){s.removeListener(t,a),r(o)}function a(){typeof s.removeListener=="function"&&s.removeListener("error",i),e([].slice.call(arguments))}jT(s,t,a,{once:!0}),t!=="error"&&IO(s,i,{once:!0})})}function IO(s,t,e){typeof s.on=="function"&&jT(s,"error",t,e)}function jT(s,t,e,r){if(typeof s.on=="function")r.once?s.once(t,e):s.on(t,e);else if(typeof s.addEventListener=="function")s.addEventListener(t,function i(a){r.once&&s.removeEventListener(t,i),e(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof s)}class AO extends y.MessageType{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 _g=new AO;class GT{static encode(t){return _g.toBinary(t)}static decode(t){return _g.fromBinary(new Uint8Array(t))}}function MO(s,t){return Math.floor(Math.random()*(t-s+1)+s)}var Ir;class DO{constructor(t={}){PO(this,"opts"),Te(this,Ir,void 0),this.opts={initialTimeout:t.initialTimeout||1e3,maxTimeout:t.maxTimeout||1e4,factor:t.factor||2},ne(this,Ir,0)}wait(){return u(this,null,function*(){ne(this,Ir,M(this,Ir)+1);const t=MO(0,Math.min(this.opts.maxTimeout,this.opts.initialTimeout*Zh(2,M(this,Ir))));yield new Promise(e=>{setTimeout(e,t)})})}getAttempts(){return M(this,Ir)}reset(){ne(this,Ir,0)}}Ir=new WeakMap;const Rr={debug:0,info:1,warn:2,error:3};var di,li;class OO{constructor(t){Te(this,di,void 0),Te(this,li,void 0),ne(this,di,console),ne(this,li,t)}debug(...t){Rr[M(this,li)]>Rr.debug||M(this,di).debug("[Sockrates]:",...t)}info(...t){Rr[M(this,li)]>Rr.info||M(this,di).info("[Sockrates]:",...t)}warn(...t){Rr[M(this,li)]>Rr.warn||M(this,di).warn("[Sockrates]:",...t)}error(...t){Rr[M(this,li)]>Rr.error||M(this,di).error("[Sockrates]:",...t)}}di=new WeakMap,li=new WeakMap;var WT=(s=>(s[s.CONNECTING=0]="CONNECTING",s[s.OPEN=1]="OPEN",s[s.CLOSING=2]="CLOSING",s[s.CLOSED=3]="CLOSED",s))(WT||{});const NO="2",LO="3";var Ae,_n,Pe,Ve,Ar,Ke,gr,Xr,_s,Cn,Gs,rh,JT,vo,Td,ih,KT,nh,Cg,Dd,ah,oh,zT,Eo,vd,Po,Od,Nd,ch,Nn,_o,Co,Ld;class VO{constructor(t,e){var T,v,P,_,C,w,V,F,N,B;Te(this,rh),Te(this,vo),Te(this,ih),Te(this,nh),Te(this,Dd),Te(this,oh),Te(this,Eo),Te(this,Po),Te(this,Nd),Te(this,Nn),Te(this,Co),Te(this,Ae,void 0),Te(this,_n,void 0),Te(this,Pe,void 0),Te(this,Ve,void 0),Te(this,Ar,void 0),Te(this,Ke,void 0),Te(this,gr,void 0),Te(this,Xr,void 0),Te(this,_s,void 0),Te(this,Cn,void 0),Te(this,Gs,void 0);var r,i,a,o,c,d,l,p,g;ne(this,_n,t),ne(this,Ar,[]),ne(this,Ke,new Md),ne(this,gr,!0),ne(this,_s,!1),ne(this,Pe,e!=null?e:{}),(T=(r=M(this,Pe)).autoReconnect)!=null||(r.autoReconnect=!0),(v=(i=M(this,Pe)).retryConnectionInterval)!=null||(i.retryConnectionInterval=1e3),(P=(a=M(this,Pe)).pingTimeout)!=null||(a.pingTimeout=3e4),(_=(o=M(this,Pe)).connectionTimeout)!=null||(o.connectionTimeout=5e3),(C=(c=M(this,Pe)).debug)!=null||(c.debug=!0),(w=(d=M(this,Pe)).maxReconnectionAttempts)!=null||(d.maxReconnectionAttempts=10),(V=(l=M(this,Pe)).disconnectOnPingTimeout)!=null||(l.disconnectOnPingTimeout=!0),(F=(p=M(this,Pe)).queueOnDisconnect)!=null||(p.queueOnDisconnect=!1),(N=(g=M(this,Pe)).flushOnReconnect)!=null||(g.flushOnReconnect=!1),ne(this,Xr,{code:void 0,reason:void 0}),ne(this,Ve,(B=M(this,Pe).logger)!=null?B:new OO(M(this,Pe).debug?"debug":"info")),ne(this,Gs,new DO)}get readyState(){var t;return(t=M(this,Ae))==null?void 0:t.readyState}get url(){return M(this,_n)}updateURL(t){ne(this,_n,t),_e(this,oh,zT).call(this)}get config(){return M(this,Pe)}get sendQueue(){return M(this,Ar)}flush(){if(!M(this,Pe).queueOnDisconnect)return!1;const t=[];return M(this,Ar).forEach(e=>{this.send(e.event,e.id,e.payload,e.metadata)||t.push(e)}),ne(this,Ar,t),M(this,Ar)}connect(t=!1){return u(this,null,function*(){if(!t&&[0,1].includes(this.readyState)){M(this,Ve).debug("Websocket was already connecting or connected.");return}if(M(this,gr)!==!1)return new Promise((e,r)=>{_e(this,Nn,_o).call(this),_e(this,Co,Ld).call(this);try{ne(this,Ae,new WebSocket(_e(this,rh,JT).call(this,M(this,_n)))),M(this,Ae).binaryType="arraybuffer",M(this,Ve).debug("Connecting");const i=setTimeout(()=>{M(this,Ve).debug("Connection timeout. Closing socket"),ne(this,gr,!0),_e(this,Co,Ld).call(this),M(this,Ae).close(3001,"Connection Timeout"),M(this,Pe).autoReconnect&&!M(this,_s)&&(M(this,Ke).emit("reconnecting"),_e(this,Eo,vd).call(this)),r(new Error("Connection timed out!"))},M(this,Pe).connectionTimeout);M(this,Ae).onopen=()=>{M(this,Ve).debug(`Ready State: ${WT[M(this,Ae).readyState]}`),i&&clearTimeout(i),_e(this,Nd,ch).call(this),ne(this,Xr,{code:void 0,reason:void 0}),M(this,Ke).emit("connected"),M(this,Pe).flushOnReconnect&&this.flush(),e()},M(this,Ae).onclose=a=>{try{i&&clearTimeout(i);const{code:o,reason:c}=a;r(c),M(this,Ve).debug("Socket closed. Close event:",{event:a}),M(this,Ve).debug(`Connection closed code: ${o}`),M(this,Ve).debug(`Connection closed reason: ${c}`),M(this,_s)||_e(this,Dd,ah).call(this,o,c)}catch(o){_e(this,vo,Td).call(this,o)}},M(this,Ae).onerror=a=>{_e(this,vo,Td).call(this,a)},M(this,Ae).onmessage=a=>_e(this,ih,KT).call(this,a)}catch(i){_e(this,vo,Td).call(this,i,r)}})})}send(t,e,r,i){const a={event:t,id:e,payload:r,metadata:i};if(M(this,Pe).queueOnDisconnect&&(!M(this,Ae)||M(this,Ae).readyState!==1))return M(this,Ve).debug("Queuing message since socket is not connected!",a),M(this,Ar).push(a),!1;const o=GT.encode(a);return _e(this,Po,Od).call(this,o)}emit(t,e,r,i){return this.send(t,e,r,i)}sendRaw(t){return _e(this,Po,Od).call(this,t)}receive(t,e){return M(this,Ke).on(t.toString(),e)}on(t,e){if(typeof t=="string"&&(t==="connected"||t==="disconnected"||t==="errored"||t==="reconnected"||t==="reconnecting"||t==="reconnectAttempt"||t==="reconnectFailure"||t==="failed")){M(this,Ke).on(t,e);return}this.receive(t,e)}removeAllListeners(){M(this,Ke).removeAllListeners()}removeReceiver(t,e){this.removeListener(t,e)}removeListener(t,e){M(this,Ke).removeListener(t.toString(),e)}removeReceivers(t){this.removeListeners(t)}removeListeners(t){M(this,Ke).listeners(t.toString()).map(e=>this.removeListener(t,e))}disconnect(){ne(this,gr,!1),_e(this,Nn,_o).call(this),this.removeAllListeners(),ne(this,Xr,{code:1e3,reason:"Sockrates disconnect method called"}),M(this,Ae).close(1e3,"Sockrates disconnect method called.")}}Ae=new WeakMap,_n=new WeakMap,Pe=new WeakMap,Ve=new WeakMap,Ar=new WeakMap,Ke=new WeakMap,gr=new WeakMap,Xr=new WeakMap,_s=new WeakMap,Cn=new WeakMap,Gs=new WeakMap,rh=new WeakSet,JT=function(s){if(s.startsWith("ws://")||s.startsWith("wss://"))return s;if(s.startsWith("https://"))return`wss://${s.substring(8)}`;if(s.startsWith("http://"))return`ws://${s.substring(7)}`;throw new Error("Invalid URL. URL must start with http(s):// or ws(s)://.")},vo=new WeakSet,Td=function(s,t){M(this,Ve).error("Error:",{error:s}),M(this,Ke).emit("errored",{error:s}),t==null||t(s)},ih=new WeakSet,KT=function(s){if(_e(this,Nd,ch).call(this),s.data===NO){M(this,Ve).debug("Received ping from server"),_e(this,Po,Od).call(this,LO);return}const t=GT.decode(s.data),{id:e,payload:r}=t;M(this,Ve).debug("Received message",{event:t.event,messageID:e}),M(this,Ke).emit(t.event.toString(),{id:e,payload:r})},nh=new WeakSet,Cg=function(){return M(this,Ae).readyState===1},Dd=new WeakSet,ah=function(s,t){ne(this,Xr,{reason:t,code:s}),M(this,Ke).emit("disconnected",{code:s,reason:t})},oh=new WeakSet,zT=function(){const{reason:s,code:t}=M(this,Xr);t&&t!==1e3&&M(this,gr)&&M(this,Pe).autoReconnect&&!M(this,_s)&&(M(this,Ve).debug(`Triggering reconnection due to ${s}.`),M(this,Ke).emit("reconnecting"),_e(this,Eo,vd).call(this))},Eo=new WeakSet,vd=function(s=!0){return u(this,null,function*(){if(s&&M(this,_s)){M(this,Ve).debug("Reconnect called when already in a reconnect loop. Ignoring.");return}if(M(this,_s)||M(this,Gs).reset(),M(this,Pe).maxReconnectionAttempts!==null&&M(this,Gs).getAttempts()>=M(this,Pe).maxReconnectionAttempts){M(this,Ke).emit("failed"),ne(this,_s,!1);return}ne(this,_s,!0),_e(this,Co,Ld).call(this),_e(this,Nn,_o).call(this);try{if(yield M(this,Gs).wait(),M(this,gr)===!1)return;if(M(this,Ve).debug(`Reconnection attempt ${M(this,Gs).getAttempts()}`),M(this,Ke).emit("reconnectAttempt",{attempt:M(this,Gs).getAttempts()}),yield this.connect(),!_e(this,nh,Cg).call(this))throw Error("Reconnect Failed");ne(this,_s,!1),ne(this,Xr,{code:void 0,reason:void 0}),M(this,Ke).emit("reconnected")}catch(t){M(this,Ve).debug("Failed to reconnect."),M(this,Ke).emit("reconnectFailure",{attempt:M(this,Gs).getAttempts()}),_e(this,Eo,vd).call(this,!1)}})},Po=new WeakSet,Od=function(s){try{return M(this,Ae).send(s),!0}catch(t){return M(this,Ve).error(t.message),!1}},Nd=new WeakSet,ch=function(){this.config.disconnectOnPingTimeout&&(M(this,Ve).debug("Resetting ping timeout"),_e(this,Nn,_o).call(this),ne(this,Cn,setTimeout(()=>{var s;M(this,Ve).debug("Disconnecting the socket due to ping timeout"),ne(this,gr,!0);const t=3002,e="Ping timeout";(s=M(this,Ae))==null||s.close(t,e),_e(this,Dd,ah).call(this,t,e)},M(this,Pe).pingTimeout)))},Nn=new WeakSet,_o=function(){M(this,Cn)&&(clearTimeout(M(this,Cn)),ne(this,Cn,void 0))},Co=new WeakSet,Ld=function(){M(this,Ae)&&(M(this,Ae).onopen=void 0,M(this,Ae).onerror=void 0,M(this,Ae).onmessage=void 0,M(this,Ae).onclose=void 0)};var xO=Object.defineProperty,UO=Object.getOwnPropertyDescriptor,Kl=(s,t,e,r)=>{for(var i=r>1?void 0:r?UO(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&xO(t,e,i),i};const wg=65535,$O=3e3;var zr,Ce,we,Me,ns,et,Oc,dh,Nc,lh,Gg;const YT=(Gg=class{constructor(s,{peerId:t,meetingId:e,authToken:r,capabilities:i}){m(this,we);m(this,Oc);m(this,Nc);m(this,zr,void 0);m(this,Ce,void 0);h(this,"roomName");h(this,"authToken");h(this,"capabilities");m(this,ns,void 0);m(this,et,void 0);var a;if(!t||!e||!r)throw new b("peerId, meetingId, or authToken can not be empty","0404");f(this,ns,void 0),f(this,et,s),this.capabilities=i,this.roomName=e,this.authToken=r,f(this,zr,U(this,Oc,dh).call(this,t)),f(this,Ce,new VO(n(this,zr),{autoReconnect:!0,disconnectOnPingTimeout:(a=i.includes("PING"))!=null?a:!1,queueOnDisconnect:!0,flushOnReconnect:!1,logger:this.logger})),this.handleSocketConnectionEvents()}get joinAttempted(){return n(this,we,Me).socketJoinAttempted}set joinAttempted(s){n(this,we,Me).socketJoinAttempted=s}get telemetry(){return n(this,et).getValue("telemetry")}get logger(){return n(this,et).getValue("logger")}get peerId(){return n(this,et).getValue("peerId")}updateURL(s){s!==this.peerId&&(f(this,zr,U(this,Oc,dh).call(this,s)),this.logger.debug("SocketService:: Connection URL updated.")),n(this,Ce).updateURL(n(this,zr))}static getSocketEdgeDomain(s){return nn({servicePrefix:"socket-edge",baseURI:s})}get url(){return n(this,zr)}connect(){return u(this,null,function*(){n(this,we,Me).socketJoinAttempted=!0,yield n(this,Ce).connect(),n(this,we,Me).socketJoinAttempted=!0,n(this,we,Me).socketState={state:"connected",reconnected:!1,reconnectionAttempt:void 0}})}disconnect(){n(this,we,Me).socketJoinAttempted=!1,n(this,Ce).disconnect(),n(this,we,Me).socketJoinAttempted=!0,n(this,we,Me).socketState={state:"disconnected",reconnected:!1,reconnectionAttempt:void 0}}get isConnected(){try{return n(this,Ce).readyState===1}catch(s){return!1}}sendMessage(s,t,e){const r={};return n(this,et).getValue("telemetry").injectContext(r),n(this,Ce).send(s,e!=null?e:U(this,Nc,lh).call(this),t,new TextEncoder().encode(JSON.stringify(r)))}sendMessagePromise(s,t,e,r){const i=parseInt({}.SOCKET_SERVICE_MESSAGE_REQUEST_TIMEOUT,10)||2e4;return this.sendMessagePromiseWithTimeout({event:s,timeout:i,protobuf:t,messageId:e,resp:r})}sendMessagePromiseWithTimeout({event:s,timeout:t,protobuf:e,messageId:r,resp:i}){const a=i!=null?i:s;return new Promise((o,c)=>{const d=(P,_)=>{n(this,Ce).removeListener(a,P),n(this,Ce).removeListener(wg,_),n(this,Ce).removeListener(Mr.errorResponse,_),n(this,Ce).removeListener(Cs.errorResponse,_)},l=r!=null?r:U(this,Nc,lh).call(this),p={};n(this,et).getValue("telemetry").injectContext(p);const T=({id:P,payload:_})=>{if(l===P){let C;try{const w=FR.fromBinary(_);C=new Error(w.errorMessage)}catch(w){C=new Error("failed to parse error message",{cause:w});try{const V=Bb.fromBinary(_);C=new Error(V.message)}catch(V){C=new Error("failed to parse error message",{cause:V})}}c(C),d(v,T)}},v=({id:P,payload:_})=>{l===P&&(o({id:P,payload:_}),d(v,T))};n(this,Ce).on(a,v),n(this,Ce).on(wg,T),n(this,Ce).on(Mr.errorResponse,T),n(this,Ce).on(Cs.errorResponse,T),setTimeout(()=>{d(v,T),c(new Error(`request timeout for callback eventId:${s}`))},t),n(this,Ce).send(s,l,e,new TextEncoder().encode(JSON.stringify(p)))})}on(s,t){n(this,Ce).on(s,t)}onStateEvent(s,t){n(this,Ce).on(s,t)}removeListener(s,t){n(this,Ce).removeListener(s,t)}removeListeners(s){n(this,Ce).removeListeners(s)}flush(){return n(this,Ce).flush()}handleSocketConnectionEvents(){this.onStateEvent("connected",()=>u(this,null,function*(){this.logger.info("SocketService::Connected to socket-edge"),n(this,ns)&&(clearTimeout(n(this,ns)),f(this,ns,void 0)),n(this,we,Me).updateSocketConnectionState("connected")})),this.onStateEvent("disconnected",({code:s,reason:t})=>{var i;this.logger.info("SocketService::Disconnected from socket-edge",{error:{code:s,reason:t},country:E.location.country});const{recv:e,send:r}=(i=n(this,we,Me).mediaState)!=null?i:{};e!=null&&e.state&&(e==null?void 0:e.state)!==Dn.CONNECTED||r!=null&&r.state&&(r==null?void 0:r.state)!==Dn.CONNECTED?n(this,et).getValue("peerSessionStore").emit(k.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:n(this,we,Me).joinAttempted}):f(this,ns,setTimeout(()=>{n(this,et).getValue("peerSessionStore").emit(k.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:n(this,we,Me).joinAttempted}),f(this,ns,void 0)},$O)),n(this,we,Me).updateSocketConnectionState("disconnected")}),this.onStateEvent("reconnecting",()=>u(this,null,function*(){this.logger.info("SocketService::Reconnecting to socket-edge",{country:E.location.country}),n(this,we,Me).updateSocketConnectionState("reconnecting")})),this.onStateEvent("reconnectAttempt",t=>u(this,[t],function*({attempt:s}){this.logger.info("SocketService::Attempting to reconnect to socket-edge",{socket:{retryAttempt:s}}),n(this,we,Me).updateSocketConnectionState("reconnectAttempt",s)})),this.onStateEvent("reconnectFailure",({attempt:s})=>{this.logger.info("SocketService::Reconnect attempt to socket-edge failed",{socket:{retryAttempt:s}}),n(this,we,Me).updateSocketConnectionState("reconnectFailure",s)}),this.onStateEvent("reconnected",()=>u(this,null,function*(){this.logger.info("SocketService::Reconnected to socket-edge",{connectionState:{joinAttempted:n(this,we,Me).mediaJoinAttempted}}),n(this,ns)&&(clearTimeout(n(this,ns)),f(this,ns,void 0)),n(this,et).getValue("peerSessionStore").emit(k.SOCKET_SERVICE_RECONNECTED,{wasJoinAttempted:n(this,we,Me).mediaJoinAttempted}),n(this,we,Me).updateSocketConnectionState("reconnected")})),this.onStateEvent("failed",()=>u(this,null,function*(){this.logger.info("SocketService::Failed to connect to socket-edge",{country:E.location.country}),n(this,et).getValue("peerSessionStore").emit(k.SOCKET_SERVICE_FAILED),n(this,we,Me).updateSocketConnectionState("failed")}))}},zr=new WeakMap,Ce=new WeakMap,we=new WeakSet,Me=function(){return n(this,et).getValue("connectionHandler")},ns=new WeakMap,et=new WeakMap,Oc=new WeakSet,dh=function(s){let t=YT.getSocketEdgeDomain(n(this,et).getValue("baseURI"));typeof xa(n(this,et),"socket_server_base")=="string"&&(t=xa(n(this,et),"socket_server_base"));const e=`wss://${t}`,r=new URL(`${e}/ws`),i=this.peerId,a=H(D({roomID:this.roomName,peerID:s,authToken:this.authToken,useMediaV2:!0},i!==s&&{oldPeerID:i}),{ping:this.capabilities.includes("PING"),capabilities:this.capabilities.map(o=>wd[o]).join(" "),joinWithDetails:!0,useCfWorker:!0,useStartSession:!0});return Object.entries(a).forEach(([o,c])=>{r.searchParams.append(o,c.toString())}),r.href},Nc=new WeakSet,lh=function(){return`${this.peerId}-${(Math.random()+1).toString(36).substring(7)}`},Gg);let Gc=YT;Kl([E.trace("SocketService.connect")],Gc.prototype,"connect",1);Kl([E.trace("SocketService.disconnect")],Gc.prototype,"disconnect",1);Kl([E.trace("SocketService.sendMessagePromise")],Gc.prototype,"sendMessagePromise",1);Kl([E.trace("SocketService.sendMessagePromiseWithTimeout")],Gc.prototype,"sendMessagePromiseWithTimeout",1);class FO{constructor(t){h(this,"socketService");this.socketService=t}handleConnectedRoomsDumpRaw({payload:t}){var a;const e=gk.fromBinary(t),r=e.meetings.map(o=>{var c;return{id:o.id,title:o.title,participants:(c=o.participants)!=null?c:[]}});return{parentMeeting:{id:e.parentMeeting.id,title:e.parentMeeting.title,participants:(a=e.parentMeeting.participants)!=null?a:[]},meetings:r}}handleTransferPeerRaw({payload:t}){const e=Fk.fromBinary(t);return{authToken:e.authToken,meetingId:e.meetingId}}handleMovedPeerRaw({payload:t}){const e=Pf.fromBinary(t);return{meetingId:e.meetingId,customParticipantId:e.customParticipantId}}handleConnectedRoomsUpdatedRaw({payload:t}){return Zp.fromBinary(t).payloads.map(r=>({id:r.id,title:r.title}))}handleConnectedRoomsDeletedRaw({payload:t}){return Ak.fromBinary(t).payloads}getConnectedRoomsDump(){return u(this,null,function*(){const t=yield this.socketService.sendMessagePromise($.getConnectedRoomsDump);return this.handleConnectedRoomsDumpRaw(t)})}createConnectedRooms(t){return u(this,null,function*(){const{payload:e}=yield this.socketService.sendMessagePromise($.createConnectedRooms,vk.toBinary({payloads:t}));return Zp.fromBinary(e).payloads.map(i=>({id:i.id,title:i.title}))})}updateConnectedRooms(t){return u(this,null,function*(){})}disableConnectedRooms(t){return u(this,null,function*(){const e=t.map(i=>({id:i})),r=yield this.socketService.sendMessagePromise($.deleteConnectedRooms,kk.toBinary({payloads:e}));return this.handleConnectedRoomsDeletedRaw(r)})}movePeersBetweenRooms(t){return u(this,null,function*(){try{const e=yield this.socketService.sendMessagePromise($.movePeers,Vk.toBinary({sourceMeetingId:t.sourceMeetingId,destinationMeetingId:t.destinationMeetingId,participants:t.participants}));return new TextDecoder().decode(e.payload).includes("error")?{success:!1,error:"failed to move participants"}:{success:!0}}catch(e){return{success:!1,error:e}}})}}var BO=Object.defineProperty,HO=Object.getOwnPropertyDescriptor,qO=(s,t,e,r)=>{for(var i=r>1?void 0:r?HO(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&BO(t,e,i),i},Ps;class QT extends jt{constructor(e){const r=e.getValue("logger");super(r);h(this,"meetings",[]);h(this,"parentMeeting",null);m(this,Ps,void 0);f(this,Ps,e)}get supportsConnectedMeetings(){return n(this,Ps).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.
13
13
  Please connect with our support team to enable connected meetings.`)}getConnectedMeetings(){return u(this,null,function*(){this.validateConnectedMeetingsAction(),this.logger.info("Getting connected meetings dump");const e=yield n(this,Ps).getValue("connectedMeetingsSocketHandler").getConnectedRoomsDump();return this.logger.info("Got connected meetings dump"),e})}createMeetings(e){return u(this,null,function*(){this.validateConnectedMeetingsAction(),this.logger.info(`Creating connected meetings ${JSON.stringify(e)}`);const r=yield n(this,Ps).getValue("connectedMeetingsSocketHandler").createConnectedRooms(e);return this.logger.info(`Created connected meetings ${JSON.stringify(r)}`),r.map(i=>({id:i.id,title:i.title}))})}updateMeetings(e){return u(this,null,function*(){this.validateConnectedMeetingsAction(),this.logger.info(`Updating connected meetings ${JSON.stringify(e)}`),yield n(this,Ps).getValue("connectedMeetingsSocketHandler").updateConnectedRooms(e.map(r=>({meetingId:r.id,title:r.title}))),this.logger.info(`Updated connected meetings ${JSON.stringify(e)}`)})}deleteMeetings(e){return u(this,null,function*(){this.validateConnectedMeetingsAction(),this.logger.info(`Moving participants before deleting connected meetings ${JSON.stringify(e)}`);const r=this.meetings.map(a=>e.includes(a.id)&&a.participants.length!==0?this.moveParticipants(a.id,this.parentMeeting.id,a.participants.map(o=>o.id)):Promise.resolve());this.logger.info(`Moved participants before deleting connected meetings ${JSON.stringify(e)}. Deleting now.`),yield Promise.all(r);const i=yield n(this,Ps).getValue("connectedMeetingsSocketHandler").disableConnectedRooms(e);return this.logger.info(`Deleted connected meetings ${JSON.stringify(e)}`),i})}moveParticipants(e,r,i){return u(this,null,function*(){this.validateConnectedMeetingsAction(),this.logger.info(`Moving connected meetings participants ${JSON.stringify(i)} from ${e} to ${r}`);const a=yield n(this,Ps).getValue("connectedMeetingsSocketHandler").movePeersBetweenRooms({sourceMeetingId:e,destinationMeetingId:r,participants:i.map(o=>({id:o}))});return a.success?(this.logger.info(`Moved connected meetings participants ${JSON.stringify(i)} from ${e} to ${r}`),this.moveSuccessHandler(e,r,i)):this.logger.error(`Failed to move connected meetings participants ${JSON.stringify(i)} from ${e} to ${r}`),a})}moveParticipantsWithCustomPreset(e,r,i){return u(this,null,function*(){this.validateConnectedMeetingsAction(),this.logger.info(`Moving connected meetings participants (custom preset) ${JSON.stringify(i)} from ${e} to ${r}`);const a=yield n(this,Ps).getValue("connectedMeetingsSocketHandler").movePeersBetweenRooms({sourceMeetingId:e,destinationMeetingId:r,participants:i});return a.success?(this.logger.info(`Moved connected meetings participants (custom preset) ${JSON.stringify(i)} from ${e} to ${r}`),this.moveSuccessHandler(e,r,i.map(o=>o.id))):this.logger.error(`Failed to move connected meetings participants (custom preset) ${JSON.stringify(i)} from ${e} to ${r}`),a})}moveSuccessHandler(e,r,i){const a=new Map;[...this.parentMeeting.participants,...this.meetings.flatMap(o=>o.participants)].forEach(o=>a.set(o.id,o)),r===this.parentMeeting.id&&(this.parentMeeting.participants=this.parentMeeting.participants.concat(i.map(o=>a.get(o)))),e===this.parentMeeting.id&&(this.parentMeeting.participants=this.parentMeeting.participants.filter(o=>!i.includes(o.id))),this.meetings=this.meetings.map(o=>{if(r===o.id){const c=o.participants.concat(i.map(d=>a.get(d)));return H(D({},o),{participants:c})}if(e===o.id){const c=o.participants.filter(d=>!i.includes(d.id));return H(D({},o),{participants:c})}return o})}}Ps=new WeakMap;qO([Mt({maxInvocations:60,period:60})],QT.prototype,"getConnectedMeetings",1);var jO=Object.defineProperty,GO=Object.getOwnPropertyDescriptor,Jh=(s,t,e,r)=>{for(var i=r>1?void 0:r?GO(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&jO(t,e,i),i},ge,Wg;const XT=(Wg=class{constructor(s){h(this,"connectedMeetings");m(this,ge,void 0);f(this,ge,s),this.connectedMeetings=new QT(s)}get telemetry(){return n(this,ge).getValue("telemetry")}get logger(){return n(this,ge).getValue("logger")}static init(s){const t=new XT(s);return t.connectedMeetings.supportsConnectedMeetings&&(t.setupEvents(),s.getValue("self").once("roomJoined",()=>t.getConnectedMeetings())),t}getConnectedMeetings(){this.connectedMeetings.getConnectedMeetings()}setupEvents(){n(this,ge).getValue("connectedMeetingsSocketHandler").socketService.on($.getConnectedRoomsDump,this.handleConnectedRoomsDump.bind(this)),n(this,ge).getValue("connectedMeetingsSocketHandler").socketService.on($.transferPeer,this.handleTransferPeer.bind(this)),n(this,ge).getValue("connectedMeetingsSocketHandler").socketService.on($.movedPeer,this.handleMovedPeer.bind(this)),n(this,ge).getValue("connectedMeetingsSocketHandler").socketService.on($.connectedRoomsUpdated,this.handleConnectedRoomsUpdated.bind(this)),n(this,ge).getValue("connectedMeetingsSocketHandler").socketService.on($.connectedRoomsDeleted,this.handleConnectedRoomsDeleted.bind(this))}handleTransferPeer(s){this.logger.info("Received backend request to switch connected meetings");const t=n(this,ge).getValue("connectedMeetingsSocketHandler").handleTransferPeerRaw(s);return this.logger.info(`Honoring request to switch connected meetings. Going to ${t==null?void 0:t.meetingId}`),this.switchMeeting(t)}switchMeeting(e){return u(this,arguments,function*({authToken:s,meetingId:t}){var a,o,c,d;if(!this.connectedMeetings.supportsConnectedMeetings)throw new Error(`You are not allowed to perform this action.
14
14
  Please connect with our support team to enable connected meetings.`);this.logger.info("ConnectedMeetingsController::switchMeeting:: asking ui-kit to show switching breakout UI"),this.connectedMeetings.emit("changingMeeting",t);const r={video:n(this,ge).getValue("self").videoEnabled,audio:n(this,ge).getValue("self").audioEnabled};try{n(this,ge).getValue("self").cleanupEvents(),yield n(this,ge).getValue("meeting").leave("connected-meeting")}catch(l){this.logger.error(`ConnectedMeetingsController:: switchMeeting:: issues in leaving previous meeting. Meeting Id: ${(o=(a=n(this,ge).getValue("meeting"))==null?void 0:a.meta)==null?void 0:o.meetingId}`,{error:l})}this.logger.info(`ConnectedMeetingsController::switchMeeting:: initializing new meeting. Meeting Id: ${t}`);const i=yield ev.init(H(D({},n(this,ge).getValue("options")),{cachedUserDetails:null,defaults:H(D(D({},n(this,ge).getValue("options").defaults),r),{mediaHandler:n(this,ge).getValue("self")}),authToken:s}));this.logger.info(`ConnectedMeetingsController::switchMeeting:: initialized new meeting. Meeting Id: ${(c=i==null?void 0:i.meta)==null?void 0:c.meetingId}`);try{const{hidden:l}=n(this,ge).getValue("self");i.self.setName(n(this,ge).getValue("self").name),yield i.join(),l&&i.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: ${(d=i==null?void 0:i.meta)==null?void 0:d.meetingId}`),this.connectedMeetings.emit("meetingChanged",i),i})}handleConnectedRoomsDump(s){const t=n(this,ge).getValue("connectedMeetingsSocketHandler").handleConnectedRoomsDumpRaw(s);this.connectedMeetings.meetings=t.meetings.map(e=>({id:e.id,title:e.title,participants:e.participants||[]})),this.connectedMeetings.parentMeeting={id:t.parentMeeting.id,title:t.parentMeeting.title,participants:t.parentMeeting.participants},this.emitStateUpdate()}handleMovedPeer(s){return n(this,ge).getValue("connectedMeetingsSocketHandler").handleMovedPeerRaw(s)}handleConnectedRoomsUpdated(s){const t=n(this,ge).getValue("connectedMeetingsSocketHandler").handleConnectedRoomsUpdatedRaw(s),e=new Map;this.connectedMeetings.meetings.forEach(r=>{e.set(r.id,r)}),t.forEach(r=>{e.has(r.id)?e.get(r.id).title=r.title:e.set(r.id,H(D({},r),{participants:[]}))}),this.connectedMeetings.meetings=Array.from(e.values()),this.emitStateUpdate()}handleConnectedRoomsDeleted(s){const e=n(this,ge).getValue("connectedMeetingsSocketHandler").handleConnectedRoomsDeletedRaw(s).map(r=>r.id);this.connectedMeetings.meetings=this.connectedMeetings.meetings.filter(r=>!e.includes(r.id)),this.emitStateUpdate()}emitStateUpdate(){this.connectedMeetings.emit("stateUpdate",{meetings:this.connectedMeetings.meetings,parentMeeting:this.connectedMeetings.parentMeeting})}},ge=new WeakMap,Wg);let zl=XT;Jh([E.trace("ConnectedMeetingsController.getConnectedMeetings")],zl.prototype,"getConnectedMeetings",1);Jh([E.trace("ConnectedMeetingsController.setupEvents")],zl.prototype,"setupEvents",1);Jh([E.trace("ConnectedMeetingsController.switchMeeting")],zl.prototype,"switchMeeting",1);var WO=Object.defineProperty,JO=Object.getOwnPropertyDescriptor,Yl=(s,t,e,r)=>{for(var i=r>1?void 0:r?JO(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&WO(t,e,i),i};const wn=class{constructor(s,t,e){h(this,"apiBase");h(this,"selfController");h(this,"pollController");h(this,"chatController");h(this,"metaController");h(this,"storesManager");h(this,"stageController");h(this,"pluginController");h(this,"internalsController");h(this,"recordingController");h(this,"livestreamController");h(this,"participantController");h(this,"connectedMeetingsController");h(this,"telemetry");h(this,"logger");this.apiBase=s,this.storesManager=t.storesManager,this.metaController=t.metaController,this.selfController=t.selfController,this.chatController=t.chatController,this.pollController=t.pollController,this.stageController=t.stageController,this.pluginController=t.pluginController,this.recordingController=t.recordingController,this.internalsController=t.internalsController,this.participantController=t.participantController,this.livestreamController=t.livestreamController,this.connectedMeetingsController=t.connectedMeetingsController,this.telemetry=e.getValue("telemetry"),this.logger=e.getValue("logger")}static init(s){return u(this,null,function*(){var N,B;const{peerId:t,apiBase:e,authToken:r,meetingId:i,organizationId:a,cachedUserDetails:o,logger:c}=s.getAllValues();if(NT(s),Se.isSupported()===!1)throw new b("Browser not supported","0010",c,!0);const d=XM(s,{authToken:r,baseURL:e,cachedUserDetails:o});d.setRoomName(i),d.setRoomUUID(i),d.setOrganizationId(a),d.setHeader("tracing-id",t),s.setValue("apiClient",d);const l=new N0(s);s.setValue("connectionHandler",l);const p=wn.createSocketService(s),g=p.connect(),T=d.getUserDetails(),v=d.getPlugins();let P,_="";try{yield wn.setupFlagsmith(s)}catch(G){c.error("Failed to setup flagsmith",{error:G})}try{yield g}catch(G){c.error("[Controller]: Failed to connect to socket server:",{error:G})}try{({meetingTitle:_}=yield d.getRoomNodeData()),P=yield T,c.info("CF SFU is being used."),s.setValue("presetName",P.preset.name)}catch(G){c.error("Failed to get room metadata",{error:G})}const C=Bu.init(P.preset,!s.getValue("modules").theme),w=Gu.init(s,C.viewType,P.preset.permissions),V=wn.setupControllers(p,s,P,v,_,C,w);_0(C)&&((N=wn.createRoomNodeClient(s,p).initializeConnection(P.participant.name,i,!1,w))==null||N.catch(re=>{c.error("[Controller]: Failed to queue partial media room promise:",{error:re})})),E.location.country=(B=d.ipInfo)==null?void 0:B.country;const{controllers:F}=yield V;return Ew(),new wn(e,F,s)})}static setupFlagsmith(s){return u(this,null,function*(){var l;const{peerId:t,baseURI:e,overrides:r,meetingId:i,organizationId:a,logger:o}=s.getAllValues(),c=Sw(i),d=H(D({entity:_u.PEER,clientId:a,isAnonUser:!a,sdkVersion:s.getValue("sdkVersion"),presetName:s.getValue("presetName"),meetingHash:c,roomName:i},Se.getDeviceInfo()),{isReactNative:navigator.isReactNative});try{const p=(l=r==null?void 0:r.whitelabelled_flags_endpoint)==null||l?nn({servicePrefix:"flags",baseURI:e}):"edge.api.flagsmith.com";yield s.getValue("flagsmith").identify(`${_u.PEER}_${t}`,JSON.parse(JSON.stringify(d)),!1,5e3,p,o),o.info("flagsmith::allFlags",{flags:JSON.stringify(s.getValue("flagsmith").getAllFlags())},!0)}catch(p){o.error("Failed to fetch flagsmith flags")}})}static setupControllers(s,t,e,r,i,a,o){return u(this,null,function*(){var I,Ue,wr;const c=t.getValue("modules"),{participant:d}=e,l=t.getValue("defaults"),p=t.getValue("logger"),{viewType:g,mediaConstraints:{audio:T}}=a;t.setValue("viewType",g),t.setValue("defaults",D({mediaConfiguration:{audio:{enableHighBitrate:(I=T.enableHighBitrate)!=null?I:!1,enableStereo:(Ue=T.enableStereo)!=null?Ue:!1}}},l)),t.setValue("maxPreferredStreams",Se.isMobile()?a.maxVideoStreams.mobile:a.maxVideoStreams.desktop);let v,P,_,C,w,V,F,N,B;const G=new hO(t,s),re=new FO(s);t.setValue("connectedMeetingsSocketHandler",re);const tt=new Wl(t,s),ds=new os(t,s),ii=new vO(s),ls=new VT(t,s),A=new yO(t,s),S=new uO(s),R=new dn(t,s),x=yield ri.init(t,ls,d,o,a);t.setValue("selfController",x);const fe=yield xf.init(t,x.self,ls,G,i);if(c.participant&&(N=new Cr(t,x.self,ls)),(wr=c.e2ee)!=null&&wr.enabled&&c.e2ee.manager.init(p,t.getValue("peerSessionStore")),c.chat&&(P=yield ws.init(t,ds,R,x.self,N.participants)),c.internals&&(w=yield Lh.init(t)),c.livestream&&a.viewType===At.Livestream&&t.getValue("flagsmith").hasFeature(ee.LIVESTREAM)&&(F=new Wf(t,x.self,S)),a.viewType!==At.Chat){if(c.poll&&(v=yield Of.init(t,x.self,tt)),c.recording&&(V=new Bf(t,x.self,ls)),c.stage&&(_=new Uf(t,ii,ls,x.self,N.participants)),c.plugin){if(!N)throw new b("The plugin module cannot be initialized without the `participant` module","0102");const qs=yield r;C=yield Bc.init(t,qs,A,ds,P==null?void 0:P.chat,x.self,N.participants,i)}if(c.connectedMeetings&&(B=yield zl.init(t)),c.pip){const qs=yield Cu._init(t,x.self);t.setValue("pip",qs)}}const L={storesManager:new wD(t,A),pollController:v,selfController:x,metaController:fe,chatController:P,stageController:_,pluginController:C,recordingController:V,internalsController:w,livestreamController:F,participantController:N,connectedMeetingsController:B};return{theme:a,permissions:o,controllers:L}})}static createRoomNodeClient(s,t){const{peerId:e}=s.getAllValues();return OT(s,{socket:t,peerId:e})}static createSocketService(s){const{peerId:t,meetingId:e,authToken:r}=s.getAllValues(),i=["PING"];return new Gc(s,{peerId:t,meetingId:e,authToken:r,capabilities:i})}};let Wc=wn;Yl([E.trace("Controller.init")],Wc,"init",1);Yl([E.trace("setupFlagsmith")],Wc,"setupFlagsmith",1);Yl([E.trace("Controller.createRoomNodeClient")],Wc,"createRoomNodeClient",1);Yl([E.trace("Controller.createSocketService")],Wc,"createSocketService",1);class KO{constructor(){h(this,"battery");h(this,"logger");h(this,"init",t=>u(this,null,function*(){this.logger=t;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(e){t.error("Error getting battery",e)}}));h(this,"updateChargeInfo",()=>{var t;this.logger.log(`Battery charging? ${(t=this.battery)!=null&&t.charging?"Yes":"No"}`)});h(this,"updateLevelInfo",()=>{if(!this.battery){this.logger.log("Battery level: Not known");return}this.logger.log(`Battery level: ${this.battery.level*100}%`)});h(this,"cleanup",()=>{var t,e;"getBattery"in navigator&&((t=this.battery)==null||t.removeEventListener("chargingchange",this.updateChargeInfo),(e=this.battery)==null||e.removeEventListener("levelchange",this.updateLevelInfo))})}}const Rg=new KO;function zO(s,t){s.startsWith("eyJ")||console.error("Invalid auth token provided. Ensure you are passing a %cparticipant `authToken`%c — not an Org API Key or an incorrectly formatted token.\nYou get the participant token from the Add Participant API: https://docs.realtime.cloudflare.com/api#/operations/add_participant","font-weight: bold","font-weight: normal");try{const{meetingId:e,orgId:r,participantId:i}=JSON.parse(atob(s.split(".")[1]));if(!e)throw Error(`Received V1 auth token ${s}`);let a=gi.baseURI.prod;t&&(a=t);const o=`https://${nn({servicePrefix:"api",baseURI:a})}`;return{meetingId:e,orgId:r,participantId:i,baseURI:a,apiBase:o}}catch(e){throw new b("Invalid auth token","0004")}}var Yr,en,tn,Lc,bl,ZT;class YO{constructor(){m(this,bl);m(this,Yr,new Audio);m(this,en,new MediaStream);m(this,tn,new Map);m(this,Lc,void 0);n(this,Yr).srcObject=n(this,en),n(this,Yr).autoplay=!0}playTracks(t){return u(this,null,function*(){return t.forEach(e=>{n(this,tn).has(e.id)||(n(this,en).addTrack(e),n(this,tn).set(e.id,e))}),this.play()})}setSpeakerDevice(t){typeof HTMLAudioElement.prototype.setSinkId=="function"&&n(this,Yr).setSinkId(t)}removeTrack(t){const e=n(this,tn).get(t);e&&(n(this,en).removeTrack(e),n(this,tn).delete(t))}play(){return u(this,null,function*(){return n(this,Yr).srcObject=n(this,en),n(this,Yr).play().catch(t=>{U(this,bl,ZT).call(this,t)})})}onError(t){f(this,Lc,t)}}Yr=new WeakMap,en=new WeakMap,tn=new WeakMap,Lc=new WeakMap,bl=new WeakSet,ZT=function(t){var e;(e=n(this,Lc))==null||e.call(this,t)};var sn;class QO extends YO{constructor(){super();m(this,sn,void 0);f(this,sn,new Map)}addParticipantTrack(e,r){n(this,sn).set(e,r.id),this.playTracks([r])}removeParticipantTrack(e){const r=n(this,sn).get(e);r&&this.removeTrack(r),n(this,sn).delete(e)}}sn=new WeakMap;var XO=Object.defineProperty,ZO=Object.getOwnPropertyDescriptor,Ql=(s,t,e,r)=>{for(var i=r>1?void 0:r?ZO(t,e):t,a=s.length-1,o;a>=0;a--)(o=s[a])&&(i=(r?o(t,e,i):o(i))||i);return r&&i&&XO(t,e,i),i},Ge,rn,Jg;let ti=(Jg=class{constructor(t,e){m(this,Ge,void 0);m(this,rn,void 0);f(this,rn,t),f(this,Ge,e)}get peerId(){return n(this,rn).getValue("peerId")}static initMedia(){return u(this,arguments,function*(t={},e=!1,r=void 0){var d;const i=(d=r==null?void 0:r.peerId)!=null?d:Tr.v4(),a=mr.createContext(i,{peerId:i}),o=a.getValue("logger");o.init(a);const c=new eT(a,o);return yield c.init(t,e,a),a.setValue("defaults",{mediaHandler:c}),c})}static init(t){return u(this,null,function*(){var v,P,_,w,V,F,N;Se.init();const{mediaHandler:e}=(v=t.defaults)!=null?v:{},r=(e==null?void 0:e.peerId)||((_=(P=t==null?void 0:t.cachedUserDetails)==null?void 0:P.peerId)!=null?_:Tr.v4()),{authToken:i,baseURI:a}=t,C=zO(i,a),{meetingId:o}=C,c=io(C,["meetingId"]);window.__zone_symbol__DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION=!0;const d=ti.setupContext(r,t,o,c),l=d.getValue("telemetry"),p=d.getValue("logger");lv(p),Rg.init(p),l.init(d,{roomName:o,userId:c.participantId,organizationId:c.orgId,peerId:r},(V=(w=t.modules)==null?void 0:w.tracing)!=null?V:!0),p.init(d),p.info("Client::init::options",{clientInitOptions:H(D({},t),{authToken:`${(F=t.authToken)==null?void 0:F.slice(0,10)}...
15
- ${(N=t.authToken)==null?void 0:N.slice(-10)}`})});const g=yield Wc.init(d),T=new ti(d,g);return d.setValue("meeting",T),T})}static setupContext(t,e,r,i){var d,l;const a=mr.createContext(t,e),o=D(D({},lw),e==null?void 0:e.modules),c=e.defaults||{audio:!0,video:!0};return a.setValue("options",e),a.setValue("peerId",t),a.setValue("modules",o),a.setValue("sdkName","web-core"),a.setValue("meetingId",r),a.setValue("apiBase",i.apiBase),a.setValue("baseURI",i.baseURI),a.setValue("userId",i.participantId),a.setValue("organizationId",i.orgId),a.setValue("authToken",e.authToken),a.setValue("overrides",(d=e.overrides)!=null?d:{}),a.setValue("env",uw({baseURI:i.baseURI})),a.setValue("defaults",c),a.setValue("onError",e.onError||(()=>{})),a.setValue("cachedUserDetails",Rs(e.cachedUserDetails)),a.setValue("sdkVersion","1.2.4-staging.1"),(l=e.modules)!=null&&l.experimentalAudioPlayback&&a.setValue("audioPlayback",new QO),a}join(){return u(this,null,function*(){const{selfController:t}=n(this,Ge);return t.self.roomJoined?null:t.joinRoom()})}leave(t){return u(this,null,function*(){Rg.cleanup(),n(this,rn).getValue("peerSessionStore").reset();const{selfController:e}=n(this,Ge);return e.leaveRoom(t)})}get participants(){var t;return(t=n(this,Ge).participantController)==null?void 0:t.participants}get self(){var t;return(t=n(this,Ge).selfController)==null?void 0:t.self}get meta(){var t;return(t=n(this,Ge).metaController)==null?void 0:t.meta}get ai(){var t;return(t=n(this,Ge).metaController)==null?void 0:t.ai}get plugins(){var t;return(t=n(this,Ge).pluginController)==null?void 0:t.plugins}get chat(){var t;return(t=n(this,Ge).chatController)==null?void 0:t.chat}get polls(){var t;return(t=n(this,Ge).pollController)==null?void 0:t.polls}get connectedMeetings(){var t;return(t=n(this,Ge).connectedMeetingsController)==null?void 0:t.connectedMeetings}get recording(){var t;return(t=n(this,Ge).recordingController)==null?void 0:t.recording}get livestream(){var t;return(t=n(this,Ge).livestreamController)==null?void 0:t.livestream}get stage(){var t;return(t=n(this,Ge).stageController)==null?void 0:t.stage}get stores(){return n(this,Ge).storesManager}get audio(){return n(this,rn).getValue("audioPlayback")}get __internals__(){var t;return(t=n(this,Ge).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)})}},Ge=new WeakMap,rn=new WeakMap,Jg);Ql([ut("0002"),_r.executeWithLock({methodName:"meeting.join",lockName:"Client.join",timeout:3e3})],ti.prototype,"join",1);Ql([ut("0003")],ti.prototype,"leave",1);Ql([ut("0001"),_r.executeWithLock({methodName:"Client.init",lockName:"Client.init",timeout:3e3})],ti,"init",1);ti=Ql([ut("0000")],ti);const ev=ti;module.exports=ev;
15
+ ${(N=t.authToken)==null?void 0:N.slice(-10)}`})});const g=yield Wc.init(d),T=new ti(d,g);return d.setValue("meeting",T),T})}static setupContext(t,e,r,i){var d,l;const a=mr.createContext(t,e),o=D(D({},lw),e==null?void 0:e.modules),c=e.defaults||{audio:!0,video:!0};return a.setValue("options",e),a.setValue("peerId",t),a.setValue("modules",o),a.setValue("sdkName","web-core"),a.setValue("meetingId",r),a.setValue("apiBase",i.apiBase),a.setValue("baseURI",i.baseURI),a.setValue("userId",i.participantId),a.setValue("organizationId",i.orgId),a.setValue("authToken",e.authToken),a.setValue("overrides",(d=e.overrides)!=null?d:{}),a.setValue("env",uw({baseURI:i.baseURI})),a.setValue("defaults",c),a.setValue("onError",e.onError||(()=>{})),a.setValue("cachedUserDetails",Rs(e.cachedUserDetails)),a.setValue("sdkVersion","1.2.4-staging.3"),(l=e.modules)!=null&&l.experimentalAudioPlayback&&a.setValue("audioPlayback",new QO),a}join(){return u(this,null,function*(){const{selfController:t}=n(this,Ge);return t.self.roomJoined?null:t.joinRoom()})}leave(t){return u(this,null,function*(){Rg.cleanup(),n(this,rn).getValue("peerSessionStore").reset();const{selfController:e}=n(this,Ge);return e.leaveRoom(t)})}get participants(){var t;return(t=n(this,Ge).participantController)==null?void 0:t.participants}get self(){var t;return(t=n(this,Ge).selfController)==null?void 0:t.self}get meta(){var t;return(t=n(this,Ge).metaController)==null?void 0:t.meta}get ai(){var t;return(t=n(this,Ge).metaController)==null?void 0:t.ai}get plugins(){var t;return(t=n(this,Ge).pluginController)==null?void 0:t.plugins}get chat(){var t;return(t=n(this,Ge).chatController)==null?void 0:t.chat}get polls(){var t;return(t=n(this,Ge).pollController)==null?void 0:t.polls}get connectedMeetings(){var t;return(t=n(this,Ge).connectedMeetingsController)==null?void 0:t.connectedMeetings}get recording(){var t;return(t=n(this,Ge).recordingController)==null?void 0:t.recording}get livestream(){var t;return(t=n(this,Ge).livestreamController)==null?void 0:t.livestream}get stage(){var t;return(t=n(this,Ge).stageController)==null?void 0:t.stage}get stores(){return n(this,Ge).storesManager}get audio(){return n(this,rn).getValue("audioPlayback")}get __internals__(){var t;return(t=n(this,Ge).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)})}},Ge=new WeakMap,rn=new WeakMap,Jg);Ql([ut("0002"),_r.executeWithLock({methodName:"meeting.join",lockName:"Client.join",timeout:3e3})],ti.prototype,"join",1);Ql([ut("0003")],ti.prototype,"leave",1);Ql([ut("0001"),_r.executeWithLock({methodName:"Client.init",lockName:"Client.init",timeout:3e3})],ti,"init",1);ti=Ql([ut("0000")],ti);const ev=ti;module.exports=ev;