@cloudflare/realtimekit 1.2.5 → 1.2.6-staging.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +2 -2
- package/dist/dependencies.txt +1 -1
- package/dist/index.cjs.js +2 -2
- package/dist/index.es.js +2 -6
- package/dist/index.es5.js +1 -8
- package/dist/index.rn.js +2 -2
- package/package.json +2 -3
package/dist/index.cjs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";var WT=Object.defineProperty,JT=Object.defineProperties;var KT=Object.getOwnPropertyDescriptors;var Fc=Object.getOwnPropertySymbols,zT=Object.getPrototypeOf,qh=Object.prototype.hasOwnProperty,jh=Object.prototype.propertyIsEnumerable,YT=Reflect.get;var Gh=Math.pow,Jl=(s,t,e)=>t in s?WT(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,O=(s,t)=>{for(var e in t||(t={}))qh.call(t,e)&&Jl(s,e,t[e]);if(Fc)for(var e of Fc(t))jh.call(t,e)&&Jl(s,e,t[e]);return s},G=(s,t)=>JT(s,KT(t));var Bc=(s,t)=>{var e={};for(var r in s)qh.call(s,r)&&t.indexOf(r)<0&&(e[r]=s[r]);if(s!=null&&Fc)for(var r of Fc(s))t.indexOf(r)<0&&jh.call(s,r)&&(e[r]=s[r]);return e};var h=(s,t,e)=>(Jl(s,typeof t!="symbol"?t+"":t,e),e),Kl=(s,t,e)=>{if(!t.has(s))throw TypeError("Cannot "+e)};var n=(s,t,e)=>(Kl(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)},T=(s,t,e,r)=>(Kl(s,t,"write to private field"),r?r.call(s,e):t.set(s,e),e);var L=(s,t,e)=>(Kl(s,t,"access private method"),e),Wh=(s,t,e)=>YT(zT(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 gr=require("uuid"),$g=require("bowser"),S=require("@protobuf-ts/runtime"),QT=require("worker-timers"),XT=require("sdp-transform");function Fg(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 Xc=Fg(QT),ls=Fg(XT);function ZT(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:ZT});function ev(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:ev});const tv=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")}))},vo="chrome",Bg="opera",Hg="firefox",qg="iexplorer",jg="safari",Gg="nwjs",Wg="electron",Jg="react-native",ih="unknown",pd={Chrome:vo,Chromium:vo,Opera:Bg,Firefox:Hg,"Internet Explorer":qg,Safari:jg};function sv(){const{userAgent:s}=navigator,t={name:ih,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=vo,t.version=e)}else t.name=vo,t.version=s.match(/Chrome\/([\d.]+)/)[1];return t}function rv(){const{userAgent:s}=navigator;if(s.match(/Electron/)){const t=s.match(/Electron\/([\d.]+)/)[1];return{name:Wg,version:t}}return null}function iv(){const{userAgent:s}=navigator;if(s.match(/JitsiMeetNW/)){const t=s.match(/JitsiMeetNW\/([\d.]+)/)[1];return{name:Gg,version:t}}}function nv(){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:Jg,version:t}}function av(s){let t;const e=[nv,rv,iv];for(let i=0;i<e.length;i+=1)if(t=e[i](),t)return t;const r=s.getBrowserName();return r in pd?{name:pd[r],version:s.getBrowserVersion()}:(t=sv(),t||{name:ih,version:void 0})}class ov{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=$g.getParser(navigator.userAgent),typeof t=="undefined"){const i=av(this._bowser);e=i.name,r=i.version}else t.name in pd?(e=pd[t.name],r=t.version):(e=ih,r=void 0);this._name=e,this._version=r}getName(){return this._name}isChrome(){return this._name===vo}isOpera(){return this._name===Bg}isFirefox(){return this._name===Hg}isIExplorer(){return this._name===qg}isSafari(){return this._name===jg}isNWJS(){return this._name===Gg}isElectron(){return this._name===Wg}isReactNative(){return this._name===Jg||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 cv extends ov{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 cv;var ct={},dv={get exports(){return ct},set exports(s){ct=s}},_n=typeof Reflect=="object"?Reflect:null,Jh=_n&&typeof _n.apply=="function"?_n.apply:function(t,e,r){return Function.prototype.apply.call(t,e,r)},Zc;_n&&typeof _n.ownKeys=="function"?Zc=_n.ownKeys:Object.getOwnPropertySymbols?Zc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Zc=function(t){return Object.getOwnPropertyNames(t)};function lv(s){console&&console.warn&&console.warn(s)}var Kg=Number.isNaN||function(t){return t!==t};function oe(){oe.init.call(this)}dv.exports=oe;ct.once=gv;oe.EventEmitter=oe;oe.prototype._events=void 0;oe.prototype._eventsCount=0;oe.prototype._maxListeners=void 0;var Kh=10;function Pl(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 Kh},set:function(s){if(typeof s!="number"||s<0||Kg(s))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+s+".");Kh=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||Kg(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 zg(s){return s._maxListeners===void 0?oe.defaultMaxListeners:s._maxListeners}oe.prototype.getMaxListeners=function(){return zg(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")Jh(d,this,e);else for(var l=d.length,p=em(d,l),r=0;r<l;++r)Jh(p[r],this,e);return!0};function Yg(s,t,e,r){var i,a,o;if(Pl(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=zg(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,lv(c)}return s}oe.prototype.addListener=function(t,e){return Yg(this,t,e,!1)};oe.prototype.on=oe.prototype.addListener;oe.prototype.prependListener=function(t,e){return Yg(this,t,e,!0)};function uv(){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 Qg(s,t,e){var r={fired:!1,wrapFn:void 0,target:s,type:t,listener:e},i=uv.bind(r);return i.listener=e,r.wrapFn=i,i}oe.prototype.once=function(t,e){return Pl(e),this.on(t,Qg(this,t,e)),this};oe.prototype.prependOnceListener=function(t,e){return Pl(e),this.prependListener(t,Qg(this,t,e)),this};oe.prototype.removeListener=function(t,e){var r,i,a,o,c;if(Pl(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():hv(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 Xg(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):em(i,i.length)}oe.prototype.listeners=function(t){return Xg(this,t,!0)};oe.prototype.rawListeners=function(t){return Xg(this,t,!1)};oe.listenerCount=function(s,t){return typeof s.listenerCount=="function"?s.listenerCount(t):Zg.call(s,t)};oe.prototype.listenerCount=Zg;function Zg(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?Zc(this._events):[]};function em(s,t){for(var e=new Array(t),r=0;r<t;++r)e[r]=s[r];return e}function hv(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 gv(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))}tm(s,t,a,{once:!0}),t!=="error"&&mv(s,i,{once:!0})})}function mv(s,t,e){typeof s.on=="function"&&tm(s,"error",t,e)}function tm(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 N;(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"})(N||(N={}));const fv=new Map([[N.PRECALL_TEST_BEGIN,z.MINOR_EVENT],[N.PRECALL_TEST_COMPLETE,z.MINOR_EVENT],[N.CALL_JOIN_BEGIN,z.MAJOR_EVENT],[N.NET_QUALITY_TEST_BEGIN,z.MINOR_EVENT],[N.NET_QUALITY_TEST_END,z.MINOR_EVENT],[N.WEBSOCKET_CONNECTED,z.MINOR_EVENT],[N.TRANSPORT_CONNECTED,z.MAJOR_EVENT],[N.AUDIO_ON,z.MINOR_EVENT],[N.AUDIO_OFF,z.MINOR_EVENT],[N.VIDEO_ON,z.MINOR_EVENT],[N.VIDEO_OFF,z.MINOR_EVENT],[N.PARTICIPANT_ROLE,z.MINOR_EVENT],[N.PING_STAT,z.MAJOR_EVENT],[N.DISCONNECT,z.MAJOR_EVENT],[N.RECONNECT_ATTEMPT,z.MAJOR_EVENT],[N.SCREENSHARE_START_REQUESTED,z.MINOR_EVENT],[N.SCREENSHARE_STARTED,z.MINOR_EVENT],[N.SCREENSHARE_STOPPED,z.MINOR_EVENT],[N.TAB_CHANGE,z.MINOR_EVENT],[N.BROWSER_BACKGROUNDED,z.MINOR_EVENT],[N.BROWSER_FOREGROUNDED,z.MINOR_EVENT],[N.DOMINANT_SPEAKER,z.MINOR_EVENT],[N.AUDIO_DEVICES_UPDATES,z.MINOR_EVENT],[N.VIDEO_DEVICES_UPDATES,z.MINOR_EVENT],[N.SPEAKER_DEVICES_UPDATES,z.MINOR_EVENT],[N.SELECTED_MICROHPONE_UPDATE,z.MINOR_EVENT],[N.SELECTED_CAMERA_UPDATE,z.MINOR_EVENT],[N.SELECTED_SPEAKER_UPDATE,z.MINOR_EVENT],[N.MEDIA_PERMISSION,z.MINOR_EVENT],[N.LEGACY_SWITCH,z.MINOR_EVENT],[N.AUDIO_PLAY_FAILED,z.MINOR_EVENT],[N.VIDEO_PLAY_FAILED,z.MINOR_EVENT],[N.AUDIO_TRACK_MUTED,z.MINOR_EVENT],[N.VIDEO_TRACK_MUTED,z.MINOR_EVENT],[N.IVS_PLAYER_REBUFFERING,z.MAJOR_EVENT],[N.IVS_PLAYER_AUDIO_BLOCKED,z.MAJOR_EVENT],[N.IVS_PLAYER_PLAYBACK_BLOCKED,z.MAJOR_EVENT],[N.IVS_PLAYER_ERROR,z.MAJOR_EVENT],[N.IVS_PLAYER_RECOVERABLE_ERROR,z.MAJOR_EVENT],[N.IVS_PLAYER_WORKER_ERROR,z.MAJOR_EVENT],[N.IVS_PLAYER_NETWORK_UNAVAILABLE,z.MAJOR_EVENT],[N.LIVESTREAM_LATENCY,z.MAJOR_EVENT],[N.IVS_PLAYER_ANALYTICS_EVENT,z.MINOR_EVENT],[N.IVS_PLAYER_PLAYBACK_RATE_CHANGED,z.MINOR_EVENT],[N.IVS_PLAYER_QUALITY_CHANGED,z.MINOR_EVENT],[N.IVS_PLAYER_INITIALIZED,z.MINOR_EVENT],[N.EXPECTED_VIDEO_RESOLUTION,z.MINOR_EVENT],[N.EXPECTED_SCREENSHARE_RESOLUTION,z.MINOR_EVENT]]);class Tv{constructor(){h(this,"events");this.events=[]}add(t){this.events.push(t)}flush(){return{entries:this.events.splice(0,25)}}}class vv extends ct{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 Tv}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),fv.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 zh;(function(s){s.CHROMIUM="chromum",s.FIREFOX="firefox",s.SAFARI="safari"})(zh||(zh={}));const uo={DEVEL:"devel",PREPROD:"preprod",PROD:"prod"};var Gt;(function(s){s.AUDIO="AUDIO",s.VIDEO="VIDEO",s.SPEAKER="SPEAKER",s.SCREENSHARE="SCREENSHARE"})(Gt||(Gt={}));var Yh;(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"})(Yh||(Yh={}));function Yr(s){return s?s.split(".").slice(0,2).concat(["0","0"]).join("."):""}function gd({packetsLost:s,packetsSent:t}){return t>0?s*100/t:0}function md({packetsLost:s,packetsReceived:t}){return t+s>0?s*100/(t+s):0}const sm=240,rm=720,im=8,nm=3,_l=10,Cl=.02,wl=.03;function hr({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 am({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 om({packetsLost:s,packetsSent:t}){return t>0?s*100/t:0}function cm({packetsLost:s,packetsSent:t,jitter:e}){const i=hr({stat:om({packetsLost:s,packetsSent:t}),weight:.7,rangeMin:0,rangeMax:_l,rangeRankingDirection:"UP"}),o=hr({stat:e,weight:.3,rangeMin:Cl,rangeMax:wl,rangeRankingDirection:"UP"});return i+o}function Sv({frameWidth:s,isScreenShare:t}){return s<(t?rm:sm)}function yv({framesPerSecond:s,isScreenShare:t}){return s<(t?nm:im)}function Ev({framesEncoded:s}){return s===0}function dm({frameWidth:s,framesPerSecond:t,packetsLost:e,packetsSent:r,jitter:i,isScreenShare:a,framesEncoded:o}){const c=hr({stat:om({packetsLost:e,packetsSent:r}),weight:1,rangeMin:0,rangeMax:_l,rangeRankingDirection:"UP"}),d=hr({stat:i,weight:1,rangeMin:Cl,rangeMax:wl,rangeRankingDirection:"UP"}),l=Sv({frameWidth:s,isScreenShare:a}),p=yv({framesPerSecond:t,isScreenShare:a}),g=Ev({framesEncoded:o,isScreenShare:a});return am({isLowQualityVideo:l,isVideoLagging:p,isVideoStuck:g,jitterQuality:d,packetsLostQuality:c})}function lm({packetsLost:s,packetsReceived:t}){return t+s>0?s*100/(t+s):0}function um({concealmentEvents:s,packetsLost:t,packetsReceived:e,jitter:r}){const a=hr({stat:s,weight:.2,rangeMin:0,rangeMax:3,rangeRankingDirection:"UP"}),o=.5,c=hr({stat:lm({packetsLost:t,packetsReceived:e}),weight:o,rangeMin:0,rangeMax:_l,rangeRankingDirection:"UP"}),l=hr({stat:r,weight:.3,rangeMin:Cl,rangeMax:wl,rangeRankingDirection:"UP"});return a+c+l}function Pv({framesDecoded:s}){return s===0}function _v({framesPerSecond:s,isScreenShare:t}){return s<(t?nm:im)}function Cv({frameWidth:s,isScreenShare:t}){return s<(t?rm:sm)}function hm({frameWidth:s,framesPerSecond:t,packetsLost:e,packetsReceived:r,jitter:i,isScreenShare:a,framesDecoded:o}){const c=hr({stat:lm({packetsLost:e,packetsReceived:r}),weight:1,rangeMin:0,rangeMax:_l,rangeRankingDirection:"UP"}),d=hr({stat:i,weight:1,rangeMin:Cl,rangeMax:wl,rangeRankingDirection:"UP"}),l=Cv({frameWidth:s,isScreenShare:a}),p=_v({framesPerSecond:t,isScreenShare:a}),g=Pv({framesDecoded:o,isScreenShare:a});return am({isLowQualityVideo:l,isVideoLagging:p,isVideoStuck:g,jitterQuality:d,packetsLostQuality:c})}class mr{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=mr.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=mr.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 ct{constructor(e){super();h(this,"call");h(this,"timeOut");this.call=new mr(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 wv=8,Rv=1/1e3;class bv 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(mr.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)*wv/(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*Rv)})}}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 nh extends pm{constructor(e,r=mr.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 kv extends nh{constructor(t){super(t,mr.isHost)}}class Iv extends nh{constructor(t){super(t,mr.isRelay)}}class Av extends nh{constructor(t){super(t,mr.isReflexive)}}class Mv{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=Yr(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=Yr(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 ah=new Mv,Qh=[{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 Xh(s){const[t,e]=s.split(",");return{coords:{latitude:Number(t),longitude:Number(e)}}}class gm{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 mm extends ct{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 ct}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,A,M,$,x,B,H,re,et,os,ri,cs;const c=e,d=new gm,l=r.length?new Set(r):void 0,p=[],g=[],f=[],v=new Map,E=new Map;for(const I of c.values()){if(l){if(l.size===0)break;if(l.has(I.type))i&&l.delete(I.type);else continue}switch(I.type){case"local-candidate":{p.push(this.getIceCandidateStats(I));break}case"remote-candidate":{g.push(this.getIceCandidateStats(I));break}case"candidate-pair":{const{nominated:y}=I,{selected:w}=I,F=I,ye={nominated:y!=null?y:w,currentRoundTripTime:F.currentRoundTripTime,totalRoundTripTime:F.totalRoundTripTime,bytesReceived:F.bytesReceived,bytesSent:F.bytesSent,availableOutgoingBitrate:F.availableOutgoingBitrate,availableIncomingBitrate:F.availableIncomingBitrate,lastPacketReceivedTimestamp:F.lastPacketReceivedTimestamp,lastPacketSentTimestamp:F.lastPacketSentTimestamp,localCandidateId:F.localCandidateId,remoteCandidateId:F.remoteCandidateId,bytesDiscardedOnSend:F.bytesDiscardedOnSend,packetsSent:F.packetsSent,packetsReceived:F.packetsReceived,packetsDiscardedOnSend:F.packetsDiscardedOnSend};f.push(ye),(I.nominated===!0||I.selected===!0)&&(d.candidatePair=ye);break}case"transport":{const y=I;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 w={bytesReceived:y.bytesReceived,bytesSent:y.bytesSent,packetsSent:y.packetsSent,packetsReceived:y.packetsReceived,dtlsCipher:y.dtlsCipher,dtlsState:y.dtlsState,iceRole:y.iceRole};if(d.transport=w,o){if(o.producing){const F=this.overallProducingTransportsStatsMap[o.id];this.processProducingTransportStats(o.id,F,w)}if(o.consuming){const F=this.overallConsumingTransportsStatsMap[o.id];this.processConsumingTransportStats(o.id,F,w)}}break}case"remote-inbound-rtp":{const y=I,w={jitter:y.jitter,fractionLost:y.fractionLost,roundTripTime:y.roundTripTime,roundTripTimeMeasurements:y.roundTripTimeMeasurements,totalRoundTripTime:y.totalRoundTripTime,packetsLost:y.packetsLost};d.remoteInboundRtp.set(y.localId,w);break}case"outbound-rtp":{if(!this.outboundProducerMap.has(I.id))break;const y=I,w=a||this.outboundProducerMap.get(I.id),F=this.pausedProducerMap.get(w);if(F){if(F.lastReportCalculated===!0)break;this.pausedProducerMap.set(w,{lastReportCalculated:!0})}this.overallProducersStatsMap[w]||(this.overallProducersStatsMap[w]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const ye=this.overallProducersStatsMap[w];if(["video","audio"].includes(y.mediaType)||["video","audio"].includes(y.kind)){if(!this.outboundProducerMap.has(I.id)){d.staleProducerStreamMap=!0;break}const Ae=this.callStatsInstance.producers.get(w);if(((_=Ae==null?void 0:Ae.track)==null?void 0:_.readyState)==="ended")break;d.producerStreamMap.has(w)||d.producerStreamMap.set(w,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const V={bytesSent:y.bytesSent,packetsSent:y.packetsSent,nackCount:y.nackCount,ssrc:y.ssrc,mid:y.mid,active:y.active,codecId:y.codecId,headerBytesSent:y.headerBytesSent||0,totalPacketSendDelay:y.totalPacketSendDelay||0};if(y.mediaType==="video"||y.kind==="video"){const b=y,xe=O({frameHeight:b.frameHeight,frameWidth:b.frameWidth,framesEncoded:b.framesEncoded,framesDropped:b.framesDropped,framesPerSecond:b.framesPerSecond,framesSent:b.framesSent,keyFramesEncoded:b.keyFramesEncoded,firCount:b.firCount,encoderImplementation:b.encoderImplementation,hugeFramesSent:b.hugeFramesSent,pliCount:b.pliCount,qpSum:b.qpSum,qualityLimitationDurations:b.qualityLimitationDurations,qualityLimitationReason:b.qualityLimitationReason,qualityLimitationResolutionChanges:b.qualityLimitationResolutionChanges,totalEncodeTime:b.targetBitrate,totalPacketSendDelay:b.totalPacketSendDelay,retransmittedBytesSent:b.retransmittedBytesSent,retransmittedPacketsSent:b.retransmittedPacketsSent,scalabilityMode:b.scalabilityMode,powerEfficientEncoder:b.powerEfficientEncoder},V);d.outboundVideoRtp.set(I.id,xe),d.producerStreamMap.get(w).outboundVideoRtpId.push(I.id),this.processOutboundProducerVideoStats(w,ye,xe)}else if(y.mediaType==="audio"||y.kind==="audio"){const b=y,xe=O({retransmittedBytesSent:b.retransmittedBytesSent,retransmittedPacketsSent:b.retransmittedPacketsSent},V);d.outboundAudioRtp.set(I.id,xe),d.producerStreamMap.get(w).outboundAudioRtpId.push(I.id),this.processOutboundProducerAudioStats(w,ye,xe)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${y.mediaType} kind: ${y.kind}`);break}case"inbound-rtp":{if(!this.inboundConsumerMap.has(I.id))break;const y=I,w=a||this.inboundConsumerMap.get(I.id),F=this.pausedConsumerMap.get(w);if(F){if(F.lastReportCalculated===!0)break;this.pausedConsumerMap.set(w,{lastReportCalculated:!0})}if(y.ssrc===1234)break;this.overallConsumersStatsMap[w]||(this.overallConsumersStatsMap[w]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const ye=this.overallConsumersStatsMap[w];if(["video","audio"].includes(y.mediaType)||["video","audio"].includes(y.kind)){if(!this.inboundConsumerMap.has(I.id)){d.staleConsumerStreamMap=!0;break}d.consumerStreamMap.has(w)||d.consumerStreamMap.set(w,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const Ae={bytesReceived:y.bytesReceived,packetsReceived:y.packetsReceived,packetsLost:y.packetsLost>=0?y.packetsLost:0,jitter:y.jitter,nackCount:y.nackCount,jitterBufferDelay:y.jitterBufferDelay,jitterBufferEmittedCount:y.jitterBufferEmittedCount,lastPacketReceivedTimestamp:y.lastPacketReceivedTimestamp,ssrc:y.ssrc,mid:y.mid,codecId:y.codecId,headerBytesReceived:y.headerBytesReceived||0,packetsDiscarded:y.packetsDiscarded||0,jitterBufferMinimumDelay:y.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:y.jitterBufferTargetDelay||0};if(y.mediaType==="video"||y.kind==="video"){const V=y,b=O({frameHeight:V.frameHeight,frameWidth:V.frameWidth,framesDecoded:V.framesDecoded,framesDropped:V.framesDropped,framesPerSecond:V.framesPerSecond,framesReceived:V.framesReceived,keyFramesDecoded:V.keyFramesDecoded,firCount:V.firCount,decoderImplementation:V.decoderImplementation,pliCount:V.pliCount,totalProcessingDelay:V.totalProcessingDelay,qpSum:V.qpSum||0,totalAssemblyTime:V.totalAssemblyTime||0,totalDecodeTime:V.totalDecodeTime||0,totalFreezesDuration:V.totalFreezesDuration||0,totalInterFrameDelay:V.totalInterFrameDelay||0,totalPausesDuration:V.totalPausesDuration||0,totalSquaredInterFrameDelay:V.totalSquaredInterFrameDelay||0,freezeCount:V.freezeCount||0,pauseCount:V.pauseCount||0,powerEfficientDecoder:V.powerEfficientDecoder},Ae);b.score=hm({frameWidth:b.frameWidth||0,framesDecoded:(b.framesDecoded||0)-(((C=this.videoConsumerToStatsMap.get(w))==null?void 0:C.framesDecoded)||0),framesPerSecond:b.framesPerSecond||0,packetsLost:(b.packetsLost||0)-(((A=this.videoConsumerToStatsMap.get(w))==null?void 0:A.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((M=this.videoConsumerToStatsMap.get(w))==null?void 0:M.packetsReceived)||0),jitter:b.jitter||0,isScreenShare:this.screenShareConsumers.has(w)}),E.set(w,{score:+(b.score*10).toFixed(),frameWidth:b.frameWidth||0,frameHeight:b.frameHeight||0,framesPerSecond:b.framesPerSecond||0,packetsLostPercentage:md({packetsLost:(b.packetsLost||0)-((($=this.videoConsumerToStatsMap.get(w))==null?void 0:$.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((x=this.videoConsumerToStatsMap.get(w))==null?void 0:x.packetsReceived)||0)}),jitter:b.jitter||0,isScreenShare:this.screenShareConsumers.has(w),bitrate:((b.bytesReceived||0)-(((B=this.videoConsumerToStatsMap.get(w))==null?void 0:B.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(w,b),d.inboundVideoRtp.set(I.id,b),d.consumerStreamMap.get(w).inboundVideoRtpId.push(I.id),this.processInboundConsumerVideoStats(w,ye,b)}else if(y.mediaType==="audio"||y.kind==="audio"){const V=y,b=O({audioLevel:V.audioLevel,concealedSamples:V.concealedSamples,concealmentEvents:V.concealmentEvents,totalAudioEnergy:V.totalAudioEnergy,totalSamplesDuration:V.totalSamplesDuration,totalSamplesReceived:V.totalSamplesReceived,fecPacketsDiscarded:V.fecPacketsDiscarded||0,fecPacketsReceived:V.fecPacketsReceived||0,insertedSamplesForDeceleration:V.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:V.removedSamplesForAcceleration||0,silentConcealedSamples:V.silentConcealedSamples||0,playoutId:V.playoutId},Ae);b.score=um({concealmentEvents:(b.concealmentEvents||0)-(((H=this.audioConsumerToStatsMap.get(w))==null?void 0:H.concealmentEvents)||0),packetsLost:(b.packetsLost||0)-(((re=this.audioConsumerToStatsMap.get(w))==null?void 0:re.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((et=this.audioConsumerToStatsMap.get(w))==null?void 0:et.packetsReceived)||0),jitter:b.jitter||0}),E.set(w,{score:+(b.score*10).toFixed(),packetsLostPercentage:md({packetsLost:(b.packetsLost||0)-(((os=this.audioConsumerToStatsMap.get(w))==null?void 0:os.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((ri=this.audioConsumerToStatsMap.get(w))==null?void 0:ri.packetsReceived)||0)}),jitter:b.jitter||0,isScreenShare:this.screenShareConsumers.has(w),bitrate:((b.bytesReceived||0)-(((cs=this.audioConsumerToStatsMap.get(w))==null?void 0:cs.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(w,b),d.inboundAudioRtp.set(I.id,b),d.consumerStreamMap.get(w).inboundAudioRtpId.push(I.id),this.processInboundConsumerAudioStats(w,ye,b)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${y.mediaType} kind: ${y.kind}`);break}}}if(d.producerStreamMap.forEach((I,y)=>{var w,F,ye,Ae,V,b,xe,Fs,La,xa,Ua,$a,Fa,Ba,Ha,qa,ja,Ga,Wa,Ja,Ka,za,Ya;if(I.outboundVideoRtpId.length>0){const le=[];I.outboundVideoRtpId.forEach(Wl=>{le.push(d.outboundVideoRtp.get(Wl))});const te=this.getWorkingSimulcastVideoStats(le);te.score=dm({frameWidth:te.frameWidth||0,framesPerSecond:te.framesPerSecond||0,jitter:((w=te.remoteData)==null?void 0:w.jitter)||0,isScreenShare:this.screenShareProducers.has(y),packetsSent:(te.packetsSent||0)-(((F=this.videoProducerToStatsMap.get(y))==null?void 0:F.packetsSent)||0),packetsLost:(((ye=te.remoteData)==null?void 0:ye.packetsLost)||0)-(((V=(Ae=this.videoProducerToStatsMap.get(y))==null?void 0:Ae.remoteData)==null?void 0:V.packetsLost)||0),framesEncoded:(te.framesEncoded||0)-(((b=this.videoProducerToStatsMap.get(y))==null?void 0:b.framesEncoded)||0)}),v.set(y,{score:+(te.score*10).toFixed(),frameWidth:te.frameWidth||0,frameHeight:te.frameHeight||0,framesPerSecond:te.framesPerSecond||0,jitter:((xe=te.remoteData)==null?void 0:xe.jitter)||0,isScreenShare:this.screenShareProducers.has(y),packetsLostPercentage:gd({packetsSent:(te.packetsSent||0)-(((Fs=this.videoProducerToStatsMap.get(y))==null?void 0:Fs.packetsSent)||0),packetsLost:(((La=te.remoteData)==null?void 0:La.packetsLost)||0)-(((Ua=(xa=this.videoProducerToStatsMap.get(y))==null?void 0:xa.remoteData)==null?void 0:Ua.packetsLost)||0)}),bitrate:((te.bytesSent||0)-((($a=this.videoProducerToStatsMap.get(y))==null?void 0:$a.bytesSent)||0))*8/7,cpuLimitations:te.qualityLimitationReason==="cpu",bandwidthLimitations:te.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(y,te)}else if(I.outboundAudioRtpId.length>0){const le=d.outboundAudioRtp.get(I.outboundAudioRtpId[0]);le.score=cm({packetsSent:(le.packetsSent||0)-(((Fa=this.audioProducerToStatsMap.get(y))==null?void 0:Fa.packetsSent)||0),packetsLost:(((Ba=le.remoteData)==null?void 0:Ba.packetsLost)||0)-(((qa=(Ha=this.audioProducerToStatsMap.get(y))==null?void 0:Ha.remoteData)==null?void 0:qa.packetsLost)||0),jitter:((ja=le.remoteData)==null?void 0:ja.jitter)||0}),v.set(y,{score:+(le.score*10).toFixed(),bitrate:((le.bytesSent||0)-(((Ga=this.audioProducerToStatsMap.get(y))==null?void 0:Ga.bytesSent)||0))*8/7,packetsLostPercentage:gd({packetsSent:(le.packetsSent||0)-(((Wa=this.audioProducerToStatsMap.get(y))==null?void 0:Wa.packetsSent)||0),packetsLost:(((Ja=le.remoteData)==null?void 0:Ja.packetsLost)||0)-(((za=(Ka=this.audioProducerToStatsMap.get(y))==null?void 0:Ka.remoteData)==null?void 0:za.packetsLost)||0)}),jitter:((Ya=le.remoteData)==null?void 0:Ya.jitter)||0,isScreenShare:this.screenShareProducers.has(y)}),this.audioProducerToStatsMap.set(y,le)}}),f.forEach(I=>{const y=p.find(F=>F.id===I.localCandidateId?(I.localCandidateId=F.id,F):null),w=g.find(F=>F.id===I.remoteCandidateId?(I.remoteCandidateId=F.id,F):null);y&&(I.localCandidateType=y.type,I.localCandidateAddress=Yr(y.address),I.localCandidatePort=y.port,I.localCandidateProtocol=y.protocol,I.localCandidateUrl=y.url,I.localCandidateNetworkType=y.networkType,I.localCandidateRelatedAddress=Yr(y.relatedAddress),I.localCandidateRelatedPort=y.relatedPort),w&&(I.remoteCandidateType=w.type,I.remoteCandidateAddress=Yr(w.address),I.remoteCandidatePort=w.port,I.remoteCandidateProtocol=w.protocol,I.remoteCandidateUrl=w.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=f),d.transport&&!d.transport.roundTripTime){let I=0,y=0;d.remoteInboundRtp.forEach((w,F)=>{w.roundTripTime&&w.roundTripTime>I&&(I=w.roundTripTime,y=w.totalRoundTripTime)}),d.transport.roundTripTime=I,d.transport.totalRoundTripTime=y}if(E.size>0)try{this.observer.emit("consumer_score",E)}catch(I){}if(v.size>0)try{this.observer.emit("producer_score",v)}catch(I){}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||Qh},i=new Promise((p,g)=>{try{const f=new kv(r);f.addListener("done",p),f.addListener("failed",()=>{p({connectivity:!1})}),f.start(2e3)}catch(f){g(f)}}),a=new Promise((p,g)=>{try{const f=new Iv(r);f.addListener("done",p),f.addListener("failed",()=>{p({connectivity:!1})}),f.start(2e3)}catch(f){g(f)}}),o=new Promise((p,g)=>{try{const f=new Av(r);f.addListener("done",p),f.addListener("failed",()=>{p({connectivity:!1})}),f.start(2e3)}catch(f){g(f)}}),[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||Qh},d=new bv(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 ah.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?Xh(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?Xh(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 Dv extends mm{}class fm extends mm{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,A,M,$,x,B,H,re,et,os,ri,cs;const c=e,d=new gm,l=r.length?new Set(r):void 0,p=[],g=[],f=[],v=new Map,E=new Map;for(const I of c.values()){if(l){if(l.size===0)break;if(l.has(I.type))i&&l.delete(I.type);else continue}switch(I.type){case"local-candidate":{p.push(this.getIceCandidateStats(I));break}case"remote-candidate":{g.push(this.getIceCandidateStats(I));break}case"candidate-pair":{const{nominated:y}=I,{selected:w}=I,F=I,ye={nominated:y!=null?y:w,currentRoundTripTime:F.currentRoundTripTime,totalRoundTripTime:F.totalRoundTripTime,bytesReceived:F.bytesReceived,bytesSent:F.bytesSent,availableOutgoingBitrate:F.availableOutgoingBitrate,availableIncomingBitrate:F.availableIncomingBitrate,lastPacketReceivedTimestamp:F.lastPacketReceivedTimestamp,lastPacketSentTimestamp:F.lastPacketSentTimestamp,localCandidateId:F.localCandidateId,remoteCandidateId:F.remoteCandidateId,bytesDiscardedOnSend:F.bytesDiscardedOnSend,packetsSent:F.packetsSent,packetsReceived:F.packetsReceived,packetsDiscardedOnSend:F.packetsDiscardedOnSend};f.push(ye),(I.nominated===!0||I.selected===!0)&&(d.candidatePair=ye);break}case"transport":{const y=I;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 w={bytesReceived:y.bytesReceived,bytesSent:y.bytesSent,packetsSent:y.packetsSent,packetsReceived:y.packetsReceived,dtlsCipher:y.dtlsCipher,dtlsState:y.dtlsState,iceRole:y.iceRole};if(d.transport=w,o){if(o.producing){const F=this.overallProducingTransportsStatsMap[o.id];this.processProducingTransportStats(o.id,F,w)}if(o.consuming){const F=this.overallConsumingTransportsStatsMap[o.id];this.processConsumingTransportStats(o.id,F,w)}}break}case"remote-inbound-rtp":{const y=I,w={jitter:y.jitter,fractionLost:y.fractionLost,roundTripTime:y.roundTripTime,roundTripTimeMeasurements:y.roundTripTimeMeasurements,totalRoundTripTime:y.totalRoundTripTime,packetsLost:y.packetsLost};d.remoteInboundRtp.set(y.localId,w);break}case"outbound-rtp":{if(!this.outboundProducerMap.has(I.id))break;const y=I,w=a||this.outboundProducerMap.get(I.id),F=this.pausedProducerMap.get(w);if(F){if(F.lastReportCalculated===!0)break;this.pausedProducerMap.set(w,{lastReportCalculated:!0})}this.overallProducersStatsMap[w]||(this.overallProducersStatsMap[w]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const ye=this.overallProducersStatsMap[w];if(["video","audio"].includes(y.mediaType)||["video","audio"].includes(y.kind)){if(!this.outboundProducerMap.has(I.id)){d.staleProducerStreamMap=!0;break}const Ae=this.callStatsInstance.producers.get(w);if(((_=Ae==null?void 0:Ae.track)==null?void 0:_.readyState)==="ended")break;d.producerStreamMap.has(w)||d.producerStreamMap.set(w,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const V={bytesSent:y.bytesSent,packetsSent:y.packetsSent,nackCount:y.nackCount,ssrc:y.ssrc,mid:y.mid,active:y.active,codecId:y.codecId,headerBytesSent:y.headerBytesSent||0,totalPacketSendDelay:y.totalPacketSendDelay||0};if(y.mediaType==="video"||y.kind==="video"){const b=y,xe=O({frameHeight:b.frameHeight,frameWidth:b.frameWidth,framesEncoded:b.framesEncoded,framesDropped:b.framesDropped?b.framesDropped:b.droppedFrames,framesPerSecond:b.framesPerSecond?b.framesPerSecond:b.framerateMean,framesSent:b.framesSent,keyFramesEncoded:b.keyFramesEncoded,firCount:b.firCount,encoderImplementation:b.encoderImplementation,hugeFramesSent:b.hugeFramesSent,pliCount:b.pliCount,qpSum:b.qpSum,qualityLimitationReason:b.qualityLimitationReason,qualityLimitationDurations:b.qualityLimitationDurations,qualityLimitationResolutionChanges:b.qualityLimitationResolutionChanges,totalEncodeTime:b.totalEncodeTime,totalPacketSendDelay:b.totalEncodeTime,retransmittedBytesSent:b.retransmittedBytesSent,retransmittedPacketsSent:b.retransmittedPacketsSent,scalabilityMode:b.scalabilityMode,powerEfficientEncoder:b.powerEfficientEncoder},V);d.outboundVideoRtp.set(I.id,xe),d.producerStreamMap.get(w).outboundVideoRtpId.push(I.id),this.processOutboundProducerVideoStats(w,ye,xe)}else if(y.mediaType==="audio"||y.kind==="audio"){const b=y,xe=O({retransmittedBytesSent:b.retransmittedBytesSent,retransmittedPacketsSent:b.retransmittedPacketsSent},V);d.outboundAudioRtp.set(I.id,xe),d.producerStreamMap.get(w).outboundAudioRtpId.push(I.id),this.processOutboundProducerAudioStats(w,ye,xe)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${y.mediaType} kind: ${y.kind}`);break}case"inbound-rtp":{if(!this.inboundConsumerMap.has(I.id))break;const y=I,w=a||this.inboundConsumerMap.get(I.id),F=this.pausedConsumerMap.get(w);if(F){if(F.lastReportCalculated===!0)break;this.pausedConsumerMap.set(w,{lastReportCalculated:!0})}if(y.ssrc===1234)break;this.overallConsumersStatsMap[w]||(this.overallConsumersStatsMap[w]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const ye=this.overallConsumersStatsMap[w];if(["video","audio"].includes(y.mediaType)||["video","audio"].includes(y.kind)){if(!this.inboundConsumerMap.has(I.id)){d.staleConsumerStreamMap=!0;break}d.consumerStreamMap.has(w)||d.consumerStreamMap.set(w,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const Ae={bytesReceived:y.bytesReceived,packetsReceived:y.packetsReceived,packetsLost:y.packetsLost>=0?y.packetsLost:0,jitter:y.jitter,nackCount:y.nackCount,jitterBufferDelay:y.jitterBufferDelay,jitterBufferEmittedCount:y.jitterBufferEmittedCount,lastPacketReceivedTimestamp:y.lastPacketReceivedTimestamp,ssrc:y.ssrc,mid:y.mid,codecId:y.codecId,headerBytesReceived:y.headerBytesReceived||0,packetsDiscarded:y.packetsDiscarded||0,jitterBufferMinimumDelay:y.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:y.jitterBufferTargetDelay||0};if(y.mediaType==="video"||y.kind==="video"){const V=y,b=O({frameHeight:V.frameHeight,frameWidth:V.frameWidth,framesDecoded:V.framesDecoded,framesDropped:V.framesDropped?V.framesDropped:V.droppedFrames,framesPerSecond:V.framesPerSecond?V.framesPerSecond:V.framerateMean,framesReceived:V.framesReceived,keyFramesDecoded:V.keyFramesDecoded,firCount:V.firCount,decoderImplementation:V.decoderImplementation,pliCount:V.pliCount,totalProcessingDelay:V.totalProcessingDelay,qpSum:V.qpSum||0,totalAssemblyTime:V.totalAssemblyTime||0,totalDecodeTime:V.totalDecodeTime||0,totalFreezesDuration:V.totalFreezesDuration||0,totalInterFrameDelay:V.totalInterFrameDelay||0,totalPausesDuration:V.totalPausesDuration||0,totalSquaredInterFrameDelay:V.totalSquaredInterFrameDelay||0,freezeCount:V.freezeCount||0,pauseCount:V.pauseCount||0,powerEfficientDecoder:V.powerEfficientDecoder},Ae);b.score=hm({frameWidth:b.frameWidth||0,framesDecoded:(b.framesDecoded||0)-(((C=this.videoConsumerToStatsMap.get(w))==null?void 0:C.framesDecoded)||0),framesPerSecond:b.framesPerSecond||0,packetsLost:(b.packetsLost||0)-(((A=this.videoConsumerToStatsMap.get(w))==null?void 0:A.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((M=this.videoConsumerToStatsMap.get(w))==null?void 0:M.packetsReceived)||0),jitter:b.jitter||0,isScreenShare:this.screenShareConsumers.has(w)}),E.set(w,{score:+(b.score*10).toFixed(),frameWidth:b.frameWidth||0,frameHeight:b.frameHeight||0,framesPerSecond:b.framesPerSecond||0,packetsLostPercentage:md({packetsLost:(b.packetsLost||0)-((($=this.videoConsumerToStatsMap.get(w))==null?void 0:$.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((x=this.videoConsumerToStatsMap.get(w))==null?void 0:x.packetsReceived)||0)}),jitter:b.jitter||0,isScreenShare:this.screenShareConsumers.has(w),bitrate:((b.bytesReceived||0)-(((B=this.videoConsumerToStatsMap.get(w))==null?void 0:B.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(w,b),d.inboundVideoRtp.set(I.id,b),d.consumerStreamMap.get(w).inboundVideoRtpId.push(I.id),this.processInboundConsumerVideoStats(w,ye,b)}else if(y.mediaType==="audio"||y.kind==="audio"){const V=y,b=O({audioLevel:V.audioLevel,concealedSamples:V.concealedSamples,concealmentEvents:V.concealmentEvents,totalAudioEnergy:V.totalAudioEnergy,totalSamplesDuration:V.totalSamplesDuration,totalSamplesReceived:V.totalSamplesReceived,fecPacketsDiscarded:V.fecPacketsDiscarded||0,fecPacketsReceived:V.fecPacketsReceived||0,insertedSamplesForDeceleration:V.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:V.removedSamplesForAcceleration||0,silentConcealedSamples:V.silentConcealedSamples||0,playoutId:V.playoutId},Ae);b.score=um({concealmentEvents:(b.concealmentEvents||0)-(((H=this.audioConsumerToStatsMap.get(w))==null?void 0:H.concealmentEvents)||0),packetsLost:(b.packetsLost||0)-(((re=this.audioConsumerToStatsMap.get(w))==null?void 0:re.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((et=this.audioConsumerToStatsMap.get(w))==null?void 0:et.packetsReceived)||0),jitter:b.jitter||0}),E.set(w,{score:+(b.score*10).toFixed(),packetsLostPercentage:md({packetsLost:(b.packetsLost||0)-(((os=this.audioConsumerToStatsMap.get(w))==null?void 0:os.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((ri=this.audioConsumerToStatsMap.get(w))==null?void 0:ri.packetsReceived)||0)}),jitter:b.jitter||0,isScreenShare:this.screenShareConsumers.has(w),bitrate:((b.bytesReceived||0)-(((cs=this.audioConsumerToStatsMap.get(w))==null?void 0:cs.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(w,b),d.inboundAudioRtp.set(I.id,b),d.consumerStreamMap.get(w).inboundAudioRtpId.push(I.id),this.processInboundConsumerAudioStats(w,ye,b)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${y.mediaType} kind: ${y.kind}`);break}}}if(d.producerStreamMap.forEach((I,y)=>{var w,F,ye,Ae,V,b,xe,Fs,La,xa,Ua,$a,Fa,Ba,Ha,qa,ja,Ga,Wa,Ja,Ka,za,Ya;if(I.outboundVideoRtpId.length>0){const le=[];I.outboundVideoRtpId.forEach(Wl=>{le.push(d.outboundVideoRtp.get(Wl))});const te=this.getWorkingSimulcastVideoStats(le);te.score=dm({frameWidth:te.frameWidth||0,framesPerSecond:te.framesPerSecond||0,jitter:((w=te.remoteData)==null?void 0:w.jitter)||0,isScreenShare:this.screenShareProducers.has(y),packetsSent:(te.packetsSent||0)-(((F=this.videoProducerToStatsMap.get(y))==null?void 0:F.packetsSent)||0),packetsLost:(((ye=te.remoteData)==null?void 0:ye.packetsLost)||0)-(((V=(Ae=this.videoProducerToStatsMap.get(y))==null?void 0:Ae.remoteData)==null?void 0:V.packetsLost)||0),framesEncoded:(te.framesEncoded||0)-(((b=this.videoProducerToStatsMap.get(y))==null?void 0:b.framesEncoded)||0)}),v.set(y,{score:+(te.score*10).toFixed(),frameWidth:te.frameWidth||0,frameHeight:te.frameHeight||0,framesPerSecond:te.framesPerSecond||0,jitter:((xe=te.remoteData)==null?void 0:xe.jitter)||0,isScreenShare:this.screenShareProducers.has(y),packetsLostPercentage:gd({packetsSent:(te.packetsSent||0)-(((Fs=this.videoProducerToStatsMap.get(y))==null?void 0:Fs.packetsSent)||0),packetsLost:(((La=te.remoteData)==null?void 0:La.packetsLost)||0)-(((Ua=(xa=this.videoProducerToStatsMap.get(y))==null?void 0:xa.remoteData)==null?void 0:Ua.packetsLost)||0)}),bitrate:((te.bytesSent||0)-((($a=this.videoProducerToStatsMap.get(y))==null?void 0:$a.bytesSent)||0))*8/7,cpuLimitations:te.qualityLimitationReason==="cpu",bandwidthLimitations:te.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(y,te)}else if(I.outboundAudioRtpId.length>0){const le=d.outboundAudioRtp.get(I.outboundAudioRtpId[0]);le.score=cm({packetsSent:(le.packetsSent||0)-(((Fa=this.audioProducerToStatsMap.get(y))==null?void 0:Fa.packetsSent)||0),packetsLost:(((Ba=le.remoteData)==null?void 0:Ba.packetsLost)||0)-(((qa=(Ha=this.audioProducerToStatsMap.get(y))==null?void 0:Ha.remoteData)==null?void 0:qa.packetsLost)||0),jitter:((ja=le.remoteData)==null?void 0:ja.jitter)||0}),v.set(y,{score:+(le.score*10).toFixed(),bitrate:((le.bytesSent||0)-(((Ga=this.audioProducerToStatsMap.get(y))==null?void 0:Ga.bytesSent)||0))*8/7,packetsLostPercentage:gd({packetsSent:(le.packetsSent||0)-(((Wa=this.audioProducerToStatsMap.get(y))==null?void 0:Wa.packetsSent)||0),packetsLost:(((Ja=le.remoteData)==null?void 0:Ja.packetsLost)||0)-(((za=(Ka=this.audioProducerToStatsMap.get(y))==null?void 0:Ka.remoteData)==null?void 0:za.packetsLost)||0)}),jitter:((Ya=le.remoteData)==null?void 0:Ya.jitter)||0,isScreenShare:this.screenShareProducers.has(y)}),this.audioProducerToStatsMap.set(y,le)}}),f.forEach(I=>{const y=p.find(F=>F.id===I.localCandidateId?(I.localCandidateId=F.id,F):null),w=g.find(F=>F.id===I.remoteCandidateId?(I.remoteCandidateId=F.id,F):null);y&&(I.localCandidateType=y.type,I.localCandidateAddress=Yr(y.address),I.localCandidatePort=y.port,I.localCandidateProtocol=y.protocol,I.localCandidateUrl=y.url,I.localCandidateNetworkType=y.networkType,I.localCandidateRelatedAddress=Yr(y.relatedAddress),I.localCandidateRelatedPort=y.relatedPort),w&&(I.remoteCandidateType=w.type,I.remoteCandidateAddress=Yr(w.address),I.remoteCandidatePort=w.port,I.remoteCandidateProtocol=w.protocol,I.remoteCandidateUrl=w.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=f),d.transport&&!d.transport.roundTripTime){let I=0,y=0;d.remoteInboundRtp.forEach((w,F)=>{w.roundTripTime&&w.roundTripTime>I&&(I=w.roundTripTime,y=w.totalRoundTripTime)}),d.transport.roundTripTime=I,d.transport.totalRoundTripTime=y}if(E.size>0)try{this.observer.emit("consumer_score",E)}catch(I){}if(v.size>0)try{this.observer.emit("producer_score",v)}catch(I){}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 f=this.consumerMap.get(i).track.getSettings(),v=e.inboundVideoRtp.get(p);return v.frameHeight||(v.frameHeight=f.height,v.frameWidth=f.width,v.framesPerSecond=f.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 Ov extends fm{}function fd(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 Zh(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=>{fd(this,t,e,o)}):a}catch(a){fd(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=>{fd(this,s,t,d)}):c}catch(c){fd(this,s,t,c)}return null},i},Nv=(s,t)=>(e,r,i)=>{if(i)return Zh(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,Zh(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 ct{constructor(e="https://api.testingv3.dyte.in",r="Blink",i=uo.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 vv({logger:o,peerId:c,apiHostnames:d}),this.logger.debug("callStats::engineName: ",{engineName:r}),r){case"Blink":this.measurements=new Dv;break;case"Gecko":this.measurements=new fm;break;case"WebKit":this.measurements=new Ov;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 ct,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:N.PRECALL_TEST_BEGIN,timestamp:r}),this.connectionInfoPromise&&this.connectionInfoPromise.then(i=>{this.eventHandler.callEvent({event:N.PRECALL_TEST_COMPLETE,metaData:{connectionInfo:i},timestamp:r})})}sendScreenShareToggleEvent(e,r=null,i){this.currentUserMediaStates.screen=e,this.eventHandler.callEvent({event:e?N.SCREENSHARE_STARTED:N.SCREENSHARE_STOPPED,metaData:{ssrc:r},timestamp:i})}sendScreenShareRequestedEvent(e){this.eventHandler.callEvent({event:N.SCREENSHARE_START_REQUESTED,timestamp:e})}sendActiveSpeakerEvent(e,r){this.eventHandler.callEvent({event:N.DOMINANT_SPEAKER,metaData:{peerId:e},timestamp:r})}devices(e,r,i){this.eventHandler.callEvent({event:e===Gt.AUDIO&&N.AUDIO_DEVICES_UPDATES||e===Gt.VIDEO&&N.VIDEO_DEVICES_UPDATES||e===Gt.SPEAKER&&N.SPEAKER_DEVICES_UPDATES,metaData:{deviceList:r},timestamp:i})}selectedDevice(e,r,i){this.eventHandler.callEvent({event:e===Gt.AUDIO&&N.SELECTED_MICROHPONE_UPDATE||e===Gt.VIDEO&&N.SELECTED_CAMERA_UPDATE||e===Gt.SPEAKER&&N.SELECTED_SPEAKER_UPDATE,metaData:{device:r},timestamp:i})}mediaPermission(e,r,i){this.eventHandler.callEvent({event:N.MEDIA_PERMISSION,metaData:{deviceType:e,permission:r},timestamp:i})}mediaPlaybackFailed(e,r){this.eventHandler.callEvent({event:e===Gt.AUDIO&&N.AUDIO_PLAY_FAILED||e===Gt.VIDEO&&N.VIDEO_PLAY_FAILED,metaData:{deviceType:e},timestamp:r})}mediaTrackMuted(e,r){this.eventHandler.callEvent({event:e===Gt.AUDIO&&N.AUDIO_TRACK_MUTED||e===Gt.VIDEO&&N.VIDEO_TRACK_MUTED,metaData:{deviceType:e},timestamp:r})}tabChanged(e,r){this.eventHandler.callEvent({event:N.TAB_CHANGE,metaData:{isMeetingsTabActive:e},timestamp:r})}browserBackgrounded(e){this.eventHandler.callEvent({event:N.BROWSER_BACKGROUNDED,timestamp:e})}browserForegrounded(e){this.eventHandler.callEvent({event:N.BROWSER_FOREGROUNDED,timestamp:e})}legacySwitch(e,r){this.eventHandler.callEvent({event:N.LEGACY_SWITCH,metadata:{on:e},timestamp:r})}getPreCallTestResults(){return u(this,null,function*(){return this.connectionInfoPromise})}sendCallJoinBeginEvent(e,r){e=G(O({},e),{meetingEnv:this.env}),e.deviceInfo=G(O({},e.deviceInfo),{userAgent:navigator.userAgent,cpus:navigator.hardwareConcurrency,memory:navigator.deviceMemory}),this.eventHandler.callEvent({event:N.CALL_JOIN_BEGIN,metaData:{peerMetaData:e},timestamp:r})}sendNetworkQualityTestBeginEvent(e,r){this.eventHandler.callEvent({event:N.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(G(O({},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:N.NET_QUALITY_TEST_END,timestamp:r,metaData:a})})}sendWebSocketConnectedEvent(e){this.eventHandler.callEvent({event:N.WEBSOCKET_CONNECTED,timestamp:e})}sendTransportConnectedEvent(e){this.eventHandler.callEvent({event:N.TRANSPORT_CONNECTED,timestamp:e})}sendAudioToggleEvent(e,r){this.currentUserMediaStates.audio=e;let i;e?i=N.AUDIO_ON:i=N.AUDIO_OFF,this.eventHandler.callEvent({event:i,timestamp:r})}sendVideoToggleEvent(e,r){this.currentUserMediaStates.video=e;let i;e?i=N.VIDEO_ON:i=N.VIDEO_OFF,this.eventHandler.callEvent({event:i,timestamp:r})}sendParticipantRoleToggleEvent(e,r){this.eventHandler.callEvent({event:N.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*(){var c,d;let i,a;if(this.producingTransport&&(i=yield this.measurements.getProcessedStats(this.producingTransport,!1,!0),!i||!((c=i==null?void 0:i.producerReport)!=null&&c.length))){this.logger.debug("callStats::sendPingStatsEvent::staleProducingTransport",{disclaimer:"Stale producer? Regenerating Stream Maps!"});const l=yield this.measurements.getProducersReport([...this.producers.values()]);i&&l?i.producerReport=l:(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||!((d=a.consumerReport)!=null&&d.length))){this.logger.debug("callStats::sendPingStatsEvent::staleConsumingTransport",{disclaimer:"Stale consumer? Regenerating Stream Maps!"});const l=yield this.measurements.getConsumersReport([...this.consumers.values()]);a&&l?a.consumerReport=l:(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:N.PING_STAT,metaData:o,timestamp:r})})}sendIVSPlayerRebufferEvent(e){this.eventHandler.callEvent({event:N.IVS_PLAYER_REBUFFERING,timestamp:e})}sendIVSPlayerAudioBlockEvent(e){this.eventHandler.callEvent({event:N.IVS_PLAYER_AUDIO_BLOCKED,timestamp:e})}sendIVSPlayerPlaybackBlockedEvent(e){this.eventHandler.callEvent({event:N.IVS_PLAYER_PLAYBACK_BLOCKED,timestamp:e})}sendIVSPlayerNetworkUnavailableEvent(e){this.eventHandler.callEvent({event:N.IVS_PLAYER_NETWORK_UNAVAILABLE,timestamp:e})}sendIVSPlayerInitializedEvent(e){this.eventHandler.callEvent({event:N.IVS_PLAYER_INITIALIZED,timestamp:e})}sendIVSPlayerWorkerErrorEvent(e){this.eventHandler.callEvent({event:N.IVS_PLAYER_WORKER_ERROR,timestamp:e})}sendIVSPlayerErrorEvent(e,r){this.eventHandler.callEvent({event:N.IVS_PLAYER_ERROR,timestamp:r,metaData:e})}sendIVSPlayerRecoverableErrorEvent(e,r){this.eventHandler.callEvent({event:N.IVS_PLAYER_RECOVERABLE_ERROR,timestamp:r,metaData:e})}sendIVSPlayerAnalyticsEvent(e,r){this.eventHandler.callEvent({event:N.IVS_PLAYER_ANALYTICS_EVENT,timestamp:r,metaData:e})}sendIVSPlayerPlaybackRateChangedEvent(e,r){this.eventHandler.callEvent({event:N.IVS_PLAYER_PLAYBACK_RATE_CHANGED,timestamp:r,metaData:{updatedPlaybackRate:e}})}sendIVSPlayerQualityChanged(e,r){this.eventHandler.callEvent({event:N.IVS_PLAYER_QUALITY_CHANGED,timestamp:r,metaData:e})}sendPlayerLiveLatency(e,r){this.eventHandler.callEvent({event:N.LIVESTREAM_LATENCY,timestamp:r,metaData:{latency:e}})}sendDisconnectEvent(e){this.eventHandler.callEvent({event:N.DISCONNECT,timestamp:e})}sendReconnectEvent(e){this.eventHandler.callEvent({event:N.RECONNECT_ATTEMPT,timestamp:e})}expectedVideoResolution(e,r,i){this.eventHandler.callEvent({event:N.EXPECTED_VIDEO_RESOLUTION,timestamp:i,metaData:{frameWidth:e,frameHeight:r}})}expectedScreenshareResolution(e,r,i){this.eventHandler.callEvent({event:N.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([Nv(TypeError,(s,t)=>Q.error(t,s))],K);const Vv=K;class Tm extends ct{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=uo.PROD,iceServers:a,apiBase:o="https://api.cluster.dyte.in",flags:c,logger:d=console,apiHostnames:l,skipConnectivityChecks:p=!1}){var f,v,E;try{this.peerId=e,this.logger=d,this.ipInformation=yield ah.getIPDetails({peerId:e,apiHostnames:l,logger:d}),this.backend=new Vv(o,r,i,c,d,e,l),this.iceServers=a,(f=this.backend)==null||f.registerIceServers(this.iceServers),this.initialized=!0,(E=(v=this.backend)==null?void 0:v.eventHandler)==null||E.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,f,v,E,_;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":(f=this.backend)==null||f.sendIVSPlayerRecoverableErrorEvent(r,i);break;case"PlayerAnalyticsEvent":(v=this.backend)==null||v.sendIVSPlayerAnalyticsEvent(r,i);break;case"PlayerPlaybackRateChanged":(E=this.backend)==null||E.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 Lv=new Tm;Lv.setMaxListeners(30);function xv(){this.__data__=[],this.size=0}function kc(s,t){return s===t||s!==s&&t!==t}function Rl(s,t){for(var e=s.length;e--;)if(kc(s[e][0],t))return e;return-1}var Uv=Array.prototype,$v=Uv.splice;function Fv(s){var t=this.__data__,e=Rl(t,s);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():$v.call(t,e,1),--this.size,!0}function Bv(s){var t=this.__data__,e=Rl(t,s);return e<0?void 0:t[e][1]}function Hv(s){return Rl(this.__data__,s)>-1}function qv(s,t){var e=this.__data__,r=Rl(e,s);return r<0?(++this.size,e.push([s,t])):e[r][1]=t,this}function vr(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])}}vr.prototype.clear=xv;vr.prototype.delete=Fv;vr.prototype.get=Bv;vr.prototype.has=Hv;vr.prototype.set=qv;function jv(){this.__data__=new vr,this.size=0}function Gv(s){var t=this.__data__,e=t.delete(s);return this.size=t.size,e}function Wv(s){return this.__data__.get(s)}function Jv(s){return this.__data__.has(s)}var Kv=typeof global=="object"&&global&&global.Object===Object&&global;const vm=Kv;var zv=typeof self=="object"&&self&&self.Object===Object&&self,Yv=vm||zv||Function("return this")();const ws=Yv;var Qv=ws.Symbol;const Us=Qv;var Sm=Object.prototype,Xv=Sm.hasOwnProperty,Zv=Sm.toString,Qa=Us?Us.toStringTag:void 0;function eS(s){var t=Xv.call(s,Qa),e=s[Qa];try{s[Qa]=void 0;var r=!0}catch(a){}var i=Zv.call(s);return r&&(t?s[Qa]=e:delete s[Qa]),i}var tS=Object.prototype,sS=tS.toString;function rS(s){return sS.call(s)}var iS="[object Null]",nS="[object Undefined]",ep=Us?Us.toStringTag:void 0;function nn(s){return s==null?s===void 0?nS:iS:ep&&ep in Object(s)?eS(s):rS(s)}function ns(s){var t=typeof s;return s!=null&&(t=="object"||t=="function")}var aS="[object AsyncFunction]",oS="[object Function]",cS="[object GeneratorFunction]",dS="[object Proxy]";function oh(s){if(!ns(s))return!1;var t=nn(s);return t==oS||t==cS||t==aS||t==dS}var lS=ws["__core-js_shared__"];const zl=lS;var tp=function(){var s=/[^.]+$/.exec(zl&&zl.keys&&zl.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""}();function uS(s){return!!tp&&tp in s}var hS=Function.prototype,pS=hS.toString;function an(s){if(s!=null){try{return pS.call(s)}catch(t){}try{return s+""}catch(t){}}return""}var gS=/[\\^$.*+?()[\]{}|]/g,mS=/^\[object .+?Constructor\]$/,fS=Function.prototype,TS=Object.prototype,vS=fS.toString,SS=TS.hasOwnProperty,yS=RegExp("^"+vS.call(SS).replace(gS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ES(s){if(!ns(s)||uS(s))return!1;var t=oh(s)?yS:mS;return t.test(an(s))}function PS(s,t){return s==null?void 0:s[t]}function on(s,t){var e=PS(s,t);return ES(e)?e:void 0}var _S=on(ws,"Map");const So=_S;var CS=on(Object,"create");const yo=CS;function wS(){this.__data__=yo?yo(null):{},this.size=0}function RS(s){var t=this.has(s)&&delete this.__data__[s];return this.size-=t?1:0,t}var bS="__lodash_hash_undefined__",kS=Object.prototype,IS=kS.hasOwnProperty;function AS(s){var t=this.__data__;if(yo){var e=t[s];return e===bS?void 0:e}return IS.call(t,s)?t[s]:void 0}var MS=Object.prototype,DS=MS.hasOwnProperty;function OS(s){var t=this.__data__;return yo?t[s]!==void 0:DS.call(t,s)}var NS="__lodash_hash_undefined__";function VS(s,t){var e=this.__data__;return this.size+=this.has(s)?0:1,e[s]=yo&&t===void 0?NS:t,this}function sn(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])}}sn.prototype.clear=wS;sn.prototype.delete=RS;sn.prototype.get=AS;sn.prototype.has=OS;sn.prototype.set=VS;function LS(){this.size=0,this.__data__={hash:new sn,map:new(So||vr),string:new sn}}function xS(s){var t=typeof s;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?s!=="__proto__":s===null}function bl(s,t){var e=s.__data__;return xS(t)?e[typeof t=="string"?"string":"hash"]:e.map}function US(s){var t=bl(this,s).delete(s);return this.size-=t?1:0,t}function $S(s){return bl(this,s).get(s)}function FS(s){return bl(this,s).has(s)}function BS(s,t){var e=bl(this,s),r=e.size;return e.set(s,t),this.size+=e.size==r?0:1,this}function Sr(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])}}Sr.prototype.clear=LS;Sr.prototype.delete=US;Sr.prototype.get=$S;Sr.prototype.has=FS;Sr.prototype.set=BS;var HS=200;function qS(s,t){var e=this.__data__;if(e instanceof vr){var r=e.__data__;if(!So||r.length<HS-1)return r.push([s,t]),this.size=++e.size,this;e=this.__data__=new Sr(r)}return e.set(s,t),this.size=e.size,this}function Cs(s){var t=this.__data__=new vr(s);this.size=t.size}Cs.prototype.clear=jv;Cs.prototype.delete=Gv;Cs.prototype.get=Wv;Cs.prototype.has=Jv;Cs.prototype.set=qS;function jS(s,t){for(var e=-1,r=s==null?0:s.length;++e<r&&t(s[e],e,s)!==!1;);return s}var GS=function(){try{var s=on(Object,"defineProperty");return s({},"",{}),s}catch(t){}}();const Td=GS;function ch(s,t,e){t=="__proto__"&&Td?Td(s,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):s[t]=e}var WS=Object.prototype,JS=WS.hasOwnProperty;function ym(s,t,e){var r=s[t];(!(JS.call(s,t)&&kc(r,e))||e===void 0&&!(t in s))&&ch(s,t,e)}function Ic(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?ch(e,c,d):ym(e,c,d)}return e}function KS(s,t){for(var e=-1,r=Array(s);++e<s;)r[e]=t(e);return r}function $s(s){return s!=null&&typeof s=="object"}var zS="[object Arguments]";function sp(s){return $s(s)&&nn(s)==zS}var Em=Object.prototype,YS=Em.hasOwnProperty,QS=Em.propertyIsEnumerable,XS=sp(function(){return arguments}())?sp:function(s){return $s(s)&&YS.call(s,"callee")&&!QS.call(s,"callee")};const Eo=XS;var ZS=Array.isArray;const Ut=ZS;function ey(){return!1}var Pm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rp=Pm&&typeof module=="object"&&module&&!module.nodeType&&module,ty=rp&&rp.exports===Pm,ip=ty?ws.Buffer:void 0,sy=ip?ip.isBuffer:void 0,ry=sy||ey;const ba=ry;var iy=9007199254740991,ny=/^(?:0|[1-9]\d*)$/;function dh(s,t){var e=typeof s;return t=t==null?iy:t,!!t&&(e=="number"||e!="symbol"&&ny.test(s))&&s>-1&&s%1==0&&s<t}var ay=9007199254740991;function lh(s){return typeof s=="number"&&s>-1&&s%1==0&&s<=ay}var oy="[object Arguments]",cy="[object Array]",dy="[object Boolean]",ly="[object Date]",uy="[object Error]",hy="[object Function]",py="[object Map]",gy="[object Number]",my="[object Object]",fy="[object RegExp]",Ty="[object Set]",vy="[object String]",Sy="[object WeakMap]",yy="[object ArrayBuffer]",Ey="[object DataView]",Py="[object Float32Array]",_y="[object Float64Array]",Cy="[object Int8Array]",wy="[object Int16Array]",Ry="[object Int32Array]",by="[object Uint8Array]",ky="[object Uint8ClampedArray]",Iy="[object Uint16Array]",Ay="[object Uint32Array]",ve={};ve[Py]=ve[_y]=ve[Cy]=ve[wy]=ve[Ry]=ve[by]=ve[ky]=ve[Iy]=ve[Ay]=!0;ve[oy]=ve[cy]=ve[yy]=ve[dy]=ve[Ey]=ve[ly]=ve[uy]=ve[hy]=ve[py]=ve[gy]=ve[my]=ve[fy]=ve[Ty]=ve[vy]=ve[Sy]=!1;function My(s){return $s(s)&&lh(s.length)&&!!ve[nn(s)]}function uh(s){return function(t){return s(t)}}var _m=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ho=_m&&typeof module=="object"&&module&&!module.nodeType&&module,Dy=ho&&ho.exports===_m,Yl=Dy&&vm.process,Oy=function(){try{var s=ho&&ho.require&&ho.require("util").types;return s||Yl&&Yl.binding&&Yl.binding("util")}catch(t){}}();const ka=Oy;var np=ka&&ka.isTypedArray,Ny=np?uh(np):My;const kl=Ny;var Vy=Object.prototype,Ly=Vy.hasOwnProperty;function Cm(s,t){var e=Ut(s),r=!e&&Eo(s),i=!e&&!r&&ba(s),a=!e&&!r&&!i&&kl(s),o=e||r||i||a,c=o?KS(s.length,String):[],d=c.length;for(var l in s)(t||Ly.call(s,l))&&!(o&&(l=="length"||i&&(l=="offset"||l=="parent")||a&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||dh(l,d)))&&c.push(l);return c}var xy=Object.prototype;function Il(s){var t=s&&s.constructor,e=typeof t=="function"&&t.prototype||xy;return s===e}function wm(s,t){return function(e){return s(t(e))}}var Uy=wm(Object.keys,Object);const $y=Uy;var Fy=Object.prototype,By=Fy.hasOwnProperty;function Rm(s){if(!Il(s))return $y(s);var t=[];for(var e in Object(s))By.call(s,e)&&e!="constructor"&&t.push(e);return t}function Ac(s){return s!=null&&lh(s.length)&&!oh(s)}function Al(s){return Ac(s)?Cm(s):Rm(s)}function Hy(s,t){return s&&Ic(t,Al(t),s)}function qy(s){var t=[];if(s!=null)for(var e in Object(s))t.push(e);return t}var jy=Object.prototype,Gy=jy.hasOwnProperty;function Wy(s){if(!ns(s))return qy(s);var t=Il(s),e=[];for(var r in s)r=="constructor"&&(t||!Gy.call(s,r))||e.push(r);return e}function Mc(s){return Ac(s)?Cm(s,!0):Wy(s)}function Jy(s,t){return s&&Ic(t,Mc(t),s)}var bm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ap=bm&&typeof module=="object"&&module&&!module.nodeType&&module,Ky=ap&&ap.exports===bm,op=Ky?ws.Buffer:void 0,cp=op?op.allocUnsafe:void 0;function km(s,t){if(t)return s.slice();var e=s.length,r=cp?cp(e):new s.constructor(e);return s.copy(r),r}function Im(s,t){var e=-1,r=s.length;for(t||(t=Array(r));++e<r;)t[e]=s[e];return t}function zy(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 Am(){return[]}var Yy=Object.prototype,Qy=Yy.propertyIsEnumerable,dp=Object.getOwnPropertySymbols,Xy=dp?function(s){return s==null?[]:(s=Object(s),zy(dp(s),function(t){return Qy.call(s,t)}))}:Am;const hh=Xy;function Zy(s,t){return Ic(s,hh(s),t)}function Mm(s,t){for(var e=-1,r=t.length,i=s.length;++e<r;)s[i+e]=t[e];return s}var eE=wm(Object.getPrototypeOf,Object);const ph=eE;var tE=Object.getOwnPropertySymbols,sE=tE?function(s){for(var t=[];s;)Mm(t,hh(s)),s=ph(s);return t}:Am;const Dm=sE;function rE(s,t){return Ic(s,Dm(s),t)}function Om(s,t,e){var r=t(s);return Ut(s)?r:Mm(r,e(s))}function lu(s){return Om(s,Al,hh)}function iE(s){return Om(s,Mc,Dm)}var nE=on(ws,"DataView");const uu=nE;var aE=on(ws,"Promise");const hu=aE;var oE=on(ws,"Set");const Cn=oE;var cE=on(ws,"WeakMap");const pu=cE;var lp="[object Map]",dE="[object Object]",up="[object Promise]",hp="[object Set]",pp="[object WeakMap]",gp="[object DataView]",lE=an(uu),uE=an(So),hE=an(hu),pE=an(Cn),gE=an(pu),ii=nn;(uu&&ii(new uu(new ArrayBuffer(1)))!=gp||So&&ii(new So)!=lp||hu&&ii(hu.resolve())!=up||Cn&&ii(new Cn)!=hp||pu&&ii(new pu)!=pp)&&(ii=function(s){var t=nn(s),e=t==dE?s.constructor:void 0,r=e?an(e):"";if(r)switch(r){case lE:return gp;case uE:return lp;case hE:return up;case pE:return hp;case gE:return pp}return t});const Ia=ii;var mE=Object.prototype,fE=mE.hasOwnProperty;function TE(s){var t=s.length,e=new s.constructor(t);return t&&typeof s[0]=="string"&&fE.call(s,"index")&&(e.index=s.index,e.input=s.input),e}var vE=ws.Uint8Array;const vd=vE;function gh(s){var t=new s.constructor(s.byteLength);return new vd(t).set(new vd(s)),t}function SE(s,t){var e=t?gh(s.buffer):s.buffer;return new s.constructor(e,s.byteOffset,s.byteLength)}var yE=/\w*$/;function EE(s){var t=new s.constructor(s.source,yE.exec(s));return t.lastIndex=s.lastIndex,t}var mp=Us?Us.prototype:void 0,fp=mp?mp.valueOf:void 0;function PE(s){return fp?Object(fp.call(s)):{}}function Nm(s,t){var e=t?gh(s.buffer):s.buffer;return new s.constructor(e,s.byteOffset,s.length)}var _E="[object Boolean]",CE="[object Date]",wE="[object Map]",RE="[object Number]",bE="[object RegExp]",kE="[object Set]",IE="[object String]",AE="[object Symbol]",ME="[object ArrayBuffer]",DE="[object DataView]",OE="[object Float32Array]",NE="[object Float64Array]",VE="[object Int8Array]",LE="[object Int16Array]",xE="[object Int32Array]",UE="[object Uint8Array]",$E="[object Uint8ClampedArray]",FE="[object Uint16Array]",BE="[object Uint32Array]";function HE(s,t,e){var r=s.constructor;switch(t){case ME:return gh(s);case _E:case CE:return new r(+s);case DE:return SE(s,e);case OE:case NE:case VE:case LE:case xE:case UE:case $E:case FE:case BE:return Nm(s,e);case wE:return new r;case RE:case IE:return new r(s);case bE:return EE(s);case kE:return new r;case AE:return PE(s)}}var Tp=Object.create,qE=function(){function s(){}return function(t){if(!ns(t))return{};if(Tp)return Tp(t);s.prototype=t;var e=new s;return s.prototype=void 0,e}}();const jE=qE;function Vm(s){return typeof s.constructor=="function"&&!Il(s)?jE(ph(s)):{}}var GE="[object Map]";function WE(s){return $s(s)&&Ia(s)==GE}var vp=ka&&ka.isMap,JE=vp?uh(vp):WE;const KE=JE;var zE="[object Set]";function YE(s){return $s(s)&&Ia(s)==zE}var Sp=ka&&ka.isSet,QE=Sp?uh(Sp):YE;const XE=QE;var ZE=1,eP=2,tP=4,Lm="[object Arguments]",sP="[object Array]",rP="[object Boolean]",iP="[object Date]",nP="[object Error]",xm="[object Function]",aP="[object GeneratorFunction]",oP="[object Map]",cP="[object Number]",Um="[object Object]",dP="[object RegExp]",lP="[object Set]",uP="[object String]",hP="[object Symbol]",pP="[object WeakMap]",gP="[object ArrayBuffer]",mP="[object DataView]",fP="[object Float32Array]",TP="[object Float64Array]",vP="[object Int8Array]",SP="[object Int16Array]",yP="[object Int32Array]",EP="[object Uint8Array]",PP="[object Uint8ClampedArray]",_P="[object Uint16Array]",CP="[object Uint32Array]",ge={};ge[Lm]=ge[sP]=ge[gP]=ge[mP]=ge[rP]=ge[iP]=ge[fP]=ge[TP]=ge[vP]=ge[SP]=ge[yP]=ge[oP]=ge[cP]=ge[Um]=ge[dP]=ge[lP]=ge[uP]=ge[hP]=ge[EP]=ge[PP]=ge[_P]=ge[CP]=!0;ge[nP]=ge[xm]=ge[pP]=!1;function ed(s,t,e,r,i,a){var o,c=t&ZE,d=t&eP,l=t&tP;if(e&&(o=i?e(s,r,i,a):e(s)),o!==void 0)return o;if(!ns(s))return s;var p=Ut(s);if(p){if(o=TE(s),!c)return Im(s,o)}else{var g=Ia(s),f=g==xm||g==aP;if(ba(s))return km(s,c);if(g==Um||g==Lm||f&&!i){if(o=d||f?{}:Vm(s),!c)return d?rE(s,Jy(o,s)):Zy(s,Hy(o,s))}else{if(!ge[g])return i?s:{};o=HE(s,g,c)}}a||(a=new Cs);var v=a.get(s);if(v)return v;a.set(s,o),XE(s)?s.forEach(function(C){o.add(ed(C,t,e,C,s,a))}):KE(s)&&s.forEach(function(C,A){o.set(A,ed(C,t,e,A,s,a))});var E=l?d?iE:lu:d?Mc:Al,_=p?void 0:E(s);return jS(_||s,function(C,A){_&&(A=C,C=s[A]),ym(o,A,ed(C,t,e,A,s,a))}),o}var wP=1,RP=4;function mh(s){return ed(s,wP|RP)}var bP="[object Symbol]";function Ml(s){return typeof s=="symbol"||$s(s)&&nn(s)==bP}var kP=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,IP=/^\w*$/;function fh(s,t){if(Ut(s))return!1;var e=typeof s;return e=="number"||e=="symbol"||e=="boolean"||s==null||Ml(s)?!0:IP.test(s)||!kP.test(s)||t!=null&&s in Object(t)}var AP="Expected a function";function Th(s,t){if(typeof s!="function"||t!=null&&typeof t!="function")throw new TypeError(AP);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(Th.Cache||Sr),e}Th.Cache=Sr;var MP=500;function DP(s){var t=Th(s,function(r){return e.size===MP&&e.clear(),r}),e=t.cache;return t}var OP=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,NP=/\\(\\)?/g,VP=DP(function(s){var t=[];return s.charCodeAt(0)===46&&t.push(""),s.replace(OP,function(e,r,i,a){t.push(i?a.replace(NP,"$1"):r||e)}),t});const LP=VP;function xP(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 UP=1/0,yp=Us?Us.prototype:void 0,Ep=yp?yp.toString:void 0;function $m(s){if(typeof s=="string")return s;if(Ut(s))return xP(s,$m)+"";if(Ml(s))return Ep?Ep.call(s):"";var t=s+"";return t=="0"&&1/s==-UP?"-0":t}function $P(s){return s==null?"":$m(s)}function Fm(s,t){return Ut(s)?s:fh(s,t)?[s]:LP($P(s))}var FP=1/0;function Dl(s){if(typeof s=="string"||Ml(s))return s;var t=s+"";return t=="0"&&1/s==-FP?"-0":t}function Bm(s,t){t=Fm(t,s);for(var e=0,r=t.length;s!=null&&e<r;)s=s[Dl(t[e++])];return e&&e==r?s:void 0}function BP(s,t,e){var r=s==null?void 0:Bm(s,t);return r===void 0?e:r}function HP(s,t,e){t=Fm(t,s);for(var r=-1,i=t.length,a=!1;++r<i;){var o=Dl(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&&lh(i)&&dh(o,i)&&(Ut(s)||Eo(s)))}var qP=Object.defineProperty,jP=(s,t)=>{for(var e in t)qP(s,e,{get:t[e],enumerable:!0})},GP={};jP(GP,{permissions:()=>WP,theme:()=>JP});var pr=(s=>(s.GroupCall="GROUP_CALL",s.Webinar="WEBINAR",s.AudioRoom="AUDIO_ROOM",s.Livestream="LIVESTREAM",s.Chat="CHAT",s))(pr||{}),q=(s=>(s.Allowed="ALLOWED",s.NotAllowed="NOT_ALLOWED",s.CanRequest="CAN_REQUEST",s))(q||{}),WP={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},JP={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}},Hm="hXgU8Wc8pwuGNq9ms5q9Hh",Sg;typeof process!="undefined"&&(Sg=process==null?void 0:process.env)!=null&&Sg.FLAGSMITH_ENVIRONMENT_KEY&&(Hm=process.env.FLAGSMITH_ENVIRONMENT_KEY);function KP(s=[]){const t={};return s.forEach(e=>{t[e.feature.name]={enabled:e.enabled,value:e.feature_state_value}}),t}var qm=class{constructor(s=Hm){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 f=new AbortController,v=setTimeout(()=>f.abort(),r),E=`_${(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?E:""),traits:l}),signal:f.signal});if(clearTimeout(v),!_.ok)throw new Error(`Request failed with status ${_.status}`);const C=yield _.json();return KP(C.flags||[])}catch(f){o.error("Flagsmith identify failed!!",{error:f,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}},zP=new qm;function YP(s){return new qm(s)}var jm=[-2,-1,0,1,2],QP=[0,1,2,3,4];function XP(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 ZP=(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)]},e_=(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]},t_=(s,t,e)=>{const r=i=>i.toString(16).padStart(2,"0");return`#${r(s)}${r(t)}${r(e)}`},Gm=(s,t=jm,e=.4)=>{const r=[],[i,a,o]=XP(s),[c,d,l]=e_(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 f=5-g,v=g+1,E=(100-p)/f,_=p/v;for(const C of t){let A;C<0?A=p+C*_*e:C>0?A=p+C*E*e:A=p;const[M,$,x]=ZP(c,d,A/100);r.push(t_(M,$,x))}return r},Pp={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"}},s_=s=>{const[t,e,r,i,a]=Gm(s,jm);return{300:t,400:e,500:r,600:i,700:a}},r_=s=>{if(s==="#FFFFFF")return Pp.light.background;if(s==="#000000")return Pp.dark.background;const[t,e,r,i,a]=Gm(s,QP);return{1e3:t,900:e,800:r,700:i,600:a}},i_={border_radius:"rounded",border_width:"thin",spacing_base:4,theme:"dark",colors:{brand:s_("#2160FD"),background:r_("#141414"),danger:"#FF2D2D",text:"#EEEEEE",text_on_brand:"#EEEEEE",success:"#62A504",video_bg:"#191919",warning:"#FFCD07"}};function Wm(){return mh(i_)}var n_={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:Wm(),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 a_(){return mh(n_)}var o_={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:Wm(),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 vh(){return mh(o_)}var Co;class Jm{constructor(){m(this,Co,void 0)}get telemetry(){var t;return(t=n(this,Co))==null?void 0:t.getValue("telemetry")}init(t){T(this,Co,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)}}Co=new WeakMap;var qs,js;const Fh=class extends ct.EventEmitter{constructor(e){super();m(this,qs,void 0);m(this,js,void 0);h(this,"asyncPromiseTimeout");h(this,"logger");this.logger=e,T(this,qs,new Map),T(this,js,new Map),this.asyncPromiseTimeout=8e3}emitAsync(e,...r){return u(this,null,function*(){n(this,qs).set(e,[]);const i=n(this,js).get(e).map(()=>new Promise(a=>{n(this,qs).get(e).push(a)}));Wh(Fh.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,qs).delete(e)})}onAsync(e,r){const i=n(this,qs),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,js).get(e)||n(this,js).set(e,[]),n(this,js).get(e).push(a),super.on(e,a)}reset(){T(this,qs,new Map),T(this,js,new Map),super.removeAllListeners()}};let gu=Fh;qs=new WeakMap,js=new WeakMap;var c_=/\s/;function d_(s){for(var t=s.length;t--&&c_.test(s.charAt(t)););return t}var l_=/^\s+/;function u_(s){return s&&s.slice(0,d_(s)+1).replace(l_,"")}var _p=0/0,h_=/^[-+]0x[0-9a-f]+$/i,p_=/^0b[01]+$/i,g_=/^0o[0-7]+$/i,m_=parseInt;function Cp(s){if(typeof s=="number")return s;if(Ml(s))return _p;if(ns(s)){var t=typeof s.valueOf=="function"?s.valueOf():s;s=ns(t)?t+"":t}if(typeof s!="string")return s===0?s:+s;s=u_(s);var e=p_.test(s);return e||g_.test(s)?m_(s.slice(2),e?2:8):h_.test(s)?_p:+s}function Sh(s){return s}function f_(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 T_(){}var v_=800,S_=16,y_=Date.now;function E_(s){var t=0,e=0;return function(){var r=y_(),i=S_-(r-e);if(e=r,i>0){if(++t>=v_)return arguments[0]}else t=0;return s.apply(void 0,arguments)}}function P_(s){return function(){return s}}var __=Td?function(s,t){return Td(s,"toString",{configurable:!0,enumerable:!1,value:P_(t),writable:!0})}:Sh;const C_=__;var w_=E_(C_);const R_=w_;function b_(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 k_(s){return s!==s}function I_(s,t,e){for(var r=e-1,i=s.length;++r<i;)if(s[r]===t)return r;return-1}function A_(s,t,e){return t===t?I_(s,t,e):b_(s,k_,e)}function M_(s,t){var e=s==null?0:s.length;return!!e&&A_(s,t,0)>-1}var wp=Math.max;function D_(s,t,e){return t=wp(t===void 0?s.length-1:t,0),function(){for(var r=arguments,i=-1,a=wp(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),f_(s,this,c)}}function O_(s,t){return R_(D_(s,t,Sh),s+"")}function N_(s,t,e){if(!ns(e))return!1;var r=typeof t;return(r=="number"?Ac(e)&&dh(t,e.length):r=="string"&&t in e)?kc(e[t],s):!1}function V_(s){return O_(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&&N_(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 L_="[object Object]",x_=Function.prototype,U_=Object.prototype,Km=x_.toString,$_=U_.hasOwnProperty,F_=Km.call(Object);function B_(s){if(!$s(s)||nn(s)!=L_)return!1;var t=ph(s);if(t===null)return!0;var e=$_.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Km.call(e)==F_}var H_="__lodash_hash_undefined__";function q_(s){return this.__data__.set(s,H_),this}function j_(s){return this.__data__.has(s)}function Po(s){var t=-1,e=s==null?0:s.length;for(this.__data__=new Sr;++t<e;)this.add(s[t])}Po.prototype.add=Po.prototype.push=q_;Po.prototype.has=j_;function G_(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 zm(s,t){return s.has(t)}var W_=1,J_=2;function Ym(s,t,e,r,i,a){var o=e&W_,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,f=!0,v=e&J_?new Po:void 0;for(a.set(s,t),a.set(t,s);++g<c;){var E=s[g],_=t[g];if(r)var C=o?r(_,E,g,t,s,a):r(E,_,g,s,t,a);if(C!==void 0){if(C)continue;f=!1;break}if(v){if(!G_(t,function(A,M){if(!zm(v,M)&&(E===A||i(E,A,e,r,a)))return v.push(M)})){f=!1;break}}else if(!(E===_||i(E,_,e,r,a))){f=!1;break}}return a.delete(s),a.delete(t),f}function K_(s){var t=-1,e=Array(s.size);return s.forEach(function(r,i){e[++t]=[i,r]}),e}function yh(s){var t=-1,e=Array(s.size);return s.forEach(function(r){e[++t]=r}),e}var z_=1,Y_=2,Q_="[object Boolean]",X_="[object Date]",Z_="[object Error]",eC="[object Map]",tC="[object Number]",sC="[object RegExp]",rC="[object Set]",iC="[object String]",nC="[object Symbol]",aC="[object ArrayBuffer]",oC="[object DataView]",Rp=Us?Us.prototype:void 0,Ql=Rp?Rp.valueOf:void 0;function cC(s,t,e,r,i,a,o){switch(e){case oC:if(s.byteLength!=t.byteLength||s.byteOffset!=t.byteOffset)return!1;s=s.buffer,t=t.buffer;case aC:return!(s.byteLength!=t.byteLength||!a(new vd(s),new vd(t)));case Q_:case X_:case tC:return kc(+s,+t);case Z_:return s.name==t.name&&s.message==t.message;case sC:case iC:return s==t+"";case eC:var c=K_;case rC:var d=r&z_;if(c||(c=yh),s.size!=t.size&&!d)return!1;var l=o.get(s);if(l)return l==t;r|=Y_,o.set(s,t);var p=Ym(c(s),c(t),r,i,a,o);return o.delete(s),p;case nC:if(Ql)return Ql.call(s)==Ql.call(t)}return!1}var dC=1,lC=Object.prototype,uC=lC.hasOwnProperty;function hC(s,t,e,r,i,a){var o=e&dC,c=lu(s),d=c.length,l=lu(t),p=l.length;if(d!=p&&!o)return!1;for(var g=d;g--;){var f=c[g];if(!(o?f in t:uC.call(t,f)))return!1}var v=a.get(s),E=a.get(t);if(v&&E)return v==t&&E==s;var _=!0;a.set(s,t),a.set(t,s);for(var C=o;++g<d;){f=c[g];var A=s[f],M=t[f];if(r)var $=o?r(M,A,f,t,s,a):r(A,M,f,s,t,a);if(!($===void 0?A===M||i(A,M,e,r,a):$)){_=!1;break}C||(C=f=="constructor")}if(_&&!C){var x=s.constructor,B=t.constructor;x!=B&&"constructor"in s&&"constructor"in t&&!(typeof x=="function"&&x instanceof x&&typeof B=="function"&&B instanceof B)&&(_=!1)}return a.delete(s),a.delete(t),_}var pC=1,bp="[object Arguments]",kp="[object Array]",Hc="[object Object]",gC=Object.prototype,Ip=gC.hasOwnProperty;function mC(s,t,e,r,i,a){var o=Ut(s),c=Ut(t),d=o?kp:Ia(s),l=c?kp:Ia(t);d=d==bp?Hc:d,l=l==bp?Hc:l;var p=d==Hc,g=l==Hc,f=d==l;if(f&&ba(s)){if(!ba(t))return!1;o=!0,p=!1}if(f&&!p)return a||(a=new Cs),o||kl(s)?Ym(s,t,e,r,i,a):cC(s,t,d,e,r,i,a);if(!(e&pC)){var v=p&&Ip.call(s,"__wrapped__"),E=g&&Ip.call(t,"__wrapped__");if(v||E){var _=v?s.value():s,C=E?t.value():t;return a||(a=new Cs),i(_,C,e,r,a)}}return f?(a||(a=new Cs),hC(s,t,e,r,i,a)):!1}function Ol(s,t,e,r,i){return s===t?!0:s==null||t==null||!$s(s)&&!$s(t)?s!==s&&t!==t:mC(s,t,e,r,Ol,i)}var fC=1,TC=2;function vC(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 Cs;if(r)var f=r(l,p,d,s,t,g);if(!(f===void 0?Ol(p,l,fC|TC,r,g):f))return!1}}return!0}function Qm(s){return s===s&&!ns(s)}function SC(s){for(var t=Al(s),e=t.length;e--;){var r=t[e],i=s[r];t[e]=[r,i,Qm(i)]}return t}function Xm(s,t){return function(e){return e==null?!1:e[s]===t&&(t!==void 0||s in Object(e))}}function yC(s){var t=SC(s);return t.length==1&&t[0][2]?Xm(t[0][0],t[0][1]):function(e){return e===s||vC(e,s,t)}}function EC(s,t){return s!=null&&t in Object(s)}function PC(s,t){return s!=null&&HP(s,t,EC)}var _C=1,CC=2;function wC(s,t){return fh(s)&&Qm(t)?Xm(Dl(s),t):function(e){var r=BP(e,s);return r===void 0&&r===t?PC(e,s):Ol(t,r,_C|CC)}}function RC(s){return function(t){return t==null?void 0:t[s]}}function bC(s){return function(t){return Bm(t,s)}}function kC(s){return fh(s)?RC(Dl(s)):bC(s)}function IC(s){return typeof s=="function"?s:s==null?Sh:typeof s=="object"?Ut(s)?wC(s[0],s[1]):yC(s):kC(s)}function AC(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 MC=AC();const DC=MC;var OC=function(){return ws.Date.now()};const Xl=OC;var NC="Expected a function",VC=Math.max,LC=Math.min;function Eh(s,t,e){var r,i,a,o,c,d,l=0,p=!1,g=!1,f=!0;if(typeof s!="function")throw new TypeError(NC);t=Cp(t)||0,ns(e)&&(p=!!e.leading,g="maxWait"in e,a=g?VC(Cp(e.maxWait)||0,t):a,f="trailing"in e?!!e.trailing:f);function v(H){var re=r,et=i;return r=i=void 0,l=H,o=s.apply(et,re),o}function E(H){return l=H,c=setTimeout(A,t),p?v(H):o}function _(H){var re=H-d,et=H-l,os=t-re;return g?LC(os,a-et):os}function C(H){var re=H-d,et=H-l;return d===void 0||re>=t||re<0||g&&et>=a}function A(){var H=Xl();if(C(H))return M(H);c=setTimeout(A,_(H))}function M(H){return c=void 0,f&&r?v(H):(r=i=void 0,o)}function $(){c!==void 0&&clearTimeout(c),l=0,r=d=i=c=void 0}function x(){return c===void 0?o:M(Xl())}function B(){var H=Xl(),re=C(H);if(r=arguments,i=this,d=H,re){if(c===void 0)return E(d);if(g)return clearTimeout(c),c=setTimeout(A,t),v(d)}return c===void 0&&(c=setTimeout(A,t)),o}return B.cancel=$,B.flush=x,B}function mu(s,t,e){(e!==void 0&&!kc(s[t],e)||e===void 0&&!(t in s))&&ch(s,t,e)}function xC(s){return $s(s)&&Ac(s)}function fu(s,t){if(!(t==="constructor"&&typeof s[t]=="function")&&t!="__proto__")return s[t]}function UC(s){return Ic(s,Mc(s))}function $C(s,t,e,r,i,a,o){var c=fu(s,e),d=fu(t,e),l=o.get(d);if(l){mu(s,e,l);return}var p=a?a(c,d,e+"",s,t,o):void 0,g=p===void 0;if(g){var f=Ut(d),v=!f&&ba(d),E=!f&&!v&&kl(d);p=d,f||v||E?Ut(c)?p=c:xC(c)?p=Im(c):v?(g=!1,p=km(d,!0)):E?(g=!1,p=Nm(d,!0)):p=[]:B_(d)||Eo(d)?(p=c,Eo(c)?p=UC(c):(!ns(c)||oh(c))&&(p=Vm(d))):g=!1}g&&(o.set(d,p),i(p,d,r,a,o),o.delete(d)),mu(s,e,p)}function Zm(s,t,e,r,i){s!==t&&DC(t,function(a,o){if(i||(i=new Cs),ns(a))$C(s,t,o,e,Zm,r,i);else{var c=r?r(fu(s,o),a,o+"",s,t,i):void 0;c===void 0&&(c=a),mu(s,o,c)}},Mc)}function FC(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 BC="[object Map]",HC="[object Set]",qC=Object.prototype,jC=qC.hasOwnProperty;function GC(s){if(s==null)return!0;if(Ac(s)&&(Ut(s)||typeof s=="string"||typeof s.splice=="function"||ba(s)||kl(s)||Eo(s)))return!s.length;var t=Ia(s);if(t==BC||t==HC)return!s.size;if(Il(s))return!Rm(s).length;for(var e in s)if(jC.call(s,e))return!1;return!0}function WC(s,t){return Ol(s,t)}var JC=V_(function(s,t,e){Zm(s,t,e)});const Cr=JC;var KC=1/0,zC=Cn&&1/yh(new Cn([,-0]))[1]==KC?function(s){return new Cn(s)}:T_;const YC=zC;var QC=200;function ef(s,t,e){var r=-1,i=M_,a=s.length,o=!0,c=[],d=c;if(e)o=!1,i=FC;else if(a>=QC){var l=t?null:YC(s);if(l)return yh(l);o=!1,i=zm,d=new Po}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 f=d.length;f--;)if(d[f]===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 XC(s){return s&&s.length?ef(s):[]}function ZC(s,t){return s&&s.length?ef(s,IC(t)):[]}var Tu=(s=>(s.PARTICIPANT="PARTICIPANT",s.PEER="PEER",s.CLIENT="CLIENT",s))(Tu||{});const Z={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",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 td(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 ew={audio:!0,video:!0,screenshareAudio:!0,screenshareVideo:!0},Xa={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"},tw={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 Aa(s,t){const e=s.getValue("overrides");return e&&e[t]?e[t]:!1}function sw({baseURI:s}){return s.includes("preprod.dyte")||s.includes("preprod.realtime")?uo.PREPROD:s.includes("devel.dyte")||s.includes("devel.realtime")?uo.DEVEL:uo.PROD}function Zi({servicePrefix:s,baseURI:t}){return`${s}.${t}`}function tf(s){const t=s.getValue("baseURI");return{location:Zi({servicePrefix:"location",baseURI:t}),locationLegacy:Zi({servicePrefix:"location-legacy",baseURI:t}),daCollector:Zi({servicePrefix:"da-collector",baseURI:t.replace("realtime.cloudflare.com","dyte.io")})}}const rw='<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>',iw='<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>',qc=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})},ui={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 nw(s){var r,i,a;const t=typeof navigator!="undefined"&&!navigator.isReactNative&&typeof window!="undefined"&&((r=window.location.host)==null?void 0:r.includes(ui.baseURI.staging)),e=!!((a=(i=s==null?void 0:s.getValue("modules"))==null?void 0:i.devTools)!=null&&a.logs);return t||e}function aw(s,t){var e;if(s!=null&&s.getValue("flagsmith").hasFeature(Z.LOG_LEVEL)){let r=((e=s.getValue("flagsmith").getValue(Z.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 sf(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"?sf(s[r],i,e):["number","string","boolean"].includes(typeof s[r])&&(e[i]=s[r])}),e}function Ap(s,t,e={},r=""){const i={};try{const a=JSON.stringify(e),o=JSON.parse(a),c=sf(o,r),d=JSON.stringify(c);return JSON.parse(d)}catch(a){const o=td(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 Bh=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=ur.getContext(this.meetingMetadata.peerId);return`https://${Zi({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 f;const l=this==null?void 0:this.telemetry;if(!l||!l.initialized||navigator.isReactNative||!l.tracingEnabled||(f=ur.getContext(l.meetingMetadata.peerId))!=null&&f.getValue("flagsmith").hasFeature(Z.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:Bh.location.country})}).catch(()=>{const v=performance.now();l.addLogInCurrentSpan("info",`${t}_timing`,{execTime:v-p})}),g},a}}injectContext(t){var i;const e=gr.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:td(r.error)});const a=ur.getContext(this.meetingMetadata.peerId);if(nw(a)&&(GC(r)?console[t]("InternalLogs:: ",t,e):console[t]("InternalLogs:: ",t,e,r)),!!aw(a,t))try{const c=Ap(a,e,r,"metadata"),d=new Date,l=G(O({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:td(c)})}}sendOtelLogsToNewRelic(t){const e=ur.getContext(this.meetingMetadata.peerId);fetch(this.logsEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({meetingMetadata:Ap(e,"sendOtelLogsToNewRelic",this.meetingMetadata,"meetingMetadata"),serviceName:e.getValue("sdkName"),logs:t})}).catch(r=>{this.addLogInCurrentSpan("error","opentelemetry::sendOtelLogToNewRelic_failed",{error:td(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 P=Bh;h(P,"location",{country:void 0});function ow(s){const t=O({},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(f){}})};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 cw{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 P,i=new Jm;this.contexts.set(t,ow(e)),this.contexts.get(t).setValue("peerSessionStore",new gu(i));const a=new Tm;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",YP()),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 ur=new cw,dw={"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"},sd={"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","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(sd).forEach(s=>{sd[s]=`{${dw[s.slice(0,2)]}} ${sd[s]}`});class k extends Error{constructor(e,r,i=void 0,a=!1){super(e);h(this,"code");this.code=r,this.name="ClientError";const o=this.code?`[ERR${this.code}]`:"[ERR]",c=this.code?sd[this.code]:"";this.message=`${o}: ${c}
|
|
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 ct{constructor(e){super();h(this,"call");h(this,"timeOut");this.call=new mr(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 wv=8,Rv=1/1e3;class bv 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(mr.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)*wv/(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*Rv)})}}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 nh extends pm{constructor(e,r=mr.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 kv extends nh{constructor(t){super(t,mr.isHost)}}class Iv extends nh{constructor(t){super(t,mr.isRelay)}}class Av extends nh{constructor(t){super(t,mr.isReflexive)}}class Mv{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=Yr(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=Yr(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 ah=new Mv,Qh=[{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 Xh(s){const[t,e]=s.split(",");return{coords:{latitude:Number(t),longitude:Number(e)}}}class gm{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 mm extends ct{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 ct}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,A,M,$,x,B,H,re,et,os,ri,cs;const c=e,d=new gm,l=r.length?new Set(r):void 0,p=[],g=[],f=[],v=new Map,E=new Map;for(const I of c.values()){if(l){if(l.size===0)break;if(l.has(I.type))i&&l.delete(I.type);else continue}switch(I.type){case"local-candidate":{p.push(this.getIceCandidateStats(I));break}case"remote-candidate":{g.push(this.getIceCandidateStats(I));break}case"candidate-pair":{const{nominated:y}=I,{selected:w}=I,F=I,ye={nominated:y!=null?y:w,currentRoundTripTime:F.currentRoundTripTime,totalRoundTripTime:F.totalRoundTripTime,bytesReceived:F.bytesReceived,bytesSent:F.bytesSent,availableOutgoingBitrate:F.availableOutgoingBitrate,availableIncomingBitrate:F.availableIncomingBitrate,lastPacketReceivedTimestamp:F.lastPacketReceivedTimestamp,lastPacketSentTimestamp:F.lastPacketSentTimestamp,localCandidateId:F.localCandidateId,remoteCandidateId:F.remoteCandidateId,bytesDiscardedOnSend:F.bytesDiscardedOnSend,packetsSent:F.packetsSent,packetsReceived:F.packetsReceived,packetsDiscardedOnSend:F.packetsDiscardedOnSend};f.push(ye),(I.nominated===!0||I.selected===!0)&&(d.candidatePair=ye);break}case"transport":{const y=I;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 w={bytesReceived:y.bytesReceived,bytesSent:y.bytesSent,packetsSent:y.packetsSent,packetsReceived:y.packetsReceived,dtlsCipher:y.dtlsCipher,dtlsState:y.dtlsState,iceRole:y.iceRole};if(d.transport=w,o){if(o.producing){const F=this.overallProducingTransportsStatsMap[o.id];this.processProducingTransportStats(o.id,F,w)}if(o.consuming){const F=this.overallConsumingTransportsStatsMap[o.id];this.processConsumingTransportStats(o.id,F,w)}}break}case"remote-inbound-rtp":{const y=I,w={jitter:y.jitter,fractionLost:y.fractionLost,roundTripTime:y.roundTripTime,roundTripTimeMeasurements:y.roundTripTimeMeasurements,totalRoundTripTime:y.totalRoundTripTime,packetsLost:y.packetsLost};d.remoteInboundRtp.set(y.localId,w);break}case"outbound-rtp":{if(!this.outboundProducerMap.has(I.id))break;const y=I,w=a||this.outboundProducerMap.get(I.id),F=this.pausedProducerMap.get(w);if(F){if(F.lastReportCalculated===!0)break;this.pausedProducerMap.set(w,{lastReportCalculated:!0})}this.overallProducersStatsMap[w]||(this.overallProducersStatsMap[w]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const ye=this.overallProducersStatsMap[w];if(["video","audio"].includes(y.mediaType)||["video","audio"].includes(y.kind)){if(!this.outboundProducerMap.has(I.id)){d.staleProducerStreamMap=!0;break}const Ae=this.callStatsInstance.producers.get(w);if(((_=Ae==null?void 0:Ae.track)==null?void 0:_.readyState)==="ended")break;d.producerStreamMap.has(w)||d.producerStreamMap.set(w,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const V={bytesSent:y.bytesSent,packetsSent:y.packetsSent,nackCount:y.nackCount,ssrc:y.ssrc,mid:y.mid,active:y.active,codecId:y.codecId,headerBytesSent:y.headerBytesSent||0,totalPacketSendDelay:y.totalPacketSendDelay||0};if(y.mediaType==="video"||y.kind==="video"){const b=y,xe=O({frameHeight:b.frameHeight,frameWidth:b.frameWidth,framesEncoded:b.framesEncoded,framesDropped:b.framesDropped,framesPerSecond:b.framesPerSecond,framesSent:b.framesSent,keyFramesEncoded:b.keyFramesEncoded,firCount:b.firCount,encoderImplementation:b.encoderImplementation,hugeFramesSent:b.hugeFramesSent,pliCount:b.pliCount,qpSum:b.qpSum,qualityLimitationDurations:b.qualityLimitationDurations,qualityLimitationReason:b.qualityLimitationReason,qualityLimitationResolutionChanges:b.qualityLimitationResolutionChanges,totalEncodeTime:b.targetBitrate,totalPacketSendDelay:b.totalPacketSendDelay,retransmittedBytesSent:b.retransmittedBytesSent,retransmittedPacketsSent:b.retransmittedPacketsSent,scalabilityMode:b.scalabilityMode,powerEfficientEncoder:b.powerEfficientEncoder},V);d.outboundVideoRtp.set(I.id,xe),d.producerStreamMap.get(w).outboundVideoRtpId.push(I.id),this.processOutboundProducerVideoStats(w,ye,xe)}else if(y.mediaType==="audio"||y.kind==="audio"){const b=y,xe=O({retransmittedBytesSent:b.retransmittedBytesSent,retransmittedPacketsSent:b.retransmittedPacketsSent},V);d.outboundAudioRtp.set(I.id,xe),d.producerStreamMap.get(w).outboundAudioRtpId.push(I.id),this.processOutboundProducerAudioStats(w,ye,xe)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${y.mediaType} kind: ${y.kind}`);break}case"inbound-rtp":{if(!this.inboundConsumerMap.has(I.id))break;const y=I,w=a||this.inboundConsumerMap.get(I.id),F=this.pausedConsumerMap.get(w);if(F){if(F.lastReportCalculated===!0)break;this.pausedConsumerMap.set(w,{lastReportCalculated:!0})}if(y.ssrc===1234)break;this.overallConsumersStatsMap[w]||(this.overallConsumersStatsMap[w]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const ye=this.overallConsumersStatsMap[w];if(["video","audio"].includes(y.mediaType)||["video","audio"].includes(y.kind)){if(!this.inboundConsumerMap.has(I.id)){d.staleConsumerStreamMap=!0;break}d.consumerStreamMap.has(w)||d.consumerStreamMap.set(w,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const Ae={bytesReceived:y.bytesReceived,packetsReceived:y.packetsReceived,packetsLost:y.packetsLost>=0?y.packetsLost:0,jitter:y.jitter,nackCount:y.nackCount,jitterBufferDelay:y.jitterBufferDelay,jitterBufferEmittedCount:y.jitterBufferEmittedCount,lastPacketReceivedTimestamp:y.lastPacketReceivedTimestamp,ssrc:y.ssrc,mid:y.mid,codecId:y.codecId,headerBytesReceived:y.headerBytesReceived||0,packetsDiscarded:y.packetsDiscarded||0,jitterBufferMinimumDelay:y.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:y.jitterBufferTargetDelay||0};if(y.mediaType==="video"||y.kind==="video"){const V=y,b=O({frameHeight:V.frameHeight,frameWidth:V.frameWidth,framesDecoded:V.framesDecoded,framesDropped:V.framesDropped,framesPerSecond:V.framesPerSecond,framesReceived:V.framesReceived,keyFramesDecoded:V.keyFramesDecoded,firCount:V.firCount,decoderImplementation:V.decoderImplementation,pliCount:V.pliCount,totalProcessingDelay:V.totalProcessingDelay,qpSum:V.qpSum||0,totalAssemblyTime:V.totalAssemblyTime||0,totalDecodeTime:V.totalDecodeTime||0,totalFreezesDuration:V.totalFreezesDuration||0,totalInterFrameDelay:V.totalInterFrameDelay||0,totalPausesDuration:V.totalPausesDuration||0,totalSquaredInterFrameDelay:V.totalSquaredInterFrameDelay||0,freezeCount:V.freezeCount||0,pauseCount:V.pauseCount||0,powerEfficientDecoder:V.powerEfficientDecoder},Ae);b.score=hm({frameWidth:b.frameWidth||0,framesDecoded:(b.framesDecoded||0)-(((C=this.videoConsumerToStatsMap.get(w))==null?void 0:C.framesDecoded)||0),framesPerSecond:b.framesPerSecond||0,packetsLost:(b.packetsLost||0)-(((A=this.videoConsumerToStatsMap.get(w))==null?void 0:A.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((M=this.videoConsumerToStatsMap.get(w))==null?void 0:M.packetsReceived)||0),jitter:b.jitter||0,isScreenShare:this.screenShareConsumers.has(w)}),E.set(w,{score:+(b.score*10).toFixed(),frameWidth:b.frameWidth||0,frameHeight:b.frameHeight||0,framesPerSecond:b.framesPerSecond||0,packetsLostPercentage:md({packetsLost:(b.packetsLost||0)-((($=this.videoConsumerToStatsMap.get(w))==null?void 0:$.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((x=this.videoConsumerToStatsMap.get(w))==null?void 0:x.packetsReceived)||0)}),jitter:b.jitter||0,isScreenShare:this.screenShareConsumers.has(w),bitrate:((b.bytesReceived||0)-(((B=this.videoConsumerToStatsMap.get(w))==null?void 0:B.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(w,b),d.inboundVideoRtp.set(I.id,b),d.consumerStreamMap.get(w).inboundVideoRtpId.push(I.id),this.processInboundConsumerVideoStats(w,ye,b)}else if(y.mediaType==="audio"||y.kind==="audio"){const V=y,b=O({audioLevel:V.audioLevel,concealedSamples:V.concealedSamples,concealmentEvents:V.concealmentEvents,totalAudioEnergy:V.totalAudioEnergy,totalSamplesDuration:V.totalSamplesDuration,totalSamplesReceived:V.totalSamplesReceived,fecPacketsDiscarded:V.fecPacketsDiscarded||0,fecPacketsReceived:V.fecPacketsReceived||0,insertedSamplesForDeceleration:V.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:V.removedSamplesForAcceleration||0,silentConcealedSamples:V.silentConcealedSamples||0,playoutId:V.playoutId},Ae);b.score=um({concealmentEvents:(b.concealmentEvents||0)-(((H=this.audioConsumerToStatsMap.get(w))==null?void 0:H.concealmentEvents)||0),packetsLost:(b.packetsLost||0)-(((re=this.audioConsumerToStatsMap.get(w))==null?void 0:re.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((et=this.audioConsumerToStatsMap.get(w))==null?void 0:et.packetsReceived)||0),jitter:b.jitter||0}),E.set(w,{score:+(b.score*10).toFixed(),packetsLostPercentage:md({packetsLost:(b.packetsLost||0)-(((os=this.audioConsumerToStatsMap.get(w))==null?void 0:os.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((ri=this.audioConsumerToStatsMap.get(w))==null?void 0:ri.packetsReceived)||0)}),jitter:b.jitter||0,isScreenShare:this.screenShareConsumers.has(w),bitrate:((b.bytesReceived||0)-(((cs=this.audioConsumerToStatsMap.get(w))==null?void 0:cs.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(w,b),d.inboundAudioRtp.set(I.id,b),d.consumerStreamMap.get(w).inboundAudioRtpId.push(I.id),this.processInboundConsumerAudioStats(w,ye,b)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${y.mediaType} kind: ${y.kind}`);break}}}if(d.producerStreamMap.forEach((I,y)=>{var w,F,ye,Ae,V,b,xe,Fs,La,xa,Ua,$a,Fa,Ba,Ha,qa,ja,Ga,Wa,Ja,Ka,za,Ya;if(I.outboundVideoRtpId.length>0){const le=[];I.outboundVideoRtpId.forEach(Wl=>{le.push(d.outboundVideoRtp.get(Wl))});const te=this.getWorkingSimulcastVideoStats(le);te.score=dm({frameWidth:te.frameWidth||0,framesPerSecond:te.framesPerSecond||0,jitter:((w=te.remoteData)==null?void 0:w.jitter)||0,isScreenShare:this.screenShareProducers.has(y),packetsSent:(te.packetsSent||0)-(((F=this.videoProducerToStatsMap.get(y))==null?void 0:F.packetsSent)||0),packetsLost:(((ye=te.remoteData)==null?void 0:ye.packetsLost)||0)-(((V=(Ae=this.videoProducerToStatsMap.get(y))==null?void 0:Ae.remoteData)==null?void 0:V.packetsLost)||0),framesEncoded:(te.framesEncoded||0)-(((b=this.videoProducerToStatsMap.get(y))==null?void 0:b.framesEncoded)||0)}),v.set(y,{score:+(te.score*10).toFixed(),frameWidth:te.frameWidth||0,frameHeight:te.frameHeight||0,framesPerSecond:te.framesPerSecond||0,jitter:((xe=te.remoteData)==null?void 0:xe.jitter)||0,isScreenShare:this.screenShareProducers.has(y),packetsLostPercentage:gd({packetsSent:(te.packetsSent||0)-(((Fs=this.videoProducerToStatsMap.get(y))==null?void 0:Fs.packetsSent)||0),packetsLost:(((La=te.remoteData)==null?void 0:La.packetsLost)||0)-(((Ua=(xa=this.videoProducerToStatsMap.get(y))==null?void 0:xa.remoteData)==null?void 0:Ua.packetsLost)||0)}),bitrate:((te.bytesSent||0)-((($a=this.videoProducerToStatsMap.get(y))==null?void 0:$a.bytesSent)||0))*8/7,cpuLimitations:te.qualityLimitationReason==="cpu",bandwidthLimitations:te.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(y,te)}else if(I.outboundAudioRtpId.length>0){const le=d.outboundAudioRtp.get(I.outboundAudioRtpId[0]);le.score=cm({packetsSent:(le.packetsSent||0)-(((Fa=this.audioProducerToStatsMap.get(y))==null?void 0:Fa.packetsSent)||0),packetsLost:(((Ba=le.remoteData)==null?void 0:Ba.packetsLost)||0)-(((qa=(Ha=this.audioProducerToStatsMap.get(y))==null?void 0:Ha.remoteData)==null?void 0:qa.packetsLost)||0),jitter:((ja=le.remoteData)==null?void 0:ja.jitter)||0}),v.set(y,{score:+(le.score*10).toFixed(),bitrate:((le.bytesSent||0)-(((Ga=this.audioProducerToStatsMap.get(y))==null?void 0:Ga.bytesSent)||0))*8/7,packetsLostPercentage:gd({packetsSent:(le.packetsSent||0)-(((Wa=this.audioProducerToStatsMap.get(y))==null?void 0:Wa.packetsSent)||0),packetsLost:(((Ja=le.remoteData)==null?void 0:Ja.packetsLost)||0)-(((za=(Ka=this.audioProducerToStatsMap.get(y))==null?void 0:Ka.remoteData)==null?void 0:za.packetsLost)||0)}),jitter:((Ya=le.remoteData)==null?void 0:Ya.jitter)||0,isScreenShare:this.screenShareProducers.has(y)}),this.audioProducerToStatsMap.set(y,le)}}),f.forEach(I=>{const y=p.find(F=>F.id===I.localCandidateId?(I.localCandidateId=F.id,F):null),w=g.find(F=>F.id===I.remoteCandidateId?(I.remoteCandidateId=F.id,F):null);y&&(I.localCandidateType=y.type,I.localCandidateAddress=Yr(y.address),I.localCandidatePort=y.port,I.localCandidateProtocol=y.protocol,I.localCandidateUrl=y.url,I.localCandidateNetworkType=y.networkType,I.localCandidateRelatedAddress=Yr(y.relatedAddress),I.localCandidateRelatedPort=y.relatedPort),w&&(I.remoteCandidateType=w.type,I.remoteCandidateAddress=Yr(w.address),I.remoteCandidatePort=w.port,I.remoteCandidateProtocol=w.protocol,I.remoteCandidateUrl=w.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=f),d.transport&&!d.transport.roundTripTime){let I=0,y=0;d.remoteInboundRtp.forEach((w,F)=>{w.roundTripTime&&w.roundTripTime>I&&(I=w.roundTripTime,y=w.totalRoundTripTime)}),d.transport.roundTripTime=I,d.transport.totalRoundTripTime=y}if(E.size>0)try{this.observer.emit("consumer_score",E)}catch(I){}if(v.size>0)try{this.observer.emit("producer_score",v)}catch(I){}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||Qh},i=new Promise((p,g)=>{try{const f=new kv(r);f.addListener("done",p),f.addListener("failed",()=>{p({connectivity:!1})}),f.start(2e3)}catch(f){g(f)}}),a=new Promise((p,g)=>{try{const f=new Iv(r);f.addListener("done",p),f.addListener("failed",()=>{p({connectivity:!1})}),f.start(2e3)}catch(f){g(f)}}),o=new Promise((p,g)=>{try{const f=new Av(r);f.addListener("done",p),f.addListener("failed",()=>{p({connectivity:!1})}),f.start(2e3)}catch(f){g(f)}}),[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||Qh},d=new bv(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 ah.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?Xh(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?Xh(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 Dv extends mm{}class fm extends mm{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,A,M,$,x,B,H,re,et,os,ri,cs;const c=e,d=new gm,l=r.length?new Set(r):void 0,p=[],g=[],f=[],v=new Map,E=new Map;for(const I of c.values()){if(l){if(l.size===0)break;if(l.has(I.type))i&&l.delete(I.type);else continue}switch(I.type){case"local-candidate":{p.push(this.getIceCandidateStats(I));break}case"remote-candidate":{g.push(this.getIceCandidateStats(I));break}case"candidate-pair":{const{nominated:y}=I,{selected:w}=I,F=I,ye={nominated:y!=null?y:w,currentRoundTripTime:F.currentRoundTripTime,totalRoundTripTime:F.totalRoundTripTime,bytesReceived:F.bytesReceived,bytesSent:F.bytesSent,availableOutgoingBitrate:F.availableOutgoingBitrate,availableIncomingBitrate:F.availableIncomingBitrate,lastPacketReceivedTimestamp:F.lastPacketReceivedTimestamp,lastPacketSentTimestamp:F.lastPacketSentTimestamp,localCandidateId:F.localCandidateId,remoteCandidateId:F.remoteCandidateId,bytesDiscardedOnSend:F.bytesDiscardedOnSend,packetsSent:F.packetsSent,packetsReceived:F.packetsReceived,packetsDiscardedOnSend:F.packetsDiscardedOnSend};f.push(ye),(I.nominated===!0||I.selected===!0)&&(d.candidatePair=ye);break}case"transport":{const y=I;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 w={bytesReceived:y.bytesReceived,bytesSent:y.bytesSent,packetsSent:y.packetsSent,packetsReceived:y.packetsReceived,dtlsCipher:y.dtlsCipher,dtlsState:y.dtlsState,iceRole:y.iceRole};if(d.transport=w,o){if(o.producing){const F=this.overallProducingTransportsStatsMap[o.id];this.processProducingTransportStats(o.id,F,w)}if(o.consuming){const F=this.overallConsumingTransportsStatsMap[o.id];this.processConsumingTransportStats(o.id,F,w)}}break}case"remote-inbound-rtp":{const y=I,w={jitter:y.jitter,fractionLost:y.fractionLost,roundTripTime:y.roundTripTime,roundTripTimeMeasurements:y.roundTripTimeMeasurements,totalRoundTripTime:y.totalRoundTripTime,packetsLost:y.packetsLost};d.remoteInboundRtp.set(y.localId,w);break}case"outbound-rtp":{if(!this.outboundProducerMap.has(I.id))break;const y=I,w=a||this.outboundProducerMap.get(I.id),F=this.pausedProducerMap.get(w);if(F){if(F.lastReportCalculated===!0)break;this.pausedProducerMap.set(w,{lastReportCalculated:!0})}this.overallProducersStatsMap[w]||(this.overallProducersStatsMap[w]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const ye=this.overallProducersStatsMap[w];if(["video","audio"].includes(y.mediaType)||["video","audio"].includes(y.kind)){if(!this.outboundProducerMap.has(I.id)){d.staleProducerStreamMap=!0;break}const Ae=this.callStatsInstance.producers.get(w);if(((_=Ae==null?void 0:Ae.track)==null?void 0:_.readyState)==="ended")break;d.producerStreamMap.has(w)||d.producerStreamMap.set(w,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const V={bytesSent:y.bytesSent,packetsSent:y.packetsSent,nackCount:y.nackCount,ssrc:y.ssrc,mid:y.mid,active:y.active,codecId:y.codecId,headerBytesSent:y.headerBytesSent||0,totalPacketSendDelay:y.totalPacketSendDelay||0};if(y.mediaType==="video"||y.kind==="video"){const b=y,xe=O({frameHeight:b.frameHeight,frameWidth:b.frameWidth,framesEncoded:b.framesEncoded,framesDropped:b.framesDropped?b.framesDropped:b.droppedFrames,framesPerSecond:b.framesPerSecond?b.framesPerSecond:b.framerateMean,framesSent:b.framesSent,keyFramesEncoded:b.keyFramesEncoded,firCount:b.firCount,encoderImplementation:b.encoderImplementation,hugeFramesSent:b.hugeFramesSent,pliCount:b.pliCount,qpSum:b.qpSum,qualityLimitationReason:b.qualityLimitationReason,qualityLimitationDurations:b.qualityLimitationDurations,qualityLimitationResolutionChanges:b.qualityLimitationResolutionChanges,totalEncodeTime:b.totalEncodeTime,totalPacketSendDelay:b.totalEncodeTime,retransmittedBytesSent:b.retransmittedBytesSent,retransmittedPacketsSent:b.retransmittedPacketsSent,scalabilityMode:b.scalabilityMode,powerEfficientEncoder:b.powerEfficientEncoder},V);d.outboundVideoRtp.set(I.id,xe),d.producerStreamMap.get(w).outboundVideoRtpId.push(I.id),this.processOutboundProducerVideoStats(w,ye,xe)}else if(y.mediaType==="audio"||y.kind==="audio"){const b=y,xe=O({retransmittedBytesSent:b.retransmittedBytesSent,retransmittedPacketsSent:b.retransmittedPacketsSent},V);d.outboundAudioRtp.set(I.id,xe),d.producerStreamMap.get(w).outboundAudioRtpId.push(I.id),this.processOutboundProducerAudioStats(w,ye,xe)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${y.mediaType} kind: ${y.kind}`);break}case"inbound-rtp":{if(!this.inboundConsumerMap.has(I.id))break;const y=I,w=a||this.inboundConsumerMap.get(I.id),F=this.pausedConsumerMap.get(w);if(F){if(F.lastReportCalculated===!0)break;this.pausedConsumerMap.set(w,{lastReportCalculated:!0})}if(y.ssrc===1234)break;this.overallConsumersStatsMap[w]||(this.overallConsumersStatsMap[w]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const ye=this.overallConsumersStatsMap[w];if(["video","audio"].includes(y.mediaType)||["video","audio"].includes(y.kind)){if(!this.inboundConsumerMap.has(I.id)){d.staleConsumerStreamMap=!0;break}d.consumerStreamMap.has(w)||d.consumerStreamMap.set(w,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const Ae={bytesReceived:y.bytesReceived,packetsReceived:y.packetsReceived,packetsLost:y.packetsLost>=0?y.packetsLost:0,jitter:y.jitter,nackCount:y.nackCount,jitterBufferDelay:y.jitterBufferDelay,jitterBufferEmittedCount:y.jitterBufferEmittedCount,lastPacketReceivedTimestamp:y.lastPacketReceivedTimestamp,ssrc:y.ssrc,mid:y.mid,codecId:y.codecId,headerBytesReceived:y.headerBytesReceived||0,packetsDiscarded:y.packetsDiscarded||0,jitterBufferMinimumDelay:y.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:y.jitterBufferTargetDelay||0};if(y.mediaType==="video"||y.kind==="video"){const V=y,b=O({frameHeight:V.frameHeight,frameWidth:V.frameWidth,framesDecoded:V.framesDecoded,framesDropped:V.framesDropped?V.framesDropped:V.droppedFrames,framesPerSecond:V.framesPerSecond?V.framesPerSecond:V.framerateMean,framesReceived:V.framesReceived,keyFramesDecoded:V.keyFramesDecoded,firCount:V.firCount,decoderImplementation:V.decoderImplementation,pliCount:V.pliCount,totalProcessingDelay:V.totalProcessingDelay,qpSum:V.qpSum||0,totalAssemblyTime:V.totalAssemblyTime||0,totalDecodeTime:V.totalDecodeTime||0,totalFreezesDuration:V.totalFreezesDuration||0,totalInterFrameDelay:V.totalInterFrameDelay||0,totalPausesDuration:V.totalPausesDuration||0,totalSquaredInterFrameDelay:V.totalSquaredInterFrameDelay||0,freezeCount:V.freezeCount||0,pauseCount:V.pauseCount||0,powerEfficientDecoder:V.powerEfficientDecoder},Ae);b.score=hm({frameWidth:b.frameWidth||0,framesDecoded:(b.framesDecoded||0)-(((C=this.videoConsumerToStatsMap.get(w))==null?void 0:C.framesDecoded)||0),framesPerSecond:b.framesPerSecond||0,packetsLost:(b.packetsLost||0)-(((A=this.videoConsumerToStatsMap.get(w))==null?void 0:A.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((M=this.videoConsumerToStatsMap.get(w))==null?void 0:M.packetsReceived)||0),jitter:b.jitter||0,isScreenShare:this.screenShareConsumers.has(w)}),E.set(w,{score:+(b.score*10).toFixed(),frameWidth:b.frameWidth||0,frameHeight:b.frameHeight||0,framesPerSecond:b.framesPerSecond||0,packetsLostPercentage:md({packetsLost:(b.packetsLost||0)-((($=this.videoConsumerToStatsMap.get(w))==null?void 0:$.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((x=this.videoConsumerToStatsMap.get(w))==null?void 0:x.packetsReceived)||0)}),jitter:b.jitter||0,isScreenShare:this.screenShareConsumers.has(w),bitrate:((b.bytesReceived||0)-(((B=this.videoConsumerToStatsMap.get(w))==null?void 0:B.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(w,b),d.inboundVideoRtp.set(I.id,b),d.consumerStreamMap.get(w).inboundVideoRtpId.push(I.id),this.processInboundConsumerVideoStats(w,ye,b)}else if(y.mediaType==="audio"||y.kind==="audio"){const V=y,b=O({audioLevel:V.audioLevel,concealedSamples:V.concealedSamples,concealmentEvents:V.concealmentEvents,totalAudioEnergy:V.totalAudioEnergy,totalSamplesDuration:V.totalSamplesDuration,totalSamplesReceived:V.totalSamplesReceived,fecPacketsDiscarded:V.fecPacketsDiscarded||0,fecPacketsReceived:V.fecPacketsReceived||0,insertedSamplesForDeceleration:V.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:V.removedSamplesForAcceleration||0,silentConcealedSamples:V.silentConcealedSamples||0,playoutId:V.playoutId},Ae);b.score=um({concealmentEvents:(b.concealmentEvents||0)-(((H=this.audioConsumerToStatsMap.get(w))==null?void 0:H.concealmentEvents)||0),packetsLost:(b.packetsLost||0)-(((re=this.audioConsumerToStatsMap.get(w))==null?void 0:re.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((et=this.audioConsumerToStatsMap.get(w))==null?void 0:et.packetsReceived)||0),jitter:b.jitter||0}),E.set(w,{score:+(b.score*10).toFixed(),packetsLostPercentage:md({packetsLost:(b.packetsLost||0)-(((os=this.audioConsumerToStatsMap.get(w))==null?void 0:os.packetsLost)||0),packetsReceived:(b.packetsReceived||0)-(((ri=this.audioConsumerToStatsMap.get(w))==null?void 0:ri.packetsReceived)||0)}),jitter:b.jitter||0,isScreenShare:this.screenShareConsumers.has(w),bitrate:((b.bytesReceived||0)-(((cs=this.audioConsumerToStatsMap.get(w))==null?void 0:cs.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(w,b),d.inboundAudioRtp.set(I.id,b),d.consumerStreamMap.get(w).inboundAudioRtpId.push(I.id),this.processInboundConsumerAudioStats(w,ye,b)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${y.mediaType} kind: ${y.kind}`);break}}}if(d.producerStreamMap.forEach((I,y)=>{var w,F,ye,Ae,V,b,xe,Fs,La,xa,Ua,$a,Fa,Ba,Ha,qa,ja,Ga,Wa,Ja,Ka,za,Ya;if(I.outboundVideoRtpId.length>0){const le=[];I.outboundVideoRtpId.forEach(Wl=>{le.push(d.outboundVideoRtp.get(Wl))});const te=this.getWorkingSimulcastVideoStats(le);te.score=dm({frameWidth:te.frameWidth||0,framesPerSecond:te.framesPerSecond||0,jitter:((w=te.remoteData)==null?void 0:w.jitter)||0,isScreenShare:this.screenShareProducers.has(y),packetsSent:(te.packetsSent||0)-(((F=this.videoProducerToStatsMap.get(y))==null?void 0:F.packetsSent)||0),packetsLost:(((ye=te.remoteData)==null?void 0:ye.packetsLost)||0)-(((V=(Ae=this.videoProducerToStatsMap.get(y))==null?void 0:Ae.remoteData)==null?void 0:V.packetsLost)||0),framesEncoded:(te.framesEncoded||0)-(((b=this.videoProducerToStatsMap.get(y))==null?void 0:b.framesEncoded)||0)}),v.set(y,{score:+(te.score*10).toFixed(),frameWidth:te.frameWidth||0,frameHeight:te.frameHeight||0,framesPerSecond:te.framesPerSecond||0,jitter:((xe=te.remoteData)==null?void 0:xe.jitter)||0,isScreenShare:this.screenShareProducers.has(y),packetsLostPercentage:gd({packetsSent:(te.packetsSent||0)-(((Fs=this.videoProducerToStatsMap.get(y))==null?void 0:Fs.packetsSent)||0),packetsLost:(((La=te.remoteData)==null?void 0:La.packetsLost)||0)-(((Ua=(xa=this.videoProducerToStatsMap.get(y))==null?void 0:xa.remoteData)==null?void 0:Ua.packetsLost)||0)}),bitrate:((te.bytesSent||0)-((($a=this.videoProducerToStatsMap.get(y))==null?void 0:$a.bytesSent)||0))*8/7,cpuLimitations:te.qualityLimitationReason==="cpu",bandwidthLimitations:te.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(y,te)}else if(I.outboundAudioRtpId.length>0){const le=d.outboundAudioRtp.get(I.outboundAudioRtpId[0]);le.score=cm({packetsSent:(le.packetsSent||0)-(((Fa=this.audioProducerToStatsMap.get(y))==null?void 0:Fa.packetsSent)||0),packetsLost:(((Ba=le.remoteData)==null?void 0:Ba.packetsLost)||0)-(((qa=(Ha=this.audioProducerToStatsMap.get(y))==null?void 0:Ha.remoteData)==null?void 0:qa.packetsLost)||0),jitter:((ja=le.remoteData)==null?void 0:ja.jitter)||0}),v.set(y,{score:+(le.score*10).toFixed(),bitrate:((le.bytesSent||0)-(((Ga=this.audioProducerToStatsMap.get(y))==null?void 0:Ga.bytesSent)||0))*8/7,packetsLostPercentage:gd({packetsSent:(le.packetsSent||0)-(((Wa=this.audioProducerToStatsMap.get(y))==null?void 0:Wa.packetsSent)||0),packetsLost:(((Ja=le.remoteData)==null?void 0:Ja.packetsLost)||0)-(((za=(Ka=this.audioProducerToStatsMap.get(y))==null?void 0:Ka.remoteData)==null?void 0:za.packetsLost)||0)}),jitter:((Ya=le.remoteData)==null?void 0:Ya.jitter)||0,isScreenShare:this.screenShareProducers.has(y)}),this.audioProducerToStatsMap.set(y,le)}}),f.forEach(I=>{const y=p.find(F=>F.id===I.localCandidateId?(I.localCandidateId=F.id,F):null),w=g.find(F=>F.id===I.remoteCandidateId?(I.remoteCandidateId=F.id,F):null);y&&(I.localCandidateType=y.type,I.localCandidateAddress=Yr(y.address),I.localCandidatePort=y.port,I.localCandidateProtocol=y.protocol,I.localCandidateUrl=y.url,I.localCandidateNetworkType=y.networkType,I.localCandidateRelatedAddress=Yr(y.relatedAddress),I.localCandidateRelatedPort=y.relatedPort),w&&(I.remoteCandidateType=w.type,I.remoteCandidateAddress=Yr(w.address),I.remoteCandidatePort=w.port,I.remoteCandidateProtocol=w.protocol,I.remoteCandidateUrl=w.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=f),d.transport&&!d.transport.roundTripTime){let I=0,y=0;d.remoteInboundRtp.forEach((w,F)=>{w.roundTripTime&&w.roundTripTime>I&&(I=w.roundTripTime,y=w.totalRoundTripTime)}),d.transport.roundTripTime=I,d.transport.totalRoundTripTime=y}if(E.size>0)try{this.observer.emit("consumer_score",E)}catch(I){}if(v.size>0)try{this.observer.emit("producer_score",v)}catch(I){}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 f=this.consumerMap.get(i).track.getSettings(),v=e.inboundVideoRtp.get(p);return v.frameHeight||(v.frameHeight=f.height,v.frameWidth=f.width,v.framesPerSecond=f.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 Ov extends fm{}function fd(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 Zh(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=>{fd(this,t,e,o)}):a}catch(a){fd(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=>{fd(this,s,t,d)}):c}catch(c){fd(this,s,t,c)}return null},i},Nv=(s,t)=>(e,r,i)=>{if(i)return Zh(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,Zh(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 ct{constructor(e="https://api.testingv3.dyte.in",r="Blink",i=uo.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 vv({logger:o,peerId:c,apiHostnames:d}),this.logger.debug("callStats::engineName: ",{engineName:r}),r){case"Blink":this.measurements=new Dv;break;case"Gecko":this.measurements=new fm;break;case"WebKit":this.measurements=new Ov;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 ct,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:N.PRECALL_TEST_BEGIN,timestamp:r}),this.connectionInfoPromise&&this.connectionInfoPromise.then(i=>{this.eventHandler.callEvent({event:N.PRECALL_TEST_COMPLETE,metaData:{connectionInfo:i},timestamp:r})})}sendScreenShareToggleEvent(e,r=null,i){this.currentUserMediaStates.screen=e,this.eventHandler.callEvent({event:e?N.SCREENSHARE_STARTED:N.SCREENSHARE_STOPPED,metaData:{ssrc:r},timestamp:i})}sendScreenShareRequestedEvent(e){this.eventHandler.callEvent({event:N.SCREENSHARE_START_REQUESTED,timestamp:e})}sendActiveSpeakerEvent(e,r){this.eventHandler.callEvent({event:N.DOMINANT_SPEAKER,metaData:{peerId:e},timestamp:r})}devices(e,r,i){this.eventHandler.callEvent({event:e===Gt.AUDIO&&N.AUDIO_DEVICES_UPDATES||e===Gt.VIDEO&&N.VIDEO_DEVICES_UPDATES||e===Gt.SPEAKER&&N.SPEAKER_DEVICES_UPDATES,metaData:{deviceList:r},timestamp:i})}selectedDevice(e,r,i){this.eventHandler.callEvent({event:e===Gt.AUDIO&&N.SELECTED_MICROHPONE_UPDATE||e===Gt.VIDEO&&N.SELECTED_CAMERA_UPDATE||e===Gt.SPEAKER&&N.SELECTED_SPEAKER_UPDATE,metaData:{device:r},timestamp:i})}mediaPermission(e,r,i){this.eventHandler.callEvent({event:N.MEDIA_PERMISSION,metaData:{deviceType:e,permission:r},timestamp:i})}mediaPlaybackFailed(e,r){this.eventHandler.callEvent({event:e===Gt.AUDIO&&N.AUDIO_PLAY_FAILED||e===Gt.VIDEO&&N.VIDEO_PLAY_FAILED,metaData:{deviceType:e},timestamp:r})}mediaTrackMuted(e,r){this.eventHandler.callEvent({event:e===Gt.AUDIO&&N.AUDIO_TRACK_MUTED||e===Gt.VIDEO&&N.VIDEO_TRACK_MUTED,metaData:{deviceType:e},timestamp:r})}tabChanged(e,r){this.eventHandler.callEvent({event:N.TAB_CHANGE,metaData:{isMeetingsTabActive:e},timestamp:r})}browserBackgrounded(e){this.eventHandler.callEvent({event:N.BROWSER_BACKGROUNDED,timestamp:e})}browserForegrounded(e){this.eventHandler.callEvent({event:N.BROWSER_FOREGROUNDED,timestamp:e})}legacySwitch(e,r){this.eventHandler.callEvent({event:N.LEGACY_SWITCH,metadata:{on:e},timestamp:r})}getPreCallTestResults(){return u(this,null,function*(){return this.connectionInfoPromise})}sendCallJoinBeginEvent(e,r){e=G(O({},e),{meetingEnv:this.env}),e.deviceInfo=G(O({},e.deviceInfo),{userAgent:navigator.userAgent,cpus:navigator.hardwareConcurrency,memory:navigator.deviceMemory}),this.eventHandler.callEvent({event:N.CALL_JOIN_BEGIN,metaData:{peerMetaData:e},timestamp:r})}sendNetworkQualityTestBeginEvent(e,r){this.eventHandler.callEvent({event:N.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(G(O({},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:N.NET_QUALITY_TEST_END,timestamp:r,metaData:a})})}sendWebSocketConnectedEvent(e){this.eventHandler.callEvent({event:N.WEBSOCKET_CONNECTED,timestamp:e})}sendTransportConnectedEvent(e){this.eventHandler.callEvent({event:N.TRANSPORT_CONNECTED,timestamp:e})}sendAudioToggleEvent(e,r){this.currentUserMediaStates.audio=e;let i;e?i=N.AUDIO_ON:i=N.AUDIO_OFF,this.eventHandler.callEvent({event:i,timestamp:r})}sendVideoToggleEvent(e,r){this.currentUserMediaStates.video=e;let i;e?i=N.VIDEO_ON:i=N.VIDEO_OFF,this.eventHandler.callEvent({event:i,timestamp:r})}sendParticipantRoleToggleEvent(e,r){this.eventHandler.callEvent({event:N.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*(){var c,d;let i,a;if(this.producingTransport&&(i=yield this.measurements.getProcessedStats(this.producingTransport,!1,!0),!i||!((c=i==null?void 0:i.producerReport)!=null&&c.length))){this.logger.debug("callStats::sendPingStatsEvent::staleProducingTransport",{disclaimer:"Stale producer? Regenerating Stream Maps!"});const l=yield this.measurements.getProducersReport([...this.producers.values()]);i&&l?i.producerReport=l:(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||!((d=a.consumerReport)!=null&&d.length))){this.logger.debug("callStats::sendPingStatsEvent::staleConsumingTransport",{disclaimer:"Stale consumer? Regenerating Stream Maps!"});const l=yield this.measurements.getConsumersReport([...this.consumers.values()]);a&&l?a.consumerReport=l:(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:N.PING_STAT,metaData:o,timestamp:r})})}sendIVSPlayerRebufferEvent(e){this.eventHandler.callEvent({event:N.IVS_PLAYER_REBUFFERING,timestamp:e})}sendIVSPlayerAudioBlockEvent(e){this.eventHandler.callEvent({event:N.IVS_PLAYER_AUDIO_BLOCKED,timestamp:e})}sendIVSPlayerPlaybackBlockedEvent(e){this.eventHandler.callEvent({event:N.IVS_PLAYER_PLAYBACK_BLOCKED,timestamp:e})}sendIVSPlayerNetworkUnavailableEvent(e){this.eventHandler.callEvent({event:N.IVS_PLAYER_NETWORK_UNAVAILABLE,timestamp:e})}sendIVSPlayerInitializedEvent(e){this.eventHandler.callEvent({event:N.IVS_PLAYER_INITIALIZED,timestamp:e})}sendIVSPlayerWorkerErrorEvent(e){this.eventHandler.callEvent({event:N.IVS_PLAYER_WORKER_ERROR,timestamp:e})}sendIVSPlayerErrorEvent(e,r){this.eventHandler.callEvent({event:N.IVS_PLAYER_ERROR,timestamp:r,metaData:e})}sendIVSPlayerRecoverableErrorEvent(e,r){this.eventHandler.callEvent({event:N.IVS_PLAYER_RECOVERABLE_ERROR,timestamp:r,metaData:e})}sendIVSPlayerAnalyticsEvent(e,r){this.eventHandler.callEvent({event:N.IVS_PLAYER_ANALYTICS_EVENT,timestamp:r,metaData:e})}sendIVSPlayerPlaybackRateChangedEvent(e,r){this.eventHandler.callEvent({event:N.IVS_PLAYER_PLAYBACK_RATE_CHANGED,timestamp:r,metaData:{updatedPlaybackRate:e}})}sendIVSPlayerQualityChanged(e,r){this.eventHandler.callEvent({event:N.IVS_PLAYER_QUALITY_CHANGED,timestamp:r,metaData:e})}sendPlayerLiveLatency(e,r){this.eventHandler.callEvent({event:N.LIVESTREAM_LATENCY,timestamp:r,metaData:{latency:e}})}sendDisconnectEvent(e){this.eventHandler.callEvent({event:N.DISCONNECT,timestamp:e})}sendReconnectEvent(e){this.eventHandler.callEvent({event:N.RECONNECT_ATTEMPT,timestamp:e})}expectedVideoResolution(e,r,i){this.eventHandler.callEvent({event:N.EXPECTED_VIDEO_RESOLUTION,timestamp:i,metaData:{frameWidth:e,frameHeight:r}})}expectedScreenshareResolution(e,r,i){this.eventHandler.callEvent({event:N.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([Nv(TypeError,(s,t)=>Q.error(t,s))],K);const Vv=K;class Tm extends ct{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=uo.PROD,iceServers:a,apiBase:o="https://api.cluster.dyte.in",flags:c,logger:d=console,apiHostnames:l,skipConnectivityChecks:p=!1}){var f,v,E;try{this.peerId=e,this.logger=d,this.ipInformation=yield ah.getIPDetails({peerId:e,apiHostnames:l,logger:d}),this.backend=new Vv(o,r,i,c,d,e,l),this.iceServers=a,(f=this.backend)==null||f.registerIceServers(this.iceServers),this.initialized=!0,(E=(v=this.backend)==null?void 0:v.eventHandler)==null||E.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,f,v,E,_;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":(f=this.backend)==null||f.sendIVSPlayerRecoverableErrorEvent(r,i);break;case"PlayerAnalyticsEvent":(v=this.backend)==null||v.sendIVSPlayerAnalyticsEvent(r,i);break;case"PlayerPlaybackRateChanged":(E=this.backend)==null||E.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 Lv=new Tm;Lv.setMaxListeners(30);function xv(){this.__data__=[],this.size=0}function kc(s,t){return s===t||s!==s&&t!==t}function Rl(s,t){for(var e=s.length;e--;)if(kc(s[e][0],t))return e;return-1}var Uv=Array.prototype,$v=Uv.splice;function Fv(s){var t=this.__data__,e=Rl(t,s);if(e<0)return!1;var r=t.length-1;return e==r?t.pop():$v.call(t,e,1),--this.size,!0}function Bv(s){var t=this.__data__,e=Rl(t,s);return e<0?void 0:t[e][1]}function Hv(s){return Rl(this.__data__,s)>-1}function qv(s,t){var e=this.__data__,r=Rl(e,s);return r<0?(++this.size,e.push([s,t])):e[r][1]=t,this}function vr(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])}}vr.prototype.clear=xv;vr.prototype.delete=Fv;vr.prototype.get=Bv;vr.prototype.has=Hv;vr.prototype.set=qv;function jv(){this.__data__=new vr,this.size=0}function Gv(s){var t=this.__data__,e=t.delete(s);return this.size=t.size,e}function Wv(s){return this.__data__.get(s)}function Jv(s){return this.__data__.has(s)}var Kv=typeof global=="object"&&global&&global.Object===Object&&global;const vm=Kv;var zv=typeof self=="object"&&self&&self.Object===Object&&self,Yv=vm||zv||Function("return this")();const ws=Yv;var Qv=ws.Symbol;const Us=Qv;var Sm=Object.prototype,Xv=Sm.hasOwnProperty,Zv=Sm.toString,Qa=Us?Us.toStringTag:void 0;function eS(s){var t=Xv.call(s,Qa),e=s[Qa];try{s[Qa]=void 0;var r=!0}catch(a){}var i=Zv.call(s);return r&&(t?s[Qa]=e:delete s[Qa]),i}var tS=Object.prototype,sS=tS.toString;function rS(s){return sS.call(s)}var iS="[object Null]",nS="[object Undefined]",ep=Us?Us.toStringTag:void 0;function nn(s){return s==null?s===void 0?nS:iS:ep&&ep in Object(s)?eS(s):rS(s)}function ns(s){var t=typeof s;return s!=null&&(t=="object"||t=="function")}var aS="[object AsyncFunction]",oS="[object Function]",cS="[object GeneratorFunction]",dS="[object Proxy]";function oh(s){if(!ns(s))return!1;var t=nn(s);return t==oS||t==cS||t==aS||t==dS}var lS=ws["__core-js_shared__"];const zl=lS;var tp=function(){var s=/[^.]+$/.exec(zl&&zl.keys&&zl.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""}();function uS(s){return!!tp&&tp in s}var hS=Function.prototype,pS=hS.toString;function an(s){if(s!=null){try{return pS.call(s)}catch(t){}try{return s+""}catch(t){}}return""}var gS=/[\\^$.*+?()[\]{}|]/g,mS=/^\[object .+?Constructor\]$/,fS=Function.prototype,TS=Object.prototype,vS=fS.toString,SS=TS.hasOwnProperty,yS=RegExp("^"+vS.call(SS).replace(gS,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ES(s){if(!ns(s)||uS(s))return!1;var t=oh(s)?yS:mS;return t.test(an(s))}function PS(s,t){return s==null?void 0:s[t]}function on(s,t){var e=PS(s,t);return ES(e)?e:void 0}var _S=on(ws,"Map");const So=_S;var CS=on(Object,"create");const yo=CS;function wS(){this.__data__=yo?yo(null):{},this.size=0}function RS(s){var t=this.has(s)&&delete this.__data__[s];return this.size-=t?1:0,t}var bS="__lodash_hash_undefined__",kS=Object.prototype,IS=kS.hasOwnProperty;function AS(s){var t=this.__data__;if(yo){var e=t[s];return e===bS?void 0:e}return IS.call(t,s)?t[s]:void 0}var MS=Object.prototype,DS=MS.hasOwnProperty;function OS(s){var t=this.__data__;return yo?t[s]!==void 0:DS.call(t,s)}var NS="__lodash_hash_undefined__";function VS(s,t){var e=this.__data__;return this.size+=this.has(s)?0:1,e[s]=yo&&t===void 0?NS:t,this}function sn(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])}}sn.prototype.clear=wS;sn.prototype.delete=RS;sn.prototype.get=AS;sn.prototype.has=OS;sn.prototype.set=VS;function LS(){this.size=0,this.__data__={hash:new sn,map:new(So||vr),string:new sn}}function xS(s){var t=typeof s;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?s!=="__proto__":s===null}function bl(s,t){var e=s.__data__;return xS(t)?e[typeof t=="string"?"string":"hash"]:e.map}function US(s){var t=bl(this,s).delete(s);return this.size-=t?1:0,t}function $S(s){return bl(this,s).get(s)}function FS(s){return bl(this,s).has(s)}function BS(s,t){var e=bl(this,s),r=e.size;return e.set(s,t),this.size+=e.size==r?0:1,this}function Sr(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])}}Sr.prototype.clear=LS;Sr.prototype.delete=US;Sr.prototype.get=$S;Sr.prototype.has=FS;Sr.prototype.set=BS;var HS=200;function qS(s,t){var e=this.__data__;if(e instanceof vr){var r=e.__data__;if(!So||r.length<HS-1)return r.push([s,t]),this.size=++e.size,this;e=this.__data__=new Sr(r)}return e.set(s,t),this.size=e.size,this}function Cs(s){var t=this.__data__=new vr(s);this.size=t.size}Cs.prototype.clear=jv;Cs.prototype.delete=Gv;Cs.prototype.get=Wv;Cs.prototype.has=Jv;Cs.prototype.set=qS;function jS(s,t){for(var e=-1,r=s==null?0:s.length;++e<r&&t(s[e],e,s)!==!1;);return s}var GS=function(){try{var s=on(Object,"defineProperty");return s({},"",{}),s}catch(t){}}();const Td=GS;function ch(s,t,e){t=="__proto__"&&Td?Td(s,t,{configurable:!0,enumerable:!0,value:e,writable:!0}):s[t]=e}var WS=Object.prototype,JS=WS.hasOwnProperty;function ym(s,t,e){var r=s[t];(!(JS.call(s,t)&&kc(r,e))||e===void 0&&!(t in s))&&ch(s,t,e)}function Ic(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?ch(e,c,d):ym(e,c,d)}return e}function KS(s,t){for(var e=-1,r=Array(s);++e<s;)r[e]=t(e);return r}function $s(s){return s!=null&&typeof s=="object"}var zS="[object Arguments]";function sp(s){return $s(s)&&nn(s)==zS}var Em=Object.prototype,YS=Em.hasOwnProperty,QS=Em.propertyIsEnumerable,XS=sp(function(){return arguments}())?sp:function(s){return $s(s)&&YS.call(s,"callee")&&!QS.call(s,"callee")};const Eo=XS;var ZS=Array.isArray;const Ut=ZS;function ey(){return!1}var Pm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,rp=Pm&&typeof module=="object"&&module&&!module.nodeType&&module,ty=rp&&rp.exports===Pm,ip=ty?ws.Buffer:void 0,sy=ip?ip.isBuffer:void 0,ry=sy||ey;const ba=ry;var iy=9007199254740991,ny=/^(?:0|[1-9]\d*)$/;function dh(s,t){var e=typeof s;return t=t==null?iy:t,!!t&&(e=="number"||e!="symbol"&&ny.test(s))&&s>-1&&s%1==0&&s<t}var ay=9007199254740991;function lh(s){return typeof s=="number"&&s>-1&&s%1==0&&s<=ay}var oy="[object Arguments]",cy="[object Array]",dy="[object Boolean]",ly="[object Date]",uy="[object Error]",hy="[object Function]",py="[object Map]",gy="[object Number]",my="[object Object]",fy="[object RegExp]",Ty="[object Set]",vy="[object String]",Sy="[object WeakMap]",yy="[object ArrayBuffer]",Ey="[object DataView]",Py="[object Float32Array]",_y="[object Float64Array]",Cy="[object Int8Array]",wy="[object Int16Array]",Ry="[object Int32Array]",by="[object Uint8Array]",ky="[object Uint8ClampedArray]",Iy="[object Uint16Array]",Ay="[object Uint32Array]",ve={};ve[Py]=ve[_y]=ve[Cy]=ve[wy]=ve[Ry]=ve[by]=ve[ky]=ve[Iy]=ve[Ay]=!0;ve[oy]=ve[cy]=ve[yy]=ve[dy]=ve[Ey]=ve[ly]=ve[uy]=ve[hy]=ve[py]=ve[gy]=ve[my]=ve[fy]=ve[Ty]=ve[vy]=ve[Sy]=!1;function My(s){return $s(s)&&lh(s.length)&&!!ve[nn(s)]}function uh(s){return function(t){return s(t)}}var _m=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ho=_m&&typeof module=="object"&&module&&!module.nodeType&&module,Dy=ho&&ho.exports===_m,Yl=Dy&&vm.process,Oy=function(){try{var s=ho&&ho.require&&ho.require("util").types;return s||Yl&&Yl.binding&&Yl.binding("util")}catch(t){}}();const ka=Oy;var np=ka&&ka.isTypedArray,Ny=np?uh(np):My;const kl=Ny;var Vy=Object.prototype,Ly=Vy.hasOwnProperty;function Cm(s,t){var e=Ut(s),r=!e&&Eo(s),i=!e&&!r&&ba(s),a=!e&&!r&&!i&&kl(s),o=e||r||i||a,c=o?KS(s.length,String):[],d=c.length;for(var l in s)(t||Ly.call(s,l))&&!(o&&(l=="length"||i&&(l=="offset"||l=="parent")||a&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||dh(l,d)))&&c.push(l);return c}var xy=Object.prototype;function Il(s){var t=s&&s.constructor,e=typeof t=="function"&&t.prototype||xy;return s===e}function wm(s,t){return function(e){return s(t(e))}}var Uy=wm(Object.keys,Object);const $y=Uy;var Fy=Object.prototype,By=Fy.hasOwnProperty;function Rm(s){if(!Il(s))return $y(s);var t=[];for(var e in Object(s))By.call(s,e)&&e!="constructor"&&t.push(e);return t}function Ac(s){return s!=null&&lh(s.length)&&!oh(s)}function Al(s){return Ac(s)?Cm(s):Rm(s)}function Hy(s,t){return s&&Ic(t,Al(t),s)}function qy(s){var t=[];if(s!=null)for(var e in Object(s))t.push(e);return t}var jy=Object.prototype,Gy=jy.hasOwnProperty;function Wy(s){if(!ns(s))return qy(s);var t=Il(s),e=[];for(var r in s)r=="constructor"&&(t||!Gy.call(s,r))||e.push(r);return e}function Mc(s){return Ac(s)?Cm(s,!0):Wy(s)}function Jy(s,t){return s&&Ic(t,Mc(t),s)}var bm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,ap=bm&&typeof module=="object"&&module&&!module.nodeType&&module,Ky=ap&&ap.exports===bm,op=Ky?ws.Buffer:void 0,cp=op?op.allocUnsafe:void 0;function km(s,t){if(t)return s.slice();var e=s.length,r=cp?cp(e):new s.constructor(e);return s.copy(r),r}function Im(s,t){var e=-1,r=s.length;for(t||(t=Array(r));++e<r;)t[e]=s[e];return t}function zy(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 Am(){return[]}var Yy=Object.prototype,Qy=Yy.propertyIsEnumerable,dp=Object.getOwnPropertySymbols,Xy=dp?function(s){return s==null?[]:(s=Object(s),zy(dp(s),function(t){return Qy.call(s,t)}))}:Am;const hh=Xy;function Zy(s,t){return Ic(s,hh(s),t)}function Mm(s,t){for(var e=-1,r=t.length,i=s.length;++e<r;)s[i+e]=t[e];return s}var eE=wm(Object.getPrototypeOf,Object);const ph=eE;var tE=Object.getOwnPropertySymbols,sE=tE?function(s){for(var t=[];s;)Mm(t,hh(s)),s=ph(s);return t}:Am;const Dm=sE;function rE(s,t){return Ic(s,Dm(s),t)}function Om(s,t,e){var r=t(s);return Ut(s)?r:Mm(r,e(s))}function lu(s){return Om(s,Al,hh)}function iE(s){return Om(s,Mc,Dm)}var nE=on(ws,"DataView");const uu=nE;var aE=on(ws,"Promise");const hu=aE;var oE=on(ws,"Set");const Cn=oE;var cE=on(ws,"WeakMap");const pu=cE;var lp="[object Map]",dE="[object Object]",up="[object Promise]",hp="[object Set]",pp="[object WeakMap]",gp="[object DataView]",lE=an(uu),uE=an(So),hE=an(hu),pE=an(Cn),gE=an(pu),ii=nn;(uu&&ii(new uu(new ArrayBuffer(1)))!=gp||So&&ii(new So)!=lp||hu&&ii(hu.resolve())!=up||Cn&&ii(new Cn)!=hp||pu&&ii(new pu)!=pp)&&(ii=function(s){var t=nn(s),e=t==dE?s.constructor:void 0,r=e?an(e):"";if(r)switch(r){case lE:return gp;case uE:return lp;case hE:return up;case pE:return hp;case gE:return pp}return t});const Ia=ii;var mE=Object.prototype,fE=mE.hasOwnProperty;function TE(s){var t=s.length,e=new s.constructor(t);return t&&typeof s[0]=="string"&&fE.call(s,"index")&&(e.index=s.index,e.input=s.input),e}var vE=ws.Uint8Array;const vd=vE;function gh(s){var t=new s.constructor(s.byteLength);return new vd(t).set(new vd(s)),t}function SE(s,t){var e=t?gh(s.buffer):s.buffer;return new s.constructor(e,s.byteOffset,s.byteLength)}var yE=/\w*$/;function EE(s){var t=new s.constructor(s.source,yE.exec(s));return t.lastIndex=s.lastIndex,t}var mp=Us?Us.prototype:void 0,fp=mp?mp.valueOf:void 0;function PE(s){return fp?Object(fp.call(s)):{}}function Nm(s,t){var e=t?gh(s.buffer):s.buffer;return new s.constructor(e,s.byteOffset,s.length)}var _E="[object Boolean]",CE="[object Date]",wE="[object Map]",RE="[object Number]",bE="[object RegExp]",kE="[object Set]",IE="[object String]",AE="[object Symbol]",ME="[object ArrayBuffer]",DE="[object DataView]",OE="[object Float32Array]",NE="[object Float64Array]",VE="[object Int8Array]",LE="[object Int16Array]",xE="[object Int32Array]",UE="[object Uint8Array]",$E="[object Uint8ClampedArray]",FE="[object Uint16Array]",BE="[object Uint32Array]";function HE(s,t,e){var r=s.constructor;switch(t){case ME:return gh(s);case _E:case CE:return new r(+s);case DE:return SE(s,e);case OE:case NE:case VE:case LE:case xE:case UE:case $E:case FE:case BE:return Nm(s,e);case wE:return new r;case RE:case IE:return new r(s);case bE:return EE(s);case kE:return new r;case AE:return PE(s)}}var Tp=Object.create,qE=function(){function s(){}return function(t){if(!ns(t))return{};if(Tp)return Tp(t);s.prototype=t;var e=new s;return s.prototype=void 0,e}}();const jE=qE;function Vm(s){return typeof s.constructor=="function"&&!Il(s)?jE(ph(s)):{}}var GE="[object Map]";function WE(s){return $s(s)&&Ia(s)==GE}var vp=ka&&ka.isMap,JE=vp?uh(vp):WE;const KE=JE;var zE="[object Set]";function YE(s){return $s(s)&&Ia(s)==zE}var Sp=ka&&ka.isSet,QE=Sp?uh(Sp):YE;const XE=QE;var ZE=1,eP=2,tP=4,Lm="[object Arguments]",sP="[object Array]",rP="[object Boolean]",iP="[object Date]",nP="[object Error]",xm="[object Function]",aP="[object GeneratorFunction]",oP="[object Map]",cP="[object Number]",Um="[object Object]",dP="[object RegExp]",lP="[object Set]",uP="[object String]",hP="[object Symbol]",pP="[object WeakMap]",gP="[object ArrayBuffer]",mP="[object DataView]",fP="[object Float32Array]",TP="[object Float64Array]",vP="[object Int8Array]",SP="[object Int16Array]",yP="[object Int32Array]",EP="[object Uint8Array]",PP="[object Uint8ClampedArray]",_P="[object Uint16Array]",CP="[object Uint32Array]",ge={};ge[Lm]=ge[sP]=ge[gP]=ge[mP]=ge[rP]=ge[iP]=ge[fP]=ge[TP]=ge[vP]=ge[SP]=ge[yP]=ge[oP]=ge[cP]=ge[Um]=ge[dP]=ge[lP]=ge[uP]=ge[hP]=ge[EP]=ge[PP]=ge[_P]=ge[CP]=!0;ge[nP]=ge[xm]=ge[pP]=!1;function ed(s,t,e,r,i,a){var o,c=t&ZE,d=t&eP,l=t&tP;if(e&&(o=i?e(s,r,i,a):e(s)),o!==void 0)return o;if(!ns(s))return s;var p=Ut(s);if(p){if(o=TE(s),!c)return Im(s,o)}else{var g=Ia(s),f=g==xm||g==aP;if(ba(s))return km(s,c);if(g==Um||g==Lm||f&&!i){if(o=d||f?{}:Vm(s),!c)return d?rE(s,Jy(o,s)):Zy(s,Hy(o,s))}else{if(!ge[g])return i?s:{};o=HE(s,g,c)}}a||(a=new Cs);var v=a.get(s);if(v)return v;a.set(s,o),XE(s)?s.forEach(function(C){o.add(ed(C,t,e,C,s,a))}):KE(s)&&s.forEach(function(C,A){o.set(A,ed(C,t,e,A,s,a))});var E=l?d?iE:lu:d?Mc:Al,_=p?void 0:E(s);return jS(_||s,function(C,A){_&&(A=C,C=s[A]),ym(o,A,ed(C,t,e,A,s,a))}),o}var wP=1,RP=4;function mh(s){return ed(s,wP|RP)}var bP="[object Symbol]";function Ml(s){return typeof s=="symbol"||$s(s)&&nn(s)==bP}var kP=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,IP=/^\w*$/;function fh(s,t){if(Ut(s))return!1;var e=typeof s;return e=="number"||e=="symbol"||e=="boolean"||s==null||Ml(s)?!0:IP.test(s)||!kP.test(s)||t!=null&&s in Object(t)}var AP="Expected a function";function Th(s,t){if(typeof s!="function"||t!=null&&typeof t!="function")throw new TypeError(AP);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(Th.Cache||Sr),e}Th.Cache=Sr;var MP=500;function DP(s){var t=Th(s,function(r){return e.size===MP&&e.clear(),r}),e=t.cache;return t}var OP=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,NP=/\\(\\)?/g,VP=DP(function(s){var t=[];return s.charCodeAt(0)===46&&t.push(""),s.replace(OP,function(e,r,i,a){t.push(i?a.replace(NP,"$1"):r||e)}),t});const LP=VP;function xP(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 UP=1/0,yp=Us?Us.prototype:void 0,Ep=yp?yp.toString:void 0;function $m(s){if(typeof s=="string")return s;if(Ut(s))return xP(s,$m)+"";if(Ml(s))return Ep?Ep.call(s):"";var t=s+"";return t=="0"&&1/s==-UP?"-0":t}function $P(s){return s==null?"":$m(s)}function Fm(s,t){return Ut(s)?s:fh(s,t)?[s]:LP($P(s))}var FP=1/0;function Dl(s){if(typeof s=="string"||Ml(s))return s;var t=s+"";return t=="0"&&1/s==-FP?"-0":t}function Bm(s,t){t=Fm(t,s);for(var e=0,r=t.length;s!=null&&e<r;)s=s[Dl(t[e++])];return e&&e==r?s:void 0}function BP(s,t,e){var r=s==null?void 0:Bm(s,t);return r===void 0?e:r}function HP(s,t,e){t=Fm(t,s);for(var r=-1,i=t.length,a=!1;++r<i;){var o=Dl(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&&lh(i)&&dh(o,i)&&(Ut(s)||Eo(s)))}var qP=Object.defineProperty,jP=(s,t)=>{for(var e in t)qP(s,e,{get:t[e],enumerable:!0})},GP={};jP(GP,{permissions:()=>WP,theme:()=>JP});var pr=(s=>(s.GroupCall="GROUP_CALL",s.Webinar="WEBINAR",s.AudioRoom="AUDIO_ROOM",s.Livestream="LIVESTREAM",s.Chat="CHAT",s))(pr||{}),q=(s=>(s.Allowed="ALLOWED",s.NotAllowed="NOT_ALLOWED",s.CanRequest="CAN_REQUEST",s))(q||{}),WP={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},JP={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}},Hm="hXgU8Wc8pwuGNq9ms5q9Hh",Sg;typeof process!="undefined"&&(Sg=process==null?void 0:process.env)!=null&&Sg.FLAGSMITH_ENVIRONMENT_KEY&&(Hm=process.env.FLAGSMITH_ENVIRONMENT_KEY);function KP(s=[]){const t={};return s.forEach(e=>{t[e.feature.name]={enabled:e.enabled,value:e.feature_state_value}}),t}var qm=class{constructor(s=Hm){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 f=new AbortController,v=setTimeout(()=>f.abort(),r),E=`_${(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?E:""),traits:l}),signal:f.signal});if(clearTimeout(v),!_.ok)throw new Error(`Request failed with status ${_.status}`);const C=yield _.json();return KP(C.flags||[])}catch(f){o.error("Flagsmith identify failed!!",{error:f,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}},zP=new qm;function YP(s){return new qm(s)}var jm=[-2,-1,0,1,2],QP=[0,1,2,3,4];function XP(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 ZP=(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)]},e_=(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]},t_=(s,t,e)=>{const r=i=>i.toString(16).padStart(2,"0");return`#${r(s)}${r(t)}${r(e)}`},Gm=(s,t=jm,e=.4)=>{const r=[],[i,a,o]=XP(s),[c,d,l]=e_(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 f=5-g,v=g+1,E=(100-p)/f,_=p/v;for(const C of t){let A;C<0?A=p+C*_*e:C>0?A=p+C*E*e:A=p;const[M,$,x]=ZP(c,d,A/100);r.push(t_(M,$,x))}return r},Pp={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"}},s_=s=>{const[t,e,r,i,a]=Gm(s,jm);return{300:t,400:e,500:r,600:i,700:a}},r_=s=>{if(s==="#FFFFFF")return Pp.light.background;if(s==="#000000")return Pp.dark.background;const[t,e,r,i,a]=Gm(s,QP);return{1e3:t,900:e,800:r,700:i,600:a}},i_={border_radius:"rounded",border_width:"thin",spacing_base:4,theme:"dark",colors:{brand:s_("#2160FD"),background:r_("#141414"),danger:"#FF2D2D",text:"#EEEEEE",text_on_brand:"#EEEEEE",success:"#62A504",video_bg:"#191919",warning:"#FFCD07"}};function Wm(){return mh(i_)}var n_={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:Wm(),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 a_(){return mh(n_)}var o_={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:Wm(),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 vh(){return mh(o_)}var Co;class Jm{constructor(){m(this,Co,void 0)}get telemetry(){var t;return(t=n(this,Co))==null?void 0:t.getValue("telemetry")}init(t){T(this,Co,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)}}Co=new WeakMap;var qs,js;const Fh=class extends ct.EventEmitter{constructor(e){super();m(this,qs,void 0);m(this,js,void 0);h(this,"asyncPromiseTimeout");h(this,"logger");this.logger=e,T(this,qs,new Map),T(this,js,new Map),this.asyncPromiseTimeout=8e3}emitAsync(e,...r){return u(this,null,function*(){n(this,qs).set(e,[]);const i=n(this,js).get(e).map(()=>new Promise(a=>{n(this,qs).get(e).push(a)}));Wh(Fh.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,qs).delete(e)})}onAsync(e,r){const i=n(this,qs),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,js).get(e)||n(this,js).set(e,[]),n(this,js).get(e).push(a),super.on(e,a)}reset(){T(this,qs,new Map),T(this,js,new Map),super.removeAllListeners()}};let gu=Fh;qs=new WeakMap,js=new WeakMap;var c_=/\s/;function d_(s){for(var t=s.length;t--&&c_.test(s.charAt(t)););return t}var l_=/^\s+/;function u_(s){return s&&s.slice(0,d_(s)+1).replace(l_,"")}var _p=0/0,h_=/^[-+]0x[0-9a-f]+$/i,p_=/^0b[01]+$/i,g_=/^0o[0-7]+$/i,m_=parseInt;function Cp(s){if(typeof s=="number")return s;if(Ml(s))return _p;if(ns(s)){var t=typeof s.valueOf=="function"?s.valueOf():s;s=ns(t)?t+"":t}if(typeof s!="string")return s===0?s:+s;s=u_(s);var e=p_.test(s);return e||g_.test(s)?m_(s.slice(2),e?2:8):h_.test(s)?_p:+s}function Sh(s){return s}function f_(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 T_(){}var v_=800,S_=16,y_=Date.now;function E_(s){var t=0,e=0;return function(){var r=y_(),i=S_-(r-e);if(e=r,i>0){if(++t>=v_)return arguments[0]}else t=0;return s.apply(void 0,arguments)}}function P_(s){return function(){return s}}var __=Td?function(s,t){return Td(s,"toString",{configurable:!0,enumerable:!1,value:P_(t),writable:!0})}:Sh;const C_=__;var w_=E_(C_);const R_=w_;function b_(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 k_(s){return s!==s}function I_(s,t,e){for(var r=e-1,i=s.length;++r<i;)if(s[r]===t)return r;return-1}function A_(s,t,e){return t===t?I_(s,t,e):b_(s,k_,e)}function M_(s,t){var e=s==null?0:s.length;return!!e&&A_(s,t,0)>-1}var wp=Math.max;function D_(s,t,e){return t=wp(t===void 0?s.length-1:t,0),function(){for(var r=arguments,i=-1,a=wp(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),f_(s,this,c)}}function O_(s,t){return R_(D_(s,t,Sh),s+"")}function N_(s,t,e){if(!ns(e))return!1;var r=typeof t;return(r=="number"?Ac(e)&&dh(t,e.length):r=="string"&&t in e)?kc(e[t],s):!1}function V_(s){return O_(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&&N_(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 L_="[object Object]",x_=Function.prototype,U_=Object.prototype,Km=x_.toString,$_=U_.hasOwnProperty,F_=Km.call(Object);function B_(s){if(!$s(s)||nn(s)!=L_)return!1;var t=ph(s);if(t===null)return!0;var e=$_.call(t,"constructor")&&t.constructor;return typeof e=="function"&&e instanceof e&&Km.call(e)==F_}var H_="__lodash_hash_undefined__";function q_(s){return this.__data__.set(s,H_),this}function j_(s){return this.__data__.has(s)}function Po(s){var t=-1,e=s==null?0:s.length;for(this.__data__=new Sr;++t<e;)this.add(s[t])}Po.prototype.add=Po.prototype.push=q_;Po.prototype.has=j_;function G_(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 zm(s,t){return s.has(t)}var W_=1,J_=2;function Ym(s,t,e,r,i,a){var o=e&W_,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,f=!0,v=e&J_?new Po:void 0;for(a.set(s,t),a.set(t,s);++g<c;){var E=s[g],_=t[g];if(r)var C=o?r(_,E,g,t,s,a):r(E,_,g,s,t,a);if(C!==void 0){if(C)continue;f=!1;break}if(v){if(!G_(t,function(A,M){if(!zm(v,M)&&(E===A||i(E,A,e,r,a)))return v.push(M)})){f=!1;break}}else if(!(E===_||i(E,_,e,r,a))){f=!1;break}}return a.delete(s),a.delete(t),f}function K_(s){var t=-1,e=Array(s.size);return s.forEach(function(r,i){e[++t]=[i,r]}),e}function yh(s){var t=-1,e=Array(s.size);return s.forEach(function(r){e[++t]=r}),e}var z_=1,Y_=2,Q_="[object Boolean]",X_="[object Date]",Z_="[object Error]",eC="[object Map]",tC="[object Number]",sC="[object RegExp]",rC="[object Set]",iC="[object String]",nC="[object Symbol]",aC="[object ArrayBuffer]",oC="[object DataView]",Rp=Us?Us.prototype:void 0,Ql=Rp?Rp.valueOf:void 0;function cC(s,t,e,r,i,a,o){switch(e){case oC:if(s.byteLength!=t.byteLength||s.byteOffset!=t.byteOffset)return!1;s=s.buffer,t=t.buffer;case aC:return!(s.byteLength!=t.byteLength||!a(new vd(s),new vd(t)));case Q_:case X_:case tC:return kc(+s,+t);case Z_:return s.name==t.name&&s.message==t.message;case sC:case iC:return s==t+"";case eC:var c=K_;case rC:var d=r&z_;if(c||(c=yh),s.size!=t.size&&!d)return!1;var l=o.get(s);if(l)return l==t;r|=Y_,o.set(s,t);var p=Ym(c(s),c(t),r,i,a,o);return o.delete(s),p;case nC:if(Ql)return Ql.call(s)==Ql.call(t)}return!1}var dC=1,lC=Object.prototype,uC=lC.hasOwnProperty;function hC(s,t,e,r,i,a){var o=e&dC,c=lu(s),d=c.length,l=lu(t),p=l.length;if(d!=p&&!o)return!1;for(var g=d;g--;){var f=c[g];if(!(o?f in t:uC.call(t,f)))return!1}var v=a.get(s),E=a.get(t);if(v&&E)return v==t&&E==s;var _=!0;a.set(s,t),a.set(t,s);for(var C=o;++g<d;){f=c[g];var A=s[f],M=t[f];if(r)var $=o?r(M,A,f,t,s,a):r(A,M,f,s,t,a);if(!($===void 0?A===M||i(A,M,e,r,a):$)){_=!1;break}C||(C=f=="constructor")}if(_&&!C){var x=s.constructor,B=t.constructor;x!=B&&"constructor"in s&&"constructor"in t&&!(typeof x=="function"&&x instanceof x&&typeof B=="function"&&B instanceof B)&&(_=!1)}return a.delete(s),a.delete(t),_}var pC=1,bp="[object Arguments]",kp="[object Array]",Hc="[object Object]",gC=Object.prototype,Ip=gC.hasOwnProperty;function mC(s,t,e,r,i,a){var o=Ut(s),c=Ut(t),d=o?kp:Ia(s),l=c?kp:Ia(t);d=d==bp?Hc:d,l=l==bp?Hc:l;var p=d==Hc,g=l==Hc,f=d==l;if(f&&ba(s)){if(!ba(t))return!1;o=!0,p=!1}if(f&&!p)return a||(a=new Cs),o||kl(s)?Ym(s,t,e,r,i,a):cC(s,t,d,e,r,i,a);if(!(e&pC)){var v=p&&Ip.call(s,"__wrapped__"),E=g&&Ip.call(t,"__wrapped__");if(v||E){var _=v?s.value():s,C=E?t.value():t;return a||(a=new Cs),i(_,C,e,r,a)}}return f?(a||(a=new Cs),hC(s,t,e,r,i,a)):!1}function Ol(s,t,e,r,i){return s===t?!0:s==null||t==null||!$s(s)&&!$s(t)?s!==s&&t!==t:mC(s,t,e,r,Ol,i)}var fC=1,TC=2;function vC(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 Cs;if(r)var f=r(l,p,d,s,t,g);if(!(f===void 0?Ol(p,l,fC|TC,r,g):f))return!1}}return!0}function Qm(s){return s===s&&!ns(s)}function SC(s){for(var t=Al(s),e=t.length;e--;){var r=t[e],i=s[r];t[e]=[r,i,Qm(i)]}return t}function Xm(s,t){return function(e){return e==null?!1:e[s]===t&&(t!==void 0||s in Object(e))}}function yC(s){var t=SC(s);return t.length==1&&t[0][2]?Xm(t[0][0],t[0][1]):function(e){return e===s||vC(e,s,t)}}function EC(s,t){return s!=null&&t in Object(s)}function PC(s,t){return s!=null&&HP(s,t,EC)}var _C=1,CC=2;function wC(s,t){return fh(s)&&Qm(t)?Xm(Dl(s),t):function(e){var r=BP(e,s);return r===void 0&&r===t?PC(e,s):Ol(t,r,_C|CC)}}function RC(s){return function(t){return t==null?void 0:t[s]}}function bC(s){return function(t){return Bm(t,s)}}function kC(s){return fh(s)?RC(Dl(s)):bC(s)}function IC(s){return typeof s=="function"?s:s==null?Sh:typeof s=="object"?Ut(s)?wC(s[0],s[1]):yC(s):kC(s)}function AC(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 MC=AC();const DC=MC;var OC=function(){return ws.Date.now()};const Xl=OC;var NC="Expected a function",VC=Math.max,LC=Math.min;function Eh(s,t,e){var r,i,a,o,c,d,l=0,p=!1,g=!1,f=!0;if(typeof s!="function")throw new TypeError(NC);t=Cp(t)||0,ns(e)&&(p=!!e.leading,g="maxWait"in e,a=g?VC(Cp(e.maxWait)||0,t):a,f="trailing"in e?!!e.trailing:f);function v(H){var re=r,et=i;return r=i=void 0,l=H,o=s.apply(et,re),o}function E(H){return l=H,c=setTimeout(A,t),p?v(H):o}function _(H){var re=H-d,et=H-l,os=t-re;return g?LC(os,a-et):os}function C(H){var re=H-d,et=H-l;return d===void 0||re>=t||re<0||g&&et>=a}function A(){var H=Xl();if(C(H))return M(H);c=setTimeout(A,_(H))}function M(H){return c=void 0,f&&r?v(H):(r=i=void 0,o)}function $(){c!==void 0&&clearTimeout(c),l=0,r=d=i=c=void 0}function x(){return c===void 0?o:M(Xl())}function B(){var H=Xl(),re=C(H);if(r=arguments,i=this,d=H,re){if(c===void 0)return E(d);if(g)return clearTimeout(c),c=setTimeout(A,t),v(d)}return c===void 0&&(c=setTimeout(A,t)),o}return B.cancel=$,B.flush=x,B}function mu(s,t,e){(e!==void 0&&!kc(s[t],e)||e===void 0&&!(t in s))&&ch(s,t,e)}function xC(s){return $s(s)&&Ac(s)}function fu(s,t){if(!(t==="constructor"&&typeof s[t]=="function")&&t!="__proto__")return s[t]}function UC(s){return Ic(s,Mc(s))}function $C(s,t,e,r,i,a,o){var c=fu(s,e),d=fu(t,e),l=o.get(d);if(l){mu(s,e,l);return}var p=a?a(c,d,e+"",s,t,o):void 0,g=p===void 0;if(g){var f=Ut(d),v=!f&&ba(d),E=!f&&!v&&kl(d);p=d,f||v||E?Ut(c)?p=c:xC(c)?p=Im(c):v?(g=!1,p=km(d,!0)):E?(g=!1,p=Nm(d,!0)):p=[]:B_(d)||Eo(d)?(p=c,Eo(c)?p=UC(c):(!ns(c)||oh(c))&&(p=Vm(d))):g=!1}g&&(o.set(d,p),i(p,d,r,a,o),o.delete(d)),mu(s,e,p)}function Zm(s,t,e,r,i){s!==t&&DC(t,function(a,o){if(i||(i=new Cs),ns(a))$C(s,t,o,e,Zm,r,i);else{var c=r?r(fu(s,o),a,o+"",s,t,i):void 0;c===void 0&&(c=a),mu(s,o,c)}},Mc)}function FC(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 BC="[object Map]",HC="[object Set]",qC=Object.prototype,jC=qC.hasOwnProperty;function GC(s){if(s==null)return!0;if(Ac(s)&&(Ut(s)||typeof s=="string"||typeof s.splice=="function"||ba(s)||kl(s)||Eo(s)))return!s.length;var t=Ia(s);if(t==BC||t==HC)return!s.size;if(Il(s))return!Rm(s).length;for(var e in s)if(jC.call(s,e))return!1;return!0}function WC(s,t){return Ol(s,t)}var JC=V_(function(s,t,e){Zm(s,t,e)});const Cr=JC;var KC=1/0,zC=Cn&&1/yh(new Cn([,-0]))[1]==KC?function(s){return new Cn(s)}:T_;const YC=zC;var QC=200;function ef(s,t,e){var r=-1,i=M_,a=s.length,o=!0,c=[],d=c;if(e)o=!1,i=FC;else if(a>=QC){var l=t?null:YC(s);if(l)return yh(l);o=!1,i=zm,d=new Po}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 f=d.length;f--;)if(d[f]===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 XC(s){return s&&s.length?ef(s):[]}function ZC(s,t){return s&&s.length?ef(s,IC(t)):[]}var Tu=(s=>(s.PARTICIPANT="PARTICIPANT",s.PEER="PEER",s.CLIENT="CLIENT",s))(Tu||{});const Z={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",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 td(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 ew={audio:!0,video:!0,screenshareAudio:!0,screenshareVideo:!0},Xa={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"},tw={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 Aa(s,t){const e=s.getValue("overrides");return e&&e[t]?e[t]:!1}function sw({baseURI:s}){return s.includes("preprod.dyte")||s.includes("preprod.realtime")?uo.PREPROD:s.includes("devel.dyte")||s.includes("devel.realtime")?uo.DEVEL:uo.PROD}function Zi({servicePrefix:s,baseURI:t}){return`${s}.${t}`}function tf(s){const t=s.getValue("baseURI");return{location:Zi({servicePrefix:"location",baseURI:t}),locationLegacy:Zi({servicePrefix:"location-legacy",baseURI:t}),daCollector:Zi({servicePrefix:"da-collector",baseURI:t})}}const rw='<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>',iw='<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>',qc=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})},ui={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 nw(s){var r,i,a;const t=typeof navigator!="undefined"&&!navigator.isReactNative&&typeof window!="undefined"&&((r=window.location.host)==null?void 0:r.includes(ui.baseURI.staging)),e=!!((a=(i=s==null?void 0:s.getValue("modules"))==null?void 0:i.devTools)!=null&&a.logs);return t||e}function aw(s,t){var e;if(s!=null&&s.getValue("flagsmith").hasFeature(Z.LOG_LEVEL)){let r=((e=s.getValue("flagsmith").getValue(Z.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 sf(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"?sf(s[r],i,e):["number","string","boolean"].includes(typeof s[r])&&(e[i]=s[r])}),e}function Ap(s,t,e={},r=""){const i={};try{const a=JSON.stringify(e),o=JSON.parse(a),c=sf(o,r),d=JSON.stringify(c);return JSON.parse(d)}catch(a){const o=td(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 Bh=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=ur.getContext(this.meetingMetadata.peerId);return`https://${Zi({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 f;const l=this==null?void 0:this.telemetry;if(!l||!l.initialized||navigator.isReactNative||!l.tracingEnabled||(f=ur.getContext(l.meetingMetadata.peerId))!=null&&f.getValue("flagsmith").hasFeature(Z.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:Bh.location.country})}).catch(()=>{const v=performance.now();l.addLogInCurrentSpan("info",`${t}_timing`,{execTime:v-p})}),g},a}}injectContext(t){var i;const e=gr.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:td(r.error)});const a=ur.getContext(this.meetingMetadata.peerId);if(nw(a)&&(GC(r)?console[t]("InternalLogs:: ",t,e):console[t]("InternalLogs:: ",t,e,r)),!!aw(a,t))try{const c=Ap(a,e,r,"metadata"),d=new Date,l=G(O({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:td(c)})}}sendOtelLogsToNewRelic(t){const e=ur.getContext(this.meetingMetadata.peerId);fetch(this.logsEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({meetingMetadata:Ap(e,"sendOtelLogsToNewRelic",this.meetingMetadata,"meetingMetadata"),serviceName:e.getValue("sdkName"),logs:t})}).catch(r=>{this.addLogInCurrentSpan("error","opentelemetry::sendOtelLogToNewRelic_failed",{error:td(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 P=Bh;h(P,"location",{country:void 0});function ow(s){const t=O({},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(f){}})};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 cw{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 P,i=new Jm;this.contexts.set(t,ow(e)),this.contexts.get(t).setValue("peerSessionStore",new gu(i));const a=new Tm;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",YP()),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 ur=new cw,dw={"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"},sd={"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","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(sd).forEach(s=>{sd[s]=`{${dw[s.slice(0,2)]}} ${sd[s]}`});class k extends Error{constructor(e,r,i=void 0,a=!1){super(e);h(this,"code");this.code=r,this.name="ClientError";const o=this.code?`[ERR${this.code}]`:"[ERR]",c=this.code?sd[this.code]:"";this.message=`${o}: ${c}
|
|
5
5
|
${this.message}`;try{let d=a&&!!i;r&&r.endsWith("00")&&i&&(d=!0),d&&i.error("ClientError",{error:{message:this.message,name:this.name,code:r}});const l=ur.getContext(ur.getMostRecentPeerId());if(l){const p=l.getValue("onError");try{p(this)}catch(g){}}typeof window!="undefined"&&window.dispatchEvent(new CustomEvent("ClientError",{detail:this}))}catch(d){}}}function jc(s,t,e,r){if(r instanceof k)throw r;if(r instanceof t){const i=new k(r.message,e);throw i.stack=r.stack,i}else throw r}function Mp(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){jc(this,t,e,o)}}),a&&(s.set=function(o){try{return a.apply(this,[o])}catch(c){jc(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=>{jc(this,t,e,o)}):a}catch(a){jc(this,t,e,a)}},s}function lw(s,t){return(e,r,i)=>{if(i)return Mp(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,Mp(o,s,t))}}}const dt=s=>lw(Error,s);function uw(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 hw(){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 R=(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))(R||{});class Da extends ct.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 Bt extends ct.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 Dp=1080,Op=1920,gw=(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,f=l*p,v,E,_,C,A=1;return g<e&&(A=e/g),Math.abs(A-1)<1e-14&&f<r&&(A=r/f),g*=A,f*=A,_=d/(g/e),C=l/(f/r),v=(d-_)*o,E=(l-C)*c,v<0&&(v=0),E<0&&(E=0),_>d&&(_=d),C>l&&(C=l),[v,E,_,C,s,t,e,r]};var Wt,hi,tt,Jt,Re,us,Gs,ut,De,kn,In,Ws,An;const Hh=class extends Bt{constructor(e,r,i,a){const o=e.getValue("logger");super(o);m(this,Wt,void 0);m(this,hi,void 0);m(this,tt,void 0);m(this,Jt,void 0);m(this,Re,{height:Dp,width:Op});m(this,us,{brand:"#2160FD",background:"#141414",text:"#000000",videoBackground:"#191919",textOnBrand:"#EEEEEE"});m(this,Gs,void 0);m(this,ut,{});m(this,De,void 0);m(this,kn,void 0);m(this,In,void 0);m(this,Ws,void 0);m(this,An,!1);h(this,"cleanupEventListeners",()=>{n(this,hi).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,hi).getValue("peerSessionStore").emit(R.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,Ws)==="active"){this.disable(!0);return}n(this,ut)!==void 0&&this.paintCanvas(),n(this,Gs)!==void 0&&T(this,Gs,requestAnimationFrame(()=>this.animate()))});h(this,"disable",(e=!1)=>{T(this,Ws,"idle"),this.cleanupEventListeners(),cancelAnimationFrame(n(this,Gs)),e!==!0&&document.body.removeChild(n(this,tt)),T(this,Gs,void 0),document.pictureInPictureElement&&document.exitPictureInPicture()});T(this,hi,e),T(this,Ws,"idle"),T(this,De,r),T(this,us,{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 qc(rw),a=yield qc(iw)}catch(o){}return new Hh(e,r,i,a)})}setupIcon(e,r){return u(this,null,function*(){switch(e){case"handRaise":T(this,In,r);break;case"pin":T(this,kn,r);break}})}overrideIcon(e,r){return u(this,null,function*(){switch(e){case"handRaise":T(this,In,yield qc(r));break;case"pin":T(this,kn,yield qc(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(){T(this,tt,document.createElement("div")),n(this,tt).style.width="0.1px",n(this,tt).style.height="0.1px",n(this,tt).style.overflow="hidden",n(this,tt).style.position="absolute",n(this,tt).style.bottom="0",n(this,tt).style.right="0",n(this,tt).style.opacity="0",n(this,tt).appendChild(n(this,Jt))}setupEventListeners(){n(this,hi).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,Re).height,e.width=n(this,Re).width,T(this,Wt,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,ut)).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,Wt)===void 0)return;const o=n(this,Wt).getContext("2d"),c=n(this,Wt).width,d=0,l=0,p=r-d*2,g=i-d*2,f=Math.floor(c/p),v=Math.floor(e/f),_=e%f*(p+d)+d,C=v*(g+d)+d,{displayText:A,image:M}=a!=null?a:{};o.fillStyle=A||M?n(this,us).videoBackground:n(this,us).background,o.strokeStyle=n(this,us).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 $=p/6,x=p/2+_,B=g/2+C;o.save(),(A||M)&&(o.beginPath(),o.arc(x,B,$,0,Math.PI*2),o.fillStyle=n(this,us).brand,o.fill(),M?(o.clip(),o.drawImage(M,x-$,B-$,$*2,$*2),o.restore()):A&&(o.fillStyle=n(this,us).textOnBrand,o.font=`${$/2}px sans-serif`,o.textAlign="center",o.textBaseline="middle",o.fillText(A,x,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=f=>{const v=n(this,Wt).getContext("2d");v.save(),v.fillStyle=n(this,us).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 f=="string"?(v.font=`${o/1.5}px sans-serif`,v.fillStyle=n(this,us).text,v.textAlign="center",v.textBaseline="top",v.fillText(f,o/2+l,p+c)):v.drawImage(f,l+c,p+c,o-c*2,o-c*2),l+=o+c,v.restore()};e.pinned&&g(n(this,kn)),e.handRaised&&g(n(this,In)),e.reaction&&g(e.reaction)}drawTile(e,r,i){var l,p;if(n(this,Wt)===void 0)return;const a=n(this,Wt).getContext("2d"),o=this.getSources();let c=0,d=0;for(;c<n(this,Re).height-5;){let g=0;for(;g<n(this,Re).width-5&&d<i;){if((l=o[d])!=null&&l.enabled){const f=o[d].element,[v,E,_,C,A,M,$,x]=gw(g,c,e,r,f.videoWidth,f.videoHeight);((p=f==null?void 0:f.classList)==null?void 0:p.contains("mirror"))?(a.save(),a.scale(-1,1),a.drawImage(f,v,E,_,C,-1*A,M,-1*$,x),a.restore()):a.drawImage(f,v,E,_,C,A,M,$,x),this.drawIcons(o[d],A,M,Math.max($,x))}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,Re).width,n(this,Re).height];case 2:return[Math.floor(n(this,Re).width/2),n(this,Re).height];case 3:case 4:return[Math.floor(n(this,Re).width/2),Math.floor(n(this,Re).height/2)];case 5:case 6:return[Math.floor(n(this,Re).width/3),Math.floor(n(this,Re).height/2)];case 7:case 8:case 9:return[Math.floor(n(this,Re).width/3),Math.floor(n(this,Re).height/3)];default:return[Math.floor(n(this,Re).width/3),Math.floor(n(this,Re).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(T(this,An,!1),this.isSupported()&&document.exitPictureInPicture!==void 0&&document.pictureInPictureElement!==null&&document.exitPictureInPicture(),n(this,tt))try{document.body.removeChild(n(this,tt))}catch(e){}this.removeAllSources(),T(this,Wt,void 0),T(this,Jt,void 0),T(this,Gs,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,An))return;T(this,An,!0),this.createCanvas(),this.setupMediaSessionEvents();const i=document.createElement("video");T(this,Re,{height:e!=null?e:Dp,width:r!=null?r:Op}),i.height=n(this,Re).height,i.width=n(this,Re).width,i.autoplay=!0,i.muted=!0,i.srcObject=n(this,Wt).captureStream(24),T(this,Jt,i),n(this,Jt).onloadedmetadata=()=>{try{this.emit("pipStarted"),n(this,Jt).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,ut)[e]!==void 0&&(n(this,ut)[e].enabled=!0)}disableSource(e){n(this,ut)[e]!==void 0&&(n(this,ut)[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,ut)[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,ut)[e];i&&(n(this,ut)[e]=O(O({},i),r))}removeSource(e){delete n(this,ut)[e]}removePinnedSource(){Object.values(n(this,ut)).forEach(r=>{r.pinned&&this.removeSource(r.id)})}removeAllSources(){T(this,ut,{})}enable(){T(this,Ws,"activating"),this.setupEventListeners(),this.updateMediaSession("CAMERA",n(this,De).videoEnabled),this.updateMediaSession("MIC",n(this,De).audioEnabled),document.body.appendChild(n(this,tt)),T(this,Gs,requestAnimationFrame(()=>this.animate())),n(this,Jt).onloadedmetadata=()=>{n(this,Jt).requestPictureInPicture().then(()=>{T(this,Ws,"active")})},n(this,Jt).readyState===4&&n(this,Jt).requestPictureInPicture().then(()=>{T(this,Ws,"active")})}};let vu=Hh;Wt=new WeakMap,hi=new WeakMap,tt=new WeakMap,Jt=new WeakMap,Re=new WeakMap,us=new WeakMap,Gs=new WeakMap,ut=new WeakMap,De=new WeakMap,kn=new WeakMap,In=new WeakMap,Ws=new WeakMap,An=new WeakMap;var fr;(function(s){s[s.PUBLISHER=0]="PUBLISHER",s[s.SUBSCRIBER=1]="SUBSCRIBER"})(fr||(fr={}));var xs;(function(s){s[s.AUDIO=0]="AUDIO",s[s.VIDEO=1]="VIDEO"})(xs||(xs={}));class mw extends S.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 rf=new mw;class fw extends S.MessageType{constructor(){super("media.HeaderExtension",[{no:1,name:"direction",kind:"scalar",opt:!0,T:9},{no:2,name:"uri",kind:"scalar",T:9}])}}const Tw=new fw;class vw extends S.MessageType{constructor(){super("media.Fingerprint",[{no:1,name:"algorithm",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:9}])}}new vw;class Sw extends S.MessageType{constructor(){super("media.SessionDescription",[{no:1,name:"target",kind:"enum",T:()=>["media.Target",fr]},{no:2,name:"type",kind:"scalar",T:9},{no:3,name:"sdp",kind:"scalar",T:9}])}}const Rs=new Sw;class yw extends S.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 Ew=new yw;class Pw extends S.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:()=>Rs},{no:4,name:"private_ice",kind:"scalar",opt:!0,T:8},{no:5,name:"producers",kind:"message",repeat:1,T:()=>Ew}])}}const _w=new Pw;class Cw extends S.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 ww=new Cw;class Rw extends S.MessageType{constructor(){super("media.CreateTransportResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>Rs},{no:3,name:"transcription_enabled",kind:"scalar",opt:!0,T:8},{no:4,name:"producer_ids",kind:"scalar",repeat:2,T:9}])}}const nf=new Rw;class bw extends S.MessageType{constructor(){super("media.RenegotiateRequest",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>Rs}])}}const kw=new bw;class Iw extends S.MessageType{constructor(){super("media.RenegotiateResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>Rs}])}}new Iw;class Aw extends S.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 Mw=new Aw;class Dw extends S.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 Ow=new Dw;class Nw extends S.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 Nw;class Vw extends S.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 Vw;class Lw extends S.MessageType{constructor(){super("media.ProducerState",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"kind",kind:"enum",T:()=>["media.ProducerKind",xs]},{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:()=>rf}])}}const Dc=new Lw;class xw extends S.MessageType{constructor(){super("media.ConsumerState",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>Dc},{no:3,name:"producer_track",kind:"message",T:()=>Ow},{no:4,name:"error_code",kind:"scalar",opt:!0,T:9}])}}const Uw=new xw;class $w extends S.MessageType{constructor(){super("media.ProducerIdToConsumerMap",[{no:1,name:"map",kind:"map",K:9,V:{kind:"message",T:()=>Uw}}])}}const af=new $w;class Fw extends S.MessageType{constructor(){super("media.PeerRtpCapabilitites",[{no:1,name:"sender",kind:"message",T:()=>Vp},{no:2,name:"receiver",kind:"message",T:()=>Vp}])}}const of=new Fw;class Bw extends S.MessageType{constructor(){super("media.RtpCapability",[{no:1,name:"codecs",kind:"message",repeat:1,T:()=>rf},{no:2,name:"header_extensions",kind:"message",repeat:1,T:()=>Tw}])}}const Np=new Bw;class Hw extends S.MessageType{constructor(){super("media.RtpCapabilitites",[{no:1,name:"audio",kind:"message",T:()=>Np},{no:2,name:"video",kind:"message",T:()=>Np}])}}const Vp=new Hw;class qw extends S.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 jw=new qw;class Gw extends S.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 cf=new Gw;class Ww extends S.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 Jw=new Ww;class Kw extends S.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:()=>Jw},{no:9,name:"capabilities",kind:"message",T:()=>of}])}}const zw=new Kw;class Yw extends S.MessageType{constructor(){super("media.edge.PeerJoinCompleteRequest",[])}}const Qw=new Yw;class Xw extends S.MessageType{constructor(){super("media.edge.PeerLeaveRequest",[{no:1,name:"close_room",kind:"scalar",T:8}])}}const Zw=new Xw;class eR extends S.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 eR;class tR extends S.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:()=>jw},{no:5,name:"producing_transport_id",kind:"scalar",opt:!0,T:9},{no:6,name:"simulcast",kind:"message",T:()=>cf}])}}const sR=new tR;class rR extends S.MessageType{constructor(){super("media.edge.ConsumePeersRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>sR},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const iR=new rR;class nR extends S.MessageType{constructor(){super("media.edge.UpdateConsumerSimulcastConfigRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"simulcast",kind:"message",T:()=>cf},{no:3,name:"producing_transport_id",kind:"scalar",T:9},{no:4,name:"mid",kind:"scalar",T:9}])}}const aR=new nR;class oR extends S.MessageType{constructor(){super("media.edge.UpdateConsumersSimulcastConfigRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>aR},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const cR=new oR;class dR extends S.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:()=>Rs},{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 lR=new dR;class uR extends S.MessageType{constructor(){super("media.edge.SelectedPeersRequest",[])}}new uR;class hR extends S.MessageType{constructor(){super("media.edge.GlobalPeerPinningRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const pR=new hR;class gR extends S.MessageType{constructor(){super("media.edge.ProducerToggleRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"pause",kind:"scalar",T:8}])}}const Gc=new gR;class mR extends S.MessageType{constructor(){super("media.edge.ConsumerToggleRequest",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"pause",kind:"scalar",T:8}])}}new mR;class fR extends S.MessageType{constructor(){super("media.edge.ProducerCloseRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>Rs},{no:3,name:"producing_transport_id",kind:"scalar",opt:!0,T:9}])}}const TR=new fR;class vR extends S.MessageType{constructor(){super("media.edge.ConsumerCloseRequest",[{no:1,name:"consumer_ids",kind:"scalar",repeat:2,T:9},{no:2,name:"description",kind:"message",T:()=>Rs},{no:3,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const SR=new vR;class yR extends S.MessageType{constructor(){super("media.edge.KickPeerRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new yR;class ER extends S.MessageType{constructor(){super("media.edge.KickAllPeersRequest",[{no:1,name:"propagate_kick_across_rooms",kind:"scalar",T:8}])}}const df=new ER;class PR extends S.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 _R=new PR;class CR extends S.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 wR=new CR;class RR extends S.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 bR=new RR;class kR extends S.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 IR=new kR;class AR extends S.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 MR=new AR;class DR extends S.MessageType{constructor(){super("media.edge.EmptyResponse",[])}}new DR;class OR extends S.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:()=>Dc},{no:3,name:"display_name",kind:"scalar",T:9},{no:4,name:"user_id",kind:"scalar",opt:!0,T:9},{no:5,name:"capabilities",kind:"message",T:()=>of}])}}const lf=new OR;class NR extends S.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 Su=new NR;class VR extends S.MessageType{constructor(){super("media.edge.SelectedPeersDiffEntry",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"priority",kind:"scalar",T:5}])}}const LR=new VR;class xR extends S.MessageType{constructor(){super("media.edge.SelectedPeersDiffResponse",[{no:1,name:"entries",kind:"message",repeat:1,T:()=>LR}])}}const Lp=new xR;class UR extends S.MessageType{constructor(){super("media.edge.PeerJoinResponse",[])}}new UR;class $R extends S.MessageType{constructor(){super("media.edge.PeerJoinCompleteResponse",[{no:1,name:"room_state",kind:"message",T:()=>IR},{no:2,name:"participants",kind:"message",repeat:1,T:()=>lf},{no:3,name:"selected_peers",kind:"message",T:()=>Su},{no:4,name:"max_preferred_streams",kind:"scalar",T:5}])}}const yu=new $R;class FR extends S.MessageType{constructor(){super("media.edge.PeerLeaveResponse",[{no:1,name:"closed",kind:"scalar",T:8}])}}const BR=new FR;class HR extends S.MessageType{constructor(){super("media.edge.ConsumeMultipleProducerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>af}])}}new HR;class qR extends S.MessageType{constructor(){super("media.edge.ConsumePeerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>af},{no:3,name:"description",kind:"message",T:()=>Rs}])}}const jR=new qR;class GR extends S.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:()=>Rs}])}}const WR=new GR;class JR extends S.MessageType{constructor(){super("media.edge.ProducerScoreResponse",[{no:1,name:"responseid",kind:"scalar",T:9},{no:2,name:"score",kind:"message",T:()=>Mw}])}}new JR;class KR extends S.MessageType{constructor(){super("media.edge.ActiveSpeakerResponse",[{no:1,name:"responsepeer_id",kind:"scalar",T:9},{no:2,name:"volume",kind:"scalar",T:5}])}}new KR;class zR extends S.MessageType{constructor(){super("media.edge.NoActiveSpeakerResponse",[])}}new zR;class YR extends S.MessageType{constructor(){super("media.edge.ProducerToggleResponse",[])}}new YR;class QR extends S.MessageType{constructor(){super("media.edge.ConsumerToggleResponse",[])}}new QR;class XR extends S.MessageType{constructor(){super("media.edge.ProducerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>Rs}])}}const ZR=new XR;class eb extends S.MessageType{constructor(){super("media.edge.ConsumerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>Rs}])}}const tb=new eb;class sb extends S.MessageType{constructor(){super("media.edge.GlobalPeerPinningResponse",[])}}new sb;class rb extends S.MessageType{constructor(){super("media.edge.KickPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new rb;class ib extends S.MessageType{constructor(){super("media.edge.KickAllPeersResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new ib;class nb extends S.MessageType{constructor(){super("media.edge.HostMediaControlForPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const ab=new nb;class ob extends S.MessageType{constructor(){super("media.edge.HostMediaControlForAllPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const cb=new ob;class db extends S.MessageType{constructor(){super("media.edge.PeerDisplayNameEditResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const lb=new db;class ub extends S.MessageType{constructor(){super("media.edge.PeerJoinBroadcastResponse",[{no:1,name:"participant",kind:"message",T:()=>lf}])}}const xp=new ub;class hb extends S.MessageType{constructor(){super("media.edge.TrackSubscriptionKind",[{no:1,name:"audio",kind:"scalar",T:8},{no:2,name:"video",kind:"scalar",T:8}])}}const Up=new hb;class pb extends S.MessageType{constructor(){super("media.edge.TrackSubscription",[{no:1,name:"label",kind:"scalar",T:9},{no:2,name:"webcam",kind:"message",T:()=>Up},{no:3,name:"screenshare",kind:"message",T:()=>Up}])}}const gb=new pb;class mb extends S.MessageType{constructor(){super("media.edge.PeerProducingTransportCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"transport_details",kind:"message",T:()=>nf},{no:3,name:"track_subscriptions",kind:"message",repeat:1,T:()=>gb}])}}new mb;class fb extends S.MessageType{constructor(){super("media.edge.PeerProducerCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>Dc}])}}const Tb=new fb;class vb extends S.MessageType{constructor(){super("media.edge.PeerProducerToggleBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>Dc},{no:3,name:"initiator_participant_id",kind:"scalar",opt:!0,T:9}])}}const $p=new vb;class Sb extends S.MessageType{constructor(){super("media.edge.PeerProducerCloseBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>Dc}])}}const yb=new Sb;class Eb extends S.MessageType{constructor(){super("media.edge.PeerLeaveBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const Eu=new Eb;class Pb extends S.MessageType{constructor(){super("media.edge.GlobalPeerPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const Fp=new Pb;class _b extends S.MessageType{constructor(){super("media.edge.GlobalPeerUnPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new _b;class Cb extends S.MessageType{constructor(){super("media.edge.RecordingStartedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new Cb;class wb extends S.MessageType{constructor(){super("media.edge.RecordingStoppedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new wb;class Rb extends S.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 Rb;class bb extends S.MessageType{constructor(){super("media.edge.PeerPingRequestBroadcastResponse",[{no:1,name:"password",kind:"scalar",T:9}])}}new bb;class kb extends S.MessageType{constructor(){super("media.edge.MediaRoomTerminationBroadcastResponse",[{no:1,name:"reason",kind:"scalar",T:9}])}}new kb;class Ib extends S.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 Zl=new Ib;class Ab extends S.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 Ab;class Mb extends S.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 Db=new Mb;var en;(function(s){s[s.BROWSER=0]="BROWSER",s[s.TRACK=1]="TRACK",s[s.COMPOSITE=2]="COMPOSITE"})(en||(en={}));var dr;(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"})(dr||(dr={}));var Pu;(function(s){s[s.NONE=0]="NONE",s[s.RECORDER=1]="RECORDER",s[s.LIVESTREAMER=2]="LIVESTREAMER"})(Pu||(Pu={}));var _u;(function(s){s[s.PEERS=0]="PEERS",s[s.ROOMS=1]="ROOMS"})(_u||(_u={}));var Sd;(function(s){s[s.HIVE=0]="HIVE",s[s.CHAT=1]="CHAT",s[s.PING=2]="PING"})(Sd||(Sd={}));class Ob extends S.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 Nb=new Ob;class Vb extends S.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",dr,"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:()=>Nb}])}}const Nl=new Vb;class Lb extends S.MessageType{constructor(){super("socket.room.PeerInfoResponse",[{no:1,name:"peer",kind:"message",T:()=>Nl}])}}const hn=new Lb;class xb extends S.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",dr,"STAGE_TYPE_"]}])}}const Bp=new xb;class Ub extends S.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 $b=new Ub;class Fb extends S.MessageType{constructor(){super("socket.room.RoomPeersInfoResponse",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>Nl}])}}const eu=new Fb;class Bb extends S.MessageType{constructor(){super("socket.room.RoomPeerCountResponse",[{no:1,name:"count",kind:"scalar",T:4,L:2}])}}const Hp=new Bb;class Hb extends S.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:()=>jb},{no:6,name:"room_uuid",kind:"scalar",opt:!0,T:9}])}}const uf=new Hb;class qb extends S.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",en]},{no:3,name:"recording_status",kind:"scalar",T:9}])}}const jb=new qb;class Gb extends S.MessageType{constructor(){super("socket.room.RoomInfoResponse",[{no:1,name:"room",kind:"message",T:()=>uf}])}}const qp=new Gb;class Wb extends S.MessageType{constructor(){super("socket.room.GetPeerInfoRequest",[{no:1,name:"peer_id",kind:"scalar",T:9}])}}const hf=new Wb;class Jb extends S.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 Jb;class Kb extends S.MessageType{constructor(){super("socket.room.JoinRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>Nl},{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",Sd,"CAPABILITIES_"]},{no:8,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const zb=new Kb;class Yb extends S.MessageType{constructor(){super("socket.room.LeaveRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>Nl},{no:2,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const Qb=new Yb;class Xb extends S.MessageType{constructor(){super("socket.room.UpdateRoomInfoRequest",[{no:1,name:"room",kind:"message",T:()=>uf}])}}new Xb;class Zb extends S.MessageType{constructor(){super("socket.room.GetConnectedRoomsDumpRequest",[])}}new Zb;class ek extends S.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 Ph=new ek;class tk extends S.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 sk=new tk;class rk extends S.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:()=>sk}])}}const jp=new rk;class ik extends S.MessageType{constructor(){super("socket.room.GetConnectedRoomsDumpResponse",[{no:1,name:"parent_meeting",kind:"message",T:()=>jp},{no:2,name:"meetings",kind:"message",repeat:1,T:()=>jp}])}}const nk=new ik;class ak extends S.MessageType{constructor(){super("socket.room.CreateRoomRequestPayload",[{no:1,name:"title",kind:"scalar",opt:!0,T:9}])}}const ok=new ak;class ck extends S.MessageType{constructor(){super("socket.room.CreateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>ok}])}}const dk=new ck;class lk extends S.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:()=>Ph}])}}const uk=new lk;class hk extends S.MessageType{constructor(){super("socket.room.CreateConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>uk}])}}const Gp=new hk;class pk extends S.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 gk=new pk;class mk extends S.MessageType{constructor(){super("socket.room.UpdateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>gk}])}}new mk;class fk extends S.MessageType{constructor(){super("socket.room.DisableRoomPayload",[{no:1,name:"id",kind:"scalar",opt:!0,T:9}])}}const Tk=new fk;class vk extends S.MessageType{constructor(){super("socket.room.DisableConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>Tk}])}}const Sk=new vk;class yk extends S.MessageType{constructor(){super("socket.room.DisableConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>_k}])}}const Ek=new yk;class Pk extends S.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:()=>Ph}])}}const _k=new Pk;class Ck extends S.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 wk=new Ck;class Rk extends S.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:()=>wk}])}}const bk=new Rk;class kk extends S.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:()=>Ph}])}}const pf=new kk;class Ik extends S.MessageType{constructor(){super("socket.room.MovePeersBetweenRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>pf}])}}new Ik;class Ak extends S.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 Mk=new Ak;class Dk extends S.MessageType{constructor(){super("socket.room.GetAllAddedParticipantsResponse",[{no:1,name:"participants",kind:"message",repeat:1,T:()=>Vk}])}}const Ok=new Dk;class Nk extends S.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 Vk=new Nk;class Lk extends S.MessageType{constructor(){super("socket.room.RemoveParticipantsRequest",[{no:1,name:"peer_ids",kind:"scalar",repeat:2,T:9}])}}const gf=new Lk;class xk extends S.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",_u,"BROADCAST_TYPE_"]}])}}const Za=new xk;class Uk extends S.MessageType{constructor(){super("socket.room.AcceptWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const $k=new Uk;class Fk extends S.MessageType{constructor(){super("socket.room.DenyWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const Bk=new Fk;class Hk extends S.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 qk=new Hk;class jk extends S.MessageType{constructor(){super("socket.room.GetWaitingRoomRequests",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>qk}])}}const Wp=new jk;class Gk extends S.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 Jp=new Gk;var Cu;(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"})(Cu||(Cu={}));var Kr;(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"})(Kr||(Kr={}));class Wk extends S.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 Jk=new Wk;class Kk extends S.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 zk=new Kk;class Yk extends S.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 Qk=new Yk;class Xk extends S.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 Zk=new Xk;class eI extends S.MessageType{constructor(){super("socket.preset.ChatPermissionUpdate",[{no:1,name:"public",kind:"message",T:()=>Qk},{no:2,name:"private",kind:"message",T:()=>Zk}])}}const tI=new eI;class sI extends S.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 rI=new sI;class iI extends S.MessageType{constructor(){super("socket.preset.StreamPermission",[{no:1,name:"can_produce",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",Kr,"STREAM_PERMISSION_TYPE_"]},{no:2,name:"can_consume",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",Kr,"STREAM_PERMISSION_TYPE_"]}])}}const tu=new iI;class nI extends S.MessageType{constructor(){super("socket.preset.MediaPermissionUpdate",[{no:1,name:"video",kind:"message",T:()=>tu},{no:2,name:"audio",kind:"message",T:()=>tu},{no:3,name:"screenshare",kind:"message",T:()=>tu}])}}const aI=new nI;class oI extends S.MessageType{constructor(){super("socket.preset.PresetUpdates",[{no:1,name:"polls",kind:"message",T:()=>Jk},{no:2,name:"plugins",kind:"message",T:()=>zk},{no:3,name:"chat",kind:"message",T:()=>tI},{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",Cu,"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",Pu,"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:()=>rI},{no:23,name:"media",kind:"message",T:()=>aI}])}}const _h=new oI;class cI extends S.MessageType{constructor(){super("socket.preset.ReadPeersPresetRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const dI=new cI;class lI extends S.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 uI=new lI;class hI extends S.MessageType{constructor(){super("socket.preset.ReadPeersPresetResponse",[{no:1,name:"peer_presets",kind:"message",repeat:1,T:()=>uI}])}}const pI=new hI;class gI extends S.MessageType{constructor(){super("socket.preset.UpdatePeerPreset",[{no:1,name:"user_ids",kind:"scalar",T:9},{no:2,name:"patch",kind:"message",T:()=>_h}])}}const mf=new gI;class mI extends S.MessageType{constructor(){super("socket.preset.UpdatePeersPresetRequest",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>mf}])}}const fI=new mI;class TI extends S.MessageType{constructor(){super("socket.preset.UpdatePeersPresetResponse",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>mf}])}}const Kp=new TI;class vI extends S.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 SI=new vI;class yI extends S.MessageType{constructor(){super("socket.preset.BulkUpdatePeerPresetRequest",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>SI},{no:2,name:"patch",kind:"message",T:()=>_h}])}}new yI;class EI extends S.MessageType{constructor(){super("socket.preset.BulkUpdatePeerPresetResponse",[{no:2,name:"patch",kind:"message",T:()=>_h}])}}new EI;class PI extends S.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 Zr=new PI;class _I extends S.MessageType{constructor(){super("socket.chat.GetPaginatedChatMessageFilters",[{no:1,name:"pinned",kind:"scalar",oneof:"filters",T:8},{no:2,name:"user_id",kind:"scalar",oneof:"filters",T:9}])}}const CI=new _I;class wI extends S.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},{no:6,name:"filters",kind:"message",T:()=>CI}])}}const RI=new wI;class bI extends S.MessageType{constructor(){super("socket.chat.GetPaginatedChatMessageRoomResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>Zr},{no:2,name:"next",kind:"scalar",T:8}])}}const kI=new bI;class II extends S.MessageType{constructor(){super("socket.chat.GetChatMessagesResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>Zr}])}}const ff=new II;class AI extends S.MessageType{constructor(){super("socket.chat.SendChatMessageToRoomRequest",[{no:1,name:"payload_type",kind:"scalar",T:5},{no:2,name:"payload",kind:"scalar",T:9}])}}const MI=new AI;class DI extends S.MessageType{constructor(){super("socket.chat.SendChatMessageToRoomResponse",[{no:1,name:"message",kind:"message",T:()=>Zr}])}}const su=new DI;class OI extends S.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 NI=new OI;class VI extends S.MessageType{constructor(){super("socket.chat.SendChatMessageToPeersResponse",[{no:1,name:"message",kind:"message",T:()=>Zr}])}}const ru=new VI;class LI extends S.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}])}}new LI;class xI extends S.MessageType{constructor(){super("socket.chat.SendChatMessageToChannelResponse",[{no:1,name:"message",kind:"message",T:()=>Zr}])}}new xI;class UI extends S.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 $I=new UI;class FI extends S.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 BI=new FI;class HI extends S.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},{no:4,name:"message",kind:"message",T:()=>Zr}])}}const Wc=new HI;class qI extends S.MessageType{constructor(){super("socket.chat.EditChatMessageResponse",[{no:1,name:"message",kind:"message",T:()=>Zr}])}}const Jc=new qI;class jI extends S.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 GI=new jI;class WI extends S.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 Kc=new WI;class JI extends S.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 KI=new JI;class zI extends S.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}])}}new zI;class YI extends S.MessageType{constructor(){super("socket.chat.MarkChannelIndexAsReadResponse",[{no:1,name:"channel_index",kind:"scalar",T:9}])}}new YI;class QI extends S.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}])}}new QI;class XI extends S.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}])}}new XI;class ZI extends S.MessageType{constructor(){super("socket.chat.CreateChatChannelResponse",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}new ZI;class eA extends S.MessageType{constructor(){super("socket.chat.GetChatChannelRequest",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}new eA;class tA extends S.MessageType{constructor(){super("socket.chat.LatestMessageAndUnreadCount",[{no:1,name:"message",kind:"message",T:()=>Zr},{no:2,name:"unread_count",kind:"scalar",T:4,L:2}])}}const sA=new tA;class rA extends S.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:()=>sA},{no:7,name:"target_user_ids",kind:"scalar",repeat:2,T:9}])}}const iA=new rA;class nA extends S.MessageType{constructor(){super("socket.chat.GetChatChannelResponse",[{no:1,name:"chat_channels",kind:"message",repeat:1,T:()=>iA}])}}new nA;class aA extends S.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 oA=new aA;class cA extends S.MessageType{constructor(){super("socket.chat.GetChatChannelMembersResponse",[{no:1,name:"channel_members",kind:"message",repeat:1,T:()=>oA}])}}new cA;class dA extends S.MessageType{constructor(){super("socket.plugin.AddPluginRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"staggered",kind:"scalar",T:8}])}}const lA=new dA;class uA extends S.MessageType{constructor(){super("socket.plugin.RemovePluginRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"staggered",kind:"scalar",T:8}])}}const hA=new uA;class pA extends S.MessageType{constructor(){super("socket.plugin.EnablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const gA=new pA;class mA extends S.MessageType{constructor(){super("socket.plugin.DisablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const fA=new mA;class TA extends S.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 vA=new TA;class SA extends S.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 yA=new SA;class EA extends S.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 PA=new EA;class _A extends S.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 CA=new _A;class wA extends S.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 Ch=new wA;class RA extends S.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:()=>Ch}])}}const zp=new RA;class bA extends S.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:()=>Ch}])}}const kA=new bA;class IA extends S.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:()=>Ch}])}}const AA=new IA;class MA extends S.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 DA=new MA;class OA extends S.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 wu=new OA;class NA extends S.MessageType{constructor(){super("socket.plugin.EnablePluginsResponse",[{no:1,name:"plugins",kind:"message",repeat:1,T:()=>wu}])}}const VA=new NA;class LA extends S.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 Yp=new LA;class xA extends S.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 UA=new xA;class $A extends S.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:()=>UA}])}}const Qp=new $A;class FA extends S.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 Xp=new FA;class BA extends S.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 Zp=new BA;class HA extends S.MessageType{constructor(){super("socket.livestreaming.GetStagePeersResponse",[{no:1,name:"stage_peers",kind:"scalar",repeat:2,T:9}])}}const eg=new HA;class qA extends S.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 jA=new qA;class GA extends S.MessageType{constructor(){super("socket.livestreaming.GetStageRequestsResponse",[{no:1,name:"stage_requests",kind:"message",repeat:1,T:()=>jA}])}}const iu=new GA;class WA extends S.MessageType{constructor(){super("socket.livestreaming.GrantStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const JA=new WA;class KA extends S.MessageType{constructor(){super("socket.livestreaming.DenyStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const zA=new KA;class YA extends S.MessageType{constructor(){super("socket.livestreaming.LeaveStageRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const tg=new YA;class QA extends S.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:()=>ZA},{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 Tf=new QA;class XA extends S.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:()=>tM}])}}const ZA=new XA;class eM extends S.MessageType{constructor(){super("socket.polls.PollVote",[{no:1,name:"user_id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9}])}}const tM=new eM;class sM extends S.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 rM=new sM;class iM extends S.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 nM=new iM;class aM extends S.MessageType{constructor(){super("socket.polls.UpdatePollResponse",[{no:1,name:"poll",kind:"message",T:()=>Tf}])}}const nu=new aM;class oM extends S.MessageType{constructor(){super("socket.polls.GetPollsResponse",[{no:1,name:"polls",kind:"message",repeat:1,T:()=>Tf}])}}const cM=new oM;class dM extends S.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",en]}])}}const sg=new dM;class lM extends S.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=S.PbLong.from(Math.floor(e/1e3)).toBigInt(),t.nanos=e%1e3*1e6,t}toDate(t){return new Date(S.PbLong.from(t.seconds).toNumber()*1e3+Math.ceil(t.nanos/1e6))}fromDate(t){const e=this.create(),r=t.getTime();return e.seconds=S.PbLong.from(Math.floor(r/1e3)).toBigInt(),e.nanos=r%1e3*1e6,e}internalJsonWrite(t,e){let r=S.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 "+S.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=S.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 lM;class uM extends S.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 Ru=new uM;class hM extends S.MessageType{constructor(){super("common.BulkedHubMessage",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>Ru}])}}new hM;class pM extends S.MessageType{constructor(){super("common.CFWorkersResponse",[{no:1,name:"responses",kind:"message",repeat:1,T:()=>Ru},{no:2,name:"broadcast_responses",kind:"message",repeat:1,T:()=>Ru}])}}new pM;const gM=0,mM=1,fM=2,TM=3,vM=5,SM={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},yM={getMessages:0,sendMessageToRoom:1,sendMessageToPeers:2,editMessage:3,deleteMessage:4,getPaginatedMessages:5,searchChannelMessages:7,pinMessage:10},EM={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},PM={createPoll:0,getPolls:1,votePoll:2,updatePoll:3},vf={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},_M={getUserPresets:0,updateUserPreset:1};function Oc(s,t){return Object.keys(t).reduce((e,r)=>(e[r]=(s<<16)+t[r],e),{})}function Sf(s,t){return Object.keys(s).reduce((e,r)=>(e[r]=t|s[r],e),{})}const U=Oc(gM,SM),$e=Oc(mM,yM),J=Oc(fM,EM),Hs=Oc(TM,PM),Ir=Sf(vf,16777216),Ps=Sf(vf,50331648),rd=Oc(vM,_M);var CM=Object.defineProperty,wM=Object.getOwnPropertyDescriptor,ei=(s,t,e,r)=>{for(var i=r>1?void 0:r?wM(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&&CM(t,e,i),i},rs=(s=>(s[s.TEXT=0]="TEXT",s[s.IMAGE=1]="IMAGE",s[s.FILE=2]="FILE",s[s.CUSTOM=3]="CUSTOM",s))(rs||{}),Mt,Mn;class yr{constructor(t,e){m(this,Mt,void 0);m(this,Mn,void 0);T(this,Mt,e),T(this,Mn,t)}get telemetry(){return n(this,Mn).getValue("telemetry")}get logger(){return n(this,Mn).getValue("logger")}getChatMessages(){return n(this,Mt).sendMessagePromise($e.getMessages)}getChatMessagesPaginated(t,e,r,i){return u(this,null,function*(){const a=O({timeStamp:t,size:e,from:0,reversed:r},i&&{filters:{filters:i}}),o=yield n(this,Mt).sendMessagePromise($e.getPaginatedMessages,RI.toBinary(a));return o.payload?kI.fromBinary(o.payload):{messages:[],next:!1}})}sendMessageToRoom(t,e){const r={payloadType:e,payload:t};n(this,Mt).sendMessage($e.sendMessageToRoom,MI.toBinary(r))}sendMessageToPeers(t,e,r){const i={payloadType:e,peerIds:r,payload:t};n(this,Mt).sendMessage($e.sendMessageToPeers,NI.toBinary(i))}sendMessage(t,e,r){if(r&&r.length>0){this.sendMessageToPeers(t,e,r);return}this.sendMessageToRoom(t,e)}editMessage(t,e,r,i){return u(this,null,function*(){const a={chatId:t,payloadType:r,payload:e};i!==void 0&&(a.pinned=i);const o=yield n(this,Mt).sendMessagePromise($e.editMessage,$I.toBinary(a));return Jc.fromBinary(o.payload).message})}deleteMessage(t){return u(this,null,function*(){const e={chatId:t},r=yield n(this,Mt).sendMessagePromise($e.deleteMessage,GI.toBinary(e));return{id:Kc.fromBinary(r.payload).chatId}})}searchMessages(t,e){return u(this,null,function*(){var i,a,o,c;const r={searchTerm:t,timeStamp:(i=e.timestamp)!=null?i:Date.now(),size:(a=e.limit)!=null?a:75,from:(o=e.offset)!=null?o:0,reversed:(c=e.reversed)!=null?c:!0};try{const d=yield n(this,Mt).sendMessagePromise($e.searchChannelMessages,KI.toBinary(r));return ff.fromBinary(d.payload).messages}catch(d){return[]}})}setPinState(t,e){return u(this,null,function*(){const r={chatId:t,pinned:e},i=yield n(this,Mt).sendMessagePromise($e.pinMessage,BI.toBinary(r));return Wc.fromBinary(i.payload)})}on(t,e){let r,i;switch(t){case $e.sendMessageToRoom:{r=su.fromBinary.bind(su),i=su.create();break}case $e.sendMessageToPeers:{r=ru.fromBinary.bind(ru),i=ru.create();break}case $e.editMessage:{r=Jc.fromBinary.bind(Jc),i=Jc.create();break}case $e.pinMessage:{r=Wc.fromBinary.bind(Wc),i=Wc.create();break}case $e.deleteMessage:{r=Kc.fromBinary.bind(Kc),i=Kc.create();break}}if(!r){this.logger.warn(`ChatSocketHandler::Event ${t} is not recognized`);return}n(this,Mt).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)})}}Mt=new WeakMap,Mn=new WeakMap;ei([P.trace("SocketService.getChatMessages")],yr.prototype,"getChatMessages",1);ei([P.trace("SocketService.getChatMessagesPaginated")],yr.prototype,"getChatMessagesPaginated",1);ei([P.trace("SocketService.sendMessageToRoom")],yr.prototype,"sendMessageToRoom",1);ei([P.trace("SocketService.sendMessageToPeers")],yr.prototype,"sendMessageToPeers",1);ei([P.trace("SocketService.sendMessage")],yr.prototype,"sendMessage",1);ei([P.trace("SocketService.editMessage")],yr.prototype,"editMessage",1);ei([P.trace("SocketService.deleteMessage")],yr.prototype,"deleteMessage",1);ei([P.trace("SocketService.searchMessages")],yr.prototype,"searchMessages",1);function RM(s){return s.replace(/([-_]\w)/g,t=>t[1].toUpperCase())}function _s(s){if(!s||typeof s!="object")return s;if(Array.isArray(s))return s.map(e=>_s(e));const t={};return Object.keys(s).forEach(e=>{const r=gr.validate(e)?e:RM(e);t[r]=_s(s[e])}),t}function bM(s){return s.replace(/[A-Z]/g,t=>`_${t.toLowerCase()}`)}function yf(s){if(!s||typeof s!="object")return s;if(Array.isArray(s))return s.map(e=>yf(e));const t={};return Object.keys(s).forEach(e=>{const r=gr.validate(e)?e:bM(e);t[r]=s[e]}),t}function yd(s,t={}){return s==null?{}:(Object.getOwnPropertyNames(s).forEach(e=>{if(typeof s[e]!="function"){if(typeof s[e]=="object"){yd(s[e],t[e]={});return}t[e]=s[e]}}),t)}class rg{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=O(O({},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 f=new AbortController,v=setTimeout(()=>f.abort(),d);c.signal=f.signal;const E=yield fetch(r,c);clearTimeout(v);let _=null;const C=E.headers.get("content-type");C&&C.includes("application/json")?_=yield E.json():_=yield E.text();const A={};E.headers.forEach(($,x)=>{A[x]=$});const M={data:_,status:E.status,statusText:E.statusText,headers:A,config:t};if(!E.ok)throw M;return M}catch(f){if(f instanceof Error&&l>0)return yield new Promise(v=>setTimeout(v,p)),this.defaults.baseURL===ui.apiBase.prod?this.defaults.baseURL=ui.apiBase.prodAlternate:this.defaults.baseURL===ui.apiBase.prodAlternate&&(this.defaults.baseURL=ui.apiBase.prod),this.request(G(O({},t),{retry:l-1}));throw f}})}get(r){return u(this,arguments,function*(t,e={}){return this.request(G(O({},e),{method:"GET",url:t}))})}post(i,a){return u(this,arguments,function*(t,e,r={}){return this.request(G(O({},r),{method:"POST",url:t,data:e}))})}put(i,a){return u(this,arguments,function*(t,e,r={}){return this.request(G(O({},r),{method:"PUT",url:t,data:e}))})}}const kM=3,IM=30,AM=8e3;class MM{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=AM,retry:i=kM,retryDelay:a=IM,baseURL:o=ui.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 rg({baseURL:o,timeout:r,retry:i,retryDelay:a,responseType:"json"}),this.fetchClient=new rg({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 f,v,E,_,C;const g=t.getValue("telemetry");try{g.injectContext(this.requests.defaults.headers.common);const A=yield l(p);return p.url!==g.logsEndpoint&&this.logger.debug("xhr::fetch",{networkCall:{status:A.status,statusText:A.statusText,baseURL:p.baseURL||this.requests.defaults.baseURL,url:p.url,method:p.method}}),A}catch(A){throw A?(((f=A.config)==null?void 0:f.url)!==g.logsEndpoint&&this.logger.error("xhr::fetch",{error:A,networkCall:{status:A.status,statusText:A.statusText,baseURL:((v=A.config)==null?void 0:v.baseURL)||this.requests.defaults.baseURL,url:(E=A.config)==null?void 0:E.url,retries:(_=A.config)==null?void 0:_.retry,method:(C=A.config)==null?void 0:C.method,isOnline:navigator.onLine?"online":"offline"}}),new k(A.message||"Network request failed","0011")):new k("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 DM=Object.defineProperty,OM=Object.getOwnPropertyDescriptor,as=(s,t,e,r)=>{for(var i=r>1?void 0:r?OM(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&&DM(t,e,i),i};class Ht extends MM{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 ah.getIPDetails({peerId:e,apiHostnames:tf(this.context),logger:Jm});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(Z.V1_PLUGINS))==null?void 0:a.toString())==null?void 0:o.split(","))||[],i=e.reduce((f,v)=>(f[r.includes(v.id)?"v1":"v2"].push(G(O({},v),{name:v.name.replace("v2","")})),f),{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(f=>{var E,_,C;const v=G(O({},Xa),{tags:[...Xa.tags],baseUrl:`http://localhost:${f.port}`,name:f.name,picture:(E=f.picture)!=null?E:Xa.picture,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),id:f.id,organizationId:this.organizationId,description:(_=f.description)!=null?_:Xa.description,staggered:(C=f.staggered)!=null?C:Xa.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){return u(this,null,function*(){const r=Aa(this.context,"chat_upload_expiry"),i={roomUUID:this.roomUUID,filename:e,expiry:typeof r=="number"?r:void 0},{get_location:a,put_location:o}=(yield this.requests.post("/v2/meetings/chat-upload",i)).data.data;return{getLocation:a,putLocation:o}})}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=_s(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=_s((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 _s(e)})}startRecording(e,r){return u(this,null,function*(){return(yield this.requests.post("/v2/recordings",G(O({},yf(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 k("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}=_s((yield this.requests.post("v2/internals/rooms",{ip_information:e})).data.data);return{meetingTitle:r}})}}as([P.trace("APIClient.getIPDetails")],Ht.prototype,"getIPDetails",1);as([P.trace("APIClient.getICEServers")],Ht.prototype,"getICEServers",1);as([P.trace("APIClient.getPlugins")],Ht.prototype,"getPlugins",1);as([P.trace("APIClient.startLivestreaming")],Ht.prototype,"startLivestreaming",1);as([P.trace("APIClient.stopLivestreaming")],Ht.prototype,"stopLivestreaming",1);as([P.trace("APIClient.getActiveLivestream")],Ht.prototype,"getActiveLivestream",1);as([P.trace("APIClient.getUserDetails")],Ht.prototype,"getUserDetails",1);as([P.trace("APIClient.startRecording")],Ht.prototype,"startRecording",1);as([P.trace("APIClient.stopRecording")],Ht.prototype,"updateRecording",1);as([P.trace("APIClient.getActiveRecording")],Ht.prototype,"getActiveRecording",1);as([P.trace("APIClient.getActiveTranscript")],Ht.prototype,"getActiveTranscript",1);as([P.trace("APIClient.getRoomNodeData")],Ht.prototype,"getRoomNodeData",1);let bu;function NM(s,t){return bu=new Ht(s,t),bu}function ot(){return bu}const Oa={maxInvocations:5,period:1};function Rt(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 k(`Method rate limit ${p.maxInvocations} invocations/${p.period}sec exceeded`,"0013");return o+=1,a.apply(this,d)},i}}var VM=Object.defineProperty,LM=Object.getOwnPropertyDescriptor,bs=(s,t,e,r)=>{for(var i=r>1?void 0:r?LM(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&&VM(t,e,i),i};const xM=["text","image","file","custom","poll"],id={maxInvocations:180,period:60};var se,pi,Ge,Dn,Ad,Ef,wo,ku,yg;let $t=(yg=class extends Bt{constructor(t,e,r,i){const a=t.getValue("logger");super(a);m(this,Ad);m(this,wo);h(this,"messages");m(this,se,void 0);m(this,pi,void 0);m(this,Ge,void 0);m(this,Dn,void 0);h(this,"maxTextLimit",2e3);T(this,Dn,t),T(this,Ge,e),T(this,se,r),T(this,pi,i),this.messages=[]}get telemetry(){return n(this,Dn).getValue("telemetry")}setMaxTextLimit(t){this.maxTextLimit=t}sendMessageInternal(t,e){return u(this,null,function*(){switch(t.type){case"text":{yield this.sendTextMessageInternal(t.message,e);break}case"image":yield this.sendImageMessageInternal(t.image,e);break;case"file":yield this.sendFileMessageInternal(t.file,e);break;default:this.logger.error("sendMessage::message_type_not_supported",{chat:{messageType:t.type}});break}})}sendTextMessageInternal(t,e){return u(this,null,function*(){var i,a,o,c,d,l;if(t.length>this.maxTextLimit)throw new k("Max character limit breached","0503");if(e&&e.length>0){if(!((i=n(this,se).permissions)!=null&&i.chatPrivate.canSend)||!((a=n(this,se).permissions)!=null&&a.chatPrivate.text))throw this.logger.error("sendTextMessage::private_chat_permission_denied"),new k("Could not send message to private chat.","0501")}else if(!((c=(o=n(this,se).permissions)==null?void 0:o.chatPublic)!=null&&c.canSend)||!((l=(d=n(this,se).permissions)==null?void 0:d.chatPublic)!=null&&l.text))throw this.logger.error("sendTextMessage::public_chat_permission_denied"),new k("Could not send message to public chat.","0501");if(!t)throw this.logger.error("sendTextMessage::message_can_not_be_empty"),new k("Message can not be empty.","0502");let r=[];e&&e.length>0&&(e.push(n(this,se).id),r=n(this,pi).joined.toArray().filter(p=>e.includes(p.id)).map(p=>p.userId),r.push(n(this,se).userId)),n(this,Ge).sendMessage(t,rs.TEXT,e)})}sendImageMessageInternal(t,e){return u(this,null,function*(){var i,a,o,c,d,l;if(e&&e.length>0){if(!((i=n(this,se).permissions)!=null&&i.chatPrivate.canSend)||!((a=n(this,se).permissions)!=null&&a.chatPrivate.files)){this.logger.error("sendImageMessage::private_chat_permission_denied");return}}else if(!((c=(o=n(this,se).permissions)==null?void 0:o.chatPublic)!=null&&c.canSend)||!((l=(d=n(this,se).permissions)==null?void 0:d.chatPublic)!=null&&l.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 p=ot(),{getLocation:g,putLocation:f}=yield p.getPresignedUrls(t.name);yield p.uploadFile(t,f);let v=[];e&&e.length>0&&(e.push(n(this,se).id),v=n(this,pi).joined.toArray().filter(E=>e.includes(E.id)).map(E=>E.userId),v.push(n(this,se).userId)),n(this,Ge).sendMessage(g,rs.IMAGE,e)}catch(p){throw new k("Error sending image message.","0500",this.logger)}})}sendFileMessageInternal(t,e){return u(this,null,function*(){var r,i,a,o,c,d;if(e&&e.length>0){if(!((r=n(this,se).permissions)!=null&&r.chatPrivate.canSend)||!((i=n(this,se).permissions)!=null&&i.chatPrivate.files)){this.logger.error("sendFileMessage::private_chat_permission_denied");return}}else if(!((o=(a=n(this,se).permissions)==null?void 0:a.chatPublic)!=null&&o.canSend)||!((d=(c=n(this,se).permissions)==null?void 0:c.chatPublic)!=null&&d.files)){this.logger.error("sendFileMessage::permission_denied");return}if(!t){this.logger.error("sendFileMessage::required_argument_file_can_not_be_empty");return}try{const l=ot(),{getLocation:p,putLocation:g}=yield l.getPresignedUrls(t.name);yield l.uploadFile(t,g);let f=[];e&&e.length>0&&(e.push(n(this,se).id),f=n(this,pi).joined.toArray().filter(E=>e.includes(E.id)).map(E=>E.userId),f.push(n(this,se).userId));const v=JSON.stringify({link:p,name:t.name,size:"size"in t?t.size:0});n(this,Ge).sendMessage(v,rs.FILE,e)}catch(l){throw new k("Error sending file message.","0500",this.logger)}})}get rateLimits(){return id}updateRateLimits(t,e){id.maxInvocations=t,id.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,f,v,E,_,C,A,M,$;if(e&&e.length>0){if(!((a=n(this,se).permissions)!=null&&a.chatPrivate.canSend)||!((o=n(this,se).permissions)!=null&&o.chatPrivate.files)||!((c=n(this,se).permissions)!=null&&c.chatPrivate.text)){this.logger.error("sendCustomMessage::private_chat_permission_denied");return}}else if(!((l=(d=n(this,se).permissions)==null?void 0:d.chatPublic)!=null&&l.canSend)||!((g=(p=n(this,se).permissions)==null?void 0:p.chatPublic)!=null&&g.files)||!((v=(f=n(this,se).permissions)==null?void 0:f.chatPublic)!=null&&v.text)){this.logger.error("sendCustomMessage::permission_denied");return}const r=x=>u(this,null,function*(){try{if(typeof x=="string")return{link:x};const B=ot(),{getLocation:H,putLocation:re}=yield B.getPresignedUrls(x.name);return yield B.uploadFile(x,re),{link:H,type:x.type,name:x.name,size:x.size}}catch(B){throw new k("Error sending image message.","0500",this.logger)}}),i=G(O({},t),{files:yield Promise.all((_=(E=t.files)!=null?E:[])==null?void 0:_.map(x=>u(this,null,function*(){return r(x)}))),images:yield Promise.all((A=(C=t.images)!=null?C:[])==null?void 0:A.map(x=>u(this,null,function*(){return r(x)}))),videos:yield Promise.all(($=(M=t.videos)!=null?M:[])==null?void 0:$.map(x=>u(this,null,function*(){return r(x)})))});n(this,Ge).sendMessage(JSON.stringify(i),rs.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){return u(this,null,function*(){var r,i,a,o;if(!((i=(r=n(this,se).permissions)==null?void 0:r.chatPublic)!=null&&i.canSend)||!((o=(a=n(this,se).permissions)==null?void 0:a.chatPublic)!=null&&o.text)){this.logger.error("editTextMessage::permission_denied");return}if(!e){this.logger.error("editTextMessage::message_can_not_be_empty");return}n(this,Ge).editMessage(t,e,rs.TEXT)})}editImageMessage(t,e){return u(this,null,function*(){var i,a,o,c;if(!((a=(i=n(this,se).permissions)==null?void 0:i.chatPublic)!=null&&a.canSend)||!((c=(o=n(this,se).permissions)==null?void 0:o.chatPublic)!=null&&c.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 d=ot(),{getLocation:l,putLocation:p}=yield d.getPresignedUrls(e.name);yield d.uploadFile(e,p),n(this,Ge).editMessage(t,l,rs.IMAGE)}catch(d){throw new k("Error editing image message.","0500",this.logger)}})}editFileMessage(t,e){return u(this,null,function*(){var r,i,a,o;if(!((i=(r=n(this,se).permissions)==null?void 0:r.chatPublic)!=null&&i.canSend)||!((o=(a=n(this,se).permissions)==null?void 0:a.chatPublic)!=null&&o.files)){this.logger.error("sendFileMessage::permission_denied");return}if(!e){this.logger.error("sendFileMessage::required_argument_file_can_not_be_empty");return}try{const c=ot(),{getLocation:d,putLocation:l}=yield c.getPresignedUrls(e.name);yield c.uploadFile(e,l),n(this,Ge).editMessage(t,JSON.stringify({link:d,name:e.name,size:"size"in e?e.size:0}),rs.FILE)}catch(c){throw new k("Error editing file message.","0500",this.logger)}})}editMessage(t,e){return u(this,null,function*(){switch(e.type){case"text":{this.editTextMessage(t,e.message);break}case"image":{this.editImageMessage(t,e.image);break}case"file":{this.editFileMessage(t,e.file);break}default:{this.logger.error("editMessage::message_type_not_supported",{chat:{messageType:e.type}});break}}})}deleteMessage(t){return u(this,null,function*(){n(this,Ge).deleteMessage(t)})}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,wo,ku))throw new k("Can`t pin message without joining room","0505");try{yield n(this,Ge).setPinState(t,!0)}catch(e){throw new k(`No message found with id: ${t}`,"0504")}})}unpin(t){return u(this,null,function*(){if(!n(this,wo,ku))throw new k("Can`t unpin message without joining room","0505");try{yield n(this,Ge).setPinState(t,!1)}catch(e){throw new k(`No message found with id: ${t}`,"0504")}})}fetchPublicMessages(i){return u(this,arguments,function*({timestamp:t=new Date().getTime(),limit:e,direction:r="after"}){return(yield n(this,Ge).getChatMessagesPaginated(t,e,r==="before")).messages.map(c=>is.formatSocketPeerMessage(c))})}fetchPrivateMessages(a){return u(this,arguments,function*({timestamp:t=new Date().getTime(),limit:e,direction:r="after",userId:i}){return(yield n(this,Ge).getChatMessagesPaginated(t,e,r==="before",{oneofKind:"userId",userId:i})).messages.map(d=>is.formatSocketPeerMessage(d))})}fetchPinnedMessages(i){return u(this,arguments,function*({timestamp:t=new Date().getTime(),limit:e,direction:r="after"}){return(yield n(this,Ge).getChatMessagesPaginated(t,e,r==="before",{oneofKind:"pinned",pinned:!0})).messages.map(c=>is.formatSocketPeerMessage(c))})}getMessages(t,e,r,i=0){return u(this,null,function*(){const a=yield n(this,Ge).getChatMessagesPaginated(t,e,r);return{messages:a.messages.map(o=>is.formatSocketPeerMessage(o)),next:a.next}})}searchMessages(t,e){return u(this,null,function*(){throw new k("searchMessages is disabled! Please use `fetchPublicMessages` method instead.","0506")})}get pinned(){return this.messages.filter(t=>t.pinned)}},se=new WeakMap,pi=new WeakMap,Ge=new WeakMap,Dn=new WeakMap,Ad=new WeakSet,Ef=function(){return n(this,Dn).getValue("connectionHandler")},wo=new WeakSet,ku=function(){return n(this,Ad,Ef).socketJoined===!0},yg);bs([P.trace("Chat.sendTextMessage"),Rt(id)],$t.prototype,"sendTextMessage",1);bs([P.trace("Chat.sendImageMessage"),Rt({maxInvocations:20,period:60})],$t.prototype,"sendImageMessage",1);bs([P.trace("Chat.sendFileMessage"),Rt({maxInvocations:20,period:60})],$t.prototype,"sendFileMessage",1);bs([P.trace("Chat.sendMessage"),Rt({maxInvocations:180,period:60})],$t.prototype,"sendMessage",1);bs([P.trace("Chat.editTextMessage")],$t.prototype,"editTextMessage",1);bs([P.trace("Chat.editImageMessage")],$t.prototype,"editImageMessage",1);bs([P.trace("Chat.editFileMessage")],$t.prototype,"editFileMessage",1);bs([P.trace("Chat.editMessage")],$t.prototype,"editMessage",1);bs([P.trace("Chat.deleteMessage")],$t.prototype,"deleteMessage",1);bs([P.trace("Chat.searchMessages")],$t.prototype,"searchMessages",1);$t=bs([dt("0500")],$t);var UM=Object.defineProperty,$M=Object.getOwnPropertyDescriptor,FM=(s,t,e,r)=>{for(var i=r>1?void 0:r?$M(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&&UM(t,e,i),i},gi,Eg;const wr=(Eg=class{constructor(s,t,e,r){h(this,"chat");h(this,"chatSocketHandler");h(this,"self");m(this,gi,void 0);T(this,gi,s),this.chatSocketHandler=t,this.chat=new $t(s,t,e,r),this.self=e,this.setupEvents()}get telemetry(){return n(this,gi).getValue("telemetry")}get logger(){return n(this,gi).getValue("logger")}static init(s,t,e,r){return u(this,null,function*(){return new wr(s,t,e,r)})}static formatMessage(s){return G(O({},s),{time:new Date(s.time),type:xM[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,message:"",link:"",name:"",html:"",images:[],videos:[],files:[],size:0,pinned:s.pinned};switch(e.type){case rs.TEXT:{e.message=s.payload;break}case rs.IMAGE:{e.link=s.payload;break}case rs.FILE:{const{link:r,name:i,size:a}=JSON.parse(s.payload);e.link=r,e.name=i,e.size=a;break}case rs.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 wr.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=ff.fromBinary(s.payload).messages;this.chat.messages=t.map(e=>wr.formatSocketPeerMessage(e))})}setupEvents(){n(this,gi).getValue("peerSessionStore").on(R.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){this.getChatMessages()})),this.chatSocketHandler.on($e.sendMessageToRoom,s=>{if(!s.message)return;const t=wr.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($e.sendMessageToPeers,s=>{const t=wr.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($e.editMessage,s=>{if(!s.message)return;const t=wr.formatSocketPeerMessage(s.message),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($e.deleteMessage,s=>{const t=this.chat.messages.findIndex(r=>r.id===s.chatId);let e={id:s.chatId};t!==-1&&([e]=this.chat.messages.splice(t,1)),this.chat.emit("chatUpdate",{action:"delete",message:e,messages:this.chat.messages})}),this.chatSocketHandler.on($e.pinMessage,s=>{const t=this.chat.messages.findIndex(r=>r.id===s.chatId),e=wr.formatSocketPeerMessage(s.message);t!==-1&&(this.chat.messages[t]=e),this.chat.emit("chatUpdate",{action:"edit",message:e,messages:this.chat.messages}),s.pinned?this.chat.emit("pinMessage",{message:e,messages:this.chat.messages}):this.chat.emit("unpinMessage",{message:e,messages:this.chat.messages})})}},gi=new WeakMap,Eg);let is=wr;FM([P.trace("ChatController.setupEvents")],is.prototype,"setupEvents",1);var BM=Object.defineProperty,HM=Object.getOwnPropertyDescriptor,qM=(s,t,e,r)=>{for(var i=r>1?void 0:r?HM(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&&BM(t,e,i),i},Md,Pf,Dd,_f,On,Nn,Ro,Pg;let Iu=(Pg=class extends Bt{constructor(t,e,r){const i=t.getValue("logger");super(i);m(this,Md);m(this,Dd);h(this,"items");m(this,On,void 0);m(this,Nn,void 0);m(this,Ro,void 0);T(this,Ro,t),T(this,On,e),T(this,Nn,r),this.items=[]}create(t,e,r=!1,i=!1){return u(this,null,function*(){if(!n(this,Dd,_f))throw new k("Can't create polls without joining room","0705");if(!n(this,On).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,Nn).createPoll(t,e,r,i)})}vote(t,e){return u(this,null,function*(){if(!n(this,On).permissions.polls.canVote){this.logger.error("Polls::vote::permission_denied");return}yield n(this,Nn).votePoll(t,e)})}},Md=new WeakSet,Pf=function(){return n(this,Ro).getValue("connectionHandler")},Dd=new WeakSet,_f=function(){var t;return((t=n(this,Md,Pf))==null?void 0:t.socketJoined)===!0},On=new WeakMap,Nn=new WeakMap,Ro=new WeakMap,Pg);Iu=qM([dt("0700")],Iu);var jM=Object.defineProperty,GM=Object.getOwnPropertyDescriptor,WM=(s,t,e,r)=>{for(var i=r>1?void 0:r?GM(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&&jM(t,e,i),i},Ar,Vn,mi,_g;const pn=(_g=class{constructor(s,t,e){h(this,"polls");m(this,Ar,void 0);m(this,Vn,void 0);m(this,mi,void 0);this.polls=new Iu(s,t,e),T(this,Vn,t),T(this,Ar,s),T(this,mi,e),this.setupEvents()}get telemetry(){return n(this,Ar).getValue("telemetry")}get logger(){return n(this,Ar).getValue("logger")}static init(s,t,e){return u(this,null,function*(){return new pn(s,t,e)})}canViewPolls(){return n(this,Vn).permissions.polls.canView}setupEvents(){const s={[Hs.createPoll]:r=>{r.poll&&this.updatePoll(pn.formatSocketServicePoll(r.poll))},[Hs.updatePoll]:r=>{r.poll&&this.updatePoll(pn.formatSocketServicePoll(r.poll))},[Hs.votePoll]:r=>{r.poll&&this.updatePoll(pn.formatSocketServicePoll(r.poll))}},t=()=>{n(this,Ar).getValue("peerSessionStore").on(R.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(s).map(Number).forEach(r=>{n(this,mi).on(r,s[r])})},e=()=>{n(this,Ar).getValue("peerSessionStore").on(R.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(s).map(Number).forEach(r=>{n(this,mi).removeListeners(r)})};n(this,Vn).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,mi).getPolls();if(!(s!=null&&s.payload))return;const{polls:t}=cM.fromBinary(s.payload);this.polls.items=t.map(e=>pn.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}}},Ar=new WeakMap,Vn=new WeakMap,mi=new WeakMap,_g);let Cf=pn;WM([P.trace("PollController.setupEvents")],Cf.prototype,"setupEvents",1);var JM=Object.defineProperty,KM=Object.getOwnPropertyDescriptor,zM=(s,t,e,r)=>{for(var i=r>1?void 0:r?KM(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&&JM(t,e,i),i},wf=(s=>(s[s.User=0]="User",s[s.Meeting=1]="Meeting",s))(wf||{}),Ln,bo,Mu,fi,ko,Cg;let Au=(Cg=class extends Bt{constructor(t,e,r,i,a){const o=t.getValue("logger");super(o);m(this,bo);h(this,"selfActiveTab");h(this,"broadcastTabChanges");m(this,Ln,void 0);m(this,fi,void 0);m(this,ko,void 0);h(this,"viewType");h(this,"meetingStartedTimestamp");h(this,"meetingTitle");h(this,"sessionId");T(this,Ln,t),T(this,fi,e),this.viewType=r,T(this,ko,i),this.meetingTitle=a,this.broadcastTabChanges=e.permissions.canSpotlight}get socketState(){return n(this,bo,Mu).socketState}get mediaState(){return n(this,bo,Mu).mediaState}get meetingId(){return n(this,Ln).getValue("meetingId")}setBroadcastTabChanges(t){if(!n(this,fi).permissions.canSpotlight)throw this.logger.error("Spotlight::setSpotlighted::permission_denied"),new k("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,fi).permissions)!=null&&r.canSpotlight&&this.broadcastTabChanges&&e===0&&this.assertActiveTabToRoom()}assertActiveTabToRoom(){n(this,ko).broadcastMessage("spotlight",{userId:n(this,fi).userId,currentTab:this.selfActiveTab})}},Ln=new WeakMap,bo=new WeakSet,Mu=function(){return n(this,Ln).getValue("connectionHandler")},fi=new WeakMap,ko=new WeakMap,Cg);Au=zM([dt("0800")],Au);function YM(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===`
|
|
6
6
|
`&&o?(t==="\r"&&(e[i]=e[i].slice(0,-1)),e=r[++a]=[c=""],i=0):e[i]+=c,t=c;return r}var QM=Object.defineProperty,XM=Object.getOwnPropertyDescriptor,Rf=(s,t,e,r)=>{for(var i=r>1?void 0:r?XM(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&&QM(t,e,i),i},Io,wg;let Qr=(wg=class extends Bt{constructor(t){const e=t.getValue("logger");super(e);h(this,"transcripts");m(this,Io,void 0);T(this,Io,t),this.transcripts=[]}get telemetry(){return n(this,Io).getValue("telemetry")}static init(t,e){return u(this,null,function*(){const r=new Qr(t),i=t.getValue("logger");try{e&&r.getActiveTranscript()}catch(a){i.error("Error fetching active transcriptions ",a)}return r})}static parseTranscript(t,e=!1){if(!t)return;const[[r,i,a,o,c,d]]=YM(t);return{id:gr.v4(),name:c,peerId:i,userId:a,customParticipantId:o,transcript:d,isPartialTranscript:e,date:new Date(parseInt(r,10)*1e3)}}static parseTranscripts(t){return t?t.split(`
|
|
7
7
|
`).map(e=>Qr.parseTranscript(e,!1)).filter(Boolean):[]}getActiveTranscript(){return u(this,null,function*(){try{const t=ot(),{transcript:e}=yield t.getActiveTranscript();this.transcripts=Qr.parseTranscripts(e)}catch(t){}})}onTranscript(t){return u(this,null,function*(){var r;const e=this.transcripts.filter(({peerId:i})=>i===t.peerId);if((r=e==null?void 0:e.at(-1))!=null&&r.isPartialTranscript){const i=e.at(-1);i.transcript=t.transcript,i.isPartialTranscript=t.isPartialTranscript,this.emit("transcript",i);return}this.transcripts=[...this.transcripts,t],this.emit("transcript",t)})}},Io=new WeakMap,wg);Rf([P.trace("Ai.getActiveTranscript")],Qr.prototype,"getActiveTranscript",1);Qr=Rf([dt("0000")],Qr);var ZM=Object.defineProperty,e0=Object.getOwnPropertyDescriptor,t0=(s,t,e,r)=>{for(var i=r>1?void 0:r?e0(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&&ZM(t,e,i),i},Mr,xn,Dt,Rg;const bf=(Rg=class{constructor(s,t,e,r,i,a){h(this,"meta");h(this,"ai");m(this,Mr,void 0);m(this,xn,void 0);h(this,"aiSocketHandler");m(this,Dt,void 0);T(this,Dt,s),this.meta=new Au(s,t,t.config.viewType,e,a),this.ai=r,T(this,Mr,t),T(this,xn,e),this.aiSocketHandler=i,this.setupEvents()}get telemetry(){return n(this,Dt).getValue("telemetry")}get logger(){return n(this,Dt).getValue("logger")}static init(s,t,e,r,i){return u(this,null,function*(){const a=yield Qr.init(s,t.permissions.transcriptionEnabled);return new bf(s,t,e,a,r,i)})}conditionallySetActiveTab(s){var t;s!=null&&s.currentTab&&((t=this.meta.selfActiveTab)==null?void 0:t.id)!==s.currentTab.id&&(this.meta.setSelfActiveTab(s.currentTab,wf.Meeting),this.meta.emit("activeTabUpdate",s.currentTab))}setupEvents(){n(this,Dt).getValue("peerSessionStore").on(R.TRANSPORT_STATE_UPDATE,s=>{this.meta.emit("mediaConnectionUpdate",s)}),n(this,Dt).getValue("peerSessionStore").on(R.SOCKET_STATE_UPDATE,s=>{this.meta.emit("socketConnectionUpdate",s)}),n(this,Dt).getValue("peerSessionStore").on(R.ROOM_STATE,({createdAt:s,roomUuid:t})=>{const e=this.meta.meetingStartedTimestamp;if(t&&(this.meta.sessionId=t),s&&!e){const r=new Date(s*1e3);this.meta.meetingStartedTimestamp=r,this.meta.emit("meetingStartTimeUpdate",{meetingStartedTimestamp:this.meta.meetingStartedTimestamp})}}),n(this,Dt).getValue("peerSessionStore").on(R.PRODUCER_SCORE_UPDATE,({score:s})=>{s<5&&this.meta.emit("poorConnection",{score:s})}),n(this,Mr).permissions.canSpotlight&&(this.logger.info("MetaController::Asserting Spotlight"),this.meta.selfActiveTab&&n(this,xn).broadcastMessage("spotlight",{userId:n(this,Mr).userId,currentTab:this.meta.selfActiveTab})),n(this,Dt).getValue("peerSessionStore").on(R.PEER_JOINED_INTERNAL,s=>u(this,null,function*(){n(this,Mr).permissions.canSpotlight&&this.meta.selfActiveTab&&n(this,xn).broadcastToPeers("spotlight",[s.id],{userId:n(this,Mr).userId,currentTab:this.meta.selfActiveTab})})),n(this,Dt).getValue("peerSessionStore").on(R.ROOM_MESSAGE,s=>{var e,r;let t;if("type"in s){if(s.type!=="spotlight")return;t=O(O({},s),s.payload)}else if("roomMessageType"in s){if(s.roomMessageType!=="spotlight")return;t=s}else return;this.logger.info("Spotlight Assertion Received",{spotlight:{spotlighter:{id:t.userId},currentTab:{id:(e=t.currentTab)==null?void 0:e.id,type:(r=t.currentTab)==null?void 0:r.type}}}),this.conditionallySetActiveTab(t)}),n(this,Dt).getValue("peerSessionStore").on(R.MESSAGE,s=>{var e,r;let t;if("type"in s){if(s.type!=="spotlight")return;t=O(O({},s),s.payload)}else if("roomMessageType"in s){if(s.roomMessageType!=="spotlight")return;t=s}else return;this.logger.info("Spotlight Assertion Received",{spotlight:{spotlighter:{id:t.userId},currentTab:{id:(e=t.currentTab)==null?void 0:e.id,type:(r=t.currentTab)==null?void 0:r.type}}}),this.conditionallySetActiveTab(t)}),this.aiSocketHandler.on(U.transcript,s=>{const{meetingId:t,transcript:e,isPartial:r}=s;let i;try{i=Qr.parseTranscript(e,r)}catch(d){this.logger.error(`Failed to parse transcript: ${e}`,d)}if(!i){this.logger.warn("Received empty transcript data");return}this.ai.onTranscript(i),this.meta.emit("transcript",i);const{peerId:a,name:o,transcript:c}=i;this.logger.debug(`${t} Received transcript for peer ${a} - ${o}: ${c}`)})}},Mr=new WeakMap,xn=new WeakMap,Dt=new WeakMap,Rg);let kf=bf;t0([P.trace("MetaController.setupEvents")],kf.prototype,"setupEvents",1);const eo={},Er={executeWithLock({methodName:s,lockName:t,timeout:e}){return(r,i,a)=>{const o=a.value;return a.value=function(...d){var E,_;const l=(_=(this==null?void 0:this.peerId)||((E=d[0])==null?void 0:E.authToken))!=null?_:"",p=`${t}-${l}`,g=this==null?void 0:this.logger;if(eo[p]){const C=new Error(`Unsupported concurrent calls on method: ${s}.`);throw C.name="UnsupportedConcurrentMethodExecution",g==null||g.error("Locker::UnsupportedConcurrentMethodExecution",{error:{stack:C.stack},locker:{methodName:s,lockName:p}}),C}eo[p]=!0;const f=setTimeout(()=>delete eo[p],e),v=o.apply(this,d);return Promise.resolve(v).then(()=>{delete eo[p],clearTimeout(f)}).catch(()=>{delete eo[p],clearTimeout(f)}),v},a}}};var s0=Object.defineProperty,r0=Object.getOwnPropertyDescriptor,cn=(s,t,e,r)=>{for(var i=r>1?void 0:r?r0(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&&s0(t,e,i),i},Kt,Od,ie,Ao,Is,We,Mo,Du,Un,nd;class ti extends Bt{constructor(e,r,i,a,o){const c=e.getValue("logger");super(c);m(this,Mo);m(this,Un);m(this,Kt,void 0);m(this,Od,void 0);m(this,ie,void 0);m(this,Ao,void 0);m(this,Is,void 0);m(this,We,void 0);T(this,We,e),T(this,Kt,a),T(this,Od,o),T(this,ie,r),T(this,Ao,i),T(this,Is,[]),this.setupEvents()}get telemetry(){return n(this,We).getValue("telemetry")}get status(){return n(this,We).getValue("stageStatus")}setupEvents(){const e={[R.GET_STAGE_REQUESTS]:a=>u(this,null,function*(){T(this,Is,a)}),[R.UPDATE_STAGE_REQUESTS]:o=>u(this,[o],function*({add:a}){const c=n(this,Is).length,{stageRequests:d}=this.getAccessRequests();(a||d.length>c)&&this.emit("newStageRequest",{count:d.length}),this.emit("stageAccessRequestUpdate",d)})},r=()=>{Object.entries(e).forEach(([a,o])=>{n(this,We).getValue("peerSessionStore").onAsync(a,o)})},i=()=>{Object.entries(e).forEach(([a,o])=>{n(this,We).getValue("peerSessionStore").removeListener(a,o)})};n(this,ie).permissions.on("permissionsUpdate",a=>{const{canAcceptProductionRequests:o}=a;o!==void 0&&(n(this,ie).permissions.acceptStageRequests?(r(),n(this,Kt).getStageRequests()):(i(),T(this,Is,[]),this.emit("stageAccessRequestUpdate",n(this,Is))))}),n(this,ie).permissions.acceptStageRequests&&r()}getAccessRequests(){if(!n(this,ie).permissions.stageEnabled)throw this.logger.error("Stage::stage_disabled"),new k("Stage is disabled","2003");if(!n(this,ie).permissions.acceptStageRequests)throw this.logger.error("Stage::get_access_request::permission_denied"),new k("You do not have permission to perform this action","2001");const e=n(this,Ao).joined.toArray().filter(r=>r.stageStatus==="REQUESTED_TO_JOIN_STAGE").map(r=>({displayName:r.name,userId:r.userId,peerId:r.id}));return T(this,Is,e),{stageRequests:n(this,Is)}}requestAccess(){return u(this,null,function*(){if(!n(this,ie).permissions.stageEnabled)throw this.logger.error("Stage::stage_disabled"),new k("Stage is disabled","2003");if(this.status!=="OFF_STAGE")throw new k(`Unable to request access you are currently ${this.status}`,"2006");if(n(this,ie).permissions.stageAccess===q.Allowed){L(this,Un,nd).call(this,"ACCEPTED_TO_JOIN_STAGE");return}n(this,Kt).requestAccess(),L(this,Un,nd).call(this,"REQUESTED_TO_JOIN_STAGE")})}cancelRequestAccess(){return u(this,null,function*(){if(!n(this,ie).permissions.stageEnabled)throw this.logger.error("Stage::stage_disabled"),new k("Stage is disabled","2003");n(this,Kt).cancelRequestAccess(),L(this,Un,nd).call(this,"OFF_STAGE")})}grantAccess(e){if(!n(this,ie).roomJoined)throw new k("Can`t grant for participant without joining room");if(!n(this,ie).permissions.stageEnabled)throw this.logger.error("Stage::stage_disabled"),new k("Stage is disabled","2003");if(!n(this,ie).permissions.acceptStageRequests)throw this.logger.error("Stage::grant_access::permission_denied"),new k("You do not have permission to perform this action","2001");return n(this,Kt).grantAccess(e)}denyAccess(e){if(!n(this,ie).roomJoined)throw new k("Can`t rejectRequestToJoinStage for participant without joining room","2005");if(!n(this,ie).permissions.stageEnabled)throw this.logger.error("Stage::stage_disabled"),new k("Stage is disabled","2003");if(!n(this,ie).permissions.acceptStageRequests)throw this.logger.error("Stage::deny_access::permission_denied"),new k("You do not have permission to perform this action","2001");return n(this,Kt).denyAccess(e)}get peerId(){return n(this,We).getValue("peerId")}join(){return u(this,null,function*(){const e=n(this,We).getValue("viewType");if(this.status==="ON_STAGE")throw new k("You are already on stage.","2006");if(this.status!=="ACCEPTED_TO_JOIN_STAGE"||n(this,ie).permissions.stageAccess===q.NotAllowed)throw new k(`Unable to join stage you are currently ${this.status}`,"2006");if(n(this,We).setValue("stageStatus","ON_STAGE",!1),yield n(this,Kt).joinStage(),e===pr.Livestream){yield n(this,We).getValue("selfController").joinRoom();return}n(this,We).notify("stageStatus"),n(this,ie).audioEnabled&&n(this,Mo,Du).shareMic(n(this,ie).audioTrack),n(this,ie).videoEnabled&&n(this,Mo,Du).shareWebcam(n(this,ie).videoTrack)})}leave(){return u(this,null,function*(){if(!n(this,ie).permissions.stageEnabled)throw this.logger.error("Stage::stage_disabled"),new k("Stage is disabled","2003");if(!(this.status==="ON_STAGE"||this.status==="ACCEPTED_TO_JOIN_STAGE"))throw new k(`Unable to leave stage you are currently ${this.status}`,"2006");n(this,ie).setIsPinned(!1),n(this,We).setValue("stageStatus","OFF_STAGE",!1),yield n(this,Kt).leaveStage(n(this,ie).userId);try{yield n(this,We).getValue("peerSessionStore").emitAsync(R.LEAVE_MEDIA_ROOM,"stageLeft")}catch(e){this.logger.error("Stage::leave::emitAsync::failed",{error:e})}n(this,We).notify("stageStatus")})}kick(e){return u(this,null,function*(){if(!n(this,ie).roomJoined)throw new k("Can`t kick participant without joining room","2005");if(!n(this,ie).permissions.stageEnabled)throw this.logger.error("Stage::stage_disabled"),new k("Stage is disabled","2003");if(!n(this,ie).permissions.acceptStageRequests)throw this.logger.error("Stage::kick::permission_denied"),new k("You do not have permissions for kick","2001");return n(this,Kt).kick(e)})}}Kt=new WeakMap,Od=new WeakMap,ie=new WeakMap,Ao=new WeakMap,Is=new WeakMap,We=new WeakMap,Mo=new WeakSet,Du=function(){return n(this,We).getValue("roomNodeClient")},Un=new WeakSet,nd=function(e){return u(this,null,function*(){this.status!==e&&n(this,We).setValue("stageStatus",e)})};cn([P.trace("Stage.getStageRequests")],ti.prototype,"getAccessRequests",1);cn([P.trace("Stage.requestAccess")],ti.prototype,"requestAccess",1);cn([P.trace("Stage.cancelRequestAccess")],ti.prototype,"cancelRequestAccess",1);cn([P.trace("Stage.grantAccess")],ti.prototype,"grantAccess",1);cn([P.trace("Stage.denyAccess")],ti.prototype,"denyAccess",1);cn([Er.executeWithLock({methodName:"joinStage",lockName:"Stage.join",timeout:5e3}),P.trace("Stage.joinStage")],ti.prototype,"join",1);cn([P.trace("Stage.leaveStage")],ti.prototype,"leave",1);function i0(s){return!(s.viewType==="LIVESTREAM"||s.viewType==="CHAT")}function wh(s){switch(s){case dr.UNSPECIFIED:return"OFF_STAGE";case dr.REQUESTED_STAGE:return"REQUESTED_TO_JOIN_STAGE";case dr.APPROVED_STAGE:return"ACCEPTED_TO_JOIN_STAGE";case dr.OFF_STAGE:return"OFF_STAGE";case dr.ON_STAGE:return"ON_STAGE";default:return"OFF_STAGE"}}var n0=Object.defineProperty,a0=Object.getOwnPropertyDescriptor,o0=(s,t,e,r)=>{for(var i=r>1?void 0:r?a0(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&&n0(t,e,i),i},Dr,hs,Or,Do,ht;class If{constructor(t,e,r,i,a){h(this,"stage");m(this,Dr,void 0);m(this,hs,void 0);m(this,Or,void 0);m(this,Do,0);m(this,ht,void 0);T(this,ht,t),this.stage=new ti(t,i,a,e,r),T(this,Or,e),T(this,Dr,i),T(this,hs,a),this.setupEvents()}get telemetry(){return n(this,ht).getValue("telemetry")}get logger(){return n(this,ht).getValue("logger")}setupEvents(){n(this,ht).subscribe("stageStatus",t=>{this.stage.emit("stageStatusUpdate",t)}),n(this,Or).on(U.grantStageAccess,()=>{n(this,Dr).permissions.stageAccess!==q.Allowed&&(this.stage.emit("stageRequestApproved"),this.setStageStatus("ACCEPTED_TO_JOIN_STAGE"))}),n(this,Or).on(U.peerStageStatusUpdate,t=>{t!==void 0&&(t.peerId===n(this,Dr).id?this.selfStageStatusHandler(t):this.peerStageStatusHandler(t))}),n(this,Or).on(U.denyStageAccess,()=>{n(this,Dr).permissions.stageAccess!==q.Allowed&&(this.stage.emit("stageRequestRejected"),this.setStageStatus("OFF_STAGE"))}),n(this,Or).on(U.getStageRequests,t=>u(this,null,function*(){var r;if(n(this,Dr).permissions.stageAccess!==q.Allowed)return;const e=(r=t==null?void 0:t.stageRequests)!=null?r:[];yield n(this,ht).getValue("peerSessionStore").emitAsync(R.GET_STAGE_REQUESTS,e),n(this,Do)<e.length&&e.length>0&&this.stage.emit("newStageRequest",{count:e.length}),T(this,Do,e.length),this.stage.emit("stageAccessRequestUpdate",e)}))}getCurrentStageRequests(){return n(this,hs).joined.toArray().filter(e=>e.stageStatus==="REQUESTED_TO_JOIN_STAGE").map(e=>({displayName:e.name,userId:e.userId,peerId:e.id}))}setStageStatus(t){return u(this,null,function*(){this.stage.status!==t&&n(this,ht).setValue("stageStatus",t)})}selfStageStatusHandler(t){const e=wh(t.stageType),r=n(this,ht).getValue("stageStatus");if(r!==e)switch(t.stageType){case 1:n(this,ht).setValue("stageStatus","ACCEPTED_TO_JOIN_STAGE",!1),this.stage.join();break;case 2:case 3:this.setStageStatus(r);break;case 0:case 4:default:n(this,ht).setValue("stageStatus","ACCEPTED_TO_JOIN_STAGE",!1),this.stage.leave();break}}peerStageStatusHandler(t){return u(this,null,function*(){const e=n(this,hs).joined.get(t.peerId),r=n(this,hs).viewMode==="ACTIVE_GRID";if(!e){this.logger.warn("err::peerStageStatusUpdate: participant not found");return}switch(t.stageType){case 1:e.setStageStatus("ON_STAGE"),r&&n(this,ht).getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:n(this,hs).viewMode,page:n(this,hs).currentPage});break;case 2:e.setStageStatus("ACCEPTED_TO_JOIN_STAGE");break;case 3:e.setStageStatus("REQUESTED_TO_JOIN_STAGE");break;case 0:case 4:default:e.setStageStatus("OFF_STAGE"),r&&n(this,ht).getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:n(this,hs).viewMode,page:n(this,hs).currentPage});break}n(this,ht).getValue("peerSessionStore").emit(R.UPDATE_PEER_STAGE_STATUS,{id:e.id,status:e.stageStatus})})}}Dr=new WeakMap,hs=new WeakMap,Or=new WeakMap,Do=new WeakMap,ht=new WeakMap;o0([P.trace("Stage.setupEvents")],If.prototype,"setupEvents",1);var c0=Object.defineProperty,d0=Object.getOwnPropertyDescriptor,Vl=(s,t,e,r)=>{for(var i=r>1?void 0:r?d0(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&&c0(t,e,i),i};const ke={getPeer:14,getPeers:15,chatMessage:16,getRoomName:17,getDisplayTitle:18,getPluginInitiator:19,customPluginEventToParent:20,peerJoined:22,peerLeft:23,sendData:24,stageStatusUpdate:25,peerStageStatusUpdate:26};var st,Ot,$n,Fn,Js,Bn,Nr,Hn,bg;let Ma=(bg=class extends Da{constructor(t,{baseURL:e,createdAt:r,description:i,id:a,name:o,organizationId:c,picture:d,private:l,published:p,staggered:g,tags:f,type:v,updatedAt:E},_,C,A,M,$){const x=t.getValue("logger");super(x);m(this,st,void 0);h(this,"baseURL");h(this,"createdAt");h(this,"description");h(this,"id");h(this,"name");m(this,Ot,void 0);m(this,$n,void 0);m(this,Fn,void 0);h(this,"organizationId");h(this,"picture");h(this,"private");h(this,"published");h(this,"staggered");h(this,"tags");h(this,"type");h(this,"updatedAt");m(this,Js,void 0);h(this,"config");m(this,Bn,void 0);h(this,"active");h(this,"iframes");h(this,"enabledBy");m(this,Nr,void 0);m(this,Hn,void 0);T(this,Nr,t),this.baseURL=e,this.createdAt=new Date(r),this.description=i,this.id=a,this.name=o,T(this,Ot,C),this.organizationId=c,this.picture=d,this.private=l,this.published=p,this.staggered=g,this.tags=f,this.type=v,this.updatedAt=new Date(E),this.active=!1,this.iframes=new Map,T(this,st,_),T(this,$n,A),T(this,Fn,M),this.enabledBy="",T(this,Hn,$)}get telemetry(){return n(this,Nr).getValue("telemetry")}sendIframeEvent(t){this.iframes.size&&this.iframes.forEach(e=>{const{iframe:r}=e;r&&(navigator.isReactNative?r.postMessage(JSON.stringify(t)):r.contentWindow.postMessage(t,"*"))})}handleIframeMessage(t){return u(this,null,function*(){var o;if(!this.active)return;const e=t,{payload:r,uuid:i,type:a}=e;switch(a){case J.customPluginEventToRoom:{n(this,st).customPluginEventToRoom(this.id,r,i);break}case J.customPluginEventToPeers:{n(this,st).customPluginEventToPeers(this.id,r.peerIds,r,i);break}case J.enablePluginForRoom:{n(this,st).enablePluginForRoom(this.id,i);break}case J.enablePluginForPeers:{n(this,st).enablePluginForPeers(this.id,r.peerIds,i);break}case J.disablePluginForRoom:{n(this,st).disablePluginForRoom(this.id,i);break}case J.disablePluginForPeers:{n(this,st).disablePluginForPeers(this.id,r.peerIds,i);break}case J.storeInsertKeys:{n(this,st).storeInsertKeys(this.id,r.store,r.insertKeys,i);break}case J.storeGetKeys:{n(this,st).storeGetKeys(this.id,r.store,r.getKeys,i);break}case J.storeDeleteKeys:{n(this,st).storeDeleteKeys(this.id,r.store,r.deleteKeys,i);break}case J.storeDelete:{n(this,st).storeDelete(this.id,r.store,i);break}case ke.chatMessage:{const{messagePayload:c,peerIds:d}=r;if(!n(this,Fn)){this.sendIframeEvent({type:ke.chatMessage,uuid:e.uuid,payload:{error:"Chat is disabled for this room."}});return}try{yield n(this,Fn).sendMessage(c,d),this.sendIframeEvent({type:ke.chatMessage,uuid:e.uuid,payload:{success:!0}})}catch(l){this.sendIframeEvent({type:ke.chatMessage,uuid:e.uuid,payload:{error:l}})}break}case ke.getPeer:{let c;const{peerId:d}=r,l=G(O({},n(this,Ot)),{id:n(this,Ot).id,isRecorder:(o=n(this,Ot).permissions)==null?void 0:o.isRecorder,isHidden:n(this,Ot).permissions.hiddenParticipant,stageStatus:n(this,Ot).stageStatus});d?(c=n(this,$n).joined.get(r.peerId),n(this,Ot).id===d&&(c=l)):c=l,this.sendIframeEvent({type:ke.getPeer,payload:{peer:c&&yd(c)},uuid:e.uuid});break}case ke.getPeers:{const c=n(this,$n).joined.toArray().map(d=>yd(d));this.sendIframeEvent({type:ke.getPeers,payload:{peers:c},uuid:e.uuid});break}case ke.getPluginInitiator:{this.sendIframeEvent({type:ke.getPluginInitiator,payload:{enabledBy:this.enabledBy},uuid:e.uuid});break}case ke.getDisplayTitle:{this.sendIframeEvent({type:ke.getDisplayTitle,payload:{displayTitle:n(this,Hn)},uuid:e.uuid});break}case ke.getRoomName:{this.sendIframeEvent({type:ke.getRoomName,payload:{roomName:n(this,Nr).getValue("meetingId")},uuid:e.uuid});break}case ke.customPluginEventToParent:{this.emit(e.payload.eventName,e.payload.data);break}}})}sendData(t){this.active&&(this.logger.info("Plugin::SendData",{plugin:{id:this.id,name:this.name,data:{eventName:t.eventName}}}),this.sendIframeEvent({type:ke.sendData,uuid:"",payload:t}))}removePluginView(t="default"){var i;const{iframe:e,listener:r}=(i=this.iframes.get(t))!=null?i:{};(e||r)&&(navigator.isReactNative?e.props.onMessage=void 0:window.removeEventListener("message",r),this.iframes.delete(t))}addPluginView(t,e="default"){var o;if(!n(this,Bn))throw this.logger.error("Plugin::addPluginView::no_auth_token_set_for_plugin"),new k("No auth token set for plugin.","0602");if(!t)throw this.logger.error("Plugin::addPluginView::iframe_was_not_provided"),new k("Iframe was not provided.","0603");this.removePluginView(e);const r=t,i=new URL(this.baseURL),a={auth:n(this,Bn),parent:navigator.isReactNative?this.baseURL:window.location.origin,backend:n(this,Nr).getValue("apiBase"),pluginId:this.id,roomName:(o=n(this,Nr).getValue("meetingId"))!=null?o:"",displayTitle:n(this,Hn)};if(Object.keys(a).forEach(c=>{i.searchParams.set(c,a[c])}),r.src=i.href,r.allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",r.title=e,navigator.isReactNative)r.props.onMessage=c=>{this.handleIframeMessage(JSON.parse(c.nativeEvent.data))},this.iframes.set(e,{iframe:r});else{const c=d=>u(this,null,function*(){d.source===t.contentWindow&&(yield this.handleIframeMessage(d.data))});window.addEventListener("message",c),this.iframes.set(e,{iframe:r,listener:c})}}setActive(t){var e,r;if(this.active=t,t){this.emit("stateUpdate",{active:this.active,pluginId:this.id,bind:this.addPluginView.bind(this),views:(e=this.config)==null?void 0:e.views});return}this.active=!1,this.emit("stateUpdate",{active:this.active,pluginId:this.id,views:(r=this.config)==null?void 0:r.views})}activateForSelf(){return u(this,null,function*(){const t=ot(),e=yield t.authorizePlugin(this.id);T(this,Bn,e),T(this,Js,new Date);try{const r=yield t.getPluginConfig(this.baseURL);this.config=r}catch(r){this.logger.error("Plugin::activateForSelf",{error:r})}this.setActive(!0),this.emit("enabled")})}deactivateForSelf(){Array.from(this.iframes.keys()).forEach(t=>{this.removePluginView(t)}),T(this,Js,void 0),this.iframes.clear(),this.setActive(!1),this.emit("closed")}enable(){return u(this,null,function*(){return this.activateForSelf()})}disable(){return this.deactivateForSelf()}activate(){return u(this,null,function*(){var t,e;this.active||(e=(t=n(this,Ot).permissions)==null?void 0:t.plugins)!=null&&e.canStart&&(n(this,st).addPlugin(this.id,this.staggered),T(this,Js,new Date),this.logger.info("plugin::activated",{plugin:{id:this.id,enabledBy:this.enabledBy,name:this.name}}))})}deactivate(){return u(this,null,function*(){var t,e;this.active&&(!((e=(t=n(this,Ot).permissions)==null?void 0:t.plugins)!=null&&e.canClose)&&this.enabledBy!==n(this,Ot).id||(n(this,st).removePlugin(this.id),this.logger.info("plugin::deactivated",{plugin:{id:this.id,name:this.name,duration:n(this,Js)?new Date().getTime()-n(this,Js).getTime():0}}),T(this,Js,void 0)))})}},st=new WeakMap,Ot=new WeakMap,$n=new WeakMap,Fn=new WeakMap,Js=new WeakMap,Bn=new WeakMap,Nr=new WeakMap,Hn=new WeakMap,bg);Vl([Rt({maxInvocations:5,period:1})],Ma.prototype,"sendData",1);Vl([P.trace("Plugin.activatePlugin")],Ma.prototype,"activate",1);Vl([P.trace("Plugin.deactivatePlugin")],Ma.prototype,"deactivate",1);Ma=Vl([dt("0600")],Ma);var Oe,Ti;class Af extends Map{constructor(e,r=void 0){const{onAddEvent:i,onDeleteEvent:a,onClearEvent:o}=e;super();m(this,Oe,void 0);m(this,Ti,void 0);h(this,"onAddEvent");h(this,"onDeleteEvent");h(this,"onClearEvent");T(this,Oe,new Da(r)),this.onAddEvent=i,this.onDeleteEvent=a,this.onClearEvent=o,T(this,Ti,new Map)}emit(e,...r){return n(this,Oe).emit(e,...r)}on(e,r){return n(this,Oe).on(e,r)}addListener(e,r){return n(this,Oe).addListener(e,r)}off(e,r){return n(this,Oe).off(e,r)}once(e,r){return n(this,Oe).once(e,r)}prependListener(e,r){return n(this,Oe).prependListener(e,r)}prependOnceListener(e,r){return n(this,Oe).prependOnceListener(e,r)}removeListener(e,r){return n(this,Oe).removeListener(e,r)}removeAllListeners(e){return n(this,Oe).removeAllListeners(e)}listeners(e){return n(this,Oe).listeners(e)}listenerCount(e){return n(this,Oe).listenerCount(e)}getMaxListeners(){return n(this,Oe).getMaxListeners()}setMaxListeners(e){return n(this,Oe).setMaxListeners(e)}eventNames(){return n(this,Oe).eventNames()}add(e,r=!0){return this.set(e.id,e,r)}set(e,r,i=!0){const a=super.set(e,r),o=(c,...d)=>{this.emit(c,r,...d)};return n(this,Ti).set(e,o),r.on("*",o),i&&n(this,Oe).emit(this.onAddEvent,r),a}delete(e,r=!0,i=!1){const a=this.get(e);if(!a)return!1;a.removeListener("*",n(this,Ti).get(e));const o=super.delete(e);return i&&a.removeAllListeners(),r&&n(this,Oe).emit(this.onDeleteEvent,a),o}clear(e=!0,r=!1){this.forEach(a=>{a.removeListener("*",n(this,Ti).get(a.id)),r&&a.removeAllListeners()});const i=super.clear();return e&&n(this,Oe).emit(this.onClearEvent),i}toArray(){return Array.from(this.values())}}Oe=new WeakMap,Ti=new WeakMap;class ig extends Af{constructor(t){super({onAddEvent:"pluginAdded",onDeleteEvent:"pluginDeleted"},t)}add(t,e=!0){return super.add(t,e)}delete(t,e=!0,r=!1){return super.delete(t,e,r)}}var l0=Object.defineProperty,u0=Object.getOwnPropertyDescriptor,h0=(s,t,e,r)=>{for(var i=r>1?void 0:r?u0(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&&l0(t,e,i),i};let Ou=class{constructor(s){h(this,"all");h(this,"active");this.all=new ig(s),this.active=new ig(s)}};Ou=h0([dt("0600")],Ou);var p0=Object.defineProperty,g0=Object.getOwnPropertyDescriptor,Ll=(s,t,e,r)=>{for(var i=r>1?void 0:r?g0(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&&p0(t,e,i),i},zt,qn,ps,kg;const Mf=(kg=class{constructor(s,t,e,r){h(this,"plugins");m(this,zt,void 0);m(this,qn,void 0);m(this,ps,void 0);T(this,zt,t),T(this,qn,e),T(this,ps,s),this.plugins=r,this.setupEvents()}get telemetry(){return n(this,ps).getValue("telemetry")}get logger(){return n(this,ps).getValue("logger")}static init(s,t,e,r,i,a,o,c){return u(this,null,function*(){const d=s.getValue("logger"),l=new Ou(d);return t.forEach(p=>{const g=new Ma(s,p,e,a,o,i,c);l.all.add(g)}),new Mf(s,e,r,l)})}getRoomPlugins(){return u(this,null,function*(){var t;const{plugins:s}=yield n(this,zt).getActivePlugins();(t=this.plugins.active)==null||t.toArray().forEach(e=>{this.disablePlugin({id:e.id})}),yield Promise.all(s.map(e=>this.enablePlugin({id:e.pluginId,enabledBy:e.enabledBy})))})}enablePlugin(e){return u(this,arguments,function*({id:s,enabledBy:t}){const r=this.plugins.all.get(s);r&&(yield r.activateForSelf(),r.enabledBy=t)})}disablePlugin(t){return u(this,arguments,function*({id:s}){const e=this.plugins.all.get(s);e&&e.deactivateForSelf()})}sendIframeEvent(s,t,e,r){const i=this.plugins.all.get(t);i&&i.sendIframeEvent({type:s,uuid:e,payload:r})}broadcastIframeEvent(s,t){this.plugins.active.forEach(e=>{this.sendIframeEvent(s,e.id,"",t)})}setupEvents(){this.plugins.all.on("stateUpdate",({active:s,id:t})=>{if(s){this.plugins.active.add(this.plugins.all.get(t));return}this.plugins.active.delete(t)}),n(this,ps).getValue("peerSessionStore").onAsync(R.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){yield this.getRoomPlugins(),this.logger.debug("[SOCKET_SERVICE_ROOM_JOINED] resolved request to fetch plugins.")})),n(this,zt).on(J.addPlugin,s=>u(this,null,function*(){var e;const t=s.pluginId;(e=this.plugins.all.get(t))!=null&&e.active||(yield this.enablePlugin({id:t,enabledBy:s.enabledBy}))})),n(this,zt).on(J.removePlugin,s=>u(this,null,function*(){var e;const t=s.pluginId;(e=this.plugins.all.get(t))!=null&&e.active&&(yield this.disablePlugin({id:t}))})),[J.enablePluginForPeers,J.enablePluginForRoom].forEach(s=>{n(this,zt).on(s,(t,e)=>u(this,null,function*(){this.sendIframeEvent(s,t.pluginId,e,{enabledBy:t.enabledBy})}))}),[J.disablePluginForPeers,J.disablePluginForRoom].forEach(s=>{n(this,zt).on(s,(t,e)=>u(this,null,function*(){this.sendIframeEvent(s,t.pluginId,e,{disabledBy:t.disabledBy})}))}),[J.customPluginEventToPeers,J.customPluginEventToRoom].forEach(s=>{n(this,zt).on(s,(t,e)=>u(this,null,function*(){this.sendIframeEvent(s,t.pluginId,e,{data:JSON.parse(new TextDecoder().decode(t.pluginData))})}))}),[J.storeInsertKeys,J.storeGetKeys,J.storeDeleteKeys].forEach(s=>{n(this,zt).on(s,(t,e)=>u(this,null,function*(){var i;const r=(i=t.storeItems)==null?void 0:i.map(a=>{var o;return{timestamp:a.timestamp,peerId:a.peerId,payload:JSON.parse((o=a.payload)!=null&&o.length?new TextDecoder().decode(a.payload):"{}"),key:a.storeKey}});this.sendIframeEvent(s,t.pluginId,e,{storeName:t.storeName,storeItems:r})}))}),n(this,zt).on(J.storeDelete,(s,t)=>u(this,null,function*(){this.sendIframeEvent(J.storeDelete,s.pluginId,t,{storeName:s.storeName})})),n(this,qn).on($e.sendMessageToPeers,s=>{const t=is==null?void 0:is.formatSocketPeerMessage(s.message);this.broadcastIframeEvent(ke.chatMessage,{message:t})}),n(this,qn).on($e.sendMessageToRoom,s=>{const t=is==null?void 0:is.formatSocketPeerMessage(s.message);this.broadcastIframeEvent(ke.chatMessage,{message:t})}),n(this,ps).getValue("peerSessionStore").on(R.PEER_JOINED_INTERNAL,s=>{const t=yd(s);this.broadcastIframeEvent(ke.peerJoined,t)}),n(this,ps).getValue("peerSessionStore").on(R.PEER_CLOSED,s=>{this.broadcastIframeEvent(ke.peerLeft,s)}),n(this,ps).getValue("peerSessionStore").on(R.UPDATE_PEER_STAGE_STATUS,s=>{this.broadcastIframeEvent(ke.peerStageStatusUpdate,s)}),n(this,ps).subscribe("stageStatus",s=>{this.broadcastIframeEvent(ke.stageStatusUpdate,s)})}},zt=new WeakMap,qn=new WeakMap,ps=new WeakMap,kg);let Nc=Mf;Ll([P.trace("PluginController.getRoomPlugins")],Nc.prototype,"getRoomPlugins",1);Ll([P.trace("PluginController.enableForSelf")],Nc.prototype,"enablePlugin",1);Ll([P.trace("PluginController.disableForSelf")],Nc.prototype,"disablePlugin",1);Ll([P.trace("PluginController.setupEvents")],Nc.prototype,"setupEvents",1);var Oo;class m0{constructor(t){h(this,"mediaJoined");h(this,"socketJoined");h(this,"socketJoinAttempted");h(this,"mediaJoinAttempted");h(this,"socketState");h(this,"mediaState");m(this,Oo,void 0);this.mediaJoined=!1,this.socketJoined=!1,this.socketJoinAttempted=!1,this.mediaJoinAttempted=!1,this.socketState={state:void 0,reconnected:!1,reconnectionAttempt:void 0},this.mediaState={recv:void 0,send:void 0},T(this,Oo,t)}get joinAttempted(){return this.mediaJoinAttempted||this.socketJoinAttempted}get roomJoined(){return this.mediaJoined&&this.socketJoined}updateSocketConnectionState(t,e){let r;const{reconnected:i}=this.socketState;switch(t){case"connected":r={state:"connected",reconnected:i,reconnectionAttempt:void 0};break;case"disconnected":r={state:"disconnected",reconnected:!1,reconnectionAttempt:0},this.socketJoined=!1;break;case"reconnected":r={state:"connected",reconnected:!0,reconnectionAttempt:void 0};break;case"reconnecting":r={state:"reconnecting",reconnected:i,reconnectionAttempt:0};break;case"reconnectAttempt":r={state:"reconnecting",reconnected:i,reconnectionAttempt:e};break;case"failed":r={state:"failed",reconnected:i,reconnectionAttempt:void 0},this.socketJoined=!1;break}r&&(n(this,Oo).getValue("peerSessionStore").emit(R.SOCKET_STATE_UPDATE,r),this.socketState=r)}}Oo=new WeakMap;var f0=Object.defineProperty,T0=Object.getOwnPropertyDescriptor,Vc=(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&&f0(t,e,i),i},jn,Gn,Wn,ad,Ig;let rn=(Ig=class extends Bt{constructor(t,e){const r=t.getValue("logger");super(r);m(this,Wn);m(this,jn,void 0);m(this,Gn,void 0);h(this,"recordingPeerIds",[]);h(this,"recordings",[]);T(this,Gn,t),T(this,jn,e)}get recordingState(){return this.recordings.some(t=>t.state==="RECORDING")?"RECORDING":this.recordings.some(t=>t.state==="PAUSED")?"PAUSED":this.recordings.some(t=>t.state==="STARTING")?"STARTING":this.recordings.some(t=>t.state==="STOPPING")?"STOPPING":"IDLE"}get telemetry(){return n(this,Gn).getValue("telemetry")}updateRecordings(t){this.recordings=t,this.emit("recordingUpdate",this.recordingState)}start(t){return u(this,null,function*(){if(!n(this,jn).permissions.canRecord)throw this.logger.error("Recording::start::permission_denied"),new k("User does not have permission to start recording","1001");if((t==null?void 0:t.allowMultiple)!==!0&&(this.recordingState==="STARTING"||this.recordingState==="RECORDING"||this.recordingState==="STOPPING"))throw this.logger.error("Recording::start::recording_in_progress",{recording:{state:this.recordingState}}),new k(`Cant start recording, recordingState irregular: ${this.recordingState}`,"1005");try{const e=ot(),{recording:r={}}=n(this,Gn).getValue("defaults"),i=yield e.startRecording(r,t==null?void 0:t.allowMultiple);this.updateRecordings([...this.recordings,{id:i,state:"STARTING",type:"BROWSER"}])}catch(e){throw this.logger.error("Recording::stop::recording_failed_to_start",{error:e}),new k("Error while starting recording","1000",this.logger)}})}stop(t){return u(this,null,function*(){yield L(this,Wn,ad).call(this,"stop",["RECORDING","PAUSED"],t)})}pause(t){return u(this,null,function*(){yield L(this,Wn,ad).call(this,"pause",["RECORDING"],t)})}resume(t){return u(this,null,function*(){yield L(this,Wn,ad).call(this,"resume",["PAUSED"],t)})}},jn=new WeakMap,Gn=new WeakMap,Wn=new WeakSet,ad=function(t,e,r){return u(this,null,function*(){if(!n(this,jn).permissions.canRecord)throw this.logger.error("Recording::stop::permission_denied"),new k("User does not have permission to stop recording","1001");let i=[];if(r!==void 0){const a=this.recordings.find(o=>o.id===r);if(a===void 0)throw new k("Could not find the specified recording","1004");if(e.includes(a.state)){this.logger.error("Recording::stop::recording_not_in_expected_state",{recording:{state:a.state}});return}i.push(a)}else i=this.recordings.filter(a=>e.includes(a.state));i.forEach(a=>u(this,null,function*(){const o=a.state;t==="stop"&&(a.state="STOPPING",this.emit("recordingUpdate","STOPPING"));try{yield ot().updateRecording(a.id,t)}catch(c){throw this.logger.error("Recording::stop::recording_failed_to_stop",{error:c}),a.state!==o&&(a.state=o,this.emit("recordingUpdate",o)),new k("Error while stopping recording","1000",this.logger)}}))})},Ig);Vc([P.trace("Recording.start")],rn.prototype,"start",1);Vc([P.trace("Recording.stop")],rn.prototype,"stop",1);Vc([P.trace("Recording.stop")],rn.prototype,"pause",1);Vc([P.trace("Recording.stop")],rn.prototype,"resume",1);rn=Vc([dt("1000")],rn);var v0=Object.defineProperty,S0=Object.getOwnPropertyDescriptor,y0=(s,t,e,r)=>{for(var i=r>1?void 0:r?S0(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&&v0(t,e,i),i},vi;class Df{constructor(t,e,r){h(this,"recording");h(this,"room");m(this,vi,void 0);T(this,vi,t),this.recording=new rn(t,e),this.room=r,this.setupEvents()}get telemetry(){return n(this,vi).getValue("telemetry")}get logger(){return n(this,vi).getValue("logger")}getRecordingTypeFromProtoType(t){let e;switch(t){case en.BROWSER:e="BROWSER";break;case en.COMPOSITE:e="COMPOSITE";break;case en.TRACK:e="TRACK";break;default:e="BROWSER"}return e}setupEvents(){n(this,vi).getValue("peerSessionStore").on(R.ROOM_STATE,t=>{t.activeRecordings.length!==0?this.recording.updateRecordings(t.activeRecordings.map(e=>{const r=this.getRecordingTypeFromProtoType(e.recordingType);return{id:e.recordingId,state:e.recordingStatus,type:r}})):this.recording.recordings.length&&this.recording.updateRecordings([])}),this.room.on(U.recordingStarted,t=>{let e=!1;const r=[...this.recording.recordings];if(r.forEach(i=>{i.id===t.recordingId&&(e=!0,i.state="RECORDING")}),e===!1){const i=this.getRecordingTypeFromProtoType(t.recordingType);r.push({id:t.recordingId,state:"RECORDING",type:i})}this.recording.updateRecordings(r)}),this.room.on(U.recordingPaused,t=>{const e=[...this.recording.recordings];e.forEach(r=>{r.id===t.recordingId&&(r.state="PAUSED")}),this.recording.updateRecordings(e)}),this.room.on(U.recordingStopped,t=>{const e=[...this.recording.recordings.filter(r=>r.id!==t.recordingId)];this.recording.updateRecordings(e)})}}vi=new WeakMap;y0([P.trace("RecordingController.setupEvents")],Df.prototype,"setupEvents",1);var Si;class E0{constructor(t){m(this,Si,void 0);T(this,Si,t)}hasFeature(t){var e;return(e=n(this,Si).getValue("flagsmith").hasFeature(t))!=null?e:!1}getFeatureValue(t){return n(this,Si).getValue("flagsmith").getValue(t)}getAllFeatures(){return n(this,Si).getValue("flagsmith").getAllFlags()}}Si=new WeakMap;class Rh{constructor(t,e,r){h(this,"logger");h(this,"features");h(this,"browserSpecs");h(this,"callStats");this.logger=t,this.features=e,this.browserSpecs=Se,this.callStats=r}static init(t){return new Rh(t.getValue("logger"),new E0(t),t.getValue("callstats"))}}class bh{constructor(t){h(this,"internals");this.internals=t}static init(t){return u(this,null,function*(){const e=Rh.init(t);return new bh(e)})}}var P0=Object.defineProperty,_0=Object.getOwnPropertyDescriptor,qt=(s,t,e,r)=>{for(var i=r>1?void 0:r?_0(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&&P0(t,e,i),i},Be,Te,he,Ks,Yt,No,be;class bt extends Da{constructor(e,r,i=Ed,a=!0){const o=e.getValue("logger");super(o);m(this,Be,void 0);m(this,Te,void 0);m(this,he,void 0);m(this,Ks,void 0);m(this,Yt,void 0);m(this,No,void 0);m(this,be,void 0);h(this,"audioUpdateInProgress");h(this,"videoUpdateInProgress");T(this,be,e),this.audioUpdateInProgress=!1,this.videoUpdateInProgress=!1,T(this,Be,new Of(e,r)),T(this,Te,new G0(e,n(this,Be),void 0,i)),T(this,he,new X0(e,n(this,Be),void 0,i)),T(this,Yt,new z0(n(this,be),n(this,Be))),T(this,Ks,new J0(e,n(this,Be))),T(this,No,a),n(this,Te).on("trackMuted",this.onAudioTrackMuted.bind(this)),n(this,Te).on("trackChanged",this.onAudioTrackChanged.bind(this)),n(this,he).on("trackChanged",this.onVideoTrackChanged.bind(this)),n(this,he).on("trackEnded",this.onVideoTrackEnded.bind(this)),n(this,Yt).on("trackEnded",this.onScreenShareEnded.bind(this)),this.onVisibilityChange=this.onVisibilityChange.bind(this),document.addEventListener("visibilitychange",this.onVisibilityChange)}get telemetry(){return n(this,be).getValue("telemetry")}set context(e){T(this,be,e)}onVisibilityChange(){return u(this,null,function*(){n(this,be).getValue("callstats").tabChanged(document.visibilityState==="visible"),document.visibilityState!=="visible"?n(this,be).getValue("callstats").browserBackgrounded():(n(this,be).getValue("callstats").browserForegrounded(),yield this.setupSpeaker())})}repopulateAvailableDevices(){return u(this,null,function*(){return!0})}setupStreams(i){return u(this,arguments,function*({audio:e,video:r}){var c;e?n(this,be).getValue("callstats").audioOn():n(this,be).getValue("callstats").audioOff(),r?n(this,be).getValue("callstats").videoOn():n(this,be).getValue("callstats").videoOff();let a,o;if(e&&r)try{const d=yield n(this,Be).getAudioAndVideoTrack(n(this,Te).userSelectedDevice,n(this,he).userSelectedDevice);a=d.audioTrack,o=d.videoTrack}catch(d){this.logger.error("LocalMediaHandler::init::Failed to get audio video tracks",{error:d})}if(!a&&e)try{a=yield n(this,Be).getAudioTrack(!1,n(this,Te).userSelectedDevice)}catch(d){this.logger.error("LocalMediaHandler::init::Failed to get audio track",{error:d})}if(!o&&r)try{o=yield n(this,Be).getVideoTrack(n(this,he).userSelectedDevice)}catch(d){this.logger.error("LocalMediaHandler::init::Failed to get video track",{error:d})}e&&!a&&n(this,be).getValue("callstats").audioOff(),r&&!o&&n(this,be).getValue("callstats").videoOff(),yield n(this,Te).setMediaTrack(a),yield n(this,he).setMediaTrack(o);try{yield this.setupSpeaker()}catch(d){}if(o){const d=yield this.getDeviceById(o.getSettings().deviceId);n(this,be).getValue("callstats").selectedDevice("VIDEO",d)}if(a){const d=yield this.getDeviceById(a.getSettings().deviceId);n(this,be).getValue("callstats").selectedDevice("AUDIO",d)}(c=n(this,Ks).currentDevice)!=null&&c.deviceId&&n(this,be).getValue("callstats").selectedDevice("SPEAKER",n(this,Ks).currentDevice),n(this,Be).onDeviceChange((d,l,p)=>{this.onDeviceChange(l,p)})})}getCurrentDevices(){return{audio:n(this,Te).currentDevice,video:n(this,he).currentDevice,speaker:n(this,Ks).currentDevice}}get permissions(){return n(this,Be).permissions}getAllDevices(){return n(this,Be).getAvailableDevices()}getDeviceById(e,r){return n(this,Be).getDevice(e)}onAudioTrackMuted(){this.emit("AUDIO_TRACK_SILENT")}onAudioTrackChanged(){this.emit("AUDIO_TRACK_CHANGE")}get rawAudioTrack(){return n(this,Te).mediaTrack}get audioTrack(){return n(this,Te).transformedMediaTrack}get audioEnabled(){return n(this,Te).trackEnabled}enableAudio(e){return u(this,null,function*(){if(!this.audioUpdateInProgress){this.audioUpdateInProgress=!0;try{e?yield n(this,Te).enableTrack(!1,e):yield n(this,Te).unmuteTrack()}catch(r){}finally{this.audioUpdateInProgress=!1}}})}disableAudio(){n(this,Te).mediaTrack&&!n(this,Te).isCustomTrack?n(this,Te).muteTrack():n(this,Te).disableTrack()}getAudioDevices(e){return n(this,Be).getAudioInputDevices(e)}setAudioDevice(i,a){return u(this,arguments,function*(e,{saveDevicePreference:r}){yield n(this,Te).setDevice(e,{saveDevicePreference:r}),e!=null&&e.deviceId&&n(this,be).getValue("callstats").selectedDevice("AUDIO",e),this.emit("AUDIO_TRACK_CHANGE"),this.emit("DEVICE_CHANGE",{device:e})})}setupSpeaker(){return u(this,null,function*(){const{speaker:e}=this.getCurrentDevices();yield n(this,Ks).setPreferredSpeaker();const{speaker:r}=this.getCurrentDevices();(e==null?void 0:e.deviceId)!==(r==null?void 0:r.deviceId)&&r&&this.emit("DEVICE_CHANGE",{device:r})})}setSpeakerDevice(i,a){return u(this,arguments,function*(e,{saveDevicePreference:r}){yield n(this,Ks).setupSpeaker(e,{saveDevicePreference:r}),e!=null&&e.deviceId&&n(this,be).getValue("callstats").selectedDevice("SPEAKER",e),this.emit("DEVICE_CHANGE",{device:e})})}onVideoTrackChanged(){this.emit("VIDEO_TRACK_CHANGE")}onVideoTrackEnded(){this.emit("VIDEO_TRACK_CHANGE")}get rawVideoTrack(){return n(this,he).mediaTrack}get videoTrack(){return n(this,he).transformedMediaTrack}get videoEnabled(){return n(this,he).trackEnabled}enableVideo(e){return u(this,null,function*(){if(!this.videoUpdateInProgress){this.videoUpdateInProgress=!0;try{e?yield n(this,he).enableTrack(!1,e):yield n(this,he).unmuteTrack()}catch(r){}finally{this.videoUpdateInProgress=!1}}})}disableVideo(){n(this,he).disableTrack()}getVideoDevices(e){return n(this,Be).getVideoInputDevices(e)}setVideoDevice(i,a){return u(this,arguments,function*(e,{saveDevicePreference:r}){yield n(this,he).setDevice(e,{saveDevicePreference:r}),e!=null&&e.deviceId&&n(this,be).getValue("callstats").selectedDevice("VIDEO",e),this.emit("VIDEO_TRACK_CHANGE"),this.emit("DEVICE_CHANGE",{device:e})})}updateVideoConstraints(e){return u(this,null,function*(){yield n(this,he).updateConstraints(e)})}onScreenShareEnded(){this.emit("SCREENSHARE_ENDED")}get screenShareTracks(){return{audio:n(this,Yt).audioMediaTrack,video:n(this,Yt).videoMediaTrack}}get screenShareEnabled(){return n(this,Yt).trackEnabled}enableScreenShare(){return u(this,null,function*(){yield n(this,Yt).enableScreenShare()})}disableScreenShare(){return u(this,null,function*(){n(this,Yt).disableScreenShare()})}updateScreenshareConstraints(e){return u(this,null,function*(){yield n(this,Yt).updateConstraints(e)})}getSpeakerDevices(e){return n(this,Be).getAudioOutputDevices(e)}addAudioMiddleware(e){return n(this,Te).addMiddleware(e)}removeAudioMiddleware(e){return n(this,Te).removeMiddleware(e)}removeAllAudioMiddlewares(){return n(this,Te).removeAllMiddlewares()}addVideoMiddleware(e){return n(this,he).addMiddleware(e)}removeVideoMiddleware(e){return n(this,he).removeMiddleware(e)}removeAllVideoMiddlewares(){return n(this,he).removeAllMiddlewares()}setVideoMiddlewareGlobalConfig(e){return n(this,he).setVideoMiddlewareGlobalConfig(e)}destruct(){n(this,Te).disableTrack(),n(this,he).disableTrack(),n(this,he).terminateMiddlewareWebWorker(),n(this,Yt).disableScreenShare(),n(this,Be).destruct()}onDeviceChange(e,r){return u(this,null,function*(){var a,o;if(this.emit("DEVICE_LIST_UPDATED",e),r||!n(this,No))return;let i=!1;(a=e==null?void 0:e.added)==null||a.reverse().forEach(c=>u(this,null,function*(){var d;c&&!Ed(c)&&(c.kind==="audioinput"&&((d=this.audioTrack)==null?void 0:d.enabled)===!0?yield this.setAudioDevice(c,{saveDevicePreference:!1}):c.kind==="audiooutput"&&(i=!0,yield this.setSpeakerDevice(c,{saveDevicePreference:!1})))})),i||(o=e==null?void 0:e.removed)==null||o.forEach(c=>u(this,null,function*(){var d;if(c.kind==="audiooutput"&&((d=this.getCurrentDevices().speaker)==null?void 0:d.deviceId)===c.deviceId){const l=yield this.getSpeakerDevices();(l==null?void 0:l.length)>0&&(yield this.setSpeakerDevice(l[0],{saveDevicePreference:!1}))}}))})}removeAllTracks(){this.destruct()}removeAudioTrack(){n(this,Te).disableTrack()}removeVideoTrack(){n(this,he).disableTrack(),n(this,he).terminateMiddlewareWebWorker()}removeDocumentEventListeners(){return u(this,null,function*(){document.removeEventListener("visibilitychange",this.onVisibilityChange)})}}Be=new WeakMap,Te=new WeakMap,he=new WeakMap,Ks=new WeakMap,Yt=new WeakMap,No=new WeakMap,be=new WeakMap;qt([P.trace("MediaHandler.setupStreams")],bt.prototype,"setupStreams",1);qt([P.trace("MediaHandler.enableAudio")],bt.prototype,"enableAudio",1);qt([P.trace("MediaHandler.disableAudio")],bt.prototype,"disableAudio",1);qt([P.trace("MediaHandler.setAudioDevice")],bt.prototype,"setAudioDevice",1);qt([P.trace("MediaHandler.enableVideo")],bt.prototype,"enableVideo",1);qt([P.trace("MediaHandler.disableVideo")],bt.prototype,"disableVideo",1);qt([P.trace("MediaHandler.setVideoDevice")],bt.prototype,"setVideoDevice",1);qt([P.trace("MediaHandler.updateVideoConstraints")],bt.prototype,"updateVideoConstraints",1);qt([P.trace("MediaHandler.enableScreenShare")],bt.prototype,"enableScreenShare",1);qt([P.trace("MediaHandler.disableScreenShare")],bt.prototype,"disableScreenShare",1);qt([P.trace("MediaHandler.updateScreenshareConstraints")],bt.prototype,"updateScreenshareConstraints",1);qt([P.trace("MediaHandler.destruct")],bt.prototype,"destruct",1);qt([P.trace("MediaHandler.onDeviceChange")],bt.prototype,"onDeviceChange",1);function zc(s,t,e){switch(!0){case Se.isChromiumBased():switch(t){case"NotAllowedError":return e.includes("by system")?"SYSTEM_DENIED":s==="screenshare"?"CANCELED":"DENIED";case"NotReadableError":default:return"COULD_NOT_START"}case Se.isSafari():switch(t){case"NotAllowedError":return"DENIED";default:return"COULD_NOT_START"}case Se.isFirefox():switch(t){case"NotFoundError":case"NotReadableError":return"SYSTEM_DENIED";case"NotAllowedError":return"DENIED";case"AbortError":default:return"COULD_NOT_START"}default:return"COULD_NOT_START"}}const C0=["virtual","emulator","krisp","solstice conference","teams","loom","zoom","manycam","blackhole","displayport","xsplit","wirecast","vMix","elgato","epiphan","voice changer","voicemod","morphvoxx"];function Ed(s){var e,r;const t=(e=s.label)==null?void 0:e.toLowerCase();return((r=Se._bowser)==null?void 0:r.getOSName())==="macOS"&&t.includes("iphone")?!0:C0.some(i=>t==null?void 0:t.includes(i))}function w0(s,t,e){return u(this,null,function*(){if(!(t!=null&&t.length))return e;const r=s.getValue("logger"),i=new AudioContext,a=yield Promise.all(t==null?void 0:t.map(d=>d(i))),o=i.createMediaStreamSource(new MediaStream([e])),c=i.createMediaStreamDestination();try{let d=o;for(let l=0;l<a.length;l+=1)d.connect(a[l]),d=a[l];d.connect(c)}catch(d){return r.error("getTransformedAudioTrack::middleware_execution_failed",{error:d}),e}return c.stream.getAudioTracks()[0]})}var yi,Vo;class R0{constructor(t){m(this,yi,void 0);m(this,Vo,void 0);T(this,Vo,t)}get logger(){return n(this,Vo).getValue("logger")}terminateMiddlewareWebWorker(){if(n(this,yi))try{Xc.clearInterval(n(this,yi)),T(this,yi,void 0)}catch(t){this.logger.debug("WorkerTimers::terminateMiddlewareWebWorker::failed")}}getTransformedVideoTrack(t,e,r){return u(this,null,function*(){if(!(t!=null&&t.length))return e;const i=document.createElement("canvas"),a=yield Promise.all(t==null?void 0:t.map(f=>f({canvas:i,WorkerTimers:Xc})));if(r.disablePerFrameCanvasRendering){const v=i.captureStream().getVideoTracks()[0];return Object.defineProperty(v,"originalSettings",{value:e.getSettings()}),v}const o=document.createElement("video"),c=new MediaStream;c.addTrack(e);const d=i.getContext("2d");o.srcObject=c,o.autoplay=!0,this.terminateMiddlewareWebWorker();const l=()=>u(this,null,function*(){if(e.enabled===!1||e.readyState==="ended"){this.terminateMiddlewareWebWorker(),o.remove(),i.remove();return}try{d.drawImage(o,0,0);for(let f=0;f<a.length;f+=1)typeof a[f]=="function"&&(yield a[f](i,d))}catch(f){this.logger.error("getTransformedVideoTrack::middleware_execution_failed",{error:f})}});try{o.play()}catch(f){}o.addEventListener("play",()=>{i.width=o.width||e.getSettings().width,i.height=o.width||e.getSettings().height,T(this,yi,Xc.setInterval(l,50))},!1);const g=i.captureStream().getVideoTracks()[0];return Object.defineProperty(g,"originalSettings",{value:e.getSettings()}),g})}}yi=new WeakMap,Vo=new WeakMap;const ng={gross:{width:{ideal:192},height:{ideal:144}},qvga:{width:{ideal:384},height:{ideal:288}},pvga:{width:{ideal:480},height:{ideal:360}},vga:{width:{ideal:640},height:{ideal:480}},hd:{width:{ideal:1280},height:{ideal:720}},hd_cropped:{width:{ideal:900},height:{ideal:720}},fhd:{width:{ideal:1920},height:{ideal:1080}}},b0=[[320,[{rid:"q",maxBitrate:25e4,maxFramerate:24,scalabilityMode:"L1T1"}]],[640,[{rid:"q",scaleResolutionDownBy:2,maxBitrate:25e4,maxFramerate:24,scalabilityMode:"L1T1"},{rid:"h",maxBitrate:7e5,maxFramerate:30,scalabilityMode:"L1T1"}]],[1280,[{rid:"q",scaleResolutionDownBy:2,maxBitrate:5e5,maxFramerate:24,scalabilityMode:"L1T1"},{rid:"h",maxBitrate:13e5,maxFramerate:30,scalabilityMode:"L1T1"}]],[1920,[{rid:"q",scaleResolutionDownBy:2,maxBitrate:9e5,maxFramerate:24,scalabilityMode:"L1T1"},{rid:"h",maxBitrate:15e5,maxFramerate:30,scalabilityMode:"L1T1"}]]],k0=(s,t)=>{var d,l,p;const e=(d=s==null?void 0:s.getValue("overrides"))==null?void 0:d.simulcastConfig;if((l=e==null?void 0:e.encodings)!=null&&l.length)return e.encodings;const r="getSettings"in t&&t.getSettings().width||"getConstraints"in t&&t.getConstraints().width||"originalSettings"in t&&((p=t.originalSettings)==null?void 0:p.width);let i=b0;s.getValue("flagsmith").hasFeature(Z.OVERRIDE_SIMULCAST_DYNAMIC)&&(i=JSON.parse(s.getValue("flagsmith").getValue(Z.OVERRIDE_SIMULCAST_DYNAMIC)));const a=i.map(([g])=>g).sort((g,f)=>g-f);let o=Number.MAX_VALUE,c=0;return a.forEach((g,f)=>{Math.abs(g-r)<o&&(o=Math.abs(g-r),c=f)}),i[c][1]};var ue=(s=>(s.WEBCAM="webcam",s.WEBCAM_BACKUP="webcam_backup",s.MIC="mic",s.SCREENSHARE_VIDEO="screenshare_video",s.SCREENSHARE_AUDIO="screenshare_audio",s))(ue||{});const I0=a_(),un=_s(I0.config.media);function A0(s){var e,r;const t={};return s.audio&&(t.audio={enableStereo:(e=s.audio.enableStereo)!=null?e:!1,enableHighBitrate:(r=s.audio.enableHighBitrate)!=null?r:!1}),t.video=s.video.quality,t}var Ei,As;class M0{constructor(t,e){m(this,Ei,void 0);m(this,As,void 0);h(this,"getScreenShareConstraints",()=>{var l,p,g,f,v,E,_,C,A,M,$;const t=(l=n(this,Ei))==null?void 0:l.screenshare,e=(g=(p=t==null?void 0:t.width)==null?void 0:p.max)!=null?g:1920,r=(v=(f=t==null?void 0:t.height)==null?void 0:f.max)!=null?v:1080,i=(_=(E=t==null?void 0:t.frameRate)==null?void 0:E.max)!=null?_:5;let a=(A=(C=t==null?void 0:t.frameRate)==null?void 0:C.ideal)!=null?A:5;const o=t==null?void 0:t.displaySurface,c=t==null?void 0:t.selfBrowserSurface;n(this,As).getValue("flagsmith").getValue(Z.VAL_MIN_FRAMERATE)&&(a=parseInt((M=n(this,As).getValue("flagsmith").getValue(Z.VAL_MIN_FRAMERATE))==null?void 0:M.toString(),10));let d={width:{max:e},height:{max:r},frameRate:{ideal:a,max:i}};if(n(this,As).getValue("flagsmith").hasFeature(Z.SCREENSHARE_CONSTRAINTS)){const x=($=n(this,As).getValue("flagsmith").getValue(Z.SCREENSHARE_CONSTRAINTS))==null?void 0:$.toString();d=JSON.parse(x)}return o!==void 0&&["monitor","browser","window"].includes(o)&&(d=G(O({},d),{displaySurface:o})),c!==void 0&&(d=G(O({},d),{selfBrowserSurface:c})),{audio:!0,video:d}});h(this,"getAudioConstraints",t=>{var a,o,c,d,l,p,g;const e={},r=(a=n(this,Ei))==null?void 0:a.audio,i=r!=null&&r.enableStereo?2:1;return Se.isFirefox()||Se.isWebKitBased()?(e.audio={deviceId:t,autoGainControl:(o=r==null?void 0:r.autoGainControl)!=null?o:!0,echoCancellation:(c=r==null?void 0:r.echoCancellation)!=null?c:!0,noiseSuppression:(d=r==null?void 0:r.noiseSupression)!=null?d:!0,channelCount:i},e):(e.audio={autoGainControl:(l=r==null?void 0:r.autoGainControl)!=null?l:!0,echoCancellation:(p=r==null?void 0:r.echoCancellation)!=null?p:!0,noiseSuppression:(g=r==null?void 0:r.noiseSupression)!=null?g:!0,channelCount:i},t&&(e.audio.deviceId={exact:t}),e)});h(this,"getVideoConstraints",t=>{var a,o,c,d;const e={},r=(a=n(this,Ei))==null?void 0:a.video;let i=ng.vga;if(typeof r=="string"?i=ng[r]:r!==void 0&&(i.height.ideal=r.height.ideal,i.width.ideal=r.width.ideal),i.frameRate={ideal:(c=(o=i.frameRate)==null?void 0:o.ideal)!=null?c:24},Se.isChromiumBased()&&(i.frameRate.max=30),n(this,As).getValue("flagsmith").hasFeature(Z.VIDEO_CONSTRAINTS)){const l=(d=n(this,As).getValue("flagsmith").getValue(Z.VIDEO_CONSTRAINTS))==null?void 0:d.toString();i=JSON.parse(l)}return e.video=i,typeof e.video=="boolean"||(t?e.video.deviceId={exact:t}:e.video.facingMode="user"),e});T(this,As,t),T(this,Ei,e)}getUpdatedVideoConstraints(t){return t}}Ei=new WeakMap,As=new WeakMap;class au extends Error{constructor(e,r,i){super(r);h(this,"constraints");h(this,"name");this.name=e,this.constraints=i}}class D0{constructor(){h(this,"permissions");this.permissions={audio:"NOT_REQUESTED",video:"NOT_REQUESTED",screenshare:"NOT_REQUESTED"}}getAudioInputDevices(t){return u(this,null,function*(){let e=t;return t||(e=yield this.getAvailableDevices()),e.filter(r=>r.kind==="audioinput")})}getVideoInputDevices(t){return u(this,null,function*(){let e=t;return t||(e=yield this.getAvailableDevices()),e.filter(r=>r.kind==="videoinput")})}getAudioOutputDevices(t){return u(this,null,function*(){let e=t;return t||(e=yield this.getAvailableDevices()),e.filter(r=>r.kind==="audiooutput")})}}var O0=Object.defineProperty,N0=Object.getOwnPropertyDescriptor,ks=(s,t,e,r)=>{for(var i=r>1?void 0:r?N0(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&&O0(t,e,i),i},Jn,Qt,Ne,Ag;let Ft=(Ag=class extends D0{constructor(t,e){super();m(this,Jn,void 0);m(this,Qt,void 0);m(this,Ne,void 0);T(this,Ne,t),T(this,Qt,new M0(t,e)),T(this,Jn,new AbortController)}get telemetry(){return n(this,Ne).getValue("telemetry")}get logger(){return n(this,Ne).getValue("logger")}get constraintsBuilder(){return n(this,Qt)}destruct(){return u(this,null,function*(){var t;(t=n(this,Jn))==null||t.abort()})}handlePermissionErrors(t,e){const r=zc(t,e.name,e.message);return this.permissions[t]=r,n(this,Ne).getValue("peerSessionStore").emit(R.MEDIA_PERMISSION_ERROR,{message:r,constraints:e.constraints,kind:t}),r}getAudioAndVideoTrack(t,e){return u(this,null,function*(){var r,i,a,o;try{const c=yield this.getAudioInputDevices(),d=yield this.getVideoInputDevices(),l=!!(c!=null&&c.find(M=>M.deviceId===t));let p;t&&l?p=t:c&&((r=c[0])!=null&&r.deviceId)&&(p=(i=c[0])==null?void 0:i.deviceId);const g=!!(d!=null&&d.find(M=>M.deviceId===e));let f;e&&g?f=e:d&&((a=d[0])!=null&&a.deviceId)&&(f=(o=d[0])==null?void 0:o.deviceId);const v={audio:n(this,Qt).getAudioConstraints(p).audio,video:n(this,Qt).getVideoConstraints(f).video};this.logger.info("getUserMediaWithoutTimeout::requesting_user_media",{constraints:JSON.stringify(v)});const E=yield navigator.mediaDevices.getUserMedia(v);this.logger.info("getUserMediaWithoutTimeout::received_user_media",{constraints:JSON.stringify(v)});const _=E.getAudioTracks()[0];let C=E.getVideoTracks()[0];if(this.permissions.audio="ACCEPTED",this.permissions.video="ACCEPTED",n(this,Ne).getValue("flagsmith").hasFeature(Z.OBS_QUALITY)&&C.label.includes("OBS Virtual")){const $=(yield this.getVideoInputDevices()).find(x=>x.label.includes("OBS Virtual"));C=yield this.getVideoTrack($.deviceId)}return n(this,Ne).getValue("peerSessionStore").emit(R.MEDIA_PERMISSION_UPDATE,{message:this.permissions.audio,kind:"audio"}),n(this,Ne).getValue("peerSessionStore").emit(R.MEDIA_PERMISSION_UPDATE,{message:this.permissions.video,kind:"video"}),{audioTrack:_,videoTrack:C}}catch(c){throw this.logger.error("WebMediaInterface.getAudioAndVideoTrack",{error:c}),new k("Couldnt fetch audio and video track","1605")}})}getAudioTrack(t,e){return u(this,null,function*(){var c,d;let r=yield this.getAudioInputDevices();if(!(r!=null&&r.length))throw this.permissions.audio="NO_DEVICES_AVAILABLE",n(this,Ne).getValue("peerSessionStore").emit(R.MEDIA_PERMISSION_UPDATE,{message:this.permissions.audio,kind:"audio"}),new k("No audio devices available","1606");const i=!!(r!=null&&r.find(l=>l.deviceId===e));let a;e&&i?a=e:(c=r[0])!=null&&c.deviceId&&(a=(d=r[0])==null?void 0:d.deviceId);const o=l=>u(this,null,function*(){let p;try{r=r.filter(f=>f.deviceId!==l),p=n(this,Qt).getAudioConstraints(l),this.logger.info("getUserMediaWithoutTimeout::requesting_user_media",{constraints:JSON.stringify(p)});const[g]=(yield navigator.mediaDevices.getUserMedia(p)).getAudioTracks();return this.logger.info("getUserMediaWithoutTimeout::received_user_media",{constraints:JSON.stringify(p)}),g}catch(g){const f=zc("audio",g.name,g.message),v=new au(g.name,g.message,p);if(f==="COULD_NOT_START"){const E=r.shift();if(!E)throw v;this.logger.info("getAudioTrack::gum_failed",{constraints:JSON.stringify(p),error:g});const _=n(this,Qt).getAudioConstraints(E.deviceId);return this.logger.info("getAudioTrack::retrying_gum_for_next_device",{constraints:JSON.stringify(_)}),o(E.deviceId)}throw v}});try{const l=yield o(a);return l.enabled=!t,this.permissions.audio!=="ACCEPTED"&&(this.permissions.audio="ACCEPTED",n(this,Ne).getValue("peerSessionStore").emit(R.MEDIA_PERMISSION_UPDATE,{message:this.permissions.audio,kind:"audio"})),l}catch(l){throw l.constraints&&this.handlePermissionErrors("audio",l),new k(l.message,"1601")}})}getVideoTrack(t){return u(this,null,function*(){var l,p,g;const e=n(this,Ne).getValue("flagsmith").hasFeature(Z.OBS_QUALITY),r=(l=yield this.getCurrentDeviceLabel(t))==null?void 0:l.includes("OBS Virtual"),i=e&&r,a=yield this.getVideoInputDevices();if(!(a!=null&&a.length))throw this.permissions.video="NO_DEVICES_AVAILABLE",n(this,Ne).getValue("peerSessionStore").emit(R.MEDIA_PERMISSION_UPDATE,{message:this.permissions.video,kind:"video"}),new k("No video devices available","1607");const o=!!(a!=null&&a.find(f=>f.deviceId===t));let c;t&&o?c=t:(p=a[0])!=null&&p.deviceId&&(c=(g=a[0])==null?void 0:g.deviceId);const d=f=>u(this,null,function*(){try{let v=f;const{video:E}=v;i&&typeof E!="boolean"&&(v={video:{deviceId:E.deviceId}}),this.logger.info("getUserMediaWithoutTimeout::requesting_user_media",{constraints:JSON.stringify(v)});const[_]=(yield navigator.mediaDevices.getUserMedia(v)).getVideoTracks();if(i&&typeof E!="boolean"&&typeof E.width=="object"){const{width:C,height:A}=_.getSettings(),{ideal:M}=E.width;_.applyConstraints({width:{ideal:M},height:{ideal:Math.floor(A*M/C)},frameRate:E.frameRate})}return this.logger.info("getUserMediaWithoutTimeout::received_user_media",{constraints:JSON.stringify(v)}),_}catch(v){const E=zc("video",v.name,v.message),_=new au(v.name,v.message,f);if(E==="COULD_NOT_START"){const C=a.shift();if(!C)throw _;this.logger.info("getVideoTrack::gum_failed",{constraints:JSON.stringify(f),error:v});const A=n(this,Qt).getVideoConstraints(C.deviceId);return this.logger.info("getVideoTrack::retrying_gum_for_next_device",{constraints:JSON.stringify(A)}),d({video:A.video})}throw _}});try{const f=n(this,Qt).getVideoConstraints(c),v=yield d(f);return this.permissions.video!=="ACCEPTED"&&(this.permissions.video="ACCEPTED",n(this,Ne).getValue("peerSessionStore").emit(R.MEDIA_PERMISSION_UPDATE,{message:this.permissions.video,kind:"video"})),v}catch(f){throw f.constraints&&this.handlePermissionErrors("video",f),new k(f.message,"1602")}})}getScreenShareTracks(){return u(this,null,function*(){const t=e=>u(this,null,function*(){try{this.logger.info("getDisplayMediaWithoutTimeout::requesting_display_media",{constraints:JSON.stringify(e)}),n(this,Ne).getValue("callstats").screenShareRequested();const r=yield navigator.mediaDevices.getDisplayMedia(e);return this.logger.info("getDisplayMediaWithoutTimeout::received_display_media",{constraints:JSON.stringify(e)}),r}catch(r){const i=zc("video",r.name,r.message),a=new au(r.name,r.message,e),o={video:!0};if(WC(e,o)||!n(this,Ne).getValue("flagsmith").hasFeature(Z.SCREEENSHARE_CONSTRAINTS_RETRY))throw a;if(i==="COULD_NOT_START")return t(o);throw a}});try{const e=n(this,Qt).getScreenShareConstraints(),r=yield t(e);return this.permissions.screenshare!=="ACCEPTED"&&(this.permissions.screenshare="ACCEPTED",n(this,Ne).getValue("peerSessionStore").emit(R.MEDIA_PERMISSION_UPDATE,{message:this.permissions.screenshare,kind:"screenshare"})),{audioTrack:r.getAudioTracks()[0],videoTrack:r.getVideoTracks()[0]}}catch(e){throw e.constraints&&this.handlePermissionErrors("screenshare",e),new k(e.message,"1612")}})}getCurrentDeviceLabel(t){return u(this,null,function*(){const e=yield this.getDevice(t||"default");return e==null?void 0:e.label})}enumerateDevicesWithExternalFirst(){return u(this,null,function*(){const t=yield navigator.mediaDevices.enumerateDevices(),e=i=>{var o;const a=((o=i.label)==null?void 0:o.toLowerCase())||"";return Ed(i)?4:a.includes("airpods")||a.includes("airdopes")||a.includes("bluetooth")||a.includes("wireless")||a.includes("headphones")||a.includes("headset")||a.includes("earbuds")||a.includes("usb")||a.includes("external")?0:i.deviceId==="default"||a.includes("default")?1:a.includes("built-in")||a.includes("internal")?2:3},r=i=>{var o;if(i.kind!=="videoinput")return!1;const a=((o=i.label)==null?void 0:o.toLowerCase())||"";return a.includes("front")||a.includes("user")||a.includes("selfie")?!0:!(a.includes("back")||a.includes("rear")||a.includes("environment"))};return t.sort((i,a)=>{var p,g;const o=e(i),c=e(a);if(o!==c)return o-c;const d=i.deviceId==="default"||((p=i.label)==null?void 0:p.toLowerCase().includes("default")),l=a.deviceId==="default"||((g=a.label)==null?void 0:g.toLowerCase().includes("default"));if(d&&!l)return-1;if(!d&&l)return 1;if(i.kind==="videoinput"&&a.kind==="videoinput"){const f=r(i),v=r(a);if(f&&!v)return-1;if(!f&&v)return 1}return 0})})}getAvailableDevices(){return u(this,null,function*(){try{return(yield this.enumerateDevicesWithExternalFirst())||[]}catch(t){return this.logger.error("enumerate_devices_failed",{error:t}),[]}})}getAvailableDevicesByKind(t){return u(this,null,function*(){try{return(yield this.enumerateDevicesWithExternalFirst()).filter(({kind:e})=>t===e)}catch(e){throw this.logger.error("enumerate_devices_failed",{error:e}),new k("Failed to get available devices by kind","1609")}})}getDevice(t){return u(this,null,function*(){try{return(yield this.enumerateDevicesWithExternalFirst()).filter(r=>r.deviceId===t)[0]}catch(e){throw this.logger.error("enumerate_devices_failed",{error:e}),new k("Failed to get device","1609")}})}onDeviceChange(t){return u(this,null,function*(){if(Se.supportsDeviceChangeEvent()){let e=yield this.getAvailableDevices();navigator.mediaDevices.addEventListener("devicechange",r=>u(this,null,function*(){var l,p;const i=g=>`${g.kind}-${g.label}-${g.deviceId}-${g.groupId}`,a=new Set(e.map(g=>i(g))),o=yield this.getAvailableDevices(),c=new Set(o.map(g=>i(g))),d={added:o.filter(g=>!a.has(i(g))),removed:e.filter(g=>!c.has(i(g))),devices:o};if(e=o,(l=d.added)!=null&&l.length||(p=d.removed)!=null&&p.length){this.logger.info("repopulated_full_device_list",{devices:JSON.stringify(o)});const g=[...d.added,...d.removed];g.some(f=>f.kind==="audioinput")&&n(this,Ne).getValue("callstats").devices("AUDIO",o==null?void 0:o.filter(f=>f.kind==="audioinput")),g.some(f=>f.kind==="videoinput")&&n(this,Ne).getValue("callstats").devices("VIDEO",o==null?void 0:o.filter(f=>f.kind==="videoinput")),g.some(f=>f.kind==="audiooutput")&&n(this,Ne).getValue("callstats").devices("SPEAKER",o==null?void 0:o.filter(f=>f.kind==="audiooutput")),t(r,d,!1)}}),{signal:n(this,Jn).signal})}})}},Jn=new WeakMap,Qt=new WeakMap,Ne=new WeakMap,Ag);ks([P.trace("WebMediaInterface.destruct")],Ft.prototype,"destruct",1);ks([P.trace("WebMediaInterface.handlePermissionErrors")],Ft.prototype,"handlePermissionErrors",1);ks([P.trace("WebMediaInterface.getAudioAndVideoTrack")],Ft.prototype,"getAudioAndVideoTrack",1);ks([P.trace("WebMediaInterface.getAudioTrack")],Ft.prototype,"getAudioTrack",1);ks([P.trace("WebMediaInterface.getVideoTrack")],Ft.prototype,"getVideoTrack",1);ks([P.trace("WebMediaInterface.getScreenShareTracks")],Ft.prototype,"getScreenShareTracks",1);ks([P.trace("WebMediaInterface.getAvailableDevices")],Ft.prototype,"getAvailableDevices",1);ks([P.trace("WebMediaInterface.getAvailableDevicesByKind")],Ft.prototype,"getAvailableDevicesByKind",1);ks([P.trace("WebMediaInterface.getDevice")],Ft.prototype,"getDevice",1);ks([P.trace("WebMediaInterface.onDeviceChange")],Ft.prototype,"onDeviceChange",1);Ft=ks([dt("1600")],Ft);const Of=Ft,tn={setItem:(s,t,e)=>{try{localStorage.setItem(s,t)}catch(r){e==null||e.error("LocalStorage::setItem::crashed",{error:r,localStorage:{key:s,value:t}})}},getItem:(s,t)=>{try{return localStorage.getItem(s)}catch(e){t==null||t.error("LocalStorage::getItem::crashed",{error:e,localStorage:{key:s}})}return null}},V0=(s=0)=>new Promise(t=>setTimeout(t,s)),L0=(s,t,e)=>{const r=typeof e=="number"?e:250,i=s.createMediaStreamSource(t),a=s.createAnalyser();a.fftSize=2048,i.connect(a);const o=new Uint8Array(a.fftSize);let c=!1;setTimeout(()=>{c=!0},r);function d(){return c?Promise.resolve(!0):(a.getByteTimeDomainData(o),o.some(l=>l!==128&&l!==0)?Promise.resolve(!1):V0().then(d))}return d().then(l=>(i.disconnect(),l),l=>{throw i.disconnect(),l})},x0=typeof AudioContext!="undefined"?AudioContext:null;class kh{constructor(t){h(this,"_AudioContext");h(this,"audioContext");h(this,"_audioContextRefContainers");const e=O({AudioContext:x0},t);Object.defineProperties(this,{_AudioContext:{value:e.AudioContext},audioContext:{value:null,writable:!0},_audioContextRefContainers:{value:new Set},AudioContextProvider:{enumerable:!0,value:kh}})}getOrCreate(t){if(!this._audioContextRefContainers.has(t)&&(this._audioContextRefContainers.add(t),this._AudioContext&&!this.audioContext))try{this.audioContext=new this._AudioContext}catch(e){}return this.audioContext}release(t){this._audioContextRefContainers.has(t)&&(this._audioContextRefContainers.delete(t),!this._audioContextRefContainers.size&&this.audioContext&&(this.audioContext.close(),this.audioContext=null))}}const ag=new kh,U0=3,$0=250;function F0(s){const t={},e=ag.getOrCreate(t);let r=U0;function i(){return r-=1,L0(e,s.srcObject,$0).then(a=>a?r>0?i():!0:!1).catch(()=>!0)}return i().finally(()=>{ag.release(t)})}function og(s,t){return u(this,null,function*(){const e=new Audio,r=new MediaStream;r.addTrack(t),e.srcObject=r;let i=!1;try{const a=e.play();a&&(yield a),i=yield F0(e),i&&s.info("checkIfAudioTrackIsSilent::silence_detected")}catch(a){s.error("checkIfAudioTrackIsSilent::failed_to_detect_silence",{error:a})}finally{e.pause(),e.remove()}return i})}var B0=Object.defineProperty,H0=Object.getOwnPropertyDescriptor,Nf=(s,t,e,r)=>{for(var i=r>1?void 0:r?H0(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&&B0(t,e,i),i};let Pd=class extends Da{constructor(t,e,r,i){var o;const a=t.getValue("logger");super(a);h(this,"constructorName",this.constructor.name);h(this,"userSelectedDevice");h(this,"mediaInterface");h(this,"isNonPreferredDevice");h(this,"_mediaTrack");h(this,"transformedMediaTrack");h(this,"middlewares",[]);h(this,"currentDevice");h(this,"userPreferredDeviceKey",`Realtimekit::${this.constructorName}::UserDeviceID`);h(this,"setUserPreferredDevice",t=>tn.setItem(this.userPreferredDeviceKey,t,this.logger));h(this,"getUserPreferredDevice",()=>tn.getItem(this.userPreferredDeviceKey,this.logger));h(this,"isCustomTrack",!1);h(this,"context");this.context=t,this.mediaInterface=e,r&&this.setMediaTrack(r),this.userSelectedDevice=(o=this.getUserPreferredDevice())!=null?o:void 0,this.isNonPreferredDevice=i,this.onTrackEnded=this.onTrackEnded.bind(this),this.onTrackMuted=this.onTrackMuted.bind(this)}get telemetry(){return this.context.getValue("telemetry")}disableTrack(){var t,e;this.removeMediaTrackListeners(),this.isCustomTrack||(t=this._mediaTrack)==null||t.stop(),this._mediaTrack=void 0,(e=this.transformedMediaTrack)==null||e.stop(),this.transformedMediaTrack=void 0}get mediaTrack(){return this._mediaTrack}setMediaTrack(t,e=!1){return u(this,null,function*(){const r=i=>{this.logger.error(`${this.constructorName}.setMediaTrack.error`,{error:i})};try{this.disableTrack()}catch(i){r(i)}this._mediaTrack=yield this.conditionallyChangeTrack(t,e),yield this.setTransformedTrack();try{this.addMediaTrackListeners(),yield this.setCurrentDevice()}catch(i){r(i)}})}get trackEnabled(){return!!this.mediaTrack&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled}muteTrack(){if(!this.mediaTrack){this.logger.warn("BaseMediaHandler.muteTrack Tried muting with no track present");return}this.transformedMediaTrack&&(this.transformedMediaTrack.enabled=!1),this.mediaTrack.enabled=!1}unmuteTrack(){return u(this,null,function*(){try{this.mediaTrack?this.mediaTrack.enabled=!0:yield this.enableTrack(!1)}catch(t){throw this.logger.error(`${this.constructorName}.unmuteTrack.error`,{error:t}),this.disableTrack(),new k("Failed to unmute track","1611")}})}getCurrentDeviceId(){var e;const{kind:t}=this.mediaTrack;switch(t){case"audio":{const{deviceId:r}=this.mediaTrack.getSettings();if(r)return r;const i=this.mediaTrack.getConstraints();return this.userSelectedDevice?(i&&typeof i.deviceId=="object"&&"exact"in i.deviceId?i.deviceId.exact:i.deviceId)||((e=i==null?void 0:i.advanced)==null?void 0:e[0].deviceId)||"default":this.mediaTrack.getSettings().deviceId}default:return this.mediaTrack.getSettings().deviceId}}setCurrentDevice(){return u(this,null,function*(){var e;if(!this.mediaTrack){this.currentDevice=void 0;return}const t=this.getCurrentDeviceId();((e=this.currentDevice)==null?void 0:e.deviceId)!==t&&(this.currentDevice=yield this.mediaInterface.getDevice(t))})}setDevice(r,i){return u(this,arguments,function*(t,{saveDevicePreference:e}){if(!t)throw this.logger.warn(`${this.constructorName}.setDevice No device received`),new k("No device received!","1603");this.userSelectedDevice=t.deviceId,e&&this.setUserPreferredDevice(t.deviceId),yield this.onSetDevice(t)})}addMiddleware(t){return u(this,null,function*(){if(Se.isWebKitBased()&&!zP.hasFeature(Z.ALLOW_SAFARI_MEDIA_MIDDLEWARES))return{success:!1,message:"Middlewares are not supported in this WebKit engine based browser."};if(this.middlewares.includes(t))return{success:!1,message:"This middleware has been applied, already. Skipping."};try{return this.middlewares.push(t),this.trackEnabled&&(yield this.setTransformedTrack()),{success:!0,message:"Successfully added the middleware."}}catch(e){return this.logger.error("While adding middleware",{error:e}),this.removeMiddleware(t),{success:!1,message:e==null?void 0:e.message}}})}removeMiddleware(t){return u(this,null,function*(){const e=this.middlewares.indexOf(t,0);if(e>-1)try{return this.middlewares.splice(e,1),yield this.setTransformedTrack(!0),{success:!0,message:"Successfully removed the middleware."}}catch(r){return this.logger.error("While removing middleware",{error:r}),{success:!1,message:r==null?void 0:r.message}}return{success:!1,message:"No such middleware was found. Skipping."}})}removeAllMiddlewares(){return u(this,null,function*(){var t;if((t=this.middlewares)!=null&&t.length)try{return this.middlewares=[],yield this.setTransformedTrack(!0),{success:!0,message:"Successfully removed all the middlewares."}}catch(e){return this.logger.error("While removing all the middlewares",{error:e}),{success:!1,message:e==null?void 0:e.message}}return{success:!1,message:"No middlewares were found. Skipping."}})}addMediaTrackListeners(){var t,e,r;this.mediaTrack&&(this.logger.info(`${this.constructorName}.addMediaTrackListeners for deviceId ${(e=(t=this.mediaTrack)==null?void 0:t.getSettings())==null?void 0:e.deviceId} of type ${(r=this.mediaTrack)==null?void 0:r.kind}`),this.mediaTrack.addEventListener("ended",this.onTrackEnded),this.mediaTrack.addEventListener("mute",this.onTrackMuted))}removeMediaTrackListeners(){var t,e,r;this.mediaTrack&&(this.logger.info(`${this.constructorName}.removeMediaTrackListeners for deviceId ${(e=(t=this.mediaTrack)==null?void 0:t.getSettings())==null?void 0:e.deviceId} of type ${(r=this.mediaTrack)==null?void 0:r.kind}`),this.logger.info(`${this.constructorName}.removeMediaTrackListeners`),this.mediaTrack.removeEventListener("ended",this.onTrackEnded),this.mediaTrack.removeEventListener("mute",this.onTrackMuted))}};Nf([P.trace("BaseMediaHandler.unmuteTrack")],Pd.prototype,"unmuteTrack",1);Pd=Nf([dt("1600")],Pd);const Vf=Pd;var q0=Object.defineProperty,j0=Object.getOwnPropertyDescriptor,Ih=(s,t,e,r)=>{for(var i=r>1?void 0:r?j0(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&&q0(t,e,i),i};const ou="[Realtimekit]nonSilentDeviceLabels";class xl extends Vf{onSetDevice(t){return u(this,null,function*(){if(!t)throw this.logger.warn("AudioMediaHandler.setDevice No device received"),new k("No device received!","1603");if(t.kind!=="audioinput")throw this.logger.warn("AudioMediaHandler.setDevice Received non audio device"),new k("Non audio device received while setting device!","1603");try{const e=this.trackEnabled;this.disableTrack(),yield this.setMediaTrack(yield this.mediaInterface.getAudioTrack(!e,this.userSelectedDevice))}catch(e){throw this.logger.error("AudioMediaHandler.setDevice.error",{error:e}),this.disableTrack(),new k(e.message,"1604")}})}enableTrack(t,e){return u(this,null,function*(){if(this.trackEnabled){this.logger.warn("AudioMediaHandler.enableTrack Track already enabled!");return}if(e){this.isCustomTrack=!0,yield this.setMediaTrack(e,!0);return}this.isCustomTrack=!1;const r=yield this.mediaInterface.getAudioTrack(t,this.userSelectedDevice);yield this.setMediaTrack(r)})}setTransformedTrack(t){return u(this,null,function*(){var e;if(!t&&!((e=this.middlewares)!=null&&e.length)){this.transformedMediaTrack=this.mediaTrack;return}try{this.transformedMediaTrack=yield w0(this.context,this.middlewares,this.mediaTrack),this.emit("trackChanged")}catch(r){this.logger.error("AudioMediaHandler.setTransformedTrack",{error:r}),this.transformedMediaTrack=this.mediaTrack}})}onTrackEnded(){return u(this,null,function*(){this.logger.info("AudioMediaHandler.TrackEnded"),this.emit("trackEnded");const t=this.mediaTrack.enabled;this.disableTrack(),yield this.enableTrack(!t),yield this.setTransformedTrack(),this.emit("trackChanged")})}onTrackMuted(){this.logger.info("AudioMediaHandler.TrackMuted"),this.emit("trackMuted")}conditionallyChangeTrack(t,e=!1){return u(this,null,function*(){var d;if(!t||this.userSelectedDevice||e)return t;let r=t;const i=yield this.mediaInterface.getAudioInputDevices(),a=this.isNonPreferredDevice?i.filter(l=>l&&!this.isNonPreferredDevice(l)):i;if(!(a!=null&&a.length))return r;a.find(l=>l.deviceId===t.getSettings().deviceId)||(r.stop(),this.logger.info("localmediahandler::setupstreams::found_audio_non_preferred"),r=yield this.mediaInterface.getAudioTrack(!1,a[0].deviceId));const o=JSON.parse(tn.getItem(ou,this.logger));if(o!=null&&o.devices.some(l=>l.label===r.label))return r;if(!(yield og(this.logger,r))){const l=(d=o==null?void 0:o.devices.concat({label:r.label}))!=null?d:[{label:r.label}];return tn.setItem(ou,JSON.stringify({devices:l}),this.logger),r}this.logger.info("AudioMediaHandler.conditionallyChangeTrack.DetectedSilentTrack");const c=r.getSettings().deviceId;return a.filter(l=>l.deviceId!==c).some(l=>u(this,null,function*(){var p;if(r=yield this.mediaInterface.getAudioTrack(!1,l.deviceId),!(yield og(this.logger,r))){const g=(p=o==null?void 0:o.devices.concat({label:r.label}))!=null?p:[{label:r.label}];return tn.setItem(ou,JSON.stringify({devices:g}),this.logger),this.logger.info("AudioMediaHandler.conditionallyChangeTrack.SuccesfullyChangedTrack"),!0}return this.logger.info("AudioMediaHandler.conditionallyChangeTrack.AnotherSilentTrackFound"),!1})),r})}}Ih([P.trace("AudioMediaHandler.setTransformedTrack")],xl.prototype,"setTransformedTrack",1);Ih([P.trace("AudioMediaHandler.onTrackEnded")],xl.prototype,"onTrackEnded",1);Ih([P.trace("AudioMediaHandler.conditionallyChangeTrack")],xl.prototype,"conditionallyChangeTrack",1);const G0=xl;var Pi;class W0{constructor(t,e){m(this,Pi,void 0);h(this,"currentDevice");h(this,"userPreferredDeviceKey","Realtimekit::speaker::UserDeviceID");h(this,"logger");h(this,"setUserPreferredDevice",t=>tn.setItem(this.userPreferredDeviceKey,t,this.logger));h(this,"getUserPreferredDevice",()=>tn.getItem(this.userPreferredDeviceKey,this.logger));T(this,Pi,e),this.logger=t.getValue("logger")}setPreferredSpeaker(){return u(this,null,function*(){const t=this.getUserPreferredDevice(),e=yield n(this,Pi).getAudioOutputDevices(),r=e==null?void 0:e.find(i=>i.deviceId===t);yield this.setupSpeaker(r,{saveDevicePreference:!1})})}setupSpeaker(r,i){return u(this,arguments,function*(t,{saveDevicePreference:e}){var c,d;if(!(n(this,Pi)instanceof Of))return;let a=t;if(t||([a]=(yield n(this,Pi).getAvailableDevicesByKind("audiooutput")).filter(p=>!Ed(p))),!a)throw new k("No speaker found","1608");if(((c=this.currentDevice)==null?void 0:c.deviceId)===a.deviceId)return;e&&this.setUserPreferredDevice(a.deviceId),this.currentDevice=a;const o=document.querySelectorAll("audio");(d=o[0])!=null&&d.setSinkId&&o.forEach(l=>u(this,null,function*(){if(typeof l.sinkId!="undefined"&&this.currentDevice.deviceId&&l.sinkId!==this.currentDevice.deviceId)try{yield l.setSinkId(this.currentDevice.deviceId)}catch(p){}}))})}}Pi=new WeakMap;const J0=W0;var Lo;class K0 extends Da{constructor(e,r){const i=e.getValue("logger");super(i);h(this,"mediaInterface");h(this,"audioMediaTrack");h(this,"videoMediaTrack");m(this,Lo,void 0);T(this,Lo,e),this.mediaInterface=r}get trackEnabled(){return!!this.videoMediaTrack}enableScreenShare(){return u(this,null,function*(){var e,r;try{const{audioTrack:i,videoTrack:a}=yield this.mediaInterface.getScreenShareTracks();if(this.audioMediaTrack=i,this.videoMediaTrack=a,this.addMediaTrackListeners(),((r=(e=this.mediaInterface)==null?void 0:e.permissions)==null?void 0:r.screenshare)==="ACCEPTED")return;this.mediaInterface.permissions&&(this.mediaInterface.permissions.screenshare="ACCEPTED",n(this,Lo).getValue("peerSessionStore").emit(R.MEDIA_PERMISSION_UPDATE,{message:this.mediaInterface.permissions.screenshare,kind:"screenshare"}))}catch(i){}})}disableScreenShare(){var e,r;this.removeMediaTrackListeners(),(e=this.audioMediaTrack)==null||e.stop(),(r=this.videoMediaTrack)==null||r.stop(),this.videoMediaTrack=void 0,this.audioMediaTrack=void 0}updateConstraints(e){return u(this,null,function*(){if(!this.videoMediaTrack)throw new k("No media track enabled!","1610");const r=this.mediaInterface;if(!r.constraintsBuilder)throw new k("update constraints not supported for non web clients","1100",this.logger);try{this.videoMediaTrack.applyConstraints(r.constraintsBuilder.getUpdatedVideoConstraints(e)),this.addMediaTrackListeners()}catch(i){this.logger.error("ScreenShareHandler.updateConstraints.error",{error:i})}})}addMediaTrackListeners(){var e,r;(e=this.videoMediaTrack)==null||e.addEventListener("ended",this.onTrackEnded.bind(this)),Se.isWebKitBased()&&((r=this.videoMediaTrack)==null||r.addEventListener("mute",this.onTrackEnded.bind(this)))}removeMediaTrackListeners(){var e,r;(e=this.videoMediaTrack)==null||e.removeEventListener("ended",this.onTrackEnded),(r=this.videoMediaTrack)==null||r.removeEventListener("mute",this.onTrackEnded)}onTrackEnded(){this.emit("trackEnded")}}Lo=new WeakMap;const z0=K0;var Y0=Object.defineProperty,Q0=Object.getOwnPropertyDescriptor,Ul=(s,t,e,r)=>{for(var i=r>1?void 0:r?Q0(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&&Y0(t,e,i),i},Kn,xo;class Lc extends Vf{constructor(e,r,i,a){super(e,r,i,a);m(this,Kn,void 0);m(this,xo,{disablePerFrameCanvasRendering:!1});T(this,Kn,new R0(e))}onSetDevice(e){return u(this,null,function*(){if(!e)throw this.logger.warn("VideoMediaHandler.setDevice No device received"),new k("No device received!","1603");if(e.kind!=="videoinput")throw this.logger.warn("VideoMediaHandler.setDevice Received non video device",{devices:[e]}),new k("Non video device received while setting video device!","1603");if(!(this.mediaTrack&&this.mediaTrack.enabled)){this.logger.warn("VideoMediaHandler.setDevice Tried switching device with video disabled",{devices:[e]}),this.currentDevice=e;return}try{this.disableTrack(),yield this.setMediaTrack(yield this.mediaInterface.getVideoTrack(this.userSelectedDevice))}catch(r){throw this.logger.error("VideoMediaHandler.setDevice.error",{error:r}),this.disableTrack(),new k("Failed to change device","1600",this.logger)}})}enableTrack(e,r){return u(this,null,function*(){if(this.trackEnabled){this.logger.warn("VideoMediaHandler.enableTrack Track already enabled!");return}if(r){this.isCustomTrack=!0,yield this.setMediaTrack(r,!0);return}this.isCustomTrack=!1;const i=yield this.mediaInterface.getVideoTrack(this.userSelectedDevice);yield this.setMediaTrack(i)})}setTransformedTrack(e){return u(this,null,function*(){var r;if(!e&&!((r=this.middlewares)!=null&&r.length)){this.transformedMediaTrack=this.mediaTrack;return}try{this.transformedMediaTrack=yield n(this,Kn).getTransformedVideoTrack(this.middlewares,this.mediaTrack,n(this,xo)),this.emit("trackChanged")}catch(i){this.logger.error("VideoMediaHandler.setTransformedTrack",{error:i}),this.transformedMediaTrack=this.mediaTrack}})}setVideoMiddlewareGlobalConfig(e){return u(this,null,function*(){T(this,xo,e)})}updateConstraints(e){return u(this,null,function*(){if(!this._mediaTrack)throw new k("No media track enabled!","1610");const r=this.mediaInterface;if(!r.constraintsBuilder)throw new k("update constraints not supported for non web clients","1100",this.logger);try{this._mediaTrack.applyConstraints(r.constraintsBuilder.getUpdatedVideoConstraints(e)),yield this.setTransformedTrack(),this.addMediaTrackListeners(),yield this.setCurrentDevice()}catch(i){this.logger.error("VideoMediaHandler.updateConstraints.error",{error:i})}})}terminateMiddlewareWebWorker(){n(this,Kn).terminateMiddlewareWebWorker()}onTrackEnded(){return u(this,null,function*(){this.logger.info("VideoMediaHandler.TrackEnded"),this.disableTrack(),this.emit("trackEnded")})}onTrackMuted(){this.logger.info("VideoMediaHandler.TrackMuted"),this.emit("trackMuted")}conditionallyChangeTrack(e,r=!1){return u(this,null,function*(){if(!e||this.userSelectedDevice||r)return e;let i=e;const a=yield this.mediaInterface.getVideoInputDevices(),o=this.isNonPreferredDevice?a.filter(c=>!this.isNonPreferredDevice(c)):a;return!(o!=null&&o.length)||window.FAST_RTK||o.find(c=>c.deviceId===e.getSettings().deviceId)||(i.stop(),this.logger.info("localmediahandler::setupstreams::found_video_non_preferred"),i=yield this.mediaInterface.getVideoTrack(o[0].deviceId)),i})}}Kn=new WeakMap,xo=new WeakMap;Ul([P.trace("VideoMediaHandler.setTransformedTrack")],Lc.prototype,"setTransformedTrack",1);Ul([P.trace("VideoMediaHandler.setVideoMiddlewareGlobalConfig")],Lc.prototype,"setVideoMiddlewareGlobalConfig",1);Ul([P.trace("VideoMediaHandler.onTrackEnded")],Lc.prototype,"onTrackEnded",1);Ul([P.trace("VideoMediaHandler.conditionallyChangeTrack")],Lc.prototype,"conditionallyChangeTrack",1);const X0=Lc,cg=_s(vh());var yt,_i,Uo,zn;const Sn=class{constructor(t){m(this,yt,void 0);m(this,_i,void 0);m(this,Uo,void 0);m(this,zn,void 0);if(!t)throw new k("Could not load preset.","0904");T(this,yt,t.config),T(this,Uo,t.name),T(this,_i,t.ui||_s(vh().ui)),T(this,zn,t.permissions.plugins.config)}static fromResponse(t){return new Sn(t)}static default(){return new Sn(cg)}static init(t,e=!0){return!t||e?new Sn(cg):new Sn(t)}get setupScreen(){return{isEnabled:!0}}get waitingRoom(){return{isEnabled:!0}}get controlBar(){return{isEnabled:!0,elements:{chat:!0,fullscreen:!0,invite:!1,layout:!1,participants:!0,plugins:!0,polls:!0,reactions:!1,screenshare:!0}}}get header(){return{isEnabled:!0,elements:{logo:n(this,_i).designTokens.logo,timer:!0,title:!0,participantCount:!0,changeLayout:!1}}}get pipMode(){return!0}get viewType(){return n(this,yt).viewType}get livestreamViewerQualities(){return n(this,yt).livestreamViewerQualities||[]}get maxVideoStreams(){return n(this,yt).maxVideoStreams}get maxScreenShareCount(){return n(this,yt).maxScreenshareCount}get plugins(){return[]}get disabledPlugins(){return Object.keys(n(this,zn)).filter(t=>n(this,zn)[t].disabled)}get designTokens(){return n(this,_i).designTokens}get configDiff(){return n(this,_i).configDiff}get mediaConstraints(){var t,e,r,i,a,o,c,d,l,p,g,f,v,E,_,C,A,M,$,x,B,H,re,et;return{audio:{enableStereo:(i=(r=(e=(t=n(this,yt))==null?void 0:t.media)==null?void 0:e.audio)==null?void 0:r.enableStereo)!=null?i:un.audio.enableStereo,enableHighBitrate:(d=(c=(o=(a=n(this,yt))==null?void 0:a.media)==null?void 0:o.audio)==null?void 0:c.enableHighBitrate)!=null?d:un.audio.enableHighBitrate},video:{quality:(f=(g=(p=(l=n(this,yt))==null?void 0:l.media)==null?void 0:p.video)==null?void 0:g.quality)!=null?f:un.video.quality,frameRate:(C=(_=(E=(v=n(this,yt))==null?void 0:v.media)==null?void 0:E.video)==null?void 0:_.frameRate)!=null?C:un.video.frameRate},screenshare:{quality:(x=($=(M=(A=n(this,yt))==null?void 0:A.media)==null?void 0:M.screenshare)==null?void 0:$.quality)!=null?x:un.screenshare.quality,frameRate:(et=(re=(H=(B=n(this,yt))==null?void 0:B.media)==null?void 0:H.screenshare)==null?void 0:re.frameRate)!=null?et:un.screenshare.frameRate}}}get name(){return n(this,Uo)}};let Nu=Sn;yt=new WeakMap,_i=new WeakMap,Uo=new WeakMap,zn=new WeakMap;var Z0=Object.defineProperty,eD=Object.getOwnPropertyDescriptor,Lf=(s,t,e,r)=>{for(var i=r>1?void 0:r?eD(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&&Z0(t,e,i),i},Yn,$o;class Ah extends Bt{constructor(e,r){const i=e.getValue("logger");super(i);m(this,Yn,void 0);h(this,"state","IDLE");h(this,"playbackUrl");h(this,"ingestionCredentials");h(this,"viewerCount");m(this,$o,void 0);T(this,Yn,r),T(this,$o,e),this.viewerCount=0}get telemetry(){return n(this,$o).getValue("telemetry")}setLivestreamState(e){const r=this.state;this.state=e,r!==e&&this.emitCurrentLivestreamState()}emitCurrentLivestreamState(){this.emit("livestreamUpdate",this.state)}start(){return u(this,arguments,function*(e={manualIngestion:!1}){if(!n(this,Yn).permissions.canLivestream)throw this.logger.error("Livestream::start::permission_denied"),new k("User does not have permission to start livestreaming","1901");this.setLivestreamState("STARTING");try{const r=ot(),{playbackUrl:i,ingestionCredentials:a}=yield r.startLivestreaming(e);this.playbackUrl=i,this.ingestionCredentials=a,e!=null&&e.manualIngestion&&this.setLivestreamState("WAITING_ON_MANUAL_INGESTION")}catch(r){throw this.logger.error("Recording::stop::livestream_failed_to_start",{error:r}),this.setLivestreamState("IDLE"),new k("Error while starting livestream","1900",this.logger)}})}stop(){return u(this,null,function*(){if(!n(this,Yn).permissions.canLivestream)throw this.logger.error("Livestream::stop::permission_denied"),new k("User does not have permission to stop livestreaming","1901");if(this.state!=="LIVESTREAMING"&&this.state!=="WAITING_ON_MANUAL_INGESTION")throw this.logger.error("Livestream::stop::inconsistent_state"),new k("Livestream not started yet","1902");try{this.setLivestreamState("STOPPING"),yield ot().stopLivestreaming()}catch(e){throw this.logger.error("Livestream::stop::livestream_failed_to_stop",{error:e}),this.setLivestreamState("STOPPING"),new k("Error while stopping livestream","1900",this.logger)}})}}Yn=new WeakMap,$o=new WeakMap;Lf([P.trace("livestream.start")],Ah.prototype,"start",1);Lf([P.trace("livestream.stop")],Ah.prototype,"stop",1);var tD=Object.defineProperty,sD=Object.getOwnPropertyDescriptor,rD=(s,t,e,r)=>{for(var i=r>1?void 0:r?sD(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&&tD(t,e,i),i},Qn,Xn,zs,Ms;class xf{constructor(t,e,r){h(this,"livestream");m(this,Qn,void 0);m(this,Xn,void 0);m(this,zs,void 0);m(this,Ms,void 0);T(this,Ms,t),T(this,Xn,e),this.livestream=new Ah(t,e),T(this,zs,r),this.setupEvents()}get logger(){return n(this,Ms).getValue("logger")}get telemetry(){return n(this,Ms).getValue("telemetry")}fetchInitialLivestreamingState(){return u(this,null,function*(){const t=ot(),{status:e,playbackUrl:r,manualIngest:i,ingestionCredentials:a}=yield t.getActiveLivestream();this.livestream.playbackUrl=r,this.livestream.ingestionCredentials=a,e==="LIVE"&&this.livestream.setLivestreamState("LIVESTREAMING"),e==="INVOKED"&&i&&this.livestream.setLivestreamState("WAITING_ON_MANUAL_INGESTION")})}setupEvents(){n(this,zs).on(U.startedLivestream,t=>u(this,null,function*(){this.livestream.playbackUrl=t.playbackUrl,this.livestream.setLivestreamState("LIVESTREAMING");try{n(this,Xn).permissions.canLivestream&&(yield this.fetchInitialLivestreamingState())}catch(e){this.logger.error("Error: LivestreamController.fetchLivestream during startedLivestream re-fetch")}})),n(this,zs).on(U.livestreamingInvoked,t=>u(this,null,function*(){if(t.manualIngest){this.livestream.setLivestreamState("WAITING_ON_MANUAL_INGESTION");try{n(this,Xn).permissions.canLivestream&&(yield this.fetchInitialLivestreamingState())}catch(e){this.logger.error("Error: LivestreamController.fetchLivestream during livestreamingInvoked re-fetch")}}})),n(this,zs).on(U.stoppedLivestream,()=>{this.livestream.setLivestreamState("IDLE"),this.livestream.playbackUrl=void 0,this.livestream.ingestionCredentials=void 0}),n(this,zs).on(U.erroredLivestream,()=>{this.livestream.setLivestreamState("IDLE"),this.livestream.playbackUrl=void 0}),n(this,zs).on(U.roomPeerCount,t=>{this.livestream.viewerCount=t.count,this.livestream.emit("viewerCountUpdate",t.count)}),n(this,Ms).getValue("peerSessionStore").on(R.PEER_JOINED_INTERNAL,t=>u(this,null,function*(){var e;((e=t.flags)==null?void 0:e.hiddenParticipant)===!0&&t.recorderType==="LIVESTREAMER"&&(T(this,Qn,t.id),this.livestream.setLivestreamState("LIVESTREAMING"))})),n(this,Ms).getValue("peerSessionStore").on(R.PEER_CLOSED,t=>{t.id===n(this,Qn)&&(T(this,Qn,void 0),this.livestream.setLivestreamState("IDLE"))}),n(this,Ms).getValue("peerSessionStore").onAsync(R.LEAVE_MEDIA_ROOM,()=>u(this,null,function*(){if(!this.livestream.playbackUrl){this.logger.info("Fetching livestreaming state on leave stage");try{yield this.fetchInitialLivestreamingState()}catch(t){this.logger.error("Failed to fetch livestreaming state on leave stage",{error:t})}}})),n(this,Ms).getValue("peerSessionStore").on(R.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){try{yield this.fetchInitialLivestreamingState()}catch(t){this.logger.error("Error: LivestreamController.fetchLivestream")}}))}}Qn=new WeakMap,Xn=new WeakMap,zs=new WeakMap,Ms=new WeakMap;rD([P.trace("LivestreamController.setupEvents")],xf.prototype,"setupEvents",1);var iD=Object.defineProperty,nD=Object.getOwnPropertyDescriptor,xc=(s,t,e,r)=>{for(var i=r>1?void 0:r?nD(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&&iD(t,e,i),i},rt,Vr,Lr,Nd,Uf;class Na{constructor({name:t,socketHandler:e,meetingId:r}){m(this,Nd);h(this,"name","");m(this,rt,{});m(this,Vr,"");m(this,Lr,void 0);h(this,"rateLimitConfig",{maxInvocations:5,period:1});h(this,"bulkRateLimitConfig",{maxInvocations:5,period:1});h(this,"listeners",{});this.name=t,T(this,Lr,e),T(this,Vr,r)}set(t,e,r=!0,i=!1){return u(this,null,function*(){n(this,rt)[t]=e,r&&this.remoteSet(t,e),i&&(this.listeners[t]&&this.listeners[t].forEach(a=>a({[t]:n(this,rt)[t]})),this.listeners["*"]&&this.listeners["*"].forEach(a=>a({[t]:n(this,rt)[t]})))})}remoteSet(t,e){n(this,Lr).storeInsertKeys(n(this,Vr),this.name,[{key:t,payload:e}])}bulkSet(t){return u(this,null,function*(){t.forEach(({key:e,payload:r})=>{n(this,rt)[e]=r}),n(this,Lr).storeInsertKeys(n(this,Vr),this.name,t)})}update(t,e,r=!0){return u(this,null,function*(){L(this,Nd,Uf).call(this,t,e,r)})}delete(t,e=!0,r=!1){return u(this,null,function*(){if(n(this,rt)[t]&&delete n(this,rt)[t],e)return n(this,Lr).storeDeleteKeys(n(this,Vr),this.name,[{key:t}]);r&&(this.listeners[t]&&(this.listeners[t].forEach(i=>i({[t]:void 0})),delete this.listeners[t]),this.listeners["*"]&&this.listeners["*"].forEach(i=>i({[t]:void 0})))})}bulkDelete(t){return u(this,null,function*(){return t.forEach(({key:e})=>{n(this,rt)[e]&&delete n(this,rt)[e]}),n(this,Lr).storeDeleteKeys(n(this,Vr),this.name,t)})}get(t){if(n(this,rt)[t])return n(this,rt)[t]}getAll(){return n(this,rt)}get rateLimits(){return this.rateLimitConfig}updateRateLimits(t,e){this.rateLimitConfig.maxInvocations=t,this.rateLimitConfig.period=e}get bulkRateLimits(){return this.bulkRateLimitConfig}updateBulkRateLimits(t,e){this.bulkRateLimitConfig.maxInvocations=t,this.bulkRateLimitConfig.period=e}subscribe(t,e){if(this.listeners[t]){this.listeners[t].push(e);return}this.listeners[t]=[e]}unsubscribe(t,e){var r;if(e){this.listeners[t]=((r=this.listeners[t])==null?void 0:r.filter(i=>i!==e))||[];return}this.listeners[t]&&delete this.listeners[t]}populate(t){T(this,rt,t)}}rt=new WeakMap,Vr=new WeakMap,Lr=new WeakMap,Nd=new WeakSet,Uf=function(t,e,r=!0){let i;const a=n(this,rt)[t],o=Object.prototype.toString.call(e),c=Object.prototype.toString.call(a);if(o!==c){this.set(t,e);return}switch(c){case"[object Array]":i=[...a,...e];break;case"[object Object]":i=O(O({},a),e);break;case"[object Map]":i=new Map([...a,...e]);break;case"[object Set]":i=new Set([...a,...e]);break;default:i=e;break}this.set(t,i,r)};xc([Rt(Oa,"rateLimitConfig")],Na.prototype,"remoteSet",1);xc([Rt(Oa,"bulkRateLimitConfig")],Na.prototype,"bulkSet",1);xc([Rt(Oa,"rateLimitConfig")],Na.prototype,"update",1);xc([Rt(Oa,"rateLimitConfig")],Na.prototype,"delete",1);xc([Rt(Oa,"bulkRateLimitConfig")],Na.prototype,"bulkDelete",1);var Ci,wi,Fo,Vu,Bo,xr,Vd,$f;class aD{constructor(t,e){m(this,Fo);m(this,Vd);h(this,"stores",new Map);m(this,Ci,void 0);m(this,wi,"");m(this,Bo,void 0);m(this,xr,new Map);T(this,Ci,e),T(this,wi,t.getValue("meetingId")),T(this,Bo,t),L(this,Vd,$f).call(this)}create(t){const e=new Na({name:t,socketHandler:n(this,Ci),meetingId:n(this,wi)});return n(this,Ci).storeGetKeys(n(this,wi),t,[]),new Promise((i,a)=>{const o=setTimeout(()=>a(Error("Failed")),3e3);n(this,xr).set(t,{rejectTimeout:o,resolve:i,store:e})})}}Ci=new WeakMap,wi=new WeakMap,Fo=new WeakSet,Vu=function(){return n(this,Bo).getValue("peerId")},Bo=new WeakMap,xr=new WeakMap,Vd=new WeakSet,$f=function(){[J.storeInsertKeys,J.storeGetKeys,J.storeDeleteKeys].forEach(t=>{n(this,Ci).on(t,e=>u(this,null,function*(){var a,o;if(e.pluginId!==n(this,wi))return;const r=(a=e.storeItems)==null?void 0:a.map(c=>{var d;return{timestamp:c.timestamp,peerId:c.peerId,payload:JSON.parse((d=c.payload)!=null&&d.length?new TextDecoder().decode(c.payload):"{}"),key:c.storeKey}});if(t===J.storeGetKeys){const c=n(this,xr).get(e.storeName),d=this.stores.get(e.storeName)||(c==null?void 0:c.store);n(this,xr).get(e.storeName)&&(this.stores.set(e.storeName,c.store),c.resolve(d),clearTimeout(c.rejectTimeout),n(this,xr).delete(e.storeName)),r.forEach(l=>{d.set(l.key,l.payload,!1,!1)});return}const i=this.stores.get(e.storeName)||((o=n(this,xr).get(e.storeName))==null?void 0:o.store);i!==void 0&&(t===J.storeInsertKeys&&r.forEach(({key:c,peerId:d,payload:l})=>{d!==n(this,Fo,Vu)&&i.set(c,l,!1,!0)}),t===J.storeDeleteKeys&&r.forEach(({key:c,peerId:d})=>{d!==n(this,Fo,Vu)&&i.delete(c,!1,!0)}))}))})};function di(s){var t,e,r,i,a,o,c,d,l,p,g,f,v;return s?{media:{audio:{enabled:s.audioEnabled,trackId:(t=s.audioTrack)==null?void 0:t.id,permission:"mediaPermissions"in s?(e=s.mediaPermissions)==null?void 0:e.audio:null},video:{enabled:s.videoEnabled,trackId:(r=s.videoTrack)==null?void 0:r.id,permission:"mediaPermissions"in s?(i=s.mediaPermissions)==null?void 0:i.video:null},screenshare:{enabled:s.screenShareEnabled,permission:"mediaPermissions"in s?(a=s.mediaPermissions)==null?void 0:a.screenshare:null,audio:{enabled:(c=(o=s.screenShareTracks)==null?void 0:o.audio)==null?void 0:c.enabled,trackId:(l=(d=s.screenShareTracks)==null?void 0:d.audio)==null?void 0:l.id},video:{enabled:(g=(p=s.screenShareTracks)==null?void 0:p.video)==null?void 0:g.enabled,trackId:(v=(f=s.screenShareTracks)==null?void 0:f.video)==null?void 0:v.id}}}}:{}}var oD=Object.defineProperty,cD=Object.getOwnPropertyDescriptor,Va=(s,t,e,r)=>{for(var i=r>1?void 0:r?cD(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&&oD(t,e,i),i};const dD=.8,lD=1.2;var Zn,ea,Nt,Ri,so,Ur,gn,bi,ro,Ld,Ff,Ys,Ho,$r,ki,io,Qs,xd,qo,Lu,Ud,Bf,$d,Hf,Mg;let Tr=(Mg=class extends Bt{constructor(t,e,r,i){const a=t.getValue("logger");super(a);m(this,Ri);m(this,Ur);m(this,bi);m(this,Ld);m(this,ki);m(this,qo);m(this,Ud);m(this,$d);h(this,"id");h(this,"userId");h(this,"name");h(this,"picture");h(this,"isHost");h(this,"customParticipantId");h(this,"flags");h(this,"device");h(this,"videoTrack");h(this,"audioTrack");h(this,"screenShareTracks");h(this,"videoEnabled");h(this,"audioEnabled");h(this,"screenShareEnabled");h(this,"producers");h(this,"manualProducerConfig");m(this,Zn,void 0);h(this,"supportsRemoteControl",!1);m(this,ea,void 0);h(this,"presetName");m(this,Nt,void 0);m(this,Ys,void 0);m(this,Ho,void 0);m(this,$r,new Map);m(this,Qs,1);m(this,xd,Eh(t=>{if(!this.videoTrack)return;const{clientWidth:e,clientHeight:r}=t,{width:i,height:a}=this.videoTrack.getSettings();if(!i||!a)return;const o=a/r,c=i/e,d=Math.max(o,c);d>lD&&n(this,Qs)===1?(T(this,Qs,0),n(this,Nt).getValue("peerSessionStore").emit(R.MAX_SPATIAL_LAYER_CHANGE,{peerId:this.id,maxSpatialLayer:n(this,Qs)})):d<dD&&n(this,Qs)===0&&(T(this,Qs,1),n(this,Nt).getValue("peerSessionStore").emit(R.MAX_SPATIAL_LAYER_CHANGE,{peerId:this.id,maxSpatialLayer:n(this,Qs)}))},2e3));T(this,Nt,t);const{id:o,userId:c,displayName:d,device:l,picture:p,isHost:g,flags:f,clientSpecificId:v,stageStatus:E,customParticipantId:_,audioMuted:C,audioTrack:A,videoEnabled:M=!1,videoTrack:$,producers:x,metadata:B}=e;this.id=o,this.userId=c,this.name=d,this.device=l,this.picture=p,this.isHost=g,this.flags=f,this.manualProducerConfig=ew,T(this,ea,E!=null?E:"ON_STAGE"),this.customParticipantId=_!=null?_:v,this.audioEnabled=!C,this.audioTrack=A,this.videoEnabled=M,this.videoTrack=$,this.screenShareTracks={audio:void 0,video:void 0},this.producers=x!=null?x:[],this.presetName=B==null?void 0:B.preset_name,T(this,Zn,!1),T(this,Ys,r),T(this,Ho,i),this.setupEvents(),this.updateVideo=this.updateVideo.bind(this),L(this,qo,Lu).call(this)}get clientSpecificId(){return this.customParticipantId}get stageStatus(){return n(this,ea)}get telemetry(){return n(this,Nt).getValue("telemetry")}setVideoEnabled(t,e=!0){this.videoEnabled=t,e&&(this.logger.info("Participant::setVideoEnabled::videoUpdate",O({},di(this))),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}))}setAudioEnabled(t,e=!0){this.audioEnabled=t,e&&(this.logger.info("Participant::setAudioEnabled::audioUpdate",O({},di(this))),this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack}))}setScreenShareEnabled(t,e=!0){this.screenShareEnabled=t,e&&this.emit("screenShareUpdate",{screenShareEnabled:this.screenShareEnabled,screenShareTracks:this.screenShareTracks})}setupEvents(){this.on("videoUpdate",L(this,qo,Lu)),n(this,Ur,gn)&&(this.on("audioUpdate",L(this,Ud,Bf)),this.on("screenShareUpdate",L(this,$d,Hf)))}pin(){return u(this,null,function*(){if(!n(this,bi,ro))throw new k("Can`t pin participant without joining room","1205");if(!n(this,Ys).permissions.pinParticipant)throw new k("You do not have permission to pin participants.","1201");return n(this,Ri,so).pinPeer(this.id)})}unpin(){return u(this,null,function*(){if(!n(this,bi,ro))throw new k("Can`t unpin participant without joining room","1205");if(!n(this,Ys).permissions.pinParticipant)throw new k("You do not have permission to unpin participants.","1201");return n(this,Ri,so).pinPeer(null)})}setIsPinned(t,e=!0){var i;T(this,Zn,t);const r=t?"pinned":"unpinned";(i=n(this,ki,io))==null||i.updateSource(this.id,{pinned:t}),e&&this.emit(r,this)}disableAudio(){return u(this,null,function*(){const t=this.id;if(this.logger.info("Participant::disable_audio",{participant:{id:t}}),!n(this,bi,ro))throw new k("Can`t disable participant audio without joining room","1205");if(n(this,Ys).permissions.canDisableParticipantAudio)return n(this,Ri,so).disableAudio(t);throw this.logger.error("Participant::unauthorized_disable_audio",{participant:{id:t}}),new k("Unauthorized: User does not have permission to disable participant audio.","1201")})}kick(){return u(this,null,function*(){const t=this.id;if(this.logger.info("Participant::kick",{participant:{id:t}}),!n(this,Ld,Ff))throw new k("Can`t kick participant without joining room","1205");if(n(this,Ys).permissions.kickParticipant){yield n(this,Nt).getValue("peerSessionStore").emitAsync(R.KICK_PEER,{peerId:t});return}throw this.logger.error("Participant::unauthorized_kick",{participant:{id:t}}),new k("Unauthorized: User does not have permission to kick participants.","1201")})}disableVideo(){return u(this,null,function*(){const t=this.id;if(this.logger.info("Participant::disable_video",{participant:{id:t}}),!n(this,bi,ro))throw new k("Can`t disable participant video without joining room","1205");if(n(this,Ys).permissions.canDisableParticipantVideo)return n(this,Ri,so).disableVideo(t);throw this.logger.error("Participant::unauthorized_disable_video",{participant:{id:t}}),new k("Unauthorized: User does not have permission to disable participant video.","1201")})}getPermissions(){return u(this,null,function*(){return n(this,Ho).getUserPermissions(this.userId)})}setStageStatus(t){T(this,ea,t),this.emit("stageStatusUpdate",this)}get isPinned(){return n(this,Zn)}registerVideoElement(t){var r,i,a,o;if(!t)return;let e;(i=(r=n(this,$r).get(t))==null?void 0:r.observer)==null||i.disconnect(),"ResizeObserver"in window&&(e=new ResizeObserver(()=>n(this,xd).call(this,t)),e.observe(t)),n(this,$r).set(t,{observer:e}),this.updateVideo(t),(o=n(this,ki,io))==null||o.addSource(this.id,t,this.videoEnabled,this.isPinned,this.name,this.picture,(a=this.raised)!=null?a:!1)}deregisterVideoElement(t){var e,r,i,a;if(!t){(e=n(this,ki,io))==null||e.removeSource(this.id);return}t.srcObject=void 0,(i=(r=n(this,$r).get(t))==null?void 0:r.observer)==null||i.disconnect(),n(this,$r).delete(t),(a=n(this,ki,io))==null||a.removeSource(this.id)}updateVideo(t){var e;if(this.videoEnabled){if(this.videoTrack==null)return;const r=(e=t.srcObject)==null?void 0:e.getTracks()[0];if((r==null?void 0:r.id)===this.videoTrack.id)return;const i=new MediaStream;i.addTrack(this.videoTrack),t.srcObject=i}else t.srcObject=void 0;t.style.display=this.videoEnabled?"block":"none"}},Zn=new WeakMap,ea=new WeakMap,Nt=new WeakMap,Ri=new WeakSet,so=function(){return n(this,Nt).getValue("roomNodeClient")},Ur=new WeakSet,gn=function(){return n(this,Nt).getValue("audioPlayback")},bi=new WeakSet,ro=function(){return n(this,Nt).getValue("connectionHandler").mediaJoined},Ld=new WeakSet,Ff=function(){return n(this,Nt).getValue("connectionHandler").socketJoined},Ys=new WeakMap,Ho=new WeakMap,$r=new WeakMap,ki=new WeakSet,io=function(){return n(this,Nt).getValue("pip")},Qs=new WeakMap,xd=new WeakMap,qo=new WeakSet,Lu=function(){Array.from(n(this,$r).keys()).forEach(this.updateVideo)},Ud=new WeakSet,Bf=function(){var t,e;this.audioEnabled&&this.audioTrack?(t=n(this,Ur,gn))==null||t.addParticipantTrack(this.id,this.audioTrack):(e=n(this,Ur,gn))==null||e.removeParticipantTrack(this.id)},$d=new WeakSet,Hf=function(){var t,e;this.screenShareEnabled&&this.screenShareTracks.audio?(t=n(this,Ur,gn))==null||t.addParticipantTrack(`screenshare-${this.id}`,this.screenShareTracks.audio):(e=n(this,Ur,gn))==null||e.removeParticipantTrack(`screenshare-${this.id}`)},Mg);Va([P.trace("Participant.disableAudio")],Tr.prototype,"disableAudio",1);Va([P.trace("Participant.kick")],Tr.prototype,"kick",1);Va([P.trace("Participant.disableVideo")],Tr.prototype,"disableVideo",1);Va([P.trace("Participant.getPermissions")],Tr.prototype,"getPermissions",1);Va([P.trace("Participant.setStageStatus")],Tr.prototype,"setStageStatus",1);Tr=Va([dt("1200")],Tr);class to extends Af{constructor(t,e){const{onAddEvent:r="participantJoined",onDeleteEvent:i="participantLeft",onClearEvent:a="participantsCleared"}=e!=null?e:{};super({onAddEvent:r,onDeleteEvent:i,onClearEvent:a},t)}add(t,e=!0){return this.has(t.id)&&Object.is(this.get(t.id),t)===!1&&this.delete(t.id),super.add(t,e)}clear(t=!0,e=!1){return super.clear(t,e)}delete(t,e=!0,r=!1){return super.delete(t,e,r)}}var Fr;class uD extends Da{constructor(e){super(e);m(this,Fr,void 0);T(this,Fr,new Map)}__set(e,r){return n(this,Fr).set(e,r)}__clear(){return n(this,Fr).clear()}get(e){return n(this,Fr).get(e)}toArray(){return Array.from(n(this,Fr).values())}}Fr=new WeakMap;class hD{constructor(){h(this,"_orderedArray");h(this,"_map");this._map=new Map,this._orderedArray=[]}add(t,e){if(!this._map.has(t))return this._map.set(t,{peerId:t,priority:e}),this._orderedArray.splice(Math.max(e-1,0),0,t),this.index(t);const r=this.index(t);this.delete(t);const i=this.add(t,e);return r!==i?i:-1}delete(t){if(this._map.has(t)){const e=this.index(t);this._map.delete(t),this._orderedArray.splice(e,1)}}index(t){return this._map.has(t)?this._orderedArray.indexOf(t):-1}[Symbol.iterator](){return this._orderedArray[Symbol.iterator]()}}class pD{constructor(){h(this,"_activeSpeakerPeers");h(this,"_compulsoryPeers");this._activeSpeakerPeers=new hD,this._compulsoryPeers=new Set}add(t,e,r){if(!t)return-1;if(e<0)return this._compulsoryPeers.add(t),0;const i=r.getValue("logger");if(this.compulsoryPeers.includes(t)&&(e>0||e===246267631)){if(i.info("SelectedPeer::removing_compulsory_peer",{selectedPeer:{peerId:t}}),this._removeFromCompulsoryPeer(t),e===246267631)return-1}else if(e===229490415)return this.delete(t,r),-1;return this._activeSpeakerPeers.add(t,e)}delete(t,e){const r=e==null?void 0:e.getValue("logger");r==null||r.info("SelectedPeer::deleting_peer_from_selectedPeer",{selectedPeer:{peerId:t}}),this._removeFromCompulsoryPeer(t),this._activeSpeakerPeers.delete(t)}index(t){return this._activeSpeakerPeers.index(t)}get peers(){return Array.from(new Set(this.compulsoryPeers.concat(this.activeSpeakerPeers)))}get compulsoryPeers(){return Array.from(this._compulsoryPeers.values())}get activeSpeakerPeers(){return Array.from(this._activeSpeakerPeers)}_removeFromCompulsoryPeer(t){this._compulsoryPeers.delete(t)}}const qf=new pD;var gD=Object.defineProperty,mD=Object.getOwnPropertyDescriptor,jt=(s,t,e,r)=>{for(var i=r>1?void 0:r?mD(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&&gD(t,e,i),i};const fD=["ACTIVE_GRID","PAGINATED","MANUAL"];var Ee,jo,xu,Ii,no,ta,od,Ai,Et,Dg;let vt=(Dg=class extends Bt{constructor(t,e,r){const i=t.getValue("logger");super(i);m(this,jo);m(this,Ii);m(this,ta);h(this,"waitlisted");h(this,"joined");h(this,"active");h(this,"videoSubscribed");h(this,"audioSubscribed");h(this,"pinned");h(this,"all");m(this,Ee,void 0);m(this,Ai,void 0);m(this,Et,void 0);h(this,"rateLimitConfig",{maxInvocations:5,period:1});h(this,"viewMode");h(this,"currentPage");h(this,"lastActiveSpeaker");h(this,"selectedPeers",qf);T(this,Ee,t),T(this,Ai,e),T(this,Et,r),this.waitlisted=new to(i),this.joined=new to(i),this.videoSubscribed=new to(i),this.audioSubscribed=new to(i),this.active=this.videoSubscribed,this.pinned=new to(i),this.all=new uD(i),this.viewMode="ACTIVE_GRID",this.currentPage=0,this.setupEvents()}get pip(){return n(this,Ee).getValue("pip")}get rateLimits(){return this.rateLimitConfig}updateRateLimits(t,e){this.rateLimitConfig.maxInvocations=t,this.rateLimitConfig.period=e}get telemetry(){return n(this,Ee).getValue("telemetry")}setupEvents(){n(this,Ee).getValue("peerSessionStore").on(R.E2EE_ACTIVE_CONSUMER,({peerId:e})=>{var r;((r=n(this,Ee).getValue("modules").e2ee)==null?void 0:r.enabled)!==!0&&this.emit("media_decode_error",{reason:`Got encrypted media for participantId ${e}, but encryption wasn't enabled in init.defaults`,code:"1702"})});const t=n(this,Ee).getValue("audioPlayback");t&&this.audioSubscribed.on("participantLeft",e=>{t.removeParticipantTrack(e.id)})}get count(){return this.joined.size}get maxActiveParticipantsCount(){var t;return(t=n(this,Ee))==null?void 0:t.getValue("maxPreferredStreams")}setMaxActiveParticipantsCount(t){if(t<0||t>24)throw new k("0 <= Max active participants count limit <= 24","1203");n(this,Ee).setValue("maxPreferredStreams",t),n(this,ta,od)&&n(this,Ee).getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:this.viewMode,page:this.currentPage})}get pageCount(){if(this.viewMode==="PAGINATED"){const t=this.selectedPeers.compulsoryPeers.length,e=this.joined.toArray().filter(r=>r.stageStatus==="ON_STAGE");return Math.ceil((e.length-t)/Math.max(this.maxActiveParticipantsCount-t,1))}return 0}acceptWaitingRoomRequest(t){var r,i;if(!n(this,Ii,no))throw new k("Can`t accept waiting room request without joining room","1205");const e=(i=(r=this.waitlisted.get(t))==null?void 0:r.userId)!=null?i:t;return n(this,Et).acceptWaitingRoomRequest([e])}acceptAllWaitingRoomRequest(t){return u(this,null,function*(){const e=t.map(r=>{var i,a;return(a=(i=this.waitlisted.get(r))==null?void 0:i.userId)!=null?a:r});return n(this,Et).acceptWaitingRoomRequest(e)})}rejectWaitingRoomRequest(t){return u(this,null,function*(){var r,i;if(!n(this,Ii,no))throw new k("Can`t reject waiting room request without joining room","1205");const e=(i=(r=this.waitlisted.get(t))==null?void 0:r.userId)!=null?i:t;n(this,Et).rejectWaitingRoomRequest([e])})}setViewMode(t){return u(this,null,function*(){if(this.logger.info("Participants::set_view_mode",{pageNavigation:{viewMode:t,currentPage:this.currentPage,pageCount:this.pageCount,maxActiveParticipantsCount:this.maxActiveParticipantsCount}}),!(r=>fD.includes(r))(t))throw this.logger.error("Participants::setViewMode::invalid_view_mode",{pageNavigation:{viewMode:t,currentPage:this.currentPage,pageCount:this.pageCount,maxActiveParticipantsCount:this.maxActiveParticipantsCount}}),new k(`Invalid view mode: ${t}. Try ACTIVE_GRID, PAGINATED or MANUAL.`,"1207");if(this.viewMode===t){this.logger.info("Participants::setViewMode::view_mode_same_as_previous");return}this.viewMode=t,t==="PAGINATED"?(this.currentPage=1,n(this,Ee).getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:t,page:this.currentPage})):t==="ACTIVE_GRID"?(this.currentPage=0,n(this,Ee).getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:t,page:this.currentPage})):t==="MANUAL"&&(this.currentPage=0,n(this,Ee).getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:t,page:this.currentPage})),this.emit("viewModeChanged",{viewMode:t,currentPage:this.currentPage,pageCount:this.pageCount})})}subscribe(r){return u(this,arguments,function*(t,e=["audio","video","screenshareAudio","screenshareVideo"]){if(this.viewMode!=="MANUAL")throw new k("MANUAL subscription mode was not activated.","1206");t.forEach(i=>{const a=this.joined.get(i);a&&(e.includes("audio")&&(a.manualProducerConfig=G(O({},a.manualProducerConfig),{audio:!0}),this.audioSubscribed.has(a.id)||this.audioSubscribed.add(a)),e.includes("video")&&(a.manualProducerConfig=G(O({},a.manualProducerConfig),{video:!0}),this.videoSubscribed.has(a.id)||this.videoSubscribed.add(a)),e.includes("screenshareAudio")&&(a.manualProducerConfig=G(O({},a.manualProducerConfig),{screenshareAudio:!0}),this.audioSubscribed.has(a.id)||this.audioSubscribed.add(a)),e.includes("screenshareVideo")&&(a.manualProducerConfig=G(O({},a.manualProducerConfig),{screenshareVideo:!0}),this.videoSubscribed.has(a.id)||this.videoSubscribed.add(a)))}),n(this,Ee).getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:this.viewMode,page:this.currentPage})})}unsubscribe(r){return u(this,arguments,function*(t,e=["audio","video","screenshareAudio","screenshareVideo"]){if(this.viewMode!=="MANUAL")throw new k("MANUAL subscription mode was not activated.","1206");t.forEach(i=>{const a=this.joined.get(i);a&&(e.includes("audio")&&(a.manualProducerConfig=G(O({},a.manualProducerConfig),{audio:!1}),a.manualProducerConfig.screenshareAudio||this.audioSubscribed.delete(a.id)),e.includes("video")&&(a.manualProducerConfig=G(O({},a.manualProducerConfig),{video:!1}),a.manualProducerConfig.screenshareVideo||this.videoSubscribed.delete(a.id)),e.includes("screenshareAudio")&&(a.manualProducerConfig=G(O({},a.manualProducerConfig),{screenshareAudio:!1}),a.manualProducerConfig.audio||this.audioSubscribed.delete(a.id)),e.includes("screenshareVideo")&&(a.manualProducerConfig=G(O({},a.manualProducerConfig),{screenshareVideo:!1}),a.manualProducerConfig.video||this.videoSubscribed.delete(a.id)))}),n(this,Ee).getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:this.viewMode,page:this.currentPage})})}getPeerIdsForCurrentPage(){this.logger.info("Participants::getPeerIdsForCurrentPage()",{pageNavigation:{viewMode:this.viewMode,currentPage:this.currentPage,pageCount:this.pageCount,maxActiveParticipantsCount:this.maxActiveParticipantsCount}});const{compulsoryPeers:t}=this.selectedPeers,e=t.filter(c=>this.joined.has(c)),r=Array.from(this.pinned.keys()).filter(c=>!e.includes(c)),i=Array.from(this.joined.toArray().filter(c=>c.stageStatus==="ON_STAGE").map(c=>c.id)),a=Math.max((this.currentPage-1)*(this.maxActiveParticipantsCount-e.length-r.length)),o=this.currentPage*(this.maxActiveParticipantsCount-e.length-r.length);return e.concat(r,i.slice(a,o))}setPage(t){return u(this,null,function*(){if(this.logger.info("Participants::set_page",{pageNavigation:{settingPage:t,viewMode:this.viewMode,currentPage:this.currentPage,pageCount:this.pageCount,maxActiveParticipantsCount:this.maxActiveParticipantsCount}}),this.viewMode==="PAGINATED"){if(!Number.isInteger(t))throw this.logger.error("Participants::invalid_page_number"),new k(`Invalid page: ${t}. Page must be an integer and greater than 0 and less than or equal to .pageCount`,"1202");this.currentPage=t,n(this,Ee).getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:this.viewMode,page:t}),this.emit("pageChanged",{viewMode:this.viewMode,currentPage:this.currentPage,pageCount:this.pageCount})}})}disableAllAudio(t){return u(this,null,function*(){if(this.logger.info("Participants::disable_all_audio",{actions:{disableAllAudio:{allowUnmute:t}}}),!n(this,ta,od))throw new k("Can`t disable all audio without joining room","1205");if(n(this,Ai).permissions.canAllowParticipantAudio)return n(this,jo,xu).muteAll(t);throw this.logger.error("Participants::unauthorized_disable_all_audio",{actions:{disableAllAudio:{allowUnmute:t}}}),new k("Unauthorized: User does not have permission to disable peer audio.","1201")})}disableAllVideo(){return u(this,null,function*(){if(this.logger.info("Participants::disable_all_video"),!n(this,ta,od))throw new k("Can`t disable all video without joining room","1205");if(n(this,Ai).permissions.canAllowParticipantVideo)return n(this,jo,xu).muteAllVideo();throw this.logger.error("Participants::unauthorized_disable_all_video"),new k("Unauthorized: User does not have permission to disable peer video.","1201")})}disableAudio(t){return u(this,null,function*(){this.joined.get(t).disableAudio()})}disableVideo(t){return u(this,null,function*(){this.joined.get(t).disableVideo()})}kick(t){return u(this,null,function*(){yield n(this,Ee).getValue("peerSessionStore").emitAsync(R.KICK_PEER,{peerId:t})})}kickAll(){return u(this,null,function*(){if(this.logger.info("Participants::kick_all"),n(this,Ee).getValue("viewType")!=="LIVESTREAM"&&!n(this,Ii,no))throw new k("Can`t kick all without joining room","1205");if(!n(this,Ai).permissions.kickParticipant)throw this.logger.error("Participants::unauthorized_kick_all"),new k("Unauthorized: User does not have permission to kick peers.","1201");const e=n(this,Ee).getValue("flagsmith").hasFeature(Z.PROPAGATE_KICK_ALL);n(this,Et).kickAll(e)})}broadcastMessage(t,e,r){return u(this,null,function*(){if(this.logger.info("Participants::broadcastMessage"),!n(this,Ii,no))throw new k("Can`t broadcast message without joining room","1205");if(!(t!=null&&t.trim()))throw new k("`type` must be a non-empty string.","1209");if(r)if("meetingIds"in r)yield n(this,Et).broadcastToMeetings(t,r.meetingIds,e);else{let i=[];"participantIds"in r?i=r.participantIds:i=this.joined.toArray().filter(a=>{var o;return(o=r.presetNames)==null?void 0:o.includes(a.presetName)}).map(a=>a.id),yield n(this,Et).broadcastToPeers(t,i,e)}else yield n(this,Et).broadcastMessage(t,e)})}getAllJoinedPeers(t,e,r){return u(this,null,function*(){return(yield n(this,Et).getRoomPeers(t,e,r)).peers.map(Pr.formatSocketPeerMessage)})}updatePermissions(t,e){return u(this,null,function*(){const r=this.joined.toArray().filter(a=>t.includes(a.id)).map(a=>a.userId),i=[...new Set(r)];if(!i.length)throw new k("Cannot update permissions, no valid userIDs found","1204");n(this,Et).updatePermissions(i,e)})}getParticipantsInMeetingPreJoin(){return u(this,null,function*(){return n(this,Et).getRoomPeersNonPaginated()})}},Ee=new WeakMap,jo=new WeakSet,xu=function(){return n(this,Ee).getValue("roomNodeClient")},Ii=new WeakSet,no=function(){var t;return((t=n(this,Ee).getValue("connectionHandler"))==null?void 0:t.socketJoined)===!0},ta=new WeakSet,od=function(){var t;return((t=n(this,Ee).getValue("connectionHandler"))==null?void 0:t.mediaJoined)===!0},Ai=new WeakMap,Et=new WeakMap,Dg);jt([P.trace("Participants.setViewMode")],vt.prototype,"setViewMode",1);jt([P.trace("Participants.setPage")],vt.prototype,"setPage",1);jt([P.trace("Participants.disableAllAudio")],vt.prototype,"disableAllAudio",1);jt([P.trace("Participants.disableAllVideo")],vt.prototype,"disableAllVideo",1);jt([P.trace("Participants.disablePeerAudio")],vt.prototype,"disableAudio",1);jt([P.trace("Participants.disablePeerVideo")],vt.prototype,"disableVideo",1);jt([P.trace("Participants.kickPeer")],vt.prototype,"kick",1);jt([P.trace("Participants.kickAll")],vt.prototype,"kickAll",1);jt([P.trace("Participants.broadcastMessage"),Rt(Oa,"rateLimitConfig")],vt.prototype,"broadcastMessage",1);jt([P.trace("Participants.getAllJoinedPeers"),Rt({maxInvocations:10,period:60})],vt.prototype,"getAllJoinedPeers",1);jt([P.trace("Participant.updatePermissions"),Rt({maxInvocations:1e3,period:60})],vt.prototype,"updatePermissions",1);jt([P.trace("Participants.getParticipantsInMeetingPreJoin")],vt.prototype,"getParticipantsInMeetingPreJoin",1);vt=jt([dt("1200")],vt);var TD=Object.defineProperty,vD=Object.getOwnPropertyDescriptor,dn=(s,t,e,r)=>{for(var i=r>1?void 0:r?vD(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&&TD(t,e,i),i},Xt,gs,sa,Og;const jf=(Og=class{constructor(s,t,e){h(this,"participants");h(this,"self");h(this,"selectedPeers",qf);h(this,"maxSpatialLayerUpdates",new Map);h(this,"consumerPeerMap");h(this,"events");h(this,"roomSocketHandler");h(this,"context");h(this,"videoPeerConsumerMap",new Map);m(this,Xt,{mode:"ACTIVE_GRID",page:0});m(this,gs,!1);m(this,sa,!1);h(this,"updateConsumerSpatialLayers",Eh(()=>{const s={},t=new Map(this.maxSpatialLayerUpdates);this.maxSpatialLayerUpdates.clear(),Array.from(t.entries()).forEach(([e,r])=>{s[r]===void 0&&(s[r]={layer:r,consumerIds:[]}),s[r].consumerIds.push(e)}),Object.keys(s).forEach(e=>{const r=s[e];this.logger.log(`Switching max spatial layer to ${r.layer}`,{consumerIds:r.consumerIds}),this.roomNodeClient.switchConsumersToLayer(r.consumerIds,r.layer)})},2e3));h(this,"updateConsumers",(s,t)=>u(this,null,function*(){this.logger.info(`updateConsumers: Starting consumer updates - AddProducers: ${s.length}, RemoveProducers: ${t.length}, ConsumersSyncing: ${n(this,gs)}`);try{s.length!==0&&(this.logger.info(`updateConsumers: Creating consumers for ${s.length} producers: [${s.map(e=>e.producerId).join(", ")}]`),yield this.roomNodeClient.createConsumers(s),this.logger.info("updateConsumers: Successfully created consumers."))}catch(e){this.logger.error("updateConsumers: Error creating consumers",{error:e})}try{t.length!==0&&(this.logger.info(`updateConsumers: Closing consumers for ${t.length} producers: [${t.map(e=>e.producerId).join(", ")}]`),yield this.roomNodeClient.closeConsumers(t),this.logger.info("updateConsumers: Successfully closed consumers."))}catch(e){this.logger.error("updateConsumers: Error closing consumers",{error:e})}this.logger.info("updateConsumers: Completed consumer updates.")}));this.context=s,this.roomSocketHandler=e,this.participants=new vt(s,t,this.roomSocketHandler),this.self=t,this.consumerPeerMap=new Map,this.events=Ps,t.config.viewType!=="CHAT"&&this.setupEventsGlobal(),this.setupEvents()}get roomNodeClient(){return this.context.getValue("roomNodeClient")}get mediaJoined(){var s;return((s=this.roomNodeClient)==null?void 0:s.mediaJoined)===!0}get pip(){return this.context.getValue("pip")}get telemetry(){return this.context.getValue("telemetry")}get logger(){return this.context.getValue("logger")}setupEvents(){this.roomSocketHandler.on(U.getWaitingRoomRequests,this.waitingRoomRequestHandler.bind(this)),this.context.getValue("peerSessionStore").on(R.SOCKET_PEERS,s=>u(this,null,function*(){const t=this.context.getValue("flagsmith").hasFeature(Z.DEBUG_SOCKET_JOIN);if(t){const e=s&&(s==null?void 0:s.length)<20?{peers:JSON.stringify(s.map(r=>r.peerId))}:void 0;this.logger.info("Processing socket peers",e)}s==null||s.forEach(e=>{e.waitlisted||this.onParticipantSocketJoined(this.createParticipantObjFromSocketPeer(e))}),t&&this.logger.info("Processed socket peers")})),this.roomSocketHandler.on(this.events.peerJoinedBroadcast,({participant:s})=>{this.logger.info("PEER_INFO:::MEDIA_JOIN",{participant:{id:s.peerId,maskedName:[...(s==null?void 0:s.displayName)||""].map((t,e)=>e%2?"*":t).join("")}}),this.logger.info("events.peerJoinedBroadcast",{peers:s.peerId}),this.onParticipantMediaJoined(s.peerId,s.producerStates,s.capabilities)}),this.roomSocketHandler.on(this.events.selfJoinComplete,({participants:s,selectedPeers:t,roomState:e})=>{if(this.context.getValue("flagsmith").hasFeature(Z.DEBUG_SOCKET_JOIN)){const a=s&&(s==null?void 0:s.length)<20?{peers:JSON.stringify(s.map(o=>o.peerId))}:void 0;this.logger.info("events.selfJoinComplete",a)}s.forEach(({peerId:a,producerStates:o,capabilities:c})=>this.onParticipantMediaJoined(a,o,c));const{audioPeers:r,compulsoryPeers:i}=t!=null?t:{};e.pinnedPeerIds.length!==0&&this.onParticipantPinned(e.pinnedPeerIds[0]),this.computeActivateParticipants(r!=null?r:[],i),this.logger.info("selfJoinComplete: Emitting UPDATE_ACTIVE with createAllConsumers=true"),this.context.getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{createAllConsumers:!0})}),this.context.getValue("peerSessionStore").on(R.MAX_SPATIAL_LAYER_CHANGE,({peerId:s,maxSpatialLayer:t})=>{const e=this.videoPeerConsumerMap.get(s);e&&(this.context.getValue("flagsmith").hasFeature(Z.DISABLE_LAYER_SWITCH)||(this.maxSpatialLayerUpdates.set(e,t),this.updateConsumerSpatialLayers()))}),this.context.getValue("peerSessionStore").on(R.NEW_PRODUCER,({peerId:s,producer:t})=>{const e=this.participants.joined.get(s);if(!e){this.logger.warn("ParticipantController::NEW_PRODUCER::participant not found",{producer:{id:t==null?void 0:t.producerId,kind:t==null?void 0:t.kind,status:"not_initialized",appData:{screenShare:t==null?void 0:t.screenShare}},participant:{id:s}});return}e.producers.push(t),this.logger.info("ParticipantController::NEW_PRODUCER::producer_added_to_participant",{producer:{id:t==null?void 0:t.producerId,peerId:s,kind:t==null?void 0:t.kind,status:"not_initialized",appData:{screenShare:t==null?void 0:t.screenShare}}}),(t==null?void 0:t.kind)==="audio"&&this.participants.audioSubscribed.get(s)||(t==null?void 0:t.kind)==="video"&&this.participants.videoSubscribed.get(s)||t!=null&&t.screenShare?(this.logger.info(`NEW_PRODUCER: scheduling syncConsumer (AUTO mode) - Producer: ${t.producerId}, Peer: ${s}, Kind: ${t.kind}, ScreenShare: ${t.screenShare}, ConsumersSyncing: ${n(this,gs)}, VideoSub: ${t.kind==="video"?this.participants.videoSubscribed.has(s):"N/A"}, AudioSub: ${t.kind==="audio"?this.participants.audioSubscribed.has(s):"N/A"}`),this.scheduleSyncConsumers({source:"NEW_PRODUCER_AUTO"})):this.logger.info("ParticipantController::NEW_PRODUCER::not_consuming_producer_auto",{producer:{id:t==null?void 0:t.producerId,peerId:s,kind:t==null?void 0:t.kind,status:"UNKNOWN",appData:{screenShare:t==null?void 0:t.screenShare}}})}),this.context.getValue("peerSessionStore").on(R.PRODUCER_CLOSED,({peerId:s,producerId:t})=>{const e=this.participants.joined.get(s);if(!e){this.logger.warn("ParticipantController::NEW_PRODUCER::participant not found",{participant:{id:s}});return}e.producers=e.producers.filter(r=>r.producerId!==t)}),this.context.getValue("peerSessionStore").on(R.PRODUCER_TOGGLE,({peerId:s,producerId:t,paused:e,kind:r})=>{const i=this.participants.joined.get(s);if(i){r==="audio"&&i.setAudioEnabled(!e);const a=i.producers.find(o=>o.producerId===t);a&&(a.pause=e),r==="video"&&this.context.getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:this.participants.viewMode,page:this.participants.currentPage})}}),this.roomSocketHandler.on(this.events.globalPeerPinBroadcast,s=>{let t;if(s&&(t=s.participantId),!this.mediaJoined)return;const e=t;this.onParticipantPinned(e);const r=this.participants.joined.get(e);r&&(this.logger.info(`globalPeerPinBroadcast: Scheduling audio/video consumer sync for pinned participant ${e} - ProducerCount: ${r.producers.length}, ConsumersSyncing: ${n(this,gs)}, ProducerIds: [${r.producers.map(i=>i.producerId).join(", ")}]`),this.scheduleSyncConsumers({source:"GLOBAL_PEER_PIN"}))}),this.roomSocketHandler.on(this.events.selectedPeer,({audioPeers:s,compulsoryPeers:t})=>{this.mediaJoined&&this.onSelectedPeers(t.concat(s))}),this.roomSocketHandler.on(this.events.selectedPeerDiff,({entries:s})=>{if(!this.mediaJoined)return;const t=s.map(e=>({peerId:e.peerId,priority:e.priority}));this.updateActiveParticipantsWithPriorities(t,!0)})}waitingRoomRequestHandler(s){const t=s.requests.filter(r=>!this.participants.waitlisted.toArray().find(i=>i.userId===r.userId)),e=this.participants.waitlisted.toArray().filter(r=>!s.requests.find(i=>i.userId===r.userId));t.forEach(r=>this.participants.waitlisted.add(new Tr(this.context,{id:r.peerId,displayName:r.displayName,audioMuted:!0,videoEnabled:!1,audioTrack:void 0,videoTrack:void 0,stageStatus:"OFF_STAGE",userId:r.userId,flags:{},isHost:!1,customParticipantId:r.customParticipantId,picture:r.picture,metadata:{preset_name:r.presetName}},this.self,this.roomSocketHandler))),e.forEach(r=>this.participants.waitlisted.delete(r.id))}get maxPreferredStreams(){return this.participants.maxActiveParticipantsCount}selectPagePeers(s){const{compulsoryPeers:t}=this.selectedPeers,e=t.filter(d=>this.participants.joined.has(d)),r=Array.from(this.participants.pinned.keys()).filter(d=>!e.includes(d)),i=Array.from(this.participants.joined.toArray().filter(d=>d.stageStatus==="ON_STAGE").map(d=>d.id)),a=Math.max((s-1)*(this.maxPreferredStreams-e.length-r.length)),o=s*(this.maxPreferredStreams-e.length-r.length);return e.concat(r,i.slice(a,o))}selectActivePeers(s){const t=new Map,e=Array.from(this.participants.joined.toArray().filter(p=>p.stageStatus==="ON_STAGE").map(p=>(t.set(p.id,!0),p.id))),r=this.selectedPeers.peers,i=this.participants.pinned.toArray().reduce((p,g)=>(g.stageStatus!=="ON_STAGE"?this.participants.pinned.delete(g.id):p.push(g.id),p),[]),a=this.self.stageStatus==="ON_STAGE"?1:0,o=s-a,c=new Set(r.concat(i).filter(p=>p!==this.self.id&&t.has(p)));let d=Array.from(c);const l=o-c.size;if(l>=0){const p=e.filter(g=>!c.has(g)&&g!==this.self.id).slice(0,l);d=Array.from(c).concat(p)}else d=d.slice(0,o);return d}updateMediaSubscribedMaps(s,t){const{page:e}=t!=null?t:{};s&&n(this,Xt).mode!==s&&(n(this,Xt).mode=s),e&&n(this,Xt).page!==e&&(n(this,Xt).page=e);const{mode:r,page:i}=n(this,Xt);switch(r){case"PAGINATED":{if(!i)return;const a=this.selectPagePeers(i),o=this.selectActivePeers(this.participants.maxActiveParticipantsCount+4);this.updateParticipantsMap(this.participants.videoSubscribed,a),this.updateParticipantsMap(this.participants.audioSubscribed,o),this.logger.debug("ParticipantController::updateActive::updating_current_page_peers",{peerIds:a});break}case"ACTIVE_GRID":{const a=this.selectActivePeers(this.participants.maxActiveParticipantsCount),o=this.selectActivePeers(this.participants.maxActiveParticipantsCount+4);this.updateParticipantsMapMinReplacement(this.participants.videoSubscribed,a),this.updateParticipantsMap(this.participants.audioSubscribed,o);break}case"MANUAL":break;default:throw new Error(`View mode ${s} not supported`)}}scheduleSyncConsumers(t){return u(this,arguments,function*({source:s}){var r,i,a;const e=((r=n(this,Xt))==null?void 0:r.mode)==="PAGINATED"&&!n(this,gs)?200:0;this.logger.info(`scheduleSyncConsumers():: Source: ${s}, ViewMode: ${(i=n(this,Xt))==null?void 0:i.mode}, ConsumersSyncing: ${n(this,gs)}, Delay: ${e}, Page: ${(a=n(this,Xt))==null?void 0:a.page}`),setTimeout(()=>this.syncConsumers(),e)})}syncConsumers(){return u(this,null,function*(){var o,c,d,l,p;if(((d=(c=(o=this.context.getValue("connectionHandler"))==null?void 0:o.mediaState)==null?void 0:c.recv)==null?void 0:d.state)!=="connected"){this.logger.info("syncConsumers: Connection not ready, exiting.");return}if(n(this,gs)){T(this,sa,!0),this.logger.info("syncConsumers: Sync in progress, marking resyncRequired=true and exiting.");return}this.logger.info("syncConsumers: Starting sync operation."),T(this,gs,!0),T(this,sa,!1);let s=[];this.participants.videoSubscribed.forEach(g=>{var E,_;const f=this.participants.joined.get(g.id),v=(_=(E=g.producers)==null?void 0:E.filter(C=>C.kind==="video"))!=null?_:[];f&&(v!=null&&v.length)&&v.forEach(C=>{var $,x,B,H;const A=((x=($=f.manualProducerConfig)==null?void 0:$.video)!=null?x:!0)&&C.kind==="video"&&!C.screenShare,M=((H=(B=f.manualProducerConfig)==null?void 0:B.screenshareVideo)!=null?H:!0)&&C.kind==="video"&&C.screenShare;(A||M)&&(C.pause||s.push(C))})}),this.participants.audioSubscribed.forEach(g=>{var E,_;const f=this.participants.joined.get(g.id),v=(_=(E=g.producers)==null?void 0:E.filter(C=>C.kind==="audio"))!=null?_:[];f&&(v!=null&&v.length)&&v.forEach(C=>{var $,x,B,H;const A=((x=($=f.manualProducerConfig)==null?void 0:$.audio)!=null?x:!0)&&C.kind==="audio"&&!C.screenShare,M=((H=(B=f.manualProducerConfig)==null?void 0:B.screenshareAudio)!=null?H:!0)&&C.kind==="audio"&&C.screenShare;(A||M)&&s.push(C)})}),s=ZC(s,g=>g.producerId);const t=new Map;s.forEach(g=>{t.set(g.producerId,g)});const e=(l=this.roomNodeClient)==null?void 0:l.getConsumers(),r=s.filter(g=>!(e!=null&&e.has(g.producerId))),i=[];let a=Array.from((p=e==null?void 0:e.values())!=null?p:[]).map(g=>g.peerId);a=XC(a),a==null||a.forEach(g=>{var v;const f=this.participants.joined.get(g);if(!f){this.logger.warn(`Peer with ${g} doesn't exist in joined list but producers of it are being consumed.`);return}(v=f.producers)!=null&&v.length&&f.producers.forEach(E=>{const _=E.consumer&&e.has(E.consumer.id);!t.has(E.producerId)&&(e.has(E.producerId)||_)&&i.push(E)})}),this.logger.info(`syncConsumers: Computed changes - AddProducers: ${r.length} [${r.map(g=>g.producerId).join(", ")}], RemoveProducers: ${i.length} [${i.map(g=>g.producerId).join(", ")}]`.substring(0,5e3));try{r.length>0||i.length>0?(this.logger.info(`syncConsumers: Calling updateConsumers with changes. Adding ${r.length} and removing ${i.length}.`),yield this.updateConsumers(r,i),this.logger.info("syncConsumers: updateConsumers completed successfully.")):this.logger.info("syncConsumers: No changes needed, skipping updateConsumers.")}catch(g){this.logger.error("syncConsumers: updateConsumers failed with error.",{error:g})}finally{this.logger.info("syncConsumers: Setting consumersSyncing=false and completing sync."),T(this,gs,!1)}n(this,sa)&&(this.logger.info("syncConsumers: Resync required, calling syncConsumers again."),this.syncConsumers())})}computeActivateParticipants(s,t){const e=s.map((i,a)=>({peerId:i,priority:a+1})),r=t==null?void 0:t.map((i,a)=>({peerId:i,priority:-(a+1)}));e.push(...r!=null?r:[]),e.length>0&&this.updateActiveParticipantsWithPriorities(e)}createParticipantObjFromSocketPeer(s){const t=jf.formatSocketPeerMessage(s);return new Tr(this.context,G(O({},t),{isHost:!1,videoEnabled:!1,audioMuted:!0,videoTrack:void 0,audioTrack:void 0}),this.self,this.roomSocketHandler)}updatePipSource(s,t){var e,r;t?(e=this.pip)==null||e.enableSource(s):(r=this.pip)==null||r.disableSource(s)}onParticipantMediaJoined(s,t,e){if(!this.mediaJoined||s===this.self.id)return;const r=this.participants.joined.get(s);if(!r){this.logger.warn(`Received media.peerJoinedBroadcast for non-existent peer ${s}`);return}this.logger.info("PEER_INFO:::SOCKET_ON_MEDIA_JOIN",{participant:{id:r.id,maskedName:[...(r==null?void 0:r.name)||""].map((i,a)=>a%2?"*":i).join("")}}),this.logger.info(`onParticipantMediaJoined: peer ${s} has joined media room. Processing.`),t.forEach(i=>{i.kind===xs.AUDIO&&!i.screenShare?r.setAudioEnabled(!i.pause):i.kind===xs.VIDEO&&!i.screenShare&&(r.setVideoEnabled(!i.pause),this.updatePipSource(r.id,!i.pause)),r.producers.push(G(O({},i),{producingTransportId:i.producingTransportId,kind:i.kind===xs.AUDIO?"audio":"video",producingPeerId:s,mimeType:i.mimeType}))}),this.roomNodeClient.handlePeerCapabilities(s,e),this.context.getValue("flagsmith").hasFeature(Z.FORCE_VIDEO_CODEC)||this.roomNodeClient.shareWebcam(this.self.videoTrack),this.logger.info(`onParticipantMediaJoined: Emitting UPDATE_ACTIVE for peer ${s}`),this.context.getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:this.participants.viewMode,page:this.participants.currentPage})}updateParticipantsMapMinReplacement(s,t){const e=Array.from(s.keys()),r=new Map(s),i=new Set(t),a=[];e.forEach((o,c)=>{(!i.has(o)||!this.participants.joined.get(o))&&a.push(c)}),t.forEach(o=>{if(s.get(o))return;if(e.length<t.length){e.push(o);return}const c=a.shift();e[c]=o}),a.forEach(o=>{e.splice(o,1)}),Array.from(s.keys()).forEach(o=>{s.delete(o,!i.has(o))}),e.forEach(o=>{if(!this.participants.joined.get(o)){this.logger.warn("updateActiveParticipants::participant_not_in_joined_list",{participant:{id:o}});return}s.add(this.participants.joined.get(o),!r.get(o))}),s.emit("participantsUpdate")}updateParticipantsMap(s,t){Array.from(s.keys()).forEach(r=>{t.includes(r)||s.delete(r,!0)}),t.forEach(r=>{s.get(r)||s.add(this.participants.joined.get(r),!0)}),s.emit("participantsUpdate")}updatePinnedParticipants(){this.participants.pinned.forEach(s=>{s.setIsPinned(!1),this.participants.pinned.delete(s.id)})}setupEventsGlobal(){this.roomSocketHandler.on(U.joinRoom,({peer:s})=>{if(!s.waitlisted){const t=this.context.getValue("flagsmith").hasFeature(Z.DEBUG_SOCKET_JOIN);t&&this.logger.info("Processing socket join",{peers:s.peerId}),this.onParticipantSocketJoined(this.createParticipantObjFromSocketPeer(s)),t&&this.logger.info("Processed socket join",{peers:s.peerId})}}),this.roomSocketHandler.on(U.leaveRoom,s=>{const{peerId:t}=s.peer;this.selectedPeers.delete(t,this.context),this.onParticipantLeave(t)}),this.context.getValue("peerSessionStore").on(R.SOCKET_SERVICE_ROOM_JOINED,()=>{this.self.permissions.acceptWaitingRequests&&this.roomSocketHandler.getWaitingRoomRequests()}),this.self.permissions.on("permissionsUpdate",s=>{const{acceptWaitingRequests:t}=s;t!==void 0&&(t?this.roomSocketHandler.getWaitingRoomRequests():this.participants.waitlisted.clear())}),this.context.getValue("peerSessionStore").on(R.SOCKET_SERVICE_DISCONNECTED,()=>{this.participants.joined.clear(),this.participants.videoSubscribed.clear(),this.participants.audioSubscribed.clear(),this.participants.pinned.clear(),this.participants.currentPage=0,this.participants.viewMode="ACTIVE_GRID",this.participants.emit("viewModeChanged",{viewMode:"ACTIVE_GRID",currentPage:this.participants.currentPage,pageCount:this.participants.pageCount})}),this.context.getValue("peerSessionStore").on(R.CONSUMER_PAUSED,({id:s})=>{this.processConsumerPaused(s)}),this.context.getValue("peerSessionStore").on(R.CONSUMER_RESUMED,({id:s})=>{this.processConsumerResumed(s)}),this.context.getValue("peerSessionStore").on(R.NEW_CONSUMER,({id:s})=>{this.processNewConsumer(s)}),this.context.getValue("peerSessionStore").on(R.CONSUMER_CLOSED,({id:s})=>{this.processConsumerClosed(s)}),this.context.getValue("peerSessionStore").on(R.ROOM_MESSAGE,r=>u(this,[r],function*({payload:s,type:t,timestamp:e}){this.participants.emit("broadcastedMessage",{type:t,payload:s,timestamp:e})})),this.context.getValue("peerSessionStore").on(R.MESSAGE,r=>u(this,[r],function*({payload:s,type:t,timestamp:e}){t!=="spotlight"&&this.participants.emit("broadcastedMessage",{type:t,payload:s,timestamp:e})})),this.context.getValue("peerSessionStore").on(R.LOW_CONSUMER_SCORE,({peerId:s,score:t,kind:e})=>{const r=this.participants.joined.get(s);r&&(r.emit("poorConnection",{score:t,kind:e}),this.participants.emit("poorConnection",{participantId:s,score:t,kind:e}))}),this.context.getValue("peerSessionStore").on(R.CONSUMER_SCORE_UPDATE,({score:s,kind:t,appData:e,peerId:r,scoreStats:i})=>{var c;const a=t==="video"&&((c=e==null?void 0:e.screenShare)!=null?c:!1),o=this.participants.joined.get(r);o&&(o.emit("mediaScoreUpdate",{kind:t,isScreenshare:a,score:s,participantId:r,scoreStats:i}),this.participants.emit("mediaScoreUpdate",{kind:t,isScreenshare:a,score:s,participantId:r,scoreStats:i}))}),this.context.getValue("peerSessionStore").onAsync(R.KICK_PEER,t=>u(this,[t],function*({peerId:s}){const e=this.participants.joined.get(s);this.roomNodeClient.kick(s),yield this.roomSocketHandler.kick(s),e?e.emit("kicked"):this.participants.joined.emit("kicked",{id:s})})),this.context.getValue("peerSessionStore").on(R.UPDATE_ACTIVE,(...r)=>u(this,[...r],function*({viewMode:s,page:t,createAllConsumers:e}={viewMode:"ACTIVE_GRID",page:0,createAllConsumers:!1}){this.logger.info(`UPDATE_ACTIVE event received - viewMode: ${n(this,Xt).mode}, page: ${t}, CreateAllConsumers: ${e}`),e&&(this.logger.info(`UPDATE_ACTIVE viewMode: ${s}, Page: ${t}, Removing existing subscriptions.`),this.participants.videoSubscribed.clear(),this.participants.audioSubscribed.clear()),this.updateMediaSubscribedMaps(s,{page:t}),this.scheduleSyncConsumers({source:"UPDATE_ACTIVE"})}))}onParticipantPinned(s){return u(this,null,function*(){if(!s){this.self.isPinned&&this.self.setIsPinned(!1),this.participants.pinned.size!==0&&this.updatePinnedParticipants();return}if(s===this.self.id){this.participants.pinned.size!==0&&this.updatePinnedParticipants(),this.self.setIsPinned(!0);return}const t=this.participants.joined.get(s);this.self.isPinned&&this.self.setIsPinned(!1),this.updatePinnedParticipants(),t.setIsPinned(!0),this.participants.pinned.add(t)})}onParticipantSocketJoined(s){return u(this,null,function*(){var t,e,r;this.logger.info(`onParticipantSocketJoined: peer ${s.id} has joined socket edge. Processing.`),this.self.id!==s.id&&!((t=s.flags)!=null&&t.recorder)&&!((e=s.flags)!=null&&e.hidden_participant)&&!((r=s.flags)!=null&&r.hiddenParticipant)&&(this.participants.videoSubscribed.delete(s.id),this.participants.audioSubscribed.delete(s.id),this.participants.joined.add(s),this.participants.waitlisted.delete(s.id),s.stageStatus==="REQUESTED_TO_JOIN_STAGE"&&this.context.getValue("peerSessionStore").emit(R.UPDATE_STAGE_REQUESTS,{request:{displayName:s.name,userId:s.userId,peerId:s.id},add:!0})),this.context.getValue("peerSessionStore").emit(R.PEER_JOINED_INTERNAL,s)})}onParticipantLeave(s){return u(this,null,function*(){const t=this.participants.joined.get(s);this.participants.joined.delete(s,!0,!0),this.participants.pinned.delete(s,!0,!0),this.participants.waitlisted.delete(s,!0,!0),this.roomNodeClient&&(this.roomNodeClient.handlePeerLeaving(s),this.roomNodeClient.closeConsumers(t==null?void 0:t.producers)),t&&t.stageStatus==="REQUESTED_TO_JOIN_STAGE"&&this.context.getValue("peerSessionStore").emit(R.UPDATE_STAGE_REQUESTS,{request:{displayName:t.name,userId:t.userId,peerId:t.id},add:!1});const{currentPage:e}=this.participants,r=this.maxPreferredStreams*(e-1),i=this.participants.videoSubscribed.get(s);this.participants.viewMode==="MANUAL"?this.context.getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:this.participants.viewMode,page:e}):r===0?this.participants.setViewMode("ACTIVE_GRID"):this.participants.joined.size<=r?e===2?this.participants.setViewMode("ACTIVE_GRID"):this.participants.setPage(e-1):i&&this.context.getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:this.participants.viewMode,page:e})})}processMedia(s){var g;const t=this.roomNodeClient.getConsumers(),{peerId:e,kind:r,appData:i,track:a,producerId:o,rtpReceiver:c,paused:d,localId:l}=(g=t.get(s))!=null?g:{};if(!e)return this.logger.warn("processMedia::Peer ID is undefined",{consumer:{id:s,kind:r,peerId:e,appData:{supportsRemoteControl:!!(i!=null&&i.supportsRemoteControl),screenShare:!!(i!=null&&i.screenShare)},remotelyPaused:d,producerId:o}}),{};const p=i;return r==="video"&&p.screenShare!==!0&&this.videoPeerConsumerMap.set(e,s),this.logger.info("ParticipantController::processMedia",{consumer:{id:s,peerId:e,kind:r,appData:p,remotelyPaused:d,producerId:o}}),this.consumerPeerMap.set(s,{type:r,peerId:e,appData:p,remotelyPaused:d,producerId:o}),{peerId:e,kind:r,appData:p,remotelyPaused:d,track:a,producerId:o,rtpReceiver:c,localId:l}}processConsumerClosed(s){const{peerId:t,type:e,appData:r,remotelyPaused:i,producerId:a}=this.consumerPeerMap.get(s)||{},o=this.participants.joined.get(t);if(this.logger.info("ParticipantController::processConsumerClosed",{consumer:{id:s,peerId:t,appData:r,kind:e,remotelyPaused:i,producerId:a}}),this.consumerPeerMap.delete(s),e==="video"&&r.screenShare!==!0&&this.videoPeerConsumerMap.delete(t),!o)return;const c=o.producers.find(l=>l.producerId===a);c&&(c.consumer={id:s,peerId:t,kind:void 0,appData:r,paused:i,producerId:a,rtpReceiver:void 0,localId:void 0});const d=[];r&&r.screenShare?(o.setScreenShareEnabled(!1),this.context.getValue("callstats").consumerSharedMediaState(s,{screen:!1}),o.screenShareTracks.video&&d.push(o.screenShareTracks.video.id),o.screenShareTracks.audio&&d.push(o.screenShareTracks.audio.id),o.screenShareTracks={audio:void 0,video:void 0}):e==="audio"?(o.setAudioEnabled(!1),o.audioTrack&&d.push(o.audioTrack.id),this.context.getValue("callstats").consumerSharedMediaState(s,{audio:!1}),o.audioTrack=void 0):e==="video"&&(o.setVideoEnabled(!1),this.updatePipSource(o.id,!1),o.videoTrack&&d.push(o.videoTrack.id),this.context.getValue("callstats").consumerSharedMediaState(s,{video:!1}),o.videoTrack=void 0),r.e2ee&&d.forEach(l=>{this.context.getValue("peerSessionStore").emit(R.E2EE_INACTIVE_CONSUMER,{peerId:t,trackId:l})})}processConsumerResumed(s){var f;const t=this.processMedia(s),{peerId:e,kind:r,appData:i,track:a,remotelyPaused:o,producerId:c,rtpReceiver:d,localId:l}=t;if(!e)return;this.logger.info("ParticipantController::processConsumerResumed",{consumer:{id:s,peerId:e,kind:r,appData:i,remotelyPaused:o,producerId:c}});const p=this.participants.joined.get(e);if(!p)return;const g=p.producers.find(v=>v.producerId===c);if(g&&(g.consumer={id:s,peerId:e,kind:r,appData:i,paused:o,producerId:c,rtpReceiver:d,localId:l}),i.e2ee&&this.context.getValue("peerSessionStore").emit(R.E2EE_ACTIVE_CONSUMER,{peerId:e,rtpReceiver:d,track:a}),i.screenShare){r==="video"?p.screenShareTracks.video=a:r==="audio"&&(p.screenShareTracks.audio=a),p.setScreenShareEnabled(!0),(f=this.context)==null||f.getValue("callstats").consumerSharedMediaState(s,{screen:!0});return}r==="video"?(p.videoTrack=a,p.setVideoEnabled(!0),this.updatePipSource(p.id,!0),this.context.getValue("callstats").consumerSharedMediaState(s,{video:!0})):r==="audio"&&(p.audioTrack=a,p.setAudioEnabled(p.audioEnabled),this.context.getValue("callstats").consumerSharedMediaState(s,{audio:p.audioEnabled}))}processConsumerPaused(s){this.logger.info(`ParticipantController::processConsumerPaused called for consumerId: ${s}`);const{peerId:t,kind:e,track:r,appData:i,remotelyPaused:a,producerId:o,rtpReceiver:c,localId:d}=this.processMedia(s);if(!t)return;this.logger.info("ParticipantController::processConsumerPaused",{consumer:{id:s,peerId:t,kind:e,appData:i,remotelyPaused:a,producerId:o}});const l=this.participants.joined.get(t);if(!l)return;const p=l.producers.find(g=>g.producerId===o);p&&(p.consumer={id:s,peerId:t,kind:e,appData:i,paused:a,producerId:o,rtpReceiver:c,localId:d}),r&&i.e2ee&&this.context.getValue("peerSessionStore").emit(R.E2EE_INACTIVE_CONSUMER,{peerId:t,trackId:r.id}),e==="video"?(l.videoTrack=r,l.setVideoEnabled(!1),this.updatePipSource(l.id,!1),this.context.getValue("callstats").consumerSharedMediaState(s,{video:!1})):e==="audio"&&(l.audioTrack=r,l.setAudioEnabled(l.audioEnabled),this.context.getValue("callstats").consumerSharedMediaState(s,{audio:l.audioEnabled}))}processNewConsumer(s){const{peerId:t,kind:e,remotelyPaused:r,track:i,appData:a,producerId:o,rtpReceiver:c,localId:d}=this.processMedia(s);if(!t)return;this.logger.info("ParticipantController::processNewConsumer",{consumer:{id:s,peerId:t,kind:e,remotelyPaused:r,appData:a,producerId:o}});const l=this.participants.joined.get(t);if(!l)return;const p=l.producers.find(g=>g.producerId===o);if(p&&(p.consumer={id:s,peerId:t,kind:e,appData:a,paused:r,producerId:o,rtpReceiver:c,localId:d}),a.screenShare){e==="video"?l.screenShareTracks.video=i:e==="audio"&&(l.screenShareTracks.audio=i),(!r||this.self.permissions.isRecorder||this.context.getValue("flagsmith").hasFeature(Z.SCREEENSHARE_ERR_HACK))&&l.setScreenShareEnabled(!0),a.supportsRemoteControl&&(l.supportsRemoteControl=!0),this.participants.broadcastMessage("screenshareConsumerCreated",{producerId:o,peerId:t,screenShare:!0,consumerId:s,consumerPeerId:this.self.id}),this.logger.info("ParticipantController::newScreenshareConsumer::screenshareConsumerCreated",{consumer:{id:s,peerId:t,kind:e,remotelyPaused:r,appData:a,producerId:o}});return}e==="video"?(l.videoTrack=i,r||(l.setVideoEnabled(!0),this.updatePipSource(l.id,!0)),this.context.getValue("callstats").consumerSharedMediaState(s,{video:!r})):e==="audio"&&(l.audioTrack=i,r||l.setAudioEnabled(!0),this.context.getValue("callstats").consumerSharedMediaState(s,{audio:!r})),!r&&a.e2ee&&this.context.getValue("peerSessionStore").emit(R.E2EE_ACTIVE_CONSUMER,{peerId:t,rtpReceiver:c,track:i})}static formatSocketPeerMessage(s){var e,r,i,a,o,c;if(!s)return;const t=wh(s.stageType);return{id:s.peerId,userId:s.userId,name:s.displayName,displayName:s.displayName,stageType:t,customParticipantId:s.customParticipantId,presetId:s.presetId,picture:s.displayPictureUrl,waitlisted:s.waitlisted,stageStatus:t,metadata:{preset_name:(e=s.flags)==null?void 0:e.presetName},recorderType:(r=s.flags)==null?void 0:r.recorderType,flags:{hiddenParticipant:(i=s.flags)==null?void 0:i.hiddenParticipant,hidden_participant:(a=s.flags)==null?void 0:a.hiddenParticipant,recorder:((o=s.flags)==null?void 0:o.recorderType)!==void 0&&((c=s.flags)==null?void 0:c.recorderType)!=="NONE"}}}onSelectedPeers(s,t){return u(this,null,function*(){this.participants.viewMode==="ACTIVE_GRID"&&this.computeActivateParticipants(s,t)})}updateActiveParticipantsWithPriorities(s,t=!1){if(this.participants.viewMode==="MANUAL")return;if(!this.mediaJoined){this.logger.warn("Skipped::ParticipantController::updateActiveParticipantsWithPriorities",{roomJoined:this.mediaJoined});return}s.forEach(r=>{this.selectedPeers.add(r.peerId,r.priority,this.context)});const e=this.selectedPeers.activeSpeakerPeers.at(0);e!==void 0&&e!==this.participants.lastActiveSpeaker&&(this.participants.lastActiveSpeaker=e,this.participants.emit("activeSpeaker",{peerId:e,volume:1})),t&&this.context.getValue("peerSessionStore").emit(R.UPDATE_ACTIVE,{viewMode:this.participants.viewMode,page:this.participants.currentPage})}},Xt=new WeakMap,gs=new WeakMap,sa=new WeakMap,Og);let Pr=jf;dn([P.trace("ParticipantController.setupEvents")],Pr.prototype,"setupEvents",1);dn([P.trace("ParticipantController.setupEvents")],Pr.prototype,"setupEventsGlobal",1);dn([P.trace("ParticipantController.processMedia")],Pr.prototype,"processMedia",1);dn([P.trace("ParticipantController.processConsumerClosed")],Pr.prototype,"processConsumerClosed",1);dn([P.trace("ParticipantController.processConsumerResumed")],Pr.prototype,"processConsumerResumed",1);dn([P.trace("ParticipantController.processConsumerPaused")],Pr.prototype,"processConsumerPaused",1);dn([P.trace("ParticipantController.processNewConsumer")],Pr.prototype,"processNewConsumer",1);const me=_s(vh().permissions);var j,ra,ia,Fd,pt,It;const yn=class extends Bt{constructor(e,r,i,a=!1){const o=e.getValue("logger");super(o);m(this,pt);m(this,j,void 0);m(this,ra,void 0);m(this,ia,void 0);m(this,Fd,e=>{var p,g,f;const l=e,{chat:r,connectedMeetings:i,plugins:a,polls:o,media:c}=l,d=Bc(l,["chat","connectedMeetings","plugins","polls","media"]);if(r&&(r.private&&Cr(n(this,j).chat.private,r.private),r.public&&Cr(n(this,j).chat.public,r.public),this.emit("chatUpdate")),i&&Cr(n(this,j).connectedMeetings,i),c){const v=_=>{switch(_){case Kr.NONE:return q.Allowed;case Kr.ALLOWED:return q.Allowed;case Kr.NOT_ALLOWED:return q.NotAllowed;case Kr.CAN_REQUEST:return q.CanRequest;default:return}},E={audio:void 0,video:void 0,screenshare:void 0};(p=c.audio)!=null&&p.canProduce&&(E.audio={canProduce:v(c.audio.canProduce)}),(g=c.video)!=null&&g.canProduce&&(E.video={canProduce:v(c.video.canProduce)}),(f=c.screenshare)!=null&&f.canProduce&&(E.screenshare={canProduce:v(c.screenshare.canProduce)}),Cr(n(this,j).media,E)}a&&(Cr(n(this,j).plugins,a),this.emit("pluginsUpdate")),o&&(Cr(n(this,j).polls,o),this.emit("pollsUpdate")),Object.keys(d).length!==0&&Cr(n(this,j),d),this.emit("permissionsUpdate",e)});if(!r)throw this.logger.error("PermissionPreset::load_preset_permissions_failed"),new k("Could not load preset permissions.","0904");T(this,ia,e),T(this,ra,i),T(this,j,r),a&&this.setupEvents()}setupEvents(){n(this,ia).getValue("peerSessionStore").on(R.UPDATE_PERMISSIONS,n(this,Fd))}static fromResponse(e,r,i){return new yn(i,e,r,!0)}static default(e,r){return new yn(e,me,r)}static init(e,r,i){let a;return i?a=new yn(e,i,r,!0):a=new yn(e,me,r),a}get mediaRoomType(){return"CF"}get stageEnabled(){var e;return((e=n(this,j))==null?void 0:e.stageEnabled)||n(this,ra)===pr.Webinar||n(this,ra)===pr.Livestream}get acceptStageRequests(){var e,r;return this.stageEnabled?((e=n(this,j))==null?void 0:e.acceptStageRequests)||((r=n(this,j))==null?void 0:r.canAcceptProductionRequests):!1}get stageAccess(){var e,r,i;return((e=n(this,j))==null?void 0:e.stageAccess)===q.NotAllowed?q.NotAllowed:((r=n(this,j))==null?void 0:r.stageAccess)===q.CanRequest?q.CanRequest:((i=n(this,j))==null?void 0:i.stageAccess)===q.Allowed||n(this,j).media.audio.canProduce===q.Allowed||n(this,j).media.video.canProduce===q.Allowed||n(this,j).media.screenshare.canProduce===q.Allowed?q.Allowed:n(this,j).media.audio.canProduce===q.CanRequest||n(this,j).media.video.canProduce===q.CanRequest||n(this,j).media.screenshare.canProduce===q.CanRequest?q.CanRequest:q.NotAllowed}get acceptWaitingRequests(){var e,r;return(r=(e=n(this,j))==null?void 0:e.acceptWaitingRequests)!=null?r:me.acceptWaitingRequests}get requestProduceVideo(){var e,r,i;return((i=(r=(e=n(this,j))==null?void 0:e.media)==null?void 0:r.video)==null?void 0:i.canProduce)===q.CanRequest}get requestProduceAudio(){var e,r,i;return((i=(r=(e=n(this,j))==null?void 0:e.media)==null?void 0:r.audio)==null?void 0:i.canProduce)===q.CanRequest}get requestProduceScreenshare(){var e,r,i;return((i=(r=(e=n(this,j))==null?void 0:e.media)==null?void 0:r.screenshare)==null?void 0:i.canProduce)===q.CanRequest}get canAllowParticipantAudio(){var e,r;return(r=(e=n(this,j))==null?void 0:e.disableParticipantAudio)!=null?r:me.disableParticipantAudio}get canAllowParticipantScreensharing(){var e,r;return(r=(e=n(this,j))==null?void 0:e.canAcceptProductionRequests)!=null?r:me.canAcceptProductionRequests}get canAllowParticipantVideo(){var e,r;return(r=(e=n(this,j))==null?void 0:e.disableParticipantVideo)!=null?r:me.disableParticipantVideo}get canDisableParticipantAudio(){return this.canAllowParticipantAudio}get canDisableParticipantVideo(){return this.canAllowParticipantVideo}get kickParticipant(){var e,r;return(r=(e=n(this,j))==null?void 0:e.kickParticipant)!=null?r:me.kickParticipant}get pinParticipant(){var e,r;return(r=(e=n(this,j))==null?void 0:e.pinParticipant)!=null?r:me.pinParticipant}get canRecord(){var e,r;return(r=(e=n(this,j))==null?void 0:e.canRecord)!=null?r:me.canRecord}get waitingRoomType(){var e,r;return(r=(e=n(this,j))==null?void 0:e.waitingRoomType)!=null?r:me.waitingRoomType}get waitingRoomBehaviour(){var e,r;return(r=(e=n(this,j))==null?void 0:e.waitingRoomType)!=null?r:me.waitingRoomType}get plugins(){var e,r;return(r=(e=n(this,j))==null?void 0:e.plugins)!=null?r:me.plugins}get polls(){var e,r;return(r=(e=n(this,j))==null?void 0:e.polls)!=null?r:me.polls}get produceVideo(){return this.canProduceVideo}get requestProduce(){return n(this,j).media.audio.canProduce===q.CanRequest||n(this,j).media.video.canProduce===q.CanRequest||n(this,j).media.screenshare.canProduce===q.CanRequest}get canProduceVideo(){var r;const e=(r=n(this,j).media.video.canProduce)!=null?r:me.media.video.canProduce;return this.stageEnabled&&(n(this,pt,It)==="ACCEPTED_TO_JOIN_STAGE"||n(this,pt,It)==="ON_STAGE")&&e===q.CanRequest?q.Allowed:this.stageEnabled&&(n(this,pt,It)==="OFF_STAGE"||n(this,pt,It)==="REQUESTED_TO_JOIN_STAGE")&&e===q.Allowed?q.NotAllowed:e}get produceScreenshare(){return this.canProduceScreenshare}get canProduceScreenshare(){var r;const e=(r=n(this,j).media.screenshare.canProduce)!=null?r:me.media.screenshare.canProduce;return this.stageEnabled&&(n(this,pt,It)==="ACCEPTED_TO_JOIN_STAGE"||n(this,pt,It)==="ON_STAGE")&&e===q.CanRequest?q.Allowed:this.stageEnabled&&(n(this,pt,It)==="OFF_STAGE"||n(this,pt,It)==="REQUESTED_TO_JOIN_STAGE")&&e===q.Allowed?q.NotAllowed:e}get produceAudio(){return this.canProduceAudio}get canProduceAudio(){var r;const e=(r=n(this,j).media.audio.canProduce)!=null?r:me.media.audio.canProduce;return this.stageEnabled&&(n(this,pt,It)==="ACCEPTED_TO_JOIN_STAGE"||n(this,pt,It)==="ON_STAGE")&&e===q.CanRequest?q.Allowed:this.stageEnabled&&(n(this,pt,It)==="OFF_STAGE"||n(this,pt,It)==="REQUESTED_TO_JOIN_STAGE")&&e===q.Allowed?q.NotAllowed:e}get chatPublic(){var e,r,i;return(i=(r=(e=n(this,j))==null?void 0:e.chat)==null?void 0:r.public)!=null?i:me.chat.public}get chatPrivate(){var e,r,i;return(i=(r=(e=n(this,j))==null?void 0:e.chat)==null?void 0:r.private)!=null?i:me.chat.private}get connectedMeetings(){var e,r;return(r=(e=n(this,j))==null?void 0:e.connectedMeetings)!=null?r:me==null?void 0:me.connectedMeetings}get hiddenParticipant(){var e,r;return(r=(e=n(this,j))==null?void 0:e.hiddenParticipant)!=null?r:me.hiddenParticipant}get showParticipantList(){var e;return(e=n(this,j).showParticipantList)!=null?e:me.showParticipantList}get canChangeParticipantRole(){var e,r;return(r=(e=n(this,j))==null?void 0:e.canChangeParticipantPermissions)!=null?r:me.canChangeParticipantPermissions}get canChangeParticipantPermissions(){var e,r;return(r=(e=n(this,j))==null?void 0:e.canChangeParticipantPermissions)!=null?r:me.canChangeParticipantPermissions}get canChangeTheme(){return!1}get canPresent(){return n(this,j).media.audio.canProduce===q.Allowed||n(this,j).media.video.canProduce===q.Allowed||n(this,j).media.screenshare.canProduce===q.Allowed}get acceptPresentRequests(){return this.acceptStageRequests}get canEditDisplayName(){var e;return(e=n(this,j).canEditDisplayName)!=null?e:!1}get maxScreenShareCount(){return 1}get isRecorder(){return n(this,j).isRecorder}get canSpotlight(){return n(this,j).canSpotlight}get canLivestream(){return n(this,j).canLivestream}get transcriptionEnabled(){return n(this,j).transcriptionEnabled}};let Uu=yn;j=new WeakMap,ra=new WeakMap,ia=new WeakMap,Fd=new WeakMap,pt=new WeakSet,It=function(){return n(this,ia).getValue("stageStatus")};var Vt;class Gf extends Bt{constructor(e,r){super(r);h(this,"localMediaHandler");m(this,Vt,void 0);T(this,Vt,e)}updatePermission(){return u(this,null,function*(){var d,l;const e=(p,g)=>{this.mediaPermissions[p]=g;const f={message:this.mediaPermissions[p],kind:p};g==="DENIED"?n(this,Vt).getValue("peerSessionStore").emit(R.MEDIA_PERMISSION_ERROR,f):n(this,Vt).getValue("peerSessionStore").emit(R.MEDIA_PERMISSION_UPDATE,f)};if(Se.getName()==="firefox")return;const r="microphone",i="camera",a=yield(d=navigator==null?void 0:navigator.permissions)==null?void 0:d.query({name:r}),o=yield(l=navigator==null?void 0:navigator.permissions)==null?void 0:l.query({name:i}),c=(p,g)=>{switch(g){case"granted":e(p,"ACCEPTED");break;case"denied":e(p,"DENIED");break;case"prompt":e(p,"NOT_REQUESTED");break}this.localMediaHandler.repopulateAvailableDevices()};a&&(a.onchange=()=>c("audio",a.state)),o&&(o.onchange=()=>c("video",o.state))})}populateMediaPermissionsInCallstats(i){return u(this,arguments,function*({message:e,kind:r}){var a,o,c,d;switch(r){case"audio":{(a=n(this,Vt))==null||a.getValue("callstats").mediaPermission("AUDIO",e),(o=n(this,Vt))==null||o.getValue("callstats").mediaPermission("SPEAKER",e);break}case"video":{(c=n(this,Vt))==null||c.getValue("callstats").mediaPermission("VIDEO",e);break}case"screenshare":{(d=n(this,Vt))==null||d.getValue("callstats").mediaPermission("SCREENSHARE",e);break}}})}get peerId(){var e;return(e=n(this,Vt))==null?void 0:e.getValue("peerId")}init(){return u(this,arguments,function*(e={},r=!1,i=null){var a,o,c,d,l,p,g;if(Se.init(),i&&T(this,Vt,i),!this.localMediaHandler)try{let f=!0;if((a=i==null?void 0:i.getValue("defaults"))!=null&&a.mediaHandler)f=!1,this.localMediaHandler=i.getValue("defaults").mediaHandler.localMediaHandler;else if(navigator.RNLocalMediaHandlerImpl){const{RNLocalMediaHandlerImpl:v}=navigator;this.localMediaHandler=yield v.init(e)}else this.localMediaHandler=new bt(i,e.constraints,(o=i==null?void 0:i.getValue("defaults"))==null?void 0:o.isNonPreferredDevice,(c=i==null?void 0:i.getValue("defaults"))==null?void 0:c.autoSwitchAudioDevice);if(i==null||i.getValue("peerSessionStore").on(R.MEDIA_PERMISSION_UPDATE,v=>u(this,null,function*(){if(this.populateMediaPermissionsInCallstats({message:v.message,kind:v.kind}),v.message==="NOT_REQUESTED")switch(v==null?void 0:v.kind){case"audio":this.rawAudioTrack&&(this.logger.info("Disabling audio due to media permission update"),this.disableAudio());break;case"video":this.rawVideoTrack&&(this.logger.info("Disabling video due to media permission update"),this.disableVideo());break;default:break}this.emit("mediaPermissionUpdate",v)})),i==null||i.getValue("peerSessionStore").on(R.MEDIA_PERMISSION_ERROR,v=>u(this,null,function*(){const{kind:E,message:_,constraints:C}=v;this.populateMediaPermissionsInCallstats({message:_,kind:E}),E==="audio"?(this.logger.info(`Disabling audio due to media permission error skipping: ${this.localMediaHandler.audioUpdateInProgress}`),this.localMediaHandler.audioUpdateInProgress===!1&&this.disableAudio()):E==="video"&&(this.logger.info(`Disabling video due to media permission error skipping: ${this.localMediaHandler.videoUpdateInProgress}`),this.localMediaHandler.videoUpdateInProgress===!1&&this.disableVideo()),this.logger.error("SelfController::mediaPermissionError",{error:{message:_},constraints:C,mediaPermissionsErrors:{kind:E,message:_}}),this.emit("mediaPermissionError",v),this.emit("mediaPermissionUpdate",{message:_,kind:E})})),f){this.logger.info(`Setting up SelfMedia streams using media handler. audio:${(d=e==null?void 0:e.audio)!=null?d:!0} video:${(l=e==null?void 0:e.video)!=null?l:!0}`);const v=this.localMediaHandler.setupStreams({video:(p=e==null?void 0:e.video)!=null?p:!0,audio:(g=e==null?void 0:e.audio)!=null?g:!0});r||(yield v)}}catch(f){this.logger.error("Self::init::Failed To Setup Streams",{error:{name:f.name,message:f.message}})}})}set context(e){T(this,Vt,e),this.localMediaHandler.context=e}get audioTrack(){return this.localMediaHandler.audioTrack}get rawAudioTrack(){return this.localMediaHandler.rawAudioTrack}get mediaPermissions(){return this.localMediaHandler.permissions}addAudioMiddleware(e){return u(this,null,function*(){return this.localMediaHandler.addAudioMiddleware(e)})}removeAudioMiddleware(e){return u(this,null,function*(){return this.localMediaHandler.removeAudioMiddleware(e)})}removeAllAudioMiddlewares(){return u(this,null,function*(){return this.localMediaHandler.removeAllAudioMiddlewares()})}get videoTrack(){return this.localMediaHandler.videoTrack}get rawVideoTrack(){return this.localMediaHandler.rawVideoTrack}addVideoMiddleware(e){return u(this,null,function*(){return this.localMediaHandler.addVideoMiddleware(e)})}setVideoMiddlewareGlobalConfig(){return u(this,arguments,function*(e={disablePerFrameCanvasRendering:!1}){return this.localMediaHandler.setVideoMiddlewareGlobalConfig(e)})}removeVideoMiddleware(e){return u(this,null,function*(){return this.localMediaHandler.removeVideoMiddleware(e)})}removeAllVideoMiddlewares(){return u(this,null,function*(){return this.localMediaHandler.removeAllVideoMiddlewares()})}get screenShareTracks(){return this.localMediaHandler.screenShareTracks}get audioEnabled(){return this.localMediaHandler.audioEnabled}get videoEnabled(){return this.localMediaHandler.videoEnabled}get screenShareEnabled(){return this.localMediaHandler.screenShareEnabled}enableAudio(){return u(this,null,function*(){yield this.localMediaHandler.enableAudio(),this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})})}enableVideo(){return u(this,null,function*(){yield this.localMediaHandler.enableVideo(),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack})})}disableAudio(){return u(this,null,function*(){this.localMediaHandler.disableAudio(),this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})})}enableScreenShare(){return u(this,null,function*(){yield this.localMediaHandler.enableScreenShare(),this.emit("screenShareUpdate",{screenShareEnabled:this.screenShareEnabled,screenShareTracks:this.screenShareTracks})})}disableScreenShare(){return u(this,null,function*(){yield this.localMediaHandler.disableScreenShare(),this.emit("screenShareUpdate",{screenShareEnabled:this.screenShareEnabled,screenShareTracks:this.screenShareTracks})})}disableVideo(){return u(this,null,function*(){yield this.localMediaHandler.disableVideo(),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack})})}getCurrentDevices(){return this.localMediaHandler.getCurrentDevices()}getAudioDevices(){return u(this,null,function*(){return yield this.localMediaHandler.getAudioDevices()})}getVideoDevices(){return u(this,null,function*(){return yield this.localMediaHandler.getVideoDevices()})}getSpeakerDevices(){return u(this,null,function*(){return yield this.localMediaHandler.getSpeakerDevices()})}getDeviceById(e,r){let i;return r==="audio"?i="audioinput":r==="video"?i="videoinput":r==="speaker"&&(i="audiooutput"),this.localMediaHandler.getDeviceById(e,i)}setDevice(e){return u(this,null,function*(){switch(e.kind){case"audioinput":try{yield this.localMediaHandler.setAudioDevice(e,{saveDevicePreference:!0})}catch(r){}finally{this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})}break;case"audiooutput":yield this.localMediaHandler.setSpeakerDevice(e,{saveDevicePreference:!0});break;case"videoinput":try{yield this.localMediaHandler.setVideoDevice(e,{saveDevicePreference:!0})}catch(r){}finally{this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack})}break}this.emit("deviceUpdate",{device:e})})}}Vt=new WeakMap;var SD=Object.defineProperty,yD=Object.getOwnPropertyDescriptor,St=(s,t,e,r)=>{for(var i=r>1?void 0:r?yD(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&&SD(t,e,i),i},na,gt,aa,Ue,Xs,ni,He,Ye,oa,cd,Ve,Fe,ca,da,Go,$u,Ng;let ze=(Ng=class extends Gf{constructor(t,e,r,i,a){var c;const o=t.getValue("logger");super(t,o);m(this,Xs);m(this,He);m(this,oa);m(this,Ve);m(this,Go);h(this,"name");h(this,"picture");h(this,"customParticipantId");h(this,"waitlistStatus");m(this,na,void 0);m(this,gt,void 0);m(this,aa,void 0);h(this,"role");h(this,"userId");h(this,"organizationId");h(this,"supportsRemoteControl",!1);h(this,"device");m(this,Ue,void 0);h(this,"hidden",!1);h(this,"presetName");h(this,"roomState","init");m(this,ca,new Set);m(this,da,new Set);T(this,Ue,t),this.userId=e.id,this.name=e.name,this.picture=e.picture,this.customParticipantId=(c=e.customParticipantId)!=null?c:e.clientSpecificId,this.waitlistStatus="none",T(this,gt,r),T(this,na,i),this.hidden=!1,T(this,aa,!1),this.organizationId=e.organizationId,this.supportsRemoteControl=Se.isElectron(),this.device=Se.getDeviceInfo(),this.presetName=a,this.updatePermission(),this.updateVideo=this.updateVideo.bind(this),L(this,Go,$u).call(this)}get telemetry(){return n(this,Ue).getValue("telemetry")}get stageStatus(){return n(this,Ue).getValue("stageStatus")}get producers(){var t,e;return Array.from((e=(t=n(this,He,Ye).getProducers())==null?void 0:t.values())!=null?e:[])}get id(){return this.peerId}get peerId(){return n(this,Ue).getValue("peerId")}static __init__(t,e,r,i,a,o=!1){return u(this,null,function*(){var f,v,E,_,C,A;let c=(v=(f=t.getValue("defaults"))==null?void 0:f.audio)!=null?v:!0,d=(_=(E=t.getValue("defaults"))==null?void 0:E.video)!=null?_:!0;r.canProduceAudio!=="ALLOWED"&&(c=!1),r.canProduceVideo!=="ALLOWED"&&(d=!1);const l=new ze(t,e,r,i,a),p=A0(i.mediaConstraints);Cr(p,(C=t.getValue("defaults"))==null?void 0:C.mediaConfiguration);const g=(A=t.getValue("defaults"))==null?void 0:A.mediaHandler;return g&&(g.context=t),yield l.init({audio:c,video:d,constraints:p},o,t),l.setupEvents(),l})}cleanupEvents(){this.removeAllListeners("videoUpdate"),this.localMediaHandler.removeAllListeners("AUDIO_TRACK_CHANGE"),this.localMediaHandler.removeAllListeners("VIDEO_TRACK_CHANGE"),this.localMediaHandler.removeAllListeners("DEVICE_CHANGE"),this.localMediaHandler.removeAllListeners("DEVICE_LIST_UPDATED"),this.localMediaHandler.removeAllListeners("SCREENSHARE_TRACK_CHANGE"),this.localMediaHandler.removeAllListeners("SCREENSHARE_ENDED"),this.localMediaHandler.removeAllListeners("AUDIO_TRACK_SILENT"),this.localMediaHandler.removeAllListeners("FORCE_MUTE_AUDIO"),this.localMediaHandler.removeAllListeners("FORCE_MUTE_VIDEO"),n(this,gt).removeAllListeners("permissionsUpdate")}setupEvents(){this.on("videoUpdate",L(this,Go,$u));const t=n(this,oa,cd);t&&t.onError(e=>{this.emit("autoplayError",e)}),this.localMediaHandler.on("AUDIO_TRACK_CHANGE",()=>u(this,null,function*(){if(this.logger.info("Self::setupEvents::AUDIO_TRACK_CHANGE",O({},di(this))),n(this,Ve,Fe)&&this.audioEnabled)try{yield n(this,He,Ye).shareMic(this.audioTrack)}catch(e){this.logger.error("Self::setupEvents::Error while sharing mic",{error:e}),this.localMediaHandler.disableAudio()}this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})})),this.localMediaHandler.on("VIDEO_TRACK_CHANGE",()=>u(this,null,function*(){if(this.logger.info("Self::setupEvents::VIDEO_TRACK_CHANGE",O({},di(this))),n(this,Ve,Fe)&&this.rawVideoTrack===void 0)this.logger.info("Self::VIDEO_TRACK_CHANGE::Forcing_disable_video"),this.disableVideo();else if(this.videoEnabled&&n(this,Ve,Fe))try{const e=yield n(this,He,Ye).shareWebcam(this.videoTrack);e&&e.id!==this.videoTrack.id&&n(this,Ue).getValue("flagsmith").hasFeature(Z.EXP_RESHARE)&&(yield n(this,He,Ye).shareWebcam(this.videoTrack))}catch(e){this.logger.error("Self::setupEvents::failed shareWebcam",{error:e}),this.videoEnabled&&(yield this.localMediaHandler.disableVideo())}this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack})})),this.localMediaHandler.on("DEVICE_CHANGE",r=>u(this,[r],function*({device:e}){var i;this.emit("deviceUpdate",{device:e}),e.kind==="audiooutput"&&typeof HTMLAudioElement.prototype.setSinkId=="function"&&((i=n(this,oa,cd))==null||i.setSpeakerDevice(e.deviceId))})),this.localMediaHandler.on("DEVICE_LIST_UPDATED",e=>{this.emit("deviceListUpdate",e)}),this.localMediaHandler.on("SCREENSHARE_TRACK_CHANGE",()=>u(this,null,function*(){if(!n(this,Ve,Fe)){this.logger.error("Self.SCREENSHARE_TRACK_CHANGE.LocalMediaInitialized_WithoutRoomNode");return}if(this.screenShareEnabled)try{yield n(this,He,Ye).shareScreen(this.screenShareTracks)}catch(e){this.logger.error("Self::setupEvents::Error while sharing screen",{error:e}),this.screenShareEnabled&&(yield this.localMediaHandler.disableScreenShare())}this.logger.info("Self::setupEvents::SCREENSHARE_TRACK_CHANGE",O({},di(this))),this.emit("screenShareUpdate",{screenShareEnabled:this.screenShareEnabled,screenShareTracks:this.screenShareTracks})})),this.localMediaHandler.on("SCREENSHARE_ENDED",()=>u(this,null,function*(){this.logger.log("Disabling screenshare due to SCREENSHARE_ENDED"),yield this.disableScreenShare(),this.logger.info("Self::setupEvents::SCREENSHARE_ENDED",O({},di(this)))})),this.localMediaHandler.on("AUDIO_TRACK_SILENT",()=>{var e;(e=n(this,Ue))==null||e.getValue("callstats").mediaTrackMuted("AUDIO")}),this.localMediaHandler.on("FORCE_MUTE_AUDIO",()=>{this.disableAudio()}),this.localMediaHandler.on("FORCE_MUTE_VIDEO",()=>u(this,null,function*(){var e;n(this,Ve,Fe)&&(yield n(this,He,Ye).pauseWebcam()),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}),(e=n(this,Ue))==null||e.getValue("callstats").videoOff()})),n(this,gt).on("permissionsUpdate",e=>{var r,i,a;(r=e==null?void 0:e.media)!=null&&r.audio&&n(this,gt).canProduceAudio!==q.Allowed&&(this.disableAudio(),this.logger.info(`Disabled audio due to dynamic preset change: canProduceAudio: ${this.permissions.canProduceAudio}`)),(i=e==null?void 0:e.media)!=null&&i.video&&n(this,gt).canProduceVideo!==q.Allowed&&(this.disableVideo(),this.logger.info(`Disabled video due to dynamic preset change: canProduceVideo: ${this.permissions.canProduceVideo}`)),(a=e==null?void 0:e.media)!=null&&a.screenshare&&n(this,gt).canProduceScreenshare!==q.Allowed&&(this.disableScreenShare(),this.logger.info(`Disabled screenshare due to dynamic preset change: canProduceScreenshare: ${this.permissions.canProduceScreenshare}`))})}get permissions(){return n(this,gt)}get config(){return n(this,na)}get roomJoined(){var t;return n(this,na).viewType===pr.Livestream&&this.stageStatus!=="ON_STAGE"?((t=n(this,Ue).getValue("connectionHandler"))==null?void 0:t.socketJoined)===!0:n(this,Ve,Fe)}setName(t){if(!t)throw new k("Name cannot be empty.","1103");this.name=t}setupTracks(){return u(this,arguments,function*(t={}){t.forceReset,yield this.disableAudio(),yield this.disableVideo(),this.localMediaHandler.removeAudioTrack(),this.localMediaHandler.removeVideoTrack(),t.audio&&(yield this.enableAudio()),t.video&&(yield this.enableVideo())})}destructMediaHandler(){return u(this,null,function*(){return this.localMediaHandler.destruct()})}removeDocumentEventListeners(){return u(this,null,function*(){return this.localMediaHandler.removeDocumentEventListeners()})}enableAudio(t){return u(this,null,function*(){var e;if(this.permissions.canProduceAudio!==q.NotAllowed&&!(n(this,gt).canProduceAudio===q.CanRequest&&(this.stageStatus==="OFF_STAGE"||this.stageStatus==="REQUESTED_TO_JOIN_STAGE"))&&!this.audioEnabled){if((e=n(this,Ue))==null||e.getValue("callstats").audioOn(),yield this.localMediaHandler.enableAudio(t),n(this,Ve,Fe)&&this.stageStatus==="ON_STAGE"){if(this.audioTrack)try{yield n(this,He,Ye).shareMic(this.audioTrack)}catch(r){this.logger.error("Self::enableAudio::Error while sharing mic",{error:r}),this.localMediaHandler.disableAudio()}if(!this.audioEnabled)return}this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})}})}enableVideo(t){return u(this,null,function*(){var e;if(n(this,gt).canProduceVideo!==q.NotAllowed&&!(n(this,gt).canProduceVideo===q.CanRequest&&(this.stageStatus==="OFF_STAGE"||this.stageStatus==="REQUESTED_TO_JOIN_STAGE"))&&!this.videoEnabled){if((e=n(this,Ue))==null||e.getValue("callstats").videoOn(),yield this.localMediaHandler.enableVideo(t),n(this,Ve,Fe)&&this.stageStatus==="ON_STAGE")try{yield n(this,He,Ye).shareWebcam(this.videoTrack)}catch(r){this.logger.error("Self::enableVideo::Error while sharing video",{error:r}),this.videoEnabled&&this.localMediaHandler.disableVideo()}this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}),this.logger.info("Self.enableVideo",O({},di(this)))}})}updateVideoConstraints(t){return u(this,null,function*(){if(!this.localMediaHandler.updateVideoConstraints)throw new k("Unsupported","1102");yield this.localMediaHandler.updateVideoConstraints(t)})}enableScreenShare(){return u(this,null,function*(){if(!n(this,Ve,Fe))throw new k("Can`t enable screenshare without joining room","1105");if(n(this,gt).canProduceScreenshare!==q.NotAllowed&&!(n(this,gt).canProduceScreenshare===q.CanRequest&&(this.stageStatus==="OFF_STAGE"||this.stageStatus==="REQUESTED_TO_JOIN_STAGE"))&&!this.screenShareEnabled&&(yield this.localMediaHandler.enableScreenShare(),this.screenShareTracks.audio||this.screenShareTracks.video)){try{yield n(this,He,Ye).shareScreen(this.screenShareTracks)}catch(t){this.logger.error("Self::enableScreenShare::Error while sharing screen",{error:t}),this.screenShareEnabled&&(yield this.localMediaHandler.disableScreenShare())}this.emit("screenShareUpdate",{screenShareEnabled:this.screenShareEnabled,screenShareTracks:this.screenShareTracks})}})}updateScreenshareConstraints(t){return u(this,null,function*(){if(!this.localMediaHandler.updateScreenshareConstraints)throw new k("Unsupported","1102");yield this.localMediaHandler.updateScreenshareConstraints(t)})}disableAudio(){return u(this,null,function*(){var t;this.audioEnabled&&(this.localMediaHandler.disableAudio(),n(this,Ve,Fe)&&n(this,He,Ye).muteSelf(),this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack}),(t=n(this,Ue))==null||t.getValue("callstats").audioOff())})}disableVideo(){return u(this,null,function*(){var t;this.videoEnabled&&(yield this.localMediaHandler.disableVideo(),n(this,Ve,Fe)&&(yield n(this,He,Ye).pauseWebcam()),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}),(t=n(this,Ue))==null||t.getValue("callstats").videoOff())})}disableScreenShare(){return u(this,null,function*(){this.screenShareEnabled&&(yield this.localMediaHandler.disableScreenShare(),n(this,Ve,Fe)&&(yield n(this,He,Ye).disableScreenShare()),this.emit("screenShareUpdate",{screenShareEnabled:this.screenShareEnabled,screenShareTracks:this.screenShareTracks}))})}getAllDevices(){return this.localMediaHandler.getAllDevices()}setIsPinned(t,e=!0){var i;T(this,aa,t);const r=t?"pinned":"unpinned";(i=n(this,Xs,ni))==null||i.updateSource(this.id,{pinned:t}),e&&this.emit(r,this)}get isPinned(){return n(this,aa)}pin(){return u(this,null,function*(){if(!n(this,Ve,Fe))throw new k("Can`t pin participants without joining room","1105");return this.show(),n(this,He,Ye).pinPeer(this.id)})}unpin(){return u(this,null,function*(){if(!n(this,Ve,Fe))throw new k("Can`t unpin participants without joining room","1105");return n(this,He,Ye).pinPeer(null)})}hide(){return u(this,null,function*(){if(!n(this,Ve,Fe))throw new k("Can`t toggle participant tile without joining room","1105");this.hidden=!0,this.emit("toggleTile",{hidden:this.hidden})})}show(){if(!n(this,Ve,Fe))throw new k("Can`t toggle participant tile without joining room","1105");this.hidden=!1,this.emit("toggleTile",{hidden:this.hidden})}setDevice(t){return u(this,null,function*(){var r,i,a;if(!t)throw new k("No device selected","1104");const e=this.getCurrentDevices();if(t.deviceId&&(((r=e==null?void 0:e.audio)==null?void 0:r.deviceId)===t.deviceId||((i=e==null?void 0:e.video)==null?void 0:i.deviceId)===t.deviceId||((a=e==null?void 0:e.speaker)==null?void 0:a.deviceId)===t.deviceId)&&(this.logger.warn("Self.setDevice.setting_to_in_use_device",{devices:[t]}),n(this,Ue).getValue("flagsmith").hasFeature(Z.SKIP_SETTING_IN_USE_DEVICE)))throw new k("Cannot set device currently in use","1106");switch(t.kind){case"audioinput":try{yield this.localMediaHandler.setAudioDevice(t,{saveDevicePreference:!0})}catch(o){n(this,Ve,Fe)&&(yield n(this,He,Ye).muteSelf()),this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})}break;case"audiooutput":yield this.localMediaHandler.setSpeakerDevice(t,{saveDevicePreference:!0});break;case"videoinput":try{yield this.localMediaHandler.setVideoDevice(t,{saveDevicePreference:!0})}catch(o){n(this,Ve,Fe)&&(yield n(this,He,Ye).pauseWebcam()),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack})}break}})}cleanUpTracks(){var t,e,r,i;(t=this.audioTrack)==null||t.stop(),(e=this.rawAudioTrack)==null||e.stop(),(r=this.videoTrack)==null||r.stop(),(i=this.rawVideoTrack)==null||i.stop()}playAudio(){var t;return(t=n(this,oa,cd))==null?void 0:t.play()}registerVideoElement(t,e=!1){var r,i;t&&(e?n(this,ca).add(t):n(this,da).add(t),this.updateVideo(t),e||(i=n(this,Xs,ni))==null||i.addSource(this.id,t,this.videoEnabled,this.isPinned,this.name,this.picture,(r=this.raised)!=null?r:!1))}deregisterVideoElement(t,e=!1){if(!t){n(this,Xs,ni).removeSource(this.id);return}t.srcObject=void 0,e?n(this,ca).delete(t):(n(this,da).delete(t),n(this,Xs,ni).removeSource(this.id))}updateVideo(t,e=!1){var r,i,a;if(this.videoEnabled){if(this.videoTrack==null)return;const o=(r=t.srcObject)==null?void 0:r.getTracks()[0];if((o==null?void 0:o.id)===this.videoTrack.id)return;const c=new MediaStream;c.addTrack(this.videoTrack),t.srcObject=c,e||(i=n(this,Xs,ni))==null||i.enableSource(this.id)}else t.srcObject=void 0,e||(a=n(this,Xs,ni))==null||a.disableSource(this.id);t.style.display=this.videoEnabled?"block":"none"}},na=new WeakMap,gt=new WeakMap,aa=new WeakMap,Ue=new WeakMap,Xs=new WeakSet,ni=function(){return n(this,Ue).getValue("pip")},He=new WeakSet,Ye=function(){return n(this,Ue).getValue("roomNodeClient")},oa=new WeakSet,cd=function(){return n(this,Ue).getValue("audioPlayback")},Ve=new WeakSet,Fe=function(){var t;return((t=n(this,Ue).getValue("connectionHandler"))==null?void 0:t.mediaJoined)===!0},ca=new WeakMap,da=new WeakMap,Go=new WeakSet,$u=function(){Array.from(n(this,da)).forEach(t=>this.updateVideo(t,!1)),Array.from(n(this,ca)).forEach(t=>this.updateVideo(t,!0))},Ng);St([P.trace("Self.cleanupEvents")],ze.prototype,"cleanupEvents",1);St([P.trace("Self.setupEvents")],ze.prototype,"setupEvents",1);St([P.trace("Self.setupTracks")],ze.prototype,"setupTracks",1);St([P.trace("Self.destructMediaHandler")],ze.prototype,"destructMediaHandler",1);St([P.trace("Self.removeDocumentEventListeners")],ze.prototype,"removeDocumentEventListeners",1);St([Er.executeWithLock({methodName:"meeting.self.enableAudio",lockName:"Self.toggleAudio",timeout:3e3}),P.trace("Self.enableAudio")],ze.prototype,"enableAudio",1);St([Er.executeWithLock({methodName:"meeting.self.enableVideo",lockName:"Self.toggleVideo",timeout:3e3}),P.trace("Self.enableVideo")],ze.prototype,"enableVideo",1);St([P.trace("Self.updateVideoConstraints")],ze.prototype,"updateVideoConstraints",1);St([P.trace("Self.enableScreenShare"),Er.executeWithLock({methodName:"meeting.self.enableScreenShare",lockName:"Self.toggleScreenShare",timeout:3e3})],ze.prototype,"enableScreenShare",1);St([P.trace("Self.updateScreenshareConstraints")],ze.prototype,"updateScreenshareConstraints",1);St([Er.executeWithLock({methodName:"meeting.self.disableAudio",lockName:"Self.toggleAudio",timeout:3e3}),P.trace("Self.disableAudio")],ze.prototype,"disableAudio",1);St([Er.executeWithLock({methodName:"meeting.self.disableVideo",lockName:"Self.toggleVideo",timeout:3e3}),P.trace("Self.disableVideo")],ze.prototype,"disableVideo",1);St([Er.executeWithLock({methodName:"meeting.self.disableScreenShare",lockName:"Self.toggleScreenShare",timeout:3e3}),P.trace("Self.disableScreenShare")],ze.prototype,"disableScreenShare",1);St([P.trace("Self.setDevice")],ze.prototype,"setDevice",1);ze=St([dt("1100")],ze);class Mh extends Error{constructor(t){super(t!=null?t:"AwaitQueue stopped"),this.name="AwaitQueueStoppedError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Mh)}}class Dh extends Error{constructor(t){super(t!=null?t:"AwaitQueue task removed"),this.name="AwaitQueueRemovedTaskError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Dh)}}var Wo;class Fu{constructor(t,e=!1){h(this,"pendingTasks",new Map);h(this,"nextTaskId",0);h(this,"stopping",!1);m(this,Wo,void 0);this.log=e,T(this,Wo,{info:e&&t?t.info:()=>{}})}get size(){return this.pendingTasks.size}push(t,e,r){return u(this,null,function*(){if(e=e!=null?e:t.name,typeof t!="function")throw new TypeError("given task is not a function");if(e)try{Object.defineProperty(t,"name",{value:e})}catch(i){}return new Promise((i,a)=>{const o={id:this.nextTaskId++,task:t,metadata:r,name:e,enqueuedAt:Date.now(),executedAt:void 0,completed:!1,resolve:c=>{if(o.completed)return;o.completed=!0,this.pendingTasks.delete(o.id),i(c);const[d]=this.pendingTasks.values();d&&!d.executedAt&&this.execute(d)},reject:c=>{if(!o.completed&&(o.completed=!0,this.pendingTasks.delete(o.id),a(c),!this.stopping)){const[d]=this.pendingTasks.values();d&&!d.executedAt&&this.execute(d)}}};this.pendingTasks.set(o.id,o),this.pendingTasks.size===1&&this.execute(o)})})}stop(){this.stopping=!0;for(const t of this.pendingTasks.values())t.reject(new Mh);this.stopping=!1}remove(t){const e=Array.from(this.pendingTasks.values())[t];e&&e.reject(new Dh)}get(t){return Array.from(this.pendingTasks.values())[t]}dump(){const t=Date.now();let e=0;return Array.from(this.pendingTasks.values()).map(r=>({idx:e++,task:r.task,name:r.name,enqueuedTime:r.executedAt?r.executedAt-r.enqueuedAt:t-r.enqueuedAt,executionTime:r.executedAt?t-r.executedAt:0}))}execute(t){return u(this,null,function*(){if(t.executedAt)throw new Error("task already being executed");t.executedAt=Date.now();try{const e=this.pendingTasks.size,r=yield t.task(),i=Date.now();n(this,Wo).info(`AwaitQueue.push(${t.name})_timings`,{awaitQueueTask:{id:t.id,metadata:t.metadata,queueSizeAtStart:e,execTime:(i-t.executedAt)/1e3,taskStartTime:(t.executedAt-t.enqueuedAt)/1e3}}),t.resolve(r)}catch(e){t.reject(e)}})}}Wo=new WeakMap;function ED(s,t){const e=new Error(t);return e.name=s,e}class _o extends Error{constructor(t){super(t),this.name="UnsupportedError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,_o):this.stack=new Error(t).stack}}class wt extends Error{constructor(t){super(t),this.name="InvalidStateError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,wt):this.stack=new Error(t).stack}}class li extends Error{constructor(t){super(t),this.name="TransportConnectionError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,wt):this.stack=new Error(t).stack}}const dg=s=>new Promise(t=>setTimeout(t,s));function Wf(s,t){return u(this,null,function*(){return new Promise((e,r)=>u(this,null,function*(){const{strategy:i,maxRetryCount:a,delayTime:o}=O({strategy:"linear",maxRetryCount:3,delayTime:10},t);let c=0,d,l=!1;const p=g=>{l=!0,r(g)};for(;c<a;){try{const g=yield s(c,p);return e(g)}catch(g){if(d=g,l)break;if(c<a)i==="linear"?yield dg(o*(c+1)):i==="exponential"&&(yield dg(o*(c+Math.max(0,c-1))));else break}c+=1}return r(d)}))})}function PD(s){return s.map(t=>({channels:t.channels,clockRate:t.clockRate,mimeType:t.mimeType,sdpFmtpLine:t.sdpFmtpLine}))}function _D(s){return s.map(t=>({uri:t.uri}))}function Yc(s){return{codecs:PD(s.codecs),headerExtensions:_D(s.headerExtensions?s.headerExtensions:[])}}function CD(s){const t=RTCRtpReceiver.getCapabilities("audio"),e=RTCRtpReceiver.getCapabilities("video"),r=RTCRtpSender.getCapabilities("audio"),i=RTCRtpSender.getCapabilities("video");s&&(e.codecs=e.codecs.filter(({mimeType:d})=>s===d),i.codecs=i.codecs.filter(({mimeType:d})=>s===d));const a={audio:Yc(t),video:Yc(e)};return{sender:{audio:Yc(r),video:Yc(i)},receiver:a}}var Je;class wD{constructor(t){m(this,Je,void 0);h(this,"events");T(this,Je,t),this.events=Ps}joinRoom(t,e,r,i=!1,a=null){return u(this,null,function*(){const o={roomUuid:t,displayName:e,prejoined:i,capabilities:r};return a&&(o.location=a),(yield n(this,Je).sendMessagePromiseWithTimeout({event:this.events.joinRoom,protobuf:zw.toBinary(o),timeout:5e3})).payload})}connectTransport(t){return u(this,null,function*(){const e=(yield n(this,Je).sendMessagePromise(this.events.createWebRTCTransport,_w.toBinary(t))).payload,{transportId:r,description:i,producerIds:a}=nf.fromBinary(e),o={sdp:i==null?void 0:i.sdp,type:i.type};return{transportId:r,answer:o,producerIds:a}})}produce(t){return u(this,null,function*(){var a,o;const e=(yield n(this,Je).sendMessagePromise(this.events.produce,lR.toBinary(t))).payload,r=WR.fromBinary(e);return{answer:{sdp:(a=r==null?void 0:r.description)==null?void 0:a.sdp,type:(o=r==null?void 0:r.description)==null?void 0:o.type},producerId:r.producerId}})}consume(t){return u(this,null,function*(){const e=(yield n(this,Je).sendMessagePromise(this.events.consume,iR.toBinary(t))).payload,{consumerIdsMap:{map:r},description:i}=jR.fromBinary(e);return{consumerStateMap:r,sessionDescription:i}})}closeProducer(t){return u(this,null,function*(){const e=(yield n(this,Je).sendMessagePromise(this.events.closeProducer,TR.toBinary(t))).payload,{description:r}=ZR.fromBinary(e);return r})}closeConsumer(t){return u(this,null,function*(){return(yield n(this,Je).sendMessagePromise(this.events.closeConsumer,SR.toBinary(t))).payload})}updateConsumersSimulcastConfig(t){return u(this,null,function*(){return(yield n(this,Je).sendMessagePromise(this.events.updateConsumersSimulcastConfig,cR.toBinary(t))).payload})}hostControlForPeer(t,e){return u(this,null,function*(){const r={audio:e==="audio",screeShare:!1,video:e==="video",participantId:t},i=(yield n(this,Je).sendMessagePromise(this.events.hostControlPeer,wR.toBinary(r))).payload;if(!i)return!1;const{status:a}=ab.fromBinary(i);return a==="success"})}hostControlForAll(t){return u(this,null,function*(){const e={audio:t==="audio",screenShare:!1,video:t==="video"},r=(yield n(this,Je).sendMessagePromise(this.events.hostControlAllPeers,bR.toBinary(e))).payload;if(!r)return!1;const{status:i}=cb.fromBinary(r);return i==="success"})}kickAll(){return u(this,null,function*(){const t={propagateKickAcrossRooms:!1};n(this,Je).sendMessagePromise(U.kickAll,df.toBinary(t))})}kickPeer(t){return u(this,null,function*(){n(this,Je).sendMessagePromise(U.kick,gf.toBinary(t))})}changeDisplayName(t){return u(this,null,function*(){const e=(yield n(this,Je).sendMessagePromise(this.events.changeDisplayName,_R.toBinary(t))).payload;if(!e)return!1;const{status:r}=lb.fromBinary(e);return r==="success"})}notifySelfJoinComplete(){return u(this,null,function*(){const t={},e=(yield n(this,Je).sendMessagePromise(this.events.selfJoinComplete,Qw.toBinary(t))).payload;return yu.fromBinary(e)})}audioActivity(t){return u(this,null,function*(){n(this,Je).sendMessage(this.events.audioActivity,ww.toBinary(t))})}}Je=new WeakMap;var wn=(s=>(s.NEW="new",s.CONNECTING="connecting",s.RECONNECTING="reconnecting",s.DISCONNECTED="disconnected",s.CONNECTED="connected",s.FAILED="failed",s.CLOSED="closed",s))(wn||{}),Jo;class $l extends ct.EventEmitter{constructor(e){super();m(this,Jo,void 0);T(this,Jo,e),this.setMaxListeners(1/0)}get logger(){return n(this,Jo).getValue("logger")}safeEmit(e,...r){const i=this.listenerCount(e);try{return this.emit(e,...r)}catch(a){return this.logger.error(`EnhancedEventEmitter:: safeEmit() | event listener ${e} threw an error`,{error:a}),Boolean(i)}}safeEmitAsPromise(e,...r){return u(this,null,function*(){const i={}.EVENT_PROMISE_TIMEOUT?parseInt({}.EVENT_PROMISE_TIMEOUT,10):1e4;return this.safeEmitAsPromiseWithTimeout(e,i,...r)})}safeEmitAsPromiseWithTimeout(e,r,...i){return u(this,null,function*(){return new Promise((a,o)=>{setTimeout(o,r,"event request timeout");try{this.emit(e.toString(),...i,a,o)}catch(c){this.logger.error(`EnhancedEventEmitter:: safeEmitAsPromise() | event listener for event ${e.toString()} threw an error [event:%s]:%o`,{error:c}),o(c)}})})}}Jo=new WeakMap;class Oh extends $l{constructor(){super(...arguments);h(this,"_sendWebStream",new MediaStream);h(this,"_sendScreenShareStream",new MediaStream);h(this,"_direction");h(this,"pc");h(this,"_transportReady",!1);h(this,"_mapMidTransceiver",new Map);h(this,"enableHighBitrate",!1);h(this,"enableStereo",!1);h(this,"enableDtx",!0)}get midTransceiverMap(){return this._mapMidTransceiver}close(){if(this.logger.debug(`${this.name}::close()`),this.pc)try{this.pc.close()}catch(e){this.logger.error(`${this.name}::pc.close()`,{error:e})}}restartIce(){return u(this,null,function*(){this.logger.debug(`${this.name}::restartIce()`);const e=yield this.pc.createOffer({iceRestart:!0});return this.logger.debug(`${this.name}::restartIce() | calling pc.setLocalDescription() [offer:${JSON.stringify(e)}]`),{offerSdp:e,callback:i=>u(this,null,function*(){this.logger.info(`${this.name}::restartIce() | calling pc.setRemoteDescription() [answer:${JSON.stringify(i)}]`),yield this.pc.setRemoteDescription(i)})}})}init({direction:e,iceServers:r,iceTransportPolicy:i,additionalSettings:a,proprietaryConstraints:o,onTrackHandler:c}){this.logger.debug("HandlerInterface::init()"),this._direction=e,this.pc=new RTCPeerConnection(O({iceServers:r||[],iceTransportPolicy:i||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"},a),o),c&&this.pc.addEventListener("track",d=>{c(d)}),this._addEventListeners()}connect(){return u(this,null,function*(){this.pc.addTransceiver("audio",{direction:"sendonly"}),this.pc.addTransceiver("video",{direction:"sendonly"});const e=yield this.pc.createOffer();return yield this.pc.setLocalDescription(e),this.logger.info(`connect offer: ${JSON.stringify(e)}`),{offerSdp:e,callback:i=>u(this,null,function*(){this.logger.debug(`${this.name}::connect() | calling pc.setRemoteDescription() [answer:${JSON.stringify(i)}]`),yield this.pc.setRemoteDescription(i)})}})}getTransportStats(){return u(this,null,function*(){return this.pc.getStats()})}_assertSendDirection(){if(this._direction!=="send")throw new Error('method can just be called for handlers with "send" direction')}_assertRecvDirection(){if(this._direction!=="recv")throw new Error('method can just be called for handlers with "recv" direction')}getReceiverStats(e){return u(this,null,function*(){this._assertRecvDirection();const r=this.midTransceiverMap.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");return r.receiver.getStats()})}stopSending(e){return u(this,null,function*(){this._assertSendDirection(),this.logger.debug(`stopSending() [localId:${e}]`);const r=this.midTransceiverMap.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");r.sender.replaceTrack(null),this.pc.removeTrack(r.sender),r.direction="inactive";const i=yield this.pc.createOffer();return this.logger.debug(`stopSending() | calling pc.setLocalDescription() [offer:${JSON.stringify(i)}]`),yield this.pc.setLocalDescription(i),{offerSdp:i,callback:o=>u(this,null,function*(){this.logger.debug(`stopSending() | calling pc.setRemoteDescription() [answer:${JSON.stringify(o)}]`),yield this.pc.setRemoteDescription(o),this.midTransceiverMap.delete(e)})}})}replaceTrack(e,r){return u(this,null,function*(){this._assertSendDirection(),r?this.logger.debug(`replaceTrack() [localId:${e}, track.id:${r.id}]`):this.logger.debug(`replaceTrack() [localId:${e}, no track]`);const i=this.midTransceiverMap.get(e);if(!i)throw new Error("associated RTCRtpTransceiver not found");yield i.sender.replaceTrack(r)})}setMaxSpatialLayer(e,r){return u(this,null,function*(){this._assertSendDirection(),this.logger.debug(`setMaxSpatialLayer() [localId:${e}, spatialLayer:${r}]`);const i=this.midTransceiverMap.get(e);if(!i)throw new Error("associated RTCRtpTransceiver not found");const a=i.sender.getParameters();a.encodings.forEach((o,c)=>{c<=r?o.active=!0:o.active=!1}),yield i.sender.setParameters(a)})}setRtpEncodingParameters(e,r){return u(this,null,function*(){this._assertSendDirection(),this.logger.debug(`setRtpEncodingParameters() [localId:${e}, params:${JSON.stringify(r)}]`);const i=this.midTransceiverMap.get(e);if(!i)throw new Error("associated RTCRtpTransceiver not found");const a=i.sender.getParameters();a.encodings.forEach((o,c)=>{a.encodings[c]=O(O({},o),r)}),yield i.sender.setParameters(a)})}getSenderStats(e){this._assertSendDirection();const r=this.midTransceiverMap.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");return r.sender.getStats()}_addEventListeners(){this.pc.addEventListener("icecandidate",e=>{e.candidate&&this.emit("@icecandidate",{candidate:e.candidate})}),this.pc.addEventListener("iceconnectionstatechange",()=>{switch(this.pc.iceConnectionState){case"checking":this.emit("@connectionstatechange","connecting");break;case"connected":case"completed":this.emit("@connectionstatechange","connected"),this._transportReady=!0;break;case"failed":this.emit("@connectionstatechange","failed");break;case"disconnected":this.emit("@connectionstatechange","disconnected");break;case"closed":this.emit("@connectionstatechange","closed");break;default:this.logger.warn("unknown state");break}}),this.pc.addEventListener("negotiationneeded",()=>{this.emit("@negotiationneeded",{}),this.logger.debug("negotiationneeded")}),this.pc.addEventListener("icegatheringstatechange",()=>{switch(this.pc.iceGatheringState){case"gathering":this.logger.debug("icegatheringstatechange | gathering"),this.emit("@icegatheringstatechange","gathering");break;case"complete":this.logger.debug("icegatheringstatechange | complete"),this.emit("@icegatheringstatechange","complete");break;default:this.logger.warn("unknown state");break}}),this.pc.addEventListener("icecandidateerror",e=>{this.logger.warn("icecandidateerror",{error:{code:e.errorCode,message:e.errorText}})}),this.pc.addEventListener("datachannel",e=>{this.logger.info("data channel created: ",{rtcChannel:{label:e.channel.label}});const{channel:r}=e;r.onopen=()=>{this.logger.info("data channel open: ",{rtcChannel:{label:e.channel.label}}),this.safeEmit("dc_open",e.channel)},r.onclose=()=>{this.logger.warn("data channel closed: ",{rtcChannel:{label:e.channel.label}})},r.onerror=()=>{this.logger.error("data channel error: ",{rtcChannel:{label:e.channel.label}})}}),this.addCustomEventListeners()}addCustomEventListeners(){}}class Nh extends Oh{static createFactory(t){return()=>new Nh(t)}get name(){return"Chrome74"}init({direction:t,iceServers:e,iceTransportPolicy:r,additionalSettings:i,proprietaryConstraints:a,onTrackHandler:o}){this._direction=t,this.pc=new RTCPeerConnection(O({iceServers:e||[],iceTransportPolicy:r||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"unified-plan"},i),a),o&&this.pc.addEventListener("track",c=>{o(c)}),this._addEventListeners()}send(a){return u(this,arguments,function*({track:t,encodings:e,codecOptions:r,screenShare:i}){this._assertSendDirection();const o=this.pc.addTransceiver(t,{direction:"sendonly",streams:[i?this._sendScreenShareStream:this._sendWebStream],sendEncodings:e});if(!navigator.isReactNative){this.logger.debug("creating new transceiver");const l=RTCRtpSender.getCapabilities(typeof t=="string"?t:t.kind);this.logger.info(`senders available params: ${JSON.stringify(l)}`);const p=[];r&&r.length&&r.forEach(g=>{var v;const f=l.codecs.find(E=>E.mimeType.includes(g.name));if(g.parameters){this.logger.debug(`codecOption.parameters:${JSON.stringify(g.parameters)}`);const E=((v=f.sdpFmtpLine)==null?void 0:v.split(";"))||[];E.push(...g.parameters);const _=Array.from(new Set(E).values());f.sdpFmtpLine=_.join(";")}p.push(f)}),this.logger.info(`selected codecs: ${JSON.stringify(p)}`),o.setCodecPreferences(p)}const c=yield this.pc.createOffer();if(yield this.pc.setLocalDescription(c),r&&r.findIndex(({name:l})=>l==="opus")>=0){const{enableDtx:l,enableStereo:p}=this,g=this.enableHighBitrate?p?128e3:64e3:p?64e3:32e3;c.sdp=c.sdp.replace("minptime=10;useinbandfec=1",`minptime=10;useinbandfec=1;${l?"usedtx=1;":""}${p?"stereo=1;sprop-stereo=1;":""}maxaveragebitrate=${g}`),c.sdp+=`a=rtcp-fb:111 nack\r
|
|
@@ -10,4 +10,4 @@ ${this.message}`;try{let d=a&&!!i;r&&r.endsWith("00")&&i&&(d=!0),d&&i.error("Cli
|
|
|
10
10
|
maxEnergy: ${n(this,jr)}`),i===-1/0||e<1e-6?{energy:0,isVoice:!1}:((!n(this,ir)||i<n(this,ir))&&T(this,ir,i),(!n(this,jr)||i>n(this,jr))&&T(this,jr,i),{energy:(i-n(this,ir))/(n(this,jr)-n(this,ir))*10||0,isVoice:r})},mc=new WeakSet,Ku=function(t){return t<5},dl=new WeakSet,uT=function(t=n(this,Bi)){var r;if(!n(this,vs)||!t){n(this,nr).getValue("flagsmith").hasFeature(Z.ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS)&&this.logger.debug(`AudioActivityReporter: No producerId or energy to report: ${n(this,vs)}`);return}const e={producerId:n(this,vs),energy:Math.round(t),silent:L(r=To,mc,Ku).call(r,t)};T(this,Ca,e.silent),this.reportRequest(e)},ll=new WeakSet,hT=function(t){const e=Math.log10(t);return Math.round(e)},m(oo,mc),m(oo,ll);const FD=(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 f=new Float32Array(a*o),v=new window.AudioData({format:"f32",sampleRate:i,numberOfFrames:a,numberOfChannels:o,timestamp:c,data:f});c+=a/i*1e6,yield r.ready,yield r.write(v)}catch(f){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}},BD=(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 HD=Object.defineProperty,qD=Object.getOwnPropertyDescriptor,de=(s,t,e,r)=>{for(var i=r>1?void 0:r?qD(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&&HD(t,e,i),i};const kt=["video/VP9","video/VP8"];var fc,Tc,at,W,wa,mt,Hi,qi,ji,vc,ts,or,Sc,Gi,Wi,ft,_t,Gr,mn,ul,gT,hl,mT,pl,fT,yc,zu,gl,du,TT,ml,vT,fl,ST,Tl,yT,Xe,lt,Ji,co,vl,ET,Sl,PT,yl,_T;const pT=(du=class{constructor(s,t){m(this,Gr);m(this,ul);m(this,hl);m(this,pl);m(this,yc);m(this,ml);m(this,fl);m(this,Tl);m(this,Xe);m(this,Ji);m(this,vl);m(this,Sl);m(this,yl);h(this,"context");h(this,"authToken");h(this,"e2ee");m(this,fc,void 0);m(this,Tc,void 0);m(this,at,void 0);m(this,W,void 0);m(this,wa,void 0);m(this,mt,void 0);m(this,Hi,void 0);m(this,qi,void 0);m(this,ji,void 0);m(this,vc,void 0);m(this,ts,null);m(this,or,void 0);m(this,Sc,void 0);m(this,Gi,void 0);m(this,Wi,void 0);m(this,ft,void 0);m(this,_t,void 0);var r,i;this.context=s;const{socket:e}=t;this.mediaJoined=!1,T(this,Gi,new Map([["video/VP9",new Set],["video/VP8",new Set]])),T(this,Wi,new Map([["video/VP9",new Set],["video/VP8",new Set]])),T(this,at,e),T(this,Hi,!1),T(this,W,new LD(s,e)),T(this,mt,n(this,W).events),T(this,or,new Set),T(this,ft,new Map),T(this,qi,!1),T(this,ji,new Fu(s.getValue("logger"))),T(this,_t,new oo(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(),T(this,vc,Eh(()=>u(this,null,function*(){if(!n(this,Gr,mn).mediaJoinAttempted)return;const{roomJoined:a}=yield this.joinRoom(n(this,Tc),n(this,fc),!0,!0);a&&(this.context.getValue("peerSessionStore").emit(R.RESET_PRODUCER_STATE),this.context.getValue("peerSessionStore").emit(R.ROOM_NODE_RECONNECTED))}),5e3,{leading:!0,maxWait:1e3}))}get peerId(){return this.context.getValue("peerId")}get telemetry(){return this.context.getValue("telemetry")}get logger(){return this.context.getValue("logger")}get mediaJoined(){return n(this,Gr,mn).mediaJoined}set mediaJoined(s){n(this,Gr,mn).mediaJoined=s}reset(){n(this,W).closeAllProducers(),n(this,W).closeAllConsumers(),n(this,ft).clear(),n(this,or).clear(),T(this,ts,null),n(this,ji).stop(),n(this,W).stopAllTransports(),n(this,W).reset(),T(this,ji,new Fu)}joinRoom(a,o){return u(this,arguments,function*(s,t,e=!1,r=!1,i={}){n(this,Gr,mn).mediaJoinAttempted=!0,T(this,Hi,!0),e&&this.reset();try{return yield n(this,ji).push(()=>L(this,ul,gT).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(R.ROOM_NODE_FAILED),{roomJoined:!1,error:c}}})}initializeConnection(i,a){return u(this,arguments,function*(s,t,e=!1,r={}){return n(this,ts)?n(this,ts):(T(this,ts,(()=>u(this,null,function*(){try{yield L(this,yc,zu).call(this,s,t,e,r)}catch(o){throw T(this,ts,null),o}}))()),n(this,ts))})}getConsumers(){return n(this,W).consumers}getProducers(){return n(this,W).producers}leaveRoom(){return u(this,null,function*(){n(this,W).stopAllTransports(),T(this,qi,!1),n(this,Gr,mn).mediaJoinAttempted=!1;const s={closeRoom:!1};n(this,at).sendMessagePromise(n(this,mt).leaveRoom,Zw.toBinary(s)).then(e=>{var r;(r=BR.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,f;const e=t==="video/VP9"?ue.WEBCAM:ue.WEBCAM_BACKUP,r=L(this,Xe,lt).call(this,e);if(r){const v=yield r;if(n(this,W).producers.has(v)){const E=n(this,W).producers.get(v);if(!E.closed)return yield E.replaceTrack({track:s}),yield this.resumeWebcam(e),s;yield this.disableWebcam(t)}return this._shareWebcam(s,t)}const i=[t].concat(kt.filter(v=>v!==t)),a=L(this,yl,_T).call(this,s,i),o=Aa(this.context,"disableSimulcast"),c=(f=(g=this.context)==null?void 0:g.getValue("overrides"))==null?void 0:f.simulcastConfig;!(o||c&&c.disable)&&this.context.getValue("flagsmith").hasFeature(Z.ENABLE_CF_SIMULCAST)?(this.logger.info("Simulcast enabled for SFU: CF"),a.encodings=k0(this.context,s)):this.logger.info("Simulcast disabled for webcam producer, SFU: CF"),this.context.getValue("flagsmith").hasFeature(Z.TRACK_HINT)&&(a.track.contentHint=this.context.getValue("flagsmith").getValue(Z.TRACK_HINT));const l=()=>{this.logger.info("Disabling video due to the producer closure"),n(this,ft).delete(e)},p=n(this,W).createProducer(a,l);return L(this,Ji,co).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(Z.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=kt.filter(i=>{var a,o;return((o=(a=n(this,wa).sender)==null?void 0:a.video)==null?void 0:o.codecs.findIndex(c=>c.mimeType===i))>=0&&n(this,Wi).get(i).size>0});return e.length===0&&e.push(kt[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,ft).delete(ue.SCREENSHARE_VIDEO),n(this,ft).delete(ue.SCREENSHARE_AUDIO)},a=n(this,W).createProducer(r,i);L(this,Ji,co).call(this,ue.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),L(this,Ji,co).call(this,ue.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 wt("track undefined");const t=L(this,Xe,lt).call(this,ue.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,_t)&&(n(this,_t).audioTrack=s,n(this,_t).producerId=a,n(this,_t).start());return}yield n(this,W).closeProducer(a,{stopTrack:!1})}yield this.shareMic(s);return}const e=L(this,Sl,PT).call(this,s),r=()=>{n(this,ft).delete(ue.MIC)},i=n(this,W).createProducer(e,r);L(this,Ji,co).call(this,ue.MIC,i.then(a=>a.id)),yield i.then(a=>{n(this,_t)&&(n(this,_t).audioTrack=a.track,n(this,_t).producerId=a.id,n(this,_t).start())})}catch(t){throw new k(t)}})}pauseMic(){return u(this,null,function*(){var r;const s=yield L(this,Xe,lt).call(this,ue.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,_t))==null||r.stop();const e={producerId:t.id,pause:!0};n(this,at).sendMessage(n(this,mt).toggleProducer,Gc.toBinary(e))})}pauseWebcam(){return u(this,null,function*(){const s=yield L(this,Xe,lt).call(this,ue.WEBCAM),t=yield L(this,Xe,lt).call(this,ue.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,at).sendMessage(n(this,mt).toggleProducer,Gc.toBinary(o))};e&&(e.pause(),i(e)),r&&(r.pause(),i(r))})}resumeMic(){return u(this,null,function*(){const s=yield L(this,Xe,lt).call(this,ue.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(R.E2EE_ACTIVE_PRODUCER,t);const e={producerId:t.id,pause:!1};n(this,at).sendMessage(n(this,mt).toggleProducer,Gc.toBinary(e))})}resumeWebcam(){return u(this,arguments,function*(s=ue.WEBCAM){const t=yield L(this,Xe,lt).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(R.E2EE_ACTIVE_PRODUCER,e);const r={producerId:e.id,pause:!1};n(this,at).sendMessage(n(this,mt).toggleProducer,Gc.toBinary(r))})}disableWebcam(s){return u(this,null,function*(){const t=s==="video/VP9"?ue.WEBCAM:ue.WEBCAM_BACKUP,e=yield L(this,Xe,lt).call(this,t);L(this,vl,ET).call(this,t),e&&(yield n(this,W).closeProducer(e))})}disableMic(){return u(this,null,function*(){var t;const s=yield L(this,Xe,lt).call(this,ue.MIC);s&&(yield n(this,W).closeProducer(s)),(t=n(this,_t))==null||t.stop(),n(this,ft).delete(ue.MIC)})}disableScreenShare(){return u(this,null,function*(){this.logger.info("screen_sharing_stopped"),this.context.getValue("callstats").screenShareStop();const s=yield L(this,Xe,lt).call(this,ue.SCREENSHARE_VIDEO),t=yield L(this,Xe,lt).call(this,ue.SCREENSHARE_AUDIO);s&&(yield n(this,W).closeProducer(s)),t&&(yield n(this,W).closeProducer(t)),n(this,or).clear(),n(this,ft).delete(ue.SCREENSHARE_VIDEO),n(this,ft).delete(ue.SCREENSHARE_AUDIO)})}muteSelf(){return u(this,null,function*(){this.pauseMic()})}resetVideoProducers(s,t){return u(this,null,function*(){if(s){const e=yield L(this,Xe,lt).call(this,ue.WEBCAM),r=yield L(this,Xe,lt).call(this,ue.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 L(this,Xe,lt).call(this,ue.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,at).sendMessagePromise(n(this,mt).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,or).add(s.consumerPeerId),n(this,or).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,at).on(n(this,mt).peerProducerCreateBroadcast,({payload:s})=>{var t,e;if(this.mediaJoined)try{const{participantId:r,producerState:i}=Tb.fromBinary(s);if(r===this.peerId)return;if(i!=null&&i.mimeType||(i.mimeType=i.kind===xs.AUDIO?"audio/opus":"video/VP8"),i.kind===xs.VIDEO&&!i.screenShare&&((e=(t=n(this,wa).receiver)==null?void 0:t.video)==null?void 0:e.codecs.findIndex(a=>a.mimeType===kt[0]))>=0&&n(this,Gi).get(kt[0]).has(r)&&i.mimeType!==kt[0]){this.logger.warn(`Ignoring producer: ${i.producerId}`);return}this.logger.info(`producer created broadcast: ${r}, producer state: ${i}`),this.context.getValue("peerSessionStore").emit(R.NEW_PRODUCER,{peerId:r,producer:G(O({},i),{kind:i.kind===xs.AUDIO?"audio":"video",producingPeerId:r})})}catch(r){this.logger.error("error in peer-producer-create-broadcast",{error:r})}}),n(this,at).on(n(this,mt).peerProducerToggleBroadcast,({payload:s})=>{if(this.mediaJoined)try{const{participantId:t,initiatorParticipantId:e,producerState:{kind:r,pause:i,producerId:a,screenShare:o}}=$p.fromBinary(s);if(o)return;const c=r===xs.AUDIO?"audio":"video";if(this.logger.info(`producer toggle broadcast: ${t}, producerId: ${a}, kind:${c}, paused:${i} payload: ${JSON.stringify($p.fromBinary(s))}`),t===this.peerId&&e!==this.peerId&&i&&this.context.getValue("peerSessionStore").emit(c==="audio"?R.MUTE_SELF:R.MUTE_SELF_VIDEO),t===this.peerId)return;this.context.getValue("peerSessionStore").emit(R.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(R.CONSUMER_PAUSED,{id:l.id})):(l.resume(),this.context.getValue("peerSessionStore").emit(R.CONSUMER_RESUMED,{id:l.id})))})}catch(t){this.logger.error("error in producer toggle broadcast handler",{error:t})}}),n(this,at).on(n(this,mt).peerLeaveBroadcast,({payload:s})=>{if(this.mediaJoined)try{const{participantId:t}=Eu.fromBinary(s);if(t===this.peerId)return;this.logger.info(`peer left broadcast:${t}`),n(this,or).delete(t),n(this,W).consumers.forEach(e=>{e.peerId===t&&e.close()}),this.context.getValue("peerSessionStore").emit(R.PEER_CLOSED,{id:t})}catch(t){this.logger.error("error in peer left broadcast",{error:t})}}),n(this,at).on(n(this,mt).peerProducerCloseBroadcast,({payload:s})=>{if(this.mediaJoined)try{const{participantId:t,producerState:{producerId:e}}=yb.fromBinary(s);if(t===this.peerId)return;this.logger.info(`producer closed broadcast:${t}`),this.context.getValue("peerSessionStore").emit(R.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(R.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,at).on(n(this,mt).mediaRoomTerminationBroadcastResponse,()=>{!this.mediaJoined&&!n(this,Hi)&&!n(this,qi)||(this.logger.warn("media hub termination broadcast received, rejoining room"),this.context.getValue("peerSessionStore").emit(R.ROOM_NODE_DISCONNECTED),n(this,vc).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(R.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(R.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<=kt.length;o+=1){const c=kt[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===kt.length-1){n(this,Wi).get(c).add(s);break}}for(let o=0;o<=kt.length;o+=1){const c=kt[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===kt.length-1){n(this,Gi).get(c).add(s);break}}}handlePeerLeaving(s){this.context.getValue("flagsmith").hasFeature(Z.FORCE_VIDEO_CODEC)||(n(this,Gi).forEach(t=>t.delete(s)),n(this,Wi).forEach((t,e)=>{t.delete(s),!(t.size!==0||e===kt[0])&&this.disableWebcam(e)}))}},fc=new WeakMap,Tc=new WeakMap,at=new WeakMap,W=new WeakMap,wa=new WeakMap,mt=new WeakMap,Hi=new WeakMap,qi=new WeakMap,ji=new WeakMap,vc=new WeakMap,ts=new WeakMap,or=new WeakMap,Sc=new WeakMap,Gi=new WeakMap,Wi=new WeakMap,ft=new WeakMap,_t=new WeakMap,Gr=new WeakSet,mn=function(){return this.context.getValue("connectionHandler")},ul=new WeakSet,gT=function(s,t,e,r){return u(this,null,function*(){T(this,Tc,s);try{return n(this,ts)?yield n(this,ts):yield L(this,yc,zu).call(this,s,t,e,r),L(this,pl,fT).call(this,t),{roomJoined:yield L(this,hl,mT).call(this)}}catch(i){return this.logger.error("Failed to complete room join",{error:i}),{roomJoined:!1,error:i}}finally{T(this,ts,null)}})},hl=new WeakSet,mT=function(){return u(this,null,function*(){try{this.mediaJoined=!0;const{roomState:s}=yield n(this,W).socketHandler.notifySelfJoinComplete();return T(this,fc,s.roomUuid),T(this,qi,!0),T(this,Hi,!1),!0}catch(s){return this.logger.error("Error completing room join",{error:s}),this.mediaJoined=!1,!1}})},pl=new WeakSet,fT=function(s){navigator.product!=="ReactNative"&&setTimeout(()=>{try{const e={userId:this.context.getValue("userId"),peerId:this.peerId,roomUUID:s,roomViewType:"groupCall",deviceInfo:G(O({},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)},yc=new WeakSet,zu=function(s,t,e,r){return u(this,null,function*(){var i,a;try{(a=n(this,Sc))!=null||T(this,Sc,L(i=pT,gl,TT).call(i));const o=L(this,ml,vT).call(this);yield L(this,fl,ST).call(this,s,t,e,o),yield n(this,W).setupTransports({send:!0,recv:!0}),yield L(this,Tl,yT).call(this,r)}catch(o){throw this.logger.error("Failed to initialize connection",{error:o}),o}})},gl=new WeakSet,TT=function(){const{ipInfo:s}=ot();if(!(s!=null&&s.loc))return;const[t,e]=s.loc.split(",").map(parseFloat);return{latitude:t,longitude:e}},ml=new WeakSet,vT=function(){var e;const s=(e=this.context.getValue("flagsmith").getValue(Z.FORCE_VIDEO_CODEC))==null?void 0:e.toString(),t=CD(s);return T(this,wa,t),t},fl=new WeakSet,ST=function(s,t,e,r){return u(this,null,function*(){yield Wf((i,a)=>u(this,null,function*(){if(!n(this,at).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,Sc))}catch(o){throw this.logger.error("Failed to send joinRoom message after retries",{error:o}),o}}),{delayTime:1e3,strategy:"exponential",maxRetryCount:15})})},Tl=new WeakSet,yT=function(s){return u(this,null,function*(){if(!(!this.context.getValue("flagsmith").hasFeature(Z.PRECREATE_PRODUCERS)||!s))try{const e=[];if(s.canProduceVideo===q.Allowed&&e.push(this.shareWebcam(BD(!1))),s.canProduceAudio===q.Allowed){const r=FD(!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})}})},Xe=new WeakSet,lt=function(s){return n(this,ft).get(s)},Ji=new WeakSet,co=function(s,t){return n(this,ft).set(s,t)},vl=new WeakSet,ET=function(s){return n(this,ft).delete(s)},Sl=new WeakSet,PT=function(s){return{track:s,encodings:[{priority:"high"}],codecOptions:[{name:"opus"}],appData:{e2ee:this.e2ee},stopTracks:!1,zeroRtpOnPause:!1}},yl=new WeakSet,_T=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(du,gl),du);let ae=pT;de([P.trace("MediaNodeClient.reset",{country:P.location.country})],ae.prototype,"reset",1);de([P.trace("MediaNodeClient.joinRoom")],ae.prototype,"joinRoom",1);de([P.trace("MediaNodeClient.leaveRoom")],ae.prototype,"leaveRoom",1);de([P.trace("MediaNodeClient.activatePeers")],ae.prototype,"activatePeers",1);de([P.trace("MediaNodeClient.createConsumers")],ae.prototype,"createConsumers",1);de([P.trace("MediaNodeClient.closeConsumers")],ae.prototype,"closeConsumers",1);de([P.trace("MediaNodeClient._shareWebcam")],ae.prototype,"_shareWebcam",1);de([P.trace("MediaNodeClient.shareWebcam")],ae.prototype,"shareWebcam",1);de([P.trace("MediaNodeClient.shareScreen")],ae.prototype,"shareScreen",1);de([P.trace("MediaNodeClient.shareMic")],ae.prototype,"shareMic",1);de([P.trace("MediaNodeClient.pauseMic")],ae.prototype,"pauseMic",1);de([P.trace("MediaNodeClient.pauseWebcam")],ae.prototype,"pauseWebcam",1);de([P.trace("MediaNodeClient.resumeMic")],ae.prototype,"resumeMic",1);de([P.trace("MediaNodeClient.resumeWebcam")],ae.prototype,"resumeWebcam",1);de([P.trace("MediaNodeClient.disableWebcam")],ae.prototype,"disableWebcam",1);de([P.trace("MediaNodeClient.disableMic")],ae.prototype,"disableMic",1);de([P.trace("MediaNodeClient.disableScreenShare")],ae.prototype,"disableScreenShare",1);de([P.trace("MediaNodeClient.muteSelf")],ae.prototype,"muteSelf",1);de([P.trace("MediaNodeClient.resetVideoProducers")],ae.prototype,"resetVideoProducers",1);de([P.trace("MediaNodeClient.changeDisplayName")],ae.prototype,"changeDisplayName",1);de([P.trace("MediaNodeClient.kickPeer")],ae.prototype,"kick",1);de([P.trace("MediaNodeClient.kickAllPeers")],ae.prototype,"kickAll",1);de([P.trace("MediaNodeClient.muteAll")],ae.prototype,"muteAll",1);de([P.trace("MediaNodeClient.muteAllVideo")],ae.prototype,"muteAllVideo",1);de([P.trace("MediaNodeClient.disableAudio")],ae.prototype,"disableAudio",1);de([P.trace("MediaNodeClient.disableVideo")],ae.prototype,"disableVideo",1);de([P.trace("MediaNodeClient.pinPeer")],ae.prototype,"pinPeer",1);de([P.trace("MediaNodeClient.validateScreenShare")],ae.prototype,"validateScreenShare",1);function CT(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 wT(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 jD=Object.defineProperty,GD=Object.getOwnPropertyDescriptor,ln=(s,t,e,r)=>{for(var i=r>1?void 0:r?GD(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&&jD(t,e,i),i},Ki,Ss,ee,Tt,At,Vg;const RT=(Vg=class{constructor(s,t,e,r){m(this,Tt);h(this,"self");h(this,"authToken");m(this,Ki,void 0);h(this,"viewType");m(this,Ss,void 0);m(this,ee,void 0);const{socket:i}=e,a=s.getValue("authToken");this.self=t,T(this,ee,s),this.viewType=r,this.authToken=a,T(this,Ki,i),T(this,Ss,e),this.setupEvents()}get peerId(){return n(this,ee).getValue("peerId")}get telemetry(){return n(this,ee).getValue("telemetry")}get logger(){return n(this,ee).getValue("logger")}get mediaJoined(){return n(this,ee).getValue("connectionHandler").mediaJoined}static init(s,t,e,r,i){return u(this,null,function*(){const a=ot(),o=s.getValue("peerId"),c=!!s.getValue("cachedUserDetails"),d=yield ze.__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(Z.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(f=>f.kind==="audioinput")),s.getValue("callstats").devices("VIDEO",g==null?void 0:g.filter(f=>f.kind==="videoinput")),s.getValue("callstats").devices("SPEAKER",g==null?void 0:g.filter(f=>f.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:tf(s),skipConnectivityChecks:p}),l.info("Callstats:: initialized")}catch(f){l.error("Callstats:: initialization failed",{error:f})}}),0)}else l.info("Callstats:: Skipped initialization due to navigator product being ReactNative.");return new RT(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===q.Allowed&&r)try{yield n(this,Tt,At).shareMic(s),this.self.audioEnabled||n(this,Tt,At).pauseMic()}catch(d){this.self.disableAudio()}if(e.canProduceVideo===q.Allowed&&i)try{const d=yield n(this,Tt,At).shareWebcam(t);d&&d.id!==t.id&&n(this,ee).getValue("flagsmith").hasFeature(Z.EXP_RESHARE)&&(yield n(this,Tt,At).shareWebcam(d)),this.self.videoEnabled||n(this,Tt,At).pauseWebcam()}catch(d){this.self.disableVideo()}if(e.canProduceScreenshare===q.Allowed&&a)try{yield(c=n(this,Tt,At))==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,ee).getValue("callstats").callEnded(),n(this,Tt,At).reset(),s&&(yield this.joinRoom(s))})}setupEvents(){n(this,ee).getValue("peerSessionStore").on(R.RESET_PRODUCER_STATE,()=>u(this,null,function*(){this.mediaJoined&&this.shareMediaTracks()})),n(this,ee).getValue("peerSessionStore").on(R.ROOM_NODE_RECONNECTED,()=>{this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:!0})}),n(this,ee).getValue("peerSessionStore").on(R.ROOM_NODE_DISCONNECTED,()=>{this.self.roomState!=="disconnected"&&(this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"}))}),n(this,ee).getValue("peerSessionStore").on(R.ROOM_NODE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),n(this,ee).getValue("peerSessionStore").on(R.SOCKET_SERVICE_RECONNECTED,({wasJoinAttempted:s})=>{s===!1&&(this.self.roomState="init"),this.resetSelf(s)}),n(this,ee).getValue("peerSessionStore").on(R.SOCKET_SERVICE_DISCONNECTED,({joinAttempted:s})=>{if(this.self.roomState==="disconnected")return;let{peerId:t}=this;s&&n(this,ee).getValue("flagsmith").hasFeature(Z.REFRESH_ID_ON_DISCONNECTION)&&(t=gr.v4()),n(this,Ki).updateURL(t),n(this,ee).getValue("telemetry").resetPeerId(t),ot().setHeader("tracing-id",t),ur.remapContext(t,n(this,ee)),this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"})}),n(this,ee).getValue("peerSessionStore").on(R.SOCKET_SERVICE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),n(this,Ss).on(U.waitingRoomRequestAccepted,()=>{this.waitlistAcceptHandler()}),n(this,Ss).on(rd.updateUserPreset,s=>{s.updatePeersPresets.forEach(t=>{t.userIds===this.self.userId&&n(this,ee).getValue("peerSessionStore").emit(R.UPDATE_PERMISSIONS,t.patch)})}),n(this,Ss).on(U.waitingRoomRequestDenied,()=>{this.waitlistRejectedHandler()}),n(this,Ss).on(U.kick,()=>{this.kickHandler({kickType:"kick"})}),n(this,Ss).on(U.kickAll,()=>{this.kickHandler({kickType:"kickAll"})}),n(this,ee).getValue("peerSessionStore").onAsync(R.JOIN_MEDIA_ROOM,this.joinMediaRoom.bind(this)),n(this,ee).getValue("peerSessionStore").on(R.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,ee).getValue("peerSessionStore").on(R.MUTE_SELF,()=>u(this,null,function*(){this.self.audioEnabled&&(yield this.self.disableAudio(),n(this,ee).getValue("callstats").audioOff())})),n(this,ee).getValue("peerSessionStore").on(R.MUTE_SELF_VIDEO,()=>u(this,null,function*(){this.self.videoEnabled&&(yield this.self.disableVideo(),n(this,ee).getValue("callstats").videoOff())})),n(this,ee).getValue("peerSessionStore").onAsync(R.LEAVE_MEDIA_ROOM,this.leaveMediaRoom.bind(this)),n(this,ee).getValue("peerSessionStore").on(R.PIP_HANGUP,this.leaveRoom.bind(this))}joinRoom(s=!1){return u(this,null,function*(){try{const{peer:t}=yield n(this,Ss).joinRoom(this.self);n(this,Ss).socket.flush();const e=wh(t.stageType);if(n(this,ee).setValue("stageStatus",e,!1),t.waitlisted){this.waitlistedHandler();return}yield this.joinMediaRoom(s),n(this,ee).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,ee).getValue("roomSocketHandler"))==null||t.cleanup(),s==="rejected"){this.self.roomState=s,this.self.emit("roomLeft",{state:s});return}this.self.setIsPinned(!1),n(this,ee).setValue("stageStatus","OFF_STAGE",!1),yield this.leaveMediaRoom(s),n(this,ee).notify("stageStatus");try{(e=n(this,Ki))==null||e.disconnect()}catch(r){this.logger.error("SelfController::leaveRoom::socketDisconnect")}wT(n(this,ee)),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,c;const{peerId:t,viewType:e,meetingId:r,stageStatus:i}=n(this,ee).getAllValues();try{if(e===pr.Livestream){if(i!=="ON_STAGE"){this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:s});return}CT(n(this,ee),{socket:n(this,Ki),peerId:t})}const{canProduceAudio:d,canProduceVideo:l,canProduceScreenshare:p}=this.self.permissions,{roomJoined:g,error:f}=(o=yield(a=n(this,Tt,At))==null?void 0:a.joinRoom(this.self.name,r,s,s,{canProduceAudio:d,canProduceVideo:l,canProduceScreenshare:p}))!=null?o:{};if(!g)throw this.logger.error("Error:SelfController.mediaRoomJoin",{error:f}),f;i==="ON_STAGE"&&(yield this.shareMediaTracks()),this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:s})}catch(d){throw this.logger.error("Error:SelfController.mediaRoomJoin",{error:d}),new k(`${(c=d==null?void 0:d.message)!=null?c:"could not connect to media servers"}`,"0002")}})}leaveMediaRoom(s){return u(this,null,function*(){const t=n(this,ee).getValue("viewType");s!=="connected-meeting"&&(yield this.cleanupSelf()),!(s==="stageLeft"&&t===pr.Webinar)&&n(this,Tt,At)&&(n(this,Tt,At).mediaJoined&&s!=="disconnected"&&(yield n(this,Tt,At).leaveRoom()),!(s==="stageLeft"&&t===pr.Livestream)&&(n(this,Tt,At).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()})}},Ki=new WeakMap,Ss=new WeakMap,ee=new WeakMap,Tt=new WeakSet,At=function(){return n(this,ee).getValue("roomNodeClient")},Vg);let si=RT;ln([P.trace("SelfController.resetSelf")],si.prototype,"resetSelf",1);ln([P.trace("SelfController.setupEvents")],si.prototype,"setupEvents",1);ln([P.trace("SelfController.joinRoom")],si.prototype,"joinRoom",1);ln([P.trace("SelfController.leaveRoom")],si.prototype,"leaveRoom",1);ln([P.trace("SelfController.joinMediaRoom")],si.prototype,"joinMediaRoom",1);ln([P.trace("SelfController.leaveMediaRoom")],si.prototype,"leaveMediaRoom",1);ln([P.trace("SelfController.init")],si,"init",1);var Ec;class WD{constructor(t){m(this,Ec,void 0);T(this,Ec,t)}on(t,e){let r;t===U.roomPeerCount?r=Hp.fromBinary.bind(Hp):r=Zp.fromBinary.bind(Zp),n(this,Ec).on(t,({payload:i})=>{if(t===U.roomPeerCount&&!i)return;const a=r(i);e(a)})}}Ec=new WeakMap;var Pc,_c;class JD{constructor(t,e){m(this,Pc,void 0);m(this,_c,void 0);T(this,Pc,e),T(this,_c,t)}get logger(){return n(this,_c).getValue("logger")}on(t,e){let r,i;switch(t){case U.transcript:{r=Zl.fromBinary.bind(Zl),i=Zl.create();break}default:{this.logger.debug("AISocketHandler switch case hit default, event not accounted for.");break}}n(this,Pc).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)})}}Pc=new WeakMap,_c=new WeakMap;var KD=Object.defineProperty,zD=Object.getOwnPropertyDescriptor,xh=(s,t,e,r)=>{for(var i=r>1?void 0:r?zD(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&&KD(t,e,i),i},cr,Ra;class Fl{constructor(t,e){m(this,cr,void 0);m(this,Ra,void 0);T(this,cr,e),T(this,Ra,t)}get logger(){return n(this,Ra).getValue("logger")}get telemetry(){return n(this,Ra).getValue("telemetry")}getPolls(){return n(this,cr).sendMessagePromise(Hs.getPolls)}createPoll(t,e,r=!1,i=!1){const a={anonymous:r,hideVotes:i,question:t,options:e};return n(this,cr).sendMessage(Hs.createPoll,rM.toBinary(a))}votePoll(t,e){const r={index:e,pollId:t};return n(this,cr).sendMessage(Hs.votePoll,nM.toBinary(r))}on(t,e){let r,i;switch(t){case Hs.updatePoll:case Hs.createPoll:case Hs.votePoll:{r=nu.fromBinary.bind(nu),i=nu.create();break}}n(this,cr).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,cr).removeListeners(t)}}cr=new WeakMap,Ra=new WeakMap;xh([P.trace("PollSocketHandler.getPolls")],Fl.prototype,"getPolls",1);xh([P.trace("PollSocketHandler.createPoll")],Fl.prototype,"createPoll",1);xh([P.trace("PollSocketHandler.votePoll")],Fl.prototype,"votePoll",1);var YD=Object.defineProperty,QD=Object.getOwnPropertyDescriptor,XD=(s,t,e,r)=>{for(var i=r>1?void 0:r?QD(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&&YD(t,e,i),i},xt;class bT{constructor(t,e){h(this,"socket");m(this,xt,void 0);T(this,xt,t),this.socket=e,this.handleSocketEvents(),n(this,xt).setValue("roomSocketHandler",this)}get telemetry(){return n(this,xt).getValue("telemetry")}get logger(){return n(this,xt).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(U.joinRoom,zb.toBinary(e));try{const{peer:a}=hn.fromBinary((yield r).payload);n(this,xt).getValue("connectionHandler").socketJoined=!0,n(this,xt).getValue("peerSessionStore").emit(R.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,xt).getValue("peerSessionStore").emit(R.ROOM_STATE,d),n(this,xt).getValue("peerSessionStore").emit(R.SOCKET_PEERS,l),{peer:a}}catch(a){throw this.logger.error("RoomSocketHandler.joinRoom.failed",{error:a}),new k("Error: RoomSocketHandler.joinRoom failed.","0002",this.logger,a)}})}getAllAddedParticipants(){return u(this,null,function*(){try{return Ok.fromBinary((yield this.socket.sendMessagePromise(U.getAllAddedParticipants)).payload).participants.map(i=>{var a=i,{id:e}=a,r=Bc(a,["id"]);return G(O({},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(U.getRoomPeersInfo,$b.toBinary(a));i=eu.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(U.getRoomPeersInfo);t=eu.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(U.getRoomPeersInfo);t=eu.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(U.getPeerInfo,hf.toBinary({peerId:t}));e=hn.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(U.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=Jp.create();try{const e=yield this.socket.sendMessagePromise(U.getRoomStageState);t=Jp.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(U.broadcastMessage,Za.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(U.broadcastToEntity,Za.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(U.broadcastToEntity,Za.toBinary(i))})}leaveRoom(){return u(this,null,function*(){this.socket.joinAttempted=!1,this.socket.sendMessagePromise(U.leaveRoom,Qb.toBinary({}))})}kick(t){return u(this,null,function*(){const e={peerIds:[t]};this.socket.sendMessage(U.kick,gf.toBinary(e))})}kickAll(t=!1){return u(this,null,function*(){const e={propagateKickAcrossRooms:t};this.socket.sendMessage(U.kickAll,df.toBinary(e))})}getWaitingRoomRequests(){this.socket.sendMessage(U.getWaitingRoomRequests)}acceptWaitingRoomRequest(t){const e={userIds:t};this.socket.sendMessage(U.acceptWaitingRoomRequests,$k.toBinary(e))}rejectWaitingRoomRequest(t){const e={userIds:t};this.socket.sendMessage(U.denyWaitingRoomRequests,Bk.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(rd.updateUserPreset,fI.toBinary(r))})}handleSocketEvents(){this.socket.on(U.broadcastMessage,({payload:t})=>{try{const e=Za.fromBinary(t);n(this,xt).getValue("peerSessionStore").emit(R.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(U.broadcastToEntity,({payload:t})=>{try{const e=Za.fromBinary(t);n(this,xt).getValue("peerSessionStore").emit(R.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 U.joinRoom:case U.leaveRoom:case U.kick:case U.kickAll:{r=hn.fromBinary.bind(hn),i=hn.create();break}case U.getWaitingRoomRequests:{r=(a,o)=>a?Wp.fromBinary(a,o):{requests:[]},i=Wp.create();break}case U.recordingPaused:case U.recordingStarted:case U.recordingStopped:{r=sg.fromBinary.bind(sg);break}case rd.updateUserPreset:{r=Kp.fromBinary.bind(Kp);break}case Ps.peerJoinedBroadcast:case Ir.peerJoinedBroadcast:{r=xp.fromBinary.bind(xp);break}case Ps.selfJoinComplete:case Ir.selfJoinComplete:{r=yu.fromBinary.bind(yu);break}case Ps.globalPeerPinBroadcast:case Ir.globalPeerPinBroadcast:{r=Fp.fromBinary.bind(Fp);break}case Ps.selectedPeer:case Ir.selectedPeer:{r=Su.fromBinary.bind(Su);break}case Ps.selectedPeerDiff:case Ir.selectedPeerDiff:{r=Lp.fromBinary.bind(Lp);break}case Ps.leaveRoom:case Ir.leaveRoom:{r=Eu.fromBinary.bind(Eu);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(rd.getUserPresets,dI.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}})}}xt=new WeakMap;XD([P.trace("RoomSocketHandler.joinRoom")],bT.prototype,"joinRoom",1);var Ct;class ZD{constructor(t){m(this,Ct,void 0);T(this,Ct,t)}getStageRequests(){return u(this,null,function*(){const{payload:t}=yield n(this,Ct).sendMessagePromise(U.getStageRequests);return t?iu.fromBinary(t):{stageRequests:[]}})}requestAccess(){n(this,Ct).sendMessage(U.requestStageAccess)}cancelRequestAccess(){n(this,Ct).sendMessage(U.cancelStageRequest)}grantAccess(t){return u(this,null,function*(){const e={userIds:t};n(this,Ct).sendMessage(U.grantStageAccess,JA.toBinary(e))})}denyAccess(t){return u(this,null,function*(){const e={userIds:t};n(this,Ct).sendMessage(U.denyStageAccess,zA.toBinary(e))})}joinStage(){return n(this,Ct).sendMessagePromise(U.joinStage,void 0,void 0,U.peerStageStatusUpdate)}leaveStage(t){const e={userIds:[t]};return n(this,Ct).sendMessagePromise(U.leaveStage,tg.toBinary(e),void 0,U.peerStageStatusUpdate)}kick(t){const e={userIds:t};return n(this,Ct).sendMessagePromise(U.leaveStage,tg.toBinary(e))}on(t,e){let r;switch(t){case U.grantStageAccess:case U.denyStageAccess:{r=void 0;break}case U.getStagePeers:{r=eg.fromBinary.bind(eg);break}case U.getStageRequests:case U.requestStageAccess:case U.cancelStageRequest:{r=iu.fromBinary.bind(iu);break}case U.peerStageStatusUpdate:{r=Bp.fromBinary.bind(Bp);break}}n(this,Ct).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,Ct).sendMessagePromise(U.getPeerInfo,hf.toBinary({peerId:t}));return hn.fromBinary(e.payload)})}}Ct=new WeakMap;var qe,Cc;class eO{constructor(t,e){m(this,qe,void 0);m(this,Cc,void 0);T(this,qe,e),T(this,Cc,t)}get logger(){return n(this,Cc).getValue("logger")}addPlugin(t,e){n(this,qe).sendMessage(J.addPlugin,lA.toBinary({pluginId:t,staggered:e}))}removePlugin(t){n(this,qe).sendMessage(J.removePlugin,hA.toBinary({pluginId:t,staggered:!1}))}getActivePlugins(){return u(this,null,function*(){const{payload:t}=yield n(this,qe).sendMessagePromise(J.getPlugins);return t?VA.fromBinary(t):{plugins:[]}})}customPluginEventToRoom(t,e,r){const i={pluginId:t,pluginData:new TextEncoder().encode(JSON.stringify(e))};n(this,qe).sendMessage(J.customPluginEventToRoom,PA.toBinary(i),r)}customPluginEventToPeers(t,e,r,i){const a={pluginId:t,peerIds:e,pluginData:new TextEncoder().encode(JSON.stringify(r))};n(this,qe).sendMessage(J.customPluginEventToPeers,CA.toBinary(a),i)}enablePluginForRoom(t,e){n(this,qe).sendMessage(J.enablePluginForRoom,gA.toBinary({pluginId:t}),e)}enablePluginForPeers(t,e,r){n(this,qe).sendMessage(J.enablePluginForPeers,vA.toBinary({pluginId:t,peerIds:e}),r)}disablePluginForRoom(t,e){n(this,qe).sendMessage(J.disablePluginForRoom,fA.toBinary({pluginId:t}),e)}disablePluginForPeers(t,e,r){n(this,qe).sendMessage(J.disablePluginForPeers,yA.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,qe).sendMessage(J.storeInsertKeys,zp.toBinary(a),i)}storeGetKeys(t,e,r,i){const a={pluginId:t,storeName:e,getKeys:r.map(o=>({storeKey:o.key}))};n(this,qe).sendMessage(J.storeGetKeys,kA.toBinary(a),i)}storeDeleteKeys(t,e,r,i){const a={pluginId:t,storeName:e,deleteKeys:r.map(o=>({storeKey:o.key}))};n(this,qe).sendMessage(J.storeDeleteKeys,AA.toBinary(a),i)}storeDelete(t,e,r){n(this,qe).sendMessage(J.storeDelete,DA.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,qe).sendMessage(J.storeInsertKeys,zp.toBinary(i))}on(t,e){let r;switch(t){case J.addPlugin:case J.enablePluginForPeers:case J.enablePluginForRoom:{r=wu.fromBinary.bind(wu);break}case J.removePlugin:case J.disablePluginForPeers:case J.disablePluginForRoom:{r=Yp.fromBinary.bind(Yp);break}case J.customPluginEventToPeers:case J.customPluginEventToRoom:{r=Xp.fromBinary.bind(Xp);break}case J.storeInsertKeys:case J.storeGetKeys:case J.storeDeleteKeys:case J.storeDelete:{r=Qp.fromBinary.bind(Qp);break}}n(this,qe).on(t,({payload:i,id:a})=>{const o=r(i);return e(o,a)})}}qe=new WeakMap,Cc=new WeakMap;var tO=Object.defineProperty,sO=(s,t,e)=>t in s?tO(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e,rO=(s,t,e)=>(sO(s,typeof t!="symbol"?t+"":t,e),e),Uh=(s,t,e)=>{if(!t.has(s))throw TypeError("Cannot "+e)},D=(s,t,e)=>(Uh(s,t,"read from private field"),e?e.call(s):t.get(s)),fe=(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)=>(Uh(s,t,"write to private field"),r?r.call(s,e):t.set(s,e),e),_e=(s,t,e)=>(Uh(s,t,"access private method"),e),wd={},iO={get exports(){return wd},set exports(s){wd=s}},Rn=typeof Reflect=="object"?Reflect:null,pg=Rn&&typeof Rn.apply=="function"?Rn.apply:function(s,t,e){return Function.prototype.apply.call(s,t,e)},ld;Rn&&typeof Rn.ownKeys=="function"?ld=Rn.ownKeys:Object.getOwnPropertySymbols?ld=function(s){return Object.getOwnPropertyNames(s).concat(Object.getOwnPropertySymbols(s))}:ld=function(s){return Object.getOwnPropertyNames(s)};function nO(s){console&&console.warn&&console.warn(s)}var kT=Number.isNaN||function(s){return s!==s};function ce(){ce.init.call(this)}iO.exports=ce;wd.once=dO;ce.EventEmitter=ce;ce.prototype._events=void 0;ce.prototype._eventsCount=0;ce.prototype._maxListeners=void 0;var gg=10;function Bl(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 gg},set:function(s){if(typeof s!="number"||s<0||kT(s))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+s+".");gg=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||kT(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 IT(s){return s._maxListeners===void 0?ce.defaultMaxListeners:s._maxListeners}ce.prototype.getMaxListeners=function(){return IT(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")pg(c,this,t);else for(var d=c.length,l=NT(c,d),e=0;e<d;++e)pg(l[e],this,t);return!0};function AT(s,t,e,r){var i,a,o;if(Bl(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=IT(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,nO(c)}return s}ce.prototype.addListener=function(s,t){return AT(this,s,t,!1)};ce.prototype.on=ce.prototype.addListener;ce.prototype.prependListener=function(s,t){return AT(this,s,t,!0)};function aO(){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 MT(s,t,e){var r={fired:!1,wrapFn:void 0,target:s,type:t,listener:e},i=aO.bind(r);return i.listener=e,r.wrapFn=i,i}ce.prototype.once=function(s,t){return Bl(t),this.on(s,MT(this,s,t)),this};ce.prototype.prependOnceListener=function(s,t){return Bl(t),this.prependListener(s,MT(this,s,t)),this};ce.prototype.removeListener=function(s,t){var e,r,i,a,o;if(Bl(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():oO(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 DT(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?cO(i):NT(i,i.length)}ce.prototype.listeners=function(s){return DT(this,s,!0)};ce.prototype.rawListeners=function(s){return DT(this,s,!1)};ce.listenerCount=function(s,t){return typeof s.listenerCount=="function"?s.listenerCount(t):OT.call(s,t)};ce.prototype.listenerCount=OT;function OT(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?ld(this._events):[]};function NT(s,t){for(var e=new Array(t),r=0;r<t;++r)e[r]=s[r];return e}function oO(s,t){for(;t+1<s.length;t++)s[t]=s[t+1];s.pop()}function cO(s){for(var t=new Array(s.length),e=0;e<t.length;++e)t[e]=s[e].listener||s[e];return t}function dO(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))}VT(s,t,a,{once:!0}),t!=="error"&&lO(s,i,{once:!0})})}function lO(s,t,e){typeof s.on=="function"&&VT(s,"error",t,e)}function VT(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 uO extends S.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 mg=new uO;class LT{static encode(t){return mg.toBinary(t)}static decode(t){return mg.fromBinary(new Uint8Array(t))}}function hO(s,t){return Math.floor(Math.random()*(t-s+1)+s)}var br;class pO{constructor(t={}){rO(this,"opts"),fe(this,br,void 0),this.opts={initialTimeout:t.initialTimeout||1e3,maxTimeout:t.maxTimeout||1e4,factor:t.factor||2},ne(this,br,0)}wait(){return u(this,null,function*(){ne(this,br,D(this,br)+1);const t=hO(0,Math.min(this.opts.maxTimeout,this.opts.initialTimeout*Gh(2,D(this,br))));yield new Promise(e=>{setTimeout(e,t)})})}getAttempts(){return D(this,br)}reset(){ne(this,br,0)}}br=new WeakMap;const _r={debug:0,info:1,warn:2,error:3};var oi,ci;class gO{constructor(t){fe(this,oi,void 0),fe(this,ci,void 0),ne(this,oi,console),ne(this,ci,t)}debug(...t){_r[D(this,ci)]>_r.debug||D(this,oi).debug("[Sockrates]:",...t)}info(...t){_r[D(this,ci)]>_r.info||D(this,oi).info("[Sockrates]:",...t)}warn(...t){_r[D(this,ci)]>_r.warn||D(this,oi).warn("[Sockrates]:",...t)}error(...t){_r[D(this,ci)]>_r.error||D(this,oi).error("[Sockrates]:",...t)}}oi=new WeakMap,ci=new WeakMap;var xT=(s=>(s[s.CONNECTING=0]="CONNECTING",s[s.OPEN=1]="OPEN",s[s.CLOSING=2]="CLOSING",s[s.CLOSED=3]="CLOSED",s))(xT||{});const mO="2",fO="3";var Ie,fn,Pe,Le,kr,Ke,lr,zr,Es,Tn,Bs,Yu,UT,lo,ud,Qu,$T,Xu,fg,Rd,Zu,eh,FT,po,hd,go,bd,kd,th,bn,mo,fo,Id;class TO{constructor(t,e){var f,v,E,_,C,A,M,$,x,B;fe(this,Yu),fe(this,lo),fe(this,Qu),fe(this,Xu),fe(this,Rd),fe(this,eh),fe(this,po),fe(this,go),fe(this,kd),fe(this,bn),fe(this,fo),fe(this,Ie,void 0),fe(this,fn,void 0),fe(this,Pe,void 0),fe(this,Le,void 0),fe(this,kr,void 0),fe(this,Ke,void 0),fe(this,lr,void 0),fe(this,zr,void 0),fe(this,Es,void 0),fe(this,Tn,void 0),fe(this,Bs,void 0);var r,i,a,o,c,d,l,p,g;ne(this,fn,t),ne(this,kr,[]),ne(this,Ke,new wd),ne(this,lr,!0),ne(this,Es,!1),ne(this,Pe,e!=null?e:{}),(f=(r=D(this,Pe)).autoReconnect)!=null||(r.autoReconnect=!0),(v=(i=D(this,Pe)).retryConnectionInterval)!=null||(i.retryConnectionInterval=1e3),(E=(a=D(this,Pe)).pingTimeout)!=null||(a.pingTimeout=3e4),(_=(o=D(this,Pe)).connectionTimeout)!=null||(o.connectionTimeout=5e3),(C=(c=D(this,Pe)).debug)!=null||(c.debug=!0),(A=(d=D(this,Pe)).maxReconnectionAttempts)!=null||(d.maxReconnectionAttempts=10),(M=(l=D(this,Pe)).disconnectOnPingTimeout)!=null||(l.disconnectOnPingTimeout=!0),($=(p=D(this,Pe)).queueOnDisconnect)!=null||(p.queueOnDisconnect=!1),(x=(g=D(this,Pe)).flushOnReconnect)!=null||(g.flushOnReconnect=!1),ne(this,zr,{code:void 0,reason:void 0}),ne(this,Le,(B=D(this,Pe).logger)!=null?B:new gO(D(this,Pe).debug?"debug":"info")),ne(this,Bs,new pO)}get readyState(){var t;return(t=D(this,Ie))==null?void 0:t.readyState}get url(){return D(this,fn)}updateURL(t){ne(this,fn,t),_e(this,eh,FT).call(this)}get config(){return D(this,Pe)}get sendQueue(){return D(this,kr)}flush(){if(!D(this,Pe).queueOnDisconnect)return!1;const t=[];return D(this,kr).forEach(e=>{this.send(e.event,e.id,e.payload,e.metadata)||t.push(e)}),ne(this,kr,t),D(this,kr)}connect(t=!1){return u(this,null,function*(){if(!t&&[0,1].includes(this.readyState)){D(this,Le).debug("Websocket was already connecting or connected.");return}if(D(this,lr)!==!1)return new Promise((e,r)=>{_e(this,bn,mo).call(this),_e(this,fo,Id).call(this);try{ne(this,Ie,new WebSocket(_e(this,Yu,UT).call(this,D(this,fn)))),D(this,Ie).binaryType="arraybuffer",D(this,Le).debug("Connecting");const i=setTimeout(()=>{D(this,Le).debug("Connection timeout. Closing socket"),ne(this,lr,!0),_e(this,fo,Id).call(this),D(this,Ie).close(3001,"Connection Timeout"),D(this,Pe).autoReconnect&&!D(this,Es)&&(D(this,Ke).emit("reconnecting"),_e(this,po,hd).call(this)),r(new Error("Connection timed out!"))},D(this,Pe).connectionTimeout);D(this,Ie).onopen=()=>{D(this,Le).debug(`Ready State: ${xT[D(this,Ie).readyState]}`),i&&clearTimeout(i),_e(this,kd,th).call(this),ne(this,zr,{code:void 0,reason:void 0}),D(this,Ke).emit("connected"),D(this,Pe).flushOnReconnect&&this.flush(),e()},D(this,Ie).onclose=a=>{try{i&&clearTimeout(i);const{code:o,reason:c}=a;r(c),D(this,Le).debug("Socket closed. Close event:",{event:a}),D(this,Le).debug(`Connection closed code: ${o}`),D(this,Le).debug(`Connection closed reason: ${c}`),D(this,Es)||_e(this,Rd,Zu).call(this,o,c)}catch(o){_e(this,lo,ud).call(this,o)}},D(this,Ie).onerror=a=>{_e(this,lo,ud).call(this,a)},D(this,Ie).onmessage=a=>_e(this,Qu,$T).call(this,a)}catch(i){_e(this,lo,ud).call(this,i,r)}})})}send(t,e,r,i){const a={event:t,id:e,payload:r,metadata:i};if(D(this,Pe).queueOnDisconnect&&(!D(this,Ie)||D(this,Ie).readyState!==1))return D(this,Le).debug("Queuing message since socket is not connected!",a),D(this,kr).push(a),!1;const o=LT.encode(a);return _e(this,go,bd).call(this,o)}emit(t,e,r,i){return this.send(t,e,r,i)}sendRaw(t){return _e(this,go,bd).call(this,t)}receive(t,e){return D(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")){D(this,Ke).on(t,e);return}this.receive(t,e)}removeAllListeners(){D(this,Ke).removeAllListeners()}removeReceiver(t,e){this.removeListener(t,e)}removeListener(t,e){D(this,Ke).removeListener(t.toString(),e)}removeReceivers(t){this.removeListeners(t)}removeListeners(t){D(this,Ke).listeners(t.toString()).map(e=>this.removeListener(t,e))}disconnect(){ne(this,lr,!1),_e(this,bn,mo).call(this),this.removeAllListeners(),ne(this,zr,{code:1e3,reason:"Sockrates disconnect method called"}),D(this,Ie).close(1e3,"Sockrates disconnect method called.")}}Ie=new WeakMap,fn=new WeakMap,Pe=new WeakMap,Le=new WeakMap,kr=new WeakMap,Ke=new WeakMap,lr=new WeakMap,zr=new WeakMap,Es=new WeakMap,Tn=new WeakMap,Bs=new WeakMap,Yu=new WeakSet,UT=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)://.")},lo=new WeakSet,ud=function(s,t){D(this,Le).error("Error:",{error:s}),D(this,Ke).emit("errored",{error:s}),t==null||t(s)},Qu=new WeakSet,$T=function(s){if(_e(this,kd,th).call(this),s.data===mO){D(this,Le).debug("Received ping from server"),_e(this,go,bd).call(this,fO);return}const t=LT.decode(s.data),{id:e,payload:r}=t;D(this,Le).debug("Received message",{event:t.event,messageID:e}),D(this,Ke).emit(t.event.toString(),{id:e,payload:r})},Xu=new WeakSet,fg=function(){return D(this,Ie).readyState===1},Rd=new WeakSet,Zu=function(s,t){ne(this,zr,{reason:t,code:s}),D(this,Ke).emit("disconnected",{code:s,reason:t})},eh=new WeakSet,FT=function(){const{reason:s,code:t}=D(this,zr);t&&t!==1e3&&D(this,lr)&&D(this,Pe).autoReconnect&&!D(this,Es)&&(D(this,Le).debug(`Triggering reconnection due to ${s}.`),D(this,Ke).emit("reconnecting"),_e(this,po,hd).call(this))},po=new WeakSet,hd=function(s=!0){return u(this,null,function*(){if(s&&D(this,Es)){D(this,Le).debug("Reconnect called when already in a reconnect loop. Ignoring.");return}if(D(this,Es)||D(this,Bs).reset(),D(this,Pe).maxReconnectionAttempts!==null&&D(this,Bs).getAttempts()>=D(this,Pe).maxReconnectionAttempts){D(this,Ke).emit("failed"),ne(this,Es,!1);return}ne(this,Es,!0),_e(this,fo,Id).call(this),_e(this,bn,mo).call(this);try{if(yield D(this,Bs).wait(),D(this,lr)===!1)return;if(D(this,Le).debug(`Reconnection attempt ${D(this,Bs).getAttempts()}`),D(this,Ke).emit("reconnectAttempt",{attempt:D(this,Bs).getAttempts()}),yield this.connect(),!_e(this,Xu,fg).call(this))throw Error("Reconnect Failed");ne(this,Es,!1),ne(this,zr,{code:void 0,reason:void 0}),D(this,Ke).emit("reconnected")}catch(t){D(this,Le).debug("Failed to reconnect."),D(this,Ke).emit("reconnectFailure",{attempt:D(this,Bs).getAttempts()}),_e(this,po,hd).call(this,!1)}})},go=new WeakSet,bd=function(s){try{return D(this,Ie).send(s),!0}catch(t){return D(this,Le).error(t.message),!1}},kd=new WeakSet,th=function(){this.config.disconnectOnPingTimeout&&(D(this,Le).debug("Resetting ping timeout"),_e(this,bn,mo).call(this),ne(this,Tn,setTimeout(()=>{var s;D(this,Le).debug("Disconnecting the socket due to ping timeout"),ne(this,lr,!0);const t=3002,e="Ping timeout";(s=D(this,Ie))==null||s.close(t,e),_e(this,Rd,Zu).call(this,t,e)},D(this,Pe).pingTimeout)))},bn=new WeakSet,mo=function(){D(this,Tn)&&(clearTimeout(D(this,Tn)),ne(this,Tn,void 0))},fo=new WeakSet,Id=function(){D(this,Ie)&&(D(this,Ie).onopen=void 0,D(this,Ie).onerror=void 0,D(this,Ie).onmessage=void 0,D(this,Ie).onclose=void 0)};var vO=Object.defineProperty,SO=Object.getOwnPropertyDescriptor,Hl=(s,t,e,r)=>{for(var i=r>1?void 0:r?SO(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&&vO(t,e,i),i};const Tg=65535,yO=3e3;var Wr,Ce,we,Me,ss,Ze,wc,sh,Rc,rh,Lg;const BT=(Lg=class{constructor(s,{peerId:t,meetingId:e,authToken:r,capabilities:i}){m(this,we);m(this,wc);m(this,Rc);m(this,Wr,void 0);m(this,Ce,void 0);h(this,"roomName");h(this,"authToken");h(this,"capabilities");m(this,ss,void 0);m(this,Ze,void 0);var a;if(!t||!e||!r)throw new k("peerId, meetingId, or authToken can not be empty","0404");T(this,ss,void 0),T(this,Ze,s),this.capabilities=i,this.roomName=e,this.authToken=r,T(this,Wr,L(this,wc,sh).call(this,t)),T(this,Ce,new TO(n(this,Wr),{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,Ze).getValue("telemetry")}get logger(){return n(this,Ze).getValue("logger")}get peerId(){return n(this,Ze).getValue("peerId")}updateURL(s){s!==this.peerId&&(T(this,Wr,L(this,wc,sh).call(this,s)),this.logger.debug("SocketService:: Connection URL updated.")),n(this,Ce).updateURL(n(this,Wr))}static getSocketEdgeDomain(s){return Zi({servicePrefix:"socket-edge",baseURI:s})}get url(){return n(this,Wr)}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,Ze).getValue("telemetry").injectContext(r),n(this,Ce).send(s,e!=null?e:L(this,Rc,rh).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=(E,_)=>{n(this,Ce).removeListener(a,E),n(this,Ce).removeListener(Tg,_),n(this,Ce).removeListener(Ir.errorResponse,_),n(this,Ce).removeListener(Ps.errorResponse,_)},l=r!=null?r:L(this,Rc,rh).call(this),p={};n(this,Ze).getValue("telemetry").injectContext(p);const f=({id:E,payload:_})=>{if(l===E){let C;try{const A=MR.fromBinary(_);C=new Error(A.errorMessage)}catch(A){C=new Error("failed to parse error message",{cause:A});try{const M=Db.fromBinary(_);C=new Error(M.message)}catch(M){C=new Error("failed to parse error message",{cause:M})}}c(C),d(v,f)}},v=({id:E,payload:_})=>{l===E&&(o({id:E,payload:_}),d(v,f))};n(this,Ce).on(a,v),n(this,Ce).on(Tg,f),n(this,Ce).on(Ir.errorResponse,f),n(this,Ce).on(Ps.errorResponse,f),setTimeout(()=>{d(v,f),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,ss)&&(clearTimeout(n(this,ss)),T(this,ss,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:P.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)!==wn.CONNECTED||r!=null&&r.state&&(r==null?void 0:r.state)!==wn.CONNECTED?n(this,Ze).getValue("peerSessionStore").emit(R.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:n(this,we,Me).joinAttempted}):T(this,ss,setTimeout(()=>{n(this,Ze).getValue("peerSessionStore").emit(R.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:n(this,we,Me).joinAttempted}),T(this,ss,void 0)},yO)),n(this,we,Me).updateSocketConnectionState("disconnected")}),this.onStateEvent("reconnecting",()=>u(this,null,function*(){this.logger.info("SocketService::Reconnecting to socket-edge",{country:P.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,ss)&&(clearTimeout(n(this,ss)),T(this,ss,void 0)),n(this,Ze).getValue("peerSessionStore").emit(R.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:P.location.country}),n(this,Ze).getValue("peerSessionStore").emit(R.SOCKET_SERVICE_FAILED),n(this,we,Me).updateSocketConnectionState("failed")}))}},Wr=new WeakMap,Ce=new WeakMap,we=new WeakSet,Me=function(){return n(this,Ze).getValue("connectionHandler")},ss=new WeakMap,Ze=new WeakMap,wc=new WeakSet,sh=function(s){let t=BT.getSocketEdgeDomain(n(this,Ze).getValue("baseURI"));typeof Aa(n(this,Ze),"socket_server_base")=="string"&&(t=Aa(n(this,Ze),"socket_server_base"));const e=`wss://${t}`,r=new URL(`${e}/ws`),i=this.peerId,a=G(O({roomID:this.roomName,peerID:s,authToken:this.authToken,useMediaV2:!0},i!==s&&{oldPeerID:i}),{ping:this.capabilities.includes("PING"),capabilities:this.capabilities.map(o=>Sd[o]).join(" "),joinWithDetails:!0,useCfWorker:!0,useStartSession:!0});return Object.entries(a).forEach(([o,c])=>{r.searchParams.append(o,c.toString())}),r.href},Rc=new WeakSet,rh=function(){return`${this.peerId}-${(Math.random()+1).toString(36).substring(7)}`},Lg);let Uc=BT;Hl([P.trace("SocketService.connect")],Uc.prototype,"connect",1);Hl([P.trace("SocketService.disconnect")],Uc.prototype,"disconnect",1);Hl([P.trace("SocketService.sendMessagePromise")],Uc.prototype,"sendMessagePromise",1);Hl([P.trace("SocketService.sendMessagePromiseWithTimeout")],Uc.prototype,"sendMessagePromiseWithTimeout",1);class EO{constructor(t){h(this,"socketService");this.socketService=t}handleConnectedRoomsDumpRaw({payload:t}){var a;const e=nk.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=Mk.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 Gp.fromBinary(t).payloads.map(r=>({id:r.id,title:r.title}))}handleConnectedRoomsDeletedRaw({payload:t}){return Ek.fromBinary(t).payloads}getConnectedRoomsDump(){return u(this,null,function*(){const t=yield this.socketService.sendMessagePromise(U.getConnectedRoomsDump);return this.handleConnectedRoomsDumpRaw(t)})}createConnectedRooms(t){return u(this,null,function*(){const{payload:e}=yield this.socketService.sendMessagePromise(U.createConnectedRooms,dk.toBinary({payloads:t}));return Gp.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(U.deleteConnectedRooms,Sk.toBinary({payloads:e}));return this.handleConnectedRoomsDeletedRaw(r)})}movePeersBetweenRooms(t){return u(this,null,function*(){try{const e=yield this.socketService.sendMessagePromise(U.movePeers,bk.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 PO=Object.defineProperty,_O=Object.getOwnPropertyDescriptor,CO=(s,t,e,r)=>{for(var i=r>1?void 0:r?_O(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},ys;class HT extends Bt{constructor(e){const r=e.getValue("logger");super(r);h(this,"meetings",[]);h(this,"parentMeeting",null);m(this,ys,void 0);T(this,ys,e)}get supportsConnectedMeetings(){return n(this,ys).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.
|
|
11
11
|
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,ys).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,ys).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,ys).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,ys).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,ys).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,ys).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 G(O({},o),{participants:c})}if(e===o.id){const c=o.participants.filter(d=>!i.includes(d.id));return G(O({},o),{participants:c})}return o})}}ys=new WeakMap;CO([Rt({maxInvocations:60,period:60})],HT.prototype,"getConnectedMeetings",1);var wO=Object.defineProperty,RO=Object.getOwnPropertyDescriptor,$h=(s,t,e,r)=>{for(var i=r>1?void 0:r?RO(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},pe,xg;const qT=(xg=class{constructor(s){h(this,"connectedMeetings");m(this,pe,void 0);T(this,pe,s),this.connectedMeetings=new HT(s)}get telemetry(){return n(this,pe).getValue("telemetry")}get logger(){return n(this,pe).getValue("logger")}static init(s){const t=new qT(s);return t.connectedMeetings.supportsConnectedMeetings&&(t.setupEvents(),s.getValue("self").once("roomJoined",()=>t.getConnectedMeetings())),t}getConnectedMeetings(){this.connectedMeetings.getConnectedMeetings()}setupEvents(){n(this,pe).getValue("connectedMeetingsSocketHandler").socketService.on(U.getConnectedRoomsDump,this.handleConnectedRoomsDump.bind(this)),n(this,pe).getValue("connectedMeetingsSocketHandler").socketService.on(U.transferPeer,this.handleTransferPeer.bind(this)),n(this,pe).getValue("connectedMeetingsSocketHandler").socketService.on(U.movedPeer,this.handleMovedPeer.bind(this)),n(this,pe).getValue("connectedMeetingsSocketHandler").socketService.on(U.connectedRoomsUpdated,this.handleConnectedRoomsUpdated.bind(this)),n(this,pe).getValue("connectedMeetingsSocketHandler").socketService.on(U.connectedRoomsDeleted,this.handleConnectedRoomsDeleted.bind(this))}handleTransferPeer(s){this.logger.info("Received backend request to switch connected meetings");const t=n(this,pe).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.
|
|
12
12
|
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,pe).getValue("self").videoEnabled,audio:n(this,pe).getValue("self").audioEnabled};try{n(this,pe).getValue("self").cleanupEvents(),yield n(this,pe).getValue("meeting").leave("connected-meeting")}catch(l){this.logger.error(`ConnectedMeetingsController:: switchMeeting:: issues in leaving previous meeting. Meeting Id: ${(o=(a=n(this,pe).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 GT.init(G(O({},n(this,pe).getValue("options")),{cachedUserDetails:null,defaults:G(O(O({},n(this,pe).getValue("options").defaults),r),{mediaHandler:n(this,pe).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,pe).getValue("self");i.self.setName(n(this,pe).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,pe).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,pe).getValue("connectedMeetingsSocketHandler").handleMovedPeerRaw(s)}handleConnectedRoomsUpdated(s){const t=n(this,pe).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,G(O({},r),{participants:[]}))}),this.connectedMeetings.meetings=Array.from(e.values()),this.emitStateUpdate()}handleConnectedRoomsDeleted(s){const e=n(this,pe).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})}},pe=new WeakMap,xg);let ql=qT;$h([P.trace("ConnectedMeetingsController.getConnectedMeetings")],ql.prototype,"getConnectedMeetings",1);$h([P.trace("ConnectedMeetingsController.setupEvents")],ql.prototype,"setupEvents",1);$h([P.trace("ConnectedMeetingsController.switchMeeting")],ql.prototype,"switchMeeting",1);var bO=Object.defineProperty,kO=Object.getOwnPropertyDescriptor,jl=(s,t,e,r)=>{for(var i=r>1?void 0:r?kO(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};const vn=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 x,B;const{peerId:t,apiBase:e,authToken:r,meetingId:i,organizationId:a,cachedUserDetails:o,logger:c}=s.getAllValues();if(wT(s),Se.isSupported()===!1)throw new k("Browser not supported","0010",c,!0);const d=NM(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 m0(s);s.setValue("connectionHandler",l);const p=vn.createSocketService(s),g=p.connect(),f=d.getUserDetails(),v=d.getPlugins();let E,_="";try{yield vn.setupFlagsmith(s)}catch(H){c.error("Failed to setup flagsmith",{error:H})}try{yield g}catch(H){c.error("[Controller]: Failed to connect to socket server:",{error:H})}try{({meetingTitle:_}=yield d.getRoomNodeData()),E=yield f,c.info("CF SFU is being used."),s.setValue("presetName",E.preset.name)}catch(H){c.error("Failed to get room metadata",{error:H})}const C=Nu.init(E.preset,!s.getValue("modules").theme),A=Uu.init(s,C.viewType,E.preset.permissions),M=vn.setupControllers(p,s,E,v,_,C,A);i0(C)&&((x=vn.createRoomNodeClient(s,p).initializeConnection(E.participant.name,i,!1,A))==null||x.catch(re=>{c.error("[Controller]: Failed to queue partial media room promise:",{error:re})})),P.location.country=(B=d.ipInfo)==null?void 0:B.country;const{controllers:$}=yield M;return hw(),new vn(e,$,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=uw(i),d=G(O({entity:Tu.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?Zi({servicePrefix:"flags",baseURI:e}):"edge.api.flagsmith.com";yield s.getValue("flagsmith").identify(`${Tu.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 V,b,xe;const c=t.getValue("modules"),{participant:d}=e,l=t.getValue("defaults"),p=t.getValue("logger"),{viewType:g,mediaConstraints:{audio:f}}=a;t.setValue("viewType",g),t.setValue("defaults",O({mediaConfiguration:{audio:{enableHighBitrate:(V=f.enableHighBitrate)!=null?V:!1,enableStereo:(b=f.enableStereo)!=null?b:!1}}},l)),t.setValue("maxPreferredStreams",Se.isMobile()?a.maxVideoStreams.mobile:a.maxVideoStreams.desktop);let v,E,_,C,A,M,$,x,B;const H=new JD(t,s),re=new EO(s);t.setValue("connectedMeetingsSocketHandler",re);const et=new Fl(t,s),os=new yr(t,s),ri=new ZD(s),cs=new bT(t,s),I=new eO(t,s),y=new WD(s),w=yield si.init(t,cs,d,o,a);t.setValue("selfController",w);const F=yield kf.init(t,w.self,cs,H,i);if(c.participant&&(x=new Pr(t,w.self,cs)),(xe=c.e2ee)!=null&&xe.enabled&&c.e2ee.manager.init(p,t.getValue("peerSessionStore")),c.chat&&(E=yield is.init(t,os,w.self,x.participants)),c.internals&&(A=yield bh.init(t)),c.livestream&&a.viewType===pr.Livestream&&t.getValue("flagsmith").hasFeature(Z.LIVESTREAM)&&($=new xf(t,w.self,y)),c.poll&&(v=yield Cf.init(t,w.self,et)),c.recording&&(M=new Df(t,w.self,cs)),c.stage&&(_=new If(t,ri,cs,w.self,x.participants)),c.plugin){if(!x)throw new k("The plugin module cannot be initialized without the `participant` module","0102");const Fs=yield r;C=yield Nc.init(t,Fs,I,os,E==null?void 0:E.chat,w.self,x.participants,i)}if(c.connectedMeetings&&(B=yield ql.init(t)),c.pip){const Fs=yield vu._init(t,w.self);t.setValue("pip",Fs)}const Ae={storesManager:new aD(t,I),pollController:v,selfController:w,metaController:F,chatController:E,stageController:_,pluginController:C,recordingController:M,internalsController:A,livestreamController:$,participantController:x,connectedMeetingsController:B};return{theme:a,permissions:o,controllers:Ae}})}static createRoomNodeClient(s,t){const{peerId:e}=s.getAllValues();return CT(s,{socket:t,peerId:e})}static createSocketService(s){const{peerId:t,meetingId:e,authToken:r}=s.getAllValues(),i=["PING"];return new Uc(s,{peerId:t,meetingId:e,authToken:r,capabilities:i})}};let $c=vn;jl([P.trace("Controller.init")],$c,"init",1);jl([P.trace("setupFlagsmith")],$c,"setupFlagsmith",1);jl([P.trace("Controller.createRoomNodeClient")],$c,"createRoomNodeClient",1);jl([P.trace("Controller.createSocketService")],$c,"createSocketService",1);class IO{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 vg=new IO;function AO(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=ui.baseURI.prod;t&&(a=t);const o=`https://${Zi({servicePrefix:"api",baseURI:a})}`;return{meetingId:e,orgId:r,participantId:i,baseURI:a,apiBase:o}}catch(e){throw new k("Invalid auth token","0004")}}var Jr,zi,Yi,bc,El,jT;class MO{constructor(){m(this,El);m(this,Jr,new Audio);m(this,zi,new MediaStream);m(this,Yi,new Map);m(this,bc,void 0);n(this,Jr).srcObject=n(this,zi),n(this,Jr).autoplay=!0}playTracks(t){return u(this,null,function*(){return t.forEach(e=>{n(this,Yi).has(e.id)||(n(this,zi).addTrack(e),n(this,Yi).set(e.id,e))}),this.play()})}setSpeakerDevice(t){typeof HTMLAudioElement.prototype.setSinkId=="function"&&n(this,Jr).setSinkId(t)}removeTrack(t){const e=n(this,Yi).get(t);e&&(n(this,zi).removeTrack(e),n(this,Yi).delete(t))}play(){return u(this,null,function*(){return n(this,Jr).srcObject=n(this,zi),n(this,Jr).play().catch(t=>{L(this,El,jT).call(this,t)})})}onError(t){T(this,bc,t)}}Jr=new WeakMap,zi=new WeakMap,Yi=new WeakMap,bc=new WeakMap,El=new WeakSet,jT=function(t){var e;(e=n(this,bc))==null||e.call(this,t)};var Qi;class DO extends MO{constructor(){super();m(this,Qi,void 0);T(this,Qi,new Map)}addParticipantTrack(e,r){n(this,Qi).set(e,r.id),this.playTracks([r])}removeParticipantTrack(e){const r=n(this,Qi).get(e);r&&this.removeTrack(r),n(this,Qi).delete(e)}}Qi=new WeakMap;var OO=Object.defineProperty,NO=Object.getOwnPropertyDescriptor,Gl=(s,t,e,r)=>{for(var i=r>1?void 0:r?NO(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},je,Xi,Ug;let Xr=(Ug=class{constructor(t,e){m(this,je,void 0);m(this,Xi,void 0);T(this,Xi,t),T(this,je,e)}get peerId(){return n(this,Xi).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:gr.v4(),a=ur.createContext(i,{peerId:i}),o=a.getValue("logger");o.init(a);const c=new Gf(a,o);return yield c.init(t,e,a),a.setValue("defaults",{mediaHandler:c}),c})}static init(t){return u(this,null,function*(){var f,v,_,C,A,M;Se.init();const e=(v=(f=t==null?void 0:t.cachedUserDetails)==null?void 0:f.peerId)!=null?v:gr.v4(),{authToken:r,baseURI:i}=t,E=AO(r,i),{meetingId:a}=E,o=Bc(E,["meetingId"]);window.__zone_symbol__DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION=!0;const c=Xr.setupContext(e,t,a,o),d=c.getValue("telemetry"),l=c.getValue("logger");tv(l),vg.init(l),d.init(c,{roomName:a,userId:o.participantId,organizationId:o.orgId,peerId:e},(C=(_=t.modules)==null?void 0:_.tracing)!=null?C:!0),l.init(c),l.info("Client::init::options",{clientInitOptions:G(O({},t),{authToken:`${(A=t.authToken)==null?void 0:A.slice(0,10)}...
|
|
13
|
-
${(M=t.authToken)==null?void 0:M.slice(-10)}`})});const p=yield $c.init(c),g=new Xr(c,p);return c.setValue("meeting",g),g})}static setupContext(t,e,r,i){var d,l;const a=ur.createContext(t,e),o=O(O({},tw),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",sw({baseURI:i.baseURI})),a.setValue("defaults",c),a.setValue("onError",e.onError||(()=>{})),a.setValue("cachedUserDetails",_s(e.cachedUserDetails)),a.setValue("sdkVersion","1.2.
|
|
13
|
+
${(M=t.authToken)==null?void 0:M.slice(-10)}`})});const p=yield $c.init(c),g=new Xr(c,p);return c.setValue("meeting",g),g})}static setupContext(t,e,r,i){var d,l;const a=ur.createContext(t,e),o=O(O({},tw),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",sw({baseURI:i.baseURI})),a.setValue("defaults",c),a.setValue("onError",e.onError||(()=>{})),a.setValue("cachedUserDetails",_s(e.cachedUserDetails)),a.setValue("sdkVersion","1.2.6-staging.1"),(l=e.modules)!=null&&l.experimentalAudioPlayback&&a.setValue("audioPlayback",new DO),a}join(){return u(this,null,function*(){const{selfController:t}=n(this,je);return t.self.roomJoined?null:t.joinRoom()})}leave(t){return u(this,null,function*(){vg.cleanup(),n(this,Xi).getValue("peerSessionStore").reset();const{selfController:e}=n(this,je);return e.leaveRoom(t)})}get participants(){var t;return(t=n(this,je).participantController)==null?void 0:t.participants}get self(){var t;return(t=n(this,je).selfController)==null?void 0:t.self}get meta(){var t;return(t=n(this,je).metaController)==null?void 0:t.meta}get ai(){var t;return(t=n(this,je).metaController)==null?void 0:t.ai}get plugins(){var t;return(t=n(this,je).pluginController)==null?void 0:t.plugins}get chat(){var t;return(t=n(this,je).chatController)==null?void 0:t.chat}get polls(){var t;return(t=n(this,je).pollController)==null?void 0:t.polls}get connectedMeetings(){var t;return(t=n(this,je).connectedMeetingsController)==null?void 0:t.connectedMeetings}get recording(){var t;return(t=n(this,je).recordingController)==null?void 0:t.recording}get livestream(){var t;return(t=n(this,je).livestreamController)==null?void 0:t.livestream}get stage(){var t;return(t=n(this,je).stageController)==null?void 0:t.stage}get stores(){return n(this,je).storesManager}get audio(){return n(this,Xi).getValue("audioPlayback")}get __internals__(){var t;return(t=n(this,je).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)})}},je=new WeakMap,Xi=new WeakMap,Ug);Gl([dt("0002"),Er.executeWithLock({methodName:"meeting.join",lockName:"Client.join",timeout:3e3})],Xr.prototype,"join",1);Gl([dt("0003")],Xr.prototype,"leave",1);Gl([dt("0001"),Er.executeWithLock({methodName:"Client.init",lockName:"Client.init",timeout:3e3})],Xr,"init",1);Xr=Gl([dt("0000")],Xr);const GT=Xr;module.exports=GT;
|