@cloudflare/realtimekit 1.1.0-staging.3 → 1.1.0-staging.5

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 CHANGED
@@ -1,22 +1,22 @@
1
- var RealtimeKitClient=function(){"use strict";var rc,Oy=new Uint8Array(16);function Ny(){if(!rc&&(rc=typeof crypto!="undefined"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto!="undefined"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!rc))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return rc(Oy)}var Ly=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Cl(t){return typeof t=="string"&&Ly.test(t)}for(var st=[],Pl=0;Pl<256;++Pl)st.push((Pl+256).toString(16).substr(1));function Vy(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=(st[t[e+0]]+st[t[e+1]]+st[t[e+2]]+st[t[e+3]]+"-"+st[t[e+4]]+st[t[e+5]]+"-"+st[t[e+6]]+st[t[e+7]]+"-"+st[t[e+8]]+st[t[e+9]]+"-"+st[t[e+10]]+st[t[e+11]]+st[t[e+12]]+st[t[e+13]]+st[t[e+14]]+st[t[e+15]]).toLowerCase();if(!Cl(i))throw TypeError("Stringified UUID is invalid");return i}function jn(t,e,i){t=t||{};var r=t.random||(t.rng||Ny)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){i=i||0;for(var n=0;n<16;++n)e[i+n]=r[n];return e}return Vy(r)}const xy={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},Tp={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},Be={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},vt={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},dr={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};class D{static getFirstMatch(e,i){const r=i.match(e);return r&&r.length>0&&r[1]||""}static getSecondMatch(e,i){const r=i.match(e);return r&&r.length>1&&r[2]||""}static matchAndReturnConst(e,i,r){if(e.test(i))return r}static getWindowsVersionName(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(e){const i=e.split(".").splice(0,2).map(r=>parseInt(r,10)||0);if(i.push(0),i[0]===10)switch(i[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}static getAndroidVersionName(e){const i=e.split(".").splice(0,2).map(r=>parseInt(r,10)||0);if(i.push(0),!(i[0]===1&&i[1]<5)){if(i[0]===1&&i[1]<6)return"Cupcake";if(i[0]===1&&i[1]>=6)return"Donut";if(i[0]===2&&i[1]<2)return"Eclair";if(i[0]===2&&i[1]===2)return"Froyo";if(i[0]===2&&i[1]>2)return"Gingerbread";if(i[0]===3)return"Honeycomb";if(i[0]===4&&i[1]<1)return"Ice Cream Sandwich";if(i[0]===4&&i[1]<4)return"Jelly Bean";if(i[0]===4&&i[1]>=4)return"KitKat";if(i[0]===5)return"Lollipop";if(i[0]===6)return"Marshmallow";if(i[0]===7)return"Nougat";if(i[0]===8)return"Oreo";if(i[0]===9)return"Pie"}}static getVersionPrecision(e){return e.split(".").length}static compareVersions(e,i,r=!1){const n=D.getVersionPrecision(e),s=D.getVersionPrecision(i);let o=Math.max(n,s),c=0;const d=D.map([e,i],h=>{const p=o-D.getVersionPrecision(h),g=h+new Array(p+1).join(".0");return D.map(g.split("."),y=>new Array(20-y.length).join("0")+y).reverse()});for(r&&(c=o-Math.min(n,s)),o-=1;o>=c;){if(d[0][o]>d[1][o])return 1;if(d[0][o]===d[1][o]){if(o===c)return 0;o-=1}else if(d[0][o]<d[1][o])return-1}}static map(e,i){const r=[];let n;if(Array.prototype.map)return Array.prototype.map.call(e,i);for(n=0;n<e.length;n+=1)r.push(i(e[n]));return r}static find(e,i){let r,n;if(Array.prototype.find)return Array.prototype.find.call(e,i);for(r=0,n=e.length;r<n;r+=1){const s=e[r];if(i(s,r))return s}}static assign(e,...i){const r=e;let n,s;if(Object.assign)return Object.assign(e,...i);for(n=0,s=i.length;n<s;n+=1){const o=i[n];typeof o=="object"&&o!==null&&Object.keys(o).forEach(d=>{r[d]=o[d]})}return e}static getBrowserAlias(e){return xy[e]}static getBrowserTypeByAlias(e){return Tp[e]||""}}const ve=/version\/(\d+(\.?_?\d+)+)/i,Uy=[{test:[/googlebot/i],describe(t){const e={name:"Googlebot"},i=D.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/opera/i],describe(t){const e={name:"Opera"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/opr\/|opios/i],describe(t){const e={name:"Opera"},i=D.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/SamsungBrowser/i],describe(t){const e={name:"Samsung Internet for Android"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/Whale/i],describe(t){const e={name:"NAVER Whale Browser"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/MZBrowser/i],describe(t){const e={name:"MZ Browser"},i=D.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/focus/i],describe(t){const e={name:"Focus"},i=D.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/swing/i],describe(t){const e={name:"Swing"},i=D.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/coast/i],describe(t){const e={name:"Opera Coast"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(t){const e={name:"Opera Touch"},i=D.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/yabrowser/i],describe(t){const e={name:"Yandex Browser"},i=D.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/ucbrowser/i],describe(t){const e={name:"UC Browser"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/Maxthon|mxios/i],describe(t){const e={name:"Maxthon"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/epiphany/i],describe(t){const e={name:"Epiphany"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/puffin/i],describe(t){const e={name:"Puffin"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/sleipnir/i],describe(t){const e={name:"Sleipnir"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/k-meleon/i],describe(t){const e={name:"K-Meleon"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/micromessenger/i],describe(t){const e={name:"WeChat"},i=D.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/qqbrowser/i],describe(t){const e={name:/qqbrowserlite/i.test(t)?"QQ Browser Lite":"QQ Browser"},i=D.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/msie|trident/i],describe(t){const e={name:"Internet Explorer"},i=D.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/\sedg\//i],describe(t){const e={name:"Microsoft Edge"},i=D.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/edg([ea]|ios)/i],describe(t){const e={name:"Microsoft Edge"},i=D.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/vivaldi/i],describe(t){const e={name:"Vivaldi"},i=D.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/seamonkey/i],describe(t){const e={name:"SeaMonkey"},i=D.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/sailfish/i],describe(t){const e={name:"Sailfish"},i=D.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,t);return i&&(e.version=i),e}},{test:[/silk/i],describe(t){const e={name:"Amazon Silk"},i=D.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/phantom/i],describe(t){const e={name:"PhantomJS"},i=D.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/slimerjs/i],describe(t){const e={name:"SlimerJS"},i=D.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(t){const e={name:"BlackBerry"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/(web|hpw)[o0]s/i],describe(t){const e={name:"WebOS Browser"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/bada/i],describe(t){const e={name:"Bada"},i=D.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/tizen/i],describe(t){const e={name:"Tizen"},i=D.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/qupzilla/i],describe(t){const e={name:"QupZilla"},i=D.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/firefox|iceweasel|fxios/i],describe(t){const e={name:"Firefox"},i=D.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/electron/i],describe(t){const e={name:"Electron"},i=D.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/MiuiBrowser/i],describe(t){const e={name:"Miui"},i=D.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/chromium/i],describe(t){const e={name:"Chromium"},i=D.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/chrome|crios|crmo/i],describe(t){const e={name:"Chrome"},i=D.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/GSA/i],describe(t){const e={name:"Google Search"},i=D.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test(t){const e=!t.test(/like android/i),i=t.test(/android/i);return e&&i},describe(t){const e={name:"Android Browser"},i=D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/playstation 4/i],describe(t){const e={name:"PlayStation 4"},i=D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/safari|applewebkit/i],describe(t){const e={name:"Safari"},i=D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/.*/i],describe(t){const e=/^(.*)\/(.*) /,i=/^(.*)\/(.*)[ \t]\((.*)/,n=t.search("\\(")!==-1?i:e;return{name:D.getFirstMatch(n,t),version:D.getSecondMatch(n,t)}}}];var Fy=[{test:[/Roku\/DVP/],describe(t){const e=D.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,t);return{name:vt.Roku,version:e}}},{test:[/windows phone/i],describe(t){const e=D.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,t);return{name:vt.WindowsPhone,version:e}}},{test:[/windows /i],describe(t){const e=D.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,t),i=D.getWindowsVersionName(e);return{name:vt.Windows,version:e,versionName:i}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(t){const e={name:vt.iOS},i=D.getSecondMatch(/(Version\/)(\d[\d.]+)/,t);return i&&(e.version=i),e}},{test:[/macintosh/i],describe(t){const e=D.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,t).replace(/[_\s]/g,"."),i=D.getMacOSVersionName(e),r={name:vt.MacOS,version:e};return i&&(r.versionName=i),r}},{test:[/(ipod|iphone|ipad)/i],describe(t){const e=D.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,t).replace(/[_\s]/g,".");return{name:vt.iOS,version:e}}},{test(t){const e=!t.test(/like android/i),i=t.test(/android/i);return e&&i},describe(t){const e=D.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,t),i=D.getAndroidVersionName(e),r={name:vt.Android,version:e};return i&&(r.versionName=i),r}},{test:[/(web|hpw)[o0]s/i],describe(t){const e=D.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,t),i={name:vt.WebOS};return e&&e.length&&(i.version=e),i}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(t){const e=D.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,t)||D.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,t)||D.getFirstMatch(/\bbb(\d+)/i,t);return{name:vt.BlackBerry,version:e}}},{test:[/bada/i],describe(t){const e=D.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,t);return{name:vt.Bada,version:e}}},{test:[/tizen/i],describe(t){const e=D.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,t);return{name:vt.Tizen,version:e}}},{test:[/linux/i],describe(){return{name:vt.Linux}}},{test:[/CrOS/],describe(){return{name:vt.ChromeOS}}},{test:[/PlayStation 4/],describe(t){const e=D.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,t);return{name:vt.PlayStation4,version:e}}}],By=[{test:[/googlebot/i],describe(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe(t){const e=D.getFirstMatch(/(can-l01)/i,t)&&"Nova",i={type:Be.mobile,vendor:"Huawei"};return e&&(i.model=e),i}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe(){return{type:Be.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe(){return{type:Be.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(){return{type:Be.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe(){return{type:Be.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe(){return{type:Be.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe(){return{type:Be.tablet}}},{test(t){const e=t.test(/ipod|iphone/i),i=t.test(/like (ipod|iphone)/i);return e&&!i},describe(t){const e=D.getFirstMatch(/(ipod|iphone)/i,t);return{type:Be.mobile,vendor:"Apple",model:e}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe(){return{type:Be.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe(){return{type:Be.mobile}}},{test(t){return t.getBrowserName(!0)==="blackberry"},describe(){return{type:Be.mobile,vendor:"BlackBerry"}}},{test(t){return t.getBrowserName(!0)==="bada"},describe(){return{type:Be.mobile}}},{test(t){return t.getBrowserName()==="windows phone"},describe(){return{type:Be.mobile,vendor:"Microsoft"}}},{test(t){const e=Number(String(t.getOSVersion()).split(".")[0]);return t.getOSName(!0)==="android"&&e>=3},describe(){return{type:Be.tablet}}},{test(t){return t.getOSName(!0)==="android"},describe(){return{type:Be.mobile}}},{test(t){return t.getOSName(!0)==="macos"},describe(){return{type:Be.desktop,vendor:"Apple"}}},{test(t){return t.getOSName(!0)==="windows"},describe(){return{type:Be.desktop}}},{test(t){return t.getOSName(!0)==="linux"},describe(){return{type:Be.desktop}}},{test(t){return t.getOSName(!0)==="playstation 4"},describe(){return{type:Be.tv}}},{test(t){return t.getOSName(!0)==="roku"},describe(){return{type:Be.tv}}}],Wy=[{test(t){return t.getBrowserName(!0)==="microsoft edge"},describe(t){if(/\sedg\//i.test(t))return{name:dr.Blink};const i=D.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,t);return{name:dr.EdgeHTML,version:i}}},{test:[/trident/i],describe(t){const e={name:dr.Trident},i=D.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test(t){return t.test(/presto/i)},describe(t){const e={name:dr.Presto},i=D.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test(t){const e=t.test(/gecko/i),i=t.test(/like gecko/i);return e&&!i},describe(t){const e={name:dr.Gecko},i=D.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/(apple)?webkit\/537\.36/i],describe(){return{name:dr.Blink}}},{test:[/(apple)?webkit/i],describe(t){const e={name:dr.WebKit},i=D.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}}];class kp{constructor(e,i=!1){if(e==null||e==="")throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},i!==!0&&this.parse()}getUA(){return this._ua}test(e){return e.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const e=D.find(Uy,i=>{if(typeof i.test=="function")return i.test(this);if(i.test instanceof Array)return i.test.some(r=>this.test(r));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.browser=e.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const e=D.find(Fy,i=>{if(typeof i.test=="function")return i.test(this);if(i.test instanceof Array)return i.test.some(r=>this.test(r));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.os=e.describe(this.getUA())),this.parsedResult.os}getOSName(e){const{name:i}=this.getOS();return e?String(i).toLowerCase()||"":i||""}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(e=!1){const{type:i}=this.getPlatform();return e?String(i).toLowerCase()||"":i||""}parsePlatform(){this.parsedResult.platform={};const e=D.find(By,i=>{if(typeof i.test=="function")return i.test(this);if(i.test instanceof Array)return i.test.some(r=>this.test(r));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.platform=e.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};const e=D.find(Wy,i=>{if(typeof i.test=="function")return i.test(this);if(i.test instanceof Array)return i.test.some(r=>this.test(r));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.engine=e.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return D.assign({},this.parsedResult)}satisfies(e){const i={};let r=0;const n={};let s=0;if(Object.keys(e).forEach(c=>{const d=e[c];typeof d=="string"?(n[c]=d,s+=1):typeof d=="object"&&(i[c]=d,r+=1)}),r>0){const c=Object.keys(i),d=D.find(c,p=>this.isOS(p));if(d){const p=this.satisfies(i[d]);if(p!==void 0)return p}const h=D.find(c,p=>this.isPlatform(p));if(h){const p=this.satisfies(i[h]);if(p!==void 0)return p}}if(s>0){const c=Object.keys(n),d=D.find(c,h=>this.isBrowser(h,!0));if(d!==void 0)return this.compareVersion(n[d])}}isBrowser(e,i=!1){const r=this.getBrowserName().toLowerCase();let n=e.toLowerCase();const s=D.getBrowserTypeByAlias(n);return i&&s&&(n=s.toLowerCase()),n===r}compareVersion(e){let i=[0],r=e,n=!1;const s=this.getBrowserVersion();if(typeof s=="string")return e[0]===">"||e[0]==="<"?(r=e.substr(1),e[1]==="="?(n=!0,r=e.substr(2)):i=[],e[0]===">"?i.push(1):i.push(-1)):e[0]==="="?r=e.substr(1):e[0]==="~"&&(n=!0,r=e.substr(1)),i.indexOf(D.compareVersions(s,r,n))>-1}isOS(e){return this.getOSName(!0)===String(e).toLowerCase()}isPlatform(e){return this.getPlatformType(!0)===String(e).toLowerCase()}isEngine(e){return this.getEngineName(!0)===String(e).toLowerCase()}is(e,i=!1){return this.isBrowser(e,i)||this.isOS(e)||this.isPlatform(e)}some(e=[]){return e.some(i=>this.is(i))}}/*!
1
+ var RealtimeKitClient=function(){"use strict";var rc,Oy=new Uint8Array(16);function Ny(){if(!rc&&(rc=typeof crypto!="undefined"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto!="undefined"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!rc))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return rc(Oy)}var Ly=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Cl(t){return typeof t=="string"&&Ly.test(t)}for(var st=[],Pl=0;Pl<256;++Pl)st.push((Pl+256).toString(16).substr(1));function Vy(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=(st[t[e+0]]+st[t[e+1]]+st[t[e+2]]+st[t[e+3]]+"-"+st[t[e+4]]+st[t[e+5]]+"-"+st[t[e+6]]+st[t[e+7]]+"-"+st[t[e+8]]+st[t[e+9]]+"-"+st[t[e+10]]+st[t[e+11]]+st[t[e+12]]+st[t[e+13]]+st[t[e+14]]+st[t[e+15]]).toLowerCase();if(!Cl(i))throw TypeError("Stringified UUID is invalid");return i}function jn(t,e,i){t=t||{};var r=t.random||(t.rng||Ny)();if(r[6]=r[6]&15|64,r[8]=r[8]&63|128,e){i=i||0;for(var n=0;n<16;++n)e[i+n]=r[n];return e}return Vy(r)}const xy={"Amazon Silk":"amazon_silk","Android Browser":"android",Bada:"bada",BlackBerry:"blackberry",Chrome:"chrome",Chromium:"chromium",Electron:"electron",Epiphany:"epiphany",Firefox:"firefox",Focus:"focus",Generic:"generic","Google Search":"google_search",Googlebot:"googlebot","Internet Explorer":"ie","K-Meleon":"k_meleon",Maxthon:"maxthon","Microsoft Edge":"edge","MZ Browser":"mz","NAVER Whale Browser":"naver",Opera:"opera","Opera Coast":"opera_coast",PhantomJS:"phantomjs",Puffin:"puffin",QupZilla:"qupzilla",QQ:"qq",QQLite:"qqlite",Safari:"safari",Sailfish:"sailfish","Samsung Internet for Android":"samsung_internet",SeaMonkey:"seamonkey",Sleipnir:"sleipnir",Swing:"swing",Tizen:"tizen","UC Browser":"uc",Vivaldi:"vivaldi","WebOS Browser":"webos",WeChat:"wechat","Yandex Browser":"yandex",Roku:"roku"},Ep={amazon_silk:"Amazon Silk",android:"Android Browser",bada:"Bada",blackberry:"BlackBerry",chrome:"Chrome",chromium:"Chromium",electron:"Electron",epiphany:"Epiphany",firefox:"Firefox",focus:"Focus",generic:"Generic",googlebot:"Googlebot",google_search:"Google Search",ie:"Internet Explorer",k_meleon:"K-Meleon",maxthon:"Maxthon",edge:"Microsoft Edge",mz:"MZ Browser",naver:"NAVER Whale Browser",opera:"Opera",opera_coast:"Opera Coast",phantomjs:"PhantomJS",puffin:"Puffin",qupzilla:"QupZilla",qq:"QQ Browser",qqlite:"QQ Browser Lite",safari:"Safari",sailfish:"Sailfish",samsung_internet:"Samsung Internet for Android",seamonkey:"SeaMonkey",sleipnir:"Sleipnir",swing:"Swing",tizen:"Tizen",uc:"UC Browser",vivaldi:"Vivaldi",webos:"WebOS Browser",wechat:"WeChat",yandex:"Yandex Browser"},Be={tablet:"tablet",mobile:"mobile",desktop:"desktop",tv:"tv"},vt={WindowsPhone:"Windows Phone",Windows:"Windows",MacOS:"macOS",iOS:"iOS",Android:"Android",WebOS:"WebOS",BlackBerry:"BlackBerry",Bada:"Bada",Tizen:"Tizen",Linux:"Linux",ChromeOS:"Chrome OS",PlayStation4:"PlayStation 4",Roku:"Roku"},dr={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};class D{static getFirstMatch(e,i){const r=i.match(e);return r&&r.length>0&&r[1]||""}static getSecondMatch(e,i){const r=i.match(e);return r&&r.length>1&&r[2]||""}static matchAndReturnConst(e,i,r){if(e.test(i))return r}static getWindowsVersionName(e){switch(e){case"NT":return"NT";case"XP":return"XP";case"NT 5.0":return"2000";case"NT 5.1":return"XP";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}static getMacOSVersionName(e){const i=e.split(".").splice(0,2).map(r=>parseInt(r,10)||0);if(i.push(0),i[0]===10)switch(i[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}static getAndroidVersionName(e){const i=e.split(".").splice(0,2).map(r=>parseInt(r,10)||0);if(i.push(0),!(i[0]===1&&i[1]<5)){if(i[0]===1&&i[1]<6)return"Cupcake";if(i[0]===1&&i[1]>=6)return"Donut";if(i[0]===2&&i[1]<2)return"Eclair";if(i[0]===2&&i[1]===2)return"Froyo";if(i[0]===2&&i[1]>2)return"Gingerbread";if(i[0]===3)return"Honeycomb";if(i[0]===4&&i[1]<1)return"Ice Cream Sandwich";if(i[0]===4&&i[1]<4)return"Jelly Bean";if(i[0]===4&&i[1]>=4)return"KitKat";if(i[0]===5)return"Lollipop";if(i[0]===6)return"Marshmallow";if(i[0]===7)return"Nougat";if(i[0]===8)return"Oreo";if(i[0]===9)return"Pie"}}static getVersionPrecision(e){return e.split(".").length}static compareVersions(e,i,r=!1){const n=D.getVersionPrecision(e),s=D.getVersionPrecision(i);let o=Math.max(n,s),c=0;const d=D.map([e,i],h=>{const p=o-D.getVersionPrecision(h),g=h+new Array(p+1).join(".0");return D.map(g.split("."),y=>new Array(20-y.length).join("0")+y).reverse()});for(r&&(c=o-Math.min(n,s)),o-=1;o>=c;){if(d[0][o]>d[1][o])return 1;if(d[0][o]===d[1][o]){if(o===c)return 0;o-=1}else if(d[0][o]<d[1][o])return-1}}static map(e,i){const r=[];let n;if(Array.prototype.map)return Array.prototype.map.call(e,i);for(n=0;n<e.length;n+=1)r.push(i(e[n]));return r}static find(e,i){let r,n;if(Array.prototype.find)return Array.prototype.find.call(e,i);for(r=0,n=e.length;r<n;r+=1){const s=e[r];if(i(s,r))return s}}static assign(e,...i){const r=e;let n,s;if(Object.assign)return Object.assign(e,...i);for(n=0,s=i.length;n<s;n+=1){const o=i[n];typeof o=="object"&&o!==null&&Object.keys(o).forEach(d=>{r[d]=o[d]})}return e}static getBrowserAlias(e){return xy[e]}static getBrowserTypeByAlias(e){return Ep[e]||""}}const ve=/version\/(\d+(\.?_?\d+)+)/i,Uy=[{test:[/googlebot/i],describe(t){const e={name:"Googlebot"},i=D.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/opera/i],describe(t){const e={name:"Opera"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/opr\/|opios/i],describe(t){const e={name:"Opera"},i=D.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/SamsungBrowser/i],describe(t){const e={name:"Samsung Internet for Android"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:SamsungBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/Whale/i],describe(t){const e={name:"NAVER Whale Browser"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/MZBrowser/i],describe(t){const e={name:"MZ Browser"},i=D.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/focus/i],describe(t){const e={name:"Focus"},i=D.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/swing/i],describe(t){const e={name:"Swing"},i=D.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/coast/i],describe(t){const e={name:"Opera Coast"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:coast)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/opt\/\d+(?:.?_?\d+)+/i],describe(t){const e={name:"Opera Touch"},i=D.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/yabrowser/i],describe(t){const e={name:"Yandex Browser"},i=D.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/ucbrowser/i],describe(t){const e={name:"UC Browser"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/Maxthon|mxios/i],describe(t){const e={name:"Maxthon"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/epiphany/i],describe(t){const e={name:"Epiphany"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/puffin/i],describe(t){const e={name:"Puffin"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/sleipnir/i],describe(t){const e={name:"Sleipnir"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:sleipnir)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/k-meleon/i],describe(t){const e={name:"K-Meleon"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/micromessenger/i],describe(t){const e={name:"WeChat"},i=D.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/qqbrowser/i],describe(t){const e={name:/qqbrowserlite/i.test(t)?"QQ Browser Lite":"QQ Browser"},i=D.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/msie|trident/i],describe(t){const e={name:"Internet Explorer"},i=D.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/\sedg\//i],describe(t){const e={name:"Microsoft Edge"},i=D.getFirstMatch(/\sedg\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/edg([ea]|ios)/i],describe(t){const e={name:"Microsoft Edge"},i=D.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/vivaldi/i],describe(t){const e={name:"Vivaldi"},i=D.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/seamonkey/i],describe(t){const e={name:"SeaMonkey"},i=D.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/sailfish/i],describe(t){const e={name:"Sailfish"},i=D.getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i,t);return i&&(e.version=i),e}},{test:[/silk/i],describe(t){const e={name:"Amazon Silk"},i=D.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/phantom/i],describe(t){const e={name:"PhantomJS"},i=D.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/slimerjs/i],describe(t){const e={name:"SlimerJS"},i=D.getFirstMatch(/slimerjs\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(t){const e={name:"BlackBerry"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/blackberry[\d]+\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/(web|hpw)[o0]s/i],describe(t){const e={name:"WebOS Browser"},i=D.getFirstMatch(ve,t)||D.getFirstMatch(/w(?:eb)?[o0]sbrowser\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/bada/i],describe(t){const e={name:"Bada"},i=D.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/tizen/i],describe(t){const e={name:"Tizen"},i=D.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/qupzilla/i],describe(t){const e={name:"QupZilla"},i=D.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/firefox|iceweasel|fxios/i],describe(t){const e={name:"Firefox"},i=D.getFirstMatch(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/electron/i],describe(t){const e={name:"Electron"},i=D.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/MiuiBrowser/i],describe(t){const e={name:"Miui"},i=D.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/chromium/i],describe(t){const e={name:"Chromium"},i=D.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,t)||D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/chrome|crios|crmo/i],describe(t){const e={name:"Chrome"},i=D.getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/GSA/i],describe(t){const e={name:"Google Search"},i=D.getFirstMatch(/(?:GSA)\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test(t){const e=!t.test(/like android/i),i=t.test(/android/i);return e&&i},describe(t){const e={name:"Android Browser"},i=D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/playstation 4/i],describe(t){const e={name:"PlayStation 4"},i=D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/safari|applewebkit/i],describe(t){const e={name:"Safari"},i=D.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/.*/i],describe(t){const e=/^(.*)\/(.*) /,i=/^(.*)\/(.*)[ \t]\((.*)/,n=t.search("\\(")!==-1?i:e;return{name:D.getFirstMatch(n,t),version:D.getSecondMatch(n,t)}}}];var Fy=[{test:[/Roku\/DVP/],describe(t){const e=D.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,t);return{name:vt.Roku,version:e}}},{test:[/windows phone/i],describe(t){const e=D.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,t);return{name:vt.WindowsPhone,version:e}}},{test:[/windows /i],describe(t){const e=D.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,t),i=D.getWindowsVersionName(e);return{name:vt.Windows,version:e,versionName:i}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(t){const e={name:vt.iOS},i=D.getSecondMatch(/(Version\/)(\d[\d.]+)/,t);return i&&(e.version=i),e}},{test:[/macintosh/i],describe(t){const e=D.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,t).replace(/[_\s]/g,"."),i=D.getMacOSVersionName(e),r={name:vt.MacOS,version:e};return i&&(r.versionName=i),r}},{test:[/(ipod|iphone|ipad)/i],describe(t){const e=D.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,t).replace(/[_\s]/g,".");return{name:vt.iOS,version:e}}},{test(t){const e=!t.test(/like android/i),i=t.test(/android/i);return e&&i},describe(t){const e=D.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,t),i=D.getAndroidVersionName(e),r={name:vt.Android,version:e};return i&&(r.versionName=i),r}},{test:[/(web|hpw)[o0]s/i],describe(t){const e=D.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,t),i={name:vt.WebOS};return e&&e.length&&(i.version=e),i}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(t){const e=D.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,t)||D.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,t)||D.getFirstMatch(/\bbb(\d+)/i,t);return{name:vt.BlackBerry,version:e}}},{test:[/bada/i],describe(t){const e=D.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,t);return{name:vt.Bada,version:e}}},{test:[/tizen/i],describe(t){const e=D.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,t);return{name:vt.Tizen,version:e}}},{test:[/linux/i],describe(){return{name:vt.Linux}}},{test:[/CrOS/],describe(){return{name:vt.ChromeOS}}},{test:[/PlayStation 4/],describe(t){const e=D.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,t);return{name:vt.PlayStation4,version:e}}}],By=[{test:[/googlebot/i],describe(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe(t){const e=D.getFirstMatch(/(can-l01)/i,t)&&"Nova",i={type:Be.mobile,vendor:"Huawei"};return e&&(i.model=e),i}},{test:[/nexus\s*(?:7|8|9|10).*/i],describe(){return{type:Be.tablet,vendor:"Nexus"}}},{test:[/ipad/i],describe(){return{type:Be.tablet,vendor:"Apple",model:"iPad"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(){return{type:Be.tablet,vendor:"Apple",model:"iPad"}}},{test:[/kftt build/i],describe(){return{type:Be.tablet,vendor:"Amazon",model:"Kindle Fire HD 7"}}},{test:[/silk/i],describe(){return{type:Be.tablet,vendor:"Amazon"}}},{test:[/tablet(?! pc)/i],describe(){return{type:Be.tablet}}},{test(t){const e=t.test(/ipod|iphone/i),i=t.test(/like (ipod|iphone)/i);return e&&!i},describe(t){const e=D.getFirstMatch(/(ipod|iphone)/i,t);return{type:Be.mobile,vendor:"Apple",model:e}}},{test:[/nexus\s*[0-6].*/i,/galaxy nexus/i],describe(){return{type:Be.mobile,vendor:"Nexus"}}},{test:[/[^-]mobi/i],describe(){return{type:Be.mobile}}},{test(t){return t.getBrowserName(!0)==="blackberry"},describe(){return{type:Be.mobile,vendor:"BlackBerry"}}},{test(t){return t.getBrowserName(!0)==="bada"},describe(){return{type:Be.mobile}}},{test(t){return t.getBrowserName()==="windows phone"},describe(){return{type:Be.mobile,vendor:"Microsoft"}}},{test(t){const e=Number(String(t.getOSVersion()).split(".")[0]);return t.getOSName(!0)==="android"&&e>=3},describe(){return{type:Be.tablet}}},{test(t){return t.getOSName(!0)==="android"},describe(){return{type:Be.mobile}}},{test(t){return t.getOSName(!0)==="macos"},describe(){return{type:Be.desktop,vendor:"Apple"}}},{test(t){return t.getOSName(!0)==="windows"},describe(){return{type:Be.desktop}}},{test(t){return t.getOSName(!0)==="linux"},describe(){return{type:Be.desktop}}},{test(t){return t.getOSName(!0)==="playstation 4"},describe(){return{type:Be.tv}}},{test(t){return t.getOSName(!0)==="roku"},describe(){return{type:Be.tv}}}],Wy=[{test(t){return t.getBrowserName(!0)==="microsoft edge"},describe(t){if(/\sedg\//i.test(t))return{name:dr.Blink};const i=D.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,t);return{name:dr.EdgeHTML,version:i}}},{test:[/trident/i],describe(t){const e={name:dr.Trident},i=D.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test(t){return t.test(/presto/i)},describe(t){const e={name:dr.Presto},i=D.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test(t){const e=t.test(/gecko/i),i=t.test(/like gecko/i);return e&&!i},describe(t){const e={name:dr.Gecko},i=D.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/(apple)?webkit\/537\.36/i],describe(){return{name:dr.Blink}}},{test:[/(apple)?webkit/i],describe(t){const e={name:dr.WebKit},i=D.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}}];class Tp{constructor(e,i=!1){if(e==null||e==="")throw new Error("UserAgent parameter can't be empty");this._ua=e,this.parsedResult={},i!==!0&&this.parse()}getUA(){return this._ua}test(e){return e.test(this._ua)}parseBrowser(){this.parsedResult.browser={};const e=D.find(Uy,i=>{if(typeof i.test=="function")return i.test(this);if(i.test instanceof Array)return i.test.some(r=>this.test(r));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.browser=e.describe(this.getUA())),this.parsedResult.browser}getBrowser(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}getBrowserName(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}getBrowserVersion(){return this.getBrowser().version}getOS(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}parseOS(){this.parsedResult.os={};const e=D.find(Fy,i=>{if(typeof i.test=="function")return i.test(this);if(i.test instanceof Array)return i.test.some(r=>this.test(r));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.os=e.describe(this.getUA())),this.parsedResult.os}getOSName(e){const{name:i}=this.getOS();return e?String(i).toLowerCase()||"":i||""}getOSVersion(){return this.getOS().version}getPlatform(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}getPlatformType(e=!1){const{type:i}=this.getPlatform();return e?String(i).toLowerCase()||"":i||""}parsePlatform(){this.parsedResult.platform={};const e=D.find(By,i=>{if(typeof i.test=="function")return i.test(this);if(i.test instanceof Array)return i.test.some(r=>this.test(r));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.platform=e.describe(this.getUA())),this.parsedResult.platform}getEngine(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}getEngineName(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}parseEngine(){this.parsedResult.engine={};const e=D.find(Wy,i=>{if(typeof i.test=="function")return i.test(this);if(i.test instanceof Array)return i.test.some(r=>this.test(r));throw new Error("Browser's test function is not valid")});return e&&(this.parsedResult.engine=e.describe(this.getUA())),this.parsedResult.engine}parse(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}getResult(){return D.assign({},this.parsedResult)}satisfies(e){const i={};let r=0;const n={};let s=0;if(Object.keys(e).forEach(c=>{const d=e[c];typeof d=="string"?(n[c]=d,s+=1):typeof d=="object"&&(i[c]=d,r+=1)}),r>0){const c=Object.keys(i),d=D.find(c,p=>this.isOS(p));if(d){const p=this.satisfies(i[d]);if(p!==void 0)return p}const h=D.find(c,p=>this.isPlatform(p));if(h){const p=this.satisfies(i[h]);if(p!==void 0)return p}}if(s>0){const c=Object.keys(n),d=D.find(c,h=>this.isBrowser(h,!0));if(d!==void 0)return this.compareVersion(n[d])}}isBrowser(e,i=!1){const r=this.getBrowserName().toLowerCase();let n=e.toLowerCase();const s=D.getBrowserTypeByAlias(n);return i&&s&&(n=s.toLowerCase()),n===r}compareVersion(e){let i=[0],r=e,n=!1;const s=this.getBrowserVersion();if(typeof s=="string")return e[0]===">"||e[0]==="<"?(r=e.substr(1),e[1]==="="?(n=!0,r=e.substr(2)):i=[],e[0]===">"?i.push(1):i.push(-1)):e[0]==="="?r=e.substr(1):e[0]==="~"&&(n=!0,r=e.substr(1)),i.indexOf(D.compareVersions(s,r,n))>-1}isOS(e){return this.getOSName(!0)===String(e).toLowerCase()}isPlatform(e){return this.getPlatformType(!0)===String(e).toLowerCase()}isEngine(e){return this.getEngineName(!0)===String(e).toLowerCase()}is(e,i=!1){return this.isBrowser(e,i)||this.isOS(e)||this.isPlatform(e)}some(e=[]){return e.some(i=>this.is(i))}}/*!
2
2
  * Bowser - a browser detector
3
3
  * https://github.com/lancedikson/bowser
4
4
  * MIT License | (c) Dustin Diaz 2012-2015
5
5
  * MIT License | (c) Denis Demchenko 2015-2019
6
- */class bp{static getParser(e,i=!1){if(typeof e!="string")throw new Error("UserAgent should be a string");return new kp(e,i)}static parse(e){return new kp(e).getResult()}static get BROWSER_MAP(){return Tp}static get ENGINE_MAP(){return dr}static get OS_MAP(){return vt}static get PLATFORMS_MAP(){return Be}}function Rl(t){let e=typeof t;if(e=="object"){if(Array.isArray(t))return"array";if(t===null)return"null"}return e}function jy(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}let Gi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),nc=[];for(let t=0;t<Gi.length;t++)nc[Gi[t].charCodeAt(0)]=t;nc["-".charCodeAt(0)]=Gi.indexOf("+"),nc["_".charCodeAt(0)]=Gi.indexOf("/");function Hy(t){let e=t.length*3/4;t[t.length-2]=="="?e-=2:t[t.length-1]=="="&&(e-=1);let i=new Uint8Array(e),r=0,n=0,s,o=0;for(let c=0;c<t.length;c++){if(s=nc[t.charCodeAt(c)],s===void 0)switch(t[c]){case"=":n=0;case`
7
- `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(n){case 0:o=s,n=1;break;case 1:i[r++]=o<<2|(s&48)>>4,o=s,n=2;break;case 2:i[r++]=(o&15)<<4|(s&60)>>2,o=s,n=3;break;case 3:i[r++]=(o&3)<<6|s,n=0;break}}if(n==1)throw Error("invalid base64 string.");return i.subarray(0,r)}function qy(t){let e="",i=0,r,n=0;for(let s=0;s<t.length;s++)switch(r=t[s],i){case 0:e+=Gi[r>>2],n=(r&3)<<4,i=1;break;case 1:e+=Gi[n|r>>4],n=(r&15)<<2,i=2;break;case 2:e+=Gi[n|r>>6],e+=Gi[r&63],i=0;break}return i&&(e+=Gi[n],e+="=",i==1&&(e+="=")),e}var sc;(function(t){t.symbol=Symbol.for("protobuf-ts/unknown"),t.onRead=(i,r,n,s,o)=>{(e(r)?r[t.symbol]:r[t.symbol]=[]).push({no:n,wireType:s,data:o})},t.onWrite=(i,r,n)=>{for(let{no:s,wireType:o,data:c}of t.list(r))n.tag(s,o).raw(c)},t.list=(i,r)=>{if(e(i)){let n=i[t.symbol];return r?n.filter(s=>s.no==r):n}return[]},t.last=(i,r)=>t.list(i,r).slice(-1)[0];const e=i=>i&&Array.isArray(i[t.symbol])})(sc||(sc={}));var We;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(We||(We={}));function Gy(){let t=0,e=0;for(let r=0;r<28;r+=7){let n=this.buf[this.pos++];if(t|=(n&127)<<r,(n&128)==0)return this.assertBounds(),[t,e]}let i=this.buf[this.pos++];if(t|=(i&15)<<28,e=(i&112)>>4,(i&128)==0)return this.assertBounds(),[t,e];for(let r=3;r<=31;r+=7){let n=this.buf[this.pos++];if(e|=(n&127)<<r,(n&128)==0)return this.assertBounds(),[t,e]}throw new Error("invalid varint")}function Ml(t,e,i){for(let s=0;s<28;s=s+7){const o=t>>>s,c=!(o>>>7==0&&e==0),d=(c?o|128:o)&255;if(i.push(d),!c)return}const r=t>>>28&15|(e&7)<<4,n=e>>3!=0;if(i.push((n?r|128:r)&255),!!n){for(let s=3;s<31;s=s+7){const o=e>>>s,c=o>>>7!=0,d=(c?o|128:o)&255;if(i.push(d),!c)return}i.push(e>>>31&1)}}const ac=(1<<16)*(1<<16);function _p(t){let e=t[0]=="-";e&&(t=t.slice(1));const i=1e6;let r=0,n=0;function s(o,c){const d=Number(t.slice(o,c));n*=i,r=r*i+d,r>=ac&&(n=n+(r/ac|0),r=r%ac)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),[e,r,n]}function Al(t,e){if(e>>>0<=2097151)return""+(ac*e+(t>>>0));let i=t&16777215,r=(t>>>24|e<<8)>>>0&16777215,n=e>>16&65535,s=i+r*6777216+n*6710656,o=r+n*8147497,c=n*2,d=1e7;s>=d&&(o+=Math.floor(s/d),s%=d),o>=d&&(c+=Math.floor(o/d),o%=d);function h(p,g){let y=p?String(p):"";return g?"0000000".slice(y.length)+y:y}return h(c,0)+h(o,c)+h(s,1)}function wp(t,e){if(t>=0){for(;t>127;)e.push(t&127|128),t=t>>>7;e.push(t)}else{for(let i=0;i<9;i++)e.push(t&127|128),t=t>>7;e.push(1)}}function $y(){let t=this.buf[this.pos++],e=t&127;if((t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<7,(t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<14,(t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<21,(t&128)==0)return this.assertBounds(),e;t=this.buf[this.pos++],e|=(t&15)<<28;for(let i=5;(t&128)!==0&&i<10;i++)t=this.buf[this.pos++];if((t&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}let ye;function Jy(){const t=new DataView(new ArrayBuffer(8));ye=globalThis.BigInt!==void 0&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"?{MIN:BigInt("-9223372036854775808"),MAX:BigInt("9223372036854775807"),UMIN:BigInt("0"),UMAX:BigInt("18446744073709551615"),C:BigInt,V:t}:void 0}Jy();function Ip(t){if(!t)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}const Cp=/^-?[0-9]+$/,oc=4294967296,cc=2147483648;class Pp{constructor(e,i){this.lo=e|0,this.hi=i|0}isZero(){return this.lo==0&&this.hi==0}toNumber(){let e=this.hi*oc+(this.lo>>>0);if(!Number.isSafeInteger(e))throw new Error("cannot convert to safe number");return e}}class dt extends Pp{static from(e){if(ye)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=ye.C(e);case"number":if(e===0)return this.ZERO;e=ye.C(e);case"bigint":if(!e)return this.ZERO;if(e<ye.UMIN)throw new Error("signed value for ulong");if(e>ye.UMAX)throw new Error("ulong too large");return ye.V.setBigUint64(0,e,!0),new dt(ye.V.getInt32(0,!0),ye.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!Cp.test(e))throw new Error("string is no integer");let[i,r,n]=_p(e);if(i)throw new Error("signed value for ulong");return new dt(r,n);case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");if(e<0)throw new Error("signed value for ulong");return new dt(e,e/oc)}throw new Error("unknown value "+typeof e)}toString(){return ye?this.toBigInt().toString():Al(this.lo,this.hi)}toBigInt(){return Ip(ye),ye.V.setInt32(0,this.lo,!0),ye.V.setInt32(4,this.hi,!0),ye.V.getBigUint64(0,!0)}}dt.ZERO=new dt(0,0);class Te extends Pp{static from(e){if(ye)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=ye.C(e);case"number":if(e===0)return this.ZERO;e=ye.C(e);case"bigint":if(!e)return this.ZERO;if(e<ye.MIN)throw new Error("signed long too small");if(e>ye.MAX)throw new Error("signed long too large");return ye.V.setBigInt64(0,e,!0),new Te(ye.V.getInt32(0,!0),ye.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!Cp.test(e))throw new Error("string is no integer");let[i,r,n]=_p(e);if(i){if(n>cc||n==cc&&r!=0)throw new Error("signed long too small")}else if(n>=cc)throw new Error("signed long too large");let s=new Te(r,n);return i?s.negate():s;case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");return e>0?new Te(e,e/oc):new Te(-e,-e/oc).negate()}throw new Error("unknown value "+typeof e)}isNegative(){return(this.hi&cc)!==0}negate(){let e=~this.hi,i=this.lo;return i?i=~i+1:e+=1,new Te(i,e)}toString(){if(ye)return this.toBigInt().toString();if(this.isNegative()){let e=this.negate();return"-"+Al(e.lo,e.hi)}return Al(this.lo,this.hi)}toBigInt(){return Ip(ye),ye.V.setInt32(0,this.lo,!0),ye.V.setInt32(4,this.hi,!0),ye.V.getBigInt64(0,!0)}}Te.ZERO=new Te(0,0);const Rp={readUnknownField:!0,readerFactory:t=>new zy(t)};function Ky(t){return t?Object.assign(Object.assign({},Rp),t):Rp}class zy{constructor(e,i){this.varint64=Gy,this.uint32=$y,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=i!=null?i:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0})}tag(){let e=this.uint32(),i=e>>>3,r=e&7;if(i<=0||r<0||r>5)throw new Error("illegal tag: field no "+i+" wire type "+r);return[i,r]}skip(e){let i=this.pos;switch(e){case We.Varint:for(;this.buf[this.pos++]&128;);break;case We.Bit64:this.pos+=4;case We.Bit32:this.pos+=4;break;case We.LengthDelimited:let r=this.uint32();this.pos+=r;break;case We.StartGroup:let n;for(;(n=this.tag()[1])!==We.EndGroup;)this.skip(n);break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(i,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return new Te(...this.varint64())}uint64(){return new dt(...this.varint64())}sint64(){let[e,i]=this.varint64(),r=-(e&1);return e=(e>>>1|(i&1)<<31)^r,i=i>>>1^r,new Te(e,i)}bool(){let[e,i]=this.varint64();return e!==0||i!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return new dt(this.sfixed32(),this.sfixed32())}sfixed64(){return new Te(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),i=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(i,i+e)}string(){return this.textDecoder.decode(this.bytes())}}function ce(t,e){if(!t)throw new Error(e)}const Yy=34028234663852886e22,Qy=-34028234663852886e22,Xy=4294967295,Zy=2147483647,eS=-2147483648;function Ys(t){if(typeof t!="number")throw new Error("invalid int 32: "+typeof t);if(!Number.isInteger(t)||t>Zy||t<eS)throw new Error("invalid int 32: "+t)}function dc(t){if(typeof t!="number")throw new Error("invalid uint 32: "+typeof t);if(!Number.isInteger(t)||t>Xy||t<0)throw new Error("invalid uint 32: "+t)}function Dl(t){if(typeof t!="number")throw new Error("invalid float 32: "+typeof t);if(!!Number.isFinite(t)&&(t>Yy||t<Qy))throw new Error("invalid float 32: "+t)}const Mp={writeUnknownFields:!0,writerFactory:()=>new iS};function tS(t){return t?Object.assign(Object.assign({},Mp),t):Mp}class iS{constructor(e){this.stack=[],this.textEncoder=e!=null?e:new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let n=0;n<this.chunks.length;n++)e+=this.chunks[n].length;let i=new Uint8Array(e),r=0;for(let n=0;n<this.chunks.length;n++)i.set(this.chunks[n],r),r+=this.chunks[n].length;return this.chunks=[],i}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),i=this.stack.pop();if(!i)throw new Error("invalid state, fork stack empty");return this.chunks=i.chunks,this.buf=i.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,i){return this.uint32((e<<3|i)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(dc(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return Ys(e),wp(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let i=this.textEncoder.encode(e);return this.uint32(i.byteLength),this.raw(i)}float(e){Dl(e);let i=new Uint8Array(4);return new DataView(i.buffer).setFloat32(0,e,!0),this.raw(i)}double(e){let i=new Uint8Array(8);return new DataView(i.buffer).setFloat64(0,e,!0),this.raw(i)}fixed32(e){dc(e);let i=new Uint8Array(4);return new DataView(i.buffer).setUint32(0,e,!0),this.raw(i)}sfixed32(e){Ys(e);let i=new Uint8Array(4);return new DataView(i.buffer).setInt32(0,e,!0),this.raw(i)}sint32(e){return Ys(e),e=(e<<1^e>>31)>>>0,wp(e,this.buf),this}sfixed64(e){let i=new Uint8Array(8),r=new DataView(i.buffer),n=Te.from(e);return r.setInt32(0,n.lo,!0),r.setInt32(4,n.hi,!0),this.raw(i)}fixed64(e){let i=new Uint8Array(8),r=new DataView(i.buffer),n=dt.from(e);return r.setInt32(0,n.lo,!0),r.setInt32(4,n.hi,!0),this.raw(i)}int64(e){let i=Te.from(e);return Ml(i.lo,i.hi,this.buf),this}sint64(e){let i=Te.from(e),r=i.hi>>31,n=i.lo<<1^r,s=(i.hi<<1|i.lo>>>31)^r;return Ml(n,s,this.buf),this}uint64(e){let i=dt.from(e);return Ml(i.lo,i.hi,this.buf),this}}const Ap={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0},Dp={ignoreUnknownFields:!1};function rS(t){return t?Object.assign(Object.assign({},Dp),t):Dp}function nS(t){return t?Object.assign(Object.assign({},Ap),t):Ap}const Op=Symbol.for("protobuf-ts/message-type");function Np(t){let e=!1;const i=[];for(let r=0;r<t.length;r++){let n=t.charAt(r);n=="_"?e=!0:/\d/.test(n)?(i.push(n),e=!0):e?(i.push(n.toUpperCase()),e=!1):r==0?i.push(n.toLowerCase()):i.push(n)}return i.join("")}var A;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(A||(A={}));var Ai;(function(t){t[t.BIGINT=0]="BIGINT",t[t.STRING=1]="STRING",t[t.NUMBER=2]="NUMBER"})(Ai||(Ai={}));var lc;(function(t){t[t.NO=0]="NO",t[t.PACKED=1]="PACKED",t[t.UNPACKED=2]="UNPACKED"})(lc||(lc={}));function sS(t){var e,i,r,n;return t.localName=(e=t.localName)!==null&&e!==void 0?e:Np(t.name),t.jsonName=(i=t.jsonName)!==null&&i!==void 0?i:Np(t.name),t.repeat=(r=t.repeat)!==null&&r!==void 0?r:lc.NO,t.opt=(n=t.opt)!==null&&n!==void 0?n:t.repeat||t.oneof?!1:t.kind=="message",t}function aS(t){if(typeof t!="object"||t===null||!t.hasOwnProperty("oneofKind"))return!1;switch(typeof t.oneofKind){case"string":return t[t.oneofKind]===void 0?!1:Object.keys(t).length==2;case"undefined":return Object.keys(t).length==1;default:return!1}}class oS{constructor(e){var i;this.fields=(i=e.fields)!==null&&i!==void 0?i:[]}prepare(){if(this.data)return;const e=[],i=[],r=[];for(let n of this.fields)if(n.oneof)r.includes(n.oneof)||(r.push(n.oneof),e.push(n.oneof),i.push(n.oneof));else switch(i.push(n.localName),n.kind){case"scalar":case"enum":(!n.opt||n.repeat)&&e.push(n.localName);break;case"message":n.repeat&&e.push(n.localName);break;case"map":e.push(n.localName);break}this.data={req:e,known:i,oneofs:Object.values(r)}}is(e,i,r=!1){if(i<0)return!0;if(e==null||typeof e!="object")return!1;this.prepare();let n=Object.keys(e),s=this.data;if(n.length<s.req.length||s.req.some(o=>!n.includes(o))||!r&&n.some(o=>!s.known.includes(o)))return!1;if(i<1)return!0;for(const o of s.oneofs){const c=e[o];if(!aS(c))return!1;if(c.oneofKind===void 0)continue;const d=this.fields.find(h=>h.localName===c.oneofKind);if(!d||!this.field(c[c.oneofKind],d,r,i))return!1}for(const o of this.fields)if(o.oneof===void 0&&!this.field(e[o.localName],o,r,i))return!1;return!0}field(e,i,r,n){let s=i.repeat;switch(i.kind){case"scalar":return e===void 0?i.opt:s?this.scalars(e,i.T,n,i.L):this.scalar(e,i.T,i.L);case"enum":return e===void 0?i.opt:s?this.scalars(e,A.INT32,n):this.scalar(e,A.INT32);case"message":return e===void 0?!0:s?this.messages(e,i.T(),r,n):this.message(e,i.T(),r,n);case"map":if(typeof e!="object"||e===null)return!1;if(n<2)return!0;if(!this.mapKeys(e,i.K,n))return!1;switch(i.V.kind){case"scalar":return this.scalars(Object.values(e),i.V.T,n,i.V.L);case"enum":return this.scalars(Object.values(e),A.INT32,n);case"message":return this.messages(Object.values(e),i.V.T(),r,n)}break}return!0}message(e,i,r,n){return r?i.isAssignable(e,n):i.is(e,n)}messages(e,i,r,n){if(!Array.isArray(e))return!1;if(n<2)return!0;if(r){for(let s=0;s<e.length&&s<n;s++)if(!i.isAssignable(e[s],n-1))return!1}else for(let s=0;s<e.length&&s<n;s++)if(!i.is(e[s],n-1))return!1;return!0}scalar(e,i,r){let n=typeof e;switch(i){case A.UINT64:case A.FIXED64:case A.INT64:case A.SFIXED64:case A.SINT64:switch(r){case Ai.BIGINT:return n=="bigint";case Ai.NUMBER:return n=="number"&&!isNaN(e);default:return n=="string"}case A.BOOL:return n=="boolean";case A.STRING:return n=="string";case A.BYTES:return e instanceof Uint8Array;case A.DOUBLE:case A.FLOAT:return n=="number"&&!isNaN(e);default:return n=="number"&&Number.isInteger(e)}}scalars(e,i,r,n){if(!Array.isArray(e))return!1;if(r<2)return!0;if(Array.isArray(e)){for(let s=0;s<e.length&&s<r;s++)if(!this.scalar(e[s],i,n))return!1}return!0}mapKeys(e,i,r){let n=Object.keys(e);switch(i){case A.INT32:case A.FIXED32:case A.SFIXED32:case A.SINT32:case A.UINT32:return this.scalars(n.slice(0,r).map(s=>parseInt(s)),i,r);case A.BOOL:return this.scalars(n.slice(0,r).map(s=>s=="true"?!0:s=="false"?!1:s),i,r);default:return this.scalars(n,i,r,Ai.STRING)}}}function di(t,e){switch(e){case Ai.BIGINT:return t.toBigInt();case Ai.NUMBER:return t.toNumber();default:return t.toString()}}class cS{constructor(e){this.info=e}prepare(){var e;if(this.fMap===void 0){this.fMap={};const i=(e=this.info.fields)!==null&&e!==void 0?e:[];for(const r of i)this.fMap[r.name]=r,this.fMap[r.jsonName]=r,this.fMap[r.localName]=r}}assert(e,i,r){if(!e){let n=Rl(r);throw(n=="number"||n=="boolean")&&(n=r.toString()),new Error(`Cannot parse JSON ${n} for ${this.info.typeName}#${i}`)}}read(e,i,r){this.prepare();const n=[];for(const[s,o]of Object.entries(e)){const c=this.fMap[s];if(!c){if(!r.ignoreUnknownFields)throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${s}`);continue}const d=c.localName;let h;if(c.oneof){if(o===null&&(c.kind!=="enum"||c.T()[0]!=="google.protobuf.NullValue"))continue;if(n.includes(c.oneof))throw new Error(`Multiple members of the oneof group "${c.oneof}" of ${this.info.typeName} are present in JSON.`);n.push(c.oneof),h=i[c.oneof]={oneofKind:d}}else h=i;if(c.kind=="map"){if(o===null)continue;this.assert(jy(o),c.name,o);const p=h[d];for(const[g,y]of Object.entries(o)){this.assert(y!==null,c.name+" map value",null);let T;switch(c.V.kind){case"message":T=c.V.T().internalJsonRead(y,r);break;case"enum":if(T=this.enum(c.V.T(),y,c.name,r.ignoreUnknownFields),T===!1)continue;break;case"scalar":T=this.scalar(y,c.V.T,c.V.L,c.name);break}this.assert(T!==void 0,c.name+" map value",y);let b=g;c.K==A.BOOL&&(b=b=="true"?!0:b=="false"?!1:b),b=this.scalar(b,c.K,Ai.STRING,c.name).toString(),p[b]=T}}else if(c.repeat){if(o===null)continue;this.assert(Array.isArray(o),c.name,o);const p=h[d];for(const g of o){this.assert(g!==null,c.name,null);let y;switch(c.kind){case"message":y=c.T().internalJsonRead(g,r);break;case"enum":if(y=this.enum(c.T(),g,c.name,r.ignoreUnknownFields),y===!1)continue;break;case"scalar":y=this.scalar(g,c.T,c.L,c.name);break}this.assert(y!==void 0,c.name,o),p.push(y)}}else switch(c.kind){case"message":if(o===null&&c.T().typeName!="google.protobuf.Value"){this.assert(c.oneof===void 0,c.name+" (oneof member)",null);continue}h[d]=c.T().internalJsonRead(o,r,h[d]);break;case"enum":if(o===null)continue;let p=this.enum(c.T(),o,c.name,r.ignoreUnknownFields);if(p===!1)continue;h[d]=p;break;case"scalar":if(o===null)continue;h[d]=this.scalar(o,c.T,c.L,c.name);break}}}enum(e,i,r,n){if(e[0]=="google.protobuf.NullValue"&&ce(i===null||i==="NULL_VALUE",`Unable to parse field ${this.info.typeName}#${r}, enum ${e[0]} only accepts null.`),i===null)return 0;switch(typeof i){case"number":return ce(Number.isInteger(i),`Unable to parse field ${this.info.typeName}#${r}, enum can only be integral number, got ${i}.`),i;case"string":let s=i;e[2]&&i.substring(0,e[2].length)===e[2]&&(s=i.substring(e[2].length));let o=e[1][s];return typeof o=="undefined"&&n?!1:(ce(typeof o=="number",`Unable to parse field ${this.info.typeName}#${r}, enum ${e[0]} has no value for "${i}".`),o)}ce(!1,`Unable to parse field ${this.info.typeName}#${r}, cannot parse enum value from ${typeof i}".`)}scalar(e,i,r,n){let s;try{switch(i){case A.DOUBLE:case A.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""){s="empty string";break}if(typeof e=="string"&&e.trim().length!==e.length){s="extra whitespace";break}if(typeof e!="string"&&typeof e!="number")break;let o=Number(e);if(Number.isNaN(o)){s="not a number";break}if(!Number.isFinite(o)){s="too large or small";break}return i==A.FLOAT&&Dl(o),o;case A.INT32:case A.FIXED32:case A.SFIXED32:case A.SINT32:case A.UINT32:if(e===null)return 0;let c;if(typeof e=="number"?c=e:e===""?s="empty string":typeof e=="string"&&(e.trim().length!==e.length?s="extra whitespace":c=Number(e)),c===void 0)break;return i==A.UINT32?dc(c):Ys(c),c;case A.INT64:case A.SFIXED64:case A.SINT64:if(e===null)return di(Te.ZERO,r);if(typeof e!="number"&&typeof e!="string")break;return di(Te.from(e),r);case A.FIXED64:case A.UINT64:if(e===null)return di(dt.ZERO,r);if(typeof e!="number"&&typeof e!="string")break;return di(dt.from(e),r);case A.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case A.STRING:if(e===null)return"";if(typeof e!="string"){s="extra whitespace";break}try{encodeURIComponent(e)}catch(d){d="invalid UTF8";break}return e;case A.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return Hy(e)}}catch(o){s=o.message}this.assert(!1,n+(s?" - "+s:""),e)}}class dS{constructor(e){var i;this.fields=(i=e.fields)!==null&&i!==void 0?i:[]}write(e,i){const r={},n=e;for(const s of this.fields){if(!s.oneof){let h=this.field(s,n[s.localName],i);h!==void 0&&(r[i.useProtoFieldName?s.name:s.jsonName]=h);continue}const o=n[s.oneof];if(o.oneofKind!==s.localName)continue;const c=s.kind=="scalar"||s.kind=="enum"?Object.assign(Object.assign({},i),{emitDefaultValues:!0}):i;let d=this.field(s,o[s.localName],c);ce(d!==void 0),r[i.useProtoFieldName?s.name:s.jsonName]=d}return r}field(e,i,r){let n;if(e.kind=="map"){ce(typeof i=="object"&&i!==null);const s={};switch(e.V.kind){case"scalar":for(const[d,h]of Object.entries(i)){const p=this.scalar(e.V.T,h,e.name,!1,!0);ce(p!==void 0),s[d.toString()]=p}break;case"message":const o=e.V.T();for(const[d,h]of Object.entries(i)){const p=this.message(o,h,e.name,r);ce(p!==void 0),s[d.toString()]=p}break;case"enum":const c=e.V.T();for(const[d,h]of Object.entries(i)){ce(h===void 0||typeof h=="number");const p=this.enum(c,h,e.name,!1,!0,r.enumAsInteger);ce(p!==void 0),s[d.toString()]=p}break}(r.emitDefaultValues||Object.keys(s).length>0)&&(n=s)}else if(e.repeat){ce(Array.isArray(i));const s=[];switch(e.kind){case"scalar":for(let d=0;d<i.length;d++){const h=this.scalar(e.T,i[d],e.name,e.opt,!0);ce(h!==void 0),s.push(h)}break;case"enum":const o=e.T();for(let d=0;d<i.length;d++){ce(i[d]===void 0||typeof i[d]=="number");const h=this.enum(o,i[d],e.name,e.opt,!0,r.enumAsInteger);ce(h!==void 0),s.push(h)}break;case"message":const c=e.T();for(let d=0;d<i.length;d++){const h=this.message(c,i[d],e.name,r);ce(h!==void 0),s.push(h)}break}(r.emitDefaultValues||s.length>0||r.emitDefaultValues)&&(n=s)}else switch(e.kind){case"scalar":n=this.scalar(e.T,i,e.name,e.opt,r.emitDefaultValues);break;case"enum":n=this.enum(e.T(),i,e.name,e.opt,r.emitDefaultValues,r.enumAsInteger);break;case"message":n=this.message(e.T(),i,e.name,r);break}return n}enum(e,i,r,n,s,o){if(e[0]=="google.protobuf.NullValue")return!s&&!n?void 0:null;if(i===void 0){ce(n);return}if(!(i===0&&!s&&!n))return ce(typeof i=="number"),ce(Number.isInteger(i)),o||!e[1].hasOwnProperty(i)?i:e[2]?e[2]+e[1][i]:e[1][i]}message(e,i,r,n){return i===void 0?n.emitDefaultValues?null:void 0:e.internalJsonWrite(i,n)}scalar(e,i,r,n,s){if(i===void 0){ce(n);return}const o=s||n;switch(e){case A.INT32:case A.SFIXED32:case A.SINT32:return i===0?o?0:void 0:(Ys(i),i);case A.FIXED32:case A.UINT32:return i===0?o?0:void 0:(dc(i),i);case A.FLOAT:Dl(i);case A.DOUBLE:return i===0?o?0:void 0:(ce(typeof i=="number"),Number.isNaN(i)?"NaN":i===Number.POSITIVE_INFINITY?"Infinity":i===Number.NEGATIVE_INFINITY?"-Infinity":i);case A.STRING:return i===""?o?"":void 0:(ce(typeof i=="string"),i);case A.BOOL:return i===!1?o?!1:void 0:(ce(typeof i=="boolean"),i);case A.UINT64:case A.FIXED64:ce(typeof i=="number"||typeof i=="string"||typeof i=="bigint");let c=dt.from(i);return c.isZero()&&!o?void 0:c.toString();case A.INT64:case A.SFIXED64:case A.SINT64:ce(typeof i=="number"||typeof i=="string"||typeof i=="bigint");let d=Te.from(i);return d.isZero()&&!o?void 0:d.toString();case A.BYTES:return ce(i instanceof Uint8Array),i.byteLength?qy(i):o?"":void 0}}}function Ol(t,e=Ai.STRING){switch(t){case A.BOOL:return!1;case A.UINT64:case A.FIXED64:return di(dt.ZERO,e);case A.INT64:case A.SFIXED64:case A.SINT64:return di(Te.ZERO,e);case A.DOUBLE:case A.FLOAT:return 0;case A.BYTES:return new Uint8Array(0);case A.STRING:return"";default:return 0}}class lS{constructor(e){this.info=e}prepare(){var e;if(!this.fieldNoToField){const i=(e=this.info.fields)!==null&&e!==void 0?e:[];this.fieldNoToField=new Map(i.map(r=>[r.no,r]))}}read(e,i,r,n){this.prepare();const s=n===void 0?e.len:e.pos+n;for(;e.pos<s;){const[o,c]=e.tag(),d=this.fieldNoToField.get(o);if(!d){let y=r.readUnknownField;if(y=="throw")throw new Error(`Unknown field ${o} (wire type ${c}) for ${this.info.typeName}`);let T=e.skip(c);y!==!1&&(y===!0?sc.onRead:y)(this.info.typeName,i,o,c,T);continue}let h=i,p=d.repeat,g=d.localName;switch(d.oneof&&(h=h[d.oneof],h.oneofKind!==g&&(h=i[d.oneof]={oneofKind:g})),d.kind){case"scalar":case"enum":let y=d.kind=="enum"?A.INT32:d.T,T=d.kind=="scalar"?d.L:void 0;if(p){let R=h[g];if(c==We.LengthDelimited&&y!=A.STRING&&y!=A.BYTES){let x=e.uint32()+e.pos;for(;e.pos<x;)R.push(this.scalar(e,y,T))}else R.push(this.scalar(e,y,T))}else h[g]=this.scalar(e,y,T);break;case"message":if(p){let R=h[g],x=d.T().internalBinaryRead(e,e.uint32(),r);R.push(x)}else h[g]=d.T().internalBinaryRead(e,e.uint32(),r,h[g]);break;case"map":let[b,O]=this.mapEntry(d,e,r);h[g][b]=O;break}}}mapEntry(e,i,r){let n=i.uint32(),s=i.pos+n,o,c;for(;i.pos<s;){let[d,h]=i.tag();switch(d){case 1:e.K==A.BOOL?o=i.bool().toString():o=this.scalar(i,e.K,Ai.STRING);break;case 2:switch(e.V.kind){case"scalar":c=this.scalar(i,e.V.T,e.V.L);break;case"enum":c=i.int32();break;case"message":c=e.V.T().internalBinaryRead(i,i.uint32(),r);break}break;default:throw new Error(`Unknown field ${d} (wire type ${h}) in map entry for ${this.info.typeName}#${e.name}`)}}if(o===void 0){let d=Ol(e.K);o=e.K==A.BOOL?d.toString():d}if(c===void 0)switch(e.V.kind){case"scalar":c=Ol(e.V.T,e.V.L);break;case"enum":c=0;break;case"message":c=e.V.T().create();break}return[o,c]}scalar(e,i,r){switch(i){case A.INT32:return e.int32();case A.STRING:return e.string();case A.BOOL:return e.bool();case A.DOUBLE:return e.double();case A.FLOAT:return e.float();case A.INT64:return di(e.int64(),r);case A.UINT64:return di(e.uint64(),r);case A.FIXED64:return di(e.fixed64(),r);case A.FIXED32:return e.fixed32();case A.BYTES:return e.bytes();case A.UINT32:return e.uint32();case A.SFIXED32:return e.sfixed32();case A.SFIXED64:return di(e.sfixed64(),r);case A.SINT32:return e.sint32();case A.SINT64:return di(e.sint64(),r)}}}class uS{constructor(e){this.info=e}prepare(){if(!this.fields){const e=this.info.fields?this.info.fields.concat():[];this.fields=e.sort((i,r)=>i.no-r.no)}}write(e,i,r){this.prepare();for(const s of this.fields){let o,c,d=s.repeat,h=s.localName;if(s.oneof){const p=e[s.oneof];if(p.oneofKind!==h)continue;o=p[h],c=!0}else o=e[h],c=!1;switch(s.kind){case"scalar":case"enum":let p=s.kind=="enum"?A.INT32:s.T;if(d)if(ce(Array.isArray(o)),d==lc.PACKED)this.packed(i,p,s.no,o);else for(const g of o)this.scalar(i,p,s.no,g,!0);else o===void 0?ce(s.opt):this.scalar(i,p,s.no,o,c||s.opt);break;case"message":if(d){ce(Array.isArray(o));for(const g of o)this.message(i,r,s.T(),s.no,g)}else this.message(i,r,s.T(),s.no,o);break;case"map":ce(typeof o=="object"&&o!==null);for(const[g,y]of Object.entries(o))this.mapEntry(i,r,s,g,y);break}}let n=r.writeUnknownFields;n!==!1&&(n===!0?sc.onWrite:n)(this.info.typeName,e,i)}mapEntry(e,i,r,n,s){e.tag(r.no,We.LengthDelimited),e.fork();let o=n;switch(r.K){case A.INT32:case A.FIXED32:case A.UINT32:case A.SFIXED32:case A.SINT32:o=Number.parseInt(n);break;case A.BOOL:ce(n=="true"||n=="false"),o=n=="true";break}switch(this.scalar(e,r.K,1,o,!0),r.V.kind){case"scalar":this.scalar(e,r.V.T,2,s,!0);break;case"enum":this.scalar(e,A.INT32,2,s,!0);break;case"message":this.message(e,i,r.V.T(),2,s);break}e.join()}message(e,i,r,n,s){s!==void 0&&(r.internalBinaryWrite(s,e.tag(n,We.LengthDelimited).fork(),i),e.join())}scalar(e,i,r,n,s){let[o,c,d]=this.scalarInfo(i,n);(!d||s)&&(e.tag(r,o),e[c](n))}packed(e,i,r,n){if(!n.length)return;ce(i!==A.BYTES&&i!==A.STRING),e.tag(r,We.LengthDelimited),e.fork();let[,s]=this.scalarInfo(i);for(let o=0;o<n.length;o++)e[s](n[o]);e.join()}scalarInfo(e,i){let r=We.Varint,n,s=i===void 0,o=i===0;switch(e){case A.INT32:n="int32";break;case A.STRING:o=s||!i.length,r=We.LengthDelimited,n="string";break;case A.BOOL:o=i===!1,n="bool";break;case A.UINT32:n="uint32";break;case A.DOUBLE:r=We.Bit64,n="double";break;case A.FLOAT:r=We.Bit32,n="float";break;case A.INT64:o=s||Te.from(i).isZero(),n="int64";break;case A.UINT64:o=s||dt.from(i).isZero(),n="uint64";break;case A.FIXED64:o=s||dt.from(i).isZero(),r=We.Bit64,n="fixed64";break;case A.BYTES:o=s||!i.byteLength,r=We.LengthDelimited,n="bytes";break;case A.FIXED32:r=We.Bit32,n="fixed32";break;case A.SFIXED32:r=We.Bit32,n="sfixed32";break;case A.SFIXED64:o=s||Te.from(i).isZero(),r=We.Bit64,n="sfixed64";break;case A.SINT32:n="sint32";break;case A.SINT64:o=s||Te.from(i).isZero(),n="sint64";break}return[r,n,s||o]}}function hS(t){const e=t.messagePrototype?Object.create(t.messagePrototype):Object.defineProperty({},Op,{value:t});for(let i of t.fields){let r=i.localName;if(!i.opt)if(i.oneof)e[i.oneof]={oneofKind:void 0};else if(i.repeat)e[r]=[];else switch(i.kind){case"scalar":e[r]=Ol(i.T,i.L);break;case"enum":e[r]=0;break;case"map":e[r]={};break}}return e}function Nl(t,e,i){let r,n=i,s;for(let o of t.fields){let c=o.localName;if(o.oneof){const d=n[o.oneof];if((d==null?void 0:d.oneofKind)==null)continue;if(r=d[c],s=e[o.oneof],s.oneofKind=d.oneofKind,r==null){delete s[c];continue}}else if(r=n[c],s=e,r==null)continue;switch(o.repeat&&(s[c].length=r.length),o.kind){case"scalar":case"enum":if(o.repeat)for(let h=0;h<r.length;h++)s[c][h]=r[h];else s[c]=r;break;case"message":let d=o.T();if(o.repeat)for(let h=0;h<r.length;h++)s[c][h]=d.create(r[h]);else s[c]===void 0?s[c]=d.create(r):d.mergePartial(s[c],r);break;case"map":switch(o.V.kind){case"scalar":case"enum":Object.assign(s[c],r);break;case"message":let h=o.V.T();for(let p of Object.keys(r))s[c][p]=h.create(r[p]);break}break}}}function pS(t,e,i){if(e===i)return!0;if(!e||!i)return!1;for(let r of t.fields){let n=r.localName,s=r.oneof?e[r.oneof][n]:e[n],o=r.oneof?i[r.oneof][n]:i[n];switch(r.kind){case"enum":case"scalar":let c=r.kind=="enum"?A.INT32:r.T;if(!(r.repeat?Vp(c,s,o):Lp(c,s,o)))return!1;break;case"map":if(!(r.V.kind=="message"?xp(r.V.T(),uc(s),uc(o)):Vp(r.V.kind=="enum"?A.INT32:r.V.T,uc(s),uc(o))))return!1;break;case"message":let d=r.T();if(!(r.repeat?xp(d,s,o):d.equals(s,o)))return!1;break}}return!0}const uc=Object.values;function Lp(t,e,i){if(e===i)return!0;if(t!==A.BYTES)return!1;let r=e,n=i;if(r.length!==n.length)return!1;for(let s=0;s<r.length;s++)if(r[s]!=n[s])return!1;return!0}function Vp(t,e,i){if(e.length!==i.length)return!1;for(let r=0;r<e.length;r++)if(!Lp(t,e[r],i[r]))return!1;return!0}function xp(t,e,i){if(e.length!==i.length)return!1;for(let r=0;r<e.length;r++)if(!t.equals(e[r],i[r]))return!1;return!0}const mS=Object.getOwnPropertyDescriptors(Object.getPrototypeOf({}));class E{constructor(e,i,r){this.defaultCheckDepth=16,this.typeName=e,this.fields=i.map(sS),this.options=r!=null?r:{},this.messagePrototype=Object.create(null,Object.assign(Object.assign({},mS),{[Op]:{value:this}})),this.refTypeCheck=new oS(this),this.refJsonReader=new cS(this),this.refJsonWriter=new dS(this),this.refBinReader=new lS(this),this.refBinWriter=new uS(this)}create(e){let i=hS(this);return e!==void 0&&Nl(this,i,e),i}clone(e){let i=this.create();return Nl(this,i,e),i}equals(e,i){return pS(this,e,i)}is(e,i=this.defaultCheckDepth){return this.refTypeCheck.is(e,i,!1)}isAssignable(e,i=this.defaultCheckDepth){return this.refTypeCheck.is(e,i,!0)}mergePartial(e,i){Nl(this,e,i)}fromBinary(e,i){let r=Ky(i);return this.internalBinaryRead(r.readerFactory(e),e.byteLength,r)}fromJson(e,i){return this.internalJsonRead(e,rS(i))}fromJsonString(e,i){let r=JSON.parse(e);return this.fromJson(r,i)}toJson(e,i){return this.internalJsonWrite(e,nS(i))}toJsonString(e,i){var r;let n=this.toJson(e,i);return JSON.stringify(n,null,(r=i==null?void 0:i.prettySpaces)!==null&&r!==void 0?r:0)}toBinary(e,i){let r=tS(i);return this.internalBinaryWrite(e,r.writerFactory(),r).finish()}internalJsonRead(e,i,r){if(e!==null&&typeof e=="object"&&!Array.isArray(e)){let n=r!=null?r:this.create();return this.refJsonReader.read(e,n,i),n}throw new Error(`Unable to parse message ${this.typeName} from JSON ${Rl(e)}.`)}internalJsonWrite(e,i){return this.refJsonWriter.write(e,i)}internalBinaryWrite(e,i,r){return this.refBinWriter.write(e,i,r),i}internalBinaryRead(e,i,r,n){let s=n!=null?n:this.create();return this.refBinReader.read(e,s,r,i),s}}const gS=t=>(e,i)=>(t.set(e,i),i),Up=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,Fp=536870912,Bp=Fp*2,fS=(t,e)=>i=>{const r=e.get(i);let n=r===void 0?i.size:r<Bp?r+1:0;if(!i.has(n))return t(i,n);if(i.size<Fp){for(;i.has(n);)n=Math.floor(Math.random()*Bp);return t(i,n)}if(i.size>Up)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;i.has(n);)n=Math.floor(Math.random()*Up);return t(i,n)},Wp=new WeakMap,vS=gS(Wp),hc=fS(vS,Wp),yS=t=>t.method!==void 0&&t.method==="call",SS=t=>t.error===null&&typeof t.id=="number",pc=((t,e)=>{let i=null;return()=>{if(i!==null)return i;const r=new Blob([e],{type:"application/javascript; charset=utf-8"}),n=URL.createObjectURL(r);return i=t(n),setTimeout(()=>URL.revokeObjectURL(n)),i}})(t=>{const e=new Map([[0,()=>{}]]),i=new Map([[0,()=>{}]]),r=new Map,n=new Worker(t);return n.addEventListener("message",({data:h})=>{if(yS(h)){const{params:{timerId:p,timerType:g}}=h;if(g==="interval"){const y=e.get(p);if(typeof y=="number"){const T=r.get(y);if(T===void 0||T.timerId!==p||T.timerType!==g)throw new Error("The timer is in an undefined state.")}else if(typeof y!="undefined")y();else throw new Error("The timer is in an undefined state.")}else if(g==="timeout"){const y=i.get(p);if(typeof y=="number"){const T=r.get(y);if(T===void 0||T.timerId!==p||T.timerType!==g)throw new Error("The timer is in an undefined state.")}else if(typeof y!="undefined")y(),i.delete(p);else throw new Error("The timer is in an undefined state.")}}else if(SS(h)){const{id:p}=h,g=r.get(p);if(g===void 0)throw new Error("The timer is in an undefined state.");const{timerId:y,timerType:T}=g;r.delete(p),T==="interval"?e.delete(y):i.delete(y)}else{const{error:{message:p}}=h;throw new Error(p)}}),{clearInterval:h=>{const p=hc(r);r.set(p,{timerId:h,timerType:"interval"}),e.set(h,p),n.postMessage({id:p,method:"clear",params:{timerId:h,timerType:"interval"}})},clearTimeout:h=>{const p=hc(r);r.set(p,{timerId:h,timerType:"timeout"}),i.set(h,p),n.postMessage({id:p,method:"clear",params:{timerId:h,timerType:"timeout"}})},setInterval:(h,p=0)=>{const g=hc(e);return e.set(g,()=>{h(),typeof e.get(g)=="function"&&n.postMessage({id:null,method:"set",params:{delay:p,now:performance.now(),timerId:g,timerType:"interval"}})}),n.postMessage({id:null,method:"set",params:{delay:p,now:performance.now(),timerId:g,timerType:"interval"}}),g},setTimeout:(h,p=0)=>{const g=hc(i);return i.set(g,h),n.postMessage({id:null,method:"set",params:{delay:p,now:performance.now(),timerId:g,timerType:"timeout"}}),g}}},`(()=>{"use strict";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:"call",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener("message",(i=>{let{data:s}=i;try{if("clear"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;if("interval"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error('There is no interval scheduled with the given id "'.concat(t,'".'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if("timeout"!==i)throw new Error('The given type "'.concat(i,'" is not supported'));(e=>{const r=t.get(e);if(void 0===r)throw new Error('There is no timeout scheduled with the given id "'.concat(e,'".'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if("set"!==s.method)throw new Error('The given method "'.concat(s.method,'" is not supported'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if("interval"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,"interval"))})(i,a,n);else{if("timeout"!==d)throw new Error('The given type "'.concat(d,'" is not supported'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,"timeout"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();`),Hn=t=>pc().clearInterval(t),ES=t=>pc().clearTimeout(t),mc=(t,e)=>pc().setInterval(t,e);var TS=Object.freeze(Object.defineProperty({__proto__:null,clearInterval:Hn,clearTimeout:ES,setInterval:mc,setTimeout:(t,e)=>pc().setTimeout(t,e)},Symbol.toStringTag,{value:"Module"})),jp={},Ll={exports:{}},Hp=Ll.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(t){return t.encoding?"rtpmap:%d %s/%s/%s":t.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(t){return t.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(t){return t.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(t){return"extmap:%d"+(t.direction?"/%s":"%v")+(t["encrypt-uri"]?" %s":"%v")+" %s"+(t.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(t){return t.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(t){var e="candidate:%s %d %s %d %s %d typ %s";return e+=t.raddr!=null?" raddr %s rport %d":"%v%v",e+=t.tcptype!=null?" tcptype %s":"%v",t.generation!=null&&(e+=" generation %d"),e+=t["network-id"]!=null?" network-id %d":"%v",e+=t["network-cost"]!=null?" network-cost %d":"%v",e}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(t){var e="ssrc:%d";return t.attribute!=null&&(e+=" %s",t.value!=null&&(e+=":%s")),e}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(t){return t.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(t){return t.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(t){return"imageattr:%s %s %s"+(t.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(t){return"simulcast:%s %s"+(t.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(t){return"ts-refclk:%s"+(t.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(t){var e="mediaclk:";return e+=t.id!=null?"id=%s %s":"%v%s",e+=t.mediaClockValue!=null?"=%s":"",e+=t.rateNumerator!=null?" rate=%s":"",e+=t.rateDenominator!=null?"/%s":"",e}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(Hp).forEach(function(t){var e=Hp[t];e.forEach(function(i){i.reg||(i.reg=/(.*)/),i.format||(i.format="%s")})}),function(t){var e=function(c){return String(Number(c))===c?Number(c):c},i=function(c,d,h,p){if(p&&!h)d[p]=e(c[1]);else for(var g=0;g<h.length;g+=1)c[g+1]!=null&&(d[h[g]]=e(c[g+1]))},r=function(c,d,h){var p=c.name&&c.names;c.push&&!d[c.push]?d[c.push]=[]:p&&!d[c.name]&&(d[c.name]={});var g=c.push?{}:p?d[c.name]:d;i(h.match(c.reg),g,c.names,c.name),c.push&&d[c.push].push(g)},n=Ll.exports,s=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(c){var d={},h=[],p=d;return c.split(/(\r\n|\r|\n)/).filter(s).forEach(function(g){var y=g[0],T=g.slice(2);y==="m"&&(h.push({rtp:[],fmtp:[]}),p=h[h.length-1]);for(var b=0;b<(n[y]||[]).length;b+=1){var O=n[y][b];if(O.reg.test(T))return r(O,p,T)}}),d.media=h,d};var o=function(c,d){var h=d.split(/=(.+)/,2);return h.length===2?c[h[0]]=e(h[1]):h.length===1&&d.length>1&&(c[h[0]]=void 0),c};t.parseParams=function(c){return c.split(/;\s?/).reduce(o,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(c){return c.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(c){for(var d=[],h=c.split(" ").map(e),p=0;p<h.length;p+=3)d.push({component:h[p],ip:h[p+1],port:h[p+2]});return d},t.parseImageAttributes=function(c){return c.split(" ").map(function(d){return d.substring(1,d.length-1).split(",").reduce(o,{})})},t.parseSimulcastStreamList=function(c){return c.split(";").map(function(d){return d.split(",").map(function(h){var p,g=!1;return h[0]!=="~"?p=e(h):(p=e(h.substring(1,h.length)),g=!0),{scid:p,paused:g}})})}}(jp);var Vl=Ll.exports,kS=/%[sdv%]/g,bS=function(t){var e=1,i=arguments,r=i.length;return t.replace(kS,function(n){if(e>=r)return n;var s=i[e];switch(e+=1,n){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},Qs=function(t,e,i){var r=e.format instanceof Function?e.format(e.push?i:i[e.name]):e.format,n=[t+"="+r];if(e.names)for(var s=0;s<e.names.length;s+=1){var o=e.names[s];e.name?n.push(i[e.name][o]):n.push(i[e.names[s]])}else n.push(i[e.name]);return bS.apply(null,n)},_S=["v","o","s","i","u","e","p","c","b","t","r","z","a"],wS=["i","c","b","a"],IS=function(t,e){e=e||{},t.version==null&&(t.version=0),t.name==null&&(t.name=" "),t.media.forEach(function(s){s.payloads==null&&(s.payloads="")});var i=e.outerOrder||_S,r=e.innerOrder||wS,n=[];return i.forEach(function(s){Vl[s].forEach(function(o){o.name in t&&t[o.name]!=null?n.push(Qs(s,o,t)):o.push in t&&t[o.push]!=null&&t[o.push].forEach(function(c){n.push(Qs(s,o,c))})})}),t.media.forEach(function(s){n.push(Qs("m",Vl.m[0],s)),r.forEach(function(o){Vl[o].forEach(function(c){c.name in s&&s[c.name]!=null?n.push(Qs(o,c,s)):c.push in s&&s[c.push]!=null&&s[c.push].forEach(function(d){n.push(Qs(o,c,d))})})})}),n.join(`\r
6
+ */class kp{static getParser(e,i=!1){if(typeof e!="string")throw new Error("UserAgent should be a string");return new Tp(e,i)}static parse(e){return new Tp(e).getResult()}static get BROWSER_MAP(){return Ep}static get ENGINE_MAP(){return dr}static get OS_MAP(){return vt}static get PLATFORMS_MAP(){return Be}}function Rl(t){let e=typeof t;if(e=="object"){if(Array.isArray(t))return"array";if(t===null)return"null"}return e}function jy(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}let Gi="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),nc=[];for(let t=0;t<Gi.length;t++)nc[Gi[t].charCodeAt(0)]=t;nc["-".charCodeAt(0)]=Gi.indexOf("+"),nc["_".charCodeAt(0)]=Gi.indexOf("/");function Hy(t){let e=t.length*3/4;t[t.length-2]=="="?e-=2:t[t.length-1]=="="&&(e-=1);let i=new Uint8Array(e),r=0,n=0,s,o=0;for(let c=0;c<t.length;c++){if(s=nc[t.charCodeAt(c)],s===void 0)switch(t[c]){case"=":n=0;case`
7
+ `:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(n){case 0:o=s,n=1;break;case 1:i[r++]=o<<2|(s&48)>>4,o=s,n=2;break;case 2:i[r++]=(o&15)<<4|(s&60)>>2,o=s,n=3;break;case 3:i[r++]=(o&3)<<6|s,n=0;break}}if(n==1)throw Error("invalid base64 string.");return i.subarray(0,r)}function qy(t){let e="",i=0,r,n=0;for(let s=0;s<t.length;s++)switch(r=t[s],i){case 0:e+=Gi[r>>2],n=(r&3)<<4,i=1;break;case 1:e+=Gi[n|r>>4],n=(r&15)<<2,i=2;break;case 2:e+=Gi[n|r>>6],e+=Gi[r&63],i=0;break}return i&&(e+=Gi[n],e+="=",i==1&&(e+="=")),e}var sc;(function(t){t.symbol=Symbol.for("protobuf-ts/unknown"),t.onRead=(i,r,n,s,o)=>{(e(r)?r[t.symbol]:r[t.symbol]=[]).push({no:n,wireType:s,data:o})},t.onWrite=(i,r,n)=>{for(let{no:s,wireType:o,data:c}of t.list(r))n.tag(s,o).raw(c)},t.list=(i,r)=>{if(e(i)){let n=i[t.symbol];return r?n.filter(s=>s.no==r):n}return[]},t.last=(i,r)=>t.list(i,r).slice(-1)[0];const e=i=>i&&Array.isArray(i[t.symbol])})(sc||(sc={}));var We;(function(t){t[t.Varint=0]="Varint",t[t.Bit64=1]="Bit64",t[t.LengthDelimited=2]="LengthDelimited",t[t.StartGroup=3]="StartGroup",t[t.EndGroup=4]="EndGroup",t[t.Bit32=5]="Bit32"})(We||(We={}));function Gy(){let t=0,e=0;for(let r=0;r<28;r+=7){let n=this.buf[this.pos++];if(t|=(n&127)<<r,(n&128)==0)return this.assertBounds(),[t,e]}let i=this.buf[this.pos++];if(t|=(i&15)<<28,e=(i&112)>>4,(i&128)==0)return this.assertBounds(),[t,e];for(let r=3;r<=31;r+=7){let n=this.buf[this.pos++];if(e|=(n&127)<<r,(n&128)==0)return this.assertBounds(),[t,e]}throw new Error("invalid varint")}function Ml(t,e,i){for(let s=0;s<28;s=s+7){const o=t>>>s,c=!(o>>>7==0&&e==0),d=(c?o|128:o)&255;if(i.push(d),!c)return}const r=t>>>28&15|(e&7)<<4,n=e>>3!=0;if(i.push((n?r|128:r)&255),!!n){for(let s=3;s<31;s=s+7){const o=e>>>s,c=o>>>7!=0,d=(c?o|128:o)&255;if(i.push(d),!c)return}i.push(e>>>31&1)}}const ac=(1<<16)*(1<<16);function bp(t){let e=t[0]=="-";e&&(t=t.slice(1));const i=1e6;let r=0,n=0;function s(o,c){const d=Number(t.slice(o,c));n*=i,r=r*i+d,r>=ac&&(n=n+(r/ac|0),r=r%ac)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),[e,r,n]}function Al(t,e){if(e>>>0<=2097151)return""+(ac*e+(t>>>0));let i=t&16777215,r=(t>>>24|e<<8)>>>0&16777215,n=e>>16&65535,s=i+r*6777216+n*6710656,o=r+n*8147497,c=n*2,d=1e7;s>=d&&(o+=Math.floor(s/d),s%=d),o>=d&&(c+=Math.floor(o/d),o%=d);function h(p,g){let y=p?String(p):"";return g?"0000000".slice(y.length)+y:y}return h(c,0)+h(o,c)+h(s,1)}function _p(t,e){if(t>=0){for(;t>127;)e.push(t&127|128),t=t>>>7;e.push(t)}else{for(let i=0;i<9;i++)e.push(t&127|128),t=t>>7;e.push(1)}}function $y(){let t=this.buf[this.pos++],e=t&127;if((t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<7,(t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<14,(t&128)==0)return this.assertBounds(),e;if(t=this.buf[this.pos++],e|=(t&127)<<21,(t&128)==0)return this.assertBounds(),e;t=this.buf[this.pos++],e|=(t&15)<<28;for(let i=5;(t&128)!==0&&i<10;i++)t=this.buf[this.pos++];if((t&128)!=0)throw new Error("invalid varint");return this.assertBounds(),e>>>0}let ye;function Jy(){const t=new DataView(new ArrayBuffer(8));ye=globalThis.BigInt!==void 0&&typeof t.getBigInt64=="function"&&typeof t.getBigUint64=="function"&&typeof t.setBigInt64=="function"&&typeof t.setBigUint64=="function"?{MIN:BigInt("-9223372036854775808"),MAX:BigInt("9223372036854775807"),UMIN:BigInt("0"),UMAX:BigInt("18446744073709551615"),C:BigInt,V:t}:void 0}Jy();function wp(t){if(!t)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}const Ip=/^-?[0-9]+$/,oc=4294967296,cc=2147483648;class Cp{constructor(e,i){this.lo=e|0,this.hi=i|0}isZero(){return this.lo==0&&this.hi==0}toNumber(){let e=this.hi*oc+(this.lo>>>0);if(!Number.isSafeInteger(e))throw new Error("cannot convert to safe number");return e}}class dt extends Cp{static from(e){if(ye)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=ye.C(e);case"number":if(e===0)return this.ZERO;e=ye.C(e);case"bigint":if(!e)return this.ZERO;if(e<ye.UMIN)throw new Error("signed value for ulong");if(e>ye.UMAX)throw new Error("ulong too large");return ye.V.setBigUint64(0,e,!0),new dt(ye.V.getInt32(0,!0),ye.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!Ip.test(e))throw new Error("string is no integer");let[i,r,n]=bp(e);if(i)throw new Error("signed value for ulong");return new dt(r,n);case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");if(e<0)throw new Error("signed value for ulong");return new dt(e,e/oc)}throw new Error("unknown value "+typeof e)}toString(){return ye?this.toBigInt().toString():Al(this.lo,this.hi)}toBigInt(){return wp(ye),ye.V.setInt32(0,this.lo,!0),ye.V.setInt32(4,this.hi,!0),ye.V.getBigUint64(0,!0)}}dt.ZERO=new dt(0,0);class Te extends Cp{static from(e){if(ye)switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=="")throw new Error("string is no integer");e=ye.C(e);case"number":if(e===0)return this.ZERO;e=ye.C(e);case"bigint":if(!e)return this.ZERO;if(e<ye.MIN)throw new Error("signed long too small");if(e>ye.MAX)throw new Error("signed long too large");return ye.V.setBigInt64(0,e,!0),new Te(ye.V.getInt32(0,!0),ye.V.getInt32(4,!0))}else switch(typeof e){case"string":if(e=="0")return this.ZERO;if(e=e.trim(),!Ip.test(e))throw new Error("string is no integer");let[i,r,n]=bp(e);if(i){if(n>cc||n==cc&&r!=0)throw new Error("signed long too small")}else if(n>=cc)throw new Error("signed long too large");let s=new Te(r,n);return i?s.negate():s;case"number":if(e==0)return this.ZERO;if(!Number.isSafeInteger(e))throw new Error("number is no integer");return e>0?new Te(e,e/oc):new Te(-e,-e/oc).negate()}throw new Error("unknown value "+typeof e)}isNegative(){return(this.hi&cc)!==0}negate(){let e=~this.hi,i=this.lo;return i?i=~i+1:e+=1,new Te(i,e)}toString(){if(ye)return this.toBigInt().toString();if(this.isNegative()){let e=this.negate();return"-"+Al(e.lo,e.hi)}return Al(this.lo,this.hi)}toBigInt(){return wp(ye),ye.V.setInt32(0,this.lo,!0),ye.V.setInt32(4,this.hi,!0),ye.V.getBigInt64(0,!0)}}Te.ZERO=new Te(0,0);const Pp={readUnknownField:!0,readerFactory:t=>new zy(t)};function Ky(t){return t?Object.assign(Object.assign({},Pp),t):Pp}class zy{constructor(e,i){this.varint64=Gy,this.uint32=$y,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=i!=null?i:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0})}tag(){let e=this.uint32(),i=e>>>3,r=e&7;if(i<=0||r<0||r>5)throw new Error("illegal tag: field no "+i+" wire type "+r);return[i,r]}skip(e){let i=this.pos;switch(e){case We.Varint:for(;this.buf[this.pos++]&128;);break;case We.Bit64:this.pos+=4;case We.Bit32:this.pos+=4;break;case We.LengthDelimited:let r=this.uint32();this.pos+=r;break;case We.StartGroup:let n;for(;(n=this.tag()[1])!==We.EndGroup;)this.skip(n);break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(i,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let e=this.uint32();return e>>>1^-(e&1)}int64(){return new Te(...this.varint64())}uint64(){return new dt(...this.varint64())}sint64(){let[e,i]=this.varint64(),r=-(e&1);return e=(e>>>1|(i&1)<<31)^r,i=i>>>1^r,new Te(e,i)}bool(){let[e,i]=this.varint64();return e!==0||i!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return new dt(this.sfixed32(),this.sfixed32())}sfixed64(){return new Te(this.sfixed32(),this.sfixed32())}float(){return this.view.getFloat32((this.pos+=4)-4,!0)}double(){return this.view.getFloat64((this.pos+=8)-8,!0)}bytes(){let e=this.uint32(),i=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(i,i+e)}string(){return this.textDecoder.decode(this.bytes())}}function ce(t,e){if(!t)throw new Error(e)}const Yy=34028234663852886e22,Qy=-34028234663852886e22,Xy=4294967295,Zy=2147483647,eS=-2147483648;function Ys(t){if(typeof t!="number")throw new Error("invalid int 32: "+typeof t);if(!Number.isInteger(t)||t>Zy||t<eS)throw new Error("invalid int 32: "+t)}function dc(t){if(typeof t!="number")throw new Error("invalid uint 32: "+typeof t);if(!Number.isInteger(t)||t>Xy||t<0)throw new Error("invalid uint 32: "+t)}function Dl(t){if(typeof t!="number")throw new Error("invalid float 32: "+typeof t);if(!!Number.isFinite(t)&&(t>Yy||t<Qy))throw new Error("invalid float 32: "+t)}const Rp={writeUnknownFields:!0,writerFactory:()=>new iS};function tS(t){return t?Object.assign(Object.assign({},Rp),t):Rp}class iS{constructor(e){this.stack=[],this.textEncoder=e!=null?e:new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let n=0;n<this.chunks.length;n++)e+=this.chunks[n].length;let i=new Uint8Array(e),r=0;for(let n=0;n<this.chunks.length;n++)i.set(this.chunks[n],r),r+=this.chunks[n].length;return this.chunks=[],i}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),i=this.stack.pop();if(!i)throw new Error("invalid state, fork stack empty");return this.chunks=i.chunks,this.buf=i.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,i){return this.uint32((e<<3|i)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(dc(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return Ys(e),_p(e,this.buf),this}bool(e){return this.buf.push(e?1:0),this}bytes(e){return this.uint32(e.byteLength),this.raw(e)}string(e){let i=this.textEncoder.encode(e);return this.uint32(i.byteLength),this.raw(i)}float(e){Dl(e);let i=new Uint8Array(4);return new DataView(i.buffer).setFloat32(0,e,!0),this.raw(i)}double(e){let i=new Uint8Array(8);return new DataView(i.buffer).setFloat64(0,e,!0),this.raw(i)}fixed32(e){dc(e);let i=new Uint8Array(4);return new DataView(i.buffer).setUint32(0,e,!0),this.raw(i)}sfixed32(e){Ys(e);let i=new Uint8Array(4);return new DataView(i.buffer).setInt32(0,e,!0),this.raw(i)}sint32(e){return Ys(e),e=(e<<1^e>>31)>>>0,_p(e,this.buf),this}sfixed64(e){let i=new Uint8Array(8),r=new DataView(i.buffer),n=Te.from(e);return r.setInt32(0,n.lo,!0),r.setInt32(4,n.hi,!0),this.raw(i)}fixed64(e){let i=new Uint8Array(8),r=new DataView(i.buffer),n=dt.from(e);return r.setInt32(0,n.lo,!0),r.setInt32(4,n.hi,!0),this.raw(i)}int64(e){let i=Te.from(e);return Ml(i.lo,i.hi,this.buf),this}sint64(e){let i=Te.from(e),r=i.hi>>31,n=i.lo<<1^r,s=(i.hi<<1|i.lo>>>31)^r;return Ml(n,s,this.buf),this}uint64(e){let i=dt.from(e);return Ml(i.lo,i.hi,this.buf),this}}const Mp={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0},Ap={ignoreUnknownFields:!1};function rS(t){return t?Object.assign(Object.assign({},Ap),t):Ap}function nS(t){return t?Object.assign(Object.assign({},Mp),t):Mp}const Dp=Symbol.for("protobuf-ts/message-type");function Op(t){let e=!1;const i=[];for(let r=0;r<t.length;r++){let n=t.charAt(r);n=="_"?e=!0:/\d/.test(n)?(i.push(n),e=!0):e?(i.push(n.toUpperCase()),e=!1):r==0?i.push(n.toLowerCase()):i.push(n)}return i.join("")}var A;(function(t){t[t.DOUBLE=1]="DOUBLE",t[t.FLOAT=2]="FLOAT",t[t.INT64=3]="INT64",t[t.UINT64=4]="UINT64",t[t.INT32=5]="INT32",t[t.FIXED64=6]="FIXED64",t[t.FIXED32=7]="FIXED32",t[t.BOOL=8]="BOOL",t[t.STRING=9]="STRING",t[t.BYTES=12]="BYTES",t[t.UINT32=13]="UINT32",t[t.SFIXED32=15]="SFIXED32",t[t.SFIXED64=16]="SFIXED64",t[t.SINT32=17]="SINT32",t[t.SINT64=18]="SINT64"})(A||(A={}));var Ai;(function(t){t[t.BIGINT=0]="BIGINT",t[t.STRING=1]="STRING",t[t.NUMBER=2]="NUMBER"})(Ai||(Ai={}));var lc;(function(t){t[t.NO=0]="NO",t[t.PACKED=1]="PACKED",t[t.UNPACKED=2]="UNPACKED"})(lc||(lc={}));function sS(t){var e,i,r,n;return t.localName=(e=t.localName)!==null&&e!==void 0?e:Op(t.name),t.jsonName=(i=t.jsonName)!==null&&i!==void 0?i:Op(t.name),t.repeat=(r=t.repeat)!==null&&r!==void 0?r:lc.NO,t.opt=(n=t.opt)!==null&&n!==void 0?n:t.repeat||t.oneof?!1:t.kind=="message",t}function aS(t){if(typeof t!="object"||t===null||!t.hasOwnProperty("oneofKind"))return!1;switch(typeof t.oneofKind){case"string":return t[t.oneofKind]===void 0?!1:Object.keys(t).length==2;case"undefined":return Object.keys(t).length==1;default:return!1}}class oS{constructor(e){var i;this.fields=(i=e.fields)!==null&&i!==void 0?i:[]}prepare(){if(this.data)return;const e=[],i=[],r=[];for(let n of this.fields)if(n.oneof)r.includes(n.oneof)||(r.push(n.oneof),e.push(n.oneof),i.push(n.oneof));else switch(i.push(n.localName),n.kind){case"scalar":case"enum":(!n.opt||n.repeat)&&e.push(n.localName);break;case"message":n.repeat&&e.push(n.localName);break;case"map":e.push(n.localName);break}this.data={req:e,known:i,oneofs:Object.values(r)}}is(e,i,r=!1){if(i<0)return!0;if(e==null||typeof e!="object")return!1;this.prepare();let n=Object.keys(e),s=this.data;if(n.length<s.req.length||s.req.some(o=>!n.includes(o))||!r&&n.some(o=>!s.known.includes(o)))return!1;if(i<1)return!0;for(const o of s.oneofs){const c=e[o];if(!aS(c))return!1;if(c.oneofKind===void 0)continue;const d=this.fields.find(h=>h.localName===c.oneofKind);if(!d||!this.field(c[c.oneofKind],d,r,i))return!1}for(const o of this.fields)if(o.oneof===void 0&&!this.field(e[o.localName],o,r,i))return!1;return!0}field(e,i,r,n){let s=i.repeat;switch(i.kind){case"scalar":return e===void 0?i.opt:s?this.scalars(e,i.T,n,i.L):this.scalar(e,i.T,i.L);case"enum":return e===void 0?i.opt:s?this.scalars(e,A.INT32,n):this.scalar(e,A.INT32);case"message":return e===void 0?!0:s?this.messages(e,i.T(),r,n):this.message(e,i.T(),r,n);case"map":if(typeof e!="object"||e===null)return!1;if(n<2)return!0;if(!this.mapKeys(e,i.K,n))return!1;switch(i.V.kind){case"scalar":return this.scalars(Object.values(e),i.V.T,n,i.V.L);case"enum":return this.scalars(Object.values(e),A.INT32,n);case"message":return this.messages(Object.values(e),i.V.T(),r,n)}break}return!0}message(e,i,r,n){return r?i.isAssignable(e,n):i.is(e,n)}messages(e,i,r,n){if(!Array.isArray(e))return!1;if(n<2)return!0;if(r){for(let s=0;s<e.length&&s<n;s++)if(!i.isAssignable(e[s],n-1))return!1}else for(let s=0;s<e.length&&s<n;s++)if(!i.is(e[s],n-1))return!1;return!0}scalar(e,i,r){let n=typeof e;switch(i){case A.UINT64:case A.FIXED64:case A.INT64:case A.SFIXED64:case A.SINT64:switch(r){case Ai.BIGINT:return n=="bigint";case Ai.NUMBER:return n=="number"&&!isNaN(e);default:return n=="string"}case A.BOOL:return n=="boolean";case A.STRING:return n=="string";case A.BYTES:return e instanceof Uint8Array;case A.DOUBLE:case A.FLOAT:return n=="number"&&!isNaN(e);default:return n=="number"&&Number.isInteger(e)}}scalars(e,i,r,n){if(!Array.isArray(e))return!1;if(r<2)return!0;if(Array.isArray(e)){for(let s=0;s<e.length&&s<r;s++)if(!this.scalar(e[s],i,n))return!1}return!0}mapKeys(e,i,r){let n=Object.keys(e);switch(i){case A.INT32:case A.FIXED32:case A.SFIXED32:case A.SINT32:case A.UINT32:return this.scalars(n.slice(0,r).map(s=>parseInt(s)),i,r);case A.BOOL:return this.scalars(n.slice(0,r).map(s=>s=="true"?!0:s=="false"?!1:s),i,r);default:return this.scalars(n,i,r,Ai.STRING)}}}function di(t,e){switch(e){case Ai.BIGINT:return t.toBigInt();case Ai.NUMBER:return t.toNumber();default:return t.toString()}}class cS{constructor(e){this.info=e}prepare(){var e;if(this.fMap===void 0){this.fMap={};const i=(e=this.info.fields)!==null&&e!==void 0?e:[];for(const r of i)this.fMap[r.name]=r,this.fMap[r.jsonName]=r,this.fMap[r.localName]=r}}assert(e,i,r){if(!e){let n=Rl(r);throw(n=="number"||n=="boolean")&&(n=r.toString()),new Error(`Cannot parse JSON ${n} for ${this.info.typeName}#${i}`)}}read(e,i,r){this.prepare();const n=[];for(const[s,o]of Object.entries(e)){const c=this.fMap[s];if(!c){if(!r.ignoreUnknownFields)throw new Error(`Found unknown field while reading ${this.info.typeName} from JSON format. JSON key: ${s}`);continue}const d=c.localName;let h;if(c.oneof){if(o===null&&(c.kind!=="enum"||c.T()[0]!=="google.protobuf.NullValue"))continue;if(n.includes(c.oneof))throw new Error(`Multiple members of the oneof group "${c.oneof}" of ${this.info.typeName} are present in JSON.`);n.push(c.oneof),h=i[c.oneof]={oneofKind:d}}else h=i;if(c.kind=="map"){if(o===null)continue;this.assert(jy(o),c.name,o);const p=h[d];for(const[g,y]of Object.entries(o)){this.assert(y!==null,c.name+" map value",null);let T;switch(c.V.kind){case"message":T=c.V.T().internalJsonRead(y,r);break;case"enum":if(T=this.enum(c.V.T(),y,c.name,r.ignoreUnknownFields),T===!1)continue;break;case"scalar":T=this.scalar(y,c.V.T,c.V.L,c.name);break}this.assert(T!==void 0,c.name+" map value",y);let b=g;c.K==A.BOOL&&(b=b=="true"?!0:b=="false"?!1:b),b=this.scalar(b,c.K,Ai.STRING,c.name).toString(),p[b]=T}}else if(c.repeat){if(o===null)continue;this.assert(Array.isArray(o),c.name,o);const p=h[d];for(const g of o){this.assert(g!==null,c.name,null);let y;switch(c.kind){case"message":y=c.T().internalJsonRead(g,r);break;case"enum":if(y=this.enum(c.T(),g,c.name,r.ignoreUnknownFields),y===!1)continue;break;case"scalar":y=this.scalar(g,c.T,c.L,c.name);break}this.assert(y!==void 0,c.name,o),p.push(y)}}else switch(c.kind){case"message":if(o===null&&c.T().typeName!="google.protobuf.Value"){this.assert(c.oneof===void 0,c.name+" (oneof member)",null);continue}h[d]=c.T().internalJsonRead(o,r,h[d]);break;case"enum":if(o===null)continue;let p=this.enum(c.T(),o,c.name,r.ignoreUnknownFields);if(p===!1)continue;h[d]=p;break;case"scalar":if(o===null)continue;h[d]=this.scalar(o,c.T,c.L,c.name);break}}}enum(e,i,r,n){if(e[0]=="google.protobuf.NullValue"&&ce(i===null||i==="NULL_VALUE",`Unable to parse field ${this.info.typeName}#${r}, enum ${e[0]} only accepts null.`),i===null)return 0;switch(typeof i){case"number":return ce(Number.isInteger(i),`Unable to parse field ${this.info.typeName}#${r}, enum can only be integral number, got ${i}.`),i;case"string":let s=i;e[2]&&i.substring(0,e[2].length)===e[2]&&(s=i.substring(e[2].length));let o=e[1][s];return typeof o=="undefined"&&n?!1:(ce(typeof o=="number",`Unable to parse field ${this.info.typeName}#${r}, enum ${e[0]} has no value for "${i}".`),o)}ce(!1,`Unable to parse field ${this.info.typeName}#${r}, cannot parse enum value from ${typeof i}".`)}scalar(e,i,r,n){let s;try{switch(i){case A.DOUBLE:case A.FLOAT:if(e===null)return 0;if(e==="NaN")return Number.NaN;if(e==="Infinity")return Number.POSITIVE_INFINITY;if(e==="-Infinity")return Number.NEGATIVE_INFINITY;if(e===""){s="empty string";break}if(typeof e=="string"&&e.trim().length!==e.length){s="extra whitespace";break}if(typeof e!="string"&&typeof e!="number")break;let o=Number(e);if(Number.isNaN(o)){s="not a number";break}if(!Number.isFinite(o)){s="too large or small";break}return i==A.FLOAT&&Dl(o),o;case A.INT32:case A.FIXED32:case A.SFIXED32:case A.SINT32:case A.UINT32:if(e===null)return 0;let c;if(typeof e=="number"?c=e:e===""?s="empty string":typeof e=="string"&&(e.trim().length!==e.length?s="extra whitespace":c=Number(e)),c===void 0)break;return i==A.UINT32?dc(c):Ys(c),c;case A.INT64:case A.SFIXED64:case A.SINT64:if(e===null)return di(Te.ZERO,r);if(typeof e!="number"&&typeof e!="string")break;return di(Te.from(e),r);case A.FIXED64:case A.UINT64:if(e===null)return di(dt.ZERO,r);if(typeof e!="number"&&typeof e!="string")break;return di(dt.from(e),r);case A.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case A.STRING:if(e===null)return"";if(typeof e!="string"){s="extra whitespace";break}try{encodeURIComponent(e)}catch(d){d="invalid UTF8";break}return e;case A.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return Hy(e)}}catch(o){s=o.message}this.assert(!1,n+(s?" - "+s:""),e)}}class dS{constructor(e){var i;this.fields=(i=e.fields)!==null&&i!==void 0?i:[]}write(e,i){const r={},n=e;for(const s of this.fields){if(!s.oneof){let h=this.field(s,n[s.localName],i);h!==void 0&&(r[i.useProtoFieldName?s.name:s.jsonName]=h);continue}const o=n[s.oneof];if(o.oneofKind!==s.localName)continue;const c=s.kind=="scalar"||s.kind=="enum"?Object.assign(Object.assign({},i),{emitDefaultValues:!0}):i;let d=this.field(s,o[s.localName],c);ce(d!==void 0),r[i.useProtoFieldName?s.name:s.jsonName]=d}return r}field(e,i,r){let n;if(e.kind=="map"){ce(typeof i=="object"&&i!==null);const s={};switch(e.V.kind){case"scalar":for(const[d,h]of Object.entries(i)){const p=this.scalar(e.V.T,h,e.name,!1,!0);ce(p!==void 0),s[d.toString()]=p}break;case"message":const o=e.V.T();for(const[d,h]of Object.entries(i)){const p=this.message(o,h,e.name,r);ce(p!==void 0),s[d.toString()]=p}break;case"enum":const c=e.V.T();for(const[d,h]of Object.entries(i)){ce(h===void 0||typeof h=="number");const p=this.enum(c,h,e.name,!1,!0,r.enumAsInteger);ce(p!==void 0),s[d.toString()]=p}break}(r.emitDefaultValues||Object.keys(s).length>0)&&(n=s)}else if(e.repeat){ce(Array.isArray(i));const s=[];switch(e.kind){case"scalar":for(let d=0;d<i.length;d++){const h=this.scalar(e.T,i[d],e.name,e.opt,!0);ce(h!==void 0),s.push(h)}break;case"enum":const o=e.T();for(let d=0;d<i.length;d++){ce(i[d]===void 0||typeof i[d]=="number");const h=this.enum(o,i[d],e.name,e.opt,!0,r.enumAsInteger);ce(h!==void 0),s.push(h)}break;case"message":const c=e.T();for(let d=0;d<i.length;d++){const h=this.message(c,i[d],e.name,r);ce(h!==void 0),s.push(h)}break}(r.emitDefaultValues||s.length>0||r.emitDefaultValues)&&(n=s)}else switch(e.kind){case"scalar":n=this.scalar(e.T,i,e.name,e.opt,r.emitDefaultValues);break;case"enum":n=this.enum(e.T(),i,e.name,e.opt,r.emitDefaultValues,r.enumAsInteger);break;case"message":n=this.message(e.T(),i,e.name,r);break}return n}enum(e,i,r,n,s,o){if(e[0]=="google.protobuf.NullValue")return!s&&!n?void 0:null;if(i===void 0){ce(n);return}if(!(i===0&&!s&&!n))return ce(typeof i=="number"),ce(Number.isInteger(i)),o||!e[1].hasOwnProperty(i)?i:e[2]?e[2]+e[1][i]:e[1][i]}message(e,i,r,n){return i===void 0?n.emitDefaultValues?null:void 0:e.internalJsonWrite(i,n)}scalar(e,i,r,n,s){if(i===void 0){ce(n);return}const o=s||n;switch(e){case A.INT32:case A.SFIXED32:case A.SINT32:return i===0?o?0:void 0:(Ys(i),i);case A.FIXED32:case A.UINT32:return i===0?o?0:void 0:(dc(i),i);case A.FLOAT:Dl(i);case A.DOUBLE:return i===0?o?0:void 0:(ce(typeof i=="number"),Number.isNaN(i)?"NaN":i===Number.POSITIVE_INFINITY?"Infinity":i===Number.NEGATIVE_INFINITY?"-Infinity":i);case A.STRING:return i===""?o?"":void 0:(ce(typeof i=="string"),i);case A.BOOL:return i===!1?o?!1:void 0:(ce(typeof i=="boolean"),i);case A.UINT64:case A.FIXED64:ce(typeof i=="number"||typeof i=="string"||typeof i=="bigint");let c=dt.from(i);return c.isZero()&&!o?void 0:c.toString();case A.INT64:case A.SFIXED64:case A.SINT64:ce(typeof i=="number"||typeof i=="string"||typeof i=="bigint");let d=Te.from(i);return d.isZero()&&!o?void 0:d.toString();case A.BYTES:return ce(i instanceof Uint8Array),i.byteLength?qy(i):o?"":void 0}}}function Ol(t,e=Ai.STRING){switch(t){case A.BOOL:return!1;case A.UINT64:case A.FIXED64:return di(dt.ZERO,e);case A.INT64:case A.SFIXED64:case A.SINT64:return di(Te.ZERO,e);case A.DOUBLE:case A.FLOAT:return 0;case A.BYTES:return new Uint8Array(0);case A.STRING:return"";default:return 0}}class lS{constructor(e){this.info=e}prepare(){var e;if(!this.fieldNoToField){const i=(e=this.info.fields)!==null&&e!==void 0?e:[];this.fieldNoToField=new Map(i.map(r=>[r.no,r]))}}read(e,i,r,n){this.prepare();const s=n===void 0?e.len:e.pos+n;for(;e.pos<s;){const[o,c]=e.tag(),d=this.fieldNoToField.get(o);if(!d){let y=r.readUnknownField;if(y=="throw")throw new Error(`Unknown field ${o} (wire type ${c}) for ${this.info.typeName}`);let T=e.skip(c);y!==!1&&(y===!0?sc.onRead:y)(this.info.typeName,i,o,c,T);continue}let h=i,p=d.repeat,g=d.localName;switch(d.oneof&&(h=h[d.oneof],h.oneofKind!==g&&(h=i[d.oneof]={oneofKind:g})),d.kind){case"scalar":case"enum":let y=d.kind=="enum"?A.INT32:d.T,T=d.kind=="scalar"?d.L:void 0;if(p){let R=h[g];if(c==We.LengthDelimited&&y!=A.STRING&&y!=A.BYTES){let x=e.uint32()+e.pos;for(;e.pos<x;)R.push(this.scalar(e,y,T))}else R.push(this.scalar(e,y,T))}else h[g]=this.scalar(e,y,T);break;case"message":if(p){let R=h[g],x=d.T().internalBinaryRead(e,e.uint32(),r);R.push(x)}else h[g]=d.T().internalBinaryRead(e,e.uint32(),r,h[g]);break;case"map":let[b,O]=this.mapEntry(d,e,r);h[g][b]=O;break}}}mapEntry(e,i,r){let n=i.uint32(),s=i.pos+n,o,c;for(;i.pos<s;){let[d,h]=i.tag();switch(d){case 1:e.K==A.BOOL?o=i.bool().toString():o=this.scalar(i,e.K,Ai.STRING);break;case 2:switch(e.V.kind){case"scalar":c=this.scalar(i,e.V.T,e.V.L);break;case"enum":c=i.int32();break;case"message":c=e.V.T().internalBinaryRead(i,i.uint32(),r);break}break;default:throw new Error(`Unknown field ${d} (wire type ${h}) in map entry for ${this.info.typeName}#${e.name}`)}}if(o===void 0){let d=Ol(e.K);o=e.K==A.BOOL?d.toString():d}if(c===void 0)switch(e.V.kind){case"scalar":c=Ol(e.V.T,e.V.L);break;case"enum":c=0;break;case"message":c=e.V.T().create();break}return[o,c]}scalar(e,i,r){switch(i){case A.INT32:return e.int32();case A.STRING:return e.string();case A.BOOL:return e.bool();case A.DOUBLE:return e.double();case A.FLOAT:return e.float();case A.INT64:return di(e.int64(),r);case A.UINT64:return di(e.uint64(),r);case A.FIXED64:return di(e.fixed64(),r);case A.FIXED32:return e.fixed32();case A.BYTES:return e.bytes();case A.UINT32:return e.uint32();case A.SFIXED32:return e.sfixed32();case A.SFIXED64:return di(e.sfixed64(),r);case A.SINT32:return e.sint32();case A.SINT64:return di(e.sint64(),r)}}}class uS{constructor(e){this.info=e}prepare(){if(!this.fields){const e=this.info.fields?this.info.fields.concat():[];this.fields=e.sort((i,r)=>i.no-r.no)}}write(e,i,r){this.prepare();for(const s of this.fields){let o,c,d=s.repeat,h=s.localName;if(s.oneof){const p=e[s.oneof];if(p.oneofKind!==h)continue;o=p[h],c=!0}else o=e[h],c=!1;switch(s.kind){case"scalar":case"enum":let p=s.kind=="enum"?A.INT32:s.T;if(d)if(ce(Array.isArray(o)),d==lc.PACKED)this.packed(i,p,s.no,o);else for(const g of o)this.scalar(i,p,s.no,g,!0);else o===void 0?ce(s.opt):this.scalar(i,p,s.no,o,c||s.opt);break;case"message":if(d){ce(Array.isArray(o));for(const g of o)this.message(i,r,s.T(),s.no,g)}else this.message(i,r,s.T(),s.no,o);break;case"map":ce(typeof o=="object"&&o!==null);for(const[g,y]of Object.entries(o))this.mapEntry(i,r,s,g,y);break}}let n=r.writeUnknownFields;n!==!1&&(n===!0?sc.onWrite:n)(this.info.typeName,e,i)}mapEntry(e,i,r,n,s){e.tag(r.no,We.LengthDelimited),e.fork();let o=n;switch(r.K){case A.INT32:case A.FIXED32:case A.UINT32:case A.SFIXED32:case A.SINT32:o=Number.parseInt(n);break;case A.BOOL:ce(n=="true"||n=="false"),o=n=="true";break}switch(this.scalar(e,r.K,1,o,!0),r.V.kind){case"scalar":this.scalar(e,r.V.T,2,s,!0);break;case"enum":this.scalar(e,A.INT32,2,s,!0);break;case"message":this.message(e,i,r.V.T(),2,s);break}e.join()}message(e,i,r,n,s){s!==void 0&&(r.internalBinaryWrite(s,e.tag(n,We.LengthDelimited).fork(),i),e.join())}scalar(e,i,r,n,s){let[o,c,d]=this.scalarInfo(i,n);(!d||s)&&(e.tag(r,o),e[c](n))}packed(e,i,r,n){if(!n.length)return;ce(i!==A.BYTES&&i!==A.STRING),e.tag(r,We.LengthDelimited),e.fork();let[,s]=this.scalarInfo(i);for(let o=0;o<n.length;o++)e[s](n[o]);e.join()}scalarInfo(e,i){let r=We.Varint,n,s=i===void 0,o=i===0;switch(e){case A.INT32:n="int32";break;case A.STRING:o=s||!i.length,r=We.LengthDelimited,n="string";break;case A.BOOL:o=i===!1,n="bool";break;case A.UINT32:n="uint32";break;case A.DOUBLE:r=We.Bit64,n="double";break;case A.FLOAT:r=We.Bit32,n="float";break;case A.INT64:o=s||Te.from(i).isZero(),n="int64";break;case A.UINT64:o=s||dt.from(i).isZero(),n="uint64";break;case A.FIXED64:o=s||dt.from(i).isZero(),r=We.Bit64,n="fixed64";break;case A.BYTES:o=s||!i.byteLength,r=We.LengthDelimited,n="bytes";break;case A.FIXED32:r=We.Bit32,n="fixed32";break;case A.SFIXED32:r=We.Bit32,n="sfixed32";break;case A.SFIXED64:o=s||Te.from(i).isZero(),r=We.Bit64,n="sfixed64";break;case A.SINT32:n="sint32";break;case A.SINT64:o=s||Te.from(i).isZero(),n="sint64";break}return[r,n,s||o]}}function hS(t){const e=t.messagePrototype?Object.create(t.messagePrototype):Object.defineProperty({},Dp,{value:t});for(let i of t.fields){let r=i.localName;if(!i.opt)if(i.oneof)e[i.oneof]={oneofKind:void 0};else if(i.repeat)e[r]=[];else switch(i.kind){case"scalar":e[r]=Ol(i.T,i.L);break;case"enum":e[r]=0;break;case"map":e[r]={};break}}return e}function Nl(t,e,i){let r,n=i,s;for(let o of t.fields){let c=o.localName;if(o.oneof){const d=n[o.oneof];if((d==null?void 0:d.oneofKind)==null)continue;if(r=d[c],s=e[o.oneof],s.oneofKind=d.oneofKind,r==null){delete s[c];continue}}else if(r=n[c],s=e,r==null)continue;switch(o.repeat&&(s[c].length=r.length),o.kind){case"scalar":case"enum":if(o.repeat)for(let h=0;h<r.length;h++)s[c][h]=r[h];else s[c]=r;break;case"message":let d=o.T();if(o.repeat)for(let h=0;h<r.length;h++)s[c][h]=d.create(r[h]);else s[c]===void 0?s[c]=d.create(r):d.mergePartial(s[c],r);break;case"map":switch(o.V.kind){case"scalar":case"enum":Object.assign(s[c],r);break;case"message":let h=o.V.T();for(let p of Object.keys(r))s[c][p]=h.create(r[p]);break}break}}}function pS(t,e,i){if(e===i)return!0;if(!e||!i)return!1;for(let r of t.fields){let n=r.localName,s=r.oneof?e[r.oneof][n]:e[n],o=r.oneof?i[r.oneof][n]:i[n];switch(r.kind){case"enum":case"scalar":let c=r.kind=="enum"?A.INT32:r.T;if(!(r.repeat?Lp(c,s,o):Np(c,s,o)))return!1;break;case"map":if(!(r.V.kind=="message"?Vp(r.V.T(),uc(s),uc(o)):Lp(r.V.kind=="enum"?A.INT32:r.V.T,uc(s),uc(o))))return!1;break;case"message":let d=r.T();if(!(r.repeat?Vp(d,s,o):d.equals(s,o)))return!1;break}}return!0}const uc=Object.values;function Np(t,e,i){if(e===i)return!0;if(t!==A.BYTES)return!1;let r=e,n=i;if(r.length!==n.length)return!1;for(let s=0;s<r.length;s++)if(r[s]!=n[s])return!1;return!0}function Lp(t,e,i){if(e.length!==i.length)return!1;for(let r=0;r<e.length;r++)if(!Np(t,e[r],i[r]))return!1;return!0}function Vp(t,e,i){if(e.length!==i.length)return!1;for(let r=0;r<e.length;r++)if(!t.equals(e[r],i[r]))return!1;return!0}const mS=Object.getOwnPropertyDescriptors(Object.getPrototypeOf({}));class E{constructor(e,i,r){this.defaultCheckDepth=16,this.typeName=e,this.fields=i.map(sS),this.options=r!=null?r:{},this.messagePrototype=Object.create(null,Object.assign(Object.assign({},mS),{[Dp]:{value:this}})),this.refTypeCheck=new oS(this),this.refJsonReader=new cS(this),this.refJsonWriter=new dS(this),this.refBinReader=new lS(this),this.refBinWriter=new uS(this)}create(e){let i=hS(this);return e!==void 0&&Nl(this,i,e),i}clone(e){let i=this.create();return Nl(this,i,e),i}equals(e,i){return pS(this,e,i)}is(e,i=this.defaultCheckDepth){return this.refTypeCheck.is(e,i,!1)}isAssignable(e,i=this.defaultCheckDepth){return this.refTypeCheck.is(e,i,!0)}mergePartial(e,i){Nl(this,e,i)}fromBinary(e,i){let r=Ky(i);return this.internalBinaryRead(r.readerFactory(e),e.byteLength,r)}fromJson(e,i){return this.internalJsonRead(e,rS(i))}fromJsonString(e,i){let r=JSON.parse(e);return this.fromJson(r,i)}toJson(e,i){return this.internalJsonWrite(e,nS(i))}toJsonString(e,i){var r;let n=this.toJson(e,i);return JSON.stringify(n,null,(r=i==null?void 0:i.prettySpaces)!==null&&r!==void 0?r:0)}toBinary(e,i){let r=tS(i);return this.internalBinaryWrite(e,r.writerFactory(),r).finish()}internalJsonRead(e,i,r){if(e!==null&&typeof e=="object"&&!Array.isArray(e)){let n=r!=null?r:this.create();return this.refJsonReader.read(e,n,i),n}throw new Error(`Unable to parse message ${this.typeName} from JSON ${Rl(e)}.`)}internalJsonWrite(e,i){return this.refJsonWriter.write(e,i)}internalBinaryWrite(e,i,r){return this.refBinWriter.write(e,i,r),i}internalBinaryRead(e,i,r,n){let s=n!=null?n:this.create();return this.refBinReader.read(e,s,r,i),s}}const gS=t=>(e,i)=>(t.set(e,i),i),xp=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,Up=536870912,Fp=Up*2,fS=(t,e)=>i=>{const r=e.get(i);let n=r===void 0?i.size:r<Fp?r+1:0;if(!i.has(n))return t(i,n);if(i.size<Up){for(;i.has(n);)n=Math.floor(Math.random()*Fp);return t(i,n)}if(i.size>xp)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;i.has(n);)n=Math.floor(Math.random()*xp);return t(i,n)},Bp=new WeakMap,vS=gS(Bp),hc=fS(vS,Bp),yS=t=>t.method!==void 0&&t.method==="call",SS=t=>t.error===null&&typeof t.id=="number",pc=((t,e)=>{let i=null;return()=>{if(i!==null)return i;const r=new Blob([e],{type:"application/javascript; charset=utf-8"}),n=URL.createObjectURL(r);return i=t(n),setTimeout(()=>URL.revokeObjectURL(n)),i}})(t=>{const e=new Map([[0,()=>{}]]),i=new Map([[0,()=>{}]]),r=new Map,n=new Worker(t);return n.addEventListener("message",({data:h})=>{if(yS(h)){const{params:{timerId:p,timerType:g}}=h;if(g==="interval"){const y=e.get(p);if(typeof y=="number"){const T=r.get(y);if(T===void 0||T.timerId!==p||T.timerType!==g)throw new Error("The timer is in an undefined state.")}else if(typeof y!="undefined")y();else throw new Error("The timer is in an undefined state.")}else if(g==="timeout"){const y=i.get(p);if(typeof y=="number"){const T=r.get(y);if(T===void 0||T.timerId!==p||T.timerType!==g)throw new Error("The timer is in an undefined state.")}else if(typeof y!="undefined")y(),i.delete(p);else throw new Error("The timer is in an undefined state.")}}else if(SS(h)){const{id:p}=h,g=r.get(p);if(g===void 0)throw new Error("The timer is in an undefined state.");const{timerId:y,timerType:T}=g;r.delete(p),T==="interval"?e.delete(y):i.delete(y)}else{const{error:{message:p}}=h;throw new Error(p)}}),{clearInterval:h=>{const p=hc(r);r.set(p,{timerId:h,timerType:"interval"}),e.set(h,p),n.postMessage({id:p,method:"clear",params:{timerId:h,timerType:"interval"}})},clearTimeout:h=>{const p=hc(r);r.set(p,{timerId:h,timerType:"timeout"}),i.set(h,p),n.postMessage({id:p,method:"clear",params:{timerId:h,timerType:"timeout"}})},setInterval:(h,p=0)=>{const g=hc(e);return e.set(g,()=>{h(),typeof e.get(g)=="function"&&n.postMessage({id:null,method:"set",params:{delay:p,now:performance.now(),timerId:g,timerType:"interval"}})}),n.postMessage({id:null,method:"set",params:{delay:p,now:performance.now(),timerId:g,timerType:"interval"}}),g},setTimeout:(h,p=0)=>{const g=hc(i);return i.set(g,h),n.postMessage({id:null,method:"set",params:{delay:p,now:performance.now(),timerId:g,timerType:"timeout"}}),g}}},`(()=>{"use strict";const e=new Map,t=new Map,r=(e,t)=>{let r,o;const i=performance.now();r=i,o=e-Math.max(0,i-t);return{expected:r+o,remainingDelay:o}},o=(e,t,r,i)=>{const s=performance.now();s>r?postMessage({id:null,method:"call",params:{timerId:t,timerType:i}}):e.set(t,setTimeout(o,r-s,e,t,r,i))};addEventListener("message",(i=>{let{data:s}=i;try{if("clear"===s.method){const{id:r,params:{timerId:o,timerType:i}}=s;if("interval"===i)(t=>{const r=e.get(t);if(void 0===r)throw new Error('There is no interval scheduled with the given id "'.concat(t,'".'));clearTimeout(r),e.delete(t)})(o),postMessage({error:null,id:r});else{if("timeout"!==i)throw new Error('The given type "'.concat(i,'" is not supported'));(e=>{const r=t.get(e);if(void 0===r)throw new Error('There is no timeout scheduled with the given id "'.concat(e,'".'));clearTimeout(r),t.delete(e)})(o),postMessage({error:null,id:r})}}else{if("set"!==s.method)throw new Error('The given method "'.concat(s.method,'" is not supported'));{const{params:{delay:i,now:n,timerId:a,timerType:d}}=s;if("interval"===d)((t,i,s)=>{const{expected:n,remainingDelay:a}=r(t,s);e.set(i,setTimeout(o,a,e,i,n,"interval"))})(i,a,n);else{if("timeout"!==d)throw new Error('The given type "'.concat(d,'" is not supported'));((e,i,s)=>{const{expected:n,remainingDelay:a}=r(e,s);t.set(i,setTimeout(o,a,t,i,n,"timeout"))})(i,a,n)}}}}catch(e){postMessage({error:{message:e.message},id:s.id,result:null})}}))})();`),Hn=t=>pc().clearInterval(t),ES=t=>pc().clearTimeout(t),mc=(t,e)=>pc().setInterval(t,e);var TS=Object.freeze(Object.defineProperty({__proto__:null,clearInterval:Hn,clearTimeout:ES,setInterval:mc,setTimeout:(t,e)=>pc().setTimeout(t,e)},Symbol.toStringTag,{value:"Module"})),Wp={},Ll={exports:{}},jp=Ll.exports={v:[{name:"version",reg:/^(\d*)$/}],o:[{name:"origin",reg:/^(\S*) (\d*) (\d*) (\S*) IP(\d) (\S*)/,names:["username","sessionId","sessionVersion","netType","ipVer","address"],format:"%s %s %d %s IP%d %s"}],s:[{name:"name"}],i:[{name:"description"}],u:[{name:"uri"}],e:[{name:"email"}],p:[{name:"phone"}],z:[{name:"timezones"}],r:[{name:"repeats"}],t:[{name:"timing",reg:/^(\d*) (\d*)/,names:["start","stop"],format:"%d %d"}],c:[{name:"connection",reg:/^IN IP(\d) (\S*)/,names:["version","ip"],format:"IN IP%d %s"}],b:[{push:"bandwidth",reg:/^(TIAS|AS|CT|RR|RS):(\d*)/,names:["type","limit"],format:"%s:%s"}],m:[{reg:/^(\w*) (\d*) ([\w/]*)(?: (.*))?/,names:["type","port","protocol","payloads"],format:"%s %d %s %s"}],a:[{push:"rtp",reg:/^rtpmap:(\d*) ([\w\-.]*)(?:\s*\/(\d*)(?:\s*\/(\S*))?)?/,names:["payload","codec","rate","encoding"],format:function(t){return t.encoding?"rtpmap:%d %s/%s/%s":t.rate?"rtpmap:%d %s/%s":"rtpmap:%d %s"}},{push:"fmtp",reg:/^fmtp:(\d*) ([\S| ]*)/,names:["payload","config"],format:"fmtp:%d %s"},{name:"control",reg:/^control:(.*)/,format:"control:%s"},{name:"rtcp",reg:/^rtcp:(\d*)(?: (\S*) IP(\d) (\S*))?/,names:["port","netType","ipVer","address"],format:function(t){return t.address!=null?"rtcp:%d %s IP%d %s":"rtcp:%d"}},{push:"rtcpFbTrrInt",reg:/^rtcp-fb:(\*|\d*) trr-int (\d*)/,names:["payload","value"],format:"rtcp-fb:%s trr-int %d"},{push:"rtcpFb",reg:/^rtcp-fb:(\*|\d*) ([\w-_]*)(?: ([\w-_]*))?/,names:["payload","type","subtype"],format:function(t){return t.subtype!=null?"rtcp-fb:%s %s %s":"rtcp-fb:%s %s"}},{push:"ext",reg:/^extmap:(\d+)(?:\/(\w+))?(?: (urn:ietf:params:rtp-hdrext:encrypt))? (\S*)(?: (\S*))?/,names:["value","direction","encrypt-uri","uri","config"],format:function(t){return"extmap:%d"+(t.direction?"/%s":"%v")+(t["encrypt-uri"]?" %s":"%v")+" %s"+(t.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(t){return t.sessionConfig!=null?"crypto:%d %s %s %s":"crypto:%d %s %s"}},{name:"setup",reg:/^setup:(\w*)/,format:"setup:%s"},{name:"connectionType",reg:/^connection:(new|existing)/,format:"connection:%s"},{name:"mid",reg:/^mid:([^\s]*)/,format:"mid:%s"},{name:"msid",reg:/^msid:(.*)/,format:"msid:%s"},{name:"ptime",reg:/^ptime:(\d*(?:\.\d*)*)/,format:"ptime:%d"},{name:"maxptime",reg:/^maxptime:(\d*(?:\.\d*)*)/,format:"maxptime:%d"},{name:"direction",reg:/^(sendrecv|recvonly|sendonly|inactive)/},{name:"icelite",reg:/^(ice-lite)/},{name:"iceUfrag",reg:/^ice-ufrag:(\S*)/,format:"ice-ufrag:%s"},{name:"icePwd",reg:/^ice-pwd:(\S*)/,format:"ice-pwd:%s"},{name:"fingerprint",reg:/^fingerprint:(\S*) (\S*)/,names:["type","hash"],format:"fingerprint:%s %s"},{push:"candidates",reg:/^candidate:(\S*) (\d*) (\S*) (\d*) (\S*) (\d*) typ (\S*)(?: raddr (\S*) rport (\d*))?(?: tcptype (\S*))?(?: generation (\d*))?(?: network-id (\d*))?(?: network-cost (\d*))?/,names:["foundation","component","transport","priority","ip","port","type","raddr","rport","tcptype","generation","network-id","network-cost"],format:function(t){var e="candidate:%s %d %s %d %s %d typ %s";return e+=t.raddr!=null?" raddr %s rport %d":"%v%v",e+=t.tcptype!=null?" tcptype %s":"%v",t.generation!=null&&(e+=" generation %d"),e+=t["network-id"]!=null?" network-id %d":"%v",e+=t["network-cost"]!=null?" network-cost %d":"%v",e}},{name:"endOfCandidates",reg:/^(end-of-candidates)/},{name:"remoteCandidates",reg:/^remote-candidates:(.*)/,format:"remote-candidates:%s"},{name:"iceOptions",reg:/^ice-options:(\S*)/,format:"ice-options:%s"},{push:"ssrcs",reg:/^ssrc:(\d*) ([\w_-]*)(?::(.*))?/,names:["id","attribute","value"],format:function(t){var e="ssrc:%d";return t.attribute!=null&&(e+=" %s",t.value!=null&&(e+=":%s")),e}},{push:"ssrcGroups",reg:/^ssrc-group:([\x21\x23\x24\x25\x26\x27\x2A\x2B\x2D\x2E\w]*) (.*)/,names:["semantics","ssrcs"],format:"ssrc-group:%s %s"},{name:"msidSemantic",reg:/^msid-semantic:\s?(\w*) (\S*)/,names:["semantic","token"],format:"msid-semantic: %s %s"},{push:"groups",reg:/^group:(\w*) (.*)/,names:["type","mids"],format:"group:%s %s"},{name:"rtcpMux",reg:/^(rtcp-mux)/},{name:"rtcpRsize",reg:/^(rtcp-rsize)/},{name:"sctpmap",reg:/^sctpmap:([\w_/]*) (\S*)(?: (\S*))?/,names:["sctpmapNumber","app","maxMessageSize"],format:function(t){return t.maxMessageSize!=null?"sctpmap:%s %s %s":"sctpmap:%s %s"}},{name:"xGoogleFlag",reg:/^x-google-flag:([^\s]*)/,format:"x-google-flag:%s"},{push:"rids",reg:/^rid:([\d\w]+) (\w+)(?: ([\S| ]*))?/,names:["id","direction","params"],format:function(t){return t.params?"rid:%s %s %s":"rid:%s %s"}},{push:"imageattrs",reg:new RegExp("^imageattr:(\\d+|\\*)[\\s\\t]+(send|recv)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*)(?:[\\s\\t]+(recv|send)[\\s\\t]+(\\*|\\[\\S+\\](?:[\\s\\t]+\\[\\S+\\])*))?"),names:["pt","dir1","attrs1","dir2","attrs2"],format:function(t){return"imageattr:%s %s %s"+(t.dir2?" %s %s":"")}},{name:"simulcast",reg:new RegExp("^simulcast:(send|recv) ([a-zA-Z0-9\\-_~;,]+)(?:\\s?(send|recv) ([a-zA-Z0-9\\-_~;,]+))?$"),names:["dir1","list1","dir2","list2"],format:function(t){return"simulcast:%s %s"+(t.dir2?" %s %s":"")}},{name:"simulcast_03",reg:/^simulcast:[\s\t]+([\S+\s\t]+)$/,names:["value"],format:"simulcast: %s"},{name:"framerate",reg:/^framerate:(\d+(?:$|\.\d+))/,format:"framerate:%s"},{name:"sourceFilter",reg:/^source-filter: *(excl|incl) (\S*) (IP4|IP6|\*) (\S*) (.*)/,names:["filterMode","netType","addressTypes","destAddress","srcList"],format:"source-filter: %s %s %s %s %s"},{name:"bundleOnly",reg:/^(bundle-only)/},{name:"label",reg:/^label:(.+)/,format:"label:%s"},{name:"sctpPort",reg:/^sctp-port:(\d+)$/,format:"sctp-port:%s"},{name:"maxMessageSize",reg:/^max-message-size:(\d+)$/,format:"max-message-size:%s"},{push:"tsRefClocks",reg:/^ts-refclk:([^\s=]*)(?:=(\S*))?/,names:["clksrc","clksrcExt"],format:function(t){return"ts-refclk:%s"+(t.clksrcExt!=null?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(t){var e="mediaclk:";return e+=t.id!=null?"id=%s %s":"%v%s",e+=t.mediaClockValue!=null?"=%s":"",e+=t.rateNumerator!=null?" rate=%s":"",e+=t.rateDenominator!=null?"/%s":"",e}},{name:"keywords",reg:/^keywds:(.+)$/,format:"keywds:%s"},{name:"content",reg:/^content:(.+)/,format:"content:%s"},{name:"bfcpFloorCtrl",reg:/^floorctrl:(c-only|s-only|c-s)/,format:"floorctrl:%s"},{name:"bfcpConfId",reg:/^confid:(\d+)/,format:"confid:%s"},{name:"bfcpUserId",reg:/^userid:(\d+)/,format:"userid:%s"},{name:"bfcpFloorId",reg:/^floorid:(.+) (?:m-stream|mstrm):(.+)/,names:["id","mStream"],format:"floorid:%s mstrm:%s"},{push:"invalid",names:["value"]}]};Object.keys(jp).forEach(function(t){var e=jp[t];e.forEach(function(i){i.reg||(i.reg=/(.*)/),i.format||(i.format="%s")})}),function(t){var e=function(c){return String(Number(c))===c?Number(c):c},i=function(c,d,h,p){if(p&&!h)d[p]=e(c[1]);else for(var g=0;g<h.length;g+=1)c[g+1]!=null&&(d[h[g]]=e(c[g+1]))},r=function(c,d,h){var p=c.name&&c.names;c.push&&!d[c.push]?d[c.push]=[]:p&&!d[c.name]&&(d[c.name]={});var g=c.push?{}:p?d[c.name]:d;i(h.match(c.reg),g,c.names,c.name),c.push&&d[c.push].push(g)},n=Ll.exports,s=RegExp.prototype.test.bind(/^([a-z])=(.*)/);t.parse=function(c){var d={},h=[],p=d;return c.split(/(\r\n|\r|\n)/).filter(s).forEach(function(g){var y=g[0],T=g.slice(2);y==="m"&&(h.push({rtp:[],fmtp:[]}),p=h[h.length-1]);for(var b=0;b<(n[y]||[]).length;b+=1){var O=n[y][b];if(O.reg.test(T))return r(O,p,T)}}),d.media=h,d};var o=function(c,d){var h=d.split(/=(.+)/,2);return h.length===2?c[h[0]]=e(h[1]):h.length===1&&d.length>1&&(c[h[0]]=void 0),c};t.parseParams=function(c){return c.split(/;\s?/).reduce(o,{})},t.parseFmtpConfig=t.parseParams,t.parsePayloads=function(c){return c.toString().split(" ").map(Number)},t.parseRemoteCandidates=function(c){for(var d=[],h=c.split(" ").map(e),p=0;p<h.length;p+=3)d.push({component:h[p],ip:h[p+1],port:h[p+2]});return d},t.parseImageAttributes=function(c){return c.split(" ").map(function(d){return d.substring(1,d.length-1).split(",").reduce(o,{})})},t.parseSimulcastStreamList=function(c){return c.split(";").map(function(d){return d.split(",").map(function(h){var p,g=!1;return h[0]!=="~"?p=e(h):(p=e(h.substring(1,h.length)),g=!0),{scid:p,paused:g}})})}}(Wp);var Vl=Ll.exports,kS=/%[sdv%]/g,bS=function(t){var e=1,i=arguments,r=i.length;return t.replace(kS,function(n){if(e>=r)return n;var s=i[e];switch(e+=1,n){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},Qs=function(t,e,i){var r=e.format instanceof Function?e.format(e.push?i:i[e.name]):e.format,n=[t+"="+r];if(e.names)for(var s=0;s<e.names.length;s+=1){var o=e.names[s];e.name?n.push(i[e.name][o]):n.push(i[e.names[s]])}else n.push(i[e.name]);return bS.apply(null,n)},_S=["v","o","s","i","u","e","p","c","b","t","r","z","a"],wS=["i","c","b","a"],IS=function(t,e){e=e||{},t.version==null&&(t.version=0),t.name==null&&(t.name=" "),t.media.forEach(function(s){s.payloads==null&&(s.payloads="")});var i=e.outerOrder||_S,r=e.innerOrder||wS,n=[];return i.forEach(function(s){Vl[s].forEach(function(o){o.name in t&&t[o.name]!=null?n.push(Qs(s,o,t)):o.push in t&&t[o.push]!=null&&t[o.push].forEach(function(c){n.push(Qs(s,o,c))})})}),t.media.forEach(function(s){n.push(Qs("m",Vl.m[0],s)),r.forEach(function(o){Vl[o].forEach(function(c){c.name in s&&s[c.name]!=null?n.push(Qs(o,c,s)):c.push in s&&s[c.push]!=null&&s[c.push].forEach(function(d){n.push(Qs(o,c,d))})})})}),n.join(`\r
8
8
  `)+`\r
9
- `},$r=jp,CS=IS,gc=CS,Jr=$r.parse;$r.parseParams,$r.parseFmtpConfig,$r.parsePayloads,$r.parseRemoteCandidates,$r.parseImageAttributes,$r.parseSimulcastStreamList;var PS=Object.defineProperty,RS=Object.defineProperties,MS=Object.getOwnPropertyDescriptors,fc=Object.getOwnPropertySymbols,AS=Object.getPrototypeOf,qp=Object.prototype.hasOwnProperty,Gp=Object.prototype.propertyIsEnumerable,DS=Reflect.get,OS=Math.pow,xl=(t,e,i)=>e in t?PS(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,L=(t,e)=>{for(var i in e||(e={}))qp.call(e,i)&&xl(t,i,e[i]);if(fc)for(var i of fc(e))Gp.call(e,i)&&xl(t,i,e[i]);return t},j=(t,e)=>RS(t,MS(e)),vc=(t,e)=>{var i={};for(var r in t)qp.call(t,r)&&e.indexOf(r)<0&&(i[r]=t[r]);if(t!=null&&fc)for(var r of fc(t))e.indexOf(r)<0&&Gp.call(t,r)&&(i[r]=t[r]);return i},m=(t,e,i)=>(xl(t,typeof e!="symbol"?e+"":e,i),i),Ul=(t,e,i)=>{if(!e.has(t))throw TypeError("Cannot "+i)},a=(t,e,i)=>(Ul(t,e,"read from private field"),i?i.call(t):e.get(t)),f=(t,e,i)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,i)},v=(t,e,i,r)=>(Ul(t,e,"write to private field"),r?r.call(t,i):e.set(t,i),i),F=(t,e,i)=>(Ul(t,e,"access private method"),i),NS=(t,e,i)=>DS(AS(t),i,e),u=(t,e,i)=>new Promise((r,n)=>{var s=d=>{try{c(i.next(d))}catch(h){n(h)}},o=d=>{try{c(i.throw(d))}catch(h){n(h)}},c=d=>d.done?r(d.value):Promise.resolve(d.value).then(s,o);c((i=i.apply(t,e)).next())}),lt={},LS={get exports(){return lt},set exports(t){lt=t}},qn=typeof Reflect=="object"?Reflect:null,$p=qn&&typeof qn.apply=="function"?qn.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)},yc;qn&&typeof qn.ownKeys=="function"?yc=qn.ownKeys:Object.getOwnPropertySymbols?yc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:yc=function(t){return Object.getOwnPropertyNames(t)};function VS(t){console&&console.warn&&console.warn(t)}var Jp=Number.isNaN||function(t){return t!==t};function pe(){pe.init.call(this)}LS.exports=pe,lt.once=BS,pe.EventEmitter=pe,pe.prototype._events=void 0,pe.prototype._eventsCount=0,pe.prototype._maxListeners=void 0;var Kp=10;function Sc(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(pe,"defaultMaxListeners",{enumerable:!0,get:function(){return Kp},set:function(t){if(typeof t!="number"||t<0||Jp(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Kp=t}}),pe.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},pe.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Jp(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 zp(t){return t._maxListeners===void 0?pe.defaultMaxListeners:t._maxListeners}pe.prototype.getMaxListeners=function(){return zp(this)},pe.prototype.emit=function(t){for(var e=[],i=1;i<arguments.length;i++)e.push(arguments[i]);var r=t==="error",n=this._events;if(n!==void 0)r=r&&n.error===void 0;else if(!r)return!1;if(r){var s;if(e.length>0&&(s=e[0]),s instanceof Error)throw s;var o=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var c=n[t];if(c===void 0)return!1;if(typeof c=="function")$p(c,this,e);else for(var d=c.length,h=em(c,d),i=0;i<d;++i)$p(h[i],this,e);return!0};function Yp(t,e,i,r){var n,s,o;if(Sc(i),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,i.listener?i.listener:i),s=t._events),o=s[e]),o===void 0)o=s[e]=i,++t._eventsCount;else if(typeof o=="function"?o=s[e]=r?[i,o]:[o,i]:r?o.unshift(i):o.push(i),n=zp(t),n>0&&o.length>n&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=o.length,VS(c)}return t}pe.prototype.addListener=function(t,e){return Yp(this,t,e,!1)},pe.prototype.on=pe.prototype.addListener,pe.prototype.prependListener=function(t,e){return Yp(this,t,e,!0)};function xS(){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 Qp(t,e,i){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:i},n=xS.bind(r);return n.listener=i,r.wrapFn=n,n}pe.prototype.once=function(t,e){return Sc(e),this.on(t,Qp(this,t,e)),this},pe.prototype.prependOnceListener=function(t,e){return Sc(e),this.prependListener(t,Qp(this,t,e)),this},pe.prototype.removeListener=function(t,e){var i,r,n,s,o;if(Sc(e),r=this._events,r===void 0)return this;if(i=r[t],i===void 0)return this;if(i===e||i.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,i.listener||e));else if(typeof i!="function"){for(n=-1,s=i.length-1;s>=0;s--)if(i[s]===e||i[s].listener===e){o=i[s].listener,n=s;break}if(n<0)return this;n===0?i.shift():US(i,n),i.length===1&&(r[t]=i[0]),r.removeListener!==void 0&&this.emit("removeListener",t,o||e)}return this},pe.prototype.off=pe.prototype.removeListener,pe.prototype.removeAllListeners=function(t){var e,i,r;if(i=this._events,i===void 0)return this;if(i.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):i[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete i[t]),this;if(arguments.length===0){var n=Object.keys(i),s;for(r=0;r<n.length;++r)s=n[r],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=i[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(r=e.length-1;r>=0;r--)this.removeListener(t,e[r]);return this};function Xp(t,e,i){var r=t._events;if(r===void 0)return[];var n=r[e];return n===void 0?[]:typeof n=="function"?i?[n.listener||n]:[n]:i?FS(n):em(n,n.length)}pe.prototype.listeners=function(t){return Xp(this,t,!0)},pe.prototype.rawListeners=function(t){return Xp(this,t,!1)},pe.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):Zp.call(t,e)},pe.prototype.listenerCount=Zp;function Zp(t){var e=this._events;if(e!==void 0){var i=e[t];if(typeof i=="function")return 1;if(i!==void 0)return i.length}return 0}pe.prototype.eventNames=function(){return this._eventsCount>0?yc(this._events):[]};function em(t,e){for(var i=new Array(e),r=0;r<e;++r)i[r]=t[r];return i}function US(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function FS(t){for(var e=new Array(t.length),i=0;i<e.length;++i)e[i]=t[i].listener||t[i];return e}function BS(t,e){return new Promise(function(i,r){function n(o){t.removeListener(e,s),r(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",n),i([].slice.call(arguments))}tm(t,e,s,{once:!0}),e!=="error"&&WS(t,n,{once:!0})})}function WS(t,e,i){typeof t.on=="function"&&tm(t,"error",e,i)}function tm(t,e,i,r){if(typeof t.on=="function")r.once?t.once(e,i):t.on(e,i);else if(typeof t.addEventListener=="function")t.addEventListener(e,function n(s){r.once&&t.removeEventListener(e,n),i(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var X;(function(t){t[t.MAJOR_EVENT=0]="MAJOR_EVENT",t[t.MINOR_EVENT=1]="MINOR_EVENT"})(X||(X={}));var V;(function(t){t.PRECALL_TEST_BEGIN="precall_begin",t.PRECALL_TEST_COMPLETE="precall_end",t.CALL_JOIN_BEGIN="call_join",t.NET_QUALITY_TEST_BEGIN="net_quality_test_begin",t.NET_QUALITY_TEST_END="net_quality_test_end",t.WEBSOCKET_CONNECTED="websocket_connected",t.TRANSPORT_CONNECTED="transport_connected",t.AUDIO_ON="audio_on",t.AUDIO_OFF="audio_off",t.VIDEO_ON="video_on",t.VIDEO_OFF="video_off",t.PARTICIPANT_ROLE="participant_role",t.PING_STAT="ping_stat",t.DISCONNECT="disconnect",t.RECONNECT_ATTEMPT="reconnect_attempt",t.SCREENSHARE_START_REQUESTED="screenshare_start_requested",t.SCREENSHARE_STARTED="screenshare_started",t.SCREENSHARE_STOPPED="screenshare_stopped",t.TAB_CHANGE="tab_change",t.BROWSER_BACKGROUNDED="browser_backgrounded",t.BROWSER_FOREGROUNDED="browser_foregrounded",t.DOMINANT_SPEAKER="dominant_speaker",t.AUDIO_DEVICES_UPDATES="audio_devices_updates",t.VIDEO_DEVICES_UPDATES="video_devices_updates",t.SPEAKER_DEVICES_UPDATES="speaker_devices_updates",t.SELECTED_MICROHPONE_UPDATE="selected_microphone_update",t.SELECTED_CAMERA_UPDATE="selected_camera_update",t.SELECTED_SPEAKER_UPDATE="selected_speaker_update",t.EXPECTED_VIDEO_RESOLUTION="expected_video_resolution",t.EXPECTED_SCREENSHARE_RESOLUTION="expected_screenshare_resolution",t.MEDIA_PERMISSION="media_permission",t.LEGACY_SWITCH="legacy_switch",t.AUDIO_PLAY_FAILED="audio_play_failed",t.VIDEO_PLAY_FAILED="video_play_failed",t.AUDIO_TRACK_MUTED="audio_track_muted",t.VIDEO_TRACK_MUTED="video_track_muted",t.IVS_PLAYER_REBUFFERING="ivs_player_rebuffering",t.IVS_PLAYER_AUDIO_BLOCKED="ivs_player_audio_blocked",t.IVS_PLAYER_PLAYBACK_BLOCKED="ivs_player_playback_blocked",t.IVS_PLAYER_ERROR="ivs_player_error",t.IVS_PLAYER_RECOVERABLE_ERROR="ivs_player_recoverable_error",t.IVS_PLAYER_WORKER_ERROR="ivs_player_worker_error",t.IVS_PLAYER_NETWORK_UNAVAILABLE="ivs_player_network_unavailable",t.LIVESTREAM_LATENCY="livestream_latency",t.IVS_PLAYER_ANALYTICS_EVENT="ivs_player_analytics_event",t.IVS_PLAYER_PLAYBACK_RATE_CHANGED="ivs_player_playback_rate_changed",t.IVS_PLAYER_QUALITY_CHANGED="ivs_player_quality_changed",t.IVS_PLAYER_INITIALIZED="ivs_player_initialized"})(V||(V={}));const jS=new Map([[V.PRECALL_TEST_BEGIN,X.MINOR_EVENT],[V.PRECALL_TEST_COMPLETE,X.MINOR_EVENT],[V.CALL_JOIN_BEGIN,X.MAJOR_EVENT],[V.NET_QUALITY_TEST_BEGIN,X.MINOR_EVENT],[V.NET_QUALITY_TEST_END,X.MINOR_EVENT],[V.WEBSOCKET_CONNECTED,X.MINOR_EVENT],[V.TRANSPORT_CONNECTED,X.MAJOR_EVENT],[V.AUDIO_ON,X.MINOR_EVENT],[V.AUDIO_OFF,X.MINOR_EVENT],[V.VIDEO_ON,X.MINOR_EVENT],[V.VIDEO_OFF,X.MINOR_EVENT],[V.PARTICIPANT_ROLE,X.MINOR_EVENT],[V.PING_STAT,X.MAJOR_EVENT],[V.DISCONNECT,X.MAJOR_EVENT],[V.RECONNECT_ATTEMPT,X.MAJOR_EVENT],[V.SCREENSHARE_START_REQUESTED,X.MINOR_EVENT],[V.SCREENSHARE_STARTED,X.MINOR_EVENT],[V.SCREENSHARE_STOPPED,X.MINOR_EVENT],[V.TAB_CHANGE,X.MINOR_EVENT],[V.BROWSER_BACKGROUNDED,X.MINOR_EVENT],[V.BROWSER_FOREGROUNDED,X.MINOR_EVENT],[V.DOMINANT_SPEAKER,X.MINOR_EVENT],[V.AUDIO_DEVICES_UPDATES,X.MINOR_EVENT],[V.VIDEO_DEVICES_UPDATES,X.MINOR_EVENT],[V.SPEAKER_DEVICES_UPDATES,X.MINOR_EVENT],[V.SELECTED_MICROHPONE_UPDATE,X.MINOR_EVENT],[V.SELECTED_CAMERA_UPDATE,X.MINOR_EVENT],[V.SELECTED_SPEAKER_UPDATE,X.MINOR_EVENT],[V.MEDIA_PERMISSION,X.MINOR_EVENT],[V.LEGACY_SWITCH,X.MINOR_EVENT],[V.AUDIO_PLAY_FAILED,X.MINOR_EVENT],[V.VIDEO_PLAY_FAILED,X.MINOR_EVENT],[V.AUDIO_TRACK_MUTED,X.MINOR_EVENT],[V.VIDEO_TRACK_MUTED,X.MINOR_EVENT],[V.IVS_PLAYER_REBUFFERING,X.MAJOR_EVENT],[V.IVS_PLAYER_AUDIO_BLOCKED,X.MAJOR_EVENT],[V.IVS_PLAYER_PLAYBACK_BLOCKED,X.MAJOR_EVENT],[V.IVS_PLAYER_ERROR,X.MAJOR_EVENT],[V.IVS_PLAYER_RECOVERABLE_ERROR,X.MAJOR_EVENT],[V.IVS_PLAYER_WORKER_ERROR,X.MAJOR_EVENT],[V.IVS_PLAYER_NETWORK_UNAVAILABLE,X.MAJOR_EVENT],[V.LIVESTREAM_LATENCY,X.MAJOR_EVENT],[V.IVS_PLAYER_ANALYTICS_EVENT,X.MINOR_EVENT],[V.IVS_PLAYER_PLAYBACK_RATE_CHANGED,X.MINOR_EVENT],[V.IVS_PLAYER_QUALITY_CHANGED,X.MINOR_EVENT],[V.IVS_PLAYER_INITIALIZED,X.MINOR_EVENT],[V.EXPECTED_VIDEO_RESOLUTION,X.MINOR_EVENT],[V.EXPECTED_SCREENSHARE_RESOLUTION,X.MINOR_EVENT]]);class HS{constructor(){m(this,"events"),this.events=[]}add(e){this.events.push(e)}flush(){return{entries:this.events.splice(0,25)}}}class qS extends lt{constructor({logger:e,peerId:i,apiHostnames:r}){super(),m(this,"logger"),m(this,"peerId"),m(this,"eventStore"),m(this,"apiEndpoint"),this.logger=e,this.peerId=i,this.apiEndpoint=`https://${r.daCollector}/api/v1/message`,this.eventStore=new HS}sendEventsChunkToServer(e){return u(this,null,function*(){var i;const r={payload:e,peerId:this.peerId};try{return yield fetch(this.apiEndpoint,{method:"POST",body:JSON.stringify(r)}),!0}catch(n){return this.logger.error("callStats::sendEventsChunkToServer::catch",{error:n}),(i=e.entries)==null||i.forEach(s=>{this.eventStore.add(s)}),!1}})}callEvent(e){e.timestamp=new Date,this.eventStore.add(e),this.emit(e.event,e.metaData),jS.get(e.event)===X.MAJOR_EVENT&&this.flush()}flush(){return u(this,null,function*(){var e;const i=this.eventStore.flush();return(e=i==null?void 0:i.entries)!=null&&e.length?(yield this.sendEventsChunkToServer(i),!0):!1})}}var im;(function(t){t.CHROMIUM="chromum",t.FIREFOX="firefox",t.SAFARI="safari"})(im||(im={}));const Xs={DEVEL:"devel",PREPROD:"preprod",PROD:"prod"};var ti;(function(t){t.AUDIO="AUDIO",t.VIDEO="VIDEO",t.SPEAKER="SPEAKER",t.SCREENSHARE="SCREENSHARE"})(ti||(ti={}));var rm;(function(t){t[t.INIT=0]="INIT",t[t.ACCEPTED=1]="ACCEPTED",t[t.DENIED=2]="DENIED",t[t.SYS_DENIED=3]="SYS_DENIED",t[t.FAILED=4]="FAILED",t[t.NOTFOUND=5]="NOTFOUND",t[t.NOT_APPLICABLE=6]="NOT_APPLICABLE"})(rm||(rm={}));function lr(t){return t?t.split(".").slice(0,2).concat(["0","0"]).join("."):""}function Ec({packetsLost:t,packetsSent:e}){return e>0?t*100/e:0}function Tc({packetsLost:t,packetsReceived:e}){return e+t>0?t*100/(e+t):0}const nm=240,sm=720,am=8,om=3,kc=10,bc=.02,_c=.03;function $i({stat:t,weight:e,rangeMin:i,rangeMax:r,rangeRankingDirection:n}){return t==null?e:i===r?n==="UP"?t<=i?e:0:t>=r?e:0:n==="UP"?(1-Math.max(Math.min(r,Math.abs(t))-i,0)/(r-i))*e:n==="DOWN"?Math.max(Math.min(r,Math.abs(t))-i,0)/(r-i)*e:e}function cm({isLowQualityVideo:t,isVideoStuck:e,isVideoLagging:i,jitterQuality:r,packetsLostQuality:n}){const s=.8*((t?.85:1)*(i?.7:1)*(e?.5:1))+.2*(r*n);return Math.round((s+Number.EPSILON)*100)/100}function dm({packetsLost:t,packetsSent:e}){return e>0?t*100/e:0}function lm({packetsLost:t,packetsSent:e,jitter:i}){const r=$i({stat:dm({packetsLost:t,packetsSent:e}),weight:.7,rangeMin:0,rangeMax:kc,rangeRankingDirection:"UP"}),n=$i({stat:i,weight:.3,rangeMin:bc,rangeMax:_c,rangeRankingDirection:"UP"});return r+n}function GS({frameWidth:t,isScreenShare:e}){return t<(e?sm:nm)}function $S({framesPerSecond:t,isScreenShare:e}){return t<(e?om:am)}function JS({framesEncoded:t}){return t===0}function um({frameWidth:t,framesPerSecond:e,packetsLost:i,packetsSent:r,jitter:n,isScreenShare:s,framesEncoded:o}){const c=$i({stat:dm({packetsLost:i,packetsSent:r}),weight:1,rangeMin:0,rangeMax:kc,rangeRankingDirection:"UP"}),d=$i({stat:n,weight:1,rangeMin:bc,rangeMax:_c,rangeRankingDirection:"UP"}),h=GS({frameWidth:t,isScreenShare:s}),p=$S({framesPerSecond:e,isScreenShare:s}),g=JS({framesEncoded:o,isScreenShare:s});return cm({isLowQualityVideo:h,isVideoLagging:p,isVideoStuck:g,jitterQuality:d,packetsLostQuality:c})}function hm({packetsLost:t,packetsReceived:e}){return e+t>0?t*100/(e+t):0}function pm({concealmentEvents:t,packetsLost:e,packetsReceived:i,jitter:r}){const n=$i({stat:t,weight:.2,rangeMin:0,rangeMax:3,rangeRankingDirection:"UP"}),s=.5,o=$i({stat:hm({packetsLost:e,packetsReceived:i}),weight:s,rangeMin:0,rangeMax:kc,rangeRankingDirection:"UP"}),c=$i({stat:r,weight:.3,rangeMin:bc,rangeMax:_c,rangeRankingDirection:"UP"});return n+o+c}function KS({framesDecoded:t}){return t===0}function zS({framesPerSecond:t,isScreenShare:e}){return t<(e?om:am)}function YS({frameWidth:t,isScreenShare:e}){return t<(e?sm:nm)}function mm({frameWidth:t,framesPerSecond:e,packetsLost:i,packetsReceived:r,jitter:n,isScreenShare:s,framesDecoded:o}){const c=$i({stat:hm({packetsLost:i,packetsReceived:r}),weight:1,rangeMin:0,rangeMax:kc,rangeRankingDirection:"UP"}),d=$i({stat:n,weight:1,rangeMin:bc,rangeMax:_c,rangeRankingDirection:"UP"}),h=YS({frameWidth:t,isScreenShare:s}),p=zS({framesPerSecond:e,isScreenShare:s}),g=KS({framesDecoded:o,isScreenShare:s});return cm({isLowQualityVideo:h,isVideoLagging:p,isVideoStuck:g,jitterQuality:d,packetsLostQuality:c})}class Ji{constructor(e){m(this,"pc1"),m(this,"pc2"),m(this,"constrainVideoBitrateKbps"),m(this,"constrainOfferToRemoveVideoFec",!1),m(this,"iceCandidateFilter");const i=new RTCPeerConnection(e),r=new RTCPeerConnection(e);this.pc1=i,this.pc2=r,this.iceCandidateFilter=Ji.noFilter,this.pc1.addEventListener("icecandidate",this.onIceCandidate.bind(this,this.pc2)),this.pc2.addEventListener("icecandidate",this.onIceCandidate.bind(this,this.pc1))}static parseCandidate(e){const i="candidate:",r=e.indexOf(i)+i.length,n=e.substr(r).split(" ");return{type:n[7],protocol:n[2],address:n[4]}}static isNotHostCandidate(e){return e.type!=="host"}static isHost(e){return e.type==="host"}static isRelay(e){return e.type==="relay"}static isReflexive(e){return e.type==="srflx"}static noFilter(e){return!0}onIceCandidate(e,i){if(i.candidate){const r=Ji.parseCandidate(i.candidate.candidate);this.iceCandidateFilter(r)&&e.addIceCandidate(i.candidate)}}setIceCandidateFilter(e){this.iceCandidateFilter=e}constrainVideoBitrate(e){this.constrainVideoBitrateKbps=e}disableVideoFec(){this.constrainOfferToRemoveVideoFec=!0}gotOffer(e){this.constrainOfferToRemoveVideoFec&&(e.sdp=e.sdp.replace(/(m=video 1 [^\r]+)(116 117)(\r\n)/g,`$1\r
9
+ `},$r=Wp,CS=IS,gc=CS,Jr=$r.parse;$r.parseParams,$r.parseFmtpConfig,$r.parsePayloads,$r.parseRemoteCandidates,$r.parseImageAttributes,$r.parseSimulcastStreamList;var PS=Object.defineProperty,RS=Object.defineProperties,MS=Object.getOwnPropertyDescriptors,fc=Object.getOwnPropertySymbols,AS=Object.getPrototypeOf,Hp=Object.prototype.hasOwnProperty,qp=Object.prototype.propertyIsEnumerable,DS=Reflect.get,OS=Math.pow,xl=(t,e,i)=>e in t?PS(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,L=(t,e)=>{for(var i in e||(e={}))Hp.call(e,i)&&xl(t,i,e[i]);if(fc)for(var i of fc(e))qp.call(e,i)&&xl(t,i,e[i]);return t},j=(t,e)=>RS(t,MS(e)),vc=(t,e)=>{var i={};for(var r in t)Hp.call(t,r)&&e.indexOf(r)<0&&(i[r]=t[r]);if(t!=null&&fc)for(var r of fc(t))e.indexOf(r)<0&&qp.call(t,r)&&(i[r]=t[r]);return i},m=(t,e,i)=>(xl(t,typeof e!="symbol"?e+"":e,i),i),Ul=(t,e,i)=>{if(!e.has(t))throw TypeError("Cannot "+i)},a=(t,e,i)=>(Ul(t,e,"read from private field"),i?i.call(t):e.get(t)),f=(t,e,i)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,i)},v=(t,e,i,r)=>(Ul(t,e,"write to private field"),r?r.call(t,i):e.set(t,i),i),F=(t,e,i)=>(Ul(t,e,"access private method"),i),NS=(t,e,i)=>DS(AS(t),i,e),u=(t,e,i)=>new Promise((r,n)=>{var s=d=>{try{c(i.next(d))}catch(h){n(h)}},o=d=>{try{c(i.throw(d))}catch(h){n(h)}},c=d=>d.done?r(d.value):Promise.resolve(d.value).then(s,o);c((i=i.apply(t,e)).next())}),lt={},LS={get exports(){return lt},set exports(t){lt=t}},qn=typeof Reflect=="object"?Reflect:null,Gp=qn&&typeof qn.apply=="function"?qn.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)},yc;qn&&typeof qn.ownKeys=="function"?yc=qn.ownKeys:Object.getOwnPropertySymbols?yc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:yc=function(t){return Object.getOwnPropertyNames(t)};function VS(t){console&&console.warn&&console.warn(t)}var $p=Number.isNaN||function(t){return t!==t};function pe(){pe.init.call(this)}LS.exports=pe,lt.once=BS,pe.EventEmitter=pe,pe.prototype._events=void 0,pe.prototype._eventsCount=0,pe.prototype._maxListeners=void 0;var Jp=10;function Sc(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(pe,"defaultMaxListeners",{enumerable:!0,get:function(){return Jp},set:function(t){if(typeof t!="number"||t<0||$p(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Jp=t}}),pe.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},pe.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||$p(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 Kp(t){return t._maxListeners===void 0?pe.defaultMaxListeners:t._maxListeners}pe.prototype.getMaxListeners=function(){return Kp(this)},pe.prototype.emit=function(t){for(var e=[],i=1;i<arguments.length;i++)e.push(arguments[i]);var r=t==="error",n=this._events;if(n!==void 0)r=r&&n.error===void 0;else if(!r)return!1;if(r){var s;if(e.length>0&&(s=e[0]),s instanceof Error)throw s;var o=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var c=n[t];if(c===void 0)return!1;if(typeof c=="function")Gp(c,this,e);else for(var d=c.length,h=Zp(c,d),i=0;i<d;++i)Gp(h[i],this,e);return!0};function zp(t,e,i,r){var n,s,o;if(Sc(i),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,i.listener?i.listener:i),s=t._events),o=s[e]),o===void 0)o=s[e]=i,++t._eventsCount;else if(typeof o=="function"?o=s[e]=r?[i,o]:[o,i]:r?o.unshift(i):o.push(i),n=Kp(t),n>0&&o.length>n&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=o.length,VS(c)}return t}pe.prototype.addListener=function(t,e){return zp(this,t,e,!1)},pe.prototype.on=pe.prototype.addListener,pe.prototype.prependListener=function(t,e){return zp(this,t,e,!0)};function xS(){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 Yp(t,e,i){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:i},n=xS.bind(r);return n.listener=i,r.wrapFn=n,n}pe.prototype.once=function(t,e){return Sc(e),this.on(t,Yp(this,t,e)),this},pe.prototype.prependOnceListener=function(t,e){return Sc(e),this.prependListener(t,Yp(this,t,e)),this},pe.prototype.removeListener=function(t,e){var i,r,n,s,o;if(Sc(e),r=this._events,r===void 0)return this;if(i=r[t],i===void 0)return this;if(i===e||i.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,i.listener||e));else if(typeof i!="function"){for(n=-1,s=i.length-1;s>=0;s--)if(i[s]===e||i[s].listener===e){o=i[s].listener,n=s;break}if(n<0)return this;n===0?i.shift():US(i,n),i.length===1&&(r[t]=i[0]),r.removeListener!==void 0&&this.emit("removeListener",t,o||e)}return this},pe.prototype.off=pe.prototype.removeListener,pe.prototype.removeAllListeners=function(t){var e,i,r;if(i=this._events,i===void 0)return this;if(i.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):i[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete i[t]),this;if(arguments.length===0){var n=Object.keys(i),s;for(r=0;r<n.length;++r)s=n[r],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=i[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(r=e.length-1;r>=0;r--)this.removeListener(t,e[r]);return this};function Qp(t,e,i){var r=t._events;if(r===void 0)return[];var n=r[e];return n===void 0?[]:typeof n=="function"?i?[n.listener||n]:[n]:i?FS(n):Zp(n,n.length)}pe.prototype.listeners=function(t){return Qp(this,t,!0)},pe.prototype.rawListeners=function(t){return Qp(this,t,!1)},pe.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):Xp.call(t,e)},pe.prototype.listenerCount=Xp;function Xp(t){var e=this._events;if(e!==void 0){var i=e[t];if(typeof i=="function")return 1;if(i!==void 0)return i.length}return 0}pe.prototype.eventNames=function(){return this._eventsCount>0?yc(this._events):[]};function Zp(t,e){for(var i=new Array(e),r=0;r<e;++r)i[r]=t[r];return i}function US(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function FS(t){for(var e=new Array(t.length),i=0;i<e.length;++i)e[i]=t[i].listener||t[i];return e}function BS(t,e){return new Promise(function(i,r){function n(o){t.removeListener(e,s),r(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",n),i([].slice.call(arguments))}em(t,e,s,{once:!0}),e!=="error"&&WS(t,n,{once:!0})})}function WS(t,e,i){typeof t.on=="function"&&em(t,"error",e,i)}function em(t,e,i,r){if(typeof t.on=="function")r.once?t.once(e,i):t.on(e,i);else if(typeof t.addEventListener=="function")t.addEventListener(e,function n(s){r.once&&t.removeEventListener(e,n),i(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var X;(function(t){t[t.MAJOR_EVENT=0]="MAJOR_EVENT",t[t.MINOR_EVENT=1]="MINOR_EVENT"})(X||(X={}));var V;(function(t){t.PRECALL_TEST_BEGIN="precall_begin",t.PRECALL_TEST_COMPLETE="precall_end",t.CALL_JOIN_BEGIN="call_join",t.NET_QUALITY_TEST_BEGIN="net_quality_test_begin",t.NET_QUALITY_TEST_END="net_quality_test_end",t.WEBSOCKET_CONNECTED="websocket_connected",t.TRANSPORT_CONNECTED="transport_connected",t.AUDIO_ON="audio_on",t.AUDIO_OFF="audio_off",t.VIDEO_ON="video_on",t.VIDEO_OFF="video_off",t.PARTICIPANT_ROLE="participant_role",t.PING_STAT="ping_stat",t.DISCONNECT="disconnect",t.RECONNECT_ATTEMPT="reconnect_attempt",t.SCREENSHARE_START_REQUESTED="screenshare_start_requested",t.SCREENSHARE_STARTED="screenshare_started",t.SCREENSHARE_STOPPED="screenshare_stopped",t.TAB_CHANGE="tab_change",t.BROWSER_BACKGROUNDED="browser_backgrounded",t.BROWSER_FOREGROUNDED="browser_foregrounded",t.DOMINANT_SPEAKER="dominant_speaker",t.AUDIO_DEVICES_UPDATES="audio_devices_updates",t.VIDEO_DEVICES_UPDATES="video_devices_updates",t.SPEAKER_DEVICES_UPDATES="speaker_devices_updates",t.SELECTED_MICROHPONE_UPDATE="selected_microphone_update",t.SELECTED_CAMERA_UPDATE="selected_camera_update",t.SELECTED_SPEAKER_UPDATE="selected_speaker_update",t.EXPECTED_VIDEO_RESOLUTION="expected_video_resolution",t.EXPECTED_SCREENSHARE_RESOLUTION="expected_screenshare_resolution",t.MEDIA_PERMISSION="media_permission",t.LEGACY_SWITCH="legacy_switch",t.AUDIO_PLAY_FAILED="audio_play_failed",t.VIDEO_PLAY_FAILED="video_play_failed",t.AUDIO_TRACK_MUTED="audio_track_muted",t.VIDEO_TRACK_MUTED="video_track_muted",t.IVS_PLAYER_REBUFFERING="ivs_player_rebuffering",t.IVS_PLAYER_AUDIO_BLOCKED="ivs_player_audio_blocked",t.IVS_PLAYER_PLAYBACK_BLOCKED="ivs_player_playback_blocked",t.IVS_PLAYER_ERROR="ivs_player_error",t.IVS_PLAYER_RECOVERABLE_ERROR="ivs_player_recoverable_error",t.IVS_PLAYER_WORKER_ERROR="ivs_player_worker_error",t.IVS_PLAYER_NETWORK_UNAVAILABLE="ivs_player_network_unavailable",t.LIVESTREAM_LATENCY="livestream_latency",t.IVS_PLAYER_ANALYTICS_EVENT="ivs_player_analytics_event",t.IVS_PLAYER_PLAYBACK_RATE_CHANGED="ivs_player_playback_rate_changed",t.IVS_PLAYER_QUALITY_CHANGED="ivs_player_quality_changed",t.IVS_PLAYER_INITIALIZED="ivs_player_initialized"})(V||(V={}));const jS=new Map([[V.PRECALL_TEST_BEGIN,X.MINOR_EVENT],[V.PRECALL_TEST_COMPLETE,X.MINOR_EVENT],[V.CALL_JOIN_BEGIN,X.MAJOR_EVENT],[V.NET_QUALITY_TEST_BEGIN,X.MINOR_EVENT],[V.NET_QUALITY_TEST_END,X.MINOR_EVENT],[V.WEBSOCKET_CONNECTED,X.MINOR_EVENT],[V.TRANSPORT_CONNECTED,X.MAJOR_EVENT],[V.AUDIO_ON,X.MINOR_EVENT],[V.AUDIO_OFF,X.MINOR_EVENT],[V.VIDEO_ON,X.MINOR_EVENT],[V.VIDEO_OFF,X.MINOR_EVENT],[V.PARTICIPANT_ROLE,X.MINOR_EVENT],[V.PING_STAT,X.MAJOR_EVENT],[V.DISCONNECT,X.MAJOR_EVENT],[V.RECONNECT_ATTEMPT,X.MAJOR_EVENT],[V.SCREENSHARE_START_REQUESTED,X.MINOR_EVENT],[V.SCREENSHARE_STARTED,X.MINOR_EVENT],[V.SCREENSHARE_STOPPED,X.MINOR_EVENT],[V.TAB_CHANGE,X.MINOR_EVENT],[V.BROWSER_BACKGROUNDED,X.MINOR_EVENT],[V.BROWSER_FOREGROUNDED,X.MINOR_EVENT],[V.DOMINANT_SPEAKER,X.MINOR_EVENT],[V.AUDIO_DEVICES_UPDATES,X.MINOR_EVENT],[V.VIDEO_DEVICES_UPDATES,X.MINOR_EVENT],[V.SPEAKER_DEVICES_UPDATES,X.MINOR_EVENT],[V.SELECTED_MICROHPONE_UPDATE,X.MINOR_EVENT],[V.SELECTED_CAMERA_UPDATE,X.MINOR_EVENT],[V.SELECTED_SPEAKER_UPDATE,X.MINOR_EVENT],[V.MEDIA_PERMISSION,X.MINOR_EVENT],[V.LEGACY_SWITCH,X.MINOR_EVENT],[V.AUDIO_PLAY_FAILED,X.MINOR_EVENT],[V.VIDEO_PLAY_FAILED,X.MINOR_EVENT],[V.AUDIO_TRACK_MUTED,X.MINOR_EVENT],[V.VIDEO_TRACK_MUTED,X.MINOR_EVENT],[V.IVS_PLAYER_REBUFFERING,X.MAJOR_EVENT],[V.IVS_PLAYER_AUDIO_BLOCKED,X.MAJOR_EVENT],[V.IVS_PLAYER_PLAYBACK_BLOCKED,X.MAJOR_EVENT],[V.IVS_PLAYER_ERROR,X.MAJOR_EVENT],[V.IVS_PLAYER_RECOVERABLE_ERROR,X.MAJOR_EVENT],[V.IVS_PLAYER_WORKER_ERROR,X.MAJOR_EVENT],[V.IVS_PLAYER_NETWORK_UNAVAILABLE,X.MAJOR_EVENT],[V.LIVESTREAM_LATENCY,X.MAJOR_EVENT],[V.IVS_PLAYER_ANALYTICS_EVENT,X.MINOR_EVENT],[V.IVS_PLAYER_PLAYBACK_RATE_CHANGED,X.MINOR_EVENT],[V.IVS_PLAYER_QUALITY_CHANGED,X.MINOR_EVENT],[V.IVS_PLAYER_INITIALIZED,X.MINOR_EVENT],[V.EXPECTED_VIDEO_RESOLUTION,X.MINOR_EVENT],[V.EXPECTED_SCREENSHARE_RESOLUTION,X.MINOR_EVENT]]);class HS{constructor(){m(this,"events"),this.events=[]}add(e){this.events.push(e)}flush(){return{entries:this.events.splice(0,25)}}}class qS extends lt{constructor({logger:e,peerId:i,apiHostnames:r}){super(),m(this,"logger"),m(this,"peerId"),m(this,"eventStore"),m(this,"apiEndpoint"),this.logger=e,this.peerId=i,this.apiEndpoint=`https://${r.daCollector}/api/v1/message`,this.eventStore=new HS}sendEventsChunkToServer(e){return u(this,null,function*(){var i;const r={payload:e,peerId:this.peerId};try{return yield fetch(this.apiEndpoint,{method:"POST",body:JSON.stringify(r)}),!0}catch(n){return this.logger.error("callStats::sendEventsChunkToServer::catch",{error:n}),(i=e.entries)==null||i.forEach(s=>{this.eventStore.add(s)}),!1}})}callEvent(e){e.timestamp=new Date,this.eventStore.add(e),this.emit(e.event,e.metaData),jS.get(e.event)===X.MAJOR_EVENT&&this.flush()}flush(){return u(this,null,function*(){var e;const i=this.eventStore.flush();return(e=i==null?void 0:i.entries)!=null&&e.length?(yield this.sendEventsChunkToServer(i),!0):!1})}}var tm;(function(t){t.CHROMIUM="chromum",t.FIREFOX="firefox",t.SAFARI="safari"})(tm||(tm={}));const Xs={DEVEL:"devel",PREPROD:"preprod",PROD:"prod"};var ti;(function(t){t.AUDIO="AUDIO",t.VIDEO="VIDEO",t.SPEAKER="SPEAKER",t.SCREENSHARE="SCREENSHARE"})(ti||(ti={}));var im;(function(t){t[t.INIT=0]="INIT",t[t.ACCEPTED=1]="ACCEPTED",t[t.DENIED=2]="DENIED",t[t.SYS_DENIED=3]="SYS_DENIED",t[t.FAILED=4]="FAILED",t[t.NOTFOUND=5]="NOTFOUND",t[t.NOT_APPLICABLE=6]="NOT_APPLICABLE"})(im||(im={}));function lr(t){return t?t.split(".").slice(0,2).concat(["0","0"]).join("."):""}function Ec({packetsLost:t,packetsSent:e}){return e>0?t*100/e:0}function Tc({packetsLost:t,packetsReceived:e}){return e+t>0?t*100/(e+t):0}const rm=240,nm=720,sm=8,am=3,kc=10,bc=.02,_c=.03;function $i({stat:t,weight:e,rangeMin:i,rangeMax:r,rangeRankingDirection:n}){return t==null?e:i===r?n==="UP"?t<=i?e:0:t>=r?e:0:n==="UP"?(1-Math.max(Math.min(r,Math.abs(t))-i,0)/(r-i))*e:n==="DOWN"?Math.max(Math.min(r,Math.abs(t))-i,0)/(r-i)*e:e}function om({isLowQualityVideo:t,isVideoStuck:e,isVideoLagging:i,jitterQuality:r,packetsLostQuality:n}){const s=.8*((t?.85:1)*(i?.7:1)*(e?.5:1))+.2*(r*n);return Math.round((s+Number.EPSILON)*100)/100}function cm({packetsLost:t,packetsSent:e}){return e>0?t*100/e:0}function dm({packetsLost:t,packetsSent:e,jitter:i}){const r=$i({stat:cm({packetsLost:t,packetsSent:e}),weight:.7,rangeMin:0,rangeMax:kc,rangeRankingDirection:"UP"}),n=$i({stat:i,weight:.3,rangeMin:bc,rangeMax:_c,rangeRankingDirection:"UP"});return r+n}function GS({frameWidth:t,isScreenShare:e}){return t<(e?nm:rm)}function $S({framesPerSecond:t,isScreenShare:e}){return t<(e?am:sm)}function JS({framesEncoded:t}){return t===0}function lm({frameWidth:t,framesPerSecond:e,packetsLost:i,packetsSent:r,jitter:n,isScreenShare:s,framesEncoded:o}){const c=$i({stat:cm({packetsLost:i,packetsSent:r}),weight:1,rangeMin:0,rangeMax:kc,rangeRankingDirection:"UP"}),d=$i({stat:n,weight:1,rangeMin:bc,rangeMax:_c,rangeRankingDirection:"UP"}),h=GS({frameWidth:t,isScreenShare:s}),p=$S({framesPerSecond:e,isScreenShare:s}),g=JS({framesEncoded:o,isScreenShare:s});return om({isLowQualityVideo:h,isVideoLagging:p,isVideoStuck:g,jitterQuality:d,packetsLostQuality:c})}function um({packetsLost:t,packetsReceived:e}){return e+t>0?t*100/(e+t):0}function hm({concealmentEvents:t,packetsLost:e,packetsReceived:i,jitter:r}){const n=$i({stat:t,weight:.2,rangeMin:0,rangeMax:3,rangeRankingDirection:"UP"}),s=.5,o=$i({stat:um({packetsLost:e,packetsReceived:i}),weight:s,rangeMin:0,rangeMax:kc,rangeRankingDirection:"UP"}),c=$i({stat:r,weight:.3,rangeMin:bc,rangeMax:_c,rangeRankingDirection:"UP"});return n+o+c}function KS({framesDecoded:t}){return t===0}function zS({framesPerSecond:t,isScreenShare:e}){return t<(e?am:sm)}function YS({frameWidth:t,isScreenShare:e}){return t<(e?nm:rm)}function pm({frameWidth:t,framesPerSecond:e,packetsLost:i,packetsReceived:r,jitter:n,isScreenShare:s,framesDecoded:o}){const c=$i({stat:um({packetsLost:i,packetsReceived:r}),weight:1,rangeMin:0,rangeMax:kc,rangeRankingDirection:"UP"}),d=$i({stat:n,weight:1,rangeMin:bc,rangeMax:_c,rangeRankingDirection:"UP"}),h=YS({frameWidth:t,isScreenShare:s}),p=zS({framesPerSecond:e,isScreenShare:s}),g=KS({framesDecoded:o,isScreenShare:s});return om({isLowQualityVideo:h,isVideoLagging:p,isVideoStuck:g,jitterQuality:d,packetsLostQuality:c})}class Ji{constructor(e){m(this,"pc1"),m(this,"pc2"),m(this,"constrainVideoBitrateKbps"),m(this,"constrainOfferToRemoveVideoFec",!1),m(this,"iceCandidateFilter");const i=new RTCPeerConnection(e),r=new RTCPeerConnection(e);this.pc1=i,this.pc2=r,this.iceCandidateFilter=Ji.noFilter,this.pc1.addEventListener("icecandidate",this.onIceCandidate.bind(this,this.pc2)),this.pc2.addEventListener("icecandidate",this.onIceCandidate.bind(this,this.pc1))}static parseCandidate(e){const i="candidate:",r=e.indexOf(i)+i.length,n=e.substr(r).split(" ");return{type:n[7],protocol:n[2],address:n[4]}}static isNotHostCandidate(e){return e.type!=="host"}static isHost(e){return e.type==="host"}static isRelay(e){return e.type==="relay"}static isReflexive(e){return e.type==="srflx"}static noFilter(e){return!0}onIceCandidate(e,i){if(i.candidate){const r=Ji.parseCandidate(i.candidate.candidate);this.iceCandidateFilter(r)&&e.addIceCandidate(i.candidate)}}setIceCandidateFilter(e){this.iceCandidateFilter=e}constrainVideoBitrate(e){this.constrainVideoBitrateKbps=e}disableVideoFec(){this.constrainOfferToRemoveVideoFec=!0}gotOffer(e){this.constrainOfferToRemoveVideoFec&&(e.sdp=e.sdp.replace(/(m=video 1 [^\r]+)(116 117)(\r\n)/g,`$1\r
10
10
  `),e.sdp=e.sdp.replace(/a=rtpmap:116 red\/90000\r\n/g,""),e.sdp=e.sdp.replace(/a=rtpmap:117 ulpfec\/90000\r\n/g,""),e.sdp=e.sdp.replace(/a=rtpmap:98 rtx\/90000\r\n/g,""),e.sdp=e.sdp.replace(/a=fmtp:98 apt=116\r\n/g,"")),this.pc1.setLocalDescription(e),this.pc2.setRemoteDescription(e),this.pc2.createAnswer().then(this.gotAnswer.bind(this),this.reportFatal.bind(this))}gotAnswer(e){this.constrainVideoBitrateKbps&&(e.sdp=e.sdp.replace(/a=mid:video\r\n/g,`a=mid:video\r
11
11
  b=AS:${this.constrainVideoBitrateKbps}\r
12
- `)),this.pc2.setLocalDescription(e),this.pc1.setRemoteDescription(e)}establishConnection(){this.pc1.createOffer().then(this.gotOffer.bind(this),this.reportFatal.bind(this))}reportFatal(e){console.error("Error:",e)}getRoundTripTime(){return u(this,null,function*(){const[e,i]=yield Promise.all([this.pc1.getStats(),this.pc2.getStats()]);let r,n;if(e.forEach(s=>{s.type==="candidate-pair"&&s.nominated===!0&&s.bytesSent>0&&(r=s)}),i.forEach(s=>{s.type==="candidate-pair"&&s.nominated===!0&&s.bytesReceived>0&&(n=s)}),r&&n)try{if(r.currentRoundTripTime&&n.currentRoundTripTime)return{rtt:r.currentRoundTripTime,backendRTT:n.currentRoundTripTime};const s=(n.lastPacketReceivedTimestamp-r.lastPacketSentTimestamp)/1e3;return{rtt:s,backendRTT:s}}catch(s){return}})}close(){this.pc1.close(),this.pc2.close()}}class gm extends lt{constructor(e){super(),m(this,"call"),m(this,"timeOut"),this.call=new Ji(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 QS=8,XS=1/1e3;class ZS extends gm{constructor(e){super(e),m(this,"senderChannel"),m(this,"recieveChannel"),m(this,"startTime"),m(this,"lastBitrateMeasureTime"),m(this,"sentPayloadBytes",0),m(this,"recievedPayloadBytes",0),m(this,"lastReceivedPayloadBytes",0),m(this,"stopSending",!1),m(this,"testProgress",0),m(this,"samplePacket",""),m(this,"finalBitrateSum",0),m(this,"bitRateSampels",0),m(this,"maxNumberOfPacketsToSend",0),m(this,"bytesToKeepBuffered",0),m(this,"testDurationSeconds",5),this.call.setIceCandidateFilter(Ji.isNotHostCandidate),this.senderChannel=this.call.pc1.createDataChannel(null);for(let i=0;i<262144;i+=1)this.samplePacket+="h";this.maxNumberOfPacketsToSend=1,this.bytesToKeepBuffered=1024*this.maxNumberOfPacketsToSend,this.testDurationSeconds=4,this.senderChannel.addEventListener("open",this.sendingStep.bind(this)),this.call.pc2.addEventListener("datachannel",this.onRecieverChannel.bind(this))}sendingStep(){const e=new Date;this.startTime||(this.startTime=e,this.lastBitrateMeasureTime=e);for(let r=0;r!==this.maxNumberOfPacketsToSend&&!(this.senderChannel.bufferedAmount>=this.bytesToKeepBuffered);r+=1){this.sentPayloadBytes+=this.samplePacket.length;try{this.senderChannel.send(this.samplePacket)}catch(n){}}const i=e.getTime()-this.startTime.getTime();i>=1e3*this.testDurationSeconds?(this.stopSending=!0,this.testProgress=100):(this.testProgress=i/(10*this.testDurationSeconds),setTimeout(this.sendingStep.bind(this),1))}onMessageRecieved(e){this.recievedPayloadBytes+=e.data.length;const i=new Date,r=i.getTime()-this.lastBitrateMeasureTime.getTime();if(r>=1e3){const n=(this.recievedPayloadBytes-this.lastReceivedPayloadBytes)*QS/(r/1e3);this.finalBitrateSum+=n,this.bitRateSampels+=1,this.lastReceivedPayloadBytes=this.recievedPayloadBytes,this.lastBitrateMeasureTime=i}if(this.stopSending&&this.sentPayloadBytes===this.recievedPayloadBytes){const n=this.finalBitrateSum/this.bitRateSampels;this.testComplete({throughput:Math.round(n*XS)})}}testComplete(e){this.call.getRoundTripTime().then(({rtt:i,backendRTT:r})=>super.testComplete({RTT:i,backendRTT:r,throughput:e.throughput}))}onRecieverChannel(e){this.recieveChannel=e.channel,this.recieveChannel.addEventListener("message",this.onMessageRecieved.bind(this))}}class Fl extends gm{constructor(e,i=Ji.noFilter){super(e),m(this,"ch1"),m(this,"ch2"),this.call.setIceCandidateFilter(i);const r=this.call.pc1.createDataChannel(null);this.ch1=r,r.addEventListener("open",()=>{r.send("hello")}),r.addEventListener("message",this.onCh1Recieve.bind(this)),this.call.pc2.addEventListener("datachannel",this.dataChannelHandler.bind(this))}onCh1Recieve(e){e.data!=="world"?this.hangup("Invalid data transmitted."):this.testComplete({connectivity:!0})}onCh2Recieve(e){if(e.data!=="hello")this.hangup("Invalid data transmitted.");else try{this.ch2.send("world")}catch(i){}}dataChannelHandler(e){const i=e.channel;this.ch2=i,i.addEventListener("message",this.onCh2Recieve.bind(this))}hangup(e){this.testFailed(e)}}class eE extends Fl{constructor(e){super(e,Ji.isHost)}}class tE extends Fl{constructor(e){super(e,Ji.isRelay)}}class iE extends Fl{constructor(e){super(e,Ji.isReflexive)}}class rE{constructor(){m(this,"ipInformation",null)}getIPDetails(e){return u(this,arguments,function*({peerId:i,apiHostnames:r,logger:n}){var s,o,c;if(!this.ipInformation){try{const d=`https://${r.location}`,h=yield(yield fetch(d)).json();if(((s=h.loc)==null?void 0:s.length)>5)return this.ipInformation=h,(o=this.ipInformation)!=null&&o.ip&&(this.ipInformation.ip=lr(this.ipInformation.ip)),h;throw Error("Insufficient data")}catch(d){n.error("callstats::ipDetails:: failed to fetch ip using location service",{error:d})}try{const d=yield fetch(`https://${r.locationLegacy}/?token=3c493932b0624c&peerId=${i}`,{method:"POST"});this.ipInformation=yield d.json(),(c=this.ipInformation)!=null&&c.ip&&(this.ipInformation.ip=lr(this.ipInformation.ip))}catch(d){n.error("callstats::ipDetails:: failed to fetch ip using legacy location service",{error:d})}}return this.ipInformation})}resetCache(){this.ipInformation=null}}const Bl=new rE,fm=[{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 vm(t){const[e,i]=t.split(",");return{coords:{latitude:Number(e),longitude:Number(i)}}}class ym{constructor(){m(this,"transport"),m(this,"candidatePair"),m(this,"outboundVideoRtp",new Map),m(this,"inboundVideoRtp",new Map),m(this,"outboundAudioRtp",new Map),m(this,"inboundAudioRtp",new Map),m(this,"remoteInboundRtp",new Map),m(this,"producerStreamMap",new Map),m(this,"consumerStreamMap",new Map),m(this,"staleProducerStreamMap",!1),m(this,"staleConsumerStreamMap",!1)}}class Sm extends lt{constructor(){super(),m(this,"observer"),m(this,"outboundProducerMap",new Map),m(this,"inboundConsumerMap",new Map),m(this,"consumerPeerIdMap",new Map),m(this,"pausedConsumerMap",new Map),m(this,"pausedProducerMap",new Map),m(this,"overallProducingTransportsStatsMap",{}),m(this,"overallConsumingTransportsStatsMap",{}),m(this,"overallConsumersStatsMap",{}),m(this,"overallProducersStatsMap",{}),m(this,"videoProducerToStatsMap",new Map),m(this,"audioProducerToStatsMap",new Map),m(this,"videoConsumerToStatsMap",new Map),m(this,"audioConsumerToStatsMap",new Map),m(this,"consumerIdsWithFreezedVideo",new Set),m(this,"consumerIdsWithFreezedAudio",new Set),m(this,"producerIdsWithFreezedVideo",new Set),m(this,"producerIdsWithFreezedAudio",new Set),m(this,"freezedProducingTransportIds",new Set),m(this,"freezedConsumingTransportIds",new Set),m(this,"screenShareProducers",new Set),m(this,"screenShareConsumers",new Set),m(this,"ipDetails"),m(this,"callStatsInstance"),this.observer=new lt}registerProducer(e){return u(this,null,function*(){yield this.generateProducerStreamMap(e),e.on("close",this.deregisterProducer.bind(this,e)),e.on("pause",this.pauseProducer.bind(this,e.id)),e.on("resume",this.resumeProducer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareProducers.add(e.id)})}pauseProducer(e){this.pausedProducerMap.set(e,{lastReportCalculated:!1})}resumeProducer(e){this.pausedProducerMap.delete(e)}processInboundConsumerVideoStats(e,i,r){var n,s;const o=((s=(n=this==null?void 0:this.callStatsInstance)==null?void 0:n.consumerSharedMediaStatesMap)==null?void 0:s.get(e))||{};i.totalVideoPacketsReceived===r.packetsReceived?(this.consumerIdsWithFreezedVideo.add(e),this.callStatsInstance&&o.video&&(this.callStatsInstance.logger.debug("callstats::measurements::consumerVideoFreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_video_status","pause",e))):(i.totalVideoPacketsReceived=r.packetsReceived,this.consumerIdsWithFreezedVideo.has(e)&&(this.consumerIdsWithFreezedVideo.delete(e),this.callStatsInstance&&o.video&&(this.callStatsInstance.logger.debug("callstats::measurements::consumerVideoDefreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_video_status","resume",e))))}processInboundConsumerAudioStats(e,i,r){var n,s;const o=((s=(n=this==null?void 0:this.callStatsInstance)==null?void 0:n.consumerSharedMediaStatesMap)==null?void 0:s.get(e))||{};i.totalAudioPacketsReceived===r.packetsReceived?(this.consumerIdsWithFreezedAudio.add(e),this.callStatsInstance&&o.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::consumerAudioFreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_audio_status","pause",e))):(i.totalAudioPacketsReceived=r.packetsReceived,this.consumerIdsWithFreezedAudio.has(e)&&(this.consumerIdsWithFreezedAudio.delete(e),this.callStatsInstance&&o.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::consumerAudioDefreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_audio_status","resume",e))))}processOutboundProducerVideoStats(e,i,r){var n;const s=((n=this==null?void 0:this.callStatsInstance)==null?void 0:n.currentUserMediaStates)||{};i.totalVideoPacketsSent===r.packetsSent?(this.producerIdsWithFreezedVideo.add(e),this.callStatsInstance&&s.video&&(this.callStatsInstance.logger.debug("callStats::measurements::producerVideoFreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_video_status","pause",e))):(i.totalVideoPacketsSent=r.packetsSent,this.producerIdsWithFreezedVideo.has(e)&&(this.producerIdsWithFreezedVideo.delete(e),this.callStatsInstance&&s.video&&(this.callStatsInstance.logger.debug("callStats::measurements::producerVideoDefreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_video_status","resume",e))))}processOutboundProducerAudioStats(e,i,r){var n;const s=((n=this==null?void 0:this.callStatsInstance)==null?void 0:n.currentUserMediaStates)||{};i.totalAudioPacketsSent===r.packetsSent?(this.producerIdsWithFreezedAudio.add(e),this.callStatsInstance&&s.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::producerAudioFreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_audio_status","pause",e))):(i.totalAudioPacketsSent=r.packetsSent,this.producerIdsWithFreezedAudio.has(e)&&(this.producerIdsWithFreezedAudio.delete(e),this.callStatsInstance&&s.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::producerAudioDefreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_audio_status","resume",e))))}processProducingTransportStats(e,i,r){var n;const s=((n=this==null?void 0:this.callStatsInstance)==null?void 0:n.currentUserMediaStates)||{},{audio:o,video:c,screen:d}=s,h=o||c||d;i.totalPacketsSent===r.packetsSent?(this.freezedProducingTransportIds.add(e),this.callStatsInstance&&h&&(this.callStatsInstance.logger.debug("callStats::measurements::producingTransportFreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("producing_transport_status","pause",e))):(i.totalPacketsSent=r.packetsSent,this.freezedProducingTransportIds.has(e)&&(this.freezedProducingTransportIds.delete(e),this.callStatsInstance&&h&&(this.callStatsInstance.logger.debug("callStats::measurements::producingTransportDefreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("producing_transport_status","resume",e))))}processConsumingTransportStats(e,i,r){var n,s;const o=!!Array.from(((s=(n=this==null?void 0:this.callStatsInstance)==null?void 0:n.consumerSharedMediaStatesMap)==null?void 0:s.values())||[]).reduce((c,d)=>c||d.audio||d.video||d.screen,!1);i.totalPacketsReceived===r.packetsSent?(this.freezedConsumingTransportIds.add(e),this.callStatsInstance&&o&&(this.callStatsInstance.logger.debug("callStats::measurements::consumingTransportFreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("consuming_transport_status","pause",e))):(i.totalPacketsReceived=r.packetsSent,this.freezedConsumingTransportIds.has(e)&&(this.freezedConsumingTransportIds.delete(e),this.callStatsInstance&&o&&(this.callStatsInstance.logger.debug("callStats::measurements::consumingTransportDefreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("consuming_transport_status","resume",e))))}registerConsumer(e){return u(this,null,function*(){yield this.generateConsumerStreamMap(e),this.consumerPeerIdMap.set(e.id,{producerId:e.producerId,peerId:e.appData.peerId,appData:e.appData}),e.on("close",this.deregisterConsumer.bind(this,e)),e.on("pause",this.pauseConsumer.bind(this,e.id)),e.on("resume",this.resumeConsumer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareConsumers.add(e.id)})}pauseConsumer(e){this.pausedConsumerMap.set(e,{lastReportCalculated:!1})}resumeConsumer(e){this.pausedConsumerMap.delete(e)}generateProducerStreamMap(e,i=!1){return u(this,null,function*(){const r=yield e.getStats(),n=i?this.getProducerStatsFromReport(this.parseRTCReport(r,["outbound-rtp","remote-inbound-rtp"],!1,e.id))[0]:void 0;for(const s of r.values())switch(s.type){case"outbound-rtp":{this.outboundProducerMap.set(s.id,e.id);break}}return n})}generateConsumerStreamMap(e,i=!1){return u(this,null,function*(){const r=yield e.getStats(),n=i?this.getConsumerStatsFromReport(this.parseRTCReport(r,["inbound-rtp"],!1,e.id))[0]:void 0;for(const s of r.values())switch(s.type){case"inbound-rtp":{this.inboundConsumerMap.set(s.id,e.id);break}}return n})}deregisterProducer(e){this.outboundProducerMap.forEach((i,r)=>{i===e.id&&this.outboundProducerMap.delete(r)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.inboundConsumerMap.forEach((i,r)=>{i===e.id&&this.inboundConsumerMap.delete(r)}),this.consumerPeerIdMap.delete(e.id),this.pausedConsumerMap.delete(e.id),this.screenShareConsumers.delete(e.id)}getIceCandidateStats(e){var i;return{id:e.id,type:e.candidateType||e.type,address:e.address,port:e.port,url:e.url,protocol:(i=e.relayProtocol)!=null?i:e.protocol,networkType:e.networkType,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort}}getWorkingSimulcastVideoStats(e){return e.find(i=>{const r=i.framesEncoded>0,n=i.packetsSent>0,s=i.frameWidth&&i.frameHeight;return r&&n&&!!s})||e[e.length-1]}parseRTCReport(e,i=[],r=!1,n=void 0,s=void 0){var o,c,d,h,p,g,y,T,b,O,R,x,G;const $=e,I=new ym,se=i.length?new Set(i):void 0,ne=[],Se=[],nt=[],ft=new Map,Bt=new Map;for(const M of $.values()){if(se){if(se.size===0)break;if(se.has(M.type))r&&se.delete(M.type);else continue}switch(M.type){case"local-candidate":{ne.push(this.getIceCandidateStats(M));break}case"remote-candidate":{Se.push(this.getIceCandidateStats(M));break}case"candidate-pair":{const{nominated:k}=M,{selected:_}=M,W=M,Re={nominated:k!=null?k:_,currentRoundTripTime:W.currentRoundTripTime,totalRoundTripTime:W.totalRoundTripTime,bytesReceived:W.bytesReceived,bytesSent:W.bytesSent,availableOutgoingBitrate:W.availableOutgoingBitrate,availableIncomingBitrate:W.availableIncomingBitrate,lastPacketReceivedTimestamp:W.lastPacketReceivedTimestamp,lastPacketSentTimestamp:W.lastPacketSentTimestamp,localCandidateId:W.localCandidateId,remoteCandidateId:W.remoteCandidateId,bytesDiscardedOnSend:W.bytesDiscardedOnSend,packetsSent:W.packetsSent,packetsReceived:W.packetsReceived,packetsDiscardedOnSend:W.packetsDiscardedOnSend};nt.push(Re),(M.nominated===!0||M.selected===!0)&&(I.candidatePair=Re);break}case"transport":{const k=M;s&&(s.producing&&(this.overallProducingTransportsStatsMap[s.id]||(this.overallProducingTransportsStatsMap[s.id]={totalPacketsSent:0})),s.consuming&&(this.overallConsumingTransportsStatsMap[s.id]||(this.overallConsumingTransportsStatsMap[s.id]={totalPacketsReceived:0})));const _={bytesReceived:k.bytesReceived,bytesSent:k.bytesSent,packetsSent:k.packetsSent,packetsReceived:k.packetsReceived,dtlsCipher:k.dtlsCipher,dtlsState:k.dtlsState,iceRole:k.iceRole};if(I.transport=_,s){if(s.producing){const W=this.overallProducingTransportsStatsMap[s.id];this.processProducingTransportStats(s.id,W,_)}if(s.consuming){const W=this.overallConsumingTransportsStatsMap[s.id];this.processConsumingTransportStats(s.id,W,_)}}break}case"remote-inbound-rtp":{const k=M,_={jitter:k.jitter,fractionLost:k.fractionLost,roundTripTime:k.roundTripTime,roundTripTimeMeasurements:k.roundTripTimeMeasurements,totalRoundTripTime:k.totalRoundTripTime,packetsLost:k.packetsLost};I.remoteInboundRtp.set(k.localId,_);break}case"outbound-rtp":{const k=M,_=n||this.outboundProducerMap.get(M.id),W=this.pausedProducerMap.get(_);if(W){if(W.lastReportCalculated===!0)break;this.pausedProducerMap.set(_,{lastReportCalculated:!0})}this.overallProducersStatsMap[_]||(this.overallProducersStatsMap[_]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const Re=this.overallProducersStatsMap[_];if(["video","audio"].includes(k.mediaType)||["video","audio"].includes(k.kind)){if(!this.outboundProducerMap.has(M.id)){I.staleProducerStreamMap=!0;break}const fe=this.callStatsInstance.producers.get(_);if(((o=fe==null?void 0:fe.track)==null?void 0:o.readyState)==="ended")break;I.producerStreamMap.has(_)||I.producerStreamMap.set(_,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const U={bytesSent:k.bytesSent,packetsSent:k.packetsSent,nackCount:k.nackCount,ssrc:k.ssrc,mid:k.mid,active:k.active,codecId:k.codecId,headerBytesSent:k.headerBytesSent||0,totalPacketSendDelay:k.totalPacketSendDelay||0};if(k.mediaType==="video"||k.kind==="video"){const C=k,Ge=L({frameHeight:C.frameHeight,frameWidth:C.frameWidth,framesEncoded:C.framesEncoded,framesDropped:C.framesDropped,framesPerSecond:C.framesPerSecond,framesSent:C.framesSent,keyFramesEncoded:C.keyFramesEncoded,firCount:C.firCount,encoderImplementation:C.encoderImplementation,hugeFramesSent:C.hugeFramesSent,pliCount:C.pliCount,qpSum:C.qpSum,qualityLimitationDurations:C.qualityLimitationDurations,qualityLimitationReason:C.qualityLimitationReason,qualityLimitationResolutionChanges:C.qualityLimitationResolutionChanges,totalEncodeTime:C.targetBitrate,totalPacketSendDelay:C.totalPacketSendDelay,retransmittedBytesSent:C.retransmittedBytesSent,retransmittedPacketsSent:C.retransmittedPacketsSent,scalabilityMode:C.scalabilityMode,powerEfficientEncoder:C.powerEfficientEncoder},U);I.outboundVideoRtp.set(M.id,Ge),I.producerStreamMap.get(_).outboundVideoRtpId.push(M.id),this.processOutboundProducerVideoStats(_,Re,Ge)}else if(k.mediaType==="audio"||k.kind==="audio"){const C=k,Ge=L({retransmittedBytesSent:C.retransmittedBytesSent,retransmittedPacketsSent:C.retransmittedPacketsSent},U);I.outboundAudioRtp.set(M.id,Ge),I.producerStreamMap.get(_).outboundAudioRtpId.push(M.id),this.processOutboundProducerAudioStats(_,Re,Ge)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${k.mediaType} kind: ${k.kind}`);break}case"inbound-rtp":{const k=M,_=n||this.inboundConsumerMap.get(M.id),W=this.pausedConsumerMap.get(_);if(W){if(W.lastReportCalculated===!0)break;this.pausedConsumerMap.set(_,{lastReportCalculated:!0})}if(k.ssrc===1234)break;this.overallConsumersStatsMap[_]||(this.overallConsumersStatsMap[_]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const Re=this.overallConsumersStatsMap[_];if(["video","audio"].includes(k.mediaType)||["video","audio"].includes(k.kind)){if(!this.inboundConsumerMap.has(M.id)){I.staleConsumerStreamMap=!0;break}I.consumerStreamMap.has(_)||I.consumerStreamMap.set(_,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const fe={bytesReceived:k.bytesReceived,packetsReceived:k.packetsReceived,packetsLost:k.packetsLost>=0?k.packetsLost:0,jitter:k.jitter,nackCount:k.nackCount,jitterBufferDelay:k.jitterBufferDelay,jitterBufferEmittedCount:k.jitterBufferEmittedCount,lastPacketReceivedTimestamp:k.lastPacketReceivedTimestamp,ssrc:k.ssrc,mid:k.mid,codecId:k.codecId,headerBytesReceived:k.headerBytesReceived||0,packetsDiscarded:k.packetsDiscarded||0,jitterBufferMinimumDelay:k.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:k.jitterBufferTargetDelay||0};if(k.mediaType==="video"||k.kind==="video"){const U=k,C=L({frameHeight:U.frameHeight,frameWidth:U.frameWidth,framesDecoded:U.framesDecoded,framesDropped:U.framesDropped,framesPerSecond:U.framesPerSecond,framesReceived:U.framesReceived,keyFramesDecoded:U.keyFramesDecoded,firCount:U.firCount,decoderImplementation:U.decoderImplementation,pliCount:U.pliCount,totalProcessingDelay:U.totalProcessingDelay,qpSum:U.qpSum||0,totalAssemblyTime:U.totalAssemblyTime||0,totalDecodeTime:U.totalDecodeTime||0,totalFreezesDuration:U.totalFreezesDuration||0,totalInterFrameDelay:U.totalInterFrameDelay||0,totalPausesDuration:U.totalPausesDuration||0,totalSquaredInterFrameDelay:U.totalSquaredInterFrameDelay||0,freezeCount:U.freezeCount||0,pauseCount:U.pauseCount||0,powerEfficientDecoder:U.powerEfficientDecoder},fe);C.score=mm({frameWidth:C.frameWidth||0,framesDecoded:(C.framesDecoded||0)-(((c=this.videoConsumerToStatsMap.get(_))==null?void 0:c.framesDecoded)||0),framesPerSecond:C.framesPerSecond||0,packetsLost:(C.packetsLost||0)-(((d=this.videoConsumerToStatsMap.get(_))==null?void 0:d.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((h=this.videoConsumerToStatsMap.get(_))==null?void 0:h.packetsReceived)||0),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_)}),Bt.set(_,{score:+(C.score*10).toFixed(),frameWidth:C.frameWidth||0,frameHeight:C.frameHeight||0,framesPerSecond:C.framesPerSecond||0,packetsLostPercentage:Tc({packetsLost:(C.packetsLost||0)-(((p=this.videoConsumerToStatsMap.get(_))==null?void 0:p.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((g=this.videoConsumerToStatsMap.get(_))==null?void 0:g.packetsReceived)||0)}),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((C.bytesReceived||0)-(((y=this.videoConsumerToStatsMap.get(_))==null?void 0:y.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(_,C),I.inboundVideoRtp.set(M.id,C),I.consumerStreamMap.get(_).inboundVideoRtpId.push(M.id),this.processInboundConsumerVideoStats(_,Re,C)}else if(k.mediaType==="audio"||k.kind==="audio"){const U=k,C=L({audioLevel:U.audioLevel,concealedSamples:U.concealedSamples,concealmentEvents:U.concealmentEvents,totalAudioEnergy:U.totalAudioEnergy,totalSamplesDuration:U.totalSamplesDuration,totalSamplesReceived:U.totalSamplesReceived,fecPacketsDiscarded:U.fecPacketsDiscarded||0,fecPacketsReceived:U.fecPacketsReceived||0,insertedSamplesForDeceleration:U.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:U.removedSamplesForAcceleration||0,silentConcealedSamples:U.silentConcealedSamples||0,playoutId:U.playoutId},fe);C.score=pm({concealmentEvents:(C.concealmentEvents||0)-(((T=this.audioConsumerToStatsMap.get(_))==null?void 0:T.concealmentEvents)||0),packetsLost:(C.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((O=this.audioConsumerToStatsMap.get(_))==null?void 0:O.packetsReceived)||0),jitter:C.jitter||0}),Bt.set(_,{score:+(C.score*10).toFixed(),packetsLostPercentage:Tc({packetsLost:(C.packetsLost||0)-(((R=this.audioConsumerToStatsMap.get(_))==null?void 0:R.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((x=this.audioConsumerToStatsMap.get(_))==null?void 0:x.packetsReceived)||0)}),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((C.bytesReceived||0)-(((G=this.audioConsumerToStatsMap.get(_))==null?void 0:G.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(_,C),I.inboundAudioRtp.set(M.id,C),I.consumerStreamMap.get(_).inboundAudioRtpId.push(M.id),this.processInboundConsumerAudioStats(_,Re,C)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${k.mediaType} kind: ${k.kind}`);break}}}if(I.producerStreamMap.forEach((M,k)=>{var _,W,Re,fe,U,C,Ge,Wo,jo,Ho,qo,Go,$o,Jo,Ko,zo,Yo,Qo,Xo,Zo,ec,tc,ic;if(M.outboundVideoRtpId.length>0){const Ee=[];M.outboundVideoRtpId.forEach(Ep=>{Ee.push(I.outboundVideoRtp.get(Ep))});const ae=this.getWorkingSimulcastVideoStats(Ee);ae.score=um({frameWidth:ae.frameWidth||0,framesPerSecond:ae.framesPerSecond||0,jitter:((_=ae.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(k),packetsSent:(ae.packetsSent||0)-(((W=this.videoProducerToStatsMap.get(k))==null?void 0:W.packetsSent)||0),packetsLost:(((Re=ae.remoteData)==null?void 0:Re.packetsLost)||0)-(((U=(fe=this.videoProducerToStatsMap.get(k))==null?void 0:fe.remoteData)==null?void 0:U.packetsLost)||0),framesEncoded:(ae.framesEncoded||0)-(((C=this.videoProducerToStatsMap.get(k))==null?void 0:C.framesEncoded)||0)}),ft.set(k,{score:+(ae.score*10).toFixed(),frameWidth:ae.frameWidth||0,frameHeight:ae.frameHeight||0,framesPerSecond:ae.framesPerSecond||0,jitter:((Ge=ae.remoteData)==null?void 0:Ge.jitter)||0,isScreenShare:this.screenShareProducers.has(k),packetsLostPercentage:Ec({packetsSent:(ae.packetsSent||0)-(((Wo=this.videoProducerToStatsMap.get(k))==null?void 0:Wo.packetsSent)||0),packetsLost:(((jo=ae.remoteData)==null?void 0:jo.packetsLost)||0)-(((qo=(Ho=this.videoProducerToStatsMap.get(k))==null?void 0:Ho.remoteData)==null?void 0:qo.packetsLost)||0)}),bitrate:((ae.bytesSent||0)-(((Go=this.videoProducerToStatsMap.get(k))==null?void 0:Go.bytesSent)||0))*8/7,cpuLimitations:ae.qualityLimitationReason==="cpu",bandwidthLimitations:ae.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(k,ae)}else if(M.outboundAudioRtpId.length>0){const Ee=I.outboundAudioRtp.get(M.outboundAudioRtpId[0]);Ee.score=lm({packetsSent:(Ee.packetsSent||0)-((($o=this.audioProducerToStatsMap.get(k))==null?void 0:$o.packetsSent)||0),packetsLost:(((Jo=Ee.remoteData)==null?void 0:Jo.packetsLost)||0)-(((zo=(Ko=this.audioProducerToStatsMap.get(k))==null?void 0:Ko.remoteData)==null?void 0:zo.packetsLost)||0),jitter:((Yo=Ee.remoteData)==null?void 0:Yo.jitter)||0}),ft.set(k,{score:+(Ee.score*10).toFixed(),bitrate:((Ee.bytesSent||0)-(((Qo=this.audioProducerToStatsMap.get(k))==null?void 0:Qo.bytesSent)||0))*8/7,packetsLostPercentage:Ec({packetsSent:(Ee.packetsSent||0)-(((Xo=this.audioProducerToStatsMap.get(k))==null?void 0:Xo.packetsSent)||0),packetsLost:(((Zo=Ee.remoteData)==null?void 0:Zo.packetsLost)||0)-(((tc=(ec=this.audioProducerToStatsMap.get(k))==null?void 0:ec.remoteData)==null?void 0:tc.packetsLost)||0)}),jitter:((ic=Ee.remoteData)==null?void 0:ic.jitter)||0,isScreenShare:this.screenShareProducers.has(k)}),this.audioProducerToStatsMap.set(k,Ee)}}),nt.forEach(M=>{const k=ne.find(W=>W.id===M.localCandidateId?(M.localCandidateId=W.id,W):null),_=Se.find(W=>W.id===M.remoteCandidateId?(M.remoteCandidateId=W.id,W):null);k&&(M.localCandidateType=k.type,M.localCandidateAddress=lr(k.address),M.localCandidatePort=k.port,M.localCandidateProtocol=k.protocol,M.localCandidateUrl=k.url,M.localCandidateNetworkType=k.networkType,M.localCandidateRelatedAddress=lr(k.relatedAddress),M.localCandidateRelatedPort=k.relatedPort),_&&(M.remoteCandidateType=_.type,M.remoteCandidateAddress=lr(_.address),M.remoteCandidatePort=_.port,M.remoteCandidateProtocol=_.protocol,M.remoteCandidateUrl=_.url)}),I.candidatePair&&(I.transport?(I.transport.totalRoundTripTime=I.candidatePair.totalRoundTripTime,I.transport.availableOutgoingBitrate=I.candidatePair.availableOutgoingBitrate,I.transport.availableIncomingBitrate=I.candidatePair.availableIncomingBitrate,I.transport.roundTripTime=I.candidatePair.currentRoundTripTime):I.transport={bytesReceived:I.candidatePair.bytesReceived,bytesSent:I.candidatePair.bytesSent,totalRoundTripTime:I.candidatePair.totalRoundTripTime,availableOutgoingBitrate:I.candidatePair.availableOutgoingBitrate,availableIncomingBitrate:I.candidatePair.availableIncomingBitrate,roundTripTime:I.candidatePair.currentRoundTripTime}),I.transport&&(I.transport.candidatePairs=nt),I.transport&&!I.transport.roundTripTime){let M=0,k=0;I.remoteInboundRtp.forEach((_,W)=>{_.roundTripTime&&_.roundTripTime>M&&(M=_.roundTripTime,k=_.totalRoundTripTime)}),I.transport.roundTripTime=M,I.transport.totalRoundTripTime=k}if(Bt.size>0)try{this.observer.emit("consumer_score",Bt)}catch(M){}if(ft.size>0)try{this.observer.emit("producer_score",ft)}catch(M){}return I}getProducersReport(e){return u(this,null,function*(){const i=e.map(r=>this.generateProducerStreamMap(r,!0));return i.length>0?Promise.all(i):void 0})}getConsumersReport(e){return u(this,null,function*(){const i=e.map(r=>this.generateConsumerStreamMap(r,!0));return i.length>0?Promise.all(i):void 0})}getTransportReport(e){return u(this,null,function*(){return e.getStats()})}getProcessedStats(e,i,r){return u(this,null,function*(){const n=yield this.getTransportReport(e),s={producing:r,consuming:i,id:e.id},o=n,c=this.parseRTCReport(o,["transport","candidate-pair","inbound-rtp","outbound-rtp","remote-inbound-rtp","local-candidate","remote-candidate"],!1,void 0,s);if(!c)return;const d={stats:c.transport,transportId:e.id,consuming:i,producing:r},h=c.staleProducerStreamMap?void 0:this.getProducerStatsFromReport(c),p=c.staleConsumerStreamMap?void 0:this.getConsumerStatsFromReport(c);return{transportReport:d,producerReport:h,consumerReport:p}})}getProducerStatsFromReport(e){const i=[];try{e.producerStreamMap.forEach((r,n)=>{var s,o;i.push({producerId:n,videoStats:r.outboundVideoRtpId.map(c=>e.outboundVideoRtp.get(c)),audioStats:r.outboundAudioRtpId.map(c=>e.outboundAudioRtp.get(c)),appData:((o=(s=this.callStatsInstance.producers)==null?void 0:s.get(n))==null?void 0:o.appData)||null})})}catch(r){this.callStatsInstance.logger.error("callStats::measurements::getProducerStatsFromReport",{error:{reason:r.reason,message:r.message}})}return i}getConsumerStatsFromReport(e){const i=[];try{e.consumerStreamMap.forEach((r,n)=>{const{peerId:s,producerId:o,appData:c}=this.consumerPeerIdMap.get(n);i.push({consumerId:n,peerId:s,producerId:o,appData:c,videoStats:r.inboundVideoRtpId.map(d=>e.inboundVideoRtp.get(d)),audioStats:r.inboundAudioRtpId.map(d=>e.inboundAudioRtp.get(d))})})}catch(r){console.error("getConsumersReport: ",r,e)}return i}getUserLocation(){return u(this,null,function*(){return new Promise((e,i)=>{try{navigator.geolocation?navigator.geolocation.getCurrentPosition(r=>{e(r)}):i()}catch(r){i(r)}})})}getConnectivity(e){return u(this,null,function*(){try{const i={iceServers:e||fm},r=new Promise((h,p)=>{try{const g=new eE(i);g.addListener("done",h),g.addListener("failed",()=>{h({connectivity:!1})}),g.start(2e3)}catch(g){p(g)}}),n=new Promise((h,p)=>{try{const g=new tE(i);g.addListener("done",h),g.addListener("failed",()=>{h({connectivity:!1})}),g.start(2e3)}catch(g){p(g)}}),s=new Promise((h,p)=>{try{const g=new iE(i);g.addListener("done",h),g.addListener("failed",()=>{h({connectivity:!1})}),g.start(2e3)}catch(g){p(g)}}),[o,c,d]=yield Promise.all([r,n,s]);return{host:o==null?void 0:o.connectivity,relay:c==null?void 0:c.connectivity,reflexive:d==null?void 0:d.connectivity}}catch(i){return{host:!1,relay:!1,reflexive:!1}}})}getThroughput(e){return u(this,null,function*(){try{const i=yield new Promise((r,n)=>{try{const s={iceServers:e||fm},o=new ZS(s);o.addListener("done",r),o.addListener("failed",n),o.start(1e4)}catch(s){n(s)}});return{throughput:i.throughput,fractionalLoss:0,RTT:i.RTT,jitter:0,backendRTT:i.backendRTT}}catch(i){return}})}getIPDetails(){return u(this,null,function*(){var e,i;try{return this.ipDetails||(this.ipDetails=yield Bl.getIPDetails({peerId:(e=this.callStatsInstance)==null?void 0:e.peerId,apiHostnames:(i=this.callStatsInstance)==null?void 0:i.apiHostnames,logger:this.callStatsInstance.logger})),this.ipDetails}catch(r){return}})}getNetworkQuality(e){return u(this,null,function*(){const[i,r]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e)]);return{connectivity:i,throughput:r==null?void 0:r.throughput,fractionalLoss:r==null?void 0:r.fractionalLoss,RTT:r==null?void 0:r.RTT,jitter:r==null?void 0:r.jitter,backendRTT:r==null?void 0:r.backendRTT}})}getNetworkInfo(e,i=!1){return u(this,null,function*(){var r,n;if(i){const d=yield this.getIPDetails();return{ipDetails:d,effectiveNetworkType:(r=navigator.connection)==null?void 0:r.effectiveType,location:d!=null&&d.loc?vm(d==null?void 0:d.loc):void 0}}const[s,o,c]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e),this.getIPDetails()]);return{ipDetails:c,effectiveNetworkType:(n=navigator.connection)==null?void 0:n.effectiveType,location:c!=null&&c.loc?vm(c==null?void 0:c.loc):void 0,turnConnectivity:s?s.host||s.relay||s.reflexive:!1,connectivity:s,throughput:o==null?void 0:o.throughput,fractionalLoss:o==null?void 0:o.fractionalLoss,RTT:o==null?void 0:o.RTT,jitter:o==null?void 0:o.jitter,backendRTT:o==null?void 0:o.backendRTT}})}}class nE extends Sm{}class Em extends Sm{constructor(){super(...arguments),m(this,"producerMap",new Map),m(this,"consumerMap",new Map)}registerProducer(e){return u(this,null,function*(){this.producerMap.set(e.id,e),yield this.generateProducerStreamMap(e),e.on("close",this.deregisterProducer.bind(this,e)),e.on("pause",this.pauseProducer.bind(this,e.id)),e.on("resume",this.resumeProducer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareProducers.add(e.id)})}registerConsumer(e){return u(this,null,function*(){this.consumerMap.set(e.id,e),yield this.generateConsumerStreamMap(e),this.consumerPeerIdMap.set(e.id,{producerId:e.producerId,peerId:e.appData.peerId,appData:e.appData}),e.on("close",this.deregisterConsumer.bind(this,e)),e.on("pause",this.pauseConsumer.bind(this,e.id)),e.on("resume",this.resumeConsumer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareConsumers.add(e.id)})}generateConsumerStreamMap(e,i=!1){return u(this,null,function*(){const r=yield e.getStats(),n=this.parseRTCReport(r,["inbound-rtp"],!1,e.id),s=[...n.consumerStreamMap.values()][0],o=i?this.getConsumerStatsFromParsedConsumerStats(n,s,e.id):void 0;for(const c of r.values())switch(c.type){case"inbound-rtp":{this.inboundConsumerMap.set(c.id,e.id);break}}return o})}deregisterProducer(e){this.producerMap.delete(e.id),this.outboundProducerMap.forEach((i,r)=>{i===e.id&&this.outboundProducerMap.delete(r)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.consumerMap.delete(e.id),this.inboundConsumerMap.forEach((i,r)=>{i===e.id&&this.inboundConsumerMap.delete(r)}),this.consumerPeerIdMap.delete(e.id),this.pausedConsumerMap.delete(e.id),this.screenShareConsumers.delete(e.id)}getIceCandidateStats(e){var i;return{id:e.id,type:e.candidateType||e.type,address:e.address,port:e.port,url:e.url,protocol:(i=e.relayProtocol)!=null?i:e.protocol,networkType:e.networkType,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort}}parseRTCReport(e,i=[],r=!1,n=void 0,s=void 0){var o,c,d,h,p,g,y,T,b,O,R,x,G;const $=e,I=new ym,se=i.length?new Set(i):void 0,ne=[],Se=[],nt=[],ft=new Map,Bt=new Map;for(const M of $.values()){if(se){if(se.size===0)break;if(se.has(M.type))r&&se.delete(M.type);else continue}switch(M.type){case"local-candidate":{ne.push(this.getIceCandidateStats(M));break}case"remote-candidate":{Se.push(this.getIceCandidateStats(M));break}case"candidate-pair":{const{nominated:k}=M,{selected:_}=M,W=M,Re={nominated:k!=null?k:_,currentRoundTripTime:W.currentRoundTripTime,totalRoundTripTime:W.totalRoundTripTime,bytesReceived:W.bytesReceived,bytesSent:W.bytesSent,availableOutgoingBitrate:W.availableOutgoingBitrate,availableIncomingBitrate:W.availableIncomingBitrate,lastPacketReceivedTimestamp:W.lastPacketReceivedTimestamp,lastPacketSentTimestamp:W.lastPacketSentTimestamp,localCandidateId:W.localCandidateId,remoteCandidateId:W.remoteCandidateId,bytesDiscardedOnSend:W.bytesDiscardedOnSend,packetsSent:W.packetsSent,packetsReceived:W.packetsReceived,packetsDiscardedOnSend:W.packetsDiscardedOnSend};nt.push(Re),(M.nominated===!0||M.selected===!0)&&(I.candidatePair=Re);break}case"transport":{const k=M;s&&(s.producing&&(this.overallProducingTransportsStatsMap[s.id]||(this.overallProducingTransportsStatsMap[s.id]={totalPacketsSent:0})),s.consuming&&(this.overallConsumingTransportsStatsMap[s.id]||(this.overallConsumingTransportsStatsMap[s.id]={totalPacketsReceived:0})));const _={bytesReceived:k.bytesReceived,bytesSent:k.bytesSent,packetsSent:k.packetsSent,packetsReceived:k.packetsReceived,dtlsCipher:k.dtlsCipher,dtlsState:k.dtlsState,iceRole:k.iceRole};if(I.transport=_,s){if(s.producing){const W=this.overallProducingTransportsStatsMap[s.id];this.processProducingTransportStats(s.id,W,_)}if(s.consuming){const W=this.overallConsumingTransportsStatsMap[s.id];this.processConsumingTransportStats(s.id,W,_)}}break}case"remote-inbound-rtp":{const k=M,_={jitter:k.jitter,fractionLost:k.fractionLost,roundTripTime:k.roundTripTime,roundTripTimeMeasurements:k.roundTripTimeMeasurements,totalRoundTripTime:k.totalRoundTripTime,packetsLost:k.packetsLost};I.remoteInboundRtp.set(k.localId,_);break}case"outbound-rtp":{const k=M,_=n||this.outboundProducerMap.get(M.id),W=this.pausedProducerMap.get(_);if(W){if(W.lastReportCalculated===!0)break;this.pausedProducerMap.set(_,{lastReportCalculated:!0})}this.overallProducersStatsMap[_]||(this.overallProducersStatsMap[_]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const Re=this.overallProducersStatsMap[_];if(["video","audio"].includes(k.mediaType)||["video","audio"].includes(k.kind)){if(!this.outboundProducerMap.has(M.id)){I.staleProducerStreamMap=!0;break}const fe=this.callStatsInstance.producers.get(_);if(((o=fe==null?void 0:fe.track)==null?void 0:o.readyState)==="ended")break;I.producerStreamMap.has(_)||I.producerStreamMap.set(_,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const U={bytesSent:k.bytesSent,packetsSent:k.packetsSent,nackCount:k.nackCount,ssrc:k.ssrc,mid:k.mid,active:k.active,codecId:k.codecId,headerBytesSent:k.headerBytesSent||0,totalPacketSendDelay:k.totalPacketSendDelay||0};if(k.mediaType==="video"||k.kind==="video"){const C=k,Ge=L({frameHeight:C.frameHeight,frameWidth:C.frameWidth,framesEncoded:C.framesEncoded,framesDropped:C.framesDropped?C.framesDropped:C.droppedFrames,framesPerSecond:C.framesPerSecond?C.framesPerSecond:C.framerateMean,framesSent:C.framesSent,keyFramesEncoded:C.keyFramesEncoded,firCount:C.firCount,encoderImplementation:C.encoderImplementation,hugeFramesSent:C.hugeFramesSent,pliCount:C.pliCount,qpSum:C.qpSum,qualityLimitationReason:C.qualityLimitationReason,qualityLimitationDurations:C.qualityLimitationDurations,qualityLimitationResolutionChanges:C.qualityLimitationResolutionChanges,totalEncodeTime:C.totalEncodeTime,totalPacketSendDelay:C.totalEncodeTime,retransmittedBytesSent:C.retransmittedBytesSent,retransmittedPacketsSent:C.retransmittedPacketsSent,scalabilityMode:C.scalabilityMode,powerEfficientEncoder:C.powerEfficientEncoder},U);I.outboundVideoRtp.set(M.id,Ge),I.producerStreamMap.get(_).outboundVideoRtpId.push(M.id),this.processOutboundProducerVideoStats(_,Re,Ge)}else if(k.mediaType==="audio"||k.kind==="audio"){const C=k,Ge=L({retransmittedBytesSent:C.retransmittedBytesSent,retransmittedPacketsSent:C.retransmittedPacketsSent},U);I.outboundAudioRtp.set(M.id,Ge),I.producerStreamMap.get(_).outboundAudioRtpId.push(M.id),this.processOutboundProducerAudioStats(_,Re,Ge)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${k.mediaType} kind: ${k.kind}`);break}case"inbound-rtp":{const k=M,_=n||this.inboundConsumerMap.get(M.id),W=this.pausedConsumerMap.get(_);if(W){if(W.lastReportCalculated===!0)break;this.pausedConsumerMap.set(_,{lastReportCalculated:!0})}if(k.ssrc===1234)break;this.overallConsumersStatsMap[_]||(this.overallConsumersStatsMap[_]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const Re=this.overallConsumersStatsMap[_];if(["video","audio"].includes(k.mediaType)||["video","audio"].includes(k.kind)){if(!this.inboundConsumerMap.has(M.id)){I.staleConsumerStreamMap=!0;break}I.consumerStreamMap.has(_)||I.consumerStreamMap.set(_,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const fe={bytesReceived:k.bytesReceived,packetsReceived:k.packetsReceived,packetsLost:k.packetsLost>=0?k.packetsLost:0,jitter:k.jitter,nackCount:k.nackCount,jitterBufferDelay:k.jitterBufferDelay,jitterBufferEmittedCount:k.jitterBufferEmittedCount,lastPacketReceivedTimestamp:k.lastPacketReceivedTimestamp,ssrc:k.ssrc,mid:k.mid,codecId:k.codecId,headerBytesReceived:k.headerBytesReceived||0,packetsDiscarded:k.packetsDiscarded||0,jitterBufferMinimumDelay:k.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:k.jitterBufferTargetDelay||0};if(k.mediaType==="video"||k.kind==="video"){const U=k,C=L({frameHeight:U.frameHeight,frameWidth:U.frameWidth,framesDecoded:U.framesDecoded,framesDropped:U.framesDropped?U.framesDropped:U.droppedFrames,framesPerSecond:U.framesPerSecond?U.framesPerSecond:U.framerateMean,framesReceived:U.framesReceived,keyFramesDecoded:U.keyFramesDecoded,firCount:U.firCount,decoderImplementation:U.decoderImplementation,pliCount:U.pliCount,totalProcessingDelay:U.totalProcessingDelay,qpSum:U.qpSum||0,totalAssemblyTime:U.totalAssemblyTime||0,totalDecodeTime:U.totalDecodeTime||0,totalFreezesDuration:U.totalFreezesDuration||0,totalInterFrameDelay:U.totalInterFrameDelay||0,totalPausesDuration:U.totalPausesDuration||0,totalSquaredInterFrameDelay:U.totalSquaredInterFrameDelay||0,freezeCount:U.freezeCount||0,pauseCount:U.pauseCount||0,powerEfficientDecoder:U.powerEfficientDecoder},fe);C.score=mm({frameWidth:C.frameWidth||0,framesDecoded:(C.framesDecoded||0)-(((c=this.videoConsumerToStatsMap.get(_))==null?void 0:c.framesDecoded)||0),framesPerSecond:C.framesPerSecond||0,packetsLost:(C.packetsLost||0)-(((d=this.videoConsumerToStatsMap.get(_))==null?void 0:d.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((h=this.videoConsumerToStatsMap.get(_))==null?void 0:h.packetsReceived)||0),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_)}),Bt.set(_,{score:+(C.score*10).toFixed(),frameWidth:C.frameWidth||0,frameHeight:C.frameHeight||0,framesPerSecond:C.framesPerSecond||0,packetsLostPercentage:Tc({packetsLost:(C.packetsLost||0)-(((p=this.videoConsumerToStatsMap.get(_))==null?void 0:p.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((g=this.videoConsumerToStatsMap.get(_))==null?void 0:g.packetsReceived)||0)}),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((C.bytesReceived||0)-(((y=this.videoConsumerToStatsMap.get(_))==null?void 0:y.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(_,C),I.inboundVideoRtp.set(M.id,C),I.consumerStreamMap.get(_).inboundVideoRtpId.push(M.id),this.processInboundConsumerVideoStats(_,Re,C)}else if(k.mediaType==="audio"||k.kind==="audio"){const U=k,C=L({audioLevel:U.audioLevel,concealedSamples:U.concealedSamples,concealmentEvents:U.concealmentEvents,totalAudioEnergy:U.totalAudioEnergy,totalSamplesDuration:U.totalSamplesDuration,totalSamplesReceived:U.totalSamplesReceived,fecPacketsDiscarded:U.fecPacketsDiscarded||0,fecPacketsReceived:U.fecPacketsReceived||0,insertedSamplesForDeceleration:U.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:U.removedSamplesForAcceleration||0,silentConcealedSamples:U.silentConcealedSamples||0,playoutId:U.playoutId},fe);C.score=pm({concealmentEvents:(C.concealmentEvents||0)-(((T=this.audioConsumerToStatsMap.get(_))==null?void 0:T.concealmentEvents)||0),packetsLost:(C.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((O=this.audioConsumerToStatsMap.get(_))==null?void 0:O.packetsReceived)||0),jitter:C.jitter||0}),Bt.set(_,{score:+(C.score*10).toFixed(),packetsLostPercentage:Tc({packetsLost:(C.packetsLost||0)-(((R=this.audioConsumerToStatsMap.get(_))==null?void 0:R.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((x=this.audioConsumerToStatsMap.get(_))==null?void 0:x.packetsReceived)||0)}),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((C.bytesReceived||0)-(((G=this.audioConsumerToStatsMap.get(_))==null?void 0:G.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(_,C),I.inboundAudioRtp.set(M.id,C),I.consumerStreamMap.get(_).inboundAudioRtpId.push(M.id),this.processInboundConsumerAudioStats(_,Re,C)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${k.mediaType} kind: ${k.kind}`);break}}}if(I.producerStreamMap.forEach((M,k)=>{var _,W,Re,fe,U,C,Ge,Wo,jo,Ho,qo,Go,$o,Jo,Ko,zo,Yo,Qo,Xo,Zo,ec,tc,ic;if(M.outboundVideoRtpId.length>0){const Ee=[];M.outboundVideoRtpId.forEach(Ep=>{Ee.push(I.outboundVideoRtp.get(Ep))});const ae=this.getWorkingSimulcastVideoStats(Ee);ae.score=um({frameWidth:ae.frameWidth||0,framesPerSecond:ae.framesPerSecond||0,jitter:((_=ae.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(k),packetsSent:(ae.packetsSent||0)-(((W=this.videoProducerToStatsMap.get(k))==null?void 0:W.packetsSent)||0),packetsLost:(((Re=ae.remoteData)==null?void 0:Re.packetsLost)||0)-(((U=(fe=this.videoProducerToStatsMap.get(k))==null?void 0:fe.remoteData)==null?void 0:U.packetsLost)||0),framesEncoded:(ae.framesEncoded||0)-(((C=this.videoProducerToStatsMap.get(k))==null?void 0:C.framesEncoded)||0)}),ft.set(k,{score:+(ae.score*10).toFixed(),frameWidth:ae.frameWidth||0,frameHeight:ae.frameHeight||0,framesPerSecond:ae.framesPerSecond||0,jitter:((Ge=ae.remoteData)==null?void 0:Ge.jitter)||0,isScreenShare:this.screenShareProducers.has(k),packetsLostPercentage:Ec({packetsSent:(ae.packetsSent||0)-(((Wo=this.videoProducerToStatsMap.get(k))==null?void 0:Wo.packetsSent)||0),packetsLost:(((jo=ae.remoteData)==null?void 0:jo.packetsLost)||0)-(((qo=(Ho=this.videoProducerToStatsMap.get(k))==null?void 0:Ho.remoteData)==null?void 0:qo.packetsLost)||0)}),bitrate:((ae.bytesSent||0)-(((Go=this.videoProducerToStatsMap.get(k))==null?void 0:Go.bytesSent)||0))*8/7,cpuLimitations:ae.qualityLimitationReason==="cpu",bandwidthLimitations:ae.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(k,ae)}else if(M.outboundAudioRtpId.length>0){const Ee=I.outboundAudioRtp.get(M.outboundAudioRtpId[0]);Ee.score=lm({packetsSent:(Ee.packetsSent||0)-((($o=this.audioProducerToStatsMap.get(k))==null?void 0:$o.packetsSent)||0),packetsLost:(((Jo=Ee.remoteData)==null?void 0:Jo.packetsLost)||0)-(((zo=(Ko=this.audioProducerToStatsMap.get(k))==null?void 0:Ko.remoteData)==null?void 0:zo.packetsLost)||0),jitter:((Yo=Ee.remoteData)==null?void 0:Yo.jitter)||0}),ft.set(k,{score:+(Ee.score*10).toFixed(),bitrate:((Ee.bytesSent||0)-(((Qo=this.audioProducerToStatsMap.get(k))==null?void 0:Qo.bytesSent)||0))*8/7,packetsLostPercentage:Ec({packetsSent:(Ee.packetsSent||0)-(((Xo=this.audioProducerToStatsMap.get(k))==null?void 0:Xo.packetsSent)||0),packetsLost:(((Zo=Ee.remoteData)==null?void 0:Zo.packetsLost)||0)-(((tc=(ec=this.audioProducerToStatsMap.get(k))==null?void 0:ec.remoteData)==null?void 0:tc.packetsLost)||0)}),jitter:((ic=Ee.remoteData)==null?void 0:ic.jitter)||0,isScreenShare:this.screenShareProducers.has(k)}),this.audioProducerToStatsMap.set(k,Ee)}}),nt.forEach(M=>{const k=ne.find(W=>W.id===M.localCandidateId?(M.localCandidateId=W.id,W):null),_=Se.find(W=>W.id===M.remoteCandidateId?(M.remoteCandidateId=W.id,W):null);k&&(M.localCandidateType=k.type,M.localCandidateAddress=lr(k.address),M.localCandidatePort=k.port,M.localCandidateProtocol=k.protocol,M.localCandidateUrl=k.url,M.localCandidateNetworkType=k.networkType,M.localCandidateRelatedAddress=lr(k.relatedAddress),M.localCandidateRelatedPort=k.relatedPort),_&&(M.remoteCandidateType=_.type,M.remoteCandidateAddress=lr(_.address),M.remoteCandidatePort=_.port,M.remoteCandidateProtocol=_.protocol,M.remoteCandidateUrl=_.url)}),I.candidatePair&&(I.transport?(I.transport.bytesReceived=I.candidatePair.bytesReceived,I.transport.bytesSent=I.candidatePair.bytesSent,I.transport.totalRoundTripTime=I.candidatePair.totalRoundTripTime,I.transport.availableOutgoingBitrate=I.candidatePair.availableOutgoingBitrate,I.transport.availableIncomingBitrate=I.candidatePair.availableIncomingBitrate,I.transport.roundTripTime=I.candidatePair.currentRoundTripTime):I.transport={bytesReceived:I.candidatePair.bytesReceived,bytesSent:I.candidatePair.bytesSent,totalRoundTripTime:I.candidatePair.totalRoundTripTime,availableOutgoingBitrate:I.candidatePair.availableOutgoingBitrate,availableIncomingBitrate:I.candidatePair.availableIncomingBitrate,roundTripTime:I.candidatePair.currentRoundTripTime}),I.transport&&(I.transport.candidatePairs=nt),I.transport&&!I.transport.roundTripTime){let M=0,k=0;I.remoteInboundRtp.forEach((_,W)=>{_.roundTripTime&&_.roundTripTime>M&&(M=_.roundTripTime,k=_.totalRoundTripTime)}),I.transport.roundTripTime=M,I.transport.totalRoundTripTime=k}if(Bt.size>0)try{this.observer.emit("consumer_score",Bt)}catch(M){}if(ft.size>0)try{this.observer.emit("producer_score",ft)}catch(M){}return I}getProducerStatsFromReport(e){const i=[];try{e.producerStreamMap.forEach((r,n)=>{const s=this.producerMap.get(n),o=s.track.getSettings(),c=r.outboundVideoRtpId.map(h=>{const p=e.outboundVideoRtp.get(h);return p.frameHeight||(p.frameHeight=o.height,p.frameWidth=o.width,p.framesPerSecond=o.frameRate),p}),d={producerId:n,appData:s.appData,videoStats:c,audioStats:r.outboundAudioRtpId.map(h=>e.outboundAudioRtp.get(h))};i.push(d)})}catch(r){console.error("getProducersReport: ",r,e)}return i}getConsumerStatsFromParsedConsumerStats(e,i,r){let n;try{const{peerId:s,producerId:o,appData:c}=this.consumerPeerIdMap.get(r),d=i==null?void 0:i.inboundVideoRtpId.map(h=>{const p=this.consumerMap.get(r).track.getSettings(),g=e.inboundVideoRtp.get(h);return g.frameHeight||(g.frameHeight=p.height,g.frameWidth=p.width,g.framesPerSecond=p.frameRate),g});n={consumerId:r,peerId:s,producerId:o,appData:c,videoStats:d,audioStats:i==null?void 0:i.inboundAudioRtpId.map(h=>e.inboundAudioRtp.get(h))}}catch(s){console.error("getConsumerStatsFromParsedConsumerStats: ",s,e)}return n}getConsumerStatsFromReport(e){const i=[];try{e.consumerStreamMap.forEach((r,n)=>{i.push(this.getConsumerStatsFromParsedConsumerStats(e,r,n))})}catch(r){console.error("getConsumerStatsFromReport: ",r,e)}return i}}class sE extends Em{}function wc(t,e,i,r){if(t!=null&&t.logger&&t.logger.error("Callstats::handleError",{error:r}),typeof i=="function"&&r instanceof e)i.call(null,r,t);else throw r}function Tm(t,e,i){const r=t.value;return t.value=function(...n){try{const s=r.apply(this,n);return s&&s instanceof Promise?s.catch(o=>{wc(this,e,i,o)}):s}catch(s){wc(this,e,i,s)}return null},t}const te=(t,e)=>(i,r,n)=>{const s=n.value;return n.value=function(...o){try{const c=s.apply(this,o);return c&&c instanceof Promise?c.catch(d=>{wc(this,t,e,d)}):c}catch(c){wc(this,t,e,c)}return null},n},aE=(t,e)=>(i,r,n)=>{if(n)return Tm(n,t,e);for(const s of Reflect.ownKeys(i.prototype).filter(o=>o!=="constructor")){const o=Object.getOwnPropertyDescriptor(i.prototype,s);o.value instanceof Function&&Object.defineProperty(i.prototype,s,Tm(o,t,e))}};var Z=globalThis&&globalThis.__decorate||function(t,e,i,r){var n=arguments.length,s=n<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,i):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,i,r);else for(var c=t.length-1;c>=0;c--)(o=t[c])&&(s=(n<3?o(s):n>3?o(e,i,s):o(e,i))||s);return n>3&&s&&Object.defineProperty(e,i,s),s};const ee=console;let Q=class extends lt{constructor(t="https://api.testingv3.dyte.in",e="Blink",i=Xs.PROD,r,n,s,o){switch(super(),m(this,"observer"),m(this,"eventHandler"),m(this,"measurements"),m(this,"producingTransport"),m(this,"consumingTransport"),m(this,"producers",new Map),m(this,"consumers",new Map),m(this,"iceServers"),m(this,"connectionInfoPromise"),m(this,"pingStatsTimeout"),m(this,"logger"),m(this,"env"),m(this,"apiHostnames"),m(this,"peerId"),m(this,"consumerSharedMediaStatesMap",new Map),m(this,"currentUserMediaStates",{}),this.env=i,this.apiHostnames=o,this.logger=n,this.peerId=s,this.eventHandler=new qS({logger:n,peerId:s,apiHostnames:o}),this.logger.debug("callStats::engineName: ",{engineName:e}),e){case"Blink":this.measurements=new nE;break;case"Gecko":this.measurements=new Em;break;case"WebKit":this.measurements=new sE;break;default:throw Error(`Unknown engineName! ${e}`)}this.measurements.callStatsInstance=this,this.registerProducer=this.registerProducer.bind(this),this.registerConsumer=this.registerConsumer.bind(this),this.observer=new lt,this.measurements.observer.on("consumer_score",c=>{n.debug(`callStats::consumer_score ${[...c.entries()]}`),this.eventHandler.emit("consumer_score",c)}),this.measurements.observer.on("producer_score",c=>{n.debug(`callStats::producer_score ${[...c.entries()]}`),this.eventHandler.emit("producer_score",c)})}registerIceServers(t){this.iceServers=t}registerConsumer(t){var e;this.consumerSharedMediaStatesMap.has(t.id)||this.consumerSharedMediaStatesMap.set(t.id,{}),this.consumers.set(t.id,t),this.measurements.registerConsumer(t),this.logger.debug("callStats::registerConsumer",{consumerId:t.id,consumerkind:t.kind,isScreenShare:!!((e=t.appData)!=null&&e.screenShare)}),t.on("close",this.deRegisterConsumer.bind(this,t))}registerProducer(t){var e;this.producers.set(t.id,t),this.measurements.registerProducer(t),this.logger.debug("callStats::registerProducer",{producerId:t.id,producerKind:t.kind,isScreenShare:!!((e=t.appData)!=null&&e.screenShare)}),t.on("close",this.deRegisterProducer.bind(this,t))}sendConsumerSharedMediaStateEvent(t,e){this.consumerSharedMediaStatesMap.has(t)||this.consumerSharedMediaStatesMap.set(t,{});const i=this.consumerSharedMediaStatesMap.get(t);this.consumerSharedMediaStatesMap.set(t,Object.assign(i,e))}registerProducingTransport(t){var e;this.producingTransport=t,t.on("close",this.disconnectProducingTransport.bind(this,t)),t.on("disconnect",this.disconnectProducingTransport.bind(this,t)),Array.from(((e=t._producers)==null?void 0:e.values())||[]).forEach(i=>{this.registerProducer(i)}),t.on("newproducer",this.registerProducer)}registerConsumingTransport(t){var e;this.consumingTransport=t,t.on("close",this.disconnectConsumingTransport.bind(this,t)),t.on("disconnect",this.disconnectConsumingTransport.bind(this,t)),Array.from(((e=t._consumers)==null?void 0:e.values())||[]).forEach(i=>{this.registerConsumer(i)}),t.on("newconsumer",this.registerConsumer)}deRegisterConsumer(t){this.consumers.delete(t.id)}deRegisterProducer(t){var e;this.producers.delete(t.id),this.logger.debug("callStats::deRegisterProducer",{producerId:t.id,producerKind:t.kind,isScreenShare:!!((e=t.appData)!=null&&e.screenShare)})}disconnectConsumingTransport(){this.consumingTransport=void 0}disconnectProducingTransport(){this.producingTransport=void 0}callEvent(t){this.eventHandler.callEvent(t)}sendPreCallTestBeginEvent(t=!1,e){this.connectionInfoPromise=this.measurements.getNetworkInfo(this.iceServers,t),this.eventHandler.callEvent({event:V.PRECALL_TEST_BEGIN,timestamp:e}),this.connectionInfoPromise&&this.connectionInfoPromise.then(i=>{this.eventHandler.callEvent({event:V.PRECALL_TEST_COMPLETE,metaData:{connectionInfo:i},timestamp:e})})}sendScreenShareToggleEvent(t,e=null,i){this.currentUserMediaStates.screen=t,this.eventHandler.callEvent({event:t?V.SCREENSHARE_STARTED:V.SCREENSHARE_STOPPED,metaData:{ssrc:e},timestamp:i})}sendScreenShareRequestedEvent(t){this.eventHandler.callEvent({event:V.SCREENSHARE_START_REQUESTED,timestamp:t})}sendActiveSpeakerEvent(t,e){this.eventHandler.callEvent({event:V.DOMINANT_SPEAKER,metaData:{peerId:t},timestamp:e})}devices(t,e,i){this.eventHandler.callEvent({event:t===ti.AUDIO&&V.AUDIO_DEVICES_UPDATES||t===ti.VIDEO&&V.VIDEO_DEVICES_UPDATES||t===ti.SPEAKER&&V.SPEAKER_DEVICES_UPDATES,metaData:{deviceList:e},timestamp:i})}selectedDevice(t,e,i){this.eventHandler.callEvent({event:t===ti.AUDIO&&V.SELECTED_MICROHPONE_UPDATE||t===ti.VIDEO&&V.SELECTED_CAMERA_UPDATE||t===ti.SPEAKER&&V.SELECTED_SPEAKER_UPDATE,metaData:{device:e},timestamp:i})}mediaPermission(t,e,i){this.eventHandler.callEvent({event:V.MEDIA_PERMISSION,metaData:{deviceType:t,permission:e},timestamp:i})}mediaPlaybackFailed(t,e){this.eventHandler.callEvent({event:t===ti.AUDIO&&V.AUDIO_PLAY_FAILED||t===ti.VIDEO&&V.VIDEO_PLAY_FAILED,metaData:{deviceType:t},timestamp:e})}mediaTrackMuted(t,e){this.eventHandler.callEvent({event:t===ti.AUDIO&&V.AUDIO_TRACK_MUTED||t===ti.VIDEO&&V.VIDEO_TRACK_MUTED,metaData:{deviceType:t},timestamp:e})}tabChanged(t,e){this.eventHandler.callEvent({event:V.TAB_CHANGE,metaData:{isMeetingsTabActive:t},timestamp:e})}browserBackgrounded(t){this.eventHandler.callEvent({event:V.BROWSER_BACKGROUNDED,timestamp:t})}browserForegrounded(t){this.eventHandler.callEvent({event:V.BROWSER_FOREGROUNDED,timestamp:t})}legacySwitch(t,e){this.eventHandler.callEvent({event:V.LEGACY_SWITCH,metadata:{on:t},timestamp:e})}getPreCallTestResults(){return u(this,null,function*(){return this.connectionInfoPromise})}sendCallJoinBeginEvent(t,e){t=j(L({},t),{meetingEnv:this.env}),t.deviceInfo=j(L({},t.deviceInfo),{userAgent:navigator.userAgent,cpus:navigator.hardwareConcurrency,memory:navigator.deviceMemory}),this.eventHandler.callEvent({event:V.CALL_JOIN_BEGIN,metaData:{peerMetaData:t},timestamp:e})}sendNetworkQualityTestBeginEvent(t,e){this.eventHandler.callEvent({event:V.NET_QUALITY_TEST_BEGIN,timestamp:e}),new Promise((i,r)=>u(this,null,function*(){const n=[];try{for(const s of t)try{if(s.iceServers&&s.iceServers.length>0){const o=yield this.measurements.getNetworkQuality(s.iceServers);n.push(j(L({},s),{networkResults:o}))}}catch(o){console.warn("Error handling ",o)}i({regionData:n})}catch(s){console.warn("Error in callstats, ",s),r(s)}})).then(i=>{this.eventHandler.callEvent({event:V.NET_QUALITY_TEST_END,timestamp:e,metaData:i})})}sendWebSocketConnectedEvent(t){this.eventHandler.callEvent({event:V.WEBSOCKET_CONNECTED,timestamp:t})}sendTransportConnectedEvent(t){this.eventHandler.callEvent({event:V.TRANSPORT_CONNECTED,timestamp:t})}sendAudioToggleEvent(t,e){this.currentUserMediaStates.audio=t;let i;t?i=V.AUDIO_ON:i=V.AUDIO_OFF,this.eventHandler.callEvent({event:i,timestamp:e})}sendVideoToggleEvent(t,e){this.currentUserMediaStates.video=t;let i;t?i=V.VIDEO_ON:i=V.VIDEO_OFF,this.eventHandler.callEvent({event:i,timestamp:e})}sendParticipantRoleToggleEvent(t,e){this.eventHandler.callEvent({event:V.PARTICIPANT_ROLE,timestamp:e,metaData:t})}startPingStats(t=7e3){this.sendPingStatsEvent(!1,new Date),this.pingStatsTimeout=setInterval(this.sendPingStatsEvent.bind(this),t)}stopPingStats(){clearInterval(this.pingStatsTimeout)}sendPingStatsEvent(t=!0,e){return u(this,null,function*(){let i,r;if(this.producingTransport&&(i=yield this.measurements.getProcessedStats(this.producingTransport,!1,!0),!i||!(i!=null&&i.producerReport))){this.logger.debug("callStats::sendPingStatsEvent::staleProducingTransport",{disclaimer:"Stale producer? Regenerating Stream Maps!"});const s=yield this.measurements.getProducersReport([...this.producers.values()]);i&&s?i.producerReport=s:(i=yield this.measurements.getProcessedStats(this.producingTransport,!1,!0),(!i||!(i!=null&&i.producerReport))&&this.logger.debug("callStats::sendPingStatsEvent::noProducingTransportReport",{disclaimer:"Stream maps invalid despite regenerating!"}))}if(this.consumingTransport&&(r=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),!r||!r.consumerReport)){this.logger.debug("callStats::sendPingStatsEvent::staleConsumingTransport",{disclaimer:"Stale consumer? Regenerating Stream Maps!"});const s=yield this.measurements.getConsumersReport([...this.consumers.values()]);r&&s?r.consumerReport=s:(r=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),(!r||!r.consumerReport)&&this.logger.debug("callStats::sendPingStatsEvent::noConsumingTransportReport",{disclaimer:"Stream maps invalid despite regenerating!"}))}const n={producingTransportStats:i?i==null?void 0:i.transportReport:void 0,consumingTransportStats:r?r==null?void 0:r.transportReport:void 0,producerStats:[].concat((i==null?void 0:i.producerReport)||[]).concat((r==null?void 0:r.producerReport)||[]),consumerStats:[].concat((r==null?void 0:r.consumerReport)||[]).concat((i==null?void 0:i.consumerReport)||[])};if(t&&n.producerStats.length===0&&n.consumerStats.length===0){yield this.eventHandler.flush();return}this.eventHandler.callEvent({event:V.PING_STAT,metaData:n,timestamp:e})})}sendIVSPlayerRebufferEvent(t){this.eventHandler.callEvent({event:V.IVS_PLAYER_REBUFFERING,timestamp:t})}sendIVSPlayerAudioBlockEvent(t){this.eventHandler.callEvent({event:V.IVS_PLAYER_AUDIO_BLOCKED,timestamp:t})}sendIVSPlayerPlaybackBlockedEvent(t){this.eventHandler.callEvent({event:V.IVS_PLAYER_PLAYBACK_BLOCKED,timestamp:t})}sendIVSPlayerNetworkUnavailableEvent(t){this.eventHandler.callEvent({event:V.IVS_PLAYER_NETWORK_UNAVAILABLE,timestamp:t})}sendIVSPlayerInitializedEvent(t){this.eventHandler.callEvent({event:V.IVS_PLAYER_INITIALIZED,timestamp:t})}sendIVSPlayerWorkerErrorEvent(t){this.eventHandler.callEvent({event:V.IVS_PLAYER_WORKER_ERROR,timestamp:t})}sendIVSPlayerErrorEvent(t,e){this.eventHandler.callEvent({event:V.IVS_PLAYER_ERROR,timestamp:e,metaData:t})}sendIVSPlayerRecoverableErrorEvent(t,e){this.eventHandler.callEvent({event:V.IVS_PLAYER_RECOVERABLE_ERROR,timestamp:e,metaData:t})}sendIVSPlayerAnalyticsEvent(t,e){this.eventHandler.callEvent({event:V.IVS_PLAYER_ANALYTICS_EVENT,timestamp:e,metaData:t})}sendIVSPlayerPlaybackRateChangedEvent(t,e){this.eventHandler.callEvent({event:V.IVS_PLAYER_PLAYBACK_RATE_CHANGED,timestamp:e,metaData:{updatedPlaybackRate:t}})}sendIVSPlayerQualityChanged(t,e){this.eventHandler.callEvent({event:V.IVS_PLAYER_QUALITY_CHANGED,timestamp:e,metaData:t})}sendPlayerLiveLatency(t,e){this.eventHandler.callEvent({event:V.LIVESTREAM_LATENCY,timestamp:e,metaData:{latency:t}})}sendDisconnectEvent(t){this.eventHandler.callEvent({event:V.DISCONNECT,timestamp:t})}sendReconnectEvent(t){this.eventHandler.callEvent({event:V.RECONNECT_ATTEMPT,timestamp:t})}expectedVideoResolution(t,e,i){this.eventHandler.callEvent({event:V.EXPECTED_VIDEO_RESOLUTION,timestamp:i,metaData:{frameWidth:t,frameHeight:e}})}expectedScreenshareResolution(t,e,i){this.eventHandler.callEvent({event:V.EXPECTED_SCREENSHARE_RESOLUTION,timestamp:i,metaData:{frameWidth:t,frameHeight:e}})}};Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"registerIceServers",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"registerConsumer",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"registerProducer",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendConsumerSharedMediaStateEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"registerProducingTransport",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"registerConsumingTransport",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"deRegisterConsumer",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"deRegisterProducer",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"disconnectConsumingTransport",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"disconnectProducingTransport",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendPreCallTestBeginEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendScreenShareToggleEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendScreenShareRequestedEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendActiveSpeakerEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"devices",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"selectedDevice",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"mediaPermission",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"mediaPlaybackFailed",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"mediaTrackMuted",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"tabChanged",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"browserBackgrounded",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"browserForegrounded",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"legacySwitch",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"getPreCallTestResults",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendCallJoinBeginEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendNetworkQualityTestBeginEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendWebSocketConnectedEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendTransportConnectedEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendAudioToggleEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendVideoToggleEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendParticipantRoleToggleEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"startPingStats",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"stopPingStats",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendPingStatsEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerRebufferEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerAudioBlockEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerPlaybackBlockedEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerNetworkUnavailableEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerInitializedEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerWorkerErrorEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerErrorEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerRecoverableErrorEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerAnalyticsEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerPlaybackRateChangedEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerQualityChanged",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendPlayerLiveLatency",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendDisconnectEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendReconnectEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"expectedVideoResolution",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"expectedScreenshareResolution",null),Q=Z([aE(TypeError,(t,e)=>ee.error(e,t))],Q);const oE=Q;class cE extends lt{constructor(){super(...arguments),m(this,"stats"),m(this,"peerId"),m(this,"backend"),m(this,"iceServers"),m(this,"initialized",!1),m(this,"stalled",!1),m(this,"ipInformation"),m(this,"logger")}initialize(e){return u(this,arguments,function*({peerId:i,engineName:r,env:n=Xs.PROD,iceServers:s,apiBase:o="https://api.cluster.dyte.in",flags:c,logger:d=console,apiHostnames:h,skipConnectivityChecks:p=!1}){var g,y,T;try{this.peerId=i,this.logger=d,this.ipInformation=yield Bl.getIPDetails({peerId:i,apiHostnames:h,logger:d}),this.backend=new oE(o,r,n,c,d,i,h),this.iceServers=s,(g=this.backend)==null||g.registerIceServers(this.iceServers),this.initialized=!0,(T=(y=this.backend)==null?void 0:y.eventHandler)==null||T.emit("initialized",this.ipInformation),this.emit("initialized",this.ipInformation),this.startPreCallTest(p)}catch(b){this.logger.error("callStats::CallStatsIntegration: ",{error:b}),this.stallCallStats()}})}configureSendTransport(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.registerProducingTransport(e)})}configureRecvTransport(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.registerConsumingTransport(e)})}candidateRegionalNetworkQualityTest(e){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var r;try{(r=this.backend)==null||r.sendNetworkQualityTestBeginEvent(e,i)}catch(n){this.logger.error("callStats::sendNetworkQualityTestBeginEvent",{error:{reason:n.reason}})}})})}roomJoined(e){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var r,n;(r=this.backend)==null||r.sendCallJoinBeginEvent(e,i),this.backend,(n=this.backend)==null||n.startPingStats()})})}audioOff(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendAudioToggleEvent(!1,e)})}audioOn(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendAudioToggleEvent(!0,e)})}videoOff(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendVideoToggleEvent(!1,e)})}videoOn(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendVideoToggleEvent(!0,e)})}callEnded(){const e=new Date;this.onSafeInitialization(()=>{var i,r;(i=this.backend)==null||i.stopPingStats(),(r=this.backend)==null||r.sendDisconnectEvent(e)})}screenShareStart(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendScreenShareToggleEvent(!0,e,i)})}consumerSharedMediaState(e,i){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendConsumerSharedMediaStateEvent(e,i)})}screenShareStop(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendScreenShareToggleEvent(!1,e,i)})}screenShareRequested(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendScreenShareRequestedEvent(e)})}activeSpeaker(e){if(e!==this.peerId)return;const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendActiveSpeakerEvent(e,i)})}devices(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.devices(e,i,r)})}selectedDevice(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.selectedDevice(e,i,r)})}mediaPermission(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.mediaPermission(e,i,r)})}mediaPlaybackFailed(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.mediaPlaybackFailed(e,i)})}mediaTrackMuted(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.mediaTrackMuted(e,i)})}tabChanged(e=!1){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.tabChanged(e,i)})}browserBackgrounded(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.browserBackgrounded(e)})}browserForegrounded(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.browserForegrounded(e)})}legacySwitch(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.legacySwitch(e,i)})}startPreCallTest(e=!1){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendPreCallTestBeginEvent(e,i)})})}onPreCallTestResults(e){return this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.once("precall_end",e)}),e}onReceivingConsumerAudioStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consumer_audio_status",e)})}onReceivingConsumerVideoStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consumer_video_status",e)})}onReceivingProducerAudioStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producer_audio_status",e)})}onReceivingProducerVideoStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producer_video_status",e)})}onReceivingProducingTransportStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producing_transport_status",e)})}onReceivingConsumingTransportStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consuming_transport_status",e)})}onProducerScore(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producer_score",e)})}onConsumerScore(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consumer_score",e)})}onSafeInitialization(e){if(this.initialized)e(this.ipInformation,!1);else if(!this.stalled){const i=r=>{e(r,!0)};return this.once("initialized",i),i}return()=>{}}removeInitializationListener(e){this.removeListener("initialized",e)}stallCallStats(){this.stalled=!0,this.removeAllListeners("initialized")}ivsPlayerEvent(e,i){const r=new Date;this.onSafeInitialization(()=>{var n,s,o,c,d,h,p,g,y,T,b;switch(e){case"PlayerRebuffering":(n=this.backend)==null||n.sendIVSPlayerRebufferEvent(r);break;case"PlayerAudioBlocked":(s=this.backend)==null||s.sendIVSPlayerAudioBlockEvent(r);break;case"PlayerPlaybackBlocked":(o=this.backend)==null||o.sendIVSPlayerPlaybackBlockedEvent(r);break;case"PlayerNetworkUnavailable":(c=this.backend)==null||c.sendIVSPlayerNetworkUnavailableEvent(r);break;case"PlayerInitialized":(d=this.backend)==null||d.sendIVSPlayerInitializedEvent(r);break;case"PlayerWorkerError":(h=this.backend)==null||h.sendIVSPlayerWorkerErrorEvent(r);break;case"PlayerError":(p=this.backend)==null||p.sendIVSPlayerErrorEvent(i,r);break;case"PlayerRecoverableError":(g=this.backend)==null||g.sendIVSPlayerRecoverableErrorEvent(i,r);break;case"PlayerAnalyticsEvent":(y=this.backend)==null||y.sendIVSPlayerAnalyticsEvent(i,r);break;case"PlayerPlaybackRateChanged":(T=this.backend)==null||T.sendIVSPlayerPlaybackRateChangedEvent(i,r);break;case"PlayerQualityChanged":(b=this.backend)==null||b.sendIVSPlayerQualityChanged(i,r);break}})}livestreamLatency(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendPlayerLiveLatency(e,i)})}expectedVideoResolution(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.expectedVideoResolution(e,i,r)})}expectedScreenshareResolution(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.expectedScreenshareResolution(e,i,r)})}}const J=new cE;J.setMaxListeners(30);function dE(t){const{length:e}=this,i=t>=0?t:e+t;return i<0||i>=e?void 0:this[i]}Array.prototype.at||Object.assign(Array.prototype,{at:dE});function lE(t){const{length:e}=this,i=t>=0?t:e+t;return i<0||i>=e?void 0:this[i]}String.prototype.at||Object.assign(String.prototype,{at:lE});function uE(){this.__data__=[],this.size=0}function Zs(t,e){return t===e||t!==t&&e!==e}function Ic(t,e){for(var i=t.length;i--;)if(Zs(t[i][0],e))return i;return-1}var hE=Array.prototype,pE=hE.splice;function mE(t){var e=this.__data__,i=Ic(e,t);if(i<0)return!1;var r=e.length-1;return i==r?e.pop():pE.call(e,i,1),--this.size,!0}function gE(t){var e=this.__data__,i=Ic(e,t);return i<0?void 0:e[i][1]}function fE(t){return Ic(this.__data__,t)>-1}function vE(t,e){var i=this.__data__,r=Ic(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this}function Ki(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}Ki.prototype.clear=uE,Ki.prototype.delete=mE,Ki.prototype.get=gE,Ki.prototype.has=fE,Ki.prototype.set=vE;function yE(){this.__data__=new Ki,this.size=0}function SE(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i}function EE(t){return this.__data__.get(t)}function TE(t){return this.__data__.has(t)}var kE=typeof global=="object"&&global&&global.Object===Object&&global;const km=kE;var bE=typeof self=="object"&&self&&self.Object===Object&&self,_E=km||bE||Function("return this")();const li=_E;var wE=li.Symbol;const ur=wE;var bm=Object.prototype,IE=bm.hasOwnProperty,CE=bm.toString,ea=ur?ur.toStringTag:void 0;function PE(t){var e=IE.call(t,ea),i=t[ea];try{t[ea]=void 0;var r=!0}catch(s){}var n=CE.call(t);return r&&(e?t[ea]=i:delete t[ea]),n}var RE=Object.prototype,ME=RE.toString;function AE(t){return ME.call(t)}var DE="[object Null]",OE="[object Undefined]",_m=ur?ur.toStringTag:void 0;function Kr(t){return t==null?t===void 0?OE:DE:_m&&_m in Object(t)?PE(t):AE(t)}function ui(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var NE="[object AsyncFunction]",LE="[object Function]",VE="[object GeneratorFunction]",xE="[object Proxy]";function Wl(t){if(!ui(t))return!1;var e=Kr(t);return e==LE||e==VE||e==NE||e==xE}var UE=li["__core-js_shared__"];const jl=UE;var wm=function(){var t=/[^.]+$/.exec(jl&&jl.keys&&jl.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function FE(t){return!!wm&&wm in t}var BE=Function.prototype,WE=BE.toString;function zr(t){if(t!=null){try{return WE.call(t)}catch(e){}try{return t+""}catch(e){}}return""}var jE=/[\\^$.*+?()[\]{}|]/g,HE=/^\[object .+?Constructor\]$/,qE=Function.prototype,GE=Object.prototype,$E=qE.toString,JE=GE.hasOwnProperty,KE=RegExp("^"+$E.call(JE).replace(jE,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function zE(t){if(!ui(t)||FE(t))return!1;var e=Wl(t)?KE:HE;return e.test(zr(t))}function YE(t,e){return t==null?void 0:t[e]}function Yr(t,e){var i=YE(t,e);return zE(i)?i:void 0}var QE=Yr(li,"Map");const ta=QE;var XE=Yr(Object,"create");const ia=XE;function ZE(){this.__data__=ia?ia(null):{},this.size=0}function eT(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var tT="__lodash_hash_undefined__",iT=Object.prototype,rT=iT.hasOwnProperty;function nT(t){var e=this.__data__;if(ia){var i=e[t];return i===tT?void 0:i}return rT.call(e,t)?e[t]:void 0}var sT=Object.prototype,aT=sT.hasOwnProperty;function oT(t){var e=this.__data__;return ia?e[t]!==void 0:aT.call(e,t)}var cT="__lodash_hash_undefined__";function dT(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=ia&&e===void 0?cT:e,this}function Qr(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}Qr.prototype.clear=ZE,Qr.prototype.delete=eT,Qr.prototype.get=nT,Qr.prototype.has=oT,Qr.prototype.set=dT;function lT(){this.size=0,this.__data__={hash:new Qr,map:new(ta||Ki),string:new Qr}}function uT(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function Cc(t,e){var i=t.__data__;return uT(e)?i[typeof e=="string"?"string":"hash"]:i.map}function hT(t){var e=Cc(this,t).delete(t);return this.size-=e?1:0,e}function pT(t){return Cc(this,t).get(t)}function mT(t){return Cc(this,t).has(t)}function gT(t,e){var i=Cc(this,t),r=i.size;return i.set(t,e),this.size+=i.size==r?0:1,this}function Xr(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}Xr.prototype.clear=lT,Xr.prototype.delete=hT,Xr.prototype.get=pT,Xr.prototype.has=mT,Xr.prototype.set=gT;var fT=200;function vT(t,e){var i=this.__data__;if(i instanceof Ki){var r=i.__data__;if(!ta||r.length<fT-1)return r.push([t,e]),this.size=++i.size,this;i=this.__data__=new Xr(r)}return i.set(t,e),this.size=i.size,this}function Di(t){var e=this.__data__=new Ki(t);this.size=e.size}Di.prototype.clear=yE,Di.prototype.delete=SE,Di.prototype.get=EE,Di.prototype.has=TE,Di.prototype.set=vT;function yT(t,e){for(var i=-1,r=t==null?0:t.length;++i<r&&e(t[i],i,t)!==!1;);return t}var ST=function(){try{var t=Yr(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();const Pc=ST;function Hl(t,e,i){e=="__proto__"&&Pc?Pc(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}var ET=Object.prototype,TT=ET.hasOwnProperty;function Im(t,e,i){var r=t[e];(!(TT.call(t,e)&&Zs(r,i))||i===void 0&&!(e in t))&&Hl(t,e,i)}function ra(t,e,i,r){var n=!i;i||(i={});for(var s=-1,o=e.length;++s<o;){var c=e[s],d=r?r(i[c],t[c],c,i,t):void 0;d===void 0&&(d=t[c]),n?Hl(i,c,d):Im(i,c,d)}return i}function kT(t,e){for(var i=-1,r=Array(t);++i<t;)r[i]=e(i);return r}function Oi(t){return t!=null&&typeof t=="object"}var bT="[object Arguments]";function Cm(t){return Oi(t)&&Kr(t)==bT}var Pm=Object.prototype,_T=Pm.hasOwnProperty,wT=Pm.propertyIsEnumerable,IT=Cm(function(){return arguments}())?Cm:function(t){return Oi(t)&&_T.call(t,"callee")&&!wT.call(t,"callee")};const Rc=IT;var CT=Array.isArray;const hr=CT;function PT(){return!1}var Rm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Mm=Rm&&typeof module=="object"&&module&&!module.nodeType&&module,RT=Mm&&Mm.exports===Rm,Am=RT?li.Buffer:void 0,MT=Am?Am.isBuffer:void 0,AT=MT||PT;const Gn=AT;var DT=9007199254740991,OT=/^(?:0|[1-9]\d*)$/;function Dm(t,e){var i=typeof t;return e=e==null?DT:e,!!e&&(i=="number"||i!="symbol"&&OT.test(t))&&t>-1&&t%1==0&&t<e}var NT=9007199254740991;function Om(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=NT}var LT="[object Arguments]",VT="[object Array]",xT="[object Boolean]",UT="[object Date]",FT="[object Error]",BT="[object Function]",WT="[object Map]",jT="[object Number]",HT="[object Object]",qT="[object RegExp]",GT="[object Set]",$T="[object String]",JT="[object WeakMap]",KT="[object ArrayBuffer]",zT="[object DataView]",YT="[object Float32Array]",QT="[object Float64Array]",XT="[object Int8Array]",ZT="[object Int16Array]",ek="[object Int32Array]",tk="[object Uint8Array]",ik="[object Uint8ClampedArray]",rk="[object Uint16Array]",nk="[object Uint32Array]",we={};we[YT]=we[QT]=we[XT]=we[ZT]=we[ek]=we[tk]=we[ik]=we[rk]=we[nk]=!0,we[LT]=we[VT]=we[KT]=we[xT]=we[zT]=we[UT]=we[FT]=we[BT]=we[WT]=we[jT]=we[HT]=we[qT]=we[GT]=we[$T]=we[JT]=!1;function sk(t){return Oi(t)&&Om(t.length)&&!!we[Kr(t)]}function ql(t){return function(e){return t(e)}}var Nm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,na=Nm&&typeof module=="object"&&module&&!module.nodeType&&module,ak=na&&na.exports===Nm,Gl=ak&&km.process,ok=function(){try{var t=na&&na.require&&na.require("util").types;return t||Gl&&Gl.binding&&Gl.binding("util")}catch(e){}}();const $n=ok;var Lm=$n&&$n.isTypedArray,ck=Lm?ql(Lm):sk;const Mc=ck;var dk=Object.prototype,lk=dk.hasOwnProperty;function Vm(t,e){var i=hr(t),r=!i&&Rc(t),n=!i&&!r&&Gn(t),s=!i&&!r&&!n&&Mc(t),o=i||r||n||s,c=o?kT(t.length,String):[],d=c.length;for(var h in t)(e||lk.call(t,h))&&!(o&&(h=="length"||n&&(h=="offset"||h=="parent")||s&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Dm(h,d)))&&c.push(h);return c}var uk=Object.prototype;function Ac(t){var e=t&&t.constructor,i=typeof e=="function"&&e.prototype||uk;return t===i}function xm(t,e){return function(i){return t(e(i))}}var hk=xm(Object.keys,Object);const pk=hk;var mk=Object.prototype,gk=mk.hasOwnProperty;function Um(t){if(!Ac(t))return pk(t);var e=[];for(var i in Object(t))gk.call(t,i)&&i!="constructor"&&e.push(i);return e}function sa(t){return t!=null&&Om(t.length)&&!Wl(t)}function $l(t){return sa(t)?Vm(t):Um(t)}function fk(t,e){return t&&ra(e,$l(e),t)}function vk(t){var e=[];if(t!=null)for(var i in Object(t))e.push(i);return e}var yk=Object.prototype,Sk=yk.hasOwnProperty;function Ek(t){if(!ui(t))return vk(t);var e=Ac(t),i=[];for(var r in t)r=="constructor"&&(e||!Sk.call(t,r))||i.push(r);return i}function aa(t){return sa(t)?Vm(t,!0):Ek(t)}function Tk(t,e){return t&&ra(e,aa(e),t)}var Fm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Bm=Fm&&typeof module=="object"&&module&&!module.nodeType&&module,kk=Bm&&Bm.exports===Fm,Wm=kk?li.Buffer:void 0,jm=Wm?Wm.allocUnsafe:void 0;function Hm(t,e){if(e)return t.slice();var i=t.length,r=jm?jm(i):new t.constructor(i);return t.copy(r),r}function qm(t,e){var i=-1,r=t.length;for(e||(e=Array(r));++i<r;)e[i]=t[i];return e}function bk(t,e){for(var i=-1,r=t==null?0:t.length,n=0,s=[];++i<r;){var o=t[i];e(o,i,t)&&(s[n++]=o)}return s}function Gm(){return[]}var _k=Object.prototype,wk=_k.propertyIsEnumerable,$m=Object.getOwnPropertySymbols,Ik=$m?function(t){return t==null?[]:(t=Object(t),bk($m(t),function(e){return wk.call(t,e)}))}:Gm;const Jl=Ik;function Ck(t,e){return ra(t,Jl(t),e)}function Jm(t,e){for(var i=-1,r=e.length,n=t.length;++i<r;)t[n+i]=e[i];return t}var Pk=xm(Object.getPrototypeOf,Object);const Kl=Pk;var Rk=Object.getOwnPropertySymbols,Mk=Rk?function(t){for(var e=[];t;)Jm(e,Jl(t)),t=Kl(t);return e}:Gm;const Km=Mk;function Ak(t,e){return ra(t,Km(t),e)}function zm(t,e,i){var r=e(t);return hr(t)?r:Jm(r,i(t))}function zl(t){return zm(t,$l,Jl)}function Dk(t){return zm(t,aa,Km)}var Ok=Yr(li,"DataView");const Yl=Ok;var Nk=Yr(li,"Promise");const Ql=Nk;var Lk=Yr(li,"Set");const Xl=Lk;var Vk=Yr(li,"WeakMap");const Zl=Vk;var Ym="[object Map]",xk="[object Object]",Qm="[object Promise]",Xm="[object Set]",Zm="[object WeakMap]",eg="[object DataView]",Uk=zr(Yl),Fk=zr(ta),Bk=zr(Ql),Wk=zr(Xl),jk=zr(Zl),Zr=Kr;(Yl&&Zr(new Yl(new ArrayBuffer(1)))!=eg||ta&&Zr(new ta)!=Ym||Ql&&Zr(Ql.resolve())!=Qm||Xl&&Zr(new Xl)!=Xm||Zl&&Zr(new Zl)!=Zm)&&(Zr=function(t){var e=Kr(t),i=e==xk?t.constructor:void 0,r=i?zr(i):"";if(r)switch(r){case Uk:return eg;case Fk:return Ym;case Bk:return Qm;case Wk:return Xm;case jk:return Zm}return e});const Jn=Zr;var Hk=Object.prototype,qk=Hk.hasOwnProperty;function Gk(t){var e=t.length,i=new t.constructor(e);return e&&typeof t[0]=="string"&&qk.call(t,"index")&&(i.index=t.index,i.input=t.input),i}var $k=li.Uint8Array;const Dc=$k;function eu(t){var e=new t.constructor(t.byteLength);return new Dc(e).set(new Dc(t)),e}function Jk(t,e){var i=e?eu(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)}var Kk=/\w*$/;function zk(t){var e=new t.constructor(t.source,Kk.exec(t));return e.lastIndex=t.lastIndex,e}var tg=ur?ur.prototype:void 0,ig=tg?tg.valueOf:void 0;function Yk(t){return ig?Object(ig.call(t)):{}}function rg(t,e){var i=e?eu(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}var Qk="[object Boolean]",Xk="[object Date]",Zk="[object Map]",e0="[object Number]",t0="[object RegExp]",i0="[object Set]",r0="[object String]",n0="[object Symbol]",s0="[object ArrayBuffer]",a0="[object DataView]",o0="[object Float32Array]",c0="[object Float64Array]",d0="[object Int8Array]",l0="[object Int16Array]",u0="[object Int32Array]",h0="[object Uint8Array]",p0="[object Uint8ClampedArray]",m0="[object Uint16Array]",g0="[object Uint32Array]";function f0(t,e,i){var r=t.constructor;switch(e){case s0:return eu(t);case Qk:case Xk:return new r(+t);case a0:return Jk(t,i);case o0:case c0:case d0:case l0:case u0:case h0:case p0:case m0:case g0:return rg(t,i);case Zk:return new r;case e0:case r0:return new r(t);case t0:return zk(t);case i0:return new r;case n0:return Yk(t)}}var ng=Object.create,v0=function(){function t(){}return function(e){if(!ui(e))return{};if(ng)return ng(e);t.prototype=e;var i=new t;return t.prototype=void 0,i}}();const y0=v0;function sg(t){return typeof t.constructor=="function"&&!Ac(t)?y0(Kl(t)):{}}var S0="[object Map]";function E0(t){return Oi(t)&&Jn(t)==S0}var ag=$n&&$n.isMap,T0=ag?ql(ag):E0;const k0=T0;var b0="[object Set]";function _0(t){return Oi(t)&&Jn(t)==b0}var og=$n&&$n.isSet,w0=og?ql(og):_0;const I0=w0;var C0=1,P0=2,R0=4,cg="[object Arguments]",M0="[object Array]",A0="[object Boolean]",D0="[object Date]",O0="[object Error]",dg="[object Function]",N0="[object GeneratorFunction]",L0="[object Map]",V0="[object Number]",lg="[object Object]",x0="[object RegExp]",U0="[object Set]",F0="[object String]",B0="[object Symbol]",W0="[object WeakMap]",j0="[object ArrayBuffer]",H0="[object DataView]",q0="[object Float32Array]",G0="[object Float64Array]",$0="[object Int8Array]",J0="[object Int16Array]",K0="[object Int32Array]",z0="[object Uint8Array]",Y0="[object Uint8ClampedArray]",Q0="[object Uint16Array]",X0="[object Uint32Array]",ke={};ke[cg]=ke[M0]=ke[j0]=ke[H0]=ke[A0]=ke[D0]=ke[q0]=ke[G0]=ke[$0]=ke[J0]=ke[K0]=ke[L0]=ke[V0]=ke[lg]=ke[x0]=ke[U0]=ke[F0]=ke[B0]=ke[z0]=ke[Y0]=ke[Q0]=ke[X0]=!0,ke[O0]=ke[dg]=ke[W0]=!1;function Oc(t,e,i,r,n,s){var o,c=e&C0,d=e&P0,h=e&R0;if(i&&(o=n?i(t,r,n,s):i(t)),o!==void 0)return o;if(!ui(t))return t;var p=hr(t);if(p){if(o=Gk(t),!c)return qm(t,o)}else{var g=Jn(t),y=g==dg||g==N0;if(Gn(t))return Hm(t,c);if(g==lg||g==cg||y&&!n){if(o=d||y?{}:sg(t),!c)return d?Ak(t,Tk(o,t)):Ck(t,fk(o,t))}else{if(!ke[g])return n?t:{};o=f0(t,g,c)}}s||(s=new Di);var T=s.get(t);if(T)return T;s.set(t,o),I0(t)?t.forEach(function(R){o.add(Oc(R,e,i,R,t,s))}):k0(t)&&t.forEach(function(R,x){o.set(x,Oc(R,e,i,x,t,s))});var b=h?d?Dk:zl:d?aa:$l,O=p?void 0:b(t);return yT(O||t,function(R,x){O&&(x=R,R=t[x]),Im(o,x,Oc(R,e,i,x,t,s))}),o}var Z0=1,eb=4;function tu(t){return Oc(t,Z0|eb)}var tb="[object Symbol]";function ib(t){return typeof t=="symbol"||Oi(t)&&Kr(t)==tb}var rb=Object.defineProperty,nb=(t,e)=>{for(var i in e)rb(t,i,{get:e[i],enumerable:!0})},sb={};nb(sb,{permissions:()=>ab,theme:()=>ob});var Rt=(t=>(t.GroupCall="GROUP_CALL",t.Webinar="WEBINAR",t.AudioRoom="AUDIO_ROOM",t.Livestream="LIVESTREAM",t.Chat="CHAT",t))(Rt||{}),H=(t=>(t.Allowed="ALLOWED",t.NotAllowed="NOT_ALLOWED",t.CanRequest="CAN_REQUEST",t))(H||{}),ab={view_type:"GROUP_CALL",accept_waiting_requests:!1,accept_present_requests:!1,request_produce:!1,can_allow_participant_audio:!1,can_allow_participant_screensharing:!1,can_allow_participant_video:!1,can_spotlight:!1,request_kick_participant:!1,kick_participant:!1,pin_participant:!1,can_edit_display_name:!1,can_record:!1,can_livestream:!1,can_present:!0,waiting_room_type:"SKIP_ON_ACCEPT",recorder_type:"NONE",plugins:{can_close:!0,can_start:!0},polls:{can_create:!0,can_vote:!0,can_view:!0},produce:{video:{allow:!0,quality:"vga",frame_rate:24},audio:!0,screenshare:{allow:!0,quality:"hd",frame_rate:5}},chat:{public:{can_send:!0,text:!0,files:!0},private:{can_send:!1,can_receive:!1,text:!1,files:!1}},connected_meetings:{can_alter_connected_meetings:!1,can_switch_connected_meetings:!1,can_switch_to_parent_meeting:!1},reactions:!1,hidden_participant:!1,is_recorder:!1,show_participant_list:!0,can_change_participant_role:!1,can_change_theme:!1,max_screenshare_count:1},ob={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}},ug="hXgU8Wc8pwuGNq9ms5q9Hh",hg;typeof process!="undefined"&&(hg=process==null?void 0:process.env)!=null&&hg.FLAGSMITH_ENVIRONMENT_KEY&&(ug={}.FLAGSMITH_ENVIRONMENT_KEY);function cb(t=[]){const e={};return t.forEach(i=>{e[i.feature.name]={enabled:i.enabled,value:i.feature_state_value}}),e}var db=class{constructor(t=ug){m(this,"flags",{}),m(this,"environmentKey",null),this.environmentKey=t}identifyAndFetchFlagsWithRetry(t){return u(this,arguments,function*({primaryEndpoint:e,secondaryEndpoint:i,forceEvaluate:r,timeout:n,uniqueIdentifier:s,traitsObj:o,logger:c}){const d=JSON.parse(JSON.stringify(o)),h=Object.entries(d).map(g=>({trait_key:g[0],trait_value:g[1]})),p=[e,i,i];for(const g of p)try{const y=new AbortController,T=setTimeout(()=>y.abort(),n),b="_"+(Math.random()+1).toString(36).substring(2),O=yield fetch(`https://${g}/api/v1/identities/`,{method:"POST",headers:{"Content-Type":"application/json","X-Environment-Key":this.environmentKey},body:JSON.stringify({identifier:s+(r?b:""),traits:h}),signal:y.signal});if(clearTimeout(T),!O.ok)throw new Error(`Request failed with status ${O.status}`);const R=yield O.json();return cb(R.flags||[])}catch(y){c.error("Flagsmith identify failed!!",{error:y,url:g})}return{}})}identify(t){return u(this,arguments,function*(e,i={},r=!1,n=5e3,s="edge.api.flagsmith.com",o=console){return this.flags=yield this.identifyAndFetchFlagsWithRetry({traitsObj:i,uniqueIdentifier:e,forceEvaluate:r,timeout:n,primaryEndpoint:s,secondaryEndpoint:"edge.api.flagsmith.com",logger:o}),this.flags})}getValue(t){return this.flags&&this.flags[t]&&this.flags[t].value}hasFeature(t){return this.flags&&this.flags[t]&&this.flags[t].enabled}getAllFlags(){return this.flags}},z=new db,pg=[-2,-1,0,1,2],lb=[0,1,2,3,4];function ub(t){t=t.trim();let e="0",i="0",r="0";return t.length==4?(e="0x"+t[1]+t[1],i="0x"+t[2]+t[2],r="0x"+t[3]+t[3]):t.length>6&&(e="0x"+t[1]+t[2],i="0x"+t[3]+t[4],r="0x"+t[5]+t[6]),[+e,+i,+r]}var hb=(t,e,i)=>{let r,n,s;if(e==0)r=n=s=i;else{const o=(h,p,g)=>(g<0&&(g+=1),g>1&&(g-=1),g<.16666666666666666?h+(p-h)*6*g:g<.5?p:g<.6666666666666666?h+(p-h)*(.6666666666666666-g)*6:h),c=i<.5?i*(1+e):i+e-i*e,d=2*i-c;r=o(d,c,t+1/3),n=o(d,c,t),s=o(d,c,t-1/3)}return[Math.round(r*255),Math.round(n*255),Math.round(s*255)]},pb=(t,e,i)=>{t/=255,e/=255,i/=255;const r=Math.max(t,e,i),n=Math.min(t,e,i);let s,o;const c=(r+n)/2;if(r==n)s=o=0;else{const d=r-n;switch(o=c>.5?d/(2-r-n):d/(r+n),r){case t:s=(e-i)/d+(e<i?6:0);break;case e:s=(i-t)/d+2;break;case i:s=(t-e)/d+4;break}s/=6}return[s,o,c]},mb=(t,e,i)=>{const r=n=>n.toString(16).padStart(2,"0");return`#${r(t)}${r(e)}${r(i)}`},mg=(t,e=pg,i=.4)=>{const r=[],[n,s,o]=ub(t),[c,d,h]=pb(n,s,o),p=Math.round(h*100);p>70?i=.8:p>60?i=.9:p<10?i=.075:p<42&&(i=.3);const g=e.findIndex(R=>R===0);if(g===-1)throw new Error("Invalid reducer provided, it must contain atleast one zero");const y=5-g,T=g+1,b=(100-p)/y,O=p/T;for(const R of e){let x;R<0?x=p+R*O*i:R>0?x=p+R*b*i:x=p;const[G,$,I]=hb(c,d,x/100);r.push(mb(G,$,I))}return r},gg={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"}},gb=t=>{const[e,i,r,n,s]=mg(t,pg);return{300:e,400:i,500:r,600:n,700:s}},fb=t=>{if(t==="#FFFFFF")return gg.light.background;if(t==="#000000")return gg.dark.background;const[e,i,r,n,s]=mg(t,lb);return{1e3:e,900:i,800:r,700:n,600:s}},vb={border_radius:"rounded",border_width:"thin",spacing_base:4,theme:"dark",colors:{brand:gb("#2160FD"),background:fb("#141414"),danger:"#FF2D2D",text:"#EEEEEE",text_on_brand:"#EEEEEE",success:"#62A504",video_bg:"#191919",warning:"#FFCD07"}};function fg(){return tu(vb)}var yb={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:fg(),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 Sb(){return tu(yb)}var Eb={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:fg(),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 iu(){return tu(Eb)}var Tb=/\s/;function kb(t){for(var e=t.length;e--&&Tb.test(t.charAt(e)););return e}var bb=/^\s+/;function _b(t){return t&&t.slice(0,kb(t)+1).replace(bb,"")}var vg=0/0,wb=/^[-+]0x[0-9a-f]+$/i,Ib=/^0b[01]+$/i,Cb=/^0o[0-7]+$/i,Pb=parseInt;function yg(t){if(typeof t=="number")return t;if(ib(t))return vg;if(ui(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=ui(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=_b(t);var i=Ib.test(t);return i||Cb.test(t)?Pb(t.slice(2),i?2:8):wb.test(t)?vg:+t}function Sg(t){return t}function Rb(t,e,i){switch(i.length){case 0:return t.call(e);case 1:return t.call(e,i[0]);case 2:return t.call(e,i[0],i[1]);case 3:return t.call(e,i[0],i[1],i[2])}return t.apply(e,i)}var Mb=800,Ab=16,Db=Date.now;function Ob(t){var e=0,i=0;return function(){var r=Db(),n=Ab-(r-i);if(i=r,n>0){if(++e>=Mb)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function Nb(t){return function(){return t}}var Lb=Pc?function(t,e){return Pc(t,"toString",{configurable:!0,enumerable:!1,value:Nb(e),writable:!0})}:Sg,Vb=Ob(Lb);const xb=Vb;var Eg=Math.max;function Ub(t,e,i){return e=Eg(e===void 0?t.length-1:e,0),function(){for(var r=arguments,n=-1,s=Eg(r.length-e,0),o=Array(s);++n<s;)o[n]=r[e+n];n=-1;for(var c=Array(e+1);++n<e;)c[n]=r[n];return c[e]=i(o),Rb(t,this,c)}}function Fb(t,e){return xb(Ub(t,e,Sg),t+"")}function Bb(t,e,i){if(!ui(i))return!1;var r=typeof e;return(r=="number"?sa(i)&&Dm(e,i.length):r=="string"&&e in i)?Zs(i[e],t):!1}function Wb(t){return Fb(function(e,i){var r=-1,n=i.length,s=n>1?i[n-1]:void 0,o=n>2?i[2]:void 0;for(s=t.length>3&&typeof s=="function"?(n--,s):void 0,o&&Bb(i[0],i[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++r<n;){var c=i[r];c&&t(e,c,r,s)}return e})}var jb="[object Object]",Hb=Function.prototype,qb=Object.prototype,Tg=Hb.toString,Gb=qb.hasOwnProperty,$b=Tg.call(Object);function Jb(t){if(!Oi(t)||Kr(t)!=jb)return!1;var e=Kl(t);if(e===null)return!0;var i=Gb.call(e,"constructor")&&e.constructor;return typeof i=="function"&&i instanceof i&&Tg.call(i)==$b}var Kb="__lodash_hash_undefined__";function zb(t){return this.__data__.set(t,Kb),this}function Yb(t){return this.__data__.has(t)}function Nc(t){var e=-1,i=t==null?0:t.length;for(this.__data__=new Xr;++e<i;)this.add(t[e])}Nc.prototype.add=Nc.prototype.push=zb,Nc.prototype.has=Yb;function Qb(t,e){for(var i=-1,r=t==null?0:t.length;++i<r;)if(e(t[i],i,t))return!0;return!1}function Xb(t,e){return t.has(e)}var Zb=1,e_=2;function kg(t,e,i,r,n,s){var o=i&Zb,c=t.length,d=e.length;if(c!=d&&!(o&&d>c))return!1;var h=s.get(t),p=s.get(e);if(h&&p)return h==e&&p==t;var g=-1,y=!0,T=i&e_?new Nc:void 0;for(s.set(t,e),s.set(e,t);++g<c;){var b=t[g],O=e[g];if(r)var R=o?r(O,b,g,e,t,s):r(b,O,g,t,e,s);if(R!==void 0){if(R)continue;y=!1;break}if(T){if(!Qb(e,function(x,G){if(!Xb(T,G)&&(b===x||n(b,x,i,r,s)))return T.push(G)})){y=!1;break}}else if(!(b===O||n(b,O,i,r,s))){y=!1;break}}return s.delete(t),s.delete(e),y}function t_(t){var e=-1,i=Array(t.size);return t.forEach(function(r,n){i[++e]=[n,r]}),i}function i_(t){var e=-1,i=Array(t.size);return t.forEach(function(r){i[++e]=r}),i}var r_=1,n_=2,s_="[object Boolean]",a_="[object Date]",o_="[object Error]",c_="[object Map]",d_="[object Number]",l_="[object RegExp]",u_="[object Set]",h_="[object String]",p_="[object Symbol]",m_="[object ArrayBuffer]",g_="[object DataView]",bg=ur?ur.prototype:void 0,ru=bg?bg.valueOf:void 0;function f_(t,e,i,r,n,s,o){switch(i){case g_:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case m_:return!(t.byteLength!=e.byteLength||!s(new Dc(t),new Dc(e)));case s_:case a_:case d_:return Zs(+t,+e);case o_:return t.name==e.name&&t.message==e.message;case l_:case h_:return t==e+"";case c_:var c=t_;case u_:var d=r&r_;if(c||(c=i_),t.size!=e.size&&!d)return!1;var h=o.get(t);if(h)return h==e;r|=n_,o.set(t,e);var p=kg(c(t),c(e),r,n,s,o);return o.delete(t),p;case p_:if(ru)return ru.call(t)==ru.call(e)}return!1}var v_=1,y_=Object.prototype,S_=y_.hasOwnProperty;function E_(t,e,i,r,n,s){var o=i&v_,c=zl(t),d=c.length,h=zl(e),p=h.length;if(d!=p&&!o)return!1;for(var g=d;g--;){var y=c[g];if(!(o?y in e:S_.call(e,y)))return!1}var T=s.get(t),b=s.get(e);if(T&&b)return T==e&&b==t;var O=!0;s.set(t,e),s.set(e,t);for(var R=o;++g<d;){y=c[g];var x=t[y],G=e[y];if(r)var $=o?r(G,x,y,e,t,s):r(x,G,y,t,e,s);if(!($===void 0?x===G||n(x,G,i,r,s):$)){O=!1;break}R||(R=y=="constructor")}if(O&&!R){var I=t.constructor,se=e.constructor;I!=se&&"constructor"in t&&"constructor"in e&&!(typeof I=="function"&&I instanceof I&&typeof se=="function"&&se instanceof se)&&(O=!1)}return s.delete(t),s.delete(e),O}var T_=1,_g="[object Arguments]",wg="[object Array]",Lc="[object Object]",k_=Object.prototype,Ig=k_.hasOwnProperty;function b_(t,e,i,r,n,s){var o=hr(t),c=hr(e),d=o?wg:Jn(t),h=c?wg:Jn(e);d=d==_g?Lc:d,h=h==_g?Lc:h;var p=d==Lc,g=h==Lc,y=d==h;if(y&&Gn(t)){if(!Gn(e))return!1;o=!0,p=!1}if(y&&!p)return s||(s=new Di),o||Mc(t)?kg(t,e,i,r,n,s):f_(t,e,d,i,r,n,s);if(!(i&T_)){var T=p&&Ig.call(t,"__wrapped__"),b=g&&Ig.call(e,"__wrapped__");if(T||b){var O=T?t.value():t,R=b?e.value():e;return s||(s=new Di),n(O,R,i,r,s)}}return y?(s||(s=new Di),E_(t,e,i,r,n,s)):!1}function Cg(t,e,i,r,n){return t===e?!0:t==null||e==null||!Oi(t)&&!Oi(e)?t!==t&&e!==e:b_(t,e,i,r,Cg,n)}function __(t){return function(e,i,r){for(var n=-1,s=Object(e),o=r(e),c=o.length;c--;){var d=o[t?c:++n];if(i(s[d],d,s)===!1)break}return e}}var w_=__();const I_=w_;var C_=function(){return li.Date.now()};const nu=C_;var P_="Expected a function",R_=Math.max,M_=Math.min;function su(t,e,i){var r,n,s,o,c,d,h=0,p=!1,g=!1,y=!0;if(typeof t!="function")throw new TypeError(P_);e=yg(e)||0,ui(i)&&(p=!!i.leading,g="maxWait"in i,s=g?R_(yg(i.maxWait)||0,e):s,y="trailing"in i?!!i.trailing:y);function T(ne){var Se=r,nt=n;return r=n=void 0,h=ne,o=t.apply(nt,Se),o}function b(ne){return h=ne,c=setTimeout(x,e),p?T(ne):o}function O(ne){var Se=ne-d,nt=ne-h,ft=e-Se;return g?M_(ft,s-nt):ft}function R(ne){var Se=ne-d,nt=ne-h;return d===void 0||Se>=e||Se<0||g&&nt>=s}function x(){var ne=nu();if(R(ne))return G(ne);c=setTimeout(x,O(ne))}function G(ne){return c=void 0,y&&r?T(ne):(r=n=void 0,o)}function $(){c!==void 0&&clearTimeout(c),h=0,r=d=n=c=void 0}function I(){return c===void 0?o:G(nu())}function se(){var ne=nu(),Se=R(ne);if(r=arguments,n=this,d=ne,Se){if(c===void 0)return b(d);if(g)return clearTimeout(c),c=setTimeout(x,e),T(d)}return c===void 0&&(c=setTimeout(x,e)),o}return se.cancel=$,se.flush=I,se}function au(t,e,i){(i!==void 0&&!Zs(t[e],i)||i===void 0&&!(e in t))&&Hl(t,e,i)}function A_(t){return Oi(t)&&sa(t)}function ou(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}function D_(t){return ra(t,aa(t))}function O_(t,e,i,r,n,s,o){var c=ou(t,i),d=ou(e,i),h=o.get(d);if(h){au(t,i,h);return}var p=s?s(c,d,i+"",t,e,o):void 0,g=p===void 0;if(g){var y=hr(d),T=!y&&Gn(d),b=!y&&!T&&Mc(d);p=d,y||T||b?hr(c)?p=c:A_(c)?p=qm(c):T?(g=!1,p=Hm(d,!0)):b?(g=!1,p=rg(d,!0)):p=[]:Jb(d)||Rc(d)?(p=c,Rc(c)?p=D_(c):(!ui(c)||Wl(c))&&(p=sg(d))):g=!1}g&&(o.set(d,p),n(p,d,r,s,o),o.delete(d)),au(t,i,p)}function Pg(t,e,i,r,n){t!==e&&I_(e,function(s,o){if(n||(n=new Di),ui(s))O_(t,e,o,i,Pg,r,n);else{var c=r?r(ou(t,o),s,o+"",t,e,n):void 0;c===void 0&&(c=s),au(t,o,c)}},aa)}var N_="[object Map]",L_="[object Set]",V_=Object.prototype,x_=V_.hasOwnProperty;function U_(t){if(t==null)return!0;if(sa(t)&&(hr(t)||typeof t=="string"||typeof t.splice=="function"||Gn(t)||Mc(t)||Rc(t)))return!t.length;var e=Jn(t);if(e==N_||e==L_)return!t.size;if(Ac(t))return!Um(t).length;for(var i in t)if(x_.call(t,i))return!1;return!0}function F_(t,e){return Cg(t,e)}var B_=Wb(function(t,e,i){Pg(t,e,i)});const pr=B_;var cu=(t=>(t.PARTICIPANT="PARTICIPANT",t.PEER="PEER",t.CLIENT="CLIENT",t))(cu||{});const ie={PROPAGATE_KICK_ALL:"propagate_kick_across_rooms",REFRESH_ID_ON_DISCONNECTION:"refresh_id_on_disconnection",SIMULCAST:"simulcast",CHAT_SOCKET_SERVER:"chat_socket_server",POLL_SOCKET_SERVER:"poll_socket_server",PLUGIN_SOCKET_SERVER:"plugin_socket_server",NR_OTEL_WEB:"nr_otel_web",ICE_RESTART_ON_FAILED_STATE:"ice_restart_on_failed_state",ICE_RESTART_ON_DISCONNECTED_STATE:"ice_restart_on_disconnected_state",ENABLE_ICE_STATE_LOGGING:"enable_ice_state_logging",SUPPRESS_PEER_MUTE_UNMUTE_EMITS:"web_core_suppress_peer_mute_unmute_emits",SKIP_OTEL_TRACES:"skip_otel_traces",USE_USERIDS_IN_CHAT:"use_userids_in_chat",CUSTOM_PING_PONG:"custom_ping_pong",ENABLE_HIVE_SIMULCAST:"enable_hive_simulcast",ENABLE_HIVE_TRANSPORT_RECONNECTION_ON_ICE_FAILED:"enable_hive_transport_reconnection_on_ice_failed",ENABLE_HIVE_EXPERIMENTAL_FAIL_RECOVERY:"enable_hive_fail_recovery",ENABLE_HIVE_INFINITE_RETRIES:"enable_hive_infinite_retries",HIVE_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED:"hive_transport_force_relay_on_ice_failed",ENABLE_HIVE_CONSUME_OVER_DC:"enable_hive_consume_over_dc",ENABLE_CF_SIMULCAST:"enable_cf_simulcast",ENABLE_CF_TRANSPORT_RECONNECTION_ON_ICE_FAILED:"enable_cf_transport_reconnection_on_ice_failed",ENABLE_CF_EXPERIMENTAL_FAIL_RECOVERY:"enable_cf_fail_recovery",ENABLE_CF_INFINITE_RETRIES:"enable_cf_infinite_retries",CF_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED:"cf_transport_force_relay_on_ice_failed",BYPASS_LOG_EXCLUSION_LIST:"bypass_log_exclusion_list",LOG_LEVEL:"log_level",V1_PLUGINS:"v1_plugins",SCREENSHARE_DTX:"screenshare_dtx",SCREENSHARE_PRIORITY:"screenshare_priority",SCREENSHARE_MIN_BITRATE:"screenshare_minbitrate",SCREENSHARE_SIMULCAST:"screenshare_simulcast",DISABLE_WEBCAM_LAYERS_ON_SCREENSHARE:"disable_webcam_layers_on_screenshare",SCREENSHARE_FORCE_GOOG_CONFERENCE:"screenshare_force_goog_conference",LIVESTREAM:"feat_livestream",FETCH_RETRY:"fetch_retry",DISABLE_WEBCAM_SIMULCAST:"webcore_disable_webcam_simulcast",OVERRIDE_WEBCAM_SIMULCAST:"override_webcam_simulcast",SOCKET_POLLING:"socket_polling",FEAT_PAGINATED_CHAT:"feat_paginated_chat",VAL_MIN_FRAMERATE:"val_min_framerate",SCREEENSHARE_ERR_HACK:"screenshare_err_hack",SCREEENSHARE_CONSTRAINTS_RETRY:"screenshare_constraints_retry",TROUBLESHOOTING:"feat_troubleshooting",VIDEO_CONSTRAINTS:"video_constraints",SCREENSHARE_CONSTRAINTS:"screenshare_constraints",FEAT_CHAT_SDK:"feat_chat_sdk",FEAT_CHAT_SDK_SEARCH:"chat_search",OBS_QUALITY:"obs_quality",ALLOW_SAFARI_MEDIA_MIDDLEWARES:"allow_safari_media_middlewares",DYNAMIC_VIDEO_QUALITY:"dynamic_video_quality",EXP_RESHARE:"exp_reshare",LEAVE_STAGE_ON_END:"leave_stage_on_end",SKIP_SETTING_IN_USE_DEVICE:"skip_setting_in_use_device",PRECALL_BANDWIDTH_TEST:"precall_bandwidth_test",CONSUMER_BIND_NO_RETRY:"consumer_bind_no_retry",DEBUG_SOCKET_JOIN:"debug_socket_join",FORCE_RELAY:"force_relay",FORCE_VIDEO_CODEC:"force_video_codec",USE_EXPERIMENTAL_SFU_HANDLER:"use_experimental_sfu_handler",TRACK_HINT:"track_hint",OVERRIDE_HIVE_SIMULCAST_DYNAMIC:"override_hive_simulcast_dynamic",PRECREATE_PRODUCERS:"precreate_producers",DISABLE_OPUS_DTX_CF:"disable_opus_dtx_cf",ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS:"enable_audio_activity_debug_logs"};function Vc(t){const e={};return typeof(t==null?void 0:t.code)=="number"&&(e.code=t.code),typeof(t==null?void 0:t.code)=="string"&&(e.code=t.code.substring(0,100)),typeof(t==null?void 0:t.name)=="string"&&(e.name=t.name.substring(0,500)),typeof(t==null?void 0:t.message)=="string"&&(e.message=t.message.substring(0,500)),typeof(t==null?void 0:t.reason)=="string"&&(e.reason=t.reason.substring(0,500)),typeof(t==null?void 0:t.stack)=="string"&&(e.stack=t.stack.substring(0,500)),e}function W_(t){var e,i,r,n;const s=typeof navigator!="undefined"&&!navigator.isReactNative&&typeof window!="undefined"&&((e=window.location.host)==null?void 0:e.includes("devel"))&&((i=window.location.host)==null?void 0:i.includes("dyte.io")),o=!!((n=(r=t==null?void 0:t.getValue("modules"))==null?void 0:r.devTools)!=null&&n.logs);return s||o}function j_(t){var e;if(z.hasFeature(ie.LOG_LEVEL)){let i=((e=z.getValue(ie.LOG_LEVEL))==null?void 0:e.toString())||"all";if(i=i.toLowerCase().trim(),i==="off")return!1;if(i!=="all"){const r=["debug","log","info","warn","error"],n=r.indexOf(t),s=r.indexOf(i);if(n<s)return!1}}return!0}function Rg(t,e,i={}){return Object.getOwnPropertyNames(t).forEach(r=>{var n;if([null,void 0,NaN].includes(t[r])||e&&(((n=e.match(/\./g))==null?void 0:n.length)||0)>=10)return;const s=e?`${e}.${r}`:r;typeof t[r]=="object"?Rg(t[r],s,i):["number","string","boolean"].includes(typeof t[r])&&(i[s]=t[r])}),i}function Mg(t,e,i={},r=""){const n={};try{const s=JSON.stringify(i),o=JSON.parse(s),c=Rg(o,r),d=JSON.stringify(c);return JSON.parse(d)}catch(s){const o=Vc(s);n[`${r}.error.message`]=o.message||"",n[`${r}.error.stack`]=o.stack||"",n[`${r}.error.reason`]=o.reason||"",n[`${r}.error.source`]="safelyFlattenObjForOpenTelemetry"}return n}const oa="chrome",Ag="opera",Dg="firefox",Og="iexplorer",Ng="safari",Lg="nwjs",Vg="electron",xg="react-native",du="unknown",xc={Chrome:oa,Chromium:oa,Opera:Ag,Firefox:Dg,"Internet Explorer":Og,Safari:Ng};function H_(){const{userAgent:t}=navigator,e={name:du,version:void 0};if(t.match(/Chrome/)&&!t.match(/Edge/))if(t.match(/Edg(A?)/)){const i=t.match(/Chrome\/([\d.]+)/)[1];Number.parseInt(i,10)>72&&(e.name=oa,e.version=i)}else e.name=oa,e.version=t.match(/Chrome\/([\d.]+)/)[1];return e}function q_(){const{userAgent:t}=navigator;if(t.match(/Electron/)){const e=t.match(/Electron\/([\d.]+)/)[1];return{name:Vg,version:e}}return null}function G_(){const{userAgent:t}=navigator;if(t.match(/JitsiMeetNW/)){const e=t.match(/JitsiMeetNW\/([\d.]+)/)[1];return{name:Lg,version:e}}}function $_(){const t=navigator.userAgent.match(/\b(react[ \t_-]*native)(?:\/(\S+))?/i);let e;if(t||navigator.product==="ReactNative")return t&&t.length>2&&(t[1],e=t[2]),e||(e="unknown"),{name:xg,version:e}}function J_(t){let e;const i=[$_,q_,G_];for(let n=0;n<i.length;n+=1)if(e=i[n](),e)return e;const r=t.getBrowserName();return r in xc?{name:xc[r],version:t.getBrowserVersion()}:(e=H_(),e||{name:du,version:void 0})}class K_{constructor(){m(this,"_bowser"),m(this,"_name"),m(this,"_version"),m(this,"getDeviceInfo",()=>({isMobile:this.isMobile(),browserName:this._bowser.getBrowserName(),osName:this._bowser.getOSName(),browserVersion:this._bowser.getBrowserVersion(),osVersionName:this._bowser.getOSVersion(),engineName:this._bowser.getEngineName()}))}init(e){let i,r;if(this._bowser=bp.getParser(navigator.userAgent),typeof e=="undefined"){const n=J_(this._bowser);i=n.name,r=n.version}else e.name in xc?(i=xc[e.name],r=e.version):(i=du,r=void 0);this._name=i,this._version=r}getName(){return this._name}isChrome(){return this._name===oa}isOpera(){return this._name===Ag}isFirefox(){return this._name===Dg}isIExplorer(){return this._name===Og}isSafari(){return this._name===Ng}isNWJS(){return this._name===Lg}isElectron(){return this._name===Vg}isReactNative(){return this._name===xg||navigator.isReactNative===!0}getVersion(){return this._version}isMobile(){return this._bowser.getPlatformType()==="mobile"}_checkCondition(e){if(this._version)return this._bowser.satisfies(e)}isVersionGreaterThan(e){return this._checkCondition({[this._name]:`>${e}`})}isVersionLessThan(e){return this._checkCondition({[this._name]:`<${e}`})}isVersionEqualTo(e){return this._checkCondition({[this._name]:`~${e}`})}}class z_ extends K_{doesVideoMuteByStreamRemove(){return this.isChromiumBased()||this.isWebKitBased()}supportsP2P(){return!this.usesUnifiedPlan()}isChromiumBased(){return this.isChrome()||this.isElectron()||this.isNWJS()||this.isOpera()}isWebKitBased(){return this._bowser.isEngine("webkit")&&typeof navigator.mediaDevices!="undefined"&&typeof navigator.mediaDevices.getUserMedia!="undefined"&&typeof window.RTCRtpTransceiver!="undefined"&&Object.keys(RTCRtpTransceiver.prototype).indexOf("currentDirection")>-1}isSupported(){return typeof RTCPeerConnection!="undefined"}isUserInteractionRequiredForUnmute(){return this.isFirefox()&&this.isVersionLessThan("68")}supportsVideoMuteOnConnInterrupted(){return this.isChromiumBased()||this.isReactNative()||this.isWebKitBased()}supportsBandwidthStatistics(){return!this.isFirefox()&&!this.isWebKitBased()}supportsCodecPreferences(){return this.usesUnifiedPlan()&&typeof window.RTCRtpTransceiver!="undefined"&&Object.keys(window.RTCRtpTransceiver.prototype).indexOf("setCodecPreferences")>-1&&Object.keys(RTCRtpSender.prototype).indexOf("getCapabilities")>-1&&!this.isWebKitBased()}supportsDeviceChangeEvent(){return navigator.mediaDevices&&typeof navigator.mediaDevices.ondevicechange!="undefined"&&typeof navigator.mediaDevices.addEventListener!="undefined"}supportsLocalCandidateRttStatistics(){return this.isChromiumBased()||this.isReactNative()||this.isWebKitBased()}supportsPerformanceObserver(){return typeof window.PerformanceObserver!="undefined"&&PerformanceObserver.supportedEntryTypes.indexOf("longtask")>-1}supportsReceiverStats(){return typeof window.RTCRtpReceiver!="undefined"&&Object.keys(RTCRtpReceiver.prototype).indexOf("getSynchronizationSources")>-1}supportsRTTStatistics(){return!this.isFirefox()}usesPlanB(){return!this.usesUnifiedPlan()}usesSdpMungingForSimulcast(){return this.isChromiumBased()||this.isReactNative()||this.isWebKitBased()}usesUnifiedPlan(){return!!(this.isFirefox()||this.isWebKitBased())}usesNewGumFlow(){return!!(this.isChromiumBased()||this.isFirefox()||this.isWebKitBased())}usesAdapter(){return this.usesNewGumFlow()}usesRidsForSimulcast(){return!1}supportsGetDisplayMedia(){return typeof navigator.getDisplayMedia!="undefined"||typeof navigator.mediaDevices!="undefined"&&typeof navigator.mediaDevices.getDisplayMedia!="undefined"}supportsInsertableStreams(){if(!(typeof window.RTCRtpSender!="undefined"&&(window.RTCRtpSender.prototype.createEncodedStreams||window.RTCRtpSender.prototype.createEncodedVideoStreams)))return!1;const e=new ReadableStream;try{return window.postMessage(e,"*",[e]),!0}catch(i){return!1}}supportsAudioRed(){return Boolean(window.RTCRtpSender&&window.RTCRtpSender.getCapabilities&&window.RTCRtpSender.getCapabilities("audio").codecs.some(e=>e.mimeType==="audio/red")&&window.RTCRtpReceiver&&window.RTCRtpReceiver.getCapabilities&&window.RTCRtpReceiver.getCapabilities("audio").codecs.some(e=>e.mimeType==="audio/red"))}supportsSdpSemantics(){return this.isChromiumBased()}_getChromiumBasedVersion(){if(this.isChromiumBased()){if(this.isNWJS())return Number.parseInt(process.versions.chromium,10);const e=navigator.userAgent;if(e.match(/Chrome/))return Number.parseInt(e.match(/Chrome\/([\d.]+)/)[1],10)}return-1}isIOSMobile(){return this.isMobile&&this._bowser.getOSName()==="iOS"}}const Ie=new z_,Y_={audio:!0,video:!0,screenshareAudio:!0,screenshareVideo:!0},ca={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"},Q_={pip:!0,poll:!0,chat:!0,stage:!0,theme:!0,plugin:!0,tracing:!0,internals:!0,recording:!0,livestream:!0,participant:!0,devTools:{logs:!1}};function Kn(t,e){const i=t.getValue("overrides");return i&&i[e]?i[e]:!1}function X_({baseURI:t}){return t!=null&&t.includes("preprod.dyte")?Xs.PREPROD:t!=null&&t.includes("devel.dyte")?Xs.DEVEL:Xs.PROD}function zn({servicePrefix:t,baseURI:e}){return`${t}.${e}`}function Ug(t){const e=t.getValue("baseURI");return{location:zn({servicePrefix:"location",baseURI:e}),locationLegacy:zn({servicePrefix:"location-legacy",baseURI:e}),daCollector:zn({servicePrefix:"da-collector",baseURI:e})}}const Z_='<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>',ew='<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>',Uc=t=>{if(!t)return;if(!t.startsWith("<svg"))return new Promise(n=>{n(t)});const e=new Blob([t],{type:"image/svg+xml"}),i=new Image,r=window.URL.createObjectURL(e);return new Promise((n,s)=>{i.onload=()=>{n(i),window.URL.revokeObjectURL(r)},i.onerror=()=>{s(),window.URL.revokeObjectURL(r)},i.src=r})};var mr,gr;const Fg=class extends lt.EventEmitter{constructor(){super(),f(this,mr,void 0),f(this,gr,void 0),m(this,"asyncPromiseTimeout"),v(this,mr,new Map),v(this,gr,new Map),this.asyncPromiseTimeout=8e3}emitAsync(t,...e){return u(this,null,function*(){a(this,mr).set(t,[]);const i=a(this,gr).get(t).map(()=>new Promise(r=>{a(this,mr).get(t).push(r)}));NS(Fg.prototype,this,"emit").call(this,t,...e),yield Promise.race([Promise.all(i),new Promise((r,n)=>setTimeout(()=>n(new Error(`emitAsync failed to resolve for event ${t}.`)),this.asyncPromiseTimeout))]),a(this,mr).delete(t)})}onAsync(t,e){const i=a(this,mr),r=(...n)=>u(this,null,function*(){var s;try{yield e(...n)}catch(c){l.error("[onAsync]",{error:c})}const o=(s=i.get(t))==null?void 0:s.shift();o==null||o()});return a(this,gr).get(t)||a(this,gr).set(t,[]),a(this,gr).get(t).push(r),super.on(t,r)}reset(){v(this,mr,new Map),v(this,gr,new Map),super.removeAllListeners()}};let tw=Fg;mr=new WeakMap,gr=new WeakMap;function iw(t){const e=L({},t),i=new Map,r=(o,c)=>(i.has(o)||i.set(o,new Set),i.get(o).add(c),()=>{var d;return(d=i.get(o))==null?void 0:d.delete(c)}),n=(o,c)=>{var d;(d=i.get(o))==null||d.delete(c)},s=o=>{var c;(c=i.get(o))==null||c.forEach(d=>{try{d(e[o])}catch(h){l.error(`Error in notifying for "${o.toString()}"`,h)}})};return{subscribe:r,unsubscribe:n,notify:s,setValue:(o,c,d=!0)=>{e[o]=c,d&&s(o)},getValue:o=>e[o],getAllValues:()=>e}}class rw{constructor(){m(this,"contexts",new Map),m(this,"mostRecentPeerId",null)}createContext(e,i){return this.contexts.has(e)?this.contexts.get(e):(this.contexts.set(e,iw(i)),this.contexts.get(e).setValue("peerSessionStore",new tw),this.mostRecentPeerId=e,this.contexts.get(e))}remapContext(e,i){const r=i.getValue("peerId");r!==e&&(i.setValue("peerId",e),this.mostRecentPeerId=e,this.contexts.set(e,i),this.contexts.delete(r))}getContext(e){return this.contexts.get(e)}getMostRecentPeerId(){return this.mostRecentPeerId}}const en=new rw,oe=class{static get logsEndpoint(){const t=en.getContext(oe.meetingMetadata.peerId);return`https://${zn({servicePrefix:"api-silos",baseURI:t.getValue("baseURI")})}/otel/logs`}static resetPeerId(t){oe.meetingMetadata.peerId=t}static init(t,e){const i=t.getValue("peerId");oe.tracingEnabled=e,oe.meetingMetadata.peerId=i,oe.meetingMetadata.sdkVersion=t.getValue("sdkVersion"),oe.meetingMetadata.deviceInfo=Ie.getDeviceInfo(),oe.meetingMetadata.visitedUrl=!navigator.isReactNative&&typeof window!="undefined"&&window.location.href,navigator.isReactNative||document.addEventListener("visibilitychange",oe.processCachedLogs),oe.logsProcessorTimer=setInterval(oe.processCachedLogs,oe.logsProcessingInterval),e&&(oe.initialized=!0)}static trace(t,e=void 0){return(i,r,n)=>{const s=n.value;return n.value=function(...o){if(!oe.initialized||navigator.isReactNative||!oe.tracingEnabled||z.hasFeature(ie.SKIP_OTEL_TRACES))return s.apply(this,o);oe.addLogInCurrentSpan("info",t,e);const c=performance.now(),d=s.apply(this,o);return Promise.resolve(d).then(()=>{const h=performance.now();h-c>10&&oe.addLogInCurrentSpan("info",`${t}_timing`,{execTime:h-c,country:oe.location.country})}).catch(()=>{const h=performance.now();oe.addLogInCurrentSpan("info",`${t}_timing`,{execTime:h-c})}),d},n}}static injectContext(t){var e;const i=jn().replace(/-/g,"").substring(0,16),r=(e=oe.meetingMetadata.peerId)==null?void 0:e.replace(/-/g,"");t.TRACEPARENT=`00-${r}-${i}-01`}static addLogInCurrentSpan(t,e,i={},r=!1){i!=null&&i.error&&Object.assign(i,{error:Vc(i.error)});const n=en.getContext(oe.meetingMetadata.peerId);if(W_(n)&&(U_(i)?console[t]("DyteInternalLogs:: ",t,e):console[t]("DyteInternalLogs:: ",t,e,i)),!!j_(t))try{const s=Mg(n,e,i,"metadata"),o=new Date,c=j(L({message:e,level:t},s),{loggedAt:o.toISOString(),loggedAtTzOffset:o.getTimezoneOffset()});r?oe.sendOtelLogsToNewRelic([c]):oe.logsCache.push(c)}catch(s){oe.addLogInCurrentSpan("error","opentelemetry::addLogInCurrentSpan_failed",{error:Vc(s)})}}static sendOtelLogsToNewRelic(t){const e=en.getContext(oe.meetingMetadata.peerId);fetch(oe.logsEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({meetingMetadata:Mg(e,"sendOtelLogsToNewRelic",oe.meetingMetadata,"meetingMetadata"),serviceName:e.getValue("sdkName"),logs:t})}).catch(i=>{oe.addLogInCurrentSpan("error","opentelemetry::sendOtelLogToNewRelic_failed",{error:Vc(i)}),oe.logsCache.push(...t)})}static processCachedLogs(){const t=oe.logsCache.splice(0,25);t!=null&&t.length&&oe.sendOtelLogsToNewRelic(t)}static destruct(){clearInterval(oe.logsProcessorTimer),oe.processCachedLogs(),navigator.isReactNative||document.removeEventListener("visibilitychange",oe.processCachedLogs)}};let S=oe;m(S,"logsCache",[]),m(S,"logsProcessorTimer"),m(S,"location",{country:void 0}),m(S,"tracingEnabled",!0),m(S,"initialized",!1),m(S,"logsProcessingInterval",7e3),m(S,"logExclusionList",["message","websocket/message","roomMessage","websocket/room-message","websocket/room-legacy-mode","chatMessage","websocket/new-chat-message","websocket/no-active-speaker","websocket/selected-peers","websocket/active-speaker","ping","websocket/new-consumer","websocket/producer-score","websocket/consumer-score","websocket/plugin-event","websocket/plugin-data","websocket/plugin-internal-data"]),m(S,"meetingMetadata",{});class l{static info(e,i,r){S.addLogInCurrentSpan("info",e,i,r)}static error(e,i,r){S.addLogInCurrentSpan("error",e,i,r)}static debug(e,i,r){S.addLogInCurrentSpan("debug",e,i,r)}static log(e,i,r){S.addLogInCurrentSpan("log",e,i,r)}static warn(e,i,r){S.addLogInCurrentSpan("warn",e,i,r)}}const nw=()=>{!navigator.isReactNative&&typeof window!="undefined"&&(window.addEventListener("error",t=>{var e;!((e=t.filename)!=null&&e.includes("localhost"))&&t.lineno!==0&&l.error("window::error",{error:t.error},!0)}),window.addEventListener("unhandledrejection",t=>{var e,i,r,n,s,o,c,d;l.error("window::unhandledrejection",{error:t==null?void 0:t.reason,networkCall:{url:(i=(e=t==null?void 0:t.reason)==null?void 0:e.config)==null?void 0:i.url,baseURL:(n=(r=t==null?void 0:t.reason)==null?void 0:r.config)==null?void 0:n.baseURL,method:(o=(s=t==null?void 0:t.reason)==null?void 0:s.config)==null?void 0:o.method,status:(c=t==null?void 0:t.reason)==null?void 0:c.status,statusText:(d=t==null?void 0:t.reason)==null?void 0:d.statusText}},!0)}),window.addEventListener("offline",()=>{l.info("window::offline")}),window.addEventListener("online",()=>{l.info("window::online")}))},sw={"00":"DyteClient","01":"Controller","02":"RoomNodeClient","03":"HiveNodeClient","04":"SocketService","05":"Chat","06":"Plugin","07":"Polls","08":"Meta","09":"Preset",10:"Recording",11:"Self",12:"Participant",13:"Spotlight",14:"Remote Request",15:"Webinar",16:"LocalMediaHandler",17:"End-End Encryption",18:"AI",19:"Livestream",20:"Stage"},Fc={"0000":"Internal exception.","0001":"Failed to initialize.","0002":"Failed to join room.","0003":"Failed to leave room.","0004":"Invalid auth token","0010":"Browser not supported","0011":"HTTP Network Error","0012":"Websocket Network Error","0013":"Rate Limited","0100":"Internal exception","0101":"Permission denied","0102":"Prerequisite module missing","0200":"Internal exception.","0300":"Internal exception","0400":"Internal exception","0404":"Missing prerequisites to establish a websocket connection","0500":"Internal exception","0501":"Permission denied.","0502":"Invalid message body.","0503":"Text Message is too large","0504":"Message not found by the given id","0505":"Action not permitted without joining room","0506":"Message search is disabled","0510":"Invalid channel name.","0600":"Internal exception","0601":"Permission denied.","0602":"Auth token not set for plugin","0603":"Iframe was not provided","0700":"Internal exception","0705":"Action not permitted without joining room","0800":"Internal exception","0801":"Permission denied","0900":"Internal exception","0904":"Could not load preset",1e3:"Internal exception",1001:"Permission denied",1004:"Could not find specified recording",1005:"Action not permitted in given recording state",1100:"Internal exception",1101:"Permission denied",1102:"Unsupported",1103:"Name cannot be empty",1104:"No device selected while calling meeting.self.setDevice",1105:"Action not permitted without joining room",1106:"Can't set currently used device",1200:"Internal exception",1201:"Permission denied",1202:"Invalid page number was requested",1203:"Invalid participant count per page was requested",1204:"No participants exists with the given UserIds",1205:"Action not permitted without joining room",1206:"Manual Subscription Mode was not ACTIVATED",1207:"Invalid view mode",1208:"Manual Subscription not enabled for organization",1209:"Broadcast message type must be a non-empty string",1300:"Internal exception",1400:"Internal exception",1402:"No existing remote requests",1403:"No peer exists with given id",1500:"Internal exception",1600:"Internal exception",1601:"Failed to get audio track",1602:"Failed to get video track",1603:"Incorrect device",1604:"Failed to change device",1605:"Failed to get audio & video track",1606:"No audio input devices are available",1607:"No video input devices are available",1608:"No audio output devices (speakers) are available",1609:"Failed to fetch list of media devices",1610:"No media track exists",1611:"Failed to unmute track",1612:"Failed to get screenshare tracks",1701:"Crypto error",1800:"Internal exception",1801:"Can't fetch transcript file",1900:"Internal exception",1901:"Permission denied.",1902:"Livestream that has not yet started, can't be stopped",2e3:"Internal exception",2001:"Permission denied",2002:"Unsupported",2003:"Stage is disabled",2004:"Method not implemented",2005:"Action not permitted without joining room",2006:"Action not permitted in current stage status",9900:"Internal exception"};Object.keys(Fc).forEach(t=>{Fc[t]=`{${sw[t.slice(0,2)]}} ${Fc[t]}`});class w extends Error{constructor(e,i,r=!1){super(e),m(this,"code"),this.code=i,this.name="DyteError",this.message=`[ERR${this.code}]: ${Fc[this.code]}
13
- ${this.message}`;try{let n=r;i&&i.endsWith("00")&&(n=!0),n&&l.error("DyteError",{error:{message:this.message,name:this.name,code:i}});const s=en.getContext(en.getMostRecentPeerId());if(s){const o=s.getValue("onError");try{o(this)}catch(c){}}typeof window!="undefined"&&window.dispatchEvent(new CustomEvent("dyteError",{detail:this}))}catch(n){}}}function Bc(t,e,i,r){if(r instanceof w)throw r;if(r instanceof e){const n=new w(r.message,i);throw n.stack=r.stack,n}else throw r}function Bg(t,e,i){if(!t.value){const n=t.get,s=t.set;return n&&(t.get=function(){try{return n.apply(this)}catch(o){Bc(this,e,i,o)}}),s&&(t.set=function(o){try{return s.apply(this,[o])}catch(c){Bc(this,e,i,c)}}),t}const r=t.value;return t.value=function(...n){try{const s=r.apply(this,n);return s&&s instanceof Promise?s.catch(o=>{Bc(this,e,i,o)}):s}catch(s){Bc(this,e,i,s)}},t}function aw(t,e){return(i,r,n)=>{if(n)return Bg(n,t,e);for(const s of Reflect.ownKeys(i.prototype).filter(o=>o!=="constructor")){const o=Object.getOwnPropertyDescriptor(i.prototype,s);(o.value instanceof Function||o.get instanceof Function||o.set instanceof Function)&&Object.defineProperty(i.prototype,s,Bg(o,t,e))}}}const ut=t=>aw(Error,t);function ow(t){let e=0,i,r;if(!t)return e;for(i=0;i<t.length;i+=1)r=t.charCodeAt(i),e=(e<<5)-e+r,e|=0;return Math.abs(e)%100+1}function cw(){Ie.isElectron()&&window.dyteElectronGetDisplayMediaSource&&(navigator.mediaDevices.getDisplayMedia=()=>u(this,null,function*(){const t=yield window.dyteElectronGetDisplayMediaSource({types:["window","screen"]});let e=[];if(t&&(Array.isArray(t)?e=t:e=[t]),!(e!=null&&e.length))throw new Error("Couldn't find any media source for screen share.");let i=e.find(n=>{var s;return(s=n.id)==null?void 0:s.includes("screen")});i=i!=null?i:e[0];const r={audio:!1,video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:i.id}}};return yield navigator.mediaDevices.getUserMedia(r)}))}var P=(t=>(t.NEW_PRODUCER="NEW_PRODUCER",t.PRODUCER_TRACK_ENDED="PRODUCER_TRACK_ENDED",t.ROOM_NODE_CONNECTION_ERROR="ROOM_NODE_CONNECTION_ERROR",t.SOCKET_SERVICE_ROOM_JOINED="SOCKET_SERVICE_ROOM_JOINED",t.SOCKET_SERVICE_RECONNECTED="SOCKET_SERVICE_RECONNECTED",t.SOCKET_SERVICE_DISCONNECTED="SOCKET_SERVICE_DISCONNECTED",t.SOCKET_SERVICE_FAILED="SOCKET_SERVICE_FAILED",t.SOCKET_STATE_UPDATE="SOCKET_STATE_UPDATE",t.ROOM_NODE_RECONNECTED="ROOM_NODE_RECONNECTED",t.ROOM_NODE_DISCONNECTED="ROOM_NODE_DISCONNECTED",t.ROOM_NODE_FAILED="ROOM_NODE_FAILED",t.TRANSPORT_STATE_UPDATE="TRANSPORT_STATE_UPDATE",t.PRODUCER_SCORE_UPDATE="PRODUCER_SCORE_UPDATE",t.CONSUMER_SCORE_UPDATE="CONSUMER_SCORE_UPDATE",t.PRODUCER_STATUS_UPDATE="PRODUCER_STATUS_UPDATE",t.CONSUMER_STATUS_UPDATE="CONSUMER_STATUS_UPDATE",t.LOW_PRODUCER_SCORE="LOW_PRODUCER_SCORE",t.LOW_CONSUMER_SCORE="LOW_CONSUMER_SCORE",t.MEDIA_PERMISSION_ERROR="MEDIA_PERMISSION_ERROR",t.MEDIA_PERMISSION_UPDATE="MEDIA_PERMISSION_UPDATE",t.WAITLISTED="WAIT_LISTED",t.MESSAGE="websocket/message",t.ROOM_MESSAGE="websocket/room-message",t.PEER_JOINED_INTERNAL="peer/joined-internal",t.PEER_CLOSED="websocket/peer-closed",t.CONSUMER_CLOSED="websocket/consumer-closed",t.CONSUMER_PAUSED="websocket/consumer-paused",t.CONSUMER_RESUMED="websocket/consumer-resumed",t.PRODUCER_CLOSED="websocket/producer-closed",t.NEW_CONSUMER="websocket/new-consumer",t.PRODUCER_SCORE="websocket/producer-score",t.CONSUMER_SCORE="websocket/consumer-score",t.PRODUCER_TOGGLE="hive/producer-toggle",t.CONSUMER_TOGGLE="hive/consumer-toggle",t.SELECTED_PEERS_DIFF="hive/selected-peers-diff",t.UPDATE_ACTIVE="media/update-active",t.RESET_PRODUCER_STATE="hive/reset-producer-state",t.CF_TRANSPORT_STATE_CHANGED="cf/transport-state-changed",t.CF_ROOM_REJOINING="cf/room-rejoining",t.CF_ROOM_REJOIN_FAILED="cf/room-rejoining-failed",t.CF_ROOM_REJOINED="cf/room-rejoined",t.CF_TRANPSORT_RECONNECTING="cf/transport-reconnecting",t.ROOM_STATE="sockethub/room-state",t.PEER_DISPLAY_NAME_CHANGED="hive/display-name-changed",t.GET_STAGE_REQUESTS="GET_STAGE_REQUESTS",t.UPDATE_STAGE_REQUESTS="UPDATE_STAGE_REQUESTS",t.KICK_PEER="KICK_PEER",t.UPDATE_PEER_STAGE_STATUS="UPDATE_PEER_STAGE_STATUS",t.JOIN_MEDIA_ROOM="JOIN_MEDIA_ROOM",t.LEAVE_MEDIA_ROOM="LEAVE_MEDIA_ROOM",t.PIP_HANGUP="PIP_HANGUP",t.E2EE_ACTIVE_PRODUCER="E2EE_ACTIVE_PRODUCER",t.E2EE_INACTIVE_PRODUCER="E2EE_INACTIVE_PRODUCER",t.E2EE_ACTIVE_CONSUMER="E2EE_ACTIVE_CONSUMER",t.E2EE_INACTIVE_CONSUMER="E2EE_INACTIVE_CONSUMER",t.SOCKET_PEERS="SOCKET_PEERS",t.UPDATE_PERMISSIONS="UPDATE_PERMISSIONS",t.MAX_SPATIAL_LAYER_CHANGE="MAX_SPATIAL_LAYER_CHANGE",t.MUTE_SELF="MUTE_SELF",t.MUTE_SELF_VIDEO="MUTE_SELF_VIDEO",t))(P||{});class Yn extends lt.EventEmitter{constructor(){super(),super.setMaxListeners(25)}emit(e,...i){return super.emit("*",e,...i),super.emit(e,...i)}on(e,i){try{const r=this.listenerCount(e);r>25&&r%25===0&&l.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}})}catch(r){}return super.on(e,i)}addListener(e,i){try{const r=this.listenerCount(e);r>25&&r%25===0&&l.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}})}catch(r){}return super.addListener(e,i)}off(e,i){return super.off(e,i)}once(e,i){return super.once(e,i)}prependListener(e,i){return super.prependListener(e,i)}prependOnceListener(e,i){return super.prependOnceListener(e,i)}removeListener(e,i){return super.removeListener(e,i)}removeAllListeners(e){return super.removeAllListeners(e)}listeners(e){return super.listeners(e)}listenerCount(e){return super.listenerCount(e)}}class Wt extends lt.EventEmitter{constructor(){super(),super.setMaxListeners(25)}emit(e,...i){return super.emit("*",e,...i),super.emit(e,...i)}on(e,i){try{const r=this.listenerCount(e);r>25&&r%25===0&&l.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}})}catch(r){}return super.on(e,i)}addListener(e,i){try{const r=this.listenerCount(e);r>25&&r%25===0&&l.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}})}catch(r){}return super.addListener(e,i)}off(e,i){return super.off(e,i)}once(e,i){return super.once(e,i)}prependListener(e,i){return super.prependListener(e,i)}prependOnceListener(e,i){return super.prependOnceListener(e,i)}removeListener(e,i){return super.removeListener(e,i)}removeAllListeners(e){return super.removeAllListeners(e)}listeners(e){return super.listeners(e)}listenerCount(e){return super.listenerCount(e)}}function dw(t,e=2){return t.replace(/[^\u00BF-\u1FFF\u2C00-\uD7FF\w\s]/g,"").trim().split(/\s+/).slice(0,e).map(i=>i.charAt(0)).join("").toUpperCase()}const Wg=1080,jg=1920,lw=(t,e,i,r,n,s)=>{let o=.5,c=.5;const d=n,h=s,p=Math.min(i/d,r/h);let g=d*p,y=h*p,T,b,O,R,x=1;return g<i&&(x=i/g),Math.abs(x-1)<1e-14&&y<r&&(x=r/y),g*=x,y*=x,O=d/(g/i),R=h/(y/r),T=(d-O)*o,b=(h-R)*c,T<0&&(T=0),b<0&&(b=0),O>d&&(O=d),R>h&&(R=h),[T,b,O,R,t,e,i,r]};var hi,Qn,yt,pi,je,Ni,fr,Mt,$e,da,la,vr,ua;const Hg=class extends Wt{constructor(t,e,i,r){super(),f(this,hi,void 0),f(this,Qn,void 0),f(this,yt,void 0),f(this,pi,void 0),f(this,je,{height:Wg,width:jg}),f(this,Ni,{brand:"#2160FD",background:"#141414",text:"#000000",videoBackground:"#191919",textOnBrand:"#EEEEEE"}),f(this,fr,void 0),f(this,Mt,{}),f(this,$e,void 0),f(this,da,void 0),f(this,la,void 0),f(this,vr,void 0),f(this,ua,!1),m(this,"cleanupEventListeners",()=>{a(this,Qn).unsubscribe("stageStatus",this.handlePipMediaControls),a(this,$e).removeListener("videoUpdate",this.onSelfVideoUpdateListener),a(this,$e).removeListener("audioUpdate",this.onSelfAudioUpdateListener),a(this,$e).removeListener("roomLeft",()=>this.disable())}),m(this,"enablePipMediaControls",()=>{this.mountAudioEvents(),this.mountVideoEvents()}),m(this,"onSelfVideoUpdateListener",({videoEnabled:n})=>{this.updateMediaSession("CAMERA",n)}),m(this,"onSelfAudioUpdateListener",({audioEnabled:n})=>{this.updateMediaSession("MIC",n)}),m(this,"handlePipMediaControls",n=>{n==="ON_STAGE"?this.enablePipMediaControls():this.unmountEvents()}),m(this,"eventCallback",n=>{n==="CAMERA"&&(a(this,$e).videoEnabled?a(this,$e).disableVideo():a(this,$e).enableVideo(),this.emit("cameraToggled")),n==="MIC"&&(a(this,$e).audioEnabled?a(this,$e).disableAudio():a(this,$e).enableAudio(),this.emit("micToggled")),n==="END"&&(a(this,Qn).getValue("peerSessionStore").emit(P.PIP_HANGUP),this.cleanupEventListeners(),this.emit("hangup"),this.cleanup())}),m(this,"unmountEvents",()=>{navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||(navigator.mediaSession.setActionHandler("togglemicrophone",void 0),navigator.mediaSession.setActionHandler("togglecamera",void 0))}),m(this,"animate",()=>{if(!this.isActive&&a(this,vr)==="active"){this.disable(!0);return}a(this,Mt)!==void 0&&this.paintCanvas(),a(this,fr)!==void 0&&v(this,fr,requestAnimationFrame(()=>this.animate()))}),m(this,"disable",(n=!1)=>{v(this,vr,"idle"),this.cleanupEventListeners(),cancelAnimationFrame(a(this,fr)),n!==!0&&document.body.removeChild(a(this,yt)),v(this,fr,void 0),document.pictureInPictureElement&&document.exitPictureInPicture()}),v(this,Qn,t),v(this,vr,"idle"),v(this,$e,e),v(this,Ni,{brand:e.config.designTokens.colors.brand[500],background:e.config.designTokens.colors.background[1e3],text:e.config.designTokens.colors.text,videoBackground:e.config.designTokens.colors.videoBg,textOnBrand:e.config.designTokens.colors.textOnBrand}),i&&this.setupIcon("pin",i),r&&this.setupIcon("handRaise",r)}static _init(t,e){return u(this,null,function*(){let i,r;try{i=yield Uc(Z_),r=yield Uc(ew)}catch(n){}return new Hg(t,e,i,r)})}setupIcon(t,e){return u(this,null,function*(){switch(t){case"handRaise":v(this,la,e);break;case"pin":v(this,da,e);break}})}overrideIcon(t,e){return u(this,null,function*(){switch(t){case"handRaise":v(this,la,yield Uc(e));break;case"pin":v(this,da,yield Uc(e));break}})}constructImage(t){const e=new Image,i=new Blob([t],{type:"image/svg+xml"}),r=window.URL.createObjectURL(i);return new Promise(n=>{e.onload=()=>{n(e),window.URL.revokeObjectURL(r)},e.src=r})}createVideoContainer(){v(this,yt,document.createElement("div")),a(this,yt).style.width="0.1px",a(this,yt).style.height="0.1px",a(this,yt).style.overflow="hidden",a(this,yt).style.position="absolute",a(this,yt).style.bottom="0",a(this,yt).style.right="0",a(this,yt).style.opacity="0",a(this,yt).appendChild(a(this,pi))}setupEventListeners(){a(this,Qn).subscribe("stageStatus",this.handlePipMediaControls),a(this,$e).addListener("videoUpdate",this.onSelfVideoUpdateListener),a(this,$e).addListener("audioUpdate",this.onSelfAudioUpdateListener),a(this,$e).addListener("roomLeft",()=>this.disable())}createCanvas(){const t=document.createElement("canvas");t.height=a(this,je).height,t.width=a(this,je).width,v(this,hi,t)}setupMediaSessionEvents(){navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||(navigator.mediaSession.setActionHandler("hangup",()=>{this.eventCallback("END")}),this.mountAudioEvents(),this.mountVideoEvents())}mountAudioEvents(){navigator.mediaSession===void 0||navigator.mediaSession.setMicrophoneActive===void 0||a(this,$e).permissions.canProduceAudio&&navigator.mediaSession.setActionHandler("togglemicrophone",()=>{this.eventCallback("MIC")})}mountVideoEvents(){navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||a(this,$e).permissions.canProduceVideo&&navigator.mediaSession.setActionHandler("togglecamera",()=>{this.eventCallback("CAMERA")})}getSources(){const t=Object.values(a(this,Mt)).reduce((e,i)=>(e[i.pinned?"pinned":"regular"].push(i),e),{pinned:[],regular:[]});return[...t.pinned,...t.regular]}drawEmptyTile(t,e,i,r){if(a(this,hi)===void 0)return;const n=a(this,hi).getContext("2d"),s=a(this,hi).width,o=0,c=0,d=e-o*2,h=i-o*2,p=Math.floor(s/d),g=Math.floor(t/p),y=t%p*(d+o)+o,T=g*(h+o)+o,{displayText:b,image:O}=r!=null?r:{};n.fillStyle=b||O?a(this,Ni).videoBackground:a(this,Ni).background,n.strokeStyle=a(this,Ni).brand,n.beginPath(),n.moveTo(y+c,T),n.arcTo(y+d,T,y+d,T+c,c),n.arcTo(y+d,T+h,y+d-c,T+h,c),n.arcTo(y,T+h,y,T+h-c,c),n.arcTo(y,T,y+c,T,c),n.closePath(),n.fill(),n.stroke();const R=d/6,x=d/2+y,G=h/2+T;n.save(),(b||O)&&(n.beginPath(),n.arc(x,G,R,0,Math.PI*2),n.fillStyle=a(this,Ni).brand,n.fill(),O?(n.clip(),n.drawImage(O,x-R,G-R,R*2,R*2),n.restore()):b&&(n.fillStyle=a(this,Ni).textOnBrand,n.font=`${R/2}px sans-serif`,n.textAlign="center",n.textBaseline="middle",n.fillText(b,x,G)),this.drawIcons(r,y,T,Math.max(d,h)))}drawIcons(t,e,i,r){const n=Math.min(Math.max(r*.15,100),200),s=n*.2,o=n*.2;let c=e+s;const d=i+s,h=p=>{const g=a(this,hi).getContext("2d");g.save(),g.fillStyle=a(this,Ni).background,g.beginPath(),g.moveTo(c+o,d),g.arcTo(c+n,d,c+n,d+o,o),g.arcTo(c+n,d+n,c+n-o,d+n,o),g.arcTo(c,d+n,c,d+n-o,o),g.arcTo(c,d,c+o,d,o),g.closePath(),g.fill(),typeof p=="string"?(g.font=`${n/1.5}px sans-serif`,g.fillStyle=a(this,Ni).text,g.textAlign="center",g.textBaseline="top",g.fillText(p,n/2+c,d+s)):g.drawImage(p,c+s,d+s,n-s*2,n-s*2),c+=n+s,g.restore()};t.pinned&&h(a(this,da)),t.handRaised&&h(a(this,la))}drawTile(t,e,i){var r,n;if(a(this,hi)===void 0)return;const s=a(this,hi).getContext("2d"),o=this.getSources();let c=0,d=0;for(;c<a(this,je).height-5;){let h=0;for(;h<a(this,je).width-5&&d<i;){if((r=o[d])!=null&&r.enabled){const p=o[d].element,[g,y,T,b,O,R,x,G]=lw(h,c,t,e,p.videoWidth,p.videoHeight);(n=p==null?void 0:p.classList)!=null&&n.contains("mirror")?(s.save(),s.scale(-1,1),s.drawImage(p,g,y,T,b,-1*O,R,-1*x,G),s.restore()):s.drawImage(p,g,y,T,b,O,R,x,G),this.drawIcons(o[d],O,R,Math.max(x,G))}else this.drawEmptyTile(d,t,e,o[d]);d+=1,h+=t}c+=e}}calcGridElemSize(t){switch(t){case 0:case 1:return[a(this,je).width,a(this,je).height];case 2:return[Math.floor(a(this,je).width/2),a(this,je).height];case 3:case 4:return[Math.floor(a(this,je).width/2),Math.floor(a(this,je).height/2)];case 5:case 6:return[Math.floor(a(this,je).width/3),Math.floor(a(this,je).height/2)];case 7:case 8:case 9:return[Math.floor(a(this,je).width/3),Math.floor(a(this,je).height/3)];default:return[Math.floor(a(this,je).width/3),Math.floor(a(this,je).height/2)]}}paintCanvas(){let t=this.getSources().length;t!==1&&(t=t%2>0?t+1:t);const[e,i]=this.calcGridElemSize(t);this.drawTile(e,i,t)}isSupported(){var t;return!!window.chrome&&document.pictureInPictureEnabled&&((t=a(this,$e).config)==null?void 0:t.viewType)!=="LIVESTREAM"}get isActive(){return document.pictureInPictureElement!==null}cleanup(){if(v(this,ua,!1),this.isSupported()&&document.exitPictureInPicture!==void 0&&document.pictureInPictureElement!==null&&document.exitPictureInPicture(),a(this,yt))try{document.body.removeChild(a(this,yt))}catch(t){}this.removeAllSources(),v(this,hi,void 0),v(this,pi,void 0),v(this,fr,void 0)}init({height:t,width:e}={}){if(!this.isSupported())throw l.error("DytePip.unsupported"),new Error("Picture-in-picture is not available in this environment");if(a(this,ua))return;v(this,ua,!0),this.createCanvas(),this.setupMediaSessionEvents();const i=document.createElement("video");v(this,je,{height:t!=null?t:Wg,width:e!=null?e:jg}),i.height=a(this,je).height,i.width=a(this,je).width,i.autoplay=!0,i.muted=!0,i.srcObject=a(this,hi).captureStream(24),v(this,pi,i),a(this,pi).onloadedmetadata=()=>{try{this.emit("pipStarted"),a(this,pi).onleavepictureinpicture=()=>{this.emit("pipEnded")}}catch(r){this.emit("pipEnded")}},this.createVideoContainer(),this.paintCanvas()}updateMediaSession(t,e){navigator.mediaSession!==void 0&&(t==="CAMERA"&&navigator.mediaSession.setCameraActive!==void 0&&navigator.mediaSession.setCameraActive(e),t==="MIC"&&navigator.mediaSession.setMicrophoneActive!==void 0&&navigator.mediaSession.setMicrophoneActive(e))}enableSource(t){a(this,Mt)[t]!==void 0&&(a(this,Mt)[t].enabled=!0)}disableSource(t){a(this,Mt)[t]!==void 0&&(a(this,Mt)[t].enabled=!1)}generateAvatar(t,e){return u(this,null,function*(){if(!e)return;const i=new Image;try{const r=yield(yield fetch(e)).blob(),n=window.URL.createObjectURL(r);i.onload=()=>{this.updateSource(t,{image:i}),window.URL.revokeObjectURL(n)},i.src=n}catch(r){l.error("DytePip::GenerateAvatar",{error:r})}})}addSource(t,e,i,r=!1,n=void 0,s=void 0,o=!1){l.debug("DytePIP::AddSource",{pip:{id:t,handRaised:o}}),a(this,Mt)[t]={id:t,element:e,enabled:i,pinned:r,displayText:n?dw(n):void 0,imageUrl:s,handRaised:o},s&&this.generateAvatar(t,s)}updateSource(t,e){l.info("DytePIP::UpdateSource",{pip:{id:t,handRaised:e.handRaised}});const i=a(this,Mt)[t];i&&(a(this,Mt)[t]=L(L({},i),e))}removeSource(t){delete a(this,Mt)[t]}removePinnedSource(){Object.values(a(this,Mt)).forEach(t=>{t.pinned&&this.removeSource(t.id)})}removeAllSources(){v(this,Mt,{})}enable(){v(this,vr,"activating"),this.setupEventListeners(),this.updateMediaSession("CAMERA",a(this,$e).videoEnabled),this.updateMediaSession("MIC",a(this,$e).audioEnabled),document.body.appendChild(a(this,yt)),v(this,fr,requestAnimationFrame(()=>this.animate())),a(this,pi).onloadedmetadata=()=>{a(this,pi).requestPictureInPicture().then(()=>{v(this,vr,"active")})},a(this,pi).readyState===4&&a(this,pi).requestPictureInPicture().then(()=>{v(this,vr,"active")})}};let uw=Hg;hi=new WeakMap,Qn=new WeakMap,yt=new WeakMap,pi=new WeakMap,je=new WeakMap,Ni=new WeakMap,fr=new WeakMap,Mt=new WeakMap,$e=new WeakMap,da=new WeakMap,la=new WeakMap,vr=new WeakMap,ua=new WeakMap;var zi;(function(t){t[t.PUBLISHER=0]="PUBLISHER",t[t.SUBSCRIBER=1]="SUBSCRIBER"})(zi||(zi={}));var Li;(function(t){t[t.AUDIO=0]="AUDIO",t[t.VIDEO=1]="VIDEO"})(Li||(Li={}));class hw extends E{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 qg=new hw;class pw extends E{constructor(){super("media.HeaderExtension",[{no:1,name:"direction",kind:"scalar",opt:!0,T:9},{no:2,name:"uri",kind:"scalar",T:9}])}}const mw=new pw;class gw extends E{constructor(){super("media.Fingerprint",[{no:1,name:"algorithm",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:9}])}}new gw;class fw extends E{constructor(){super("media.SessionDescription",[{no:1,name:"target",kind:"enum",T:()=>["media.Target",zi]},{no:2,name:"type",kind:"scalar",T:9},{no:3,name:"sdp",kind:"scalar",T:9}])}}const mi=new fw;class vw extends E{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 yw=new vw;class Sw extends E{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:()=>mi},{no:4,name:"private_ice",kind:"scalar",opt:!0,T:8},{no:5,name:"producers",kind:"message",repeat:1,T:()=>yw}])}}const Ew=new Sw;class Tw extends E{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 kw=new Tw;class bw extends E{constructor(){super("media.CreateTransportResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>mi},{no:3,name:"transcription_enabled",kind:"scalar",opt:!0,T:8},{no:4,name:"producer_ids",kind:"scalar",repeat:2,T:9}])}}const Gg=new bw;class _w extends E{constructor(){super("media.RenegotiateRequest",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>mi}])}}const ww=new _w;class Iw extends E{constructor(){super("media.RenegotiateResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>mi}])}}new Iw;class Cw extends E{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 Pw=new Cw;class Rw extends E{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 Mw=new Rw;class Aw extends E{constructor(){super("media.ProducerEntry",[{no:1,name:"producing_transport_id",kind:"scalar",T:9},{no:2,name:"producer_id",kind:"scalar",T:9}])}}new Aw;class Dw extends E{constructor(){super("media.ConsumerEntry",[{no:1,name:"consuming_transport_id",kind:"scalar",T:9},{no:2,name:"consumer_id",kind:"scalar",T:9}])}}new Dw;class Ow extends E{constructor(){super("media.ProducerState",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"kind",kind:"enum",T:()=>["media.ProducerKind",Li]},{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:()=>qg}])}}const ha=new Ow;class Nw extends E{constructor(){super("media.ConsumerState",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>ha},{no:3,name:"producer_track",kind:"message",T:()=>Mw},{no:4,name:"error_code",kind:"scalar",opt:!0,T:9}])}}const Lw=new Nw;class Vw extends E{constructor(){super("media.ProducerIdToConsumerMap",[{no:1,name:"map",kind:"map",K:9,V:{kind:"message",T:()=>Lw}}])}}const $g=new Vw;class xw extends E{constructor(){super("media.PeerRtpCapabilitites",[{no:1,name:"sender",kind:"message",T:()=>zg},{no:2,name:"receiver",kind:"message",T:()=>zg}])}}const Jg=new xw;class Uw extends E{constructor(){super("media.RtpCapability",[{no:1,name:"codecs",kind:"message",repeat:1,T:()=>qg},{no:2,name:"header_extensions",kind:"message",repeat:1,T:()=>mw}])}}const Kg=new Uw;class Fw extends E{constructor(){super("media.RtpCapabilitites",[{no:1,name:"audio",kind:"message",T:()=>Kg},{no:2,name:"video",kind:"message",T:()=>Kg}])}}const zg=new Fw;class Bw extends E{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 Ww=new Bw;class jw extends E{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 Yg=new jw;class Hw extends E{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 qw=new Hw;class Gw extends E{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:()=>qw},{no:9,name:"capabilities",kind:"message",T:()=>Jg}])}}const $w=new Gw;class Jw extends E{constructor(){super("media.edge.PeerJoinCompleteRequest",[])}}const Kw=new Jw;class zw extends E{constructor(){super("media.edge.PeerLeaveRequest",[{no:1,name:"close_room",kind:"scalar",T:8}])}}const Yw=new zw;class Qw extends E{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 Qw;class Xw extends E{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:()=>Ww},{no:5,name:"producing_transport_id",kind:"scalar",opt:!0,T:9},{no:6,name:"simulcast",kind:"message",T:()=>Yg}])}}const Zw=new Xw;class eI extends E{constructor(){super("media.edge.ConsumePeersRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>Zw},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const tI=new eI;class iI extends E{constructor(){super("media.edge.UpdateConsumerSimulcastConfigRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"simulcast",kind:"message",T:()=>Yg},{no:3,name:"producing_transport_id",kind:"scalar",T:9},{no:4,name:"mid",kind:"scalar",T:9}])}}const rI=new iI;class nI extends E{constructor(){super("media.edge.UpdateConsumersSimulcastConfigRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>rI},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const sI=new nI;class aI extends E{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:()=>mi},{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 oI=new aI;class cI extends E{constructor(){super("media.edge.SelectedPeersRequest",[])}}new cI;class dI extends E{constructor(){super("media.edge.GlobalPeerPinningRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const lI=new dI;class uI extends E{constructor(){super("media.edge.ProducerToggleRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"pause",kind:"scalar",T:8}])}}const Wc=new uI;class hI extends E{constructor(){super("media.edge.ConsumerToggleRequest",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"pause",kind:"scalar",T:8}])}}new hI;class pI extends E{constructor(){super("media.edge.ProducerCloseRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>mi},{no:3,name:"producing_transport_id",kind:"scalar",opt:!0,T:9}])}}const mI=new pI;class gI extends E{constructor(){super("media.edge.ConsumerCloseRequest",[{no:1,name:"consumer_ids",kind:"scalar",repeat:2,T:9},{no:2,name:"description",kind:"message",T:()=>mi},{no:3,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const fI=new gI;class vI extends E{constructor(){super("media.edge.KickPeerRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new vI;class yI extends E{constructor(){super("media.edge.KickAllPeersRequest",[{no:1,name:"propagate_kick_across_rooms",kind:"scalar",T:8}])}}const Qg=new yI;class SI extends E{constructor(){super("media.edge.PeerDisplayNameEditRequest",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",T:9}])}}const EI=new SI;class TI extends E{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 kI=new TI;class bI extends E{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 _I=new bI;class wI extends E{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 II=new wI;class CI extends E{constructor(){super("media.edge.ErrorResponse",[{no:1,name:"error_message",kind:"scalar",T:9},{no:2,name:"event_id",kind:"scalar",T:5}])}}const PI=new CI;class RI extends E{constructor(){super("media.edge.EmptyResponse",[])}}new RI;class MI extends E{constructor(){super("media.edge.RoomParticipants",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"producer_states",kind:"message",repeat:1,T:()=>ha},{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:()=>Jg}])}}const Xg=new MI;class AI extends E{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 lu=new AI;class DI extends E{constructor(){super("media.edge.SelectedPeersDiffEntry",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"priority",kind:"scalar",T:5}])}}const OI=new DI;class NI extends E{constructor(){super("media.edge.SelectedPeersDiffResponse",[{no:1,name:"entries",kind:"message",repeat:1,T:()=>OI}])}}const Zg=new NI;class LI extends E{constructor(){super("media.edge.PeerJoinResponse",[])}}new LI;class VI extends E{constructor(){super("media.edge.PeerJoinCompleteResponse",[{no:1,name:"room_state",kind:"message",T:()=>II},{no:2,name:"participants",kind:"message",repeat:1,T:()=>Xg},{no:3,name:"selected_peers",kind:"message",T:()=>lu},{no:4,name:"max_preferred_streams",kind:"scalar",T:5}])}}const uu=new VI;class xI extends E{constructor(){super("media.edge.PeerLeaveResponse",[{no:1,name:"closed",kind:"scalar",T:8}])}}const UI=new xI;class FI extends E{constructor(){super("media.edge.ConsumeMultipleProducerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>$g}])}}new FI;class BI extends E{constructor(){super("media.edge.ConsumePeerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>$g},{no:3,name:"description",kind:"message",T:()=>mi}])}}const WI=new BI;class jI extends E{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:()=>mi}])}}const HI=new jI;class qI extends E{constructor(){super("media.edge.ProducerScoreResponse",[{no:1,name:"responseid",kind:"scalar",T:9},{no:2,name:"score",kind:"message",T:()=>Pw}])}}new qI;class GI extends E{constructor(){super("media.edge.ActiveSpeakerResponse",[{no:1,name:"responsepeer_id",kind:"scalar",T:9},{no:2,name:"volume",kind:"scalar",T:5}])}}new GI;class $I extends E{constructor(){super("media.edge.NoActiveSpeakerResponse",[])}}new $I;class JI extends E{constructor(){super("media.edge.ProducerToggleResponse",[])}}new JI;class KI extends E{constructor(){super("media.edge.ConsumerToggleResponse",[])}}new KI;class zI extends E{constructor(){super("media.edge.ProducerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>mi}])}}const YI=new zI;class QI extends E{constructor(){super("media.edge.ConsumerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>mi}])}}const XI=new QI;class ZI extends E{constructor(){super("media.edge.GlobalPeerPinningResponse",[])}}new ZI;class eC extends E{constructor(){super("media.edge.KickPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new eC;class tC extends E{constructor(){super("media.edge.KickAllPeersResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new tC;class iC extends E{constructor(){super("media.edge.HostMediaControlForPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const rC=new iC;class nC extends E{constructor(){super("media.edge.HostMediaControlForAllPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const sC=new nC;class aC extends E{constructor(){super("media.edge.PeerDisplayNameEditResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const oC=new aC;class cC extends E{constructor(){super("media.edge.PeerJoinBroadcastResponse",[{no:1,name:"participant",kind:"message",T:()=>Xg}])}}const ef=new cC;class dC extends E{constructor(){super("media.edge.TrackSubscriptionKind",[{no:1,name:"audio",kind:"scalar",T:8},{no:2,name:"video",kind:"scalar",T:8}])}}const tf=new dC;class lC extends E{constructor(){super("media.edge.TrackSubscription",[{no:1,name:"label",kind:"scalar",T:9},{no:2,name:"webcam",kind:"message",T:()=>tf},{no:3,name:"screenshare",kind:"message",T:()=>tf}])}}const uC=new lC;class hC extends E{constructor(){super("media.edge.PeerProducingTransportCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"transport_details",kind:"message",T:()=>Gg},{no:3,name:"track_subscriptions",kind:"message",repeat:1,T:()=>uC}])}}new hC;class pC extends E{constructor(){super("media.edge.PeerProducerCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>ha}])}}const mC=new pC;class gC extends E{constructor(){super("media.edge.PeerProducerToggleBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>ha},{no:3,name:"initiator_participant_id",kind:"scalar",opt:!0,T:9}])}}const rf=new gC;class fC extends E{constructor(){super("media.edge.PeerProducerCloseBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>ha}])}}const vC=new fC;class yC extends E{constructor(){super("media.edge.PeerLeaveBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const hu=new yC;class SC extends E{constructor(){super("media.edge.GlobalPeerPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const nf=new SC;class EC extends E{constructor(){super("media.edge.GlobalPeerUnPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new EC;class TC extends E{constructor(){super("media.edge.RecordingStartedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new TC;class kC extends E{constructor(){super("media.edge.RecordingStoppedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new kC;class bC extends E{constructor(){super("media.edge.PeerDisplayNameEditBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",T:9}])}}new bC;class _C extends E{constructor(){super("media.edge.PeerPingRequestBroadcastResponse",[{no:1,name:"password",kind:"scalar",T:9}])}}new _C;class wC extends E{constructor(){super("media.edge.MediaRoomTerminationBroadcastResponse",[{no:1,name:"reason",kind:"scalar",T:9}])}}new wC;class IC extends E{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 pu=new IC;class CC extends E{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 CC;class PC extends E{constructor(){super("socket.api.ErrorMessage",[{no:1,name:"code",kind:"scalar",opt:!0,T:5},{no:2,name:"message",kind:"scalar",T:9}])}}const RC=new PC;var tn;(function(t){t[t.BROWSER=0]="BROWSER",t[t.TRACK=1]="TRACK",t[t.COMPOSITE=2]="COMPOSITE"})(tn||(tn={}));var Yi;(function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.ON_STAGE=1]="ON_STAGE",t[t.APPROVED_STAGE=2]="APPROVED_STAGE",t[t.REQUESTED_STAGE=3]="REQUESTED_STAGE",t[t.OFF_STAGE=4]="OFF_STAGE"})(Yi||(Yi={}));var mu;(function(t){t[t.NONE=0]="NONE",t[t.RECORDER=1]="RECORDER",t[t.LIVESTREAMER=2]="LIVESTREAMER"})(mu||(mu={}));var gu;(function(t){t[t.PEERS=0]="PEERS",t[t.ROOMS=1]="ROOMS"})(gu||(gu={}));var jc;(function(t){t[t.HIVE=0]="HIVE",t[t.CHAT=1]="CHAT",t[t.PING=2]="PING"})(jc||(jc={}));class MC extends E{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 AC=new MC;class DC extends E{constructor(){super("socket.room.Peer",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9},{no:3,name:"display_name",kind:"scalar",T:9},{no:4,name:"stage_type",kind:"enum",opt:!0,T:()=>["socket.room.StageType",Yi,"STAGE_TYPE_"]},{no:5,name:"custom_participant_id",kind:"scalar",opt:!0,T:9},{no:6,name:"preset_id",kind:"scalar",opt:!0,T:9},{no:7,name:"display_picture_url",kind:"scalar",opt:!0,T:9},{no:8,name:"waitlisted",kind:"scalar",T:8},{no:9,name:"flags",kind:"message",T:()=>AC}])}}const Hc=new DC;class OC extends E{constructor(){super("socket.room.PeerInfoResponse",[{no:1,name:"peer",kind:"message",T:()=>Hc}])}}const Xn=new OC;class NC extends E{constructor(){super("socket.room.PeerStatusUpdate",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9},{no:3,name:"stage_type",kind:"enum",opt:!0,T:()=>["socket.room.StageType",Yi,"STAGE_TYPE_"]}])}}const sf=new NC;class LC extends E{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 VC=new LC;class xC extends E{constructor(){super("socket.room.RoomPeersInfoResponse",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>Hc}])}}const fu=new xC;class UC extends E{constructor(){super("socket.room.RoomPeerCountResponse",[{no:1,name:"count",kind:"scalar",T:4,L:2}])}}const af=new UC;class FC extends E{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:()=>WC},{no:6,name:"room_uuid",kind:"scalar",opt:!0,T:9}])}}const of=new FC;class BC extends E{constructor(){super("socket.room.ActiveRecording",[{no:1,name:"recording_id",kind:"scalar",T:9},{no:2,name:"recording_type",kind:"enum",T:()=>["common.RecordingType",tn]},{no:3,name:"recording_status",kind:"scalar",T:9}])}}const WC=new BC;class jC extends E{constructor(){super("socket.room.RoomInfoResponse",[{no:1,name:"room",kind:"message",T:()=>of}])}}const cf=new jC;class HC extends E{constructor(){super("socket.room.GetPeerInfoRequest",[{no:1,name:"peer_id",kind:"scalar",T:9}])}}const df=new HC;class qC extends E{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 qC;class GC extends E{constructor(){super("socket.room.JoinRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>Hc},{no:3,name:"room_uuid",kind:"scalar",T:9},{no:4,name:"organization_id",kind:"scalar",opt:!0,T:9},{no:5,name:"use_hive",kind:"scalar",opt:!0,T:8},{no:6,name:"preset",kind:"scalar",opt:!0,T:12},{no:7,name:"capabilities",kind:"enum",repeat:1,T:()=>["socket.room.Capabilities",jc,"CAPABILITIES_"]},{no:8,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const $C=new GC;class JC extends E{constructor(){super("socket.room.LeaveRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>Hc},{no:2,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const KC=new JC;class zC extends E{constructor(){super("socket.room.UpdateRoomInfoRequest",[{no:1,name:"room",kind:"message",T:()=>of}])}}new zC;class YC extends E{constructor(){super("socket.room.GetConnectedRoomsDumpRequest",[])}}new YC;class QC extends E{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 vu=new QC;class XC extends E{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 ZC=new XC;class eP extends E{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:()=>ZC}])}}const lf=new eP;class tP extends E{constructor(){super("socket.room.GetConnectedRoomsDumpResponse",[{no:1,name:"parent_meeting",kind:"message",T:()=>lf},{no:2,name:"meetings",kind:"message",repeat:1,T:()=>lf}])}}const iP=new tP;class rP extends E{constructor(){super("socket.room.CreateRoomRequestPayload",[{no:1,name:"title",kind:"scalar",opt:!0,T:9}])}}const nP=new rP;class sP extends E{constructor(){super("socket.room.CreateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>nP}])}}const aP=new sP;class oP extends E{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:()=>vu}])}}const cP=new oP;class dP extends E{constructor(){super("socket.room.CreateConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>cP}])}}const uf=new dP;class lP extends E{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 uP=new lP;class hP extends E{constructor(){super("socket.room.UpdateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>uP}])}}new hP;class pP extends E{constructor(){super("socket.room.DisableRoomPayload",[{no:1,name:"id",kind:"scalar",opt:!0,T:9}])}}const mP=new pP;class gP extends E{constructor(){super("socket.room.DisableConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>mP}])}}const fP=new gP;class vP extends E{constructor(){super("socket.room.DisableConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>EP}])}}const yP=new vP;class SP extends E{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:()=>vu}])}}const EP=new SP;class TP extends E{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 kP=new TP;class bP extends E{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:()=>kP}])}}const _P=new bP;class wP extends E{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:()=>vu}])}}const hf=new wP;class IP extends E{constructor(){super("socket.room.MovePeersBetweenRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>hf}])}}new IP;class CP extends E{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 PP=new CP;class RP extends E{constructor(){super("socket.room.GetAllAddedParticipantsResponse",[{no:1,name:"participants",kind:"message",repeat:1,T:()=>DP}])}}const MP=new RP;class AP extends E{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 DP=new AP;class OP extends E{constructor(){super("socket.room.RemoveParticipantsRequest",[{no:1,name:"peer_ids",kind:"scalar",repeat:2,T:9}])}}const pf=new OP;class NP extends E{constructor(){super("socket.room.BroadcastMessage",[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:12},{no:3,name:"timestamp",kind:"scalar",T:4,L:2},{no:4,name:"ids",kind:"scalar",repeat:2,T:9},{no:5,name:"broadcast_type",kind:"enum",opt:!0,T:()=>["socket.room.BroadcastType",gu,"BROADCAST_TYPE_"]}])}}const pa=new NP;class LP extends E{constructor(){super("socket.room.AcceptWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const VP=new LP;class xP extends E{constructor(){super("socket.room.DenyWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const UP=new xP;class FP extends E{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 BP=new FP;class WP extends E{constructor(){super("socket.room.GetWaitingRoomRequests",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>BP}])}}const mf=new WP;class jP extends E{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 gf=new jP;var yu;(function(t){t[t.NONE=0]="NONE",t[t.SKIP=1]="SKIP",t[t.ON_PRIVILEGED_USER_ENTRY=2]="ON_PRIVILEGED_USER_ENTRY",t[t.SKIP_ON_ACCEPT=3]="SKIP_ON_ACCEPT"})(yu||(yu={}));var yr;(function(t){t[t.NONE=0]="NONE",t[t.ALLOWED=1]="ALLOWED",t[t.NOT_ALLOWED=2]="NOT_ALLOWED",t[t.CAN_REQUEST=3]="CAN_REQUEST"})(yr||(yr={}));class HP extends E{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 qP=new HP;class GP extends E{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 $P=new GP;class JP extends E{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 KP=new JP;class zP extends E{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 YP=new zP;class QP extends E{constructor(){super("socket.preset.ChatPermissionUpdate",[{no:1,name:"public",kind:"message",T:()=>KP},{no:2,name:"private",kind:"message",T:()=>YP}])}}const XP=new QP;class ZP extends E{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 eR=new ZP;class tR extends E{constructor(){super("socket.preset.StreamPermission",[{no:1,name:"can_produce",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",yr,"STREAM_PERMISSION_TYPE_"]},{no:2,name:"can_consume",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",yr,"STREAM_PERMISSION_TYPE_"]}])}}const Su=new tR;class iR extends E{constructor(){super("socket.preset.MediaPermissionUpdate",[{no:1,name:"video",kind:"message",T:()=>Su},{no:2,name:"audio",kind:"message",T:()=>Su},{no:3,name:"screenshare",kind:"message",T:()=>Su}])}}const rR=new iR;class nR extends E{constructor(){super("socket.preset.PresetUpdates",[{no:1,name:"polls",kind:"message",T:()=>qP},{no:2,name:"plugins",kind:"message",T:()=>$P},{no:3,name:"chat",kind:"message",T:()=>XP},{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",yu,"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",mu,"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:()=>eR},{no:23,name:"media",kind:"message",T:()=>rR}])}}const Eu=new nR;class sR extends E{constructor(){super("socket.preset.ReadPeersPresetRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const aR=new sR;class oR extends E{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 cR=new oR;class dR extends E{constructor(){super("socket.preset.ReadPeersPresetResponse",[{no:1,name:"peer_presets",kind:"message",repeat:1,T:()=>cR}])}}const lR=new dR;class uR extends E{constructor(){super("socket.preset.UpdatePeerPreset",[{no:1,name:"user_ids",kind:"scalar",T:9},{no:2,name:"patch",kind:"message",T:()=>Eu}])}}const ff=new uR;class hR extends E{constructor(){super("socket.preset.UpdatePeersPresetRequest",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>ff}])}}const pR=new hR;class mR extends E{constructor(){super("socket.preset.UpdatePeersPresetResponse",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>ff}])}}const vf=new mR;class gR extends E{constructor(){super("socket.preset.PeerUserIDMap",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9}])}}const fR=new gR;class vR extends E{constructor(){super("socket.preset.BulkUpdatePeerPresetRequest",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>fR},{no:2,name:"patch",kind:"message",T:()=>Eu}])}}new vR;class yR extends E{constructor(){super("socket.preset.BulkUpdatePeerPresetResponse",[{no:2,name:"patch",kind:"message",T:()=>Eu}])}}new yR;class SR extends E{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 rn=new SR;class ER extends E{constructor(){super("socket.chat.GetPaginatedChatMessageRoomRequest",[{no:1,name:"time_stamp",kind:"scalar",T:4,L:2},{no:2,name:"size",kind:"scalar",T:5},{no:3,name:"from",kind:"scalar",T:5},{no:4,name:"reversed",kind:"scalar",T:8},{no:5,name:"channel_id",kind:"scalar",opt:!0,T:9}])}}const TR=new ER;class kR extends E{constructor(){super("socket.chat.GetPaginatedChatMessageRoomResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>rn},{no:2,name:"next",kind:"scalar",T:8}])}}const bR=new kR;class _R extends E{constructor(){super("socket.chat.GetChatMessagesResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>rn}])}}const yf=new _R;class wR extends E{constructor(){super("socket.chat.SendChatMessageToRoomRequest",[{no:1,name:"payload_type",kind:"scalar",T:5},{no:2,name:"payload",kind:"scalar",T:9}])}}const IR=new wR;class CR extends E{constructor(){super("socket.chat.SendChatMessageToRoomResponse",[{no:1,name:"message",kind:"message",T:()=>rn}])}}const Tu=new CR;class PR extends E{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 RR=new PR;class MR extends E{constructor(){super("socket.chat.SendChatMessageToPeersResponse",[{no:1,name:"message",kind:"message",T:()=>rn}])}}const ku=new MR;class AR extends E{constructor(){super("socket.chat.SendChatMessageToChannelRequest",[{no:1,name:"channel_id",kind:"scalar",T:9},{no:2,name:"payload_type",kind:"scalar",T:5},{no:3,name:"payload",kind:"scalar",T:9}])}}const DR=new AR;class OR extends E{constructor(){super("socket.chat.SendChatMessageToChannelResponse",[{no:1,name:"message",kind:"message",T:()=>rn}])}}new OR;class NR extends E{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 LR=new NR;class VR extends E{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 xR=new VR;class UR extends E{constructor(){super("socket.chat.PinChatMessageResponse",[{no:1,name:"chat_id",kind:"scalar",T:9},{no:2,name:"pinned",kind:"scalar",T:8},{no:3,name:"channel_id",kind:"scalar",opt:!0,T:9}])}}const qc=new UR;class FR extends E{constructor(){super("socket.chat.EditChatMessageResponse",[{no:1,name:"message",kind:"message",T:()=>rn}])}}const Gc=new FR;class BR extends E{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 WR=new BR;class jR extends E{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 $c=new jR;class HR extends E{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 qR=new HR;class GR extends E{constructor(){super("socket.chat.MarkChannelIndexAsReadRequest",[{no:1,name:"channel_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9},{no:3,name:"channel_index",kind:"scalar",T:9}])}}const $R=new GR;class JR extends E{constructor(){super("socket.chat.MarkChannelIndexAsReadResponse",[{no:1,name:"channel_index",kind:"scalar",T:9}])}}const KR=new JR;class zR extends E{constructor(){super("socket.chat.CreateChatChannelRequest",[{no:1,name:"display_name",kind:"scalar",T:9},{no:2,name:"target_user_ids",kind:"scalar",repeat:2,T:9},{no:3,name:"display_picture_url",kind:"scalar",opt:!0,T:9},{no:4,name:"visibility",kind:"scalar",T:9},{no:5,name:"is_direct_message",kind:"scalar",T:8}])}}const YR=new zR;class QR extends E{constructor(){super("socket.chat.UpdateChatChannelRequest",[{no:1,name:"chat_channel_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",opt:!0,T:9},{no:3,name:"target_user_ids",kind:"scalar",repeat:2,T:9},{no:4,name:"display_picture_url",kind:"scalar",opt:!0,T:9},{no:5,name:"visibility",kind:"scalar",opt:!0,T:9},{no:6,name:"is_direct_message",kind:"scalar",opt:!0,T:8}])}}const XR=new QR;class ZR extends E{constructor(){super("socket.chat.CreateChatChannelResponse",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}new ZR;class eM extends E{constructor(){super("socket.chat.GetChatChannelRequest",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}const tM=new eM;class iM extends E{constructor(){super("socket.chat.LatestMessageAndUnreadCount",[{no:1,name:"message",kind:"message",T:()=>rn},{no:2,name:"unread_count",kind:"scalar",T:4,L:2}])}}const rM=new iM;class nM extends E{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:()=>rM},{no:7,name:"target_user_ids",kind:"scalar",repeat:2,T:9}])}}const sM=new nM;class aM extends E{constructor(){super("socket.chat.GetChatChannelResponse",[{no:1,name:"chat_channels",kind:"message",repeat:1,T:()=>sM}])}}const Qi=new aM;class oM extends E{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 cM=new oM;class dM extends E{constructor(){super("socket.chat.GetChatChannelMembersResponse",[{no:1,name:"channel_members",kind:"message",repeat:1,T:()=>cM}])}}const lM=new dM;class uM extends E{constructor(){super("socket.plugin.AddPluginRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"staggered",kind:"scalar",T:8}])}}const hM=new uM;class pM extends E{constructor(){super("socket.plugin.RemovePluginRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"staggered",kind:"scalar",T:8}])}}const mM=new pM;class gM extends E{constructor(){super("socket.plugin.EnablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const fM=new gM;class vM extends E{constructor(){super("socket.plugin.DisablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const yM=new vM;class SM extends E{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 EM=new SM;class TM extends E{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 kM=new TM;class bM extends E{constructor(){super("socket.plugin.PluginEventToRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"plugin_data",kind:"scalar",T:12}])}}const _M=new bM;class wM extends E{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 IM=new wM;class CM extends E{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 bu=new CM;class PM extends E{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:()=>bu}])}}const Sf=new PM;class RM extends E{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:()=>bu}])}}const MM=new RM;class AM extends E{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:()=>bu}])}}const DM=new AM;class OM extends E{constructor(){super("socket.plugin.PluginStoreDeleteRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"store_name",kind:"scalar",T:9}])}}const NM=new OM;class LM extends E{constructor(){super("socket.plugin.EnablePluginResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"enabled_by",kind:"scalar",T:9}])}}const _u=new LM;class VM extends E{constructor(){super("socket.plugin.EnablePluginsResponse",[{no:1,name:"plugins",kind:"message",repeat:1,T:()=>_u}])}}const xM=new VM;class UM extends E{constructor(){super("socket.plugin.DisablePluginResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"disabled_by",kind:"scalar",T:9}])}}const Ef=new UM;class FM extends E{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 BM=new FM;class WM extends E{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:()=>BM}])}}const Tf=new WM;class jM extends E{constructor(){super("socket.plugin.PluginEventResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"plugin_data",kind:"scalar",T:12}])}}const kf=new jM;class HM extends E{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 bf=new HM;class qM extends E{constructor(){super("socket.livestreaming.GetStagePeersResponse",[{no:1,name:"stage_peers",kind:"scalar",repeat:2,T:9}])}}const _f=new qM;class GM extends E{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 $M=new GM;class JM extends E{constructor(){super("socket.livestreaming.GetStageRequestsResponse",[{no:1,name:"stage_requests",kind:"message",repeat:1,T:()=>$M}])}}const wu=new JM;class KM extends E{constructor(){super("socket.livestreaming.GrantStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const zM=new KM;class YM extends E{constructor(){super("socket.livestreaming.DenyStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const QM=new YM;class XM extends E{constructor(){super("socket.livestreaming.LeaveStageRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const wf=new XM;class ZM extends E{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:()=>tA},{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 If=new ZM;class eA extends E{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:()=>rA}])}}const tA=new eA;class iA extends E{constructor(){super("socket.polls.PollVote",[{no:1,name:"user_id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9}])}}const rA=new iA;class nA extends E{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 sA=new nA;class aA extends E{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 oA=new aA;class cA extends E{constructor(){super("socket.polls.UpdatePollResponse",[{no:1,name:"poll",kind:"message",T:()=>If}])}}const Iu=new cA;class dA extends E{constructor(){super("socket.polls.GetPollsResponse",[{no:1,name:"polls",kind:"message",repeat:1,T:()=>If}])}}const lA=new dA;class uA extends E{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",tn]}])}}const Cf=new uA;class hA extends E{constructor(){super("google.protobuf.Timestamp",[{no:1,name:"seconds",kind:"scalar",T:3,L:0},{no:2,name:"nanos",kind:"scalar",T:5}])}now(){const e=this.create(),i=Date.now();return e.seconds=Te.from(Math.floor(i/1e3)).toBigInt(),e.nanos=i%1e3*1e6,e}toDate(e){return new Date(Te.from(e.seconds).toNumber()*1e3+Math.ceil(e.nanos/1e6))}fromDate(e){const i=this.create(),r=e.getTime();return i.seconds=Te.from(Math.floor(r/1e3)).toBigInt(),i.nanos=r%1e3*1e6,i}internalJsonWrite(e,i){let r=Te.from(e.seconds).toNumber()*1e3;if(r<Date.parse("0001-01-01T00:00:00Z")||r>Date.parse("9999-12-31T23:59:59Z"))throw new Error("Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");if(e.nanos<0)throw new Error("Unable to encode invalid Timestamp to JSON. Nanos must not be negative.");let n="Z";if(e.nanos>0){let s=(e.nanos+1e9).toString().substring(1);s.substring(3)==="000000"?n="."+s.substring(0,3)+"Z":s.substring(6)==="000"?n="."+s.substring(0,6)+"Z":n="."+s+"Z"}return new Date(r).toISOString().replace(".000Z",n)}internalJsonRead(e,i,r){if(typeof e!="string")throw new Error("Unable to parse Timestamp from JSON "+Rl(e)+".");let n=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw new Error("Unable to parse Timestamp from JSON. Invalid format.");let s=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(s))throw new Error("Unable to parse Timestamp from JSON. Invalid value.");if(s<Date.parse("0001-01-01T00:00:00Z")||s>Date.parse("9999-12-31T23:59:59Z"))throw new globalThis.Error("Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");return r||(r=this.create()),r.seconds=Te.from(s/1e3).toBigInt(),r.nanos=0,n[7]&&(r.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9),r}}new hA;class pA extends E{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 Cu=new pA;class mA extends E{constructor(){super("common.BulkedHubMessage",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>Cu}])}}new mA;class gA extends E{constructor(){super("common.CFWorkersResponse",[{no:1,name:"responses",kind:"message",repeat:1,T:()=>Cu},{no:2,name:"broadcast_responses",kind:"message",repeat:1,T:()=>Cu}])}}new gA;const fA=0,vA=1,yA=2,SA=3,EA=4,TA=5,kA={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},bA={getMessages:0,sendMessageToRoom:1,sendMessageToPeers:2,editMessage:3,deleteMessage:4,getPaginatedMessages:5,sendMessageToChannel:6,searchChannelMessages:7,getAllChatChannels:8,markChannelIndexAsRead:9,pinMessage:10},_A={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},wA={createPoll:0,getPolls:1,votePoll:2,updatePoll:3},Pf={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},IA={createChatChannel:0,getChatChannel:1,deprecatedGetAllChatChannels:2,getChannelMembers:3,updateChatChannel:4},CA={getUserPresets:0,updateUserPreset:1};function Zn(t,e){return Object.keys(e).reduce((i,r)=>(i[r]=(t<<16)+e[r],i),{})}function Rf(t,e){return Object.keys(t).reduce((i,r)=>(i[r]=e|t[r],i),{})}const B=Zn(fA,kA),Oe=Zn(vA,bA),K=Zn(yA,_A),Xi=Zn(SA,wA),nn=Zn(EA,IA),ii=Rf(Pf,16777216),gi=Rf(Pf,50331648),Jc=Zn(TA,CA);var PA=Object.defineProperty,RA=Object.getOwnPropertyDescriptor,Pu=(t,e,i,r)=>{for(var n=r>1?void 0:r?RA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&PA(e,i,n),n},sn,Mf;const Ru=(Mf=class{constructor(t){f(this,sn,void 0),v(this,sn,t)}createChannel(t,e,i,r="public",n=!1){return u(this,null,function*(){const s={displayName:t,targetUserIds:e,displayPictureUrl:i,visibility:r,isDirectMessage:n};n&&(s.visibility="private");const o=yield a(this,sn).sendMessagePromise(nn.createChatChannel,YR.toBinary(s)),c=Qi.fromBinary(o.payload).chatChannels;return Ru.formatChannel(c[0])})}updateChannel(t,e){return u(this,null,function*(){const i=yield a(this,sn).sendMessagePromise(nn.updateChatChannel,XR.toBinary({chatChannelId:t,targetUserIds:e.memberIds,displayName:e.displayName,displayPictureUrl:e.displayPictureUrl,visibility:e.visibility})),r=Qi.fromBinary(i.payload).chatChannels;return Ru.formatChannel(r[0])})}static formatChannel(t){var e;const{latestMessageAndUnreadCount:i}=t,r=j(L({},t),{id:t.chatChannelId,memberIds:t.targetUserIds,unreadCount:(e=i==null?void 0:i.unreadCount)!=null?e:0});return i!=null&&i.message&&(r.latestMessage=Zi.formatSocketServiceMessage(i.message)),delete r.chatChannelId,delete r.targetUserIds,delete r.latestMessageAndUnreadCount,r}getChannelMembers(t){return u(this,null,function*(){try{const e=yield a(this,sn).sendMessagePromise(nn.getChannelMembers,tM.toBinary({chatChannelId:t}));return lM.fromBinary(e.payload).channelMembers.map(i=>{var r=i,{id:n}=r,s=vc(r,["id"]);return j(L({},s),{userId:n})})}catch(e){return[]}})}on(t,e){let i,r;switch(t){case nn.createChatChannel:{i=Qi.fromBinary.bind(Qi),r=Qi.create();break}case nn.updateChatChannel:{i=Qi.fromBinary.bind(Qi),r=Qi.create();break}}if(!i){l.warn(`ChatChannelSocketHandler::Event ${t} is not recognized`);return}a(this,sn).on(t,({payload:n})=>{let s=r;try{s=i(n)}catch(o){l.error("ChatChannelSocketHandler::on::binary_decode_error",{error:o})}return e(s)})}},sn=new WeakMap,Mf);let an=Ru;Pu([S.trace("ChatChannelHandler.createChannel")],an.prototype,"createChannel",1),Pu([S.trace("ChatChannelHandler.updateChannel")],an.prototype,"updateChannel",1),Pu([S.trace("ChatChannelHandler.getChannelMembers")],an.prototype,"getChannelMembers",1);var MA=Object.defineProperty,AA=Object.getOwnPropertyDescriptor,fi=(t,e,i,r)=>{for(var n=r>1?void 0:r?AA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&MA(e,i,n),n},St=(t=>(t[t.TEXT=0]="TEXT",t[t.IMAGE=1]="IMAGE",t[t.FILE=2]="FILE",t[t.CUSTOM=3]="CUSTOM",t))(St||{}),Et;class ri{constructor(e){f(this,Et,void 0),v(this,Et,e)}getChatMessages(){return a(this,Et).sendMessagePromise(Oe.getMessages)}getChatMessagesPaginated(e,i,r,n=0,s=""){return u(this,null,function*(){const o={timeStamp:e,size:i,from:n,reversed:r,channelId:s},c=yield a(this,Et).sendMessagePromise(Oe.getPaginatedMessages,TR.toBinary(o));return c.payload?bR.fromBinary(c.payload):{messages:[],next:!1}})}sendMessageToRoom(e,i){const r={payloadType:i,payload:e};a(this,Et).sendMessage(Oe.sendMessageToRoom,IR.toBinary(r))}sendMessageToPeers(e,i,r){const n={payloadType:i,peerIds:r,payload:e};a(this,Et).sendMessage(Oe.sendMessageToPeers,RR.toBinary(n))}sendMessageToChannel(e,i,r){const n={payloadType:i,channelId:r,payload:e};a(this,Et).sendMessage(Oe.sendMessageToChannel,DR.toBinary(n))}sendMessage(e,i,r,n){if(n&&this.sendMessageToChannel(e,i,n),r&&r.length>0){this.sendMessageToPeers(e,i,r);return}this.sendMessageToRoom(e,i)}editMessage(e,i,r,n,s){return u(this,null,function*(){const o={chatId:e,payloadType:r,payload:i};n&&(o.channelId=n),s!==void 0&&(o.pinned=s);const c=yield a(this,Et).sendMessagePromise(Oe.editMessage,LR.toBinary(o));return Gc.fromBinary(c.payload).message})}deleteMessage(e,i){return u(this,null,function*(){const r={chatId:e};i&&(r.channelId=i);const n=yield a(this,Et).sendMessagePromise(Oe.deleteMessage,WR.toBinary(r)),s=$c.fromBinary(n.payload);return L({id:s.chatId},s.channelId?{channelId:s.channelId}:{})})}searchMessages(e,i){return u(this,null,function*(){var r,n,s;const o={searchTerm:e,timeStamp:(r=i.timestamp)!=null?r:Date.now(),size:(n=i.size)!=null?n:75,from:0,reversed:(s=i.reversed)!=null?s:!0};i.channelId&&(o.channelId=i.channelId);try{const c=yield a(this,Et).sendMessagePromise(Oe.searchChannelMessages,qR.toBinary(o));return yf.fromBinary(c.payload).messages}catch(c){return[]}})}getAllChannels(){return u(this,null,function*(){try{const e=yield a(this,Et).sendMessagePromise(Oe.getAllChatChannels);return Qi.fromBinary(e.payload).chatChannels.map(an.formatChannel)}catch(e){return[]}})}markLastReadMessage(e,i){return u(this,null,function*(){const r=yield a(this,Et).sendMessagePromise(Oe.markChannelIndexAsRead,$R.toBinary({channelId:e,userId:i.userId,channelIndex:i.channelIndex}));return KR.fromBinary(r.payload).channelIndex})}setPinState(e,i){return u(this,null,function*(){const r={chatId:e.id,pinned:i,channelId:e.channelId},n=yield a(this,Et).sendMessagePromise(Oe.pinMessage,xR.toBinary(r));return qc.fromBinary(n.payload)})}on(e,i){let r,n;switch(e){case Oe.sendMessageToRoom:{r=Tu.fromBinary.bind(Tu),n=Tu.create();break}case Oe.sendMessageToPeers:{r=ku.fromBinary.bind(ku),n=ku.create();break}case Oe.editMessage:{r=Gc.fromBinary.bind(Gc),n=Gc.create();break}case Oe.pinMessage:{r=qc.fromBinary.bind(qc),n=qc.create();break}case Oe.deleteMessage:{r=$c.fromBinary.bind($c),n=$c.create();break}}if(!r){l.warn(`ChatSocketHandler::Event ${e} is not recognized`);return}a(this,Et).on(e,({payload:s})=>{let o=n;try{o=r(s)}catch(c){l.error("chatSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}}Et=new WeakMap,fi([S.trace("SocketService.getChatMessages")],ri.prototype,"getChatMessages",1),fi([S.trace("SocketService.getChatMessagesPaginated")],ri.prototype,"getChatMessagesPaginated",1),fi([S.trace("SocketService.sendMessageToRoom")],ri.prototype,"sendMessageToRoom",1),fi([S.trace("SocketService.sendMessageToPeers")],ri.prototype,"sendMessageToPeers",1),fi([S.trace("SocketService.sendMessageToChannel")],ri.prototype,"sendMessageToChannel",1),fi([S.trace("SocketService.sendMessage")],ri.prototype,"sendMessage",1),fi([S.trace("SocketService.editMessage")],ri.prototype,"editMessage",1),fi([S.trace("SocketService.deleteMessage")],ri.prototype,"deleteMessage",1),fi([S.trace("SocketService.searchMessages")],ri.prototype,"searchMessages",1),fi([S.trace("SocketService.getAllChannels")],ri.prototype,"getAllChannels",1),fi([S.trace("SocketService.markLastReadMessage")],ri.prototype,"markLastReadMessage",1);function DA(t){return t.replace(/([-_]\w)/g,e=>e[1].toUpperCase())}function vi(t){if(!t||typeof t!="object")return t;if(Array.isArray(t))return t.map(i=>vi(i));const e={};return Object.keys(t).forEach(i=>{const r=Cl(i)?i:DA(i);e[r]=vi(t[i])}),e}function OA(t){return t.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function Af(t){if(!t||typeof t!="object")return t;if(Array.isArray(t))return t.map(i=>Af(i));const e={};return Object.keys(t).forEach(i=>{const r=Cl(i)?i:OA(i);e[r]=t[i]}),e}function Kc(t,e={}){return t==null?{}:(Object.getOwnPropertyNames(t).forEach(i=>{if(typeof t[i]!="function"){if(typeof t[i]=="object"){Kc(t[i],e[i]={});return}e[i]=t[i]}}),e)}class Df{constructor(e){m(this,"defaults"),this.defaults={baseURL:e.baseURL,headers:{common:{}},timeout:e.timeout,retry:e.retry,retryDelay:e.retryDelay}}buildURL(e,i){const{baseURL:r}=this.defaults,n=e.startsWith("http")?e:`${r}${e.startsWith("/")?e:`/${e}`}`;if(i){const s=new URLSearchParams;return Object.entries(i).forEach(([o,c])=>{s.append(o,c)}),`${n}${n.includes("?")?"&":"?"}${s.toString()}`}return n}request(e){return u(this,null,function*(){var i;const r=((i=e.method)==null?void 0:i.toUpperCase())||"GET",n=this.buildURL(e.url||"",e.params),s=L(L({},this.defaults.headers.common),e.headers);r!=="GET"&&r!=="HEAD"&&e.data&&!s["Content-Type"]&&(s["Content-Type"]="application/json");const o=s["Content-Type"]==="application/json"?JSON.stringify(e.data):e.data,c={method:r,headers:s,body:r!=="GET"&&r!=="HEAD"&&e.data?o:void 0},d=e.timeout||this.defaults.timeout,h=e.retry!==void 0?e.retry:this.defaults.retry,p=e.retryDelay||this.defaults.retryDelay;try{const g=new AbortController,y=setTimeout(()=>g.abort(),d);c.signal=g.signal;const T=yield fetch(n,c);clearTimeout(y);let b=null;const O=T.headers.get("content-type");O&&O.includes("application/json")?b=yield T.json():b=yield T.text();const R={};T.headers.forEach((G,$)=>{R[$]=G});const x={data:b,status:T.status,statusText:T.statusText,headers:R,config:e};if(!T.ok)throw x;return x}catch(g){if(g instanceof Error&&h>0)return yield new Promise(y=>setTimeout(y,p)),this.defaults.baseURL==="https://api.dyte.io"?this.defaults.baseURL="https://api.cluster.dyte.in":this.defaults.baseURL==="https://api.cluster.dyte.in"&&(this.defaults.baseURL="https://api.dyte.io"),this.request(j(L({},e),{retry:h-1}));throw g}})}get(e){return u(this,arguments,function*(i,r={}){return this.request(j(L({},r),{method:"GET",url:i}))})}post(e,i){return u(this,arguments,function*(r,n,s={}){return this.request(j(L({},s),{method:"POST",url:r,data:n}))})}put(e,i){return u(this,arguments,function*(r,n,s={}){return this.request(j(L({},s),{method:"PUT",url:r,data:n}))})}}const NA=3,LA=30,VA=8e3;class xA{constructor(e,i){m(this,"ipInfo"),m(this,"fetchClient"),m(this,"requests"),m(this,"roomName"),m(this,"roomUUID"),m(this,"authToken"),m(this,"organizationId"),m(this,"iceServers"),m(this,"pluginInformation"),m(this,"userDetails"),m(this,"roomDetails"),m(this,"context"),this.context=e;const{timeout:r=VA,retry:n=NA,retryDelay:s=LA,baseURL:o="https://api.dyte.io",authToken:c,cachedUserDetails:d}=i||{};this.iceServers=d==null?void 0:d.iceServers,this.pluginInformation=d==null?void 0:d.pluginInformation,this.userDetails=d==null?void 0:d.userDetails,this.roomDetails=d==null?void 0:d.roomDetails,this.requests=new Df({baseURL:o,timeout:r,retry:n,retryDelay:s,responseType:"json"}),this.fetchClient=new Df({baseURL:"",timeout:r,retry:n,retryDelay:s,responseType:"json"}),this.setAuthToken(c,{bearer:!0});const h=this.requests.request.bind(this.requests);this.requests.request=p=>u(this,null,function*(){var g,y,T,b,O;try{S.injectContext(this.requests.defaults.headers.common);const R=yield h(p);return p.url!==S.logsEndpoint&&l.debug("xhr::fetch",{networkCall:{status:R.status,statusText:R.statusText,baseURL:p.baseURL||this.requests.defaults.baseURL,url:p.url,method:p.method}}),R}catch(R){throw R?(((g=R.config)==null?void 0:g.url)!==S.logsEndpoint&&l.error("xhr::fetch",{error:R,networkCall:{status:R.status,statusText:R.statusText,baseURL:((y=R.config)==null?void 0:y.baseURL)||this.requests.defaults.baseURL,url:(T=R.config)==null?void 0:T.url,retries:(b=R.config)==null?void 0:b.retry,method:(O=R.config)==null?void 0:O.method,isOnline:navigator.onLine?"online":"offline"}}),new w(R.message||"Network request failed","0011")):new w("Unknown network error occurred","0011")}})}get peerId(){return this.context.getValue("peerId")}setAuthToken(e,i){const{bearer:r}=i||{};this.authToken=e,this.requests.defaults.headers.common.Authorization=r?`Bearer ${e}`:e}setHeader(e,i){this.requests.defaults.headers.common[e]=i}setRoomName(e){this.roomName=e}setRoomUUID(e){this.roomUUID=e}setOrganizationId(e){this.organizationId=e}}var UA=Object.defineProperty,FA=Object.getOwnPropertyDescriptor,ni=(t,e,i,r)=>{for(var n=r>1?void 0:r?FA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&UA(e,i,n),n};class jt extends xA{constructor(e,i){super(e,i),this.setHeader("x-dyte-web-core-version",e.getValue("sdkVersion"))}getIPDetails(){return u(this,null,function*(){var e;const{peerId:i}=this;try{const r=yield Bl.getIPDetails({peerId:i,apiHostnames:Ug(this.context),logger:l});if(l.log("ipInfo",{ipInfo:r}),((e=r==null?void 0:r.loc)==null?void 0:e.length)>5)return r;throw Error("Insufficient data")}catch(r){l.warn("ApiClient.getRoomNodeLinkAndTitleV1 Failed to get ip details",{error:{name:r.name,message:r.message}});return}})}getICEServers(){return u(this,null,function*(){if(this.iceServers)return this.iceServers;const{success:e,iceServers:i}=(yield this.requests.get("/iceservers")).data;if(e)return(i==null?void 0:i.length)>0&&(this.iceServers=i),i})}getPlugins(){return u(this,null,function*(){var e,i,r,n,s,o,c;if(this.pluginInformation)return this.pluginInformation;const{plugins:d}=(yield this.requests.get("/v2/plugins/user")).data.data,h=((i=(e=z.getValue(ie.V1_PLUGINS))==null?void 0:e.toString())==null?void 0:i.split(","))||[],p=d.reduce((g,y)=>(g[h.includes(y.id)?"v1":"v2"].push(j(L({},y),{name:y.name.replace("v2","")})),g),{v1:[],v2:[]});return(s=(n=(r=this.context.getValue("modules"))==null?void 0:r.devTools)==null?void 0:n.plugins)!=null&&s.length&&((c=(o=this.context.getValue("modules"))==null?void 0:o.devTools)==null||c.plugins.forEach(g=>{var y,T,b;const O=j(L({},ca),{tags:[...ca.tags],baseUrl:`http://localhost:${g.port}`,name:g.name,picture:(y=g.picture)!=null?y:ca.picture,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),id:g.id,organizationId:this.organizationId,description:(T=g.description)!=null?T:ca.description,staggered:(b=g.staggered)!=null?b:ca.staggered});p.v2.push(O)})),p.v2})}getPluginDetails(e){return u(this,null,function*(){const{plugin:i}=(yield this.requests.get(`/v2/plugins/view/${e}`)).data.data;return i})}getPluginConfig(e){return u(this,null,function*(){return(yield this.fetchClient.get(`${e}/dyte-config.json`)).data})}authorizePlugin(e){return u(this,null,function*(){const i={peerId:this.peerId},{token:r}=(yield this.requests.post(`/v2/plugins/authorize/${e}`,i)).data.data;return r})}getPresignedUrls(e,i){return u(this,null,function*(){const r=Kn(this.context,"chat_upload_expiry"),n={roomUUID:this.roomUUID,filename:e,expiry:typeof r=="number"?r:void 0};z.hasFeature(ie.FEAT_CHAT_SDK)&&(n.viewType=i);const{getLocation:s,putLocation:o}=(yield this.requests.post("/v1/meetings/genPreSignedUploadUrl",n)).data.data;return{getLocation:s,putLocation:o}})}uploadFile(e,i){return u(this,null,function*(){if(navigator.isReactNative&&"uri"in e)try{yield fetch(i,{method:"PUT",headers:{"Content-Type":"application/octet-stream"},body:{uri:e.uri,name:e.name}})}catch(r){l.error(`sendFileMessage::${r}`)}else yield this.fetchClient.put(i,e,{headers:{"Content-Type":e.type}})})}startLivestreaming(e){return u(this,arguments,function*({manualIngestion:i}){const r=vi(yield this.requests.post(`/v2/meetings/${this.context.getValue("meetingId")}/livestreams`,{manual_ingest:!!i})).data.data;return{playbackUrl:r.playbackUrl,status:r.status,manualIngest:r.manualIngest,ingestionCredentials:r.streamKey?{ingestionServer:r.ingestServer,streamKey:r.streamKey}:null}})}stopLivestreaming(){return u(this,null,function*(){return this.requests.post(`/v2/meetings/${this.context.getValue("meetingId")}/active-livestream/stop`)})}getActiveLivestream(){return u(this,null,function*(){const e=vi((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 vi(e)})}startRecording(e,i){return u(this,null,function*(){return(yield this.requests.post("/v2/recordings",j(L({},Af(e)),{meeting_id:this.context.getValue("meetingId"),allow_multiple_recordings:!!i}))).data.data.id})}updateRecording(e,i){return u(this,null,function*(){return this.requests.put(`v2/recordings/${e}`,{action:i})})}getActiveRecording(){return u(this,null,function*(){const{status:e,id:i}=(yield this.requests.get(`v2/recordings/active-recording/${this.context.getValue("meetingId")}`)).data.data;return{status:e,id:i}})}getActiveTranscript(){return u(this,null,function*(){const{transcript_download_url:e}=(yield this.requests.get(`v2/meetings/${this.context.getValue("meetingId")}/active-transcript`)).data.data;try{return{transcript:(yield this.fetchClient.get(e)).data}}catch(i){throw new w("Cant fetch transcript s3 url","1801")}})}getRoomNodeData(){return u(this,null,function*(){const e=yield this.getIPDetails();if(this.ipInfo=e,this.roomDetails)return this.roomDetails;const{roomNodeLink:i,title:r,useHiveMedia:n,sfu:s}=vi((yield this.requests.post("v2/internals/rooms",{ip_information:e})).data.data);return{roomNodeUrl:i,meetingTitle:r,useHiveMedia:n!=null?n:!1,sfu:s}})}}ni([S.trace("APIClient.getIPDetails")],jt.prototype,"getIPDetails",1),ni([S.trace("APIClient.getICEServers")],jt.prototype,"getICEServers",1),ni([S.trace("APIClient.getPlugins")],jt.prototype,"getPlugins",1),ni([S.trace("APIClient.startLivestreaming")],jt.prototype,"startLivestreaming",1),ni([S.trace("APIClient.stopLivestreaming")],jt.prototype,"stopLivestreaming",1),ni([S.trace("APIClient.getActiveLivestream")],jt.prototype,"getActiveLivestream",1),ni([S.trace("APIClient.getUserDetails")],jt.prototype,"getUserDetails",1),ni([S.trace("APIClient.startRecording")],jt.prototype,"startRecording",1),ni([S.trace("APIClient.stopRecording")],jt.prototype,"updateRecording",1),ni([S.trace("APIClient.getActiveRecording")],jt.prototype,"getActiveRecording",1),ni([S.trace("APIClient.getActiveTranscript")],jt.prototype,"getActiveTranscript",1),ni([S.trace("APIClient.getRoomNodeData")],jt.prototype,"getRoomNodeData",1);let Mu;function BA(t,e){return Mu=new jt(t,e),Mu}function ht(){return Mu}function WA(t,e){return`<blockquote>${e.replace(/<blockquote>[.\s\S]*<\/blockquote>\n\n/m,"")}</blockquote>
14
- ${t}`}const es={maxInvocations:5,period:1};function At(t,e){return function(i,r,n){const s=n.value;let o=0,c=Date.now();return n.value=function(...d){const h=Date.now(),p=e?this[e]:t;if(h-c>p.period*1e3&&(c=h,o=0),o>=p.maxInvocations)throw new w(`Method rate limit ${p.maxInvocations} invocations/${p.period}sec exceeded`,"0013");return o+=1,s.apply(this,d)},n}}var jA=Object.defineProperty,HA=Object.getOwnPropertyDescriptor,pt=(t,e,i,r)=>{for(var n=r>1?void 0:r?HA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&jA(e,i,n),n};const qA=["text","image","file","custom","poll"],zc={maxInvocations:180,period:60};var re,ts,ze,is,Yc,Au,Of,Qc,Du,Nf;let Qe=(Nf=class extends Wt{constructor(t,e,i,r,n){super(),f(this,Au),f(this,Qc),m(this,"messages"),m(this,"channels",[]),f(this,re,void 0),f(this,ts,void 0),f(this,ze,void 0),f(this,is,void 0),f(this,Yc,void 0),m(this,"maxTextLimit",2e3),v(this,Yc,t),v(this,ze,e),v(this,is,i),v(this,re,r),v(this,ts,n),this.messages=[]}setMaxTextLimit(t){this.maxTextLimit=t}sendMessageInternal(t,e,i){return u(this,arguments,function*(r,n,s,o={}){switch(r.type){case"text":{const c=o.replyTo&&o.replyTo.type==="text"?WA(r.message,o.replyTo.message):r.message;yield this.sendTextMessageInternal(c,n,s);break}case"image":yield this.sendImageMessageInternal(r.image,n,s);break;case"file":yield this.sendFileMessageInternal(r.file,n,s);break;default:l.error("sendMessage::message_type_not_supported",{dyteChat:{messageType:r.type}});break}})}sendTextMessageInternal(t,e,i){return u(this,null,function*(){var r,n,s,o,c,d;if(t.length>this.maxTextLimit)throw new w("Max character limit breached","0503");if(e&&e.length>0){if(!((r=a(this,re).permissions)!=null&&r.chatPrivate.canSend)||!((n=a(this,re).permissions)!=null&&n.chatPrivate.text))throw l.error("sendTextMessage::private_chat_permission_denied"),new w("Could not send message to private chat.","0501")}else if(!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,re).permissions)==null?void 0:c.chatPublic)!=null&&d.text))throw l.error("sendTextMessage::public_chat_permission_denied"),new w("Could not send message to public chat.","0501");if(!t)throw l.error("sendTextMessage::message_can_not_be_empty"),new w("Message can not be empty.","0502");if(i){a(this,ze).sendMessageToChannel(t,St.TEXT,i);return}let h=[];e&&e.length>0&&(e.push(a(this,re).id),h=a(this,ts).joined.toArray().filter(p=>e.includes(p.id)).map(p=>p.userId),h.push(a(this,re).userId)),a(this,ze).sendMessage(t,St.TEXT,e)})}sendImageMessageInternal(t,e,i){return u(this,null,function*(){var r,n,s,o,c,d;if(e&&e.length>0){if(!((r=a(this,re).permissions)!=null&&r.chatPrivate.canSend)||!((n=a(this,re).permissions)!=null&&n.chatPrivate.files)){l.error("sendImageMessage::private_chat_permission_denied");return}}else if(!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,re).permissions)==null?void 0:c.chatPublic)!=null&&d.files)){l.error("sendImageMessage::permission_denied");return}if(!t){l.error("sendImageMessage::required_argument_image_can_not_be_empty");return}if(!["image/gif","image/jpeg","image/png"].includes(t.type)){l.error("sendImageMessage::image_type_not_supported",{dyteChat:{imageType:t.type}});return}try{const h=ht(),{getLocation:p,putLocation:g}=yield h.getPresignedUrls(t.name,a(this,re).config.viewType);if(yield h.uploadFile(t,g),i){a(this,ze).sendMessageToChannel(p,St.IMAGE,i);return}let y=[];e&&e.length>0&&(e.push(a(this,re).id),y=a(this,ts).joined.toArray().filter(T=>e.includes(T.id)).map(T=>T.userId),y.push(a(this,re).userId)),a(this,ze).sendMessage(p,St.IMAGE,e)}catch(h){throw new w("Error sending image message.","0500")}})}sendFileMessageInternal(t,e,i){return u(this,null,function*(){var r,n,s,o,c,d;if(e&&e.length>0){if(!((r=a(this,re).permissions)!=null&&r.chatPrivate.canSend)||!((n=a(this,re).permissions)!=null&&n.chatPrivate.files)){l.error("sendFileMessage::private_chat_permission_denied");return}}else if(!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,re).permissions)==null?void 0:c.chatPublic)!=null&&d.files)){l.error("sendFileMessage::permission_denied");return}if(!t){l.error("sendFileMessage::required_argument_file_can_not_be_empty");return}try{const h=ht(),{getLocation:p,putLocation:g}=yield h.getPresignedUrls(t.name,a(this,re).config.viewType);if(yield h.uploadFile(t,g),i){a(this,ze).sendMessageToChannel(JSON.stringify({link:p,name:t.name,size:"size"in t?t.size:0}),St.FILE,i);return}let y=[];e&&e.length>0&&(e.push(a(this,re).id),y=a(this,ts).joined.toArray().filter(b=>e.includes(b.id)).map(b=>b.userId),y.push(a(this,re).userId));const T=JSON.stringify({link:p,name:t.name,size:"size"in t?t.size:0});a(this,ze).sendMessage(T,St.FILE,e)}catch(h){throw new w("Error sending file message.","0500")}})}get rateLimits(){return zc}updateRateLimits(t,e){zc.maxInvocations=t,zc.period=e}sendTextMessage(t,e){return u(this,null,function*(){return this.sendTextMessageInternal(t,e)})}sendCustomMessage(t,e){return u(this,null,function*(){var i,r,n,s,o,c,d,h,p,g,y,T,b,O,R;if(e&&e.length>0){if(!((i=a(this,re).permissions)!=null&&i.chatPrivate.canSend)||!((r=a(this,re).permissions)!=null&&r.chatPrivate.files)||!((n=a(this,re).permissions)!=null&&n.chatPrivate.text)){l.error("sendCustomMessage::private_chat_permission_denied");return}}else if(!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,re).permissions)==null?void 0:c.chatPublic)!=null&&d.files)||!((p=(h=a(this,re).permissions)==null?void 0:h.chatPublic)!=null&&p.text)){l.error("sendCustomMessage::permission_denied");return}const x=$=>u(this,null,function*(){try{if(typeof $=="string")return{link:$};const I=ht(),{getLocation:se,putLocation:ne}=yield I.getPresignedUrls($.name,a(this,re).config.viewType);return yield I.uploadFile($,ne),{link:se,type:$.type,name:$.name,size:$.size}}catch(I){throw new w("Error sending image message.","0500")}}),G=j(L({},t),{files:yield Promise.all((y=(g=t.files)!=null?g:[])==null?void 0:y.map($=>u(this,null,function*(){return x($)}))),images:yield Promise.all((b=(T=t.images)!=null?T:[])==null?void 0:b.map($=>u(this,null,function*(){return x($)}))),videos:yield Promise.all((R=(O=t.videos)!=null?O:[])==null?void 0:R.map($=>u(this,null,function*(){return x($)})))});a(this,ze).sendMessage(JSON.stringify(G),St.CUSTOM,e)})}sendImageMessage(t,e){return u(this,null,function*(){return this.sendImageMessageInternal(t,e)})}sendFileMessage(t,e){return u(this,null,function*(){return this.sendFileMessageInternal(t,e)})}sendMessage(t,e){return u(this,null,function*(){return this.sendMessageInternal(t,e)})}editTextMessage(t,e,i){return u(this,null,function*(){var r,n,s,o,c,d;if(((n=(r=a(this,re).permissions)==null?void 0:r.chatMessage)==null?void 0:n.canEdit)==="NONE")throw new w("Not permitted to edit messages","0501");if(!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,re).permissions)==null?void 0:c.chatPublic)!=null&&d.text)){l.error("editTextMessage::permission_denied");return}if(!e){l.error("editTextMessage::message_can_not_be_empty");return}a(this,ze).editMessage(t,e,St.TEXT,i)})}editImageMessage(t,e,i){return u(this,null,function*(){var r,n,s,o;if(!((n=(r=a(this,re).permissions)==null?void 0:r.chatPublic)!=null&&n.canSend)||!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.files)){l.error("editImageMessage::permission_denied");return}if(!e){l.error("editImageMessage::required_argument_image_can_not_be_empty");return}if(!["image/gif","image/jpeg","image/png"].includes(e.type)){l.error("sendImageMessage::image_type_not_supported",{dyteChat:{imageType:e.type}});return}try{const c=ht(),{getLocation:d,putLocation:h}=yield c.getPresignedUrls(e.name,a(this,re).config.viewType);yield c.uploadFile(e,h),a(this,ze).editMessage(t,d,St.IMAGE,i)}catch(c){throw new w("Error editing image message.","0500")}})}editFileMessage(t,e,i){return u(this,null,function*(){var r,n,s,o;if(!((n=(r=a(this,re).permissions)==null?void 0:r.chatPublic)!=null&&n.canSend)||!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.files)){l.error("sendFileMessage::permission_denied");return}if(!e){l.error("sendFileMessage::required_argument_file_can_not_be_empty");return}try{const c=ht(),{getLocation:d,putLocation:h}=yield c.getPresignedUrls(e.name,a(this,re).config.viewType);yield c.uploadFile(e,h),a(this,ze).editMessage(t,JSON.stringify({link:d,name:e.name,size:"size"in e?e.size:0}),St.FILE,i)}catch(c){throw new w("Error editing file message.","0500")}})}editMessage(t,e,i){return u(this,null,function*(){switch(e.type){case"text":{this.editTextMessage(t,e.message,i);break}case"image":{this.editImageMessage(t,e.image,i);break}case"file":{this.editFileMessage(t,e.file,i);break}default:{l.error("editMessage::message_type_not_supported",{dyteChat:{messageType:e.type}});break}}})}deleteMessage(t,e){return u(this,null,function*(){var i,r;if(((r=(i=a(this,re).permissions)==null?void 0:i.chatMessage)==null?void 0:r.canDelete)==="NONE")throw new w("Not permitted to delete messages","0501");a(this,ze).deleteMessage(t,e)})}getMessagesByUser(t){return this.messages.filter(e=>e.userId===t)}getMessagesByType(t){return this.messages.filter(e=>e.type===t)}pin(t){return u(this,null,function*(){if(!a(this,Qc,Du))throw new w("Can`t pin message without joining room","0505");if(!a(this,re).permissions.pinParticipant)throw new w("You do not have permission to pin messages.","0501");const e=this.messages.find(i=>i.id===t);if(e){a(this,ze).setPinState(e,!0);return}throw new w(`No message found with id: ${t}`,"0504")})}unpin(t){return u(this,null,function*(){if(!a(this,Qc,Du))throw new w("Can`t unpin message without joining room","0505");if(!a(this,re).permissions.pinParticipant)throw new w("You do not have permission to unpin messages.","0501");const e=this.messages.find(i=>i.id===t);if(e){a(this,ze).setPinState(e,!1);return}throw new w(`No message found with id: ${t}`,"0504")})}getMessages(t,e,i,r=0,n=void 0){return u(this,null,function*(){const s=yield a(this,ze).getChatMessagesPaginated(t,e,i,r,n);return{messages:s.messages.map(o=>Zi.formatSocketServiceMessage(o)),next:s.next}})}createChannel(t,e){return u(this,arguments,function*(i,r,n={}){var s;const o=(s=a(this,re).permissions)==null?void 0:s.chatChannel;if(o){if(o.canCreate==="NONE")throw new w("Not permitted to create channels","0501");if(n.visibility==="public"&&!(o.canCreate==="PUBLIC"||o.canCreate==="ALL"))throw new w("Not permitted to create public channels","0501");if(n.visibility==="private"&&!(o.canCreate==="PRIVATE"||o.canCreate==="ALL"))throw new w("Not permitted to create private channels","0501")}if(!i||i.trim().length===0)throw new w("channel name cannot be empty.","0510");const c=[...new Set([...r,a(this,re).userId])];return yield a(this,is).createChannel(i.trim(),c,n.displayPictureUrl,n.visibility,n.isDirectMessage)})}updateChannel(t,e){var i,r,n,s,o;const c=this.channels.find(p=>p.id===t),d=(i=a(this,re).permissions)==null?void 0:i.chatChannel;if(d){if(d.canUpdate==="NONE")throw new w("Not permitted to update channels","0501");if(c.visibility==="public"&&!(d.canUpdate==="PUBLIC"||d.canUpdate==="ALL"))throw new w("Not permitted to update public channels","0501");if(c.visibility==="private"&&!(d.canUpdate==="PRIVATE"||d.canUpdate==="ALL"))throw new w("Not permitted to update private channels","0501")}const h={memberIds:(r=e.memberIds)!=null?r:c.memberIds,displayName:(n=e.displayName)!=null?n:c.displayName,displayPictureUrl:(s=e.displayPictureUrl)!=null?s:c.displayPictureUrl,visibility:(o=e.visibility)!=null?o:c.visibility};return a(this,is).updateChannel(t,h)}sendMessageToChannel(t,e){return u(this,arguments,function*(i,r,n={}){return this.sendMessageInternal(i,null,r,n)})}getChannelMembers(t){return u(this,null,function*(){return a(this,is).getChannelMembers(t)})}searchMessages(t){return u(this,arguments,function*(e,i={}){if(!z.hasFeature(ie.FEAT_CHAT_SDK_SEARCH))throw new w("searchMessages is temporarily disabled!","0506");return(yield a(this,ze).searchMessages(e,i)).map(Zi.formatSocketServiceMessage)})}markLastReadMessage(t,e){return u(this,null,function*(){yield a(this,ze).markLastReadMessage(t,e);const i=this.channels.find(r=>r.id===t);if(i){const r=j(L({},i),{unreadCount:0});this.channels=this.channels.map(n=>n.id===t?r:n),this.emit("channelMessageUpdate",r)}})}get pinned(){return this.messages.filter(t=>t.pinned)}},re=new WeakMap,ts=new WeakMap,ze=new WeakMap,is=new WeakMap,Yc=new WeakMap,Au=new WeakSet,Of=function(){return a(this,Yc).getValue("connectionHandler")},Qc=new WeakSet,Du=function(){return a(this,Au,Of).socketJoined===!0},Nf);pt([S.trace("DyteChat.sendTextMessage"),At(zc)],Qe.prototype,"sendTextMessage",1),pt([S.trace("DyteChat.sendImageMessage"),At({maxInvocations:20,period:60})],Qe.prototype,"sendImageMessage",1),pt([S.trace("DyteChat.sendFileMessage"),At({maxInvocations:20,period:60})],Qe.prototype,"sendFileMessage",1),pt([S.trace("DyteChat.sendMessage"),At({maxInvocations:180,period:60})],Qe.prototype,"sendMessage",1),pt([S.trace("DyteChat.editTextMessage")],Qe.prototype,"editTextMessage",1),pt([S.trace("DyteChat.editImageMessage")],Qe.prototype,"editImageMessage",1),pt([S.trace("DyteChat.editFileMessage")],Qe.prototype,"editFileMessage",1),pt([S.trace("DyteChat.editMessage")],Qe.prototype,"editMessage",1),pt([S.trace("DyteChat.deleteMessage")],Qe.prototype,"deleteMessage",1),pt([S.trace("DyteChat.createChannel")],Qe.prototype,"createChannel",1),pt([S.trace("DyteChat.updateChannel")],Qe.prototype,"updateChannel",1),pt([S.trace("DyteChat.sendMessageToChannel")],Qe.prototype,"sendMessageToChannel",1),pt([S.trace("DyteChat.getChannelMembers")],Qe.prototype,"getChannelMembers",1),pt([S.trace("DyteChat.searchMessages")],Qe.prototype,"searchMessages",1),pt([S.trace("DyteChat.markLastReadMessage")],Qe.prototype,"markLastReadMessage",1),Qe=pt([ut("0500")],Qe);var GA=Object.defineProperty,$A=Object.getOwnPropertyDescriptor,JA=(t,e,i,r)=>{for(var n=r>1?void 0:r?$A(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&GA(e,i,n),n},Xc,Lf;const on=(Lf=class{constructor(t,e,i,r,n){m(this,"chat"),m(this,"chatSocketHandler"),m(this,"chatChannelSocketHandler"),m(this,"self"),f(this,Xc,void 0),v(this,Xc,t),this.chatSocketHandler=e,this.chatChannelSocketHandler=i,this.chat=new Qe(t,e,i,r,n),this.self=r,this.setupEvents()}static init(t,e,i,r,n){return u(this,null,function*(){return new on(t,e,i,r,n)})}static formatMessage(t){return j(L({},t),{time:new Date(t.time),type:qA[t.type]})}static formatSocketServiceMessage(t){const e=t.createdAt*1e3,i={displayName:t.displayName,id:t.chatId,time:e,timeMs:t.createdAtMs,type:t.payloadType,isEdited:t.isEdited,userId:t.userId,targetUserIds:t.targetUserIds,channelId:t.channelId,channelIndex:t.channelIndex,message:"",link:"",name:"",html:"",images:[],videos:[],files:[],size:0,pinned:t.pinned};switch(i.type){case St.TEXT:{i.message=t.payload;break}case St.IMAGE:{i.link=t.payload;break}case St.FILE:{const{link:r,name:n,size:s}=JSON.parse(t.payload);i.link=r,i.name=n,i.size=s;break}case St.CUSTOM:{const{html:r,images:n,message:s,videos:o,files:c}=JSON.parse(t.payload);i.message=s,i.html=r,i.images=n,i.videos=o,i.files=c;break}}return on.formatMessage(i)}getChatMessages(){return u(this,null,function*(){if(this.self.config.viewType==="LIVESTREAM"||this.self.config.viewType==="CHAT"||z.hasFeature(ie.FEAT_PAGINATED_CHAT))return;const t=yield this.chatSocketHandler.getChatMessages();if(!(t!=null&&t.payload))return;const e=yf.fromBinary(t.payload).messages;this.chat.messages=e.map(i=>on.formatSocketServiceMessage(i))})}setupEvents(){a(this,Xc).getValue("peerSessionStore").on(P.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){this.getChatMessages()})),this.chatSocketHandler.on(Oe.sendMessageToRoom,t=>{const e=on.formatSocketServiceMessage(t.message);if(!e.channelId)this.chat.messages=[...this.chat.messages,e];else{const i=this.chat.channels.find(r=>r.id===e.channelId);i&&(i.latestMessage=e,i.unreadCount+=1,this.chat.emit("channelMessageUpdate",i))}this.chat.emit("chatUpdate",{action:"add",message:e,messages:this.chat.messages})}),this.chatSocketHandler.on(Oe.sendMessageToPeers,t=>{const e=on.formatSocketServiceMessage(t.message);this.chat.messages=[...this.chat.messages,e],this.chat.emit("chatUpdate",{action:"add",message:e,messages:this.chat.messages})}),this.chatSocketHandler.on(Oe.editMessage,t=>{const e=on.formatSocketServiceMessage(t.message);if(e.channelId){this.chat.emit("chatUpdate",{action:"edit",message:e,messages:this.chat.messages});return}const i=this.chat.messages.findIndex(r=>r.id===e.id);i!==-1&&(this.chat.messages[i]=e,this.chat.emit("chatUpdate",{action:"edit",message:e,messages:this.chat.messages}))}),this.chatSocketHandler.on(Oe.deleteMessage,t=>{if(t.channelId){this.chat.emit("chatUpdate",{action:"delete",message:{id:t.chatId,channelId:t.channelId},messages:this.chat.messages});return}const e=this.chat.messages.findIndex(r=>r.id===t.chatId);if(e===-1)return;const[i]=this.chat.messages.splice(e,1);this.chat.emit("chatUpdate",{action:"delete",message:i,messages:this.chat.messages})}),this.chatChannelSocketHandler.on(nn.createChatChannel,t=>{const[e]=t.chatChannels,i=an.formatChannel(e);this.chat.channels.push(i),this.chat.emit("channelCreate",i)}),this.chatSocketHandler.on(Oe.pinMessage,t=>{const e=this.chat.messages.findIndex(r=>r.id===t.chatId);if(e===-1)return;const i=this.chat.messages[e];i.pinned=t.pinned,this.chat.messages[e]=i,this.chat.emit("chatUpdate",{action:"edit",message:i,messages:this.chat.messages})}),this.chatChannelSocketHandler.on(nn.updateChatChannel,t=>{const[e]=t.chatChannels,i=an.formatChannel(e);this.chat.channels=this.chat.channels.map(r=>r.id===i.id?i:r),this.chat.emit("channelUpdate",i)})}},Xc=new WeakMap,Lf);let Zi=on;JA([S.trace("ChatController.setupEvents")],Zi.prototype,"setupEvents",1);var KA=Object.defineProperty,zA=Object.getOwnPropertyDescriptor,YA=(t,e,i,r)=>{for(var n=r>1?void 0:r?zA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&KA(e,i,n),n},Ou,Vf,Nu,xf,ma,ga,Zc,Uf;let Lu=(Uf=class extends Wt{constructor(t,e,i){super(),f(this,Ou),f(this,Nu),m(this,"items"),f(this,ma,void 0),f(this,ga,void 0),f(this,Zc,void 0),v(this,Zc,t),v(this,ma,e),v(this,ga,i),this.items=[]}create(t,e,i=!1,r=!1){return u(this,null,function*(){if(!a(this,Nu,xf))throw new w("Can't create polls without joining room","0705");if(!a(this,ma).permissions.polls.canCreate){l.error("DytePolls::create::permission_denied");return}if(!t||!e){l.error("DytePolls::question_and_options_can_not_be_empty",{dytePolls:{hasQuestion:!!t,optionsLength:e==null?void 0:e.length}});return}if(e.length<2){l.error("DytePolls::there_must_be_at_least_two_options",{dytePolls:{hasQuestion:!!t,optionsLength:e.length}});return}yield a(this,ga).createPoll(t,e,i,r)})}vote(t,e){return u(this,null,function*(){if(!a(this,ma).permissions.polls.canVote){l.error("DytePolls::vote::permission_denied");return}yield a(this,ga).votePoll(t,e)})}},Ou=new WeakSet,Vf=function(){return a(this,Zc).getValue("connectionHandler")},Nu=new WeakSet,xf=function(){var t;return((t=a(this,Ou,Vf))==null?void 0:t.socketJoined)===!0},ma=new WeakMap,ga=new WeakMap,Zc=new WeakMap,Uf);Lu=YA([ut("0700")],Lu);var QA=Object.defineProperty,XA=Object.getOwnPropertyDescriptor,ZA=(t,e,i,r)=>{for(var n=r>1?void 0:r?XA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&QA(e,i,n),n},fa,va,rs,Ff;const ns=(Ff=class{constructor(t,e,i){m(this,"polls"),f(this,fa,void 0),f(this,va,void 0),f(this,rs,void 0),this.polls=new Lu(t,e,i),v(this,va,e),v(this,fa,t),v(this,rs,i),this.setupEvents()}static init(t,e,i){return u(this,null,function*(){return new ns(t,e,i)})}canViewPolls(){return a(this,va).permissions.polls.canView}setupEvents(){const t={[Xi.createPoll]:r=>{r.poll&&this.updatePoll(ns.formatSocketServicePoll(r.poll))},[Xi.updatePoll]:r=>{r.poll&&this.updatePoll(ns.formatSocketServicePoll(r.poll))},[Xi.votePoll]:r=>{r.poll&&this.updatePoll(ns.formatSocketServicePoll(r.poll))}},e=()=>{a(this,fa).getValue("peerSessionStore").on(P.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(t).map(Number).forEach(r=>{a(this,rs).on(r,t[r])})},i=()=>{a(this,fa).getValue("peerSessionStore").on(P.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(t).map(Number).forEach(r=>{a(this,rs).removeListeners(r)})};a(this,va).permissions.on("permissionsUpdate",r=>u(this,null,function*(){var n;(n=r==null?void 0:r.polls)!=null&&n.canView?(yield this.getPolls(),e()):(this.polls.items=[],i())})),this.canViewPolls()&&e()}updatePoll(t){if(!this.canViewPolls())return;const e=this.polls.items.findIndex(i=>i.id===t.id);if(e>-1){const i=JSON.stringify(this.polls.items[e]);this.polls.items[e]=t,i!==JSON.stringify(t)&&this.polls.emit("pollsUpdate",{polls:this.polls.items,newPoll:!1});return}this.polls.items=[...this.polls.items,t],this.polls.emit("pollsUpdate",{polls:this.polls.items,newPoll:!0})}getPolls(){return u(this,null,function*(){const t=yield a(this,rs).getPolls();if(!(t!=null&&t.payload))return;const{polls:e}=lA.fromBinary(t.payload);this.polls.items=e.map(i=>ns.formatSocketServicePoll(i))})}static formatSocketServicePoll(t){const e=t.options.map(i=>({count:i.count,text:i.text,votes:i.votes.map(r=>({id:r.userId,name:r.name}))}));return{anonymous:t.anonymous,createdBy:t.createdBy,createdByUserId:t.createdByUserId,hideVotes:t.hideVotes,id:t.pollId,options:e,question:t.question,voted:t.votes}}},fa=new WeakMap,va=new WeakMap,rs=new WeakMap,Ff);let Bf=ns;ZA([S.trace("PollController.setupEvents")],Bf.prototype,"setupEvents",1);var e1=Object.defineProperty,t1=Object.getOwnPropertyDescriptor,i1=(t,e,i,r)=>{for(var n=r>1?void 0:r?t1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&e1(e,i,n),n},Wf=(t=>(t[t.User=0]="User",t[t.Meeting=1]="Meeting",t))(Wf||{}),ya,ed,Vu,ss,td,jf;let xu=(jf=class extends Wt{constructor(t,e,i,r,n){super(),f(this,ed),m(this,"selfActiveTab"),m(this,"broadcastTabChanges"),f(this,ya,void 0),f(this,ss,void 0),f(this,td,void 0),m(this,"viewType"),m(this,"meetingStartedTimestamp"),m(this,"meetingTitle"),m(this,"sessionId"),v(this,ya,t),v(this,ss,e),this.viewType=i,v(this,td,r),this.meetingTitle=n,this.broadcastTabChanges=e.permissions.canSpotlight}get socketState(){return a(this,ed,Vu).socketState}get mediaState(){return a(this,ed,Vu).mediaState}get meetingId(){return a(this,ya).getValue("meetingId")}setBroadcastTabChanges(t){if(!a(this,ss).permissions.canSpotlight)throw l.error("DyteSpotlight::setSpotlighted::permission_denied"),new w("User does not have permission to toggle spotlight","0801");this.broadcastTabChanges=t,this.emit("broadcastTabChangesUpdate",this.broadcastTabChanges),this.broadcastTabChanges&&this.assertActiveTabToRoom()}setSelfActiveTab(t,e){var i;l.info("DyteSpotlight::setActiveTab",{spotlight:{currentTab:{id:t.id,type:t.type}}}),this.selfActiveTab=t,e===0&&this.emit("selfTabUpdate",t),(i=a(this,ss).permissions)!=null&&i.canSpotlight&&this.broadcastTabChanges&&e===0&&this.assertActiveTabToRoom()}assertActiveTabToRoom(){a(this,td).broadcastMessage("spotlight",{userId:a(this,ss).userId,currentTab:this.selfActiveTab})}},ya=new WeakMap,ed=new WeakSet,Vu=function(){return a(this,ya).getValue("connectionHandler")},ss=new WeakMap,td=new WeakMap,jf);xu=i1([ut("0800")],xu);function r1(t){let e="",i=[""];const r=[i];let n=0,s=0,o=!0,c;for(c of t)c==='"'?(o&&c===e&&(i[n]+=c),o=!o):c===","&&o?c=i[++n]="":c===`
15
- `&&o?(e==="\r"&&(i[n]=i[n].slice(0,-1)),i=r[++s]=[c=""],n=0):i[n]+=c,e=c;return r}var n1=Object.defineProperty,s1=Object.getOwnPropertyDescriptor,Hf=(t,e,i,r)=>{for(var n=r>1?void 0:r?s1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&n1(e,i,n),n};let Sr=class extends Wt{constructor(){super(),m(this,"transcripts"),this.transcripts=[]}static init(t){return u(this,null,function*(){const e=new Sr;try{t&&e.getActiveTranscript()}catch(i){l.error("Error fetching active transcriptions ",i)}return e})}static parseTranscript(t,e=!1){try{if(!t)return;const[[i,r,n,s,o,c]]=r1(t);return{id:jn(),name:o,peerId:r,userId:n,customParticipantId:s,transcript:c,isPartialTranscript:e,date:new Date(parseInt(i,10)*1e3)}}catch(i){l.error(`Failed to parse transcript: ${t}`,i);return}}static parseTranscripts(t){return t?t.split(`
16
- `).map(e=>Sr.parseTranscript(e,!1)).filter(Boolean):[]}getActiveTranscript(){return u(this,null,function*(){try{const t=ht(),{transcript:e}=yield t.getActiveTranscript();this.transcripts=Sr.parseTranscripts(e)}catch(t){}})}onTranscript(t){return u(this,null,function*(){var e;const i=this.transcripts.filter(({peerId:r})=>r===t.peerId);if((e=i==null?void 0:i.at(-1))!=null&&e.isPartialTranscript){const r=i.at(-1);r.transcript=t.transcript,r.isPartialTranscript=t.isPartialTranscript,this.emit("transcript",r);return}this.transcripts=[...this.transcripts,t],this.emit("transcript",t)})}};Hf([S.trace("DyteAi.getActiveTranscript")],Sr.prototype,"getActiveTranscript",1),Sr=Hf([ut("0000")],Sr);var a1=Object.defineProperty,o1=Object.getOwnPropertyDescriptor,c1=(t,e,i,r)=>{for(var n=r>1?void 0:r?o1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&a1(e,i,n),n},cn,Sa,Vi,qf;const Gf=(qf=class{constructor(t,e,i,r,n,s){m(this,"meta"),m(this,"ai"),f(this,cn,void 0),f(this,Sa,void 0),m(this,"aiSocketHandler"),f(this,Vi,void 0),v(this,Vi,t),this.meta=new xu(t,e,e.config.viewType,i,s),this.ai=r,v(this,cn,e),v(this,Sa,i),this.aiSocketHandler=n,e.config.viewType!==Rt.Chat&&this.setupEvents()}static init(t,e,i,r,n){return u(this,null,function*(){const s=yield Sr.init(e.permissions.transcriptionEnabled);return new Gf(t,e,i,s,r,n)})}conditionallySetActiveTab(t){var e;t!=null&&t.currentTab&&((e=this.meta.selfActiveTab)==null?void 0:e.id)!==t.currentTab.id&&(this.meta.setSelfActiveTab(t.currentTab,Wf.Meeting),this.meta.emit("activeTabUpdate",t.currentTab))}setupEvents(){a(this,Vi).getValue("peerSessionStore").on(P.TRANSPORT_STATE_UPDATE,t=>{this.meta.emit("mediaConnectionUpdate",t)}),a(this,Vi).getValue("peerSessionStore").on(P.SOCKET_STATE_UPDATE,t=>{this.meta.emit("socketConnectionUpdate",t)}),a(this,Vi).getValue("peerSessionStore").on(P.ROOM_STATE,({createdAt:t,roomUuid:e})=>{const i=this.meta.meetingStartedTimestamp;if(e&&(this.meta.sessionId=e),t&&!i){const r=new Date(t*1e3);this.meta.meetingStartedTimestamp=r,this.meta.emit("meetingStartTimeUpdate",{meetingStartedTimestamp:this.meta.meetingStartedTimestamp})}}),a(this,Vi).getValue("peerSessionStore").on(P.PRODUCER_SCORE_UPDATE,({score:t})=>{t<5&&this.meta.emit("poorConnection",{score:t})}),a(this,cn).permissions.canSpotlight&&(l.info("DyteMetaController::Asserting Spotlight"),this.meta.selfActiveTab&&a(this,Sa).broadcastMessage("spotlight",{userId:a(this,cn).userId,currentTab:this.meta.selfActiveTab})),a(this,Vi).getValue("peerSessionStore").on(P.PEER_JOINED_INTERNAL,t=>u(this,null,function*(){a(this,cn).permissions.canSpotlight&&this.meta.selfActiveTab&&a(this,Sa).broadcastToPeers("spotlight",[t.id],{userId:a(this,cn).userId,currentTab:this.meta.selfActiveTab})})),a(this,Vi).getValue("peerSessionStore").on(P.ROOM_MESSAGE,t=>{var e,i;let r;if("type"in t){if(t.type!=="spotlight")return;r=L(L({},t),t.payload)}else if("roomMessageType"in t){if(t.roomMessageType!=="spotlight")return;r=t}else return;l.info("Spotlight Assertion Received",{spotlight:{spotlighter:{id:r.userId},currentTab:{id:(e=r.currentTab)==null?void 0:e.id,type:(i=r.currentTab)==null?void 0:i.type}}}),this.conditionallySetActiveTab(r)}),a(this,Vi).getValue("peerSessionStore").on(P.MESSAGE,t=>{var e,i;let r;if("type"in t){if(t.type!=="spotlight")return;r=L(L({},t),t.payload)}else if("roomMessageType"in t){if(t.roomMessageType!=="spotlight")return;r=t}else return;l.info("Spotlight Assertion Received",{spotlight:{spotlighter:{id:r.userId},currentTab:{id:(e=r.currentTab)==null?void 0:e.id,type:(i=r.currentTab)==null?void 0:i.type}}}),this.conditionallySetActiveTab(r)}),this.aiSocketHandler.on(B.transcript,t=>{const{meetingId:e,transcript:i,isPartial:r}=t,n=Sr.parseTranscript(i,r);if(!n){l.warn("Received empty transcript data");return}this.ai.onTranscript(n),this.meta.emit("transcript",n);const{peerId:s,name:o,transcript:c}=n;l.debug(`${e} Received transcript for peer ${s} - ${o}: ${c}`)})}},cn=new WeakMap,Sa=new WeakMap,Vi=new WeakMap,qf);let $f=Gf;c1([S.trace("MetaController.setupEvents")],$f.prototype,"setupEvents",1);var d1=Object.defineProperty,l1=Object.getOwnPropertyDescriptor,dn=(t,e,i,r)=>{for(var n=r>1?void 0:r?l1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&d1(e,i,n),n},yi,Ea,de,id,er,Dt,rd,Uu,Ta,nd;class Er extends Wt{constructor(e,i,r,n,s){super(),f(this,rd),f(this,Ta),f(this,yi,void 0),f(this,Ea,void 0),f(this,de,void 0),f(this,id,void 0),f(this,er,void 0),f(this,Dt,void 0),v(this,Dt,e),v(this,yi,n),v(this,Ea,s),v(this,de,i),v(this,id,r),v(this,er,[]),this.setupEvents()}get status(){return a(this,Dt).getValue("stageStatus")}setupEvents(){const e={[P.GET_STAGE_REQUESTS]:n=>u(this,null,function*(){v(this,er,n)}),[P.UPDATE_STAGE_REQUESTS]:n=>u(this,[n],function*({add:s}){const o=a(this,er).length,{stageRequests:c}=this.getAccessRequests();(s||c.length>o)&&this.emit("newStageRequest",{count:c.length}),this.emit("stageAccessRequestUpdate",c)})},i=()=>{Object.entries(e).forEach(([n,s])=>{a(this,Dt).getValue("peerSessionStore").onAsync(n,s)})},r=()=>{Object.entries(e).forEach(([n,s])=>{a(this,Dt).getValue("peerSessionStore").removeListener(n,s)})};a(this,de).permissions.on("permissionsUpdate",n=>{const{canAcceptProductionRequests:s}=n;s!==void 0&&(a(this,de).permissions.acceptStageRequests?(i(),a(this,yi).getStageRequests()):(r(),v(this,er,[]),this.emit("stageAccessRequestUpdate",a(this,er))))}),a(this,de).permissions.acceptStageRequests&&i()}getAccessRequests(){if(!a(this,de).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");if(!a(this,de).permissions.acceptStageRequests)throw l.error("DyteStage::get_access_request::permission_denied"),new w("You do not have permission to perform this action","2001");const e=a(this,id).joined.toArray().filter(i=>i.stageStatus==="REQUESTED_TO_JOIN_STAGE").map(i=>({displayName:i.name,userId:i.userId,peerId:i.id}));return v(this,er,e),{stageRequests:a(this,er)}}requestAccess(){return u(this,null,function*(){if(!a(this,de).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");if(this.status!=="OFF_STAGE")throw new w(`Unable to request access you are currently ${this.status}`,"2006");if(a(this,de).permissions.stageAccess===H.Allowed){F(this,Ta,nd).call(this,"ACCEPTED_TO_JOIN_STAGE");return}a(this,yi).requestAccess(),F(this,Ta,nd).call(this,"REQUESTED_TO_JOIN_STAGE")})}cancelRequestAccess(){return u(this,null,function*(){if(!a(this,de).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");a(this,yi).cancelRequestAccess(),F(this,Ta,nd).call(this,"OFF_STAGE")})}grantAccess(e){if(!a(this,de).roomJoined)throw new w("Can`t grant for participant without joining room");if(!a(this,de).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");if(!a(this,de).permissions.acceptStageRequests)throw l.error("DyteStage::grant_access::permission_denied"),new w("You do not have permission to perform this action","2001");return a(this,yi).grantAccess(e)}denyAccess(e){if(!a(this,de).roomJoined)throw new w("Can`t rejectRequestToJoinStage for participant without joining room","2005");if(!a(this,de).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");if(!a(this,de).permissions.acceptStageRequests)throw l.error("DyteStage::deny_access::permission_denied"),new w("You do not have permission to perform this action","2001");return a(this,yi).denyAccess(e)}join(){return u(this,null,function*(){const e=a(this,Dt).getValue("viewType");if(this.status==="ON_STAGE")throw new w("You are already on stage.","2006");if(this.status!=="ACCEPTED_TO_JOIN_STAGE"||a(this,de).permissions.stageAccess===H.NotAllowed)throw new w(`Unable to join stage you are currently ${this.status}`,"2006");if(yield a(this,yi).joinStage(),e===Rt.Livestream){yield a(this,Ea).joinRoom(a(this,de));const{peers:i}=yield a(this,Ea).getStagePeers();a(this,Dt).getValue("peerSessionStore").emit(P.SOCKET_PEERS,i)}a(this,Dt).setValue("stageStatus","ON_STAGE"),a(this,de).audioEnabled&&a(this,rd,Uu).shareMic(a(this,de).audioTrack),a(this,de).videoEnabled&&a(this,rd,Uu).shareWebcam(a(this,de).videoTrack)})}leave(){return u(this,null,function*(){if(!a(this,de).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");if(!(this.status==="ON_STAGE"||this.status==="ACCEPTED_TO_JOIN_STAGE"))throw new w(`Unable to leave stage you are currently ${this.status}`,"2006");a(this,de).setIsPinned(!1),yield a(this,yi).leaveStage(a(this,de).userId),a(this,Dt).setValue("stageStatus","OFF_STAGE",!1),yield a(this,Dt).getValue("peerSessionStore").emitAsync(P.LEAVE_MEDIA_ROOM,"stageLeft"),a(this,Dt).notify("stageStatus")})}kick(e){return u(this,null,function*(){if(!a(this,de).roomJoined)throw new w("Can`t kick participant without joining room","2005");if(!a(this,de).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");if(!a(this,de).permissions.acceptStageRequests)throw l.error("DyteStage::kick::permission_denied"),new w("You do not have permissions for kick","2001");return a(this,yi).kick(e)})}}yi=new WeakMap,Ea=new WeakMap,de=new WeakMap,id=new WeakMap,er=new WeakMap,Dt=new WeakMap,rd=new WeakSet,Uu=function(){return a(this,Dt).getValue("roomNodeClient")},Ta=new WeakSet,nd=function(t){return u(this,null,function*(){this.status!==t&&a(this,Dt).setValue("stageStatus",t)})},dn([S.trace("DyteStage.getStageRequests")],Er.prototype,"getAccessRequests",1),dn([S.trace("DyteStage.requestAccess")],Er.prototype,"requestAccess",1),dn([S.trace("DyteStage.cancelRequestAccess")],Er.prototype,"cancelRequestAccess",1),dn([S.trace("DyteStage.grantAccess")],Er.prototype,"grantAccess",1),dn([S.trace("DyteStage.denyAccess")],Er.prototype,"denyAccess",1),dn([S.trace("DyteStage.joinStage")],Er.prototype,"join",1),dn([S.trace("DyteStage.leaveStage")],Er.prototype,"leave",1);function u1(t){return!(t.viewType==="LIVESTREAM"||t.viewType==="CHAT")}function Fu(t){switch(t){case Yi.UNSPECIFIED:return"OFF_STAGE";case Yi.REQUESTED_STAGE:return"REQUESTED_TO_JOIN_STAGE";case Yi.APPROVED_STAGE:return"ACCEPTED_TO_JOIN_STAGE";case Yi.OFF_STAGE:return"OFF_STAGE";case Yi.ON_STAGE:return"ON_STAGE";default:return"OFF_STAGE"}}var h1=Object.defineProperty,p1=Object.getOwnPropertyDescriptor,m1=(t,e,i,r)=>{for(var n=r>1?void 0:r?p1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&h1(e,i,n),n},ln,as,un,sd,si;class Jf{constructor(e,i,r,n,s){m(this,"stage"),f(this,ln,void 0),f(this,as,void 0),f(this,un,void 0),f(this,sd,0),f(this,si,void 0),v(this,si,e),this.stage=new Er(e,n,s,i,r),v(this,un,i),v(this,ln,n),v(this,as,s),this.setupEvents()}setupEvents(){a(this,si).subscribe("stageStatus",e=>{this.stage.emit("stageStatusUpdate",e)}),a(this,un).on(B.grantStageAccess,()=>{a(this,ln).permissions.stageAccess!==H.Allowed&&(this.stage.emit("stageRequestApproved"),this.setStageStatus("ACCEPTED_TO_JOIN_STAGE"))}),a(this,un).on(B.peerStageStatusUpdate,e=>{e!==void 0&&(e.peerId===a(this,ln).id?this.selfStageStatusHandler(e):this.peerStageStatusHandler(e))}),a(this,un).on(B.denyStageAccess,()=>{a(this,ln).permissions.stageAccess!==H.Allowed&&(this.stage.emit("stageRequestRejected"),this.setStageStatus("OFF_STAGE"))}),a(this,un).on(B.getStageRequests,e=>u(this,null,function*(){var i;if(a(this,ln).permissions.stageAccess!==H.Allowed)return;const r=(i=e==null?void 0:e.stageRequests)!=null?i:[];yield a(this,si).getValue("peerSessionStore").emitAsync(P.GET_STAGE_REQUESTS,r),a(this,sd)<r.length&&r.length>0&&this.stage.emit("newStageRequest",{count:r.length}),v(this,sd,r.length),this.stage.emit("stageAccessRequestUpdate",r)}))}getCurrentStageRequests(){return a(this,as).joined.toArray().filter(e=>e.stageStatus==="REQUESTED_TO_JOIN_STAGE").map(e=>({displayName:e.name,userId:e.userId,peerId:e.id}))}setStageStatus(e){return u(this,null,function*(){this.stage.status!==e&&a(this,si).setValue("stageStatus",e)})}selfStageStatusHandler(e){const i=Fu(e.stageType),r=a(this,si).getValue("stageStatus");if(r!==i)switch(e.stageType){case 1:a(this,si).setValue("stageStatus","ACCEPTED_TO_JOIN_STAGE",!1),this.stage.join();break;case 2:case 3:this.setStageStatus(r);break;case 0:case 4:default:a(this,si).setValue("stageStatus","ACCEPTED_TO_JOIN_STAGE",!1),this.stage.leave();break}}peerStageStatusHandler(e){return u(this,null,function*(){const i=a(this,as).joined.get(e.peerId),r=a(this,as).viewMode==="ACTIVE_GRID";if(!i){l.warn("err::peerStageStatusUpdate: participant not found");return}switch(e.stageType){case 1:i.setStageStatus("ON_STAGE"),r&&a(this,si).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE);break;case 2:i.setStageStatus("ACCEPTED_TO_JOIN_STAGE");break;case 3:i.setStageStatus("REQUESTED_TO_JOIN_STAGE");break;case 0:case 4:default:i.setStageStatus("OFF_STAGE"),r&&a(this,si).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE);break}a(this,si).getValue("peerSessionStore").emit(P.UPDATE_PEER_STAGE_STATUS,{id:i.id,status:i.stageStatus})})}}ln=new WeakMap,as=new WeakMap,un=new WeakMap,sd=new WeakMap,si=new WeakMap,m1([S.trace("DyteStage.setupEvents")],Jf.prototype,"setupEvents",1);var g1=Object.defineProperty,f1=Object.getOwnPropertyDescriptor,ad=(t,e,i,r)=>{for(var n=r>1?void 0:r?f1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&g1(e,i,n),n};const Ve={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 Tt,ai,ka,ba,Tr,_a,os,wa,Kf;let cs=(Kf=class extends Yn{constructor(t,{baseURL:e,createdAt:i,description:r,id:n,name:s,organizationId:o,picture:c,private:d,published:h,staggered:p,tags:g,type:y,updatedAt:T},b,O,R,x,G){super(),f(this,Tt,void 0),m(this,"baseURL"),m(this,"createdAt"),m(this,"description"),m(this,"id"),m(this,"name"),f(this,ai,void 0),f(this,ka,void 0),f(this,ba,void 0),m(this,"organizationId"),m(this,"picture"),m(this,"private"),m(this,"published"),m(this,"staggered"),m(this,"tags"),m(this,"type"),m(this,"updatedAt"),f(this,Tr,void 0),m(this,"config"),f(this,_a,void 0),m(this,"active"),m(this,"iframes"),m(this,"enabledBy"),f(this,os,void 0),f(this,wa,void 0),v(this,os,t),this.baseURL=e,this.createdAt=new Date(i),this.description=r,this.id=n,this.name=s,v(this,ai,O),this.organizationId=o,this.picture=c,this.private=d,this.published=h,this.staggered=p,this.tags=g,this.type=y,this.updatedAt=new Date(T),this.active=!1,this.iframes=new Map,v(this,Tt,b),v(this,ka,R),v(this,ba,x),this.enabledBy="",v(this,wa,G)}sendIframeEvent(t){this.iframes.size&&this.iframes.forEach(e=>{const{iframe:i}=e;i&&(navigator.isReactNative?i.postMessage(JSON.stringify(t)):i.contentWindow.postMessage(t,"*"))})}handleIframeMessage(t){return u(this,null,function*(){var e;if(!this.active)return;const i=t,{payload:r,uuid:n,type:s}=i;switch(s){case K.customPluginEventToRoom:{a(this,Tt).customPluginEventToRoom(this.id,r,n);break}case K.customPluginEventToPeers:{a(this,Tt).customPluginEventToPeers(this.id,r.peerIds,r,n);break}case K.enablePluginForRoom:{a(this,Tt).enablePluginForRoom(this.id,n);break}case K.enablePluginForPeers:{a(this,Tt).enablePluginForPeers(this.id,r.peerIds,n);break}case K.disablePluginForRoom:{a(this,Tt).disablePluginForRoom(this.id,n);break}case K.disablePluginForPeers:{a(this,Tt).disablePluginForPeers(this.id,r.peerIds,n);break}case K.storeInsertKeys:{a(this,Tt).storeInsertKeys(this.id,r.store,r.insertKeys,n);break}case K.storeGetKeys:{a(this,Tt).storeGetKeys(this.id,r.store,r.getKeys,n);break}case K.storeDeleteKeys:{a(this,Tt).storeDeleteKeys(this.id,r.store,r.deleteKeys,n);break}case K.storeDelete:{a(this,Tt).storeDelete(this.id,r.store,n);break}case Ve.chatMessage:{const{messagePayload:o,peerIds:c}=r;if(!a(this,ba)){this.sendIframeEvent({type:Ve.chatMessage,uuid:i.uuid,payload:{error:"Chat is disabled for this room."}});return}try{yield a(this,ba).sendMessage(o,c),this.sendIframeEvent({type:Ve.chatMessage,uuid:i.uuid,payload:{success:!0}})}catch(d){this.sendIframeEvent({type:Ve.chatMessage,uuid:i.uuid,payload:{error:d}})}break}case Ve.getPeer:{let o;const{peerId:c}=r,d=j(L({},a(this,ai)),{id:a(this,ai).id,isRecorder:(e=a(this,ai).permissions)==null?void 0:e.isRecorder,isHidden:a(this,ai).permissions.hiddenParticipant,stageStatus:a(this,ai).stageStatus});c?(o=a(this,ka).joined.get(r.peerId),a(this,ai).id===c&&(o=d)):o=d,this.sendIframeEvent({type:Ve.getPeer,payload:{peer:o&&Kc(o)},uuid:i.uuid});break}case Ve.getPeers:{const o=a(this,ka).joined.toArray().map(c=>Kc(c));this.sendIframeEvent({type:Ve.getPeers,payload:{peers:o},uuid:i.uuid});break}case Ve.getPluginInitiator:{this.sendIframeEvent({type:Ve.getPluginInitiator,payload:{enabledBy:this.enabledBy},uuid:i.uuid});break}case Ve.getDisplayTitle:{this.sendIframeEvent({type:Ve.getDisplayTitle,payload:{displayTitle:a(this,wa)},uuid:i.uuid});break}case Ve.getRoomName:{this.sendIframeEvent({type:Ve.getRoomName,payload:{roomName:a(this,os).getValue("meetingId")},uuid:i.uuid});break}case Ve.customPluginEventToParent:{this.emit(i.payload.eventName,i.payload.data);break}}})}sendData(t){this.active&&(l.info("DytePlugin::SendData",{plugin:{id:this.id,name:this.name,data:{eventName:t.eventName}}}),this.sendIframeEvent({type:Ve.sendData,uuid:"",payload:t}))}removePluginView(t="default"){var e;const{iframe:i,listener:r}=(e=this.iframes.get(t))!=null?e:{};(i||r)&&(navigator.isReactNative?i.props.onMessage=void 0:window.removeEventListener("message",r),this.iframes.delete(t))}addPluginView(t,e="default"){var i;if(!a(this,_a))throw l.error("DytePlugin::addPluginView::no_auth_token_set_for_plugin"),new w("No auth token set for plugin.","0602");if(!t)throw l.error("DytePlugin::addPluginView::iframe_was_not_provided"),new w("Iframe was not provided.","0603");this.removePluginView(e);const r=t,n=new URL(this.baseURL),s={auth:a(this,_a),parent:navigator.isReactNative?this.baseURL:window.location.origin,backend:a(this,os).getValue("apiBase"),pluginId:this.id,roomName:(i=a(this,os).getValue("meetingId"))!=null?i:"",displayTitle:a(this,wa)};if(Object.keys(s).forEach(o=>{n.searchParams.set(o,s[o])}),r.src=n.href,r.allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",r.title=e,navigator.isReactNative)r.props.onMessage=o=>{this.handleIframeMessage(JSON.parse(o.nativeEvent.data))},this.iframes.set(e,{iframe:r});else{const o=c=>u(this,null,function*(){c.source===t.contentWindow&&(yield this.handleIframeMessage(c.data))});window.addEventListener("message",o),this.iframes.set(e,{iframe:r,listener:o})}}setActive(t){var e,i;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:(i=this.config)==null?void 0:i.views})}activateForSelf(){return u(this,null,function*(){const t=ht(),e=yield t.authorizePlugin(this.id);v(this,_a,e),v(this,Tr,new Date);try{const i=yield t.getPluginConfig(this.baseURL);this.config=i}catch(i){l.error("DytePlugin::activateForSelf",{error:i})}this.setActive(!0),this.emit("enabled")})}deactivateForSelf(){Array.from(this.iframes.keys()).forEach(t=>{this.removePluginView(t)}),v(this,Tr,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=a(this,ai).permissions)==null?void 0:t.plugins)!=null&&e.canStart&&(a(this,Tt).addPlugin(this.id,this.staggered),v(this,Tr,new Date),l.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=a(this,ai).permissions)==null?void 0:t.plugins)!=null&&e.canClose)&&this.enabledBy!==a(this,ai).id||(a(this,Tt).removePlugin(this.id),l.info("plugin::deactivated",{plugin:{id:this.id,name:this.name,duration:a(this,Tr)?new Date().getTime()-a(this,Tr).getTime():0}}),v(this,Tr,void 0)))})}},Tt=new WeakMap,ai=new WeakMap,ka=new WeakMap,ba=new WeakMap,Tr=new WeakMap,_a=new WeakMap,os=new WeakMap,wa=new WeakMap,Kf);ad([At({maxInvocations:5,period:1})],cs.prototype,"sendData",1),ad([S.trace("DytePlugin.activatePlugin")],cs.prototype,"activate",1),ad([S.trace("DytePlugin.deactivatePlugin")],cs.prototype,"deactivate",1),cs=ad([ut("0600")],cs);var Je,ds;class zf extends Map{constructor(e){const{onAddEvent:i,onDeleteEvent:r,onClearEvent:n}=e;super(),f(this,Je,void 0),f(this,ds,void 0),m(this,"onAddEvent"),m(this,"onDeleteEvent"),m(this,"onClearEvent"),v(this,Je,new Yn),this.onAddEvent=i,this.onDeleteEvent=r,this.onClearEvent=n,v(this,ds,new Map)}emit(e,...i){return a(this,Je).emit(e,...i)}on(e,i){return a(this,Je).on(e,i)}addListener(e,i){return a(this,Je).addListener(e,i)}off(e,i){return a(this,Je).off(e,i)}once(e,i){return a(this,Je).once(e,i)}prependListener(e,i){return a(this,Je).prependListener(e,i)}prependOnceListener(e,i){return a(this,Je).prependOnceListener(e,i)}removeListener(e,i){return a(this,Je).removeListener(e,i)}removeAllListeners(e){return a(this,Je).removeAllListeners(e)}listeners(e){return a(this,Je).listeners(e)}listenerCount(e){return a(this,Je).listenerCount(e)}getMaxListeners(){return a(this,Je).getMaxListeners()}setMaxListeners(e){return a(this,Je).setMaxListeners(e)}eventNames(){return a(this,Je).eventNames()}add(e,i=!0){return this.set(e.id,e,i)}set(e,i,r=!0){const n=super.set(e,i),s=(o,...c)=>{this.emit(o,i,...c)};return a(this,ds).set(e,s),i.on("*",s),r&&a(this,Je).emit(this.onAddEvent,i),n}delete(e,i=!0,r=!1){const n=this.get(e);if(!n)return!1;n.removeListener("*",a(this,ds).get(e));const s=super.delete(e);return r&&n.removeAllListeners(),i&&a(this,Je).emit(this.onDeleteEvent,n),s}clear(e=!0,i=!1){this.forEach(n=>{n.removeListener("*",a(this,ds).get(n.id)),i&&n.removeAllListeners()});const r=super.clear();return e&&a(this,Je).emit(this.onClearEvent),r}toArray(){return Array.from(this.values())}}Je=new WeakMap,ds=new WeakMap;class Yf extends zf{constructor(){super({onAddEvent:"pluginAdded",onDeleteEvent:"pluginDeleted"})}add(e,i=!0){return super.add(e,i)}delete(e,i=!0,r=!1){return super.delete(e,i,r)}}var v1=Object.defineProperty,y1=Object.getOwnPropertyDescriptor,S1=(t,e,i,r)=>{for(var n=r>1?void 0:r?y1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&v1(e,i,n),n};let Bu=class{constructor(){m(this,"all"),m(this,"active"),this.all=new Yf,this.active=new Yf}};Bu=S1([ut("0600")],Bu);var E1=Object.defineProperty,T1=Object.getOwnPropertyDescriptor,od=(t,e,i,r)=>{for(var n=r>1?void 0:r?T1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&E1(e,i,n),n},Si,Ia,kr,Qf;const Xf=(Qf=class{constructor(t,e,i,r){m(this,"plugins"),f(this,Si,void 0),f(this,Ia,void 0),f(this,kr,void 0),v(this,Si,e),v(this,Ia,i),v(this,kr,t),this.plugins=r,this.setupEvents()}static init(t,e,i,r,n,s,o,c){return u(this,null,function*(){const d=new Bu;return e.forEach(h=>{const p=new cs(t,h,i,s,o,n,c);d.all.add(p)}),new Xf(t,i,r,d)})}getRoomPlugins(){return u(this,null,function*(){var t;const{plugins:e}=yield a(this,Si).getActivePlugins();(t=this.plugins.active)==null||t.toArray().forEach(i=>{this.disablePlugin({id:i.id})}),yield Promise.all(e.map(i=>this.enablePlugin({id:i.pluginId,enabledBy:i.enabledBy})))})}enablePlugin(t){return u(this,arguments,function*({id:e,enabledBy:i}){const r=this.plugins.all.get(e);r&&(yield r.activateForSelf(),r.enabledBy=i)})}disablePlugin(t){return u(this,arguments,function*({id:e}){const i=this.plugins.all.get(e);i&&i.deactivateForSelf()})}sendIframeEvent(t,e,i,r){const n=this.plugins.all.get(e);n&&n.sendIframeEvent({type:t,uuid:i,payload:r})}broadcastIframeEvent(t,e){this.plugins.active.forEach(i=>{this.sendIframeEvent(t,i.id,"",e)})}setupEvents(){this.plugins.all.on("stateUpdate",({active:t,id:e})=>{if(t){this.plugins.active.add(this.plugins.all.get(e));return}this.plugins.active.delete(e)}),a(this,kr).getValue("peerSessionStore").onAsync(P.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){yield this.getRoomPlugins(),l.debug("[SOCKET_SERVICE_ROOM_JOINED] resolved request to fetch plugins.")})),a(this,Si).on(K.addPlugin,t=>u(this,null,function*(){var e;const i=t.pluginId;(e=this.plugins.all.get(i))!=null&&e.active||(yield this.enablePlugin({id:i,enabledBy:t.enabledBy}))})),a(this,Si).on(K.removePlugin,t=>u(this,null,function*(){var e;const i=t.pluginId;(e=this.plugins.all.get(i))!=null&&e.active&&(yield this.disablePlugin({id:i}))})),[K.enablePluginForPeers,K.enablePluginForRoom].forEach(t=>{a(this,Si).on(t,(e,i)=>u(this,null,function*(){this.sendIframeEvent(t,e.pluginId,i,{enabledBy:e.enabledBy})}))}),[K.disablePluginForPeers,K.disablePluginForRoom].forEach(t=>{a(this,Si).on(t,(e,i)=>u(this,null,function*(){this.sendIframeEvent(t,e.pluginId,i,{disabledBy:e.disabledBy})}))}),[K.customPluginEventToPeers,K.customPluginEventToRoom].forEach(t=>{a(this,Si).on(t,(e,i)=>u(this,null,function*(){this.sendIframeEvent(t,e.pluginId,i,{data:JSON.parse(new TextDecoder().decode(e.pluginData))})}))}),[K.storeInsertKeys,K.storeGetKeys,K.storeDeleteKeys].forEach(t=>{a(this,Si).on(t,(e,i)=>u(this,null,function*(){var r;const n=(r=e.storeItems)==null?void 0:r.map(s=>{var o;return{timestamp:s.timestamp,peerId:s.peerId,payload:JSON.parse((o=s.payload)!=null&&o.length?new TextDecoder().decode(s.payload):"{}"),key:s.storeKey}});this.sendIframeEvent(t,e.pluginId,i,{storeName:e.storeName,storeItems:n})}))}),a(this,Si).on(K.storeDelete,(t,e)=>u(this,null,function*(){this.sendIframeEvent(K.storeDelete,t.pluginId,e,{storeName:t.storeName})})),a(this,Ia).on(Oe.sendMessageToPeers,t=>{const e=Zi==null?void 0:Zi.formatSocketServiceMessage(t.message);this.broadcastIframeEvent(Ve.chatMessage,{message:e})}),a(this,Ia).on(Oe.sendMessageToRoom,t=>{const e=Zi==null?void 0:Zi.formatSocketServiceMessage(t.message);this.broadcastIframeEvent(Ve.chatMessage,{message:e})}),a(this,kr).getValue("peerSessionStore").on(P.PEER_JOINED_INTERNAL,t=>{const e=Kc(t);this.broadcastIframeEvent(Ve.peerJoined,e)}),a(this,kr).getValue("peerSessionStore").on(P.PEER_CLOSED,t=>{this.broadcastIframeEvent(Ve.peerLeft,t)}),a(this,kr).getValue("peerSessionStore").on(P.UPDATE_PEER_STAGE_STATUS,t=>{this.broadcastIframeEvent(Ve.peerStageStatusUpdate,t)}),a(this,kr).subscribe("stageStatus",t=>{this.broadcastIframeEvent(Ve.stageStatusUpdate,t)})}},Si=new WeakMap,Ia=new WeakMap,kr=new WeakMap,Qf);let Ca=Xf;od([S.trace("PluginController.getRoomPlugins")],Ca.prototype,"getRoomPlugins",1),od([S.trace("PluginController.enableForSelf")],Ca.prototype,"enablePlugin",1),od([S.trace("PluginController.disableForSelf")],Ca.prototype,"disablePlugin",1),od([S.trace("PluginController.setupEvents")],Ca.prototype,"setupEvents",1);var cd;class k1{constructor(e){m(this,"mediaJoined"),m(this,"socketJoined"),m(this,"socketJoinAttempted"),m(this,"mediaJoinAttempted"),m(this,"socketState"),m(this,"mediaState"),f(this,cd,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},v(this,cd,e)}get joinAttempted(){return this.mediaJoinAttempted||this.socketJoinAttempted}get roomJoined(){return this.mediaJoined&&this.socketJoined}updateSocketConnectionState(e,i){let r;const{reconnected:n}=this.socketState;switch(e){case"connected":r={state:"connected",reconnected:n,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:n,reconnectionAttempt:0};break;case"reconnectAttempt":r={state:"reconnecting",reconnected:n,reconnectionAttempt:i};break;case"failed":r={state:"failed",reconnected:n,reconnectionAttempt:void 0},this.socketJoined=!1;break}r&&(a(this,cd).getValue("peerSessionStore").emit(P.SOCKET_STATE_UPDATE,r),this.socketState=r)}}cd=new WeakMap;var b1=Object.defineProperty,_1=Object.getOwnPropertyDescriptor,Pa=(t,e,i,r)=>{for(var n=r>1?void 0:r?_1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&b1(e,i,n),n},Ra,dd,Ma,ld,Zf;let hn=(Zf=class extends Wt{constructor(t,e){super(),f(this,Ma),f(this,Ra,void 0),f(this,dd,void 0),m(this,"recordingPeerIds",[]),m(this,"recordings",[]),v(this,dd,t),v(this,Ra,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"}updateRecordings(t){this.recordings=t,this.emit("recordingUpdate",this.recordingState)}start(t){return u(this,null,function*(){if(!a(this,Ra).permissions.canRecord)throw l.error("DyteRecording::start::permission_denied"),new w("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 l.error("DyteRecording::start::recording_in_progress",{recording:{state:this.recordingState}}),new w(`Cant start recording, recordingState irregular: ${this.recordingState}`,"1005");try{const e=ht(),{recording:i={}}=a(this,dd).getValue("defaults"),r=yield e.startRecording(i,t==null?void 0:t.allowMultiple);this.updateRecordings([...this.recordings,{id:r,state:"STARTING",type:"BROWSER"}])}catch(e){throw l.error("DyteRecording::stop::recording_failed_to_start",{error:e}),new w("Error while starting recording","1000")}})}stop(t){return u(this,null,function*(){yield F(this,Ma,ld).call(this,"stop",["RECORDING","PAUSED"],t)})}pause(t){return u(this,null,function*(){yield F(this,Ma,ld).call(this,"pause",["RECORDING"],t)})}resume(t){return u(this,null,function*(){yield F(this,Ma,ld).call(this,"resume",["PAUSED"],t)})}},Ra=new WeakMap,dd=new WeakMap,Ma=new WeakSet,ld=function(t,e,i){return u(this,null,function*(){if(!a(this,Ra).permissions.canRecord)throw l.error("DyteRecording::stop::permission_denied"),new w("User does not have permission to stop recording","1001");let r=[];if(i!==void 0){const n=this.recordings.find(s=>s.id===i);if(n===void 0)throw new w("Could not find the specified recording","1004");if(e.includes(n.state)){l.error("DyteRecording::stop::recording_not_in_expected_state",{recording:{state:n.state}});return}r.push(n)}else r=this.recordings.filter(n=>e.includes(n.state));r.forEach(n=>u(this,null,function*(){const s=n.state;t==="stop"&&(n.state="STOPPING",this.emit("recordingUpdate","STOPPING"));try{yield ht().updateRecording(n.id,t)}catch(o){throw l.error("DyteRecording::stop::recording_failed_to_stop",{error:o}),n.state!==s&&(n.state=s,this.emit("recordingUpdate",s)),new w("Error while stopping recording","1000")}}))})},Zf);Pa([S.trace("DyteRecording.start")],hn.prototype,"start",1),Pa([S.trace("DyteRecording.stop")],hn.prototype,"stop",1),Pa([S.trace("DyteRecording.stop")],hn.prototype,"pause",1),Pa([S.trace("DyteRecording.stop")],hn.prototype,"resume",1),hn=Pa([ut("1000")],hn);var w1=Object.defineProperty,I1=Object.getOwnPropertyDescriptor,C1=(t,e,i,r)=>{for(var n=r>1?void 0:r?I1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&w1(e,i,n),n},ud;class ev{constructor(e,i,r){m(this,"recording"),m(this,"room"),f(this,ud,void 0),v(this,ud,e),this.recording=new hn(e,i),this.room=r,this.setupEvents()}getRecordingTypeFromProtoType(e){let i;switch(e){case tn.BROWSER:i="BROWSER";break;case tn.COMPOSITE:i="COMPOSITE";break;case tn.TRACK:i="TRACK";break;default:i="BROWSER"}return i}setupEvents(){a(this,ud).getValue("peerSessionStore").on(P.ROOM_STATE,e=>{e.activeRecordings.length!==0?this.recording.updateRecordings(e.activeRecordings.map(i=>{const r=this.getRecordingTypeFromProtoType(i.recordingType);return{id:i.recordingId,state:i.recordingStatus,type:r}})):this.recording.recordings.length&&this.recording.updateRecordings([])}),this.room.on(B.recordingStarted,e=>{let i=!1;const r=[...this.recording.recordings];if(r.forEach(n=>{n.id===e.recordingId&&(i=!0,n.state="RECORDING")}),i===!1){const n=this.getRecordingTypeFromProtoType(e.recordingType);r.push({id:e.recordingId,state:"RECORDING",type:n})}this.recording.updateRecordings(r)}),this.room.on(B.recordingPaused,e=>{const i=[...this.recording.recordings];i.forEach(r=>{r.id===e.recordingId&&(r.state="PAUSED")}),this.recording.updateRecordings(i)}),this.room.on(B.recordingStopped,e=>{const i=[...this.recording.recordings.filter(r=>r.id!==e.recordingId)];this.recording.updateRecordings(i)})}}ud=new WeakMap,C1([S.trace("RecordingController.setupEvents")],ev.prototype,"setupEvents",1);class P1{static hasFeature(e){var i;return(i=z.hasFeature(e))!=null?i:!1}static getFeatureValue(e){return z.getValue(e)}static getAllFeatures(){return z.getAllFlags()}}class Wu{constructor(e,i,r){m(this,"logger"),m(this,"features"),m(this,"browserSpecs"),m(this,"callStats"),this.logger=e,this.features=i,this.browserSpecs=Ie,this.callStats=r}static init(e){return new Wu(l,P1,e)}}class ju{constructor(e){m(this,"internals"),this.internals=e}static init(){return u(this,null,function*(){const e=Wu.init(J);return new ju(e)})}}var R1=Object.defineProperty,M1=Object.getOwnPropertyDescriptor,Ht=(t,e,i,r)=>{for(var n=r>1?void 0:r?M1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&R1(e,i,n),n},Xe,Me,Ce,br,Ei,hd,pd;class Ot extends Yn{constructor(e,i,r=Hu,n=!0){super(),f(this,Xe,void 0),f(this,Me,void 0),f(this,Ce,void 0),f(this,br,void 0),f(this,Ei,void 0),f(this,hd,void 0),f(this,pd,void 0),m(this,"audioUpdateInProgress"),m(this,"videoUpdateInProgress"),v(this,pd,e),this.audioUpdateInProgress=!1,this.videoUpdateInProgress=!1,v(this,Xe,new rv(e,i)),v(this,Me,new X1(a(this,Xe),void 0,r)),v(this,Ce,new sD(a(this,Xe),void 0,r)),v(this,Ei,new iD(a(this,pd),a(this,Xe))),v(this,br,new eD(a(this,Xe))),v(this,hd,n),a(this,Me).on("trackMuted",this.onAudioTrackMuted.bind(this)),a(this,Me).on("trackChanged",this.onAudioTrackChanged.bind(this)),a(this,Ce).on("trackChanged",this.onVideoTrackChanged.bind(this)),a(this,Ce).on("trackEnded",this.onVideoTrackEnded.bind(this)),a(this,Ei).on("trackEnded",this.onScreenShareEnded.bind(this)),this.onVisibilityChange=this.onVisibilityChange.bind(this),document.addEventListener("visibilitychange",this.onVisibilityChange)}onVisibilityChange(){return u(this,null,function*(){J.tabChanged(document.visibilityState==="visible"),document.visibilityState!=="visible"?J.browserBackgrounded():(J.browserForegrounded(),yield this.setupSpeaker())})}repopulateAvailableDevices(){return u(this,null,function*(){return!0})}setupStreams(e){return u(this,arguments,function*({audio:i,video:r}){var n;i?J.audioOn():J.audioOff(),r?J.videoOn():J.videoOff();let s,o;if(i&&r)try{const c=yield a(this,Xe).getAudioAndVideoTrack(a(this,Me).userSelectedDevice,a(this,Ce).userSelectedDevice);s=c.audioTrack,o=c.videoTrack}catch(c){l.error("LocalMediaHandler::init::Failed to get audio video tracks",{error:c})}if(!s&&i)try{s=yield a(this,Xe).getAudioTrack(!1,a(this,Me).userSelectedDevice)}catch(c){l.error("LocalMediaHandler::init::Failed to get audio track",{error:c})}if(!o&&r)try{o=yield a(this,Xe).getVideoTrack(a(this,Ce).userSelectedDevice)}catch(c){l.error("LocalMediaHandler::init::Failed to get video track",{error:c})}i&&!s&&J.audioOff(),r&&!o&&J.videoOff(),yield a(this,Me).setMediaTrack(s),yield a(this,Ce).setMediaTrack(o);try{this.setupSpeaker()}catch(c){}if(o){const c=yield this.getDeviceById(o.getSettings().deviceId);J.selectedDevice("VIDEO",c)}if(s){const c=yield this.getDeviceById(s.getSettings().deviceId);J.selectedDevice("AUDIO",c)}(n=a(this,br).currentDevice)!=null&&n.deviceId&&J.selectedDevice("SPEAKER",a(this,br).currentDevice),a(this,Xe).onDeviceChange((c,d,h)=>{this.onDeviceChange(d,h)})})}getCurrentDevices(){return{audio:a(this,Me).currentDevice,video:a(this,Ce).currentDevice,speaker:a(this,br).currentDevice}}get permissions(){return a(this,Xe).permissions}getAllDevices(){return a(this,Xe).getAvailableDevices()}getDeviceById(e,i){return a(this,Xe).getDevice(e)}onAudioTrackMuted(){this.emit("AUDIO_TRACK_SILENT")}onAudioTrackChanged(){this.emit("AUDIO_TRACK_CHANGE")}get rawAudioTrack(){return a(this,Me).mediaTrack}get audioTrack(){return a(this,Me).transformedMediaTrack}get audioEnabled(){return a(this,Me).trackEnabled}enableAudio(e){return u(this,null,function*(){if(!this.audioUpdateInProgress){this.audioUpdateInProgress=!0;try{e?yield a(this,Me).enableTrack(!1,e):yield a(this,Me).unmuteTrack()}catch(i){}finally{this.audioUpdateInProgress=!1}}})}disableAudio(){a(this,Me).mediaTrack&&!a(this,Me).isCustomTrack?a(this,Me).muteTrack():a(this,Me).disableTrack()}getAudioDevices(e){return a(this,Xe).getAudioInputDevices(e)}setAudioDevice(e){return u(this,null,function*(){yield a(this,Me).setDevice(e),e!=null&&e.deviceId&&J.selectedDevice("AUDIO",e),this.emit("AUDIO_TRACK_CHANGE"),this.emit("DEVICE_CHANGE",{device:e})})}setupSpeaker(){return u(this,null,function*(){yield a(this,br).setupSpeaker();const{speaker:e}=this.getCurrentDevices();e&&this.emit("DEVICE_CHANGE",{device:e})})}setSpeakerDevice(e){return u(this,null,function*(){yield a(this,br).setupSpeaker(e),e!=null&&e.deviceId&&J.selectedDevice("SPEAKER",e),this.emit("DEVICE_CHANGE",{device:e})})}onVideoTrackChanged(){this.emit("VIDEO_TRACK_CHANGE")}onVideoTrackEnded(){this.emit("VIDEO_TRACK_CHANGE")}get rawVideoTrack(){return a(this,Ce).mediaTrack}get videoTrack(){return a(this,Ce).transformedMediaTrack}get videoEnabled(){return a(this,Ce).trackEnabled}enableVideo(e){return u(this,null,function*(){if(!this.videoUpdateInProgress){this.videoUpdateInProgress=!0;try{e?yield a(this,Ce).enableTrack(!1,e):yield a(this,Ce).unmuteTrack()}catch(i){}finally{this.videoUpdateInProgress=!1}}})}disableVideo(){a(this,Ce).disableTrack()}getVideoDevices(e){return a(this,Xe).getVideoInputDevices(e)}setVideoDevice(e){return u(this,null,function*(){yield a(this,Ce).setDevice(e),e!=null&&e.deviceId&&J.selectedDevice("VIDEO",e),this.emit("VIDEO_TRACK_CHANGE"),this.emit("DEVICE_CHANGE",{device:e})})}updateVideoConstraints(e){return u(this,null,function*(){yield a(this,Ce).updateConstraints(e)})}onScreenShareEnded(){this.emit("SCREENSHARE_ENDED")}get screenShareTracks(){return{audio:a(this,Ei).audioMediaTrack,video:a(this,Ei).videoMediaTrack}}get screenShareEnabled(){return a(this,Ei).trackEnabled}enableScreenShare(){return u(this,null,function*(){yield a(this,Ei).enableScreenShare()})}disableScreenShare(){return u(this,null,function*(){a(this,Ei).disableScreenShare()})}updateScreenshareConstraints(e){return u(this,null,function*(){yield a(this,Ei).updateConstraints(e)})}getSpeakerDevices(e){return a(this,Xe).getAudioOutputDevices(e)}addAudioMiddleware(e){return a(this,Me).addMiddleware(e)}removeAudioMiddleware(e){return a(this,Me).removeMiddleware(e)}removeAllAudioMiddlewares(){return a(this,Me).removeAllMiddlewares()}addVideoMiddleware(e){return a(this,Ce).addMiddleware(e)}removeVideoMiddleware(e){return a(this,Ce).removeMiddleware(e)}removeAllVideoMiddlewares(){return a(this,Ce).removeAllMiddlewares()}setVideoMiddlewareGlobalConfig(e){return a(this,Ce).setVideoMiddlewareGlobalConfig(e)}destruct(){a(this,Me).disableTrack(),a(this,Ce).disableTrack(),a(this,Ce).terminateMiddlewareWebWorker(),a(this,Ei).disableScreenShare(),a(this,Xe).destruct()}onDeviceChange(e,i){return u(this,null,function*(){var r,n;this.emit("DEVICE_LIST_UPDATED",e),!(i||!a(this,hd))&&((r=e==null?void 0:e.added)==null||r.forEach(s=>u(this,null,function*(){var o;s&&!Hu(s)&&(s.kind==="audioinput"&&((o=this.audioTrack)==null?void 0:o.enabled)===!0?yield this.setAudioDevice(s):s.kind==="audiooutput"&&(yield this.setSpeakerDevice(s)))})),(n=e==null?void 0:e.removed)==null||n.forEach(s=>u(this,null,function*(){var o;if(s.kind==="audiooutput"&&((o=this.getCurrentDevices().speaker)==null?void 0:o.deviceId)===s.deviceId){const c=(yield this.getSpeakerDevices()).find(d=>d.deviceId!==s.deviceId);c&&(yield this.setSpeakerDevice(c))}})))})}removeAllTracks(){this.destruct()}removeAudioTrack(){a(this,Me).disableTrack()}removeVideoTrack(){a(this,Ce).disableTrack(),a(this,Ce).terminateMiddlewareWebWorker()}removeDocumentEventListeners(){return u(this,null,function*(){document.removeEventListener("visibilitychange",this.onVisibilityChange)})}}Xe=new WeakMap,Me=new WeakMap,Ce=new WeakMap,br=new WeakMap,Ei=new WeakMap,hd=new WeakMap,pd=new WeakMap,Ht([S.trace("MediaHandler.setupStreams")],Ot.prototype,"setupStreams",1),Ht([S.trace("MediaHandler.enableAudio")],Ot.prototype,"enableAudio",1),Ht([S.trace("MediaHandler.disableAudio")],Ot.prototype,"disableAudio",1),Ht([S.trace("MediaHandler.setAudioDevice")],Ot.prototype,"setAudioDevice",1),Ht([S.trace("MediaHandler.enableVideo")],Ot.prototype,"enableVideo",1),Ht([S.trace("MediaHandler.disableVideo")],Ot.prototype,"disableVideo",1),Ht([S.trace("MediaHandler.setVideoDevice")],Ot.prototype,"setVideoDevice",1),Ht([S.trace("MediaHandler.updateVideoConstraints")],Ot.prototype,"updateVideoConstraints",1),Ht([S.trace("MediaHandler.enableScreenShare")],Ot.prototype,"enableScreenShare",1),Ht([S.trace("MediaHandler.disableScreenShare")],Ot.prototype,"disableScreenShare",1),Ht([S.trace("MediaHandler.updateScreenshareConstraints")],Ot.prototype,"updateScreenshareConstraints",1),Ht([S.trace("MediaHandler.destruct")],Ot.prototype,"destruct",1),Ht([S.trace("MediaHandler.onDeviceChange")],Ot.prototype,"onDeviceChange",1);function md(t,e,i){switch(!0){case Ie.isChromiumBased():switch(e){case"NotAllowedError":return i.includes("by system")?"SYSTEM_DENIED":t==="screenshare"?"CANCELED":"DENIED";case"NotReadableError":default:return"COULD_NOT_START"}case Ie.isSafari():switch(e){case"NotAllowedError":return"DENIED";default:return"COULD_NOT_START"}case Ie.isFirefox():switch(e){case"NotFoundError":case"NotReadableError":return"SYSTEM_DENIED";case"NotAllowedError":return"DENIED";case"AbortError":default:return"COULD_NOT_START"}default:return"COULD_NOT_START"}}const A1=["virtual","emulator","krisp","solstice conference","teams","loom","zoom","manycam","blackhole","displayport","xsplit","wirecast","vMix","elgato","epiphan","voice changer","voicemod","morphvoxx"];function Hu(t){var e,i;const r=(e=t.label)==null?void 0:e.toLowerCase();return((i=Ie._bowser)==null?void 0:i.getOSName())==="macOS"&&r.includes("iphone")?(l.log("isVirtualDevice::ignore_macos_continuity"),!0):A1.some(n=>r==null?void 0:r.includes(n))}function D1(t,e){return u(this,null,function*(){if(!(t!=null&&t.length))return e;const i=new AudioContext,r=yield Promise.all(t==null?void 0:t.map(o=>o(i))),n=i.createMediaStreamSource(new MediaStream([e])),s=i.createMediaStreamDestination();try{let o=n;for(let c=0;c<r.length;c+=1)o.connect(r[c]),o=r[c];o.connect(s)}catch(o){return l.error("getTransformedAudioTrack::middleware_execution_failed",{error:o}),e}return s.stream.getAudioTracks()[0]})}var ls;class O1{constructor(){f(this,ls,void 0)}terminateMiddlewareWebWorker(){if(a(this,ls))try{Hn(a(this,ls)),v(this,ls,void 0)}catch(e){l.debug("WorkerTimers::terminateMiddlewareWebWorker::failed")}}getTransformedVideoTrack(e,i,r){return u(this,null,function*(){if(!(e!=null&&e.length))return i;const n=document.createElement("canvas"),s=yield Promise.all(e==null?void 0:e.map(g=>g({canvas:n,WorkerTimers:TS})));if(r.disablePerFrameCanvasRendering){const g=n.captureStream().getVideoTracks()[0];return Object.defineProperty(g,"originalSettings",{value:i.getSettings()}),g}const o=document.createElement("video"),c=new MediaStream;c.addTrack(i);const d=n.getContext("2d");o.srcObject=c,o.autoplay=!0,this.terminateMiddlewareWebWorker();const h=()=>u(this,null,function*(){if(i.enabled===!1||i.readyState==="ended"){this.terminateMiddlewareWebWorker(),o.remove(),n.remove();return}try{d.drawImage(o,0,0);for(let g=0;g<s.length;g+=1)typeof s[g]=="function"&&(yield s[g](n,d))}catch(g){l.error("getTransformedVideoTrack::middleware_execution_failed",{error:g})}});try{o.play()}catch(g){}o.addEventListener("play",()=>{n.width=o.width||i.getSettings().width,n.height=o.width||i.getSettings().height,v(this,ls,mc(h,50))},!1);const p=n.captureStream().getVideoTracks()[0];return Object.defineProperty(p,"originalSettings",{value:i.getSettings()}),p})}}ls=new WeakMap;const tv={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}}},N1=[[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"}]]],L1=t=>{var e;const i="getSettings"in t&&t.getSettings().width||"getConstraints"in t&&t.getConstraints().width||"originalSettings"in t&&((e=t.originalSettings)==null?void 0:e.width);let r=N1;z.hasFeature(ie.OVERRIDE_HIVE_SIMULCAST_DYNAMIC)&&(r=JSON.parse(z.getValue(ie.OVERRIDE_HIVE_SIMULCAST_DYNAMIC)));const n=r.map(([c])=>c).sort((c,d)=>c-d);let s=Number.MAX_VALUE,o=0;return n.forEach((c,d)=>{Math.abs(c-i)<s&&(s=Math.abs(c-i),o=d)}),r[o][1]};var be=(t=>(t.WEBCAM="webcam",t.WEBCAM_BACKUP="webcam_backup",t.MIC="mic",t.SCREENSHARE_VIDEO="screenshare_video",t.SCREENSHARE_AUDIO="screenshare_audio",t))(be||{});const V1=Sb(),us=vi(V1.config.media);function x1(t){var e,i;const r={};return t.audio&&(r.audio={enableStereo:(e=t.audio.enableStereo)!=null?e:!1,enableHighBitrate:(i=t.audio.enableHighBitrate)!=null?i:!1}),r.video=t.video.quality,r}var hs,qu;class U1{constructor(e,i){f(this,hs,void 0),f(this,qu,void 0),m(this,"getScreenShareConstraints",()=>{var r,n,s,o,c,d,h,p,g,y,T;const b=(r=a(this,hs))==null?void 0:r.screenshare,O=(s=(n=b==null?void 0:b.width)==null?void 0:n.max)!=null?s:1920,R=(c=(o=b==null?void 0:b.height)==null?void 0:o.max)!=null?c:1080,x=(h=(d=b==null?void 0:b.frameRate)==null?void 0:d.max)!=null?h:5;let G=(g=(p=b==null?void 0:b.frameRate)==null?void 0:p.ideal)!=null?g:5;const $=b==null?void 0:b.displaySurface,I=b==null?void 0:b.selfBrowserSurface;z.getValue(ie.VAL_MIN_FRAMERATE)&&(G=parseInt((y=z.getValue(ie.VAL_MIN_FRAMERATE))==null?void 0:y.toString(),10));let se={width:{max:O},height:{max:R},frameRate:{ideal:G,max:x}};if(z.hasFeature(ie.SCREENSHARE_CONSTRAINTS)){const ne=(T=z.getValue(ie.SCREENSHARE_CONSTRAINTS))==null?void 0:T.toString();se=JSON.parse(ne)}return $!==void 0&&["monitor","browser","window"].includes($)&&(se=j(L({},se),{displaySurface:$})),I!==void 0&&(se=j(L({},se),{selfBrowserSurface:I})),{audio:!0,video:se}}),m(this,"getAudioConstraints",r=>{var n,s,o,c,d,h,p,g;const y={},T=(n=a(this,hs))==null?void 0:n.audio,b=T!=null&&T.enableStereo?2:1;return Ie.isFirefox()||Ie.isWebKitBased()?(y.audio={deviceId:r,autoGainControl:(s=T==null?void 0:T.autoGainControl)!=null?s:!0,echoCancellation:(o=T==null?void 0:T.echoCancellation)!=null?o:!0,noiseSuppression:(c=T==null?void 0:T.noiseSupression)!=null?c:!0,channelCount:b},y):(y.audio={},y.audio.optional=[r?{sourceId:r}:{sourceId:"default"},{channelCount:b},{echoCancellation:(d=T==null?void 0:T.echoCancellation)!=null?d:!0},{googEchoCancellation:(h=T==null?void 0:T.echoCancellation)!=null?h:!0},{googAutoGainControl:(p=T==null?void 0:T.autoGainControl)!=null?p:!0},{googNoiseSuppression:(g=T==null?void 0:T.noiseSupression)!=null?g:!0},{googHighpassFilter:!0}],y)}),m(this,"getVideoConstraints",r=>{var n,s,o,c;const d={},h=(n=a(this,hs))==null?void 0:n.video;let p=tv.vga;if(typeof h=="string"?p=tv[h]:h!==void 0&&(p.height.ideal=h.height.ideal,p.width.ideal=h.width.ideal),p.frameRate={ideal:(o=(s=p.frameRate)==null?void 0:s.ideal)!=null?o:24},Ie.isChromiumBased()&&(p.frameRate.max=30),z.hasFeature(ie.VIDEO_CONSTRAINTS)){const g=(c=z.getValue(ie.VIDEO_CONSTRAINTS))==null?void 0:c.toString();p=JSON.parse(g)}return d.video=p,typeof d.video=="boolean"||(r?d.video.deviceId={exact:r}:d.video.facingMode="user"),d}),v(this,qu,e),v(this,hs,i)}getUpdatedVideoConstraints(e){return e}}hs=new WeakMap,qu=new WeakMap;class Gu extends Error{constructor(e,i,r){super(i),m(this,"constraints"),m(this,"name"),this.name=e,this.constraints=r}}class F1{constructor(){m(this,"permissions"),this.permissions={audio:"NOT_REQUESTED",video:"NOT_REQUESTED",screenshare:"NOT_REQUESTED"}}getAudioInputDevices(e){return u(this,null,function*(){let i=e;return e||(i=yield this.getAvailableDevices()),i.filter(r=>r.kind==="audioinput")})}getVideoInputDevices(e){return u(this,null,function*(){let i=e;return e||(i=yield this.getAvailableDevices()),i.filter(r=>r.kind==="videoinput")})}getAudioOutputDevices(e){return u(this,null,function*(){let i=e;return e||(i=yield this.getAvailableDevices()),i.filter(r=>r.kind==="audiooutput")})}}var B1=Object.defineProperty,W1=Object.getOwnPropertyDescriptor,Ti=(t,e,i,r)=>{for(var n=r>1?void 0:r?W1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&B1(e,i,n),n},Aa,ki,bi,iv;let qt=(iv=class extends F1{constructor(t,e){super(),m(this,"availableDevices"),f(this,Aa,void 0),f(this,ki,void 0),f(this,bi,void 0),v(this,bi,t),v(this,ki,new U1(t,e)),v(this,Aa,new AbortController),this.availableDevices=[],this.getAvailableDevices()}get constraintsBuilder(){return a(this,ki)}destruct(){return u(this,null,function*(){var t;(t=a(this,Aa))==null||t.abort()})}handlePermissionErrors(t,e){const i=md(t,e.name,e.message);return this.permissions[t]=i,a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_ERROR,{message:i,constraints:e.constraints,kind:t}),i}getAudioAndVideoTrack(t,e){return u(this,null,function*(){const i={audio:a(this,ki).getAudioConstraints(t).audio,video:a(this,ki).getVideoConstraints(e).video};try{l.info("getUserMediaWithoutTimeout::requesting_user_media",{constraints:JSON.stringify(i)});const r=yield navigator.mediaDevices.getUserMedia(i);l.info("getUserMediaWithoutTimeout::received_user_media",{constraints:JSON.stringify(i)});const n=r.getAudioTracks()[0];let s=r.getVideoTracks()[0];if(this.permissions.audio="ACCEPTED",this.permissions.video="ACCEPTED",z.hasFeature(ie.OBS_QUALITY)&&s.label.includes("OBS Virtual")){const o=(yield this.getVideoInputDevices()).find(c=>c.label.includes("OBS Virtual"));s=yield this.getVideoTrack(o.deviceId)}return a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.audio,kind:"audio"}),a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.video,kind:"video"}),{audioTrack:n,videoTrack:s}}catch(r){throw l.error("WebMediaInterface.getAudioAndVideoTrack",{error:r}),new w("Couldnt fetch audio and video track","1605")}})}getAudioTrack(t,e){return u(this,null,function*(){let i=yield this.getAudioInputDevices();if(i.length===0)throw this.permissions.audio="NO_DEVICES_AVAILABLE",a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.audio,kind:"audio"}),new w("No audio devices available","1606");const r=n=>u(this,null,function*(){let s;try{i=i.filter(c=>c.deviceId!==n),s=a(this,ki).getAudioConstraints(n),l.info("getUserMediaWithoutTimeout::requesting_user_media",{constraints:JSON.stringify(s)});const[o]=(yield navigator.mediaDevices.getUserMedia(s)).getAudioTracks();return l.info("getUserMediaWithoutTimeout::received_user_media",{constraints:JSON.stringify(s)}),o}catch(o){const c=md("audio",o.name,o.message),d=new Gu(o.name,o.message,s);if(c==="COULD_NOT_START"){const h=i.shift();if(!h)throw d;l.info("getAudioTrack::gum_failed",{constraints:JSON.stringify(s),error:o});const p=a(this,ki).getAudioConstraints(h.deviceId);return l.info("getAudioTrack::retrying_gum_for_next_device",{constraints:JSON.stringify(p)}),r(h.deviceId)}throw d}});try{const n=yield r(e);return n.enabled=!t,this.permissions.audio!=="ACCEPTED"&&(this.permissions.audio="ACCEPTED",a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.audio,kind:"audio"})),n}catch(n){throw n.constraints&&this.handlePermissionErrors("audio",n),new w(n.message,"1601")}})}getVideoTrack(t){return u(this,null,function*(){var e;const i=z.hasFeature(ie.OBS_QUALITY),r=(e=yield this.getCurrentDeviceLabel(t))==null?void 0:e.includes("OBS Virtual"),n=i&&r,s=yield this.getVideoInputDevices();if(s.length===0)throw this.permissions.video="NO_DEVICES_AVAILABLE",a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.video,kind:"video"}),new w("No video devices available","1607");const o=c=>u(this,null,function*(){try{let d=c;const{video:h}=d;n&&typeof h!="boolean"&&(d={video:{deviceId:h.deviceId}}),l.info("getUserMediaWithoutTimeout::requesting_user_media",{constraints:JSON.stringify(d)});const[p]=(yield navigator.mediaDevices.getUserMedia(d)).getVideoTracks();if(n&&typeof h!="boolean"&&typeof h.width=="object"){const{width:g,height:y}=p.getSettings(),{ideal:T}=h.width;p.applyConstraints({width:{ideal:T},height:{ideal:Math.floor(y*T/g)},frameRate:h.frameRate})}return l.info("getUserMediaWithoutTimeout::received_user_media",{constraints:JSON.stringify(d)}),p}catch(d){const h=md("video",d.name,d.message),p=new Gu(d.name,d.message,c);if(h==="COULD_NOT_START"){const g=s.shift();if(!g)throw p;l.info("getVideoTrack::gum_failed",{constraints:JSON.stringify(c),error:d});const y=a(this,ki).getVideoConstraints(g.deviceId);return l.info("getVideoTrack::retrying_gum_for_next_device",{constraints:JSON.stringify(y)}),o({video:y.video})}throw p}});try{const c=a(this,ki).getVideoConstraints(t),d=yield o(c);return this.permissions.video!=="ACCEPTED"&&(this.permissions.video="ACCEPTED",a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.video,kind:"video"})),d}catch(c){throw c.constraints&&this.handlePermissionErrors("video",c),new w(c.message,"1602")}})}getScreenShareTracks(){return u(this,null,function*(){const t=e=>u(this,null,function*(){try{l.info("getDisplayMediaWithoutTimeout::requesting_display_media",{constraints:JSON.stringify(e)}),J.screenShareRequested();const i=yield navigator.mediaDevices.getDisplayMedia(e);return l.info("getDisplayMediaWithoutTimeout::received_display_media",{constraints:JSON.stringify(e)}),i}catch(i){const r=md("video",i.name,i.message),n=new Gu(i.name,i.message,e),s={video:!0};if(F_(e,s)||!z.hasFeature(ie.SCREEENSHARE_CONSTRAINTS_RETRY))throw n;if(r==="COULD_NOT_START")return t(s);throw n}});try{const e=a(this,ki).getScreenShareConstraints(),i=yield t(e);return this.permissions.screenshare!=="ACCEPTED"&&(this.permissions.screenshare="ACCEPTED",a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.screenshare,kind:"screenshare"})),{audioTrack:i.getAudioTracks()[0],videoTrack:i.getVideoTracks()[0]}}catch(e){throw e.constraints&&this.handlePermissionErrors("screenshare",e),new w(e.message,"1612")}})}getCurrentDeviceLabel(t){return u(this,null,function*(){const e=yield this.getDevice(t||"default");return e==null?void 0:e.label})}getAvailableDevices(){return u(this,null,function*(){try{const t=yield navigator.mediaDevices.enumerateDevices();return this.availableDevices=t,t}catch(t){throw l.error("enumerate_devices_failed",{error:t}),new w("Failed to get available devices","1609")}})}getAvailableDevicesByKind(t){return u(this,null,function*(){try{return(yield navigator.mediaDevices.enumerateDevices()).filter(({kind:e})=>t===e)}catch(e){throw l.error("enumerate_devices_failed",{error:e}),new w("Failed to get available devices by kind","1609")}})}getDevice(t){return u(this,null,function*(){try{return(yield navigator.mediaDevices.enumerateDevices()).filter(e=>e.deviceId===t)[0]}catch(e){throw l.error("enumerate_devices_failed",{error:e}),new w("Failed to get device","1609")}})}onDeviceChange(t){return u(this,null,function*(){Ie.supportsDeviceChangeEvent()&&navigator.mediaDevices.addEventListener("devicechange",e=>u(this,null,function*(){var i,r;const n=p=>`${p.kind}-${p.deviceId}-${p.groupId}`,s=this.availableDevices,o=new Set(s.map(p=>n(p))),c=yield this.getAvailableDevices(),d=new Set(c.map(p=>n(p))),h={added:c.filter(p=>!o.has(n(p))),removed:s.filter(p=>!d.has(n(p))),devices:c};if((i=h.added)!=null&&i.length||(r=h.removed)!=null&&r.length){l.info("repopulated_full_device_list",{devices:JSON.stringify(c)});const p=[...h.added,...h.removed];p.some(g=>g.kind==="audioinput")&&J.devices("AUDIO",c==null?void 0:c.filter(g=>g.kind==="audioinput")),p.some(g=>g.kind==="videoinput")&&J.devices("VIDEO",c==null?void 0:c.filter(g=>g.kind==="videoinput")),p.some(g=>g.kind==="audiooutput")&&J.devices("SPEAKER",c==null?void 0:c.filter(g=>g.kind==="audiooutput")),t(e,h,!1)}}),{signal:a(this,Aa).signal})})}},Aa=new WeakMap,ki=new WeakMap,bi=new WeakMap,iv);Ti([S.trace("WebMediaInterface.destruct")],qt.prototype,"destruct",1),Ti([S.trace("WebMediaInterface.handlePermissionErrors")],qt.prototype,"handlePermissionErrors",1),Ti([S.trace("WebMediaInterface.getAudioAndVideoTrack")],qt.prototype,"getAudioAndVideoTrack",1),Ti([S.trace("WebMediaInterface.getAudioTrack")],qt.prototype,"getAudioTrack",1),Ti([S.trace("WebMediaInterface.getVideoTrack")],qt.prototype,"getVideoTrack",1),Ti([S.trace("WebMediaInterface.getScreenShareTracks")],qt.prototype,"getScreenShareTracks",1),Ti([S.trace("WebMediaInterface.getAvailableDevices")],qt.prototype,"getAvailableDevices",1),Ti([S.trace("WebMediaInterface.getAvailableDevicesByKind")],qt.prototype,"getAvailableDevicesByKind",1),Ti([S.trace("WebMediaInterface.getDevice")],qt.prototype,"getDevice",1),Ti([S.trace("WebMediaInterface.onDeviceChange")],qt.prototype,"onDeviceChange",1),qt=Ti([ut("1600")],qt);const rv=qt,Da={setItem:(t,e)=>{try{localStorage.setItem(t,e)}catch(i){l.error("LocalStorage::setItem::crashed",{error:i,localStorage:{key:t,value:e}})}},getItem:t=>{try{return localStorage.getItem(t)}catch(e){l.error("LocalStorage::getItem::crashed",{error:e,localStorage:{key:t}})}return null}},j1=(t=0)=>new Promise(e=>setTimeout(e,t)),H1=(t,e,i)=>{const r=typeof i=="number"?i:250,n=t.createMediaStreamSource(e),s=t.createAnalyser();s.fftSize=2048,n.connect(s);const o=new Uint8Array(s.fftSize);let c=!1;setTimeout(()=>{c=!0},r);function d(){return c?Promise.resolve(!0):(s.getByteTimeDomainData(o),o.some(h=>h!==128&&h!==0)?Promise.resolve(!1):j1().then(d))}return d().then(h=>(n.disconnect(),h),h=>{throw n.disconnect(),h})},q1=typeof AudioContext!="undefined"?AudioContext:null;class $u{constructor(e){m(this,"_AudioContext"),m(this,"audioContext"),m(this,"_audioContextRefContainers");const i=L({AudioContext:q1},e);Object.defineProperties(this,{_AudioContext:{value:i.AudioContext},audioContext:{value:null,writable:!0},_audioContextRefContainers:{value:new Set},AudioContextProvider:{enumerable:!0,value:$u}})}getOrCreate(e){if(!this._audioContextRefContainers.has(e)&&(this._audioContextRefContainers.add(e),this._AudioContext&&!this.audioContext))try{this.audioContext=new this._AudioContext}catch(i){}return this.audioContext}release(e){this._audioContextRefContainers.has(e)&&(this._audioContextRefContainers.delete(e),!this._audioContextRefContainers.size&&this.audioContext&&(this.audioContext.close(),this.audioContext=null))}}const nv=new $u,G1=3,$1=250;function J1(t){const e={},i=nv.getOrCreate(e);let r=G1;function n(){return r-=1,H1(i,t.srcObject,$1).then(s=>s?r>0?n():!0:!1).catch(()=>!0)}return n().finally(()=>{nv.release(e)})}function sv(t){return u(this,null,function*(){const e=new Audio,i=new MediaStream;i.addTrack(t),e.srcObject=i;let r=!1;try{const n=e.play();n&&(yield n),r=yield J1(e),r&&l.info("checkIfAudioTrackIsSilent::silence_detected")}catch(n){l.error("checkIfAudioTrackIsSilent::failed_to_detect_silence",{error:n})}finally{e.pause(),e.remove()}return r})}var K1=Object.defineProperty,z1=Object.getOwnPropertyDescriptor,av=(t,e,i,r)=>{for(var n=r>1?void 0:r?z1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&K1(e,i,n),n};let gd=class extends Yn{constructor(t,e,i){var r;super(),m(this,"constructorName",this.constructor.name),m(this,"userSelectedDevice"),m(this,"mediaInterface"),m(this,"isNonPreferredDevice"),m(this,"_mediaTrack"),m(this,"transformedMediaTrack"),m(this,"middlewares",[]),m(this,"currentDevice"),m(this,"userPreferredDeviceKey",`Dyte::${this.constructorName}::UserDeviceID`),m(this,"setUserPreferredDevice",n=>Da.setItem(this.userPreferredDeviceKey,n)),m(this,"getUserPreferredDevice",()=>Da.getItem(this.userPreferredDeviceKey)),m(this,"isCustomTrack",!1),this.mediaInterface=t,e&&this.setMediaTrack(e),this.userSelectedDevice=(r=this.getUserPreferredDevice())!=null?r:void 0,this.isNonPreferredDevice=i,this.onTrackEnded=this.onTrackEnded.bind(this),this.onTrackMuted=this.onTrackMuted.bind(this)}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){return u(this,null,function*(){const e=i=>{l.error(`${this.constructorName}.setMediaTrack.error`,{error:i})};try{this.disableTrack()}catch(i){e(i)}this._mediaTrack=yield this.conditionallyChangeTrack(t),yield this.setTransformedTrack();try{this.addMediaTrackListeners(),yield this.setCurrentDevice()}catch(i){e(i)}})}get trackEnabled(){return!!this.mediaTrack&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled}muteTrack(){if(!this.mediaTrack){l.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 l.error(`${this.constructorName}.unmuteTrack.error`,{error:t}),this.disableTrack(),new w("Failed to unmute track","1611")}})}getCurrentDeviceId(){var t,e;const{kind:i}=this.mediaTrack;switch(i){case"audio":{const r=this.mediaTrack.getConstraints();return this.userSelectedDevice?(e=(t=r==null?void 0:r.deviceId)!=null?t:r==null?void 0:r.advanced[0].deviceId)!=null?e:this.mediaTrack.getSettings().deviceId:this.mediaTrack.getSettings().deviceId}default:return this.mediaTrack.getSettings().deviceId}}setCurrentDevice(){return u(this,null,function*(){var t;if(!this.mediaTrack){this.currentDevice=void 0;return}const e=this.getCurrentDeviceId();((t=this.currentDevice)==null?void 0:t.deviceId)!==e&&(this.currentDevice=yield this.mediaInterface.getDevice(e))})}setDevice(t){return u(this,null,function*(){if(!t)throw l.warn(`${this.constructorName}.setDevice No device received`),new w("No device received!","1603");this.userSelectedDevice=t.deviceId,this.setUserPreferredDevice(t.deviceId),yield this.onSetDevice(t)})}addMiddleware(t){return u(this,null,function*(){if(Ie.isWebKitBased()&&!z.hasFeature(ie.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 l.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(i){return l.error("While removing middleware",{error:i}),{success:!1,message:i==null?void 0:i.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 l.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,i;this.mediaTrack&&(l.info(`${this.constructorName}.addMediaTrackListeners for deviceId ${(e=(t=this.mediaTrack)==null?void 0:t.getSettings())==null?void 0:e.deviceId} of type ${(i=this.mediaTrack)==null?void 0:i.kind}`),this.mediaTrack.addEventListener("ended",this.onTrackEnded),this.mediaTrack.addEventListener("mute",this.onTrackMuted))}removeMediaTrackListeners(){var t,e,i;this.mediaTrack&&(l.info(`${this.constructorName}.removeMediaTrackListeners for deviceId ${(e=(t=this.mediaTrack)==null?void 0:t.getSettings())==null?void 0:e.deviceId} of type ${(i=this.mediaTrack)==null?void 0:i.kind}`),l.info(`${this.constructorName}.removeMediaTrackListeners`),this.mediaTrack.removeEventListener("ended",this.onTrackEnded),this.mediaTrack.removeEventListener("mute",this.onTrackMuted))}};av([S.trace("BaseMediaHandler.unmuteTrack")],gd.prototype,"unmuteTrack",1),gd=av([ut("1600")],gd);const ov=gd;var Y1=Object.defineProperty,Q1=Object.getOwnPropertyDescriptor,Ju=(t,e,i,r)=>{for(var n=r>1?void 0:r?Q1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&Y1(e,i,n),n};const Ku="[Dyte]nonSilentDeviceLabels";class fd extends ov{onSetDevice(e){return u(this,null,function*(){if(!e)throw l.warn("AudioMediaHandler.setDevice No device received"),new w("No device received!","1603");if(e.kind!=="audioinput")throw l.warn("AudioMediaHandler.setDevice Received non audio device"),new w("Non audio device received while setting device!","1603");try{const i=this.trackEnabled;yield this.setMediaTrack(yield this.mediaInterface.getAudioTrack(!i,this.userSelectedDevice)),this.userSelectedDevice=void 0}catch(i){throw l.error("AudioMediaHandler.setDevice.error",{error:i}),this.disableTrack(),new w(i.message,"1604")}})}enableTrack(e,i){return u(this,null,function*(){if(this.trackEnabled){l.warn("AudioMediaHandler.enableTrack Track already enabled!");return}if(i){this.isCustomTrack=!0,yield this.setMediaTrack(i);return}this.isCustomTrack=!1;const r=yield this.mediaInterface.getAudioTrack(e,this.userSelectedDevice);yield this.setMediaTrack(r)})}setTransformedTrack(e){return u(this,null,function*(){var i;if(!e&&!((i=this.middlewares)!=null&&i.length)){this.transformedMediaTrack=this.mediaTrack;return}try{this.transformedMediaTrack=yield D1(this.middlewares,this.mediaTrack),this.emit("trackChanged")}catch(r){l.error("AudioMediaHandler.setTransformedTrack",{error:r}),this.transformedMediaTrack=this.mediaTrack}})}onTrackEnded(){return u(this,null,function*(){l.info("AudioMediaHandler.TrackEnded"),this.emit("trackEnded");const e=this.mediaTrack.enabled;this.disableTrack(),yield this.enableTrack(!e),yield this.setTransformedTrack(),this.emit("trackChanged")})}onTrackMuted(){l.info("AudioMediaHandler.TrackMuted"),this.emit("trackMuted")}conditionallyChangeTrack(e){return u(this,null,function*(){var i;if(!e||this.userSelectedDevice)return e;let r=e;const n=yield this.mediaInterface.getAudioInputDevices(),s=this.isNonPreferredDevice?n.filter(d=>d&&!this.isNonPreferredDevice(d)):n;if(!(s!=null&&s.length))return r;s.find(d=>d.deviceId===e.getSettings().deviceId)||(r.stop(),l.info("localmediahandler::setupstreams::found_audio_non_preferred"),r=yield this.mediaInterface.getAudioTrack(!1,s[0].deviceId));const o=JSON.parse(Da.getItem(Ku));if(o!=null&&o.devices.some(d=>d.label===r.label))return r;if(!(yield sv(r))){const d=(i=o==null?void 0:o.devices.concat({label:r.label}))!=null?i:[{label:r.label}];return Da.setItem(Ku,JSON.stringify({devices:d})),r}l.info("AudioMediaHandler.conditionallyChangeTrack.DetectedSilentTrack");const c=r.getSettings().deviceId;return s.filter(d=>d.deviceId!==c).some(d=>u(this,null,function*(){if(r=yield this.mediaInterface.getAudioTrack(!1,d.deviceId),!(yield sv(r))){const h=o.devices.concat({label:r.label});return Da.setItem(Ku,JSON.stringify({devices:h})),l.info("AudioMediaHandler.conditionallyChangeTrack.SuccesfullyChangedTrack"),!0}return l.info("AudioMediaHandler.conditionallyChangeTrack.AnotherSilentTrackFound"),!1})),r})}}Ju([S.trace("AudioMediaHandler.setTransformedTrack")],fd.prototype,"setTransformedTrack",1),Ju([S.trace("AudioMediaHandler.onTrackEnded")],fd.prototype,"onTrackEnded",1),Ju([S.trace("AudioMediaHandler.conditionallyChangeTrack")],fd.prototype,"conditionallyChangeTrack",1);const X1=fd;var Oa;class Z1{constructor(e){f(this,Oa,void 0),m(this,"currentDevice"),v(this,Oa,e)}setupSpeaker(e){return u(this,null,function*(){var i,r;if(!(a(this,Oa)instanceof rv))return;let n=e;if(e||([n]=(yield a(this,Oa).getAvailableDevicesByKind("audiooutput")).filter(o=>!Hu(o))),!n)throw new w("No speaker found","1608");if(((i=this.currentDevice)==null?void 0:i.deviceId)===n.deviceId)return;this.currentDevice=n;const s=document.querySelectorAll("audio");(r=s[0])!=null&&r.setSinkId&&s.forEach(o=>u(this,null,function*(){if(typeof o.sinkId!="undefined"&&this.currentDevice.deviceId&&o.sinkId!==this.currentDevice.deviceId)try{yield o.setSinkId(this.currentDevice.deviceId)}catch(c){}}))})}}Oa=new WeakMap;const eD=Z1;var vd;class tD extends Yn{constructor(e,i){super(),m(this,"mediaInterface"),m(this,"audioMediaTrack"),m(this,"videoMediaTrack"),f(this,vd,void 0),v(this,vd,e),this.mediaInterface=i}get trackEnabled(){return!!this.videoMediaTrack}enableScreenShare(){return u(this,null,function*(){var e,i;try{const{audioTrack:r,videoTrack:n}=yield this.mediaInterface.getScreenShareTracks();if(this.audioMediaTrack=r,this.videoMediaTrack=n,this.addMediaTrackListeners(),((i=(e=this.mediaInterface)==null?void 0:e.permissions)==null?void 0:i.screenshare)==="ACCEPTED")return;this.mediaInterface.permissions&&(this.mediaInterface.permissions.screenshare="ACCEPTED",a(this,vd).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.mediaInterface.permissions.screenshare,kind:"screenshare"}))}catch(r){}})}disableScreenShare(){var e,i;this.removeMediaTrackListeners(),(e=this.audioMediaTrack)==null||e.stop(),(i=this.videoMediaTrack)==null||i.stop(),this.videoMediaTrack=void 0,this.audioMediaTrack=void 0}updateConstraints(e){return u(this,null,function*(){if(!this.videoMediaTrack)throw new w("No media track enabled!","1610");const i=this.mediaInterface;if(!i.constraintsBuilder)throw new w("update constraints not supported for non web clients","1100");try{this.videoMediaTrack.applyConstraints(i.constraintsBuilder.getUpdatedVideoConstraints(e)),this.addMediaTrackListeners()}catch(r){l.error("ScreenShareHandler.updateConstraints.error",{error:r})}})}addMediaTrackListeners(){var e,i;(e=this.videoMediaTrack)==null||e.addEventListener("ended",this.onTrackEnded.bind(this)),Ie.isWebKitBased()&&((i=this.videoMediaTrack)==null||i.addEventListener("mute",this.onTrackEnded.bind(this)))}removeMediaTrackListeners(){var e,i;(e=this.videoMediaTrack)==null||e.removeEventListener("ended",this.onTrackEnded),(i=this.videoMediaTrack)==null||i.removeEventListener("mute",this.onTrackEnded)}onTrackEnded(){this.emit("trackEnded")}}vd=new WeakMap;const iD=tD;var rD=Object.defineProperty,nD=Object.getOwnPropertyDescriptor,yd=(t,e,i,r)=>{for(var n=r>1?void 0:r?nD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&rD(e,i,n),n},Na,Sd;class La extends ov{constructor(e,i,r){super(e,i,r),f(this,Na,void 0),f(this,Sd,{disablePerFrameCanvasRendering:!1}),v(this,Na,new O1)}onSetDevice(e){return u(this,null,function*(){if(!e)throw l.warn("VideoMediaHandler.setDevice No device received"),new w("No device received!","1603");if(e.kind!=="videoinput")throw l.warn("VideoMediaHandler.setDevice Received non video device",{devices:[e]}),new w("Non video device received while setting video device!","1603");if(!(this.mediaTrack&&this.mediaTrack.enabled)){l.warn("VideoMediaHandler.setDevice Tried switching device with video disabled",{devices:[e]}),this.currentDevice=e;return}try{yield this.setMediaTrack(yield this.mediaInterface.getVideoTrack(this.userSelectedDevice))}catch(i){throw l.error("VideoMediaHandler.setDevice.error",{error:i}),this.disableTrack(),new w("Failed to change device","1600")}})}enableTrack(e,i){return u(this,null,function*(){if(this.trackEnabled){l.warn("VideoMediaHandler.enableTrack Track already enabled!");return}if(i){this.isCustomTrack=!0,yield this.setMediaTrack(i);return}this.isCustomTrack=!1;const r=yield this.mediaInterface.getVideoTrack(this.userSelectedDevice);yield this.setMediaTrack(r)})}setTransformedTrack(e){return u(this,null,function*(){var i;if(!e&&!((i=this.middlewares)!=null&&i.length)){this.transformedMediaTrack=this.mediaTrack;return}try{this.transformedMediaTrack=yield a(this,Na).getTransformedVideoTrack(this.middlewares,this.mediaTrack,a(this,Sd)),this.emit("trackChanged")}catch(r){l.error("VideoMediaHandler.setTransformedTrack",{error:r}),this.transformedMediaTrack=this.mediaTrack}})}setVideoMiddlewareGlobalConfig(e){return u(this,null,function*(){v(this,Sd,e)})}updateConstraints(e){return u(this,null,function*(){if(!this._mediaTrack)throw new w("No media track enabled!","1610");const i=this.mediaInterface;if(!i.constraintsBuilder)throw new w("update constraints not supported for non web clients","1100");try{this._mediaTrack.applyConstraints(i.constraintsBuilder.getUpdatedVideoConstraints(e)),yield this.setTransformedTrack(),this.addMediaTrackListeners(),yield this.setCurrentDevice()}catch(r){l.error("VideoMediaHandler.updateConstraints.error",{error:r})}})}terminateMiddlewareWebWorker(){a(this,Na).terminateMiddlewareWebWorker()}onTrackEnded(){return u(this,null,function*(){l.info("VideoMediaHandler.TrackEnded"),this.disableTrack(),this.emit("trackEnded")})}onTrackMuted(){l.info("VideoMediaHandler.TrackMuted"),this.emit("trackMuted")}conditionallyChangeTrack(e){return u(this,null,function*(){if(!e||this.userSelectedDevice)return e;let i=e;const r=yield this.mediaInterface.getVideoInputDevices(),n=this.isNonPreferredDevice?r.filter(s=>!this.isNonPreferredDevice(s)):r;return!(n!=null&&n.length)||window.FAST_DYTE||n.find(s=>s.deviceId===e.getSettings().deviceId)||(i.stop(),l.info("localmediahandler::setupstreams::found_video_non_preferred"),i=yield this.mediaInterface.getVideoTrack(n[0].deviceId)),i})}}Na=new WeakMap,Sd=new WeakMap,yd([S.trace("VideoMediaHandler.setTransformedTrack")],La.prototype,"setTransformedTrack",1),yd([S.trace("VideoMediaHandler.setVideoMiddlewareGlobalConfig")],La.prototype,"setVideoMiddlewareGlobalConfig",1),yd([S.trace("VideoMediaHandler.onTrackEnded")],La.prototype,"onTrackEnded",1),yd([S.trace("VideoMediaHandler.conditionallyChangeTrack")],La.prototype,"conditionallyChangeTrack",1);const sD=La,cv=vi(iu());var Gt,ps,Ed,Va;const xa=class{constructor(t){if(f(this,Gt,void 0),f(this,ps,void 0),f(this,Ed,void 0),f(this,Va,void 0),!t)throw new w("Could not load preset.","0904");v(this,Gt,t.config),v(this,Ed,t.name),v(this,ps,t.ui||vi(iu().ui)),v(this,Va,t.permissions.plugins.config)}static fromResponse(t){return new xa(t)}static default(){return new xa(cv)}static init(t,e=!0){return!t||e?new xa(cv):new xa(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:a(this,ps).designTokens.logo,timer:!0,title:!0,participantCount:!0,changeLayout:!1}}}get pipMode(){return!0}get viewType(){return a(this,Gt).viewType}get livestreamViewerQualities(){return a(this,Gt).livestreamViewerQualities||[]}get maxVideoStreams(){return a(this,Gt).maxVideoStreams}get maxScreenShareCount(){return a(this,Gt).maxScreenshareCount}get plugins(){return[]}get disabledPlugins(){return Object.keys(a(this,Va)).filter(t=>a(this,Va)[t].disabled)}get designTokens(){return a(this,ps).designTokens}get configDiff(){return a(this,ps).configDiff}get mediaConstraints(){var t,e,i,r,n,s,o,c,d,h,p,g,y,T,b,O,R,x,G,$,I,se,ne,Se;return{audio:{enableStereo:(r=(i=(e=(t=a(this,Gt))==null?void 0:t.media)==null?void 0:e.audio)==null?void 0:i.enableStereo)!=null?r:us.audio.enableStereo,enableHighBitrate:(c=(o=(s=(n=a(this,Gt))==null?void 0:n.media)==null?void 0:s.audio)==null?void 0:o.enableHighBitrate)!=null?c:us.audio.enableHighBitrate},video:{quality:(g=(p=(h=(d=a(this,Gt))==null?void 0:d.media)==null?void 0:h.video)==null?void 0:p.quality)!=null?g:us.video.quality,frameRate:(O=(b=(T=(y=a(this,Gt))==null?void 0:y.media)==null?void 0:T.video)==null?void 0:b.frameRate)!=null?O:us.video.frameRate},screenshare:{quality:($=(G=(x=(R=a(this,Gt))==null?void 0:R.media)==null?void 0:x.screenshare)==null?void 0:G.quality)!=null?$:us.screenshare.quality,frameRate:(Se=(ne=(se=(I=a(this,Gt))==null?void 0:I.media)==null?void 0:se.screenshare)==null?void 0:ne.frameRate)!=null?Se:us.screenshare.frameRate}}}get name(){return a(this,Ed)}};let aD=xa;Gt=new WeakMap,ps=new WeakMap,Ed=new WeakMap,Va=new WeakMap;var oD=Object.defineProperty,cD=Object.getOwnPropertyDescriptor,dv=(t,e,i,r)=>{for(var n=r>1?void 0:r?cD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&oD(e,i,n),n},Ua;class zu extends Wt{constructor(e){super(),f(this,Ua,void 0),m(this,"state","IDLE"),m(this,"playbackUrl"),m(this,"ingestionCredentials"),m(this,"viewerCount"),v(this,Ua,e),this.viewerCount=0}setLivestreamState(e){const i=this.state;this.state=e,i!==e&&this.emitCurrentLivestreamState()}emitCurrentLivestreamState(){this.emit("livestreamUpdate",this.state)}start(){return u(this,arguments,function*(e={manualIngestion:!1}){if(!a(this,Ua).permissions.canLivestream)throw l.error("DyteLivestream::start::permission_denied"),new w("User does not have permission to start livestreaming","1901");this.setLivestreamState("STARTING");try{const i=ht(),{playbackUrl:r,ingestionCredentials:n}=yield i.startLivestreaming(e);this.playbackUrl=r,this.ingestionCredentials=n,e!=null&&e.manualIngestion&&this.setLivestreamState("WAITING_ON_MANUAL_INGESTION")}catch(i){throw l.error("DyteRecording::stop::livestream_failed_to_start",{error:i}),this.setLivestreamState("IDLE"),new w("Error while starting livestream","1900")}})}stop(){return u(this,null,function*(){if(!a(this,Ua).permissions.canLivestream)throw l.error("DyteLivestream::stop::permission_denied"),new w("User does not have permission to stop livestreaming","1901");if(this.state!=="LIVESTREAMING"&&this.state!=="WAITING_ON_MANUAL_INGESTION")throw l.error("DyteLivestream::stop::inconsistent_state"),new w("Livestream not started yet","1902");try{this.setLivestreamState("STOPPING"),yield ht().stopLivestreaming()}catch(e){throw l.error("DyteLivestream::stop::livestream_failed_to_stop",{error:e}),this.setLivestreamState("STOPPING"),new w("Error while stopping livestream","1900")}})}}Ua=new WeakMap,dv([S.trace("livestream.start")],zu.prototype,"start",1),dv([S.trace("livestream.stop")],zu.prototype,"stop",1);var dD=Object.defineProperty,lD=Object.getOwnPropertyDescriptor,uD=(t,e,i,r)=>{for(var n=r>1?void 0:r?lD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&dD(e,i,n),n},Fa,Ba,_r,pn;class lv{constructor(e,i,r){m(this,"livestream"),f(this,Fa,void 0),f(this,Ba,void 0),f(this,_r,void 0),f(this,pn,void 0),v(this,pn,e),v(this,Ba,i),this.livestream=new zu(i),v(this,_r,r),this.setupEvents()}fetchInitialLivestreamingState(){return u(this,null,function*(){const e=ht(),{status:i,playbackUrl:r,manualIngest:n,ingestionCredentials:s}=yield e.getActiveLivestream();this.livestream.playbackUrl=r,this.livestream.ingestionCredentials=s,i==="LIVE"&&this.livestream.setLivestreamState("LIVESTREAMING"),i==="INVOKED"&&n&&this.livestream.setLivestreamState("WAITING_ON_MANUAL_INGESTION")})}setupEvents(){a(this,_r).on(B.startedLivestream,e=>u(this,null,function*(){this.livestream.playbackUrl=e.playbackUrl,this.livestream.setLivestreamState("LIVESTREAMING");try{a(this,Ba).permissions.canLivestream&&(yield this.fetchInitialLivestreamingState())}catch(i){l.error("Error: LivestreamController.fetchLivestream during startedLivestream re-fetch")}})),a(this,_r).on(B.livestreamingInvoked,e=>u(this,null,function*(){if(e.manualIngest){this.livestream.setLivestreamState("WAITING_ON_MANUAL_INGESTION");try{a(this,Ba).permissions.canLivestream&&(yield this.fetchInitialLivestreamingState())}catch(i){l.error("Error: LivestreamController.fetchLivestream during livestreamingInvoked re-fetch")}}})),a(this,_r).on(B.stoppedLivestream,()=>{this.livestream.setLivestreamState("IDLE"),this.livestream.playbackUrl=void 0,this.livestream.ingestionCredentials=void 0}),a(this,_r).on(B.erroredLivestream,()=>{this.livestream.setLivestreamState("IDLE"),this.livestream.playbackUrl=void 0}),a(this,_r).on(B.roomPeerCount,e=>{this.livestream.viewerCount=e.count,this.livestream.emit("viewerCountUpdate",e.count)}),a(this,pn).getValue("peerSessionStore").on(P.PEER_JOINED_INTERNAL,e=>u(this,null,function*(){var i;((i=e.flags)==null?void 0:i.hiddenParticipant)===!0&&e.recorderType==="LIVESTREAMER"&&(v(this,Fa,e.id),this.livestream.setLivestreamState("LIVESTREAMING"))})),a(this,pn).getValue("peerSessionStore").on(P.PEER_CLOSED,e=>{e.id===a(this,Fa)&&(v(this,Fa,void 0),this.livestream.setLivestreamState("IDLE"))}),a(this,pn).getValue("peerSessionStore").onAsync(P.LEAVE_MEDIA_ROOM,()=>u(this,null,function*(){this.livestream.playbackUrl||(l.info("Fetching livestreaming state on leave stage"),yield this.fetchInitialLivestreamingState())})),a(this,pn).getValue("peerSessionStore").on(P.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){try{yield this.fetchInitialLivestreamingState()}catch(e){l.error("Error: LivestreamController.fetchLivestream")}}))}}Fa=new WeakMap,Ba=new WeakMap,_r=new WeakMap,pn=new WeakMap,uD([S.trace("LivestreamController.setupEvents")],lv.prototype,"setupEvents",1);var hD=Object.defineProperty,pD=Object.getOwnPropertyDescriptor,Wa=(t,e,i,r)=>{for(var n=r>1?void 0:r?pD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&hD(e,i,n),n},kt,mn,gn,Yu,uv;class ms{constructor({name:e,socketHandler:i,meetingId:r}){f(this,Yu),m(this,"name",""),f(this,kt,{}),f(this,mn,""),f(this,gn,void 0),m(this,"rateLimitConfig",{maxInvocations:5,period:1}),m(this,"bulkRateLimitConfig",{maxInvocations:5,period:1}),m(this,"listeners",{}),this.name=e,v(this,gn,i),v(this,mn,r)}set(e,i,r=!0,n=!1){return u(this,null,function*(){a(this,kt)[e]=i,r&&this.remoteSet(e,i),n&&(this.listeners[e]&&this.listeners[e].forEach(s=>s({[e]:a(this,kt)[e]})),this.listeners["*"]&&this.listeners["*"].forEach(s=>s({[e]:a(this,kt)[e]})))})}remoteSet(e,i){a(this,gn).storeInsertKeys(a(this,mn),this.name,[{key:e,payload:i}])}bulkSet(e){return u(this,null,function*(){e.forEach(({key:i,payload:r})=>{a(this,kt)[i]=r}),a(this,gn).storeInsertKeys(a(this,mn),this.name,e)})}update(e,i,r=!0){return u(this,null,function*(){F(this,Yu,uv).call(this,e,i,r)})}delete(e,i=!0,r=!1){return u(this,null,function*(){if(a(this,kt)[e]&&delete a(this,kt)[e],i)return a(this,gn).storeDeleteKeys(a(this,mn),this.name,[{key:e}]);r&&(this.listeners[e]&&(this.listeners[e].forEach(n=>n({[e]:void 0})),delete this.listeners[e]),this.listeners["*"]&&this.listeners["*"].forEach(n=>n({[e]:void 0})))})}bulkDelete(e){return u(this,null,function*(){return e.forEach(({key:i})=>{a(this,kt)[i]&&delete a(this,kt)[i]}),a(this,gn).storeDeleteKeys(a(this,mn),this.name,e)})}get(e){if(a(this,kt)[e])return a(this,kt)[e]}getAll(){return a(this,kt)}get rateLimits(){return this.rateLimitConfig}updateRateLimits(e,i){this.rateLimitConfig.maxInvocations=e,this.rateLimitConfig.period=i}get bulkRateLimits(){return this.bulkRateLimitConfig}updateBulkRateLimits(e,i){this.bulkRateLimitConfig.maxInvocations=e,this.bulkRateLimitConfig.period=i}subscribe(e,i){if(this.listeners[e]){this.listeners[e].push(i);return}this.listeners[e]=[i]}unsubscribe(e,i){var r;if(i){this.listeners[e]=((r=this.listeners[e])==null?void 0:r.filter(n=>n!==i))||[];return}this.listeners[e]&&delete this.listeners[e]}populate(e){v(this,kt,e)}}kt=new WeakMap,mn=new WeakMap,gn=new WeakMap,Yu=new WeakSet,uv=function(t,e,i=!0){let r;const n=a(this,kt)[t],s=Object.prototype.toString.call(e),o=Object.prototype.toString.call(n);if(s!==o){this.set(t,e);return}switch(o){case"[object Array]":r=[...n,...e];break;case"[object Object]":r=L(L({},n),e);break;case"[object Map]":r=new Map([...n,...e]);break;case"[object Set]":r=new Set([...n,...e]);break;default:r=e;break}this.set(t,r,i)},Wa([At(es,"rateLimitConfig")],ms.prototype,"remoteSet",1),Wa([At(es,"bulkRateLimitConfig")],ms.prototype,"bulkSet",1),Wa([At(es,"rateLimitConfig")],ms.prototype,"update",1),Wa([At(es,"rateLimitConfig")],ms.prototype,"delete",1),Wa([At(es,"bulkRateLimitConfig")],ms.prototype,"bulkDelete",1);var gs,fs,Td,Qu,kd,fn,Xu,hv;class mD{constructor(e,i){f(this,Td),f(this,Xu),m(this,"stores",new Map),f(this,gs,void 0),f(this,fs,""),f(this,kd,void 0),f(this,fn,new Map),v(this,gs,i),v(this,fs,e.getValue("meetingId")),v(this,kd,e),F(this,Xu,hv).call(this)}create(e){const i=new ms({name:e,socketHandler:a(this,gs),meetingId:a(this,fs)});return a(this,gs).storeGetKeys(a(this,fs),e,[]),new Promise((r,n)=>{const s=setTimeout(()=>n(Error("Failed")),3e3);a(this,fn).set(e,{rejectTimeout:s,resolve:r,store:i})})}}gs=new WeakMap,fs=new WeakMap,Td=new WeakSet,Qu=function(){return a(this,kd).getValue("peerId")},kd=new WeakMap,fn=new WeakMap,Xu=new WeakSet,hv=function(){[K.storeInsertKeys,K.storeGetKeys,K.storeDeleteKeys].forEach(t=>{a(this,gs).on(t,e=>u(this,null,function*(){var i,r;if(e.pluginId!==a(this,fs))return;const n=(i=e.storeItems)==null?void 0:i.map(o=>{var c;return{timestamp:o.timestamp,peerId:o.peerId,payload:JSON.parse((c=o.payload)!=null&&c.length?new TextDecoder().decode(o.payload):"{}"),key:o.storeKey}});if(t===K.storeGetKeys){const o=a(this,fn).get(e.storeName),c=this.stores.get(e.storeName)||(o==null?void 0:o.store);a(this,fn).get(e.storeName)&&(this.stores.set(e.storeName,o.store),o.resolve(c),clearTimeout(o.rejectTimeout),a(this,fn).delete(e.storeName)),n.forEach(d=>{c.set(d.key,d.payload,!1,!1)});return}const s=this.stores.get(e.storeName)||((r=a(this,fn).get(e.storeName))==null?void 0:r.store);s!==void 0&&(t===K.storeInsertKeys&&n.forEach(({key:o,peerId:c,payload:d})=>{c!==a(this,Td,Qu)&&s.set(o,d,!1,!0)}),t===K.storeDeleteKeys&&n.forEach(({key:o,peerId:c})=>{c!==a(this,Td,Qu)&&s.delete(o,!1,!0)}))}))})};function vn(t){var e,i,r,n,s,o,c,d,h,p,g,y,T;return t?{media:{audio:{enabled:t.audioEnabled,trackId:(e=t.audioTrack)==null?void 0:e.id,permission:"mediaPermissions"in t?(i=t.mediaPermissions)==null?void 0:i.audio:null},video:{enabled:t.videoEnabled,trackId:(r=t.videoTrack)==null?void 0:r.id,permission:"mediaPermissions"in t?(n=t.mediaPermissions)==null?void 0:n.video:null},screenshare:{enabled:t.screenShareEnabled,permission:"mediaPermissions"in t?(s=t.mediaPermissions)==null?void 0:s.screenshare:null,audio:{enabled:(c=(o=t.screenShareTracks)==null?void 0:o.audio)==null?void 0:c.enabled,trackId:(h=(d=t.screenShareTracks)==null?void 0:d.audio)==null?void 0:h.id},video:{enabled:(g=(p=t.screenShareTracks)==null?void 0:p.video)==null?void 0:g.enabled,trackId:(T=(y=t.screenShareTracks)==null?void 0:y.video)==null?void 0:T.id}}}}:{}}var gD=Object.defineProperty,fD=Object.getOwnPropertyDescriptor,vs=(t,e,i,r)=>{for(var n=r>1?void 0:r?fD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&gD(e,i,n),n};const vD=.8,yD=1.2;var ja,Ha,_i,ys,qa,yn,Ss,Es,Ga,Zu,pv,wr,bd,Sn,Ts,$a,Ir,eh,_d,th,ih,mv,rh,gv,fv;let tr=(fv=class extends Wt{constructor(t,e,i,r){super(),f(this,ys),f(this,yn),f(this,Es),f(this,Zu),f(this,Ts),f(this,_d),f(this,ih),f(this,rh),m(this,"id"),m(this,"userId"),m(this,"name"),m(this,"picture"),m(this,"isHost"),m(this,"customParticipantId"),m(this,"flags"),m(this,"device"),m(this,"videoTrack"),m(this,"audioTrack"),m(this,"screenShareTracks"),m(this,"videoEnabled"),m(this,"audioEnabled"),m(this,"screenShareEnabled"),m(this,"producers"),m(this,"manualProducerConfig"),f(this,ja,void 0),m(this,"supportsRemoteControl",!1),f(this,Ha,void 0),m(this,"presetName"),f(this,_i,void 0),f(this,wr,void 0),f(this,bd,void 0),f(this,Sn,new Map),f(this,Ir,1),f(this,eh,su(I=>{if(!this.videoTrack)return;const{clientWidth:se,clientHeight:ne}=I,{width:Se,height:nt}=this.videoTrack.getSettings();if(!Se||!nt)return;const ft=nt/ne,Bt=Se/se,M=Math.max(ft,Bt);M>yD&&a(this,Ir)===1?(v(this,Ir,0),a(this,_i).getValue("peerSessionStore").emit(P.MAX_SPATIAL_LAYER_CHANGE,{peerId:this.id,maxSpatialLayer:a(this,Ir)})):M<vD&&a(this,Ir)===0&&(v(this,Ir,1),a(this,_i).getValue("peerSessionStore").emit(P.MAX_SPATIAL_LAYER_CHANGE,{peerId:this.id,maxSpatialLayer:a(this,Ir)}))},2e3)),v(this,_i,t);const{id:n,userId:s,displayName:o,device:c,picture:d,isHost:h,flags:p,clientSpecificId:g,stageStatus:y,customParticipantId:T,audioMuted:b,audioTrack:O,videoEnabled:R=!1,videoTrack:x,producers:G,metadata:$}=e;this.id=n,this.userId=s,this.name=o,this.device=c,this.picture=d,this.isHost=h,this.flags=p,this.manualProducerConfig=Y_,v(this,Ha,y!=null?y:"ON_STAGE"),this.customParticipantId=T!=null?T:g,this.audioEnabled=!b,this.audioTrack=O,this.videoEnabled=R,this.videoTrack=x,this.screenShareTracks={audio:void 0,video:void 0},this.producers=G!=null?G:[],this.presetName=$==null?void 0:$.preset_name,v(this,ja,!1),v(this,wr,i),v(this,bd,r),this.setupEvents(),this.updateVideo=this.updateVideo.bind(this),F(this,_d,th).call(this)}get clientSpecificId(){return this.customParticipantId}get stageStatus(){return a(this,Ha)}setVideoEnabled(t,e=!0){this.videoEnabled=t,e&&(l.info("DyteParticipant::setVideoEnabled::videoUpdate",L({},vn(this))),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}))}setAudioEnabled(t,e=!0){this.audioEnabled=t,e&&(l.info("DyteParticipant::setAudioEnabled::audioUpdate",L({},vn(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",F(this,_d,th)),a(this,yn,Ss)&&(this.on("audioUpdate",F(this,ih,mv)),this.on("screenShareUpdate",F(this,rh,gv)))}pin(){return u(this,null,function*(){if(!a(this,Es,Ga))throw new w("Can`t pin participant without joining room","1205");if(!a(this,wr).permissions.pinParticipant)throw new w("You do not have permission to pin participants.","1201");return a(this,ys,qa).pinPeer(this.id)})}unpin(){return u(this,null,function*(){if(!a(this,Es,Ga))throw new w("Can`t unpin participant without joining room","1205");if(!a(this,wr).permissions.pinParticipant)throw new w("You do not have permission to unpin participants.","1201");return a(this,ys,qa).pinPeer(null)})}setIsPinned(t,e=!0){var i;v(this,ja,t);const r=t?"pinned":"unpinned";(i=a(this,Ts,$a))==null||i.updateSource(this.id,{pinned:t}),e&&this.emit(r,this)}disableAudio(){return u(this,null,function*(){const t=this.id;if(l.info("DyteParticipant::disable_audio",{dyteParticipant:{id:t}}),!a(this,Es,Ga))throw new w("Can`t disable participant audio without joining room","1205");if(a(this,wr).permissions.canDisableParticipantAudio)return a(this,ys,qa).disableAudio(t);throw l.error("DyteParticipant::unauthorized_disable_audio",{dyteParticipant:{id:t}}),new w("Unauthorized: User does not have permission to disable participant audio.","1201")})}kick(){return u(this,null,function*(){const t=this.id;if(l.info("DyteParticipant::kick",{dyteParticipant:{id:t}}),!a(this,Zu,pv))throw new w("Can`t kick participant without joining room","1205");if(a(this,wr).permissions.kickParticipant){yield a(this,_i).getValue("peerSessionStore").emitAsync(P.KICK_PEER,{peerId:t});return}throw l.error("DyteParticipant::unauthorized_kick",{dyteParticipant:{id:t}}),new w("Unauthorized: User does not have permission to kick participants.","1201")})}disableVideo(){return u(this,null,function*(){const t=this.id;if(l.info("DyteParticipant::disable_video",{dyteParticipant:{id:t}}),!a(this,Es,Ga))throw new w("Can`t disable participant video without joining room","1205");if(a(this,wr).permissions.canDisableParticipantVideo)return a(this,ys,qa).disableVideo(t);throw l.error("DyteParticipant::unauthorized_disable_video",{dyteParticipant:{id:t}}),new w("Unauthorized: User does not have permission to disable participant video.","1201")})}getPermissions(){return u(this,null,function*(){return a(this,bd).getUserPermissions(this.userId)})}setStageStatus(t){v(this,Ha,t),this.emit("stageStatusUpdate",this)}get isPinned(){return a(this,ja)}registerVideoElement(t){var e,i,r,n;if(!t)return;let s;(i=(e=a(this,Sn).get(t))==null?void 0:e.observer)==null||i.disconnect(),"ResizeObserver"in window&&(s=new ResizeObserver(()=>a(this,eh).call(this,t)),s.observe(t)),a(this,Sn).set(t,{observer:s}),this.updateVideo(t),(n=a(this,Ts,$a))==null||n.addSource(this.id,t,this.videoEnabled,this.isPinned,this.name,this.picture,(r=this.raised)!=null?r:!1)}deregisterVideoElement(t){var e,i,r,n;if(!t){(e=a(this,Ts,$a))==null||e.removeSource(this.id);return}t.srcObject=void 0,(r=(i=a(this,Sn).get(t))==null?void 0:i.observer)==null||r.disconnect(),a(this,Sn).delete(t),(n=a(this,Ts,$a))==null||n.removeSource(this.id)}updateVideo(t){var e;if(this.videoEnabled){if(this.videoTrack==null)return;const i=(e=t.srcObject)==null?void 0:e.getTracks()[0];if((i==null?void 0:i.id)===this.videoTrack.id)return;const r=new MediaStream;r.addTrack(this.videoTrack),t.srcObject=r}else t.srcObject=void 0;t.style.display=this.videoEnabled?"block":"none"}},ja=new WeakMap,Ha=new WeakMap,_i=new WeakMap,ys=new WeakSet,qa=function(){return a(this,_i).getValue("roomNodeClient")},yn=new WeakSet,Ss=function(){return a(this,_i).getValue("audioPlayback")},Es=new WeakSet,Ga=function(){return a(this,_i).getValue("connectionHandler").mediaJoined},Zu=new WeakSet,pv=function(){return a(this,_i).getValue("connectionHandler").socketJoined},wr=new WeakMap,bd=new WeakMap,Sn=new WeakMap,Ts=new WeakSet,$a=function(){return a(this,_i).getValue("pip")},Ir=new WeakMap,eh=new WeakMap,_d=new WeakSet,th=function(){Array.from(a(this,Sn).keys()).forEach(this.updateVideo)},ih=new WeakSet,mv=function(){var t,e;this.audioEnabled&&this.audioTrack?(t=a(this,yn,Ss))==null||t.addParticipantTrack(this.id,this.audioTrack):(e=a(this,yn,Ss))==null||e.removeParticipantTrack(this.id)},rh=new WeakSet,gv=function(){var t,e;this.screenShareEnabled&&this.screenShareTracks.audio?(t=a(this,yn,Ss))==null||t.addParticipantTrack(`screenshare-${this.id}`,this.screenShareTracks.audio):(e=a(this,yn,Ss))==null||e.removeParticipantTrack(`screenshare-${this.id}`)},fv);vs([S.trace("DyteParticipant.disableAudio")],tr.prototype,"disableAudio",1),vs([S.trace("DyteParticipant.kick")],tr.prototype,"kick",1),vs([S.trace("DyteParticipant.disableVideo")],tr.prototype,"disableVideo",1),vs([S.trace("DyteParticipant.getPermissions")],tr.prototype,"getPermissions",1),vs([S.trace("DyteParticipant.setStageStatus")],tr.prototype,"setStageStatus",1),tr=vs([ut("1200")],tr);class En extends zf{constructor(e){const{onAddEvent:i="participantJoined",onDeleteEvent:r="participantLeft",onClearEvent:n="participantsCleared"}=e!=null?e:{};super({onAddEvent:i,onDeleteEvent:r,onClearEvent:n})}add(e,i=!0){return this.has(e.id)&&Object.is(this.get(e.id),e)===!1&&this.delete(e.id),super.add(e,i)}clear(e=!0,i=!1){return super.clear(e,i)}delete(e,i=!0,r=!1){return super.delete(e,i,r)}}var Tn;class SD extends Yn{constructor(){super(),f(this,Tn,void 0),v(this,Tn,new Map)}__set(e,i){return a(this,Tn).set(e,i)}__clear(){return a(this,Tn).clear()}get(e){return a(this,Tn).get(e)}toArray(){return Array.from(a(this,Tn).values())}}Tn=new WeakMap;class ED{constructor(){m(this,"_orderedArray"),m(this,"_map"),this._map=new Map,this._orderedArray=[]}add(e,i){if(!this._map.has(e))return this._map.set(e,{peerId:e,priority:i}),this._orderedArray.splice(Math.max(i-1,0),0,e),this.index(e);const r=this.index(e);this.delete(e);const n=this.add(e,i);return r!==n?n:-1}delete(e){if(this._map.has(e)){const i=this.index(e);this._map.delete(e),this._orderedArray.splice(i,1)}}index(e){return this._map.has(e)?this._orderedArray.indexOf(e):-1}[Symbol.iterator](){return this._orderedArray[Symbol.iterator]()}}class TD{constructor(){m(this,"_activeSpeakerPeers"),m(this,"_compulsoryPeers"),this._activeSpeakerPeers=new ED,this._compulsoryPeers=new Set}add(e,i){if(!e)return-1;if(i<0)return this._compulsoryPeers.add(e),0;if(this.compulsoryPeers.includes(e)&&(i>0||i===246267631)){if(l.info("DyteSelectedPeer::removing_compulsory_peer",{selectedPeer:{peerId:e}}),this._removeFromCompulsoryPeer(e),i===246267631)return-1}else if(i===229490415)return this.delete(e),-1;return this._activeSpeakerPeers.add(e,i)}delete(e){l.info("DyteSelectedPeer::deleting_peer_from_selectedPeer",{selectedPeer:{peerId:e}}),this._removeFromCompulsoryPeer(e),this._activeSpeakerPeers.delete(e)}index(e){return this._activeSpeakerPeers.index(e)}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(e){this._compulsoryPeers.delete(e)}}const vv=new TD;var kD=Object.defineProperty,bD=Object.getOwnPropertyDescriptor,$t=(t,e,i,r)=>{for(var n=r>1?void 0:r?bD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&kD(e,i,n),n};const _D=["ACTIVE_GRID","PAGINATED","MANUAL"];var Ze,ks,Ja,bs,Ka,za,wd,_s,Jt,yv;let bt=(yv=class extends Wt{constructor(t,e,i){super(),f(this,ks),f(this,bs),f(this,za),m(this,"waitlisted"),m(this,"joined"),m(this,"active"),m(this,"videoSubscribed"),m(this,"audioSubscribed"),m(this,"pinned"),m(this,"all"),f(this,Ze,void 0),f(this,_s,void 0),f(this,Jt,void 0),m(this,"rateLimitConfig",{maxInvocations:5,period:1}),m(this,"viewMode"),m(this,"currentPage"),m(this,"lastActiveSpeaker"),m(this,"selectedPeers",vv),v(this,Ze,t),v(this,_s,e),v(this,Jt,i),this.waitlisted=new En,this.joined=new En,this.videoSubscribed=new En,this.audioSubscribed=new En,this.active=this.videoSubscribed,this.pinned=new En,this.all=new SD,this.viewMode="ACTIVE_GRID",this.currentPage=0,this.setupEvents()}get pip(){return a(this,Ze).getValue("pip")}get rateLimits(){return this.rateLimitConfig}updateRateLimits(t,e){this.rateLimitConfig.maxInvocations=t,this.rateLimitConfig.period=e}setupEvents(){a(this,Ze).getValue("peerSessionStore").on(P.E2EE_ACTIVE_CONSUMER,({peerId:e})=>{var i;((i=a(this,Ze).getValue("modules").e2ee)==null?void 0:i.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=a(this,Ze).getValue("audioPlayback");t&&this.audioSubscribed.on("participantLeft",e=>{t.removeParticipantTrack(e.id)})}get count(){return this.joined.size}get maxActiveParticipantsCount(){var t;return(t=a(this,Ze))==null?void 0:t.getValue("maxPreferredStreams")}setMaxActiveParticipantsCount(t){if(t<0||t>24)throw new w("0 <= Max active participants count limit <= 24","1203");a(this,Ze).setValue("maxPreferredStreams",t),a(this,za,wd)&&a(this,Ze).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE)}get pageCount(){if(this.viewMode==="PAGINATED"){const t=this.selectedPeers.compulsoryPeers.length,e=this.joined.toArray().filter(i=>i.stageStatus==="ON_STAGE");return Math.ceil((e.length-t)/Math.max(this.maxActiveParticipantsCount-t,1))}return 0}acceptWaitingRoomRequest(t){var e,i;if(!a(this,bs,Ka))throw new w("Can`t accept waiting room request without joining room","1205");const r=(i=(e=this.waitlisted.get(t))==null?void 0:e.userId)!=null?i:t;return a(this,Jt).acceptWaitingRoomRequest([r])}acceptAllWaitingRoomRequest(t){return u(this,null,function*(){const e=t.map(i=>{var r,n;return(n=(r=this.waitlisted.get(i))==null?void 0:r.userId)!=null?n:i});return a(this,Jt).acceptWaitingRoomRequest(e)})}rejectWaitingRoomRequest(t){return u(this,null,function*(){var e,i;if(!a(this,bs,Ka))throw new w("Can`t reject waiting room request without joining room","1205");const r=(i=(e=this.waitlisted.get(t))==null?void 0:e.userId)!=null?i:t;a(this,Jt).rejectWaitingRoomRequest([r])})}setViewMode(t){return u(this,null,function*(){if(l.info("DyteParticipants::set_view_mode",{pageNavigation:{viewMode:t,currentPage:this.currentPage,pageCount:this.pageCount,maxActiveParticipantsCount:this.maxActiveParticipantsCount}}),!(e=>_D.includes(e))(t))throw l.error("DyteParticipants::setViewMode::invalid_view_mode",{pageNavigation:{viewMode:t,currentPage:this.currentPage,pageCount:this.pageCount,maxActiveParticipantsCount:this.maxActiveParticipantsCount}}),new w(`Invalid view mode: ${t}. Try ACTIVE_GRID, PAGINATED or MANUAL.`,"1207");if(this.viewMode===t){l.info("DyteParticipants::setViewMode::view_mode_same_as_previous");return}if(t==="MANUAL")throw new w("Manual Subscription is not enabled for your Organization. Please contact support.","1208");this.viewMode=t,t==="PAGINATED"?(this.currentPage=1,a(this,Ze).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE,{page:this.currentPage})):t==="ACTIVE_GRID"&&(this.currentPage=0,a(this,Ze).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE)),this.emit("viewModeChanged",{viewMode:t,currentPage:this.currentPage,pageCount:this.pageCount})})}subscribe(t){return u(this,arguments,function*(e,i=["audio","video","screenshareAudio","screenshareVideo"]){if(this.viewMode!=="MANUAL")throw new w("MANUAL subscription mode was not activated.","1206");const r=[];e.forEach(n=>{const s=this.joined.get(n);if(s){if(i.includes("audio")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{audio:!0}),this.videoSubscribed.add(s);const o=s.producers.find(c=>c.kind==="audio"&&!c.screenShare);o&&r.push(o)}if(i.includes("video")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{video:!0}),this.audioSubscribed.add(s);const o=s.producers.find(c=>c.kind==="video"&&!c.screenShare);o&&r.push(o)}if(i.includes("screenshareAudio")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{screenshareAudio:!0});const o=s.producers.find(c=>c.kind==="audio"&&c.screenShare);r.push(o)}if(i.includes("screenshareVideo")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{screenshareVideo:!0});const o=s.producers.find(c=>c.kind==="video"&&c.screenShare);r.push(o)}}}),yield a(this,ks,Ja).createConsumers(r)})}unsubscribe(t){return u(this,arguments,function*(e,i=["audio","video","screenshareAudio","screenshareVideo"]){if(this.viewMode!=="MANUAL")throw new w("MANUAL subscription mode was not activated.","1206");const r=[];e.forEach(n=>{const s=this.joined.get(n);if(s){if(i.includes("audio")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{audio:!1});const o=s.producers.find(c=>c.kind==="audio"&&!c.screenShare);o&&r.push(o)}if(i.includes("video")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{video:!1});const o=s.producers.find(c=>c.kind==="video"&&!c.screenShare);o&&r.push(o)}if(i.includes("screenshareAudio")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{screenshareAudio:!1});const o=s.producers.find(c=>c.kind==="audio"&&c.screenShare);r.push(o)}if(i.includes("screenshareVideo")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{screenshareVideo:!1});const o=s.producers.find(c=>c.kind==="video"&&c.screenShare);r.push(o)}}}),yield a(this,ks,Ja).closeConsumers(r)})}getPeerIdsForCurrentPage(){l.info("DyteParticipants::getPeerIdsForCurrentPage()",{pageNavigation:{viewMode:this.viewMode,currentPage:this.currentPage,pageCount:this.pageCount,maxActiveParticipantsCount:this.maxActiveParticipantsCount}});const{compulsoryPeers:t}=this.selectedPeers,e=t.filter(o=>this.joined.has(o)),i=Array.from(this.pinned.keys()).filter(o=>!e.includes(o)),r=Array.from(this.joined.toArray().filter(o=>o.stageStatus==="ON_STAGE").map(o=>o.id)),n=Math.max((this.currentPage-1)*(this.maxActiveParticipantsCount-e.length-i.length)),s=this.currentPage*(this.maxActiveParticipantsCount-e.length-i.length);return e.concat(i,r.slice(n,s))}setPage(t){return u(this,null,function*(){if(l.info("DyteParticipants::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 l.error("DyteParticipants::invalid_page_number"),new w(`Invalid page: ${t}. Page must be an integer and greater than 0 and less than or equal to .pageCount`,"1202");this.currentPage=t,a(this,Ze).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE,{page:t}),this.emit("pageChanged",{viewMode:this.viewMode,currentPage:this.currentPage,pageCount:this.pageCount})}})}disableAllAudio(t){return u(this,null,function*(){if(l.info("DyteParticipants::disable_all_audio",{actions:{disableAllAudio:{allowUnmute:t}}}),!a(this,za,wd))throw new w("Can`t disable all audio without joining room","1205");if(a(this,_s).permissions.canAllowParticipantAudio)return a(this,ks,Ja).muteAll(t);throw l.error("DyteParticipants::unauthorized_disable_all_audio",{actions:{disableAllAudio:{allowUnmute:t}}}),new w("Unauthorized: User does not have permission to disable peer audio.","1201")})}disableAllVideo(){return u(this,null,function*(){if(l.info("DyteParticipants::disable_all_video"),!a(this,za,wd))throw new w("Can`t disable all video without joining room","1205");if(a(this,_s).permissions.canAllowParticipantVideo)return a(this,ks,Ja).muteAllVideo();throw l.error("DyteParticipants::unauthorized_disable_all_video"),new w("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 a(this,Ze).getValue("peerSessionStore").emitAsync(P.KICK_PEER,{peerId:t})})}kickAll(){return u(this,null,function*(){if(l.info("DyteParticipants::kick_all"),a(this,Ze).getValue("viewType")!=="LIVESTREAM"&&!a(this,bs,Ka))throw new w("Can`t kick all without joining room","1205");if(!a(this,_s).permissions.kickParticipant)throw l.error("DyteParticipants::unauthorized_kick_all"),new w("Unauthorized: User does not have permission to kick peers.","1201");const t=z.hasFeature(ie.PROPAGATE_KICK_ALL);a(this,Jt).kickAll(t)})}broadcastMessage(t,e,i){return u(this,null,function*(){if(l.info("DyteParticipants::broadcastMessage"),!a(this,bs,Ka))throw new w("Can`t broadcast message without joining room","1205");if(!(t!=null&&t.trim()))throw new w("`type` must be a non-empty string.","1209");if(i)if("meetingIds"in i)yield a(this,Jt).broadcastToMeetings(t,i.meetingIds,e);else{let r=[];"participantIds"in i?r=i.participantIds:r=this.joined.toArray().filter(n=>{var s;return(s=i.presetNames)==null?void 0:s.includes(n.presetName)}).map(n=>n.id),yield a(this,Jt).broadcastToPeers(t,r,e)}else yield a(this,Jt).broadcastMessage(t,e)})}getAllJoinedPeers(t,e,i){return u(this,null,function*(){return(yield a(this,Jt).getRoomPeers(t,e,i)).peers.map(ir.formatSocketServiceMessage)})}updatePermissions(t,e){return u(this,null,function*(){const i=this.joined.toArray().filter(n=>t.includes(n.id)).map(n=>n.userId),r=[...new Set(i)];if(!r.length)throw new w("Cannot update permissions, no valid userIDs found","1204");a(this,Jt).updatePermissions(r,e)})}getParticipantsInMeetingPreJoin(){return u(this,null,function*(){return a(this,Jt).getRoomPeersNonPaginated()})}},Ze=new WeakMap,ks=new WeakSet,Ja=function(){return a(this,Ze).getValue("roomNodeClient")},bs=new WeakSet,Ka=function(){var t;return((t=a(this,Ze).getValue("connectionHandler"))==null?void 0:t.socketJoined)===!0},za=new WeakSet,wd=function(){var t;return((t=a(this,Ze).getValue("connectionHandler"))==null?void 0:t.mediaJoined)===!0},_s=new WeakMap,Jt=new WeakMap,yv);$t([S.trace("DyteParticipants.setViewMode")],bt.prototype,"setViewMode",1),$t([S.trace("DyteParticipants.setPage")],bt.prototype,"setPage",1),$t([S.trace("DyteParticipants.disableAllAudio")],bt.prototype,"disableAllAudio",1),$t([S.trace("DyteParticipants.disableAllVideo")],bt.prototype,"disableAllVideo",1),$t([S.trace("DyteParticipants.disablePeerAudio")],bt.prototype,"disableAudio",1),$t([S.trace("DyteParticipants.disablePeerVideo")],bt.prototype,"disableVideo",1),$t([S.trace("DyteParticipants.kickPeer")],bt.prototype,"kick",1),$t([S.trace("DyteParticipants.kickAll")],bt.prototype,"kickAll",1),$t([S.trace("DyteParticipants.broadcastMessage"),At(es,"rateLimitConfig")],bt.prototype,"broadcastMessage",1),$t([S.trace("DyteParticipants.getAllJoinedPeers"),At({maxInvocations:10,period:60})],bt.prototype,"getAllJoinedPeers",1),$t([S.trace("DyteParticipant.updatePermissions"),At({maxInvocations:1e3,period:60})],bt.prototype,"updatePermissions",1),$t([S.trace("DyteParticipants.getParticipantsInMeetingPreJoin")],bt.prototype,"getParticipantsInMeetingPreJoin",1),bt=$t([ut("1200")],bt);var ws=(t=>(t.NEW="new",t.CONNECTING="connecting",t.RECONNECTING="reconnecting",t.DISCONNECTED="disconnected",t.CONNECTED="connected",t.FAILED="failed",t.CLOSED="closed",t))(ws||{}),Ne=(t=>(t[t.HIVE=1]="HIVE",t[t.ROOM_NODE=2]="ROOM_NODE",t[t.CF=3]="CF",t))(Ne||{}),wD=Object.defineProperty,ID=Object.getOwnPropertyDescriptor,kn=(t,e,i,r)=>{for(var n=r>1?void 0:r?ID(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&wD(e,i,n),n},Cr,Ya,Qa,Is,Xa,Sv;const Id=(Sv=class{constructor(t,e,i,r){switch(m(this,"participants"),m(this,"self"),m(this,"selectedPeers",vv),m(this,"maxSpatialLayerUpdates",new Map),m(this,"consumerPeerMap"),m(this,"events"),m(this,"roomSocketHandler"),m(this,"context"),m(this,"videoPeerConsumerMap",new Map),f(this,Cr,{mode:"ACTIVE_GRID",page:0}),f(this,Ya,new En),f(this,Qa,new En),f(this,Is,!1),f(this,Xa,!1),m(this,"updateConsumerSpatialLayers",su(()=>{const n={},s=new Map(this.maxSpatialLayerUpdates);this.maxSpatialLayerUpdates.clear(),Array.from(s.entries()).forEach(([o,c])=>{n[c]===void 0&&(n[c]={layer:c,consumerIds:[]}),n[c].consumerIds.push(o)}),Object.keys(n).forEach(o=>{const c=n[o];l.log(`Switching max spatial layer to ${c.layer}`,{consumerIds:c.consumerIds}),this.roomNodeClient.switchConsumersToLayer(c.consumerIds,c.layer)})},2e3)),m(this,"updateConsumers",(n,s)=>u(this,null,function*(){try{n.length!==0&&(l.info("Queueing create consumers for producers",{producers:n}),yield this.roomNodeClient.createConsumers(n))}catch(o){l.error("Error activating peers",{error:o})}try{s.length!==0&&(l.info("Queueing close consumers for producers",{producers:s}),yield this.roomNodeClient.closeConsumers(s))}catch(o){l.error("Error deactivating peers",{error:o})}})),this.context=t,this.roomSocketHandler=i,this.participants=new bt(t,e,this.roomSocketHandler),this.self=e,this.consumerPeerMap=new Map,r){case Ne.HIVE:{this.events=ii;break}case Ne.CF:{this.events=gi;break}default:this.events=ii}e.config.viewType!=="CHAT"&&this.setupEventsGlobal(),this.setupEvents()}get roomNodeClient(){return this.context.getValue("roomNodeClient")}get mediaJoined(){var t;return((t=this.roomNodeClient)==null?void 0:t.mediaJoined)===!0}get pip(){return this.context.getValue("pip")}setupEvents(){this.roomSocketHandler.on(B.getWaitingRoomRequests,this.waitingRoomRequestHandler.bind(this)),this.context.getValue("peerSessionStore").on(P.SOCKET_PEERS,t=>u(this,null,function*(){const e=z.hasFeature(ie.DEBUG_SOCKET_JOIN);if(e){const i=t&&(t==null?void 0:t.length)<20?{peers:JSON.stringify(t.map(r=>r.peerId))}:void 0;l.info("Processing socket peers",i)}t==null||t.forEach(i=>{i.waitlisted||this.onParticipantJoined(this.fromSocketService(i))}),e&&l.info("Processed socket peers")})),this.roomSocketHandler.on(this.events.peerJoinedBroadcast,({participant:t})=>{z.hasFeature(ie.DEBUG_SOCKET_JOIN)&&l.info("events.peerJoinedBroadcast",{peers:t.peerId}),this.onMediaJoined(t.peerId,t.producerStates,t.capabilities)}),this.roomSocketHandler.on(this.events.selfJoinComplete,({participants:t,selectedPeers:e,roomState:i})=>{if(z.hasFeature(ie.DEBUG_SOCKET_JOIN)){const s=t&&(t==null?void 0:t.length)<20?{peers:JSON.stringify(t.map(o=>o.peerId))}:void 0;l.info("events.selfJoinComplete",s)}t.forEach(({peerId:s,producerStates:o,capabilities:c})=>this.onMediaJoined(s,o,c));const{audioPeers:r,compulsoryPeers:n}=e!=null?e:{};i.pinnedPeerIds.length!==0&&this.onParticipantPinned(i.pinnedPeerIds[0]),this.computeActivateParticipants(r!=null?r:[],n),this.context.getValue("peerSessionStore").emit(P.UPDATE_ACTIVE,{createAllConsumers:!0})}),this.context.getValue("peerSessionStore").on(P.MAX_SPATIAL_LAYER_CHANGE,({peerId:t,maxSpatialLayer:e})=>{const i=this.videoPeerConsumerMap.get(t);i&&(this.maxSpatialLayerUpdates.set(i,e),this.updateConsumerSpatialLayers())}),this.context.getValue("peerSessionStore").on(P.NEW_PRODUCER,({peerId:t,producer:e})=>{const i=this.participants.joined.get(t);if(!i){l.warn("ParticipantController::NEW_PRODUCER::participant not found",{producer:{id:e==null?void 0:e.producerId,kind:e==null?void 0:e.kind,status:"UNKNOWN",appData:{screenShare:e==null?void 0:e.screenShare}},dyteParticipant:{id:t}});return}if(i.producers.push(e),l.info("ParticipantController::NEW_PRODUCER::producer_added_to_participant",{producer:{id:e==null?void 0:e.producerId,peerId:t,kind:e==null?void 0:e.kind,status:"UNKNOWN",appData:{screenShare:e==null?void 0:e.screenShare}}}),this.participants.viewMode==="MANUAL"){let r=!1;const n=e.kind==="audio",s=e.kind==="video",o=i.manualProducerConfig;(n&&(o.audio&&!e.screenShare||o.screenshareAudio&&e.screenShare)||s&&(o.video&&!e.screenShare||o.screenshareVideo&&e.screenShare))&&(r=!0),r?this.roomNodeClient.createConsumers([e]):l.info("ParticipantController::NEW_PRODUCER::not_consuming_producer",{producer:{id:e==null?void 0:e.producerId,peerId:t,kind:e==null?void 0:e.kind,status:"UNKNOWN",appData:{screenShare:e==null?void 0:e.screenShare}}});return}(e==null?void 0:e.kind)==="audio"&&this.participants.audioSubscribed.get(t)||(e==null?void 0:e.kind)==="video"&&this.participants.videoSubscribed.get(t)||e!=null&&e.screenShare?this.roomNodeClient.createConsumers([e]).catch(r=>{l.error("ParticipantController::createConsumer failed",{error:r})}):l.info("ParticipantController::NEW_PRODUCER::not_consuming_producer",{producer:{id:e==null?void 0:e.producerId,peerId:t,kind:e==null?void 0:e.kind,status:"UNKNOWN",appData:{screenShare:e==null?void 0:e.screenShare}}})}),this.context.getValue("peerSessionStore").on(P.PRODUCER_CLOSED,({peerId:t,producerId:e})=>{const i=this.participants.joined.get(t);if(!i){l.warn("ParticipantController::NEW_PRODUCER::participant not found",{dyteParticipant:{id:t}});return}i.producers=i.producers.filter(r=>r.producerId!==e)}),this.context.getValue("peerSessionStore").on(P.PRODUCER_TOGGLE,({peerId:t,producerId:e,paused:i,kind:r})=>{const n=this.participants.joined.get(t);if(n){r==="audio"&&n.setAudioEnabled(!i);const s=n.producers.find(o=>o.producerId===e);s&&(s.pause=i)}}),this.roomSocketHandler.on(this.events.globalPeerPinBroadcast,t=>{let e;if(t&&(e=t.participantId),!this.mediaJoined)return;const i=e;this.onParticipantPinned(i);const r=this.participants.joined.get(i);r&&this.roomNodeClient.activatePeers(r.producers).catch(n=>{l.error("unable to create consumers",{error:n})})}),this.roomSocketHandler.on(this.events.selectedPeer,({audioPeers:t,compulsoryPeers:e})=>{this.mediaJoined&&this.onSelectedPeers(e.concat(t))}),this.roomSocketHandler.on(this.events.selectedPeerDiff,({entries:t})=>{if(!this.mediaJoined)return;const e=t.map(i=>({peerId:i.peerId,priority:i.priority}));this.updateActiveParticipantsWithPriorities(e,!0)})}waitingRoomRequestHandler(t){const e=t.requests.filter(r=>!this.participants.waitlisted.toArray().find(n=>n.userId===r.userId)),i=this.participants.waitlisted.toArray().filter(r=>!t.requests.find(n=>n.userId===r.userId));e.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))),i.forEach(r=>this.participants.waitlisted.delete(r.id))}get maxPreferredStreams(){return this.participants.maxActiveParticipantsCount}selectPagePeers(t){const{compulsoryPeers:e}=this.selectedPeers,i=e.filter(c=>this.participants.joined.has(c)),r=Array.from(this.participants.pinned.keys()).filter(c=>!i.includes(c)),n=Array.from(this.participants.joined.toArray().filter(c=>c.stageStatus==="ON_STAGE").map(c=>c.id)),s=Math.max((t-1)*(this.maxPreferredStreams-i.length-r.length)),o=t*(this.maxPreferredStreams-i.length-r.length);return i.concat(r,n.slice(s,o))}selectActivePeers(t){const e=new Map,i=Array.from(this.participants.joined.toArray().filter(p=>p.stageStatus==="ON_STAGE").map(p=>(e.set(p.id,!0),p.id))),r=this.selectedPeers.peers,n=this.participants.pinned.toArray().reduce((p,g)=>(g.stageStatus!=="ON_STAGE"?this.participants.pinned.delete(g.id):p.push(g.id),p),[]),s=this.self.stageStatus==="ON_STAGE"?1:0,o=t-s,c=new Set(r.concat(n).filter(p=>p!==this.self.id&&e.has(p)));let d=Array.from(c);const h=o-c.size;if(h>=0){const p=i.filter(g=>!c.has(g)&&g!==this.self.id).slice(0,h);d=Array.from(c).concat(p)}else d=d.slice(0,o);return d}updateSubscriptions(t,e){const{page:i,createAllConsumers:r}=e!=null?e:{};t&&a(this,Cr).mode!==t&&(a(this,Cr).mode=t),i&&a(this,Cr).page!==i&&(a(this,Cr).page=i);const{mode:n,page:s}=a(this,Cr);switch(r&&(a(this,Ya).clear(),a(this,Qa).clear()),n){case"PAGINATED":{if(!s)return;const o=this.selectPagePeers(s),c=this.selectActivePeers(this.participants.maxActiveParticipantsCount+4);this.updateParticipantsMap(this.participants.videoSubscribed,o),this.updateParticipantsMap(this.participants.audioSubscribed,c),l.debug("ParticipantController::updateActive::updating_current_page_peers",{peerIds:o});break}case"ACTIVE_GRID":{const o=this.selectActivePeers(this.participants.maxActiveParticipantsCount),c=this.selectActivePeers(this.participants.maxActiveParticipantsCount+4);this.updateParticipantsMapMinReplacement(this.participants.videoSubscribed,o),this.updateParticipantsMap(this.participants.audioSubscribed,c);break}default:throw new Error(`View mode ${t} not supported`)}setTimeout(()=>this.syncConsumers(),a(this,Cr).mode==="PAGINATED"&&!a(this,Is)?200:0)}syncConsumers(){return u(this,null,function*(){var t,e,i;if(((i=(e=(t=this.context.getValue("connectionHandler"))==null?void 0:t.mediaState)==null?void 0:e.recv)==null?void 0:i.state)!=="connected")return;if(a(this,Is)){v(this,Xa,!0);return}v(this,Is,!0),v(this,Xa,!1);const[r,n]=Id.mapDiff(a(this,Ya),this.participants.videoSubscribed);this.updateParticipantsMap(a(this,Ya),this.participants.videoSubscribed.toArray().filter(({videoEnabled:h})=>!!h).map(({id:h})=>h));const[s,o]=Id.mapDiff(a(this,Qa),this.participants.audioSubscribed);this.updateParticipantsMap(a(this,Qa),this.participants.audioSubscribed.toArray().filter(({audioEnabled:h})=>!!h).map(({id:h})=>h));const c=[...this.mapPeerIdsToProducers(r,["video"]),...this.mapPeerIdsToProducers(s,["audio"])],d=[...this.mapPeerIdsToProducers(n,["video"]),...this.mapPeerIdsToProducers(o,["audio"])];try{(c.length>0||d.length>0)&&(yield this.updateConsumers(c,d))}finally{v(this,Is,!1)}a(this,Xa)&&this.syncConsumers()})}static mapDiff(t,e){const i=[],r=[],n=Array.from(t.keys()),s=Array.from(e.keys());return n.forEach(o=>{s.includes(o)||r.push(o)}),s.forEach(o=>{n.includes(o)||i.push(o)}),[i,r]}computeActivateParticipants(t,e){const i=t.map((n,s)=>({peerId:n,priority:s+1})),r=e==null?void 0:e.map((n,s)=>({peerId:n,priority:-(s+1)}));i.push(...r!=null?r:[]),i.length>0&&this.updateActiveParticipantsWithPriorities(i)}fromSocketService(t){const e=Id.formatSocketServiceMessage(t);return new tr(this.context,j(L({},e),{isHost:!1,videoEnabled:!1,audioMuted:!0,videoTrack:void 0,audioTrack:void 0}),this.self,this.roomSocketHandler)}updatePipSource(t,e){var i,r;e?(i=this.pip)==null||i.enableSource(t):(r=this.pip)==null||r.disableSource(t)}onMediaJoined(t,e,i){if(!this.mediaJoined||t===this.self.id)return;const r=this.participants.joined.get(t);if(!r){l.warn(`Received media.peerJoinedBroadcast for non-existent peer ${t}`);return}e.forEach(n=>{n.kind===Li.AUDIO&&!n.screenShare?r.setAudioEnabled(!n.pause):n.kind===Li.VIDEO&&!n.screenShare&&(r.setVideoEnabled(!n.pause),this.updatePipSource(r.id,!n.pause)),r.producers.push(j(L({},n),{producingTransportId:n.producingTransportId,kind:n.kind===Li.AUDIO?"audio":"video",producingPeerId:t,mimeType:n.mimeType}))}),this.roomNodeClient.handlePeerCapabilities(t,i),z.hasFeature(ie.FORCE_VIDEO_CODEC)||this.roomNodeClient.shareWebcam(this.self.videoTrack),this.context.getValue("peerSessionStore").emit(P.UPDATE_ACTIVE)}updateParticipantsMapMinReplacement(t,e){const i=Array.from(t.keys()),r=new Map(t),n=new Set(e),s=[];i.forEach((o,c)=>{(!n.has(o)||!this.participants.joined.get(o))&&s.push(c)}),e.forEach(o=>{if(t.get(o))return;if(i.length<e.length){i.push(o);return}const c=s.shift();i[c]=o}),s.forEach(o=>{i.splice(o,1)}),Array.from(t.keys()).forEach(o=>{t.delete(o,!n.has(o))}),i.forEach(o=>{if(!this.participants.joined.get(o)){l.warn("updateActiveParticipants::participant_not_in_joined_list",{dyteParticipant:{id:o}});return}t.add(this.participants.joined.get(o),!r.get(o))}),t.emit("participantsUpdate")}updateParticipantsMap(t,e){Array.from(t.keys()).forEach(i=>{e.includes(i)||t.delete(i,!0)}),e.forEach(i=>{t.get(i)||t.add(this.participants.joined.get(i),!0)}),t.emit("participantsUpdate")}updatePinnedParticipants(){this.participants.pinned.forEach(t=>{t.setIsPinned(!1),this.participants.pinned.delete(t.id)})}setupEventsGlobal(){this.roomSocketHandler.on(B.joinRoom,({peer:t})=>{if(!t.waitlisted){const e=z.hasFeature(ie.DEBUG_SOCKET_JOIN);e&&l.info("Processing socket join",{peers:t.peerId}),this.onParticipantJoined(this.fromSocketService(t)),e&&l.info("Processed socket join",{peers:t.peerId})}}),this.roomSocketHandler.on(B.leaveRoom,t=>{const{peerId:e}=t.peer;this.selectedPeers.delete(e),this.onParticipantLeave(e)}),this.context.getValue("peerSessionStore").on(P.SOCKET_SERVICE_ROOM_JOINED,()=>{this.self.permissions.acceptWaitingRequests&&this.roomSocketHandler.getWaitingRoomRequests()}),this.self.permissions.on("permissionsUpdate",t=>{const{acceptWaitingRequests:e}=t;e!==void 0&&(e?this.roomSocketHandler.getWaitingRoomRequests():this.participants.waitlisted.clear())}),this.context.getValue("peerSessionStore").on(P.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(P.CONSUMER_PAUSED,({id:t})=>{this.processConsumerPaused(t)}),this.context.getValue("peerSessionStore").on(P.CONSUMER_RESUMED,({id:t})=>{this.processConsumerResumed(t)}),this.context.getValue("peerSessionStore").on(P.NEW_CONSUMER,({id:t})=>{this.processNewConsumer(t)}),this.context.getValue("peerSessionStore").on(P.CONSUMER_CLOSED,({id:t})=>{this.processConsumerClosed(t)}),this.context.getValue("peerSessionStore").on(P.ROOM_MESSAGE,t=>u(this,[t],function*({payload:e,type:i,timestamp:r}){this.participants.emit("broadcastedMessage",{type:i,payload:e,timestamp:r})})),this.context.getValue("peerSessionStore").on(P.MESSAGE,t=>u(this,[t],function*({payload:e,type:i,timestamp:r}){i!=="spotlight"&&this.participants.emit("broadcastedMessage",{type:i,payload:e,timestamp:r})})),this.context.getValue("peerSessionStore").on(P.LOW_CONSUMER_SCORE,({peerId:t,score:e,kind:i})=>{const r=this.participants.joined.get(t);r&&(r.emit("poorConnection",{score:e,kind:i}),this.participants.emit("poorConnection",{participantId:t,score:e,kind:i}))}),this.context.getValue("peerSessionStore").on(P.CONSUMER_SCORE_UPDATE,({score:t,kind:e,appData:i,peerId:r,scoreStats:n})=>{var s;const o=e==="video"&&((s=i==null?void 0:i.screenShare)!=null?s:!1),c=this.participants.joined.get(r);c&&(c.emit("mediaScoreUpdate",{kind:e,isScreenshare:o,score:t,participantId:r,scoreStats:n}),this.participants.emit("mediaScoreUpdate",{kind:e,isScreenshare:o,score:t,participantId:r,scoreStats:n}))}),this.context.getValue("peerSessionStore").onAsync(P.KICK_PEER,t=>u(this,[t],function*({peerId:e}){const i=this.participants.joined.get(e);this.roomNodeClient.kick(e),yield this.roomSocketHandler.kick(e),i?i.emit("kicked"):this.participants.joined.emit("kicked",{id:e})})),this.context.getValue("peerSessionStore").on(P.UPDATE_ACTIVE,(...t)=>u(this,[...t],function*({page:e,createAllConsumers:i}={}){this.updateSubscriptions(e?"PAGINATED":"ACTIVE_GRID",{page:e,createAllConsumers:i})}))}onParticipantPinned(t){return u(this,null,function*(){if(!t){this.self.isPinned&&this.self.setIsPinned(!1),this.participants.pinned.size!==0&&this.updatePinnedParticipants();return}if(t===this.self.id){this.participants.pinned.size!==0&&this.updatePinnedParticipants(),this.self.setIsPinned(!0);return}const e=this.participants.joined.get(t);this.self.isPinned&&this.self.setIsPinned(!1),this.updatePinnedParticipants(),e.setIsPinned(!0),this.participants.pinned.add(e)})}onParticipantJoined(t){return u(this,null,function*(){var e,i,r;this.self.id!==t.id&&!((e=t.flags)!=null&&e.recorder)&&!((i=t.flags)!=null&&i.hidden_participant)&&!((r=t.flags)!=null&&r.hiddenParticipant)&&(this.participants.videoSubscribed.delete(t.id),this.participants.audioSubscribed.delete(t.id),this.participants.joined.add(t),this.participants.waitlisted.delete(t.id),t.stageStatus==="REQUESTED_TO_JOIN_STAGE"&&this.context.getValue("peerSessionStore").emit(P.UPDATE_STAGE_REQUESTS,{request:{displayName:t.name,userId:t.userId,peerId:t.id},add:!0})),this.context.getValue("peerSessionStore").emit(P.PEER_JOINED_INTERNAL,t)})}onParticipantLeave(t){return u(this,null,function*(){const e=this.participants.joined.get(t);this.participants.joined.delete(t,!0,!0),this.participants.pinned.delete(t,!0,!0),this.participants.waitlisted.delete(t,!0,!0),this.roomNodeClient&&(this.roomNodeClient.handlePeerLeaving(t),this.roomNodeClient.closeConsumers(e==null?void 0:e.producers)),e&&e.stageStatus==="REQUESTED_TO_JOIN_STAGE"&&this.context.getValue("peerSessionStore").emit(P.UPDATE_STAGE_REQUESTS,{request:{displayName:e.name,userId:e.userId,peerId:e.id},add:!1});const{currentPage:i}=this.participants,r=this.maxPreferredStreams*(i-1),n=this.participants.videoSubscribed.get(t);r===0?this.participants.setViewMode("ACTIVE_GRID"):this.participants.joined.size<=r?i===2?this.participants.setViewMode("ACTIVE_GRID"):this.participants.setPage(i-1):n&&this.updateSubscriptions(i?"PAGINATED":"ACTIVE_GRID",{page:i})})}processMedia(t){var e;const i=this.roomNodeClient.getConsumers(),{peerId:r,kind:n,appData:s,track:o,producerId:c,rtpReceiver:d,paused:h}=(e=i.get(t))!=null?e:{};if(!r)return l.warn("processMedia::Peer ID is undefined",{consumer:{id:t,kind:n,peerId:r,appData:{supportsRemoteControl:!!(s!=null&&s.supportsRemoteControl),screenShare:!!(s!=null&&s.screenShare)},remotelyPaused:h,producerId:c}}),{};const p=s;return n==="video"&&p.screenShare!==!0&&this.videoPeerConsumerMap.set(r,t),l.info("ParticipantController::processMedia",{consumer:{id:t,peerId:r,kind:n,appData:p,remotelyPaused:h,producerId:c}}),this.consumerPeerMap.set(t,{type:n,peerId:r,appData:p,remotelyPaused:h,producerId:c}),{peerId:r,kind:n,appData:p,remotelyPaused:h,track:o,producerId:c,rtpReceiver:d}}processConsumerClosed(t){const{peerId:e,type:i,appData:r,remotelyPaused:n,producerId:s}=this.consumerPeerMap.get(t)||{},o=this.participants.joined.get(e);if(l.info("ParticipantController::processConsumerClosed",{consumer:{id:t,peerId:e,appData:r,kind:i,remotelyPaused:n,producerId:s}}),this.consumerPeerMap.delete(t),i==="video"&&r.screenShare!==!0&&this.videoPeerConsumerMap.delete(e),!o)return;const c=[];r&&r.screenShare?(o.setScreenShareEnabled(!1),J.consumerSharedMediaState(t,{screen:!1}),o.screenShareTracks.video&&c.push(o.screenShareTracks.video.id),o.screenShareTracks.audio&&c.push(o.screenShareTracks.audio.id),o.screenShareTracks={audio:void 0,video:void 0}):i==="audio"?(o.setAudioEnabled(!1),o.audioTrack&&c.push(o.audioTrack.id),J.consumerSharedMediaState(t,{audio:!1}),o.audioTrack=void 0):i==="video"&&(o.setVideoEnabled(!1),this.updatePipSource(o.id,!1),o.videoTrack&&c.push(o.videoTrack.id),J.consumerSharedMediaState(t,{video:!1}),o.videoTrack=void 0),r.e2ee&&c.forEach(d=>{this.context.getValue("peerSessionStore").emit(P.E2EE_INACTIVE_CONSUMER,{peerId:e,trackId:d})})}processConsumerResumed(t){const{peerId:e,kind:i,appData:r,track:n,remotelyPaused:s,producerId:o,rtpReceiver:c}=this.processMedia(t);if(!e)return;l.info("ParticipantController::processConsumerResumed",{consumer:{id:t,peerId:e,kind:i,appData:r,remotelyPaused:s,producerId:o}});const d=this.participants.joined.get(e);if(d){if(r.e2ee&&this.context.getValue("peerSessionStore").emit(P.E2EE_ACTIVE_CONSUMER,{peerId:e,rtpReceiver:c,track:n}),r.screenShare){i==="video"?d.screenShareTracks.video=n:i==="audio"&&(d.screenShareTracks.audio=n),d.setScreenShareEnabled(!0),J.consumerSharedMediaState(t,{screen:!0});return}i==="video"?(d.videoTrack=n,d.setVideoEnabled(!0),this.updatePipSource(d.id,!0),J.consumerSharedMediaState(t,{video:!0})):i==="audio"&&(d.audioTrack=n,d.setAudioEnabled(d.audioEnabled),J.consumerSharedMediaState(t,{audio:d.audioEnabled}))}}processConsumerPaused(t){l.info(`ParticipantController::processConsumerPaused called for consumerId: ${t}`);const{peerId:e,kind:i,track:r,appData:n,remotelyPaused:s,producerId:o}=this.processMedia(t);if(!e)return;l.info("ParticipantController::processConsumerPaused",{consumer:{id:t,peerId:e,kind:i,appData:n,remotelyPaused:s,producerId:o}});const c=this.participants.joined.get(e);c&&(r&&n.e2ee&&this.context.getValue("peerSessionStore").emit(P.E2EE_INACTIVE_CONSUMER,{peerId:e,trackId:r.id}),i==="video"?(c.videoTrack=r,c.setVideoEnabled(!1),this.updatePipSource(c.id,!1),J.consumerSharedMediaState(t,{video:!1})):i==="audio"&&(c.audioTrack=r,c.setAudioEnabled(c.audioEnabled),J.consumerSharedMediaState(t,{audio:c.audioEnabled})))}processNewConsumer(t){const{peerId:e,kind:i,remotelyPaused:r,track:n,appData:s,producerId:o,rtpReceiver:c}=this.processMedia(t);if(!e)return;l.info("ParticipantController::processNewConsumer",{consumer:{id:t,peerId:e,kind:i,remotelyPaused:r,appData:s,producerId:o}});const d=this.participants.joined.get(e);if(d){if(s.screenShare){i==="video"?d.screenShareTracks.video=n:i==="audio"&&(d.screenShareTracks.audio=n),(!r||this.self.permissions.isRecorder||z.hasFeature(ie.SCREEENSHARE_ERR_HACK))&&d.setScreenShareEnabled(!0),s.supportsRemoteControl&&(d.supportsRemoteControl=!0),this.participants.broadcastMessage("screenshareConsumerCreated",{producerId:o,peerId:e,screenShare:!0,consumerId:t,consumerPeerId:this.self.id}),l.info("ParticipantController::newScreenshareConsumer::screenshareConsumerCreated",{consumer:{id:t,peerId:e,kind:i,remotelyPaused:r,appData:s,producerId:o}});return}i==="video"?(d.videoTrack=n,r||(d.setVideoEnabled(!0),this.updatePipSource(d.id,!0)),J.consumerSharedMediaState(t,{video:!r})):i==="audio"&&(d.audioTrack=n,r||d.setAudioEnabled(!0),J.consumerSharedMediaState(t,{audio:!r})),!r&&s.e2ee&&this.context.getValue("peerSessionStore").emit(P.E2EE_ACTIVE_CONSUMER,{peerId:e,rtpReceiver:c,track:n})}}static formatSocketServiceMessage(t){var e,i,r,n,s,o;if(!t)return;const c=Fu(t.stageType);return{id:t.peerId,userId:t.userId,name:t.displayName,displayName:t.displayName,stageType:c,customParticipantId:t.customParticipantId,presetId:t.presetId,picture:t.displayPictureUrl,waitlisted:t.waitlisted,stageStatus:c,metadata:{preset_name:(e=t.flags)==null?void 0:e.presetName},recorderType:(i=t.flags)==null?void 0:i.recorderType,flags:{hiddenParticipant:(r=t.flags)==null?void 0:r.hiddenParticipant,hidden_participant:(n=t.flags)==null?void 0:n.hiddenParticipant,recorder:((s=t.flags)==null?void 0:s.recorderType)!==void 0&&((o=t.flags)==null?void 0:o.recorderType)!=="NONE"}}}mapPeerIdsToProducers(t,e){const i=(r,n)=>r.filter(({kind:s,screenShare:o})=>n.includes(s)||o&&n.includes("screenshare"));return t.flatMap(r=>{const n=this.participants.joined.get(r);if(n)return i(n.producers,e)}).filter(r=>!!r)}onSelectedPeers(t,e){return u(this,null,function*(){this.participants.viewMode==="ACTIVE_GRID"&&this.computeActivateParticipants(t,e)})}updateActiveParticipantsWithPriorities(t,e=!1){if(!this.mediaJoined){l.warn("Skipped::ParticipantController::updateActiveParticipantsWithPriorities",{roomJoined:this.mediaJoined});return}t.forEach(r=>{this.selectedPeers.add(r.peerId,r.priority)});const i=this.selectedPeers.activeSpeakerPeers.at(0);i!==void 0&&i!==this.participants.lastActiveSpeaker&&(this.participants.lastActiveSpeaker=i,this.participants.emit("activeSpeaker",{peerId:i,volume:1})),e&&this.updateSubscriptions(this.participants.viewMode)}},Cr=new WeakMap,Ya=new WeakMap,Qa=new WeakMap,Is=new WeakMap,Xa=new WeakMap,Sv);let ir=Id;kn([S.trace("ParticipantController.setupEvents")],ir.prototype,"setupEvents",1),kn([S.trace("ParticipantController.setupEvents")],ir.prototype,"setupEventsGlobal",1),kn([S.trace("ParticipantController.processMedia")],ir.prototype,"processMedia",1),kn([S.trace("ParticipantController.processConsumerClosed")],ir.prototype,"processConsumerClosed",1),kn([S.trace("ParticipantController.processConsumerResumed")],ir.prototype,"processConsumerResumed",1),kn([S.trace("ParticipantController.processConsumerPaused")],ir.prototype,"processConsumerPaused",1),kn([S.trace("ParticipantController.processNewConsumer")],ir.prototype,"processNewConsumer",1);const _e=vi(iu().permissions);var q,Za,Cs,nh,Nt,Kt;const eo=class extends Wt{constructor(t,e,i,r=!1){if(super(),f(this,Nt),f(this,q,void 0),f(this,Za,void 0),f(this,Cs,void 0),f(this,nh,n=>{var s,o,c;const d=n,{chat:h,connectedMeetings:p,plugins:g,polls:y,media:T}=d,b=vc(d,["chat","connectedMeetings","plugins","polls","media"]);if(h&&(h.private&&pr(a(this,q).chat.private,h.private),h.public&&pr(a(this,q).chat.public,h.public),this.emit("chatUpdate")),p&&pr(a(this,q).connectedMeetings,p),T){const O=x=>{switch(x){case yr.NONE:return H.Allowed;case yr.ALLOWED:return H.Allowed;case yr.NOT_ALLOWED:return H.NotAllowed;case yr.CAN_REQUEST:return H.CanRequest;default:return}},R={audio:void 0,video:void 0,screenshare:void 0};(s=T.audio)!=null&&s.canProduce&&(R.audio={canProduce:O(T.audio.canProduce)}),(o=T.video)!=null&&o.canProduce&&(R.video={canProduce:O(T.video.canProduce)}),(c=T.screenshare)!=null&&c.canProduce&&(R.screenshare={canProduce:O(T.screenshare.canProduce)}),pr(a(this,q).media,R)}g&&(pr(a(this,q).plugins,g),this.emit("pluginsUpdate")),y&&(pr(a(this,q).polls,y),this.emit("pollsUpdate")),Object.keys(b).length!==0&&pr(a(this,q),b),this.emit("permissionsUpdate",n)}),!e)throw l.error("DytePermissionsPreset::load_preset_permissions_failed"),new w("Could not load preset permissions.","0904");v(this,Cs,t),v(this,Za,i),v(this,q,e),r&&this.setupEvents()}setupEvents(){a(this,Cs).getValue("peerSessionStore").on(P.UPDATE_PERMISSIONS,a(this,nh))}static fromResponse(t,e,i){return new eo(i,t,e,!0)}static default(t,e){return new eo(t,_e,e)}static init(t,e,i){let r;return i?r=new eo(t,i,e,!0):r=new eo(t,_e,e),r}get mediaRoomType(){const{sfu:t}=a(this,Cs).getValue("roomNodeOptions");return t===Ne.CF?"CF":"HIVE"}get stageEnabled(){var t;return((t=a(this,q))==null?void 0:t.stageEnabled)||a(this,Za)===Rt.Webinar||a(this,Za)===Rt.Livestream}get acceptStageRequests(){var t,e;return this.stageEnabled?((t=a(this,q))==null?void 0:t.acceptStageRequests)||((e=a(this,q))==null?void 0:e.canAcceptProductionRequests):!1}get stageAccess(){var t,e,i;return((t=a(this,q))==null?void 0:t.stageAccess)===H.NotAllowed?H.NotAllowed:((e=a(this,q))==null?void 0:e.stageAccess)===H.CanRequest?H.CanRequest:((i=a(this,q))==null?void 0:i.stageAccess)===H.Allowed||a(this,q).media.audio.canProduce===H.Allowed||a(this,q).media.video.canProduce===H.Allowed||a(this,q).media.screenshare.canProduce===H.Allowed?H.Allowed:a(this,q).media.audio.canProduce===H.CanRequest||a(this,q).media.video.canProduce===H.CanRequest||a(this,q).media.screenshare.canProduce===H.CanRequest?H.CanRequest:H.NotAllowed}get acceptWaitingRequests(){var t,e;return(e=(t=a(this,q))==null?void 0:t.acceptWaitingRequests)!=null?e:_e.acceptWaitingRequests}get requestProduceVideo(){var t,e,i;return((i=(e=(t=a(this,q))==null?void 0:t.media)==null?void 0:e.video)==null?void 0:i.canProduce)===H.CanRequest}get requestProduceAudio(){var t,e,i;return((i=(e=(t=a(this,q))==null?void 0:t.media)==null?void 0:e.audio)==null?void 0:i.canProduce)===H.CanRequest}get requestProduceScreenshare(){var t,e,i;return((i=(e=(t=a(this,q))==null?void 0:t.media)==null?void 0:e.screenshare)==null?void 0:i.canProduce)===H.CanRequest}get canAllowParticipantAudio(){var t,e;return(e=(t=a(this,q))==null?void 0:t.disableParticipantAudio)!=null?e:_e.disableParticipantAudio}get canAllowParticipantScreensharing(){var t,e;return(e=(t=a(this,q))==null?void 0:t.canAcceptProductionRequests)!=null?e:_e.canAcceptProductionRequests}get canAllowParticipantVideo(){var t,e;return(e=(t=a(this,q))==null?void 0:t.disableParticipantVideo)!=null?e:_e.disableParticipantVideo}get canDisableParticipantAudio(){return this.canAllowParticipantAudio}get canDisableParticipantVideo(){return this.canAllowParticipantVideo}get kickParticipant(){var t,e;return(e=(t=a(this,q))==null?void 0:t.kickParticipant)!=null?e:_e.kickParticipant}get pinParticipant(){var t,e;return(e=(t=a(this,q))==null?void 0:t.pinParticipant)!=null?e:_e.pinParticipant}get canRecord(){var t,e;return(e=(t=a(this,q))==null?void 0:t.canRecord)!=null?e:_e.canRecord}get waitingRoomType(){var t,e;return(e=(t=a(this,q))==null?void 0:t.waitingRoomType)!=null?e:_e.waitingRoomType}get waitingRoomBehaviour(){var t,e;return(e=(t=a(this,q))==null?void 0:t.waitingRoomType)!=null?e:_e.waitingRoomType}get plugins(){var t,e;return(e=(t=a(this,q))==null?void 0:t.plugins)!=null?e:_e.plugins}get polls(){var t,e;return(e=(t=a(this,q))==null?void 0:t.polls)!=null?e:_e.polls}get produceVideo(){return this.canProduceVideo}get requestProduce(){return a(this,q).media.audio.canProduce===H.CanRequest||a(this,q).media.video.canProduce===H.CanRequest||a(this,q).media.screenshare.canProduce===H.CanRequest}get canProduceVideo(){var t;const e=(t=a(this,q).media.video.canProduce)!=null?t:_e.media.video.canProduce;return this.stageEnabled&&(a(this,Nt,Kt)==="ACCEPTED_TO_JOIN_STAGE"||a(this,Nt,Kt)==="ON_STAGE")&&e===H.CanRequest?H.Allowed:this.stageEnabled&&(a(this,Nt,Kt)==="OFF_STAGE"||a(this,Nt,Kt)==="REQUESTED_TO_JOIN_STAGE")&&e===H.Allowed?H.NotAllowed:e}get produceScreenshare(){return this.canProduceScreenshare}get canProduceScreenshare(){var t;const e=(t=a(this,q).media.screenshare.canProduce)!=null?t:_e.media.screenshare.canProduce;return this.stageEnabled&&(a(this,Nt,Kt)==="ACCEPTED_TO_JOIN_STAGE"||a(this,Nt,Kt)==="ON_STAGE")&&e===H.CanRequest?H.Allowed:this.stageEnabled&&(a(this,Nt,Kt)==="OFF_STAGE"||a(this,Nt,Kt)==="REQUESTED_TO_JOIN_STAGE")&&e===H.Allowed?H.NotAllowed:e}get produceAudio(){return this.canProduceAudio}get canProduceAudio(){var t;const e=(t=a(this,q).media.audio.canProduce)!=null?t:_e.media.audio.canProduce;return this.stageEnabled&&(a(this,Nt,Kt)==="ACCEPTED_TO_JOIN_STAGE"||a(this,Nt,Kt)==="ON_STAGE")&&e===H.CanRequest?H.Allowed:this.stageEnabled&&(a(this,Nt,Kt)==="OFF_STAGE"||a(this,Nt,Kt)==="REQUESTED_TO_JOIN_STAGE")&&e===H.Allowed?H.NotAllowed:e}get chatPublic(){var t,e,i;return(i=(e=(t=a(this,q))==null?void 0:t.chat)==null?void 0:e.public)!=null?i:_e.chat.public}get chatPrivate(){var t,e,i;return(i=(e=(t=a(this,q))==null?void 0:t.chat)==null?void 0:e.private)!=null?i:_e.chat.private}get chatChannel(){var t,e,i;return(i=(e=(t=a(this,q))==null?void 0:t.chat)==null?void 0:e.channel)!=null?i:_e.chat.channel}get chatMessage(){var t,e,i;return(i=(e=(t=a(this,q))==null?void 0:t.chat)==null?void 0:e.message)!=null?i:_e.chat.message}get connectedMeetings(){var t,e;return(e=(t=a(this,q))==null?void 0:t.connectedMeetings)!=null?e:_e==null?void 0:_e.connectedMeetings}get hiddenParticipant(){var t,e;return(e=(t=a(this,q))==null?void 0:t.hiddenParticipant)!=null?e:_e.hiddenParticipant}get showParticipantList(){var t;return(t=a(this,q).showParticipantList)!=null?t:_e.showParticipantList}get canChangeParticipantRole(){var t,e;return(e=(t=a(this,q))==null?void 0:t.canChangeParticipantPermissions)!=null?e:_e.canChangeParticipantPermissions}get canChangeParticipantPermissions(){var t,e;return(e=(t=a(this,q))==null?void 0:t.canChangeParticipantPermissions)!=null?e:_e.canChangeParticipantPermissions}get canChangeTheme(){return!1}get canPresent(){return a(this,q).media.audio.canProduce===H.Allowed||a(this,q).media.video.canProduce===H.Allowed||a(this,q).media.screenshare.canProduce===H.Allowed}get acceptPresentRequests(){return this.acceptStageRequests}get canEditDisplayName(){var t;return(t=a(this,q).canEditDisplayName)!=null?t:!1}get maxScreenShareCount(){return 1}get isRecorder(){return a(this,q).isRecorder}get canSpotlight(){return a(this,q).canSpotlight}get canLivestream(){return a(this,q).canLivestream}get transcriptionEnabled(){return a(this,q).transcriptionEnabled}};let CD=eo;q=new WeakMap,Za=new WeakMap,Cs=new WeakMap,nh=new WeakMap,Nt=new WeakSet,Kt=function(){return a(this,Cs).getValue("stageStatus")};var Cd;class PD extends Wt{constructor(){super(...arguments),m(this,"localMediaHandler"),f(this,Cd,void 0)}updatePermission(){return u(this,null,function*(){var e,i;const r=(h,p)=>{this.mediaPermissions[h]=p;const g={message:this.mediaPermissions[h],kind:h};p==="DENIED"?a(this,Cd).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_ERROR,g):a(this,Cd).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,g)};if(Ie.getName()==="firefox")return;const n="microphone",s="camera",o=yield(e=navigator==null?void 0:navigator.permissions)==null?void 0:e.query({name:n}),c=yield(i=navigator==null?void 0:navigator.permissions)==null?void 0:i.query({name:s}),d=(h,p)=>{switch(p){case"granted":r(h,"ACCEPTED");break;case"denied":r(h,"DENIED");break;case"prompt":r(h,"NOT_REQUESTED");break}this.localMediaHandler.repopulateAvailableDevices()};o&&(o.onchange=()=>d("audio",o.state)),c&&(c.onchange=()=>d("video",c.state))})}populateMediaPermissionsInCallstats(e){return u(this,arguments,function*({message:i,kind:r}){switch(r){case"audio":{J.mediaPermission("AUDIO",i),J.mediaPermission("SPEAKER",i);break}case"video":{J.mediaPermission("VIDEO",i);break}case"screenshare":{J.mediaPermission("SCREENSHARE",i);break}}})}init(){return u(this,arguments,function*(e={},i=!1,r=null){var n,s,o,c,d,h;if(Ie.init(),!this.localMediaHandler)try{let p=!0;if(r!=null&&r.getValue("defaults").mediaHandler)p=!1,this.localMediaHandler=r.getValue("defaults").mediaHandler.localMediaHandler;else if(navigator.RNLocalMediaHandlerImpl){const{RNLocalMediaHandlerImpl:g}=navigator;this.localMediaHandler=yield g.init(e)}else this.localMediaHandler=new Ot(r,e.constraints,(n=r==null?void 0:r.getValue("defaults"))==null?void 0:n.isNonPreferredDevice,(s=r==null?void 0:r.getValue("defaults"))==null?void 0:s.autoSwitchAudioDevice);if(r==null||r.getValue("peerSessionStore").on(P.MEDIA_PERMISSION_UPDATE,g=>u(this,null,function*(){if(this.populateMediaPermissionsInCallstats({message:g.message,kind:g.kind}),g.message==="NOT_REQUESTED")switch(g==null?void 0:g.kind){case"audio":this.rawAudioTrack&&(l.info("Disabling audio due to media permission update"),this.disableAudio());break;case"video":this.rawVideoTrack&&(l.info("Disabling video due to media permission update"),this.disableVideo());break;default:break}this.emit("mediaPermissionUpdate",g)})),r==null||r.getValue("peerSessionStore").on(P.MEDIA_PERMISSION_ERROR,g=>u(this,null,function*(){const{kind:y,message:T,constraints:b}=g;this.populateMediaPermissionsInCallstats({message:T,kind:y}),y==="audio"?(l.info(`Disabling audio due to media permission error skipping: ${this.localMediaHandler.audioUpdateInProgress}`),this.localMediaHandler.audioUpdateInProgress===!1&&this.disableAudio()):y==="video"&&(l.info(`Disabling video due to media permission error skipping: ${this.localMediaHandler.videoUpdateInProgress}`),this.localMediaHandler.videoUpdateInProgress===!1&&this.disableVideo()),l.error("SelfController::mediaPermissionError",{error:{message:T},constraints:b,mediaPermissionsErrors:{kind:y,message:T}}),this.emit("mediaPermissionError",g),this.emit("mediaPermissionUpdate",{message:T,kind:y})})),p){l.info(`Setting up DyteSelfMedia streams using media handler. audio:${(o=e==null?void 0:e.audio)!=null?o:!0} video:${(c=e==null?void 0:e.video)!=null?c:!0}`);const g=this.localMediaHandler.setupStreams({video:(d=e==null?void 0:e.video)!=null?d:!0,audio:(h=e==null?void 0:e.audio)!=null?h:!0});i||(yield g)}}catch(p){l.error("DyteSelf::init::Failed To Setup Streams",{error:{name:p.name,message:p.message}})}})}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,i){let r;return i==="audio"?r="audioinput":i==="video"?r="videoinput":i==="speaker"&&(r="audiooutput"),this.localMediaHandler.getDeviceById(e,r)}setDevice(e){return u(this,null,function*(){switch(e.kind){case"audioinput":try{yield this.localMediaHandler.setAudioDevice(e)}catch(i){}finally{this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})}break;case"audiooutput":yield this.localMediaHandler.setSpeakerDevice(e);break;case"videoinput":try{yield this.localMediaHandler.setVideoDevice(e)}catch(i){}finally{this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack})}break}this.emit("deviceUpdate",{device:e})})}}Cd=new WeakMap;const to={},Pr={executeWithLock({methodName:t,lockName:e,timeout:i}){return(r,n,s)=>{const o=s.value;return s.value=function(...c){if(to[e]){const p=new Error(`Unsupported concurrent calls on Dyte method: ${t}.`);throw p.name="UnsupportedConcurrentMethodExecution",l.error("DyteLocker::UnsupportedConcurrentMethodExecution",{error:{stack:p.stack},dyteLocker:{methodName:t,lockName:e}}),p}to[e]=!0;const d=setTimeout(()=>delete to[e],i),h=o.apply(this,c);return Promise.resolve(h).then(()=>{delete to[e],clearTimeout(d)}).catch(()=>{delete to[e],clearTimeout(d)}),h},s}}};var RD=Object.defineProperty,MD=Object.getOwnPropertyDescriptor,_t=(t,e,i,r)=>{for(var n=r>1?void 0:r?MD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&RD(e,i,n),n},io,Lt,ro,xi,Rr,bn,et,at,no,Pd,Ke,Ye,so,ao,Rd,sh,Ev;let tt=(Ev=class extends PD{constructor(t,e,i,r,n){var s;super(),f(this,Rr),f(this,et),f(this,no),f(this,Ke),f(this,Rd),m(this,"name"),m(this,"picture"),m(this,"customParticipantId"),m(this,"waitlistStatus"),f(this,io,void 0),f(this,Lt,void 0),f(this,ro,void 0),m(this,"role"),m(this,"userId"),m(this,"organizationId"),m(this,"supportsRemoteControl",!1),m(this,"device"),f(this,xi,void 0),m(this,"hidden",!1),m(this,"presetName"),m(this,"roomState","init"),f(this,so,new Set),f(this,ao,new Set),v(this,xi,t),this.userId=e.id,this.name=e.name,this.picture=e.picture,this.customParticipantId=(s=e.customParticipantId)!=null?s:e.clientSpecificId,this.waitlistStatus="none",v(this,Lt,i),v(this,io,r),this.hidden=!1,v(this,ro,!1),this.organizationId=e.organizationId,this.supportsRemoteControl=Ie.isElectron(),this.device=Ie.getDeviceInfo(),this.presetName=n,r.viewType!==Rt.Chat&&this.updatePermission(),this.updateVideo=this.updateVideo.bind(this),F(this,Rd,sh).call(this)}get stageStatus(){return a(this,xi).getValue("stageStatus")}get id(){return a(this,xi).getValue("peerId")}static __init__(t,e,i,r,n,s=!1){return u(this,null,function*(){var o,c,d,h,p;let g=(c=(o=t.getValue("defaults"))==null?void 0:o.audio)!=null?c:!0,y=(h=(d=t.getValue("defaults"))==null?void 0:d.video)!=null?h:!0;i.canProduceAudio!=="ALLOWED"&&(g=!1),i.canProduceVideo!=="ALLOWED"&&(y=!1);const T=new tt(t,e,i,r,n);if(r.viewType===Rt.Chat)return T;const b=x1(r.mediaConstraints);return pr(b,(p=t.getValue("defaults"))==null?void 0:p.mediaConfiguration),yield T.init({audio:g,video:y,constraints:b},s,t),T.setupEvents(),T})}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"),a(this,Lt).removeAllListeners("permissionsUpdate")}setupEvents(){this.on("videoUpdate",F(this,Rd,sh));const t=a(this,no,Pd);t&&t.onError(e=>{this.emit("autoplayError",e)}),this.localMediaHandler.on("AUDIO_TRACK_CHANGE",()=>u(this,null,function*(){if(l.info("DyteSelf::setupEvents::AUDIO_TRACK_CHANGE",L({},vn(this))),a(this,Ke,Ye)&&this.audioEnabled)try{yield a(this,et,at).shareMic(this.audioTrack)}catch(e){l.error("DyteSelf::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(l.info("DyteSelf::setupEvents::VIDEO_TRACK_CHANGE",L({},vn(this))),a(this,Ke,Ye)&&this.rawVideoTrack===void 0)l.info("DyteSelf::VIDEO_TRACK_CHANGE::Forcing_disable_video"),this.disableVideo();else if(this.videoEnabled&&a(this,Ke,Ye))try{const e=yield a(this,et,at).shareWebcam(this.videoTrack);e&&e.id!==this.videoTrack.id&&z.hasFeature(ie.EXP_RESHARE)&&(yield a(this,et,at).shareWebcam(this.videoTrack))}catch(e){l.error("DyteSelf::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",e=>u(this,[e],function*({device:i}){var r;this.emit("deviceUpdate",{device:i}),i.kind==="audiooutput"&&typeof HTMLAudioElement.prototype.setSinkId=="function"&&((r=a(this,no,Pd))==null||r.setSpeakerDevice(i.deviceId))})),this.localMediaHandler.on("DEVICE_LIST_UPDATED",e=>{this.emit("deviceListUpdate",e)}),this.localMediaHandler.on("SCREENSHARE_TRACK_CHANGE",()=>u(this,null,function*(){if(!a(this,Ke,Ye)){l.error("DyteSelf.SCREENSHARE_TRACK_CHANGE.LocalMediaInitialized_WithoutRoomNode");return}if(this.screenShareEnabled)try{yield a(this,et,at).shareScreen(this.screenShareTracks)}catch(e){l.error("DyteSelf::setupEvents::Error while sharing screen",{error:e}),this.screenShareEnabled&&(yield this.localMediaHandler.disableScreenShare())}l.info("DyteSelf::setupEvents::SCREENSHARE_TRACK_CHANGE",L({},vn(this))),this.emit("screenShareUpdate",{screenShareEnabled:this.screenShareEnabled,screenShareTracks:this.screenShareTracks})})),this.localMediaHandler.on("SCREENSHARE_ENDED",()=>u(this,null,function*(){l.log("Disabling screenshare due to SCREENSHARE_ENDED"),yield this.disableScreenShare(),l.info("DyteSelf::setupEvents::SCREENSHARE_ENDED",L({},vn(this)))})),this.localMediaHandler.on("AUDIO_TRACK_SILENT",()=>{J.mediaTrackMuted("AUDIO")}),this.localMediaHandler.on("FORCE_MUTE_AUDIO",()=>{this.disableAudio()}),this.localMediaHandler.on("FORCE_MUTE_VIDEO",()=>u(this,null,function*(){a(this,Ke,Ye)&&(yield a(this,et,at).pauseWebcam()),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}),J.videoOff()})),a(this,Lt).on("permissionsUpdate",e=>{var i,r,n;(i=e==null?void 0:e.media)!=null&&i.audio&&a(this,Lt).canProduceAudio!==H.Allowed&&(this.disableAudio(),l.info(`Disabled audio due to dynamic preset change: canProduceAudio: ${this.permissions.canProduceAudio}`)),(r=e==null?void 0:e.media)!=null&&r.video&&a(this,Lt).canProduceVideo!==H.Allowed&&(this.disableVideo(),l.info(`Disabled video due to dynamic preset change: canProduceVideo: ${this.permissions.canProduceVideo}`)),(n=e==null?void 0:e.media)!=null&&n.screenshare&&a(this,Lt).canProduceScreenshare!==H.Allowed&&(this.disableScreenShare(),l.info(`Disabled screenshare due to dynamic preset change: canProduceScreenshare: ${this.permissions.canProduceScreenshare}`))})}get permissions(){return a(this,Lt)}get config(){return a(this,io)}get roomJoined(){var t;return a(this,io).viewType===Rt.Livestream&&this.stageStatus!=="ON_STAGE"?((t=a(this,xi).getValue("connectionHandler"))==null?void 0:t.socketJoined)===!0:a(this,Ke,Ye)}setName(t){if(!t)throw new w("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*(){if(this.permissions.canProduceAudio!==H.NotAllowed&&!(a(this,Lt).canProduceAudio===H.CanRequest&&(this.stageStatus==="OFF_STAGE"||this.stageStatus==="REQUESTED_TO_JOIN_STAGE"))&&!this.audioEnabled){if(J.audioOn(),yield this.localMediaHandler.enableAudio(t),a(this,Ke,Ye)&&this.stageStatus==="ON_STAGE"){if(this.audioTrack)try{yield a(this,et,at).shareMic(this.audioTrack)}catch(e){l.error("DyteSelf::enableAudio::Error while sharing mic",{error:e}),this.localMediaHandler.disableAudio()}if(!this.audioEnabled)return;a(this,et,at).unmuteSelf()}this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})}})}enableVideo(t){return u(this,null,function*(){if(a(this,Lt).canProduceVideo!==H.NotAllowed&&!(a(this,Lt).canProduceVideo===H.CanRequest&&(this.stageStatus==="OFF_STAGE"||this.stageStatus==="REQUESTED_TO_JOIN_STAGE"))&&!this.videoEnabled){if(J.videoOn(),yield this.localMediaHandler.enableVideo(t),a(this,Ke,Ye)&&this.stageStatus==="ON_STAGE")try{yield a(this,et,at).shareWebcam(this.videoTrack)}catch(e){l.error("DyteSelf::enableVideo::Error while sharing video",{error:e}),this.videoEnabled&&this.localMediaHandler.disableVideo()}this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}),l.info("DyteSelf.enableVideo",L({},vn(this)))}})}updateVideoConstraints(t){return u(this,null,function*(){if(!this.localMediaHandler.updateVideoConstraints)throw new w("Unsupported","1102");yield this.localMediaHandler.updateVideoConstraints(t)})}enableScreenShare(){return u(this,null,function*(){if(!a(this,Ke,Ye))throw new w("Can`t enable screenshare without joining room","1105");if(a(this,Lt).canProduceScreenshare!==H.NotAllowed&&!(a(this,Lt).canProduceScreenshare===H.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 a(this,et,at).shareScreen(this.screenShareTracks)}catch(t){l.error("DyteSelf::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 w("Unsupported","1102");yield this.localMediaHandler.updateScreenshareConstraints(t)})}disableAudio(){return u(this,null,function*(){this.audioEnabled&&(this.localMediaHandler.disableAudio(),a(this,Ke,Ye)&&a(this,et,at).muteSelf(),this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack}),J.audioOff())})}disableVideo(){return u(this,null,function*(){this.videoEnabled&&(yield this.localMediaHandler.disableVideo(),a(this,Ke,Ye)&&(yield a(this,et,at).pauseWebcam()),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}),J.videoOff())})}disableScreenShare(){return u(this,null,function*(){this.screenShareEnabled&&(yield this.localMediaHandler.disableScreenShare(),a(this,Ke,Ye)&&(yield a(this,et,at).disableScreenShare()),this.emit("screenShareUpdate",{screenShareEnabled:this.screenShareEnabled,screenShareTracks:this.screenShareTracks}))})}getAllDevices(){return this.localMediaHandler.getAllDevices()}setIsPinned(t,e=!0){var i;v(this,ro,t);const r=t?"pinned":"unpinned";(i=a(this,Rr,bn))==null||i.updateSource(this.id,{pinned:t}),e&&this.emit(r,this)}get isPinned(){return a(this,ro)}pin(){return u(this,null,function*(){if(!a(this,Ke,Ye))throw new w("Can`t pin participants without joining room","1105");return this.show(),a(this,et,at).pinPeer(this.id)})}unpin(){return u(this,null,function*(){if(!a(this,Ke,Ye))throw new w("Can`t unpin participants without joining room","1105");return a(this,et,at).pinPeer(null)})}hide(){return u(this,null,function*(){if(!a(this,Ke,Ye))throw new w("Can`t toggle participant tile without joining room","1105");this.hidden=!0,this.emit("toggleTile",{hidden:this.hidden})})}show(){if(!a(this,Ke,Ye))throw new w("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 e,i,r;if(!t)throw new w("No device selected","1104");const n=this.getCurrentDevices();if(t.deviceId&&(((e=n==null?void 0:n.audio)==null?void 0:e.deviceId)===t.deviceId||((i=n==null?void 0:n.video)==null?void 0:i.deviceId)===t.deviceId||((r=n==null?void 0:n.speaker)==null?void 0:r.deviceId)===t.deviceId)&&(l.warn("DyteSelf.setDevice.setting_to_in_use_device",{devices:[t]}),z.hasFeature(ie.SKIP_SETTING_IN_USE_DEVICE)))throw new w("Cannot set device currently in use","1106");switch(t.kind){case"audioinput":try{yield this.localMediaHandler.setAudioDevice(t)}catch(s){a(this,Ke,Ye)&&(yield a(this,et,at).muteSelf()),this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})}break;case"audiooutput":yield this.localMediaHandler.setSpeakerDevice(t);break;case"videoinput":try{yield this.localMediaHandler.setVideoDevice(t)}catch(s){a(this,Ke,Ye)&&(yield a(this,et,at).pauseWebcam()),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack})}break}})}cleanUpTracks(){var t,e,i,r;(t=this.audioTrack)==null||t.stop(),(e=this.rawAudioTrack)==null||e.stop(),(i=this.videoTrack)==null||i.stop(),(r=this.rawVideoTrack)==null||r.stop()}playAudio(){var t;return(t=a(this,no,Pd))==null?void 0:t.play()}registerVideoElement(t,e=!1){var i,r;t&&(e?a(this,so).add(t):a(this,ao).add(t),this.updateVideo(t),e||(r=a(this,Rr,bn))==null||r.addSource(this.id,t,this.videoEnabled,this.isPinned,this.name,this.picture,(i=this.raised)!=null?i:!1))}deregisterVideoElement(t,e=!1){if(!t){a(this,Rr,bn).removeSource(this.id);return}t.srcObject=void 0,e?a(this,so).delete(t):(a(this,ao).delete(t),a(this,Rr,bn).removeSource(this.id))}updateVideo(t,e=!1){var i,r,n;if(this.videoEnabled){if(this.videoTrack==null)return;const s=(i=t.srcObject)==null?void 0:i.getTracks()[0];if((s==null?void 0:s.id)===this.videoTrack.id)return;const o=new MediaStream;o.addTrack(this.videoTrack),t.srcObject=o,e||(r=a(this,Rr,bn))==null||r.enableSource(this.id)}else t.srcObject=void 0,e||(n=a(this,Rr,bn))==null||n.disableSource(this.id);t.style.display=this.videoEnabled?"block":"none"}},io=new WeakMap,Lt=new WeakMap,ro=new WeakMap,xi=new WeakMap,Rr=new WeakSet,bn=function(){return a(this,xi).getValue("pip")},et=new WeakSet,at=function(){return a(this,xi).getValue("roomNodeClient")},no=new WeakSet,Pd=function(){return a(this,xi).getValue("audioPlayback")},Ke=new WeakSet,Ye=function(){var t;return((t=a(this,xi).getValue("connectionHandler"))==null?void 0:t.mediaJoined)===!0},so=new WeakMap,ao=new WeakMap,Rd=new WeakSet,sh=function(){Array.from(a(this,ao)).forEach(t=>this.updateVideo(t,!1)),Array.from(a(this,so)).forEach(t=>this.updateVideo(t,!0))},Ev);_t([S.trace("DyteSelf.cleanupEvents")],tt.prototype,"cleanupEvents",1),_t([S.trace("DyteSelf.setupEvents")],tt.prototype,"setupEvents",1),_t([S.trace("DyteSelf.setupTracks")],tt.prototype,"setupTracks",1),_t([S.trace("DyteSelf.destructMediaHandler")],tt.prototype,"destructMediaHandler",1),_t([S.trace("DyteSelf.removeDocumentEventListeners")],tt.prototype,"removeDocumentEventListeners",1),_t([Pr.executeWithLock({methodName:"meeting.self.enableAudio",lockName:"DyteSelf.toggleAudio",timeout:3e3}),S.trace("DyteSelf.enableAudio")],tt.prototype,"enableAudio",1),_t([Pr.executeWithLock({methodName:"meeting.self.enableVideo",lockName:"DyteSelf.toggleVideo",timeout:3e3}),S.trace("DyteSelf.enableVideo")],tt.prototype,"enableVideo",1),_t([S.trace("DyteSelf.updateVideoConstraints")],tt.prototype,"updateVideoConstraints",1),_t([S.trace("DyteSelf.enableScreenShare"),Pr.executeWithLock({methodName:"meeting.self.enableScreenShare",lockName:"DyteSelf.toggleScreenShare",timeout:3e3})],tt.prototype,"enableScreenShare",1),_t([S.trace("DyteSelf.updateScreenshareConstraints")],tt.prototype,"updateScreenshareConstraints",1),_t([Pr.executeWithLock({methodName:"meeting.self.disableAudio",lockName:"DyteSelf.toggleAudio",timeout:3e3}),S.trace("DyteSelf.disableAudio")],tt.prototype,"disableAudio",1),_t([Pr.executeWithLock({methodName:"meeting.self.disableVideo",lockName:"DyteSelf.toggleVideo",timeout:3e3}),S.trace("DyteSelf.disableVideo")],tt.prototype,"disableVideo",1),_t([Pr.executeWithLock({methodName:"meeting.self.disableScreenShare",lockName:"DyteSelf.toggleScreenShare",timeout:3e3}),S.trace("DyteSelf.disableScreenShare")],tt.prototype,"disableScreenShare",1),_t([S.trace("DyteSelf.setDevice")],tt.prototype,"setDevice",1),tt=_t([ut("1100")],tt);var AD=Object.defineProperty,DD=Object.getOwnPropertyDescriptor,OD=(t,e,i,r)=>{for(var n=r>1?void 0:r?DD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&AD(e,i,n),n},Ui;class ah{constructor(e,i){m(this,"socket"),f(this,Ui,void 0),v(this,Ui,e),this.socket=i,this.handleSocketEvents(),a(this,Ui).setValue("roomSocketHandler",this)}cleanup(){return u(this,null,function*(){var e;try{(e=this.socket)==null||e.disconnect()}catch(i){l.error("roomSocketHandler::cleanup")}})}joinRoom(e){return u(this,null,function*(){var i;this.socket.joinAttempted=!0;const r={capabilities:[],peer:{displayName:(i=e.name)!=null?i:"Participant",customParticipantId:e.customParticipantId,peerId:e.id,userId:e.userId,displayPictureUrl:e.picture,waitlisted:!1},roomUuid:""},n=this.socket.sendMessagePromise(B.joinRoom,$C.toBinary(r));try{const{peer:s}=Xn.fromBinary((yield n).payload);a(this,Ui).getValue("connectionHandler").socketJoined=!0,a(this,Ui).getValue("peerSessionStore").emit(P.SOCKET_SERVICE_ROOM_JOINED,{peer:s});const o=this.getRoomState(),c=this.getRoomPeersNonPaginated(),[{room:d},{peers:h}]=yield Promise.all([o,c]);return a(this,Ui).getValue("peerSessionStore").emit(P.ROOM_STATE,d),a(this,Ui).getValue("peerSessionStore").emit(P.SOCKET_PEERS,h),{peer:s}}catch(s){throw l.error("RoomSocketHandler.joinRoom.failed",{error:s}),new w("Error: RoomSocketHandler.joinRoom failed.","0002",s)}})}getAllAddedParticipants(){return u(this,null,function*(){try{return MP.fromBinary((yield this.socket.sendMessagePromise(B.getAllAddedParticipants)).payload).participants.map(e=>{var i=e,{id:r}=i,n=vc(i,["id"]);return j(L({},n),{userId:r})})}catch(e){return[]}})}getRoomPeers(e,i,r){return u(this,null,function*(){let n;try{const s={seachQuery:e,limit:i,offset:r},o=yield this.socket.sendMessagePromise(B.getRoomPeersInfo,VC.toBinary(s));n=fu.fromBinary(o.payload)}catch(s){l.error("getRoomPeers::binary_decode_error",{error:s})}return n})}getRoomPeersNonPaginated(){return u(this,null,function*(){let e;try{const i=yield this.socket.sendMessagePromise(B.getRoomPeersInfo);e=fu.fromBinary(i.payload)}catch(i){l.error("getRoomJoinedPeers::binary_decode_error",{error:i})}return e})}getStagePeers(){return u(this,null,function*(){let e;try{const i=yield this.socket.sendMessagePromise(B.getRoomPeersInfo);e=fu.fromBinary(i.payload)}catch(i){l.error("getRoomJoinedPeers::binary_decode_error",{error:i})}return e})}getPeerInfo(e){return u(this,null,function*(){let i;try{const r=yield this.socket.sendMessagePromise(B.getPeerInfo,df.toBinary({peerId:e}));i=Xn.fromBinary(r.payload)}catch(r){l.error("getPeerInfo::binary_decode_error",{error:r})}return i})}getRoomState(){return u(this,null,function*(){let e=cf.create();try{const i=yield this.socket.sendMessagePromise(B.getRoomInfo);e=cf.fromBinary(i.payload)}catch(i){l.error("getRoomState::binary_decode_error",{error:i})}return e})}getRoomStageState(){return u(this,null,function*(){let e=gf.create();try{const i=yield this.socket.sendMessagePromise(B.getRoomStageState);e=gf.fromBinary(i.payload)}catch(i){l.error("getRoomStageState::binary_decode_error",{error:i})}return e})}broadcastMessage(e,i){return u(this,null,function*(){const r={type:e,payload:new TextEncoder().encode(JSON.stringify(i)),timestamp:Date.now(),ids:[]};return this.socket.sendMessagePromise(B.broadcastMessage,pa.toBinary(r))})}broadcastToMeetings(e,i,r){return u(this,null,function*(){const n={type:e,payload:new TextEncoder().encode(JSON.stringify(r)),timestamp:Date.now(),ids:i,broadcastType:1};return this.socket.sendMessagePromise(B.broadcastToEntity,pa.toBinary(n))})}broadcastToPeers(e,i,r){return u(this,null,function*(){const n={type:e,payload:new TextEncoder().encode(JSON.stringify(r)),timestamp:Date.now(),ids:i,broadcastType:0};return this.socket.sendMessage(B.broadcastToEntity,pa.toBinary(n))})}leaveRoom(){return u(this,null,function*(){this.socket.joinAttempted=!1,this.socket.sendMessagePromise(B.leaveRoom,KC.toBinary({}))})}kick(e){return u(this,null,function*(){const i={peerIds:[e]};this.socket.sendMessage(B.kick,pf.toBinary(i))})}kickAll(e=!1){return u(this,null,function*(){const i={propagateKickAcrossRooms:e};this.socket.sendMessage(B.kickAll,Qg.toBinary(i))})}getWaitingRoomRequests(){this.socket.sendMessage(B.getWaitingRoomRequests)}acceptWaitingRoomRequest(e){const i={userIds:e};this.socket.sendMessage(B.acceptWaitingRoomRequests,VP.toBinary(i))}rejectWaitingRoomRequest(e){const i={userIds:e};this.socket.sendMessage(B.denyWaitingRoomRequests,UP.toBinary(i))}updatePermissions(e,i){return u(this,null,function*(){const r={updatePeersPresets:[]};return e.forEach(n=>{r.updatePeersPresets.push({userIds:n,patch:i})}),this.socket.sendMessagePromise(Jc.updateUserPreset,pR.toBinary(r))})}handleSocketEvents(){this.socket.on(B.broadcastMessage,({payload:e})=>{try{const i=pa.fromBinary(e);a(this,Ui).getValue("peerSessionStore").emit(P.ROOM_MESSAGE,{payload:JSON.parse(new TextDecoder().decode(i.payload)),type:i.type,timestamp:i.timestamp})}catch(i){l.error("failed to decode broadcast message:",i)}}),this.socket.on(B.broadcastToEntity,({payload:e})=>{try{const i=pa.fromBinary(e);a(this,Ui).getValue("peerSessionStore").emit(P.MESSAGE,{payload:JSON.parse(new TextDecoder().decode(i.payload)),type:i.type,timestamp:i.timestamp})}catch(i){l.error("failed to decode peer broadcast message:",i)}})}on(e,i){let r,n;switch(e){case B.joinRoom:case B.leaveRoom:case B.kick:case B.kickAll:{r=Xn.fromBinary.bind(Xn),n=Xn.create();break}case B.getWaitingRoomRequests:{r=(s,o)=>s?mf.fromBinary(s,o):{requests:[]},n=mf.create();break}case B.recordingPaused:case B.recordingStarted:case B.recordingStopped:{r=Cf.fromBinary.bind(Cf);break}case Jc.updateUserPreset:{r=vf.fromBinary.bind(vf);break}case gi.peerJoinedBroadcast:case ii.peerJoinedBroadcast:{r=ef.fromBinary.bind(ef);break}case gi.selfJoinComplete:case ii.selfJoinComplete:{r=uu.fromBinary.bind(uu);break}case gi.globalPeerPinBroadcast:case ii.globalPeerPinBroadcast:{r=nf.fromBinary.bind(nf);break}case gi.selectedPeer:case ii.selectedPeer:{r=lu.fromBinary.bind(lu);break}case gi.selectedPeerDiff:case ii.selectedPeerDiff:{r=Zg.fromBinary.bind(Zg);break}case gi.leaveRoom:case ii.leaveRoom:{r=hu.fromBinary.bind(hu);break}}this.socket.on(e,({payload:s})=>{let o=n;if(!r)return i(void 0);try{o=r(s)}catch(c){l.error("roomSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}getUserPermissions(e){return u(this,null,function*(){const i={userIds:[e]};try{const r=yield this.socket.sendMessagePromise(Jc.getUserPresets,aR.toBinary(i)),n=lR.fromBinary(r.payload).peerPresets[0],s=new TextDecoder().decode(n.preset),o=JSON.parse(s).permissions;return{chat:o.chat,polls:o.polls,plugins:o.plugins}}catch(r){throw l.error("Error in getting user preset",{error:r}),r}})}}Ui=new WeakMap,OD([S.trace("RoomSocketHandler.joinRoom")],ah.prototype,"joinRoom",1);class oh extends Error{constructor(e){super(e!=null?e:"AwaitQueue stopped"),this.name="AwaitQueueStoppedError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,oh)}}class ch extends Error{constructor(e){super(e!=null?e:"AwaitQueue task removed"),this.name="AwaitQueueRemovedTaskError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ch)}}var Md;class dh{constructor(e=!1){m(this,"pendingTasks",new Map),m(this,"nextTaskId",0),m(this,"stopping",!1),f(this,Md,void 0),this.log=e,v(this,Md,{info:e?l.info:()=>{}})}get size(){return this.pendingTasks.size}push(e,i,r){return u(this,null,function*(){if(i=i!=null?i:e.name,typeof e!="function")throw new TypeError("given task is not a function");if(i)try{Object.defineProperty(e,"name",{value:i})}catch(n){}return new Promise((n,s)=>{const o={id:this.nextTaskId++,task:e,metadata:r,name:i,enqueuedAt:Date.now(),executedAt:void 0,completed:!1,resolve:c=>{if(o.completed)return;o.completed=!0,this.pendingTasks.delete(o.id),n(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),s(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 e of this.pendingTasks.values())e.reject(new oh);this.stopping=!1}remove(e){const i=Array.from(this.pendingTasks.values())[e];i&&i.reject(new ch)}get(e){return Array.from(this.pendingTasks.values())[e]}dump(){const e=Date.now();let i=0;return Array.from(this.pendingTasks.values()).map(r=>({idx:i++,task:r.task,name:r.name,enqueuedTime:r.executedAt?r.executedAt-r.enqueuedAt:e-r.enqueuedAt,executionTime:r.executedAt?e-r.executedAt:0}))}execute(e){return u(this,null,function*(){if(e.executedAt)throw new Error("task already being executed");e.executedAt=Date.now();try{const i=this.pendingTasks.size,r=yield e.task(),n=Date.now();a(this,Md).info(`AwaitQueue.push(${e.name})_timings`,{awaitQueueTask:{id:e.id,metadata:e.metadata,queueSizeAtStart:i,execTime:(n-e.executedAt)/1e3,taskStartTime:(e.executedAt-e.enqueuedAt)/1e3}}),e.resolve(r)}catch(i){e.reject(i)}})}}Md=new WeakMap;function ND(t,e){const i=new Error(e);return i.name=t,i}class oo extends w{constructor(e){super(e),this.name="UnsupportedError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,oo):this.stack=new Error(e).stack}}class Vt extends w{constructor(e){super(e),this.name="InvalidStateError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,Vt):this.stack=new Error(e).stack}}class _n extends w{constructor(e){super(e),this.name="TransportConnectionError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,Vt):this.stack=new Error(e).stack}}const Tv=t=>new Promise(e=>setTimeout(e,t));function kv(t,e){return u(this,null,function*(){return new Promise((i,r)=>u(this,null,function*(){const{strategy:n,maxRetryCount:s,delayTime:o}=L({strategy:"linear",maxRetryCount:3,delayTime:10},e);let c=0,d,h=!1;const p=g=>{h=!0,r(g)};for(;c<s;){try{const g=yield t(c,p);return i(g)}catch(g){if(d=g,h)break;if(c<s)n==="linear"?yield Tv(o*(c+1)):n==="exponential"&&(yield Tv(o*(c+Math.max(0,c-1))));else break}c+=1}return r(d)}))})}function LD(t){return t.map(e=>({channels:e.channels,clockRate:e.clockRate,mimeType:e.mimeType,sdpFmtpLine:e.sdpFmtpLine}))}function VD(t){return t.map(e=>({uri:e.uri}))}function Ad(t){return{codecs:LD(t.codecs),headerExtensions:VD(t.headerExtensions?t.headerExtensions:[])}}function xD(t){const e=RTCRtpReceiver.getCapabilities("audio"),i=RTCRtpReceiver.getCapabilities("video"),r=RTCRtpSender.getCapabilities("audio"),n=RTCRtpSender.getCapabilities("video");t&&(i.codecs=i.codecs.filter(({mimeType:o})=>t===o),n.codecs=n.codecs.filter(({mimeType:o})=>t===o));const s={audio:Ad(e),video:Ad(i)};return{sender:{audio:Ad(r),video:Ad(n)},receiver:s}}var ot;class UD{constructor(e,i){f(this,ot,void 0),m(this,"events"),m(this,"sfuType"),v(this,ot,e),this.sfuType=i,this.events=i===Ne.CF?gi:ii}joinRoom(e,i,r,n=!1,s=null){return u(this,null,function*(){const o={roomUuid:e,displayName:i,prejoined:n,capabilities:r};return s&&(o.location=s),(yield a(this,ot).sendMessagePromiseWithTimeout({event:this.events.joinRoom,protobuf:$w.toBinary(o),timeout:5e3})).payload})}connectTransport(e){return u(this,null,function*(){const i=(yield a(this,ot).sendMessagePromise(this.events.createWebRTCTransport,Ew.toBinary(e))).payload,{transportId:r,description:n,producerIds:s}=Gg.fromBinary(i),o={sdp:n==null?void 0:n.sdp,type:n.type};return{transportId:r,answer:o,producerIds:s}})}produce(e){return u(this,null,function*(){var i,r;const n=(yield a(this,ot).sendMessagePromise(this.events.produce,oI.toBinary(e))).payload,s=HI.fromBinary(n);return{answer:{sdp:(i=s==null?void 0:s.description)==null?void 0:i.sdp,type:(r=s==null?void 0:s.description)==null?void 0:r.type},producerId:s.producerId}})}consume(e){return u(this,null,function*(){if(this.sfuType===Ne.HIVE)throw new Error("Hive does not support socket consumer operations");const i=(yield a(this,ot).sendMessagePromise(this.events.consume,tI.toBinary(e))).payload,{consumerIdsMap:{map:r},description:n}=WI.fromBinary(i);return{consumerStateMap:r,sessionDescription:n}})}closeProducer(e){return u(this,null,function*(){const i=(yield a(this,ot).sendMessagePromise(this.events.closeProducer,mI.toBinary(e))).payload,{description:r}=YI.fromBinary(i);return r})}closeConsumer(e){return u(this,null,function*(){if(this.sfuType===Ne.HIVE)throw new Error("Hive does not support socket consumer operations");return(yield a(this,ot).sendMessagePromise(this.events.closeConsumer,fI.toBinary(e))).payload})}updateConsumersSimulcastConfig(e){return u(this,null,function*(){if(this.sfuType===Ne.HIVE)throw new Error("Method not implemented");return(yield a(this,ot).sendMessagePromise(this.events.updateConsumersSimulcastConfig,sI.toBinary(e))).payload})}hostControlForPeer(e,i){return u(this,null,function*(){const r={audio:i==="audio",screeShare:!1,video:i==="video",participantId:e},n=(yield a(this,ot).sendMessagePromise(this.events.hostControlPeer,kI.toBinary(r))).payload;if(!n)return!1;const{status:s}=rC.fromBinary(n);return s==="success"})}hostControlForAll(e){return u(this,null,function*(){const i={audio:e==="audio",screenShare:!1,video:e==="video"},r=(yield a(this,ot).sendMessagePromise(this.events.hostControlAllPeers,_I.toBinary(i))).payload;if(!r)return!1;const{status:n}=sC.fromBinary(r);return n==="success"})}kickAll(){return u(this,null,function*(){const e={propagateKickAcrossRooms:!1};a(this,ot).sendMessagePromise(B.kickAll,Qg.toBinary(e))})}kickPeer(e){return u(this,null,function*(){a(this,ot).sendMessagePromise(B.kick,pf.toBinary(e))})}changeDisplayName(e){return u(this,null,function*(){const i=(yield a(this,ot).sendMessagePromise(this.events.changeDisplayName,EI.toBinary(e))).payload;if(!i)return!1;const{status:r}=oC.fromBinary(i);return r==="success"})}notifySelfJoinComplete(){return u(this,null,function*(){const e={},i=(yield a(this,ot).sendMessagePromise(this.events.selfJoinComplete,Kw.toBinary(e))).payload;return uu.fromBinary(i)})}audioActivity(e){return u(this,null,function*(){a(this,ot).sendMessage(this.events.audioActivity,kw.toBinary(e))})}}ot=new WeakMap;class Dd extends lt.EventEmitter{constructor(){super(),this.setMaxListeners(1/0)}safeEmit(e,...i){const r=this.listenerCount(e);try{return this.emit(e,...i)}catch(n){return l.error(`EnhancedEventEmitter:: safeEmit() | event listener ${e} threw an error`,{error:n}),Boolean(r)}}safeEmitAsPromise(e,...i){return u(this,null,function*(){const r={}.EVENT_PROMISE_TIMEOUT?parseInt({}.EVENT_PROMISE_TIMEOUT,10):1e4;return this.safeEmitAsPromiseWithTimeout(e,r,...i)})}safeEmitAsPromiseWithTimeout(e,i,...r){return u(this,null,function*(){return new Promise((n,s)=>{setTimeout(s,i,"event request timeout");try{this.emit(e.toString(),...r,n,s)}catch(o){l.error(`EnhancedEventEmitter:: safeEmitAsPromise() | event listener for event ${e.toString()} threw an error [event:%s]:%o`,{error:o}),s(o)}})})}}class lh extends Dd{constructor(){super(...arguments),m(this,"_sendWebStream",new MediaStream),m(this,"_sendScreenShareStream",new MediaStream),m(this,"_direction"),m(this,"pc"),m(this,"_transportReady",!1),m(this,"_mapMidTransceiver",new Map),m(this,"enableHighBitrate",!1),m(this,"enableStereo",!1),m(this,"enableDtx",!0),m(this,"sfu",Ne.HIVE)}get midTransceiverMap(){return this._mapMidTransceiver}close(){if(l.debug(`${this.name}::close()`),this.pc)try{this.pc.close()}catch(e){l.error(`${this.name}::pc.close()`,{error:e})}}restartIce(){return u(this,null,function*(){l.debug(`${this.name}::restartIce()`);const e=yield this.pc.createOffer({iceRestart:!0});return l.debug(`${this.name}::restartIce() | calling pc.setLocalDescription() [offer:${JSON.stringify(e)}]`),{offerSdp:e,callback:i=>u(this,null,function*(){l.info(`${this.name}::restartIce() | calling pc.setRemoteDescription() [answer:${JSON.stringify(i)}]`),yield this.pc.setRemoteDescription(i)})}})}init({direction:e,iceServers:i,iceTransportPolicy:r,additionalSettings:n,proprietaryConstraints:s,onTrackHandler:o}){l.debug("HandlerInterface::init()"),this._direction=e,this.pc=new RTCPeerConnection(L({iceServers:i||[],iceTransportPolicy:r||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"},n),s),o&&this.pc.addEventListener("track",c=>{o(c)}),this._addEventListeners()}connect(){return u(this,null,function*(){let e;this.sfu===Ne.CF?this.pc.addTransceiver("video",{direction:"sendonly"}):e=this.pc.createDataChannel("dyte");const i=yield this.pc.createOffer();return yield this.pc.setLocalDescription(i),l.info(`connect offer: ${JSON.stringify(i)}`),{offerSdp:i,callback:r=>u(this,null,function*(){l.debug(`${this.name}::connect() | calling pc.setRemoteDescription() [answer:${JSON.stringify(r)}]`),yield this.pc.setRemoteDescription(r),e==null||e.close()})}})}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 i=this.midTransceiverMap.get(e);if(!i)throw new Error("associated RTCRtpTransceiver not found");return i.receiver.getStats()})}stopSending(e){return u(this,null,function*(){this._assertSendDirection(),l.debug(`stopSending() [localId:${e}]`);const i=this.midTransceiverMap.get(e);if(!i)throw new Error("associated RTCRtpTransceiver not found");i.sender.replaceTrack(null),this.pc.removeTrack(i.sender),i.direction="inactive";const r=yield this.pc.createOffer();return l.debug(`stopSending() | calling pc.setLocalDescription() [offer:${JSON.stringify(r)}]`),yield this.pc.setLocalDescription(r),{offerSdp:r,callback:n=>u(this,null,function*(){l.debug(`stopSending() | calling pc.setRemoteDescription() [answer:${JSON.stringify(n)}]`),yield this.pc.setRemoteDescription(n),this.midTransceiverMap.delete(e)})}})}replaceTrack(e,i){return u(this,null,function*(){this._assertSendDirection(),i?l.debug(`replaceTrack() [localId:${e}, track.id:${i.id}]`):l.debug(`replaceTrack() [localId:${e}, no track]`);const r=this.midTransceiverMap.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");yield r.sender.replaceTrack(i)})}setMaxSpatialLayer(e,i){return u(this,null,function*(){this._assertSendDirection(),l.debug(`setMaxSpatialLayer() [localId:${e}, spatialLayer:${i}]`);const r=this.midTransceiverMap.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const n=r.sender.getParameters();n.encodings.forEach((s,o)=>{o<=i?s.active=!0:s.active=!1}),yield r.sender.setParameters(n)})}setRtpEncodingParameters(e,i){return u(this,null,function*(){this._assertSendDirection(),l.debug(`setRtpEncodingParameters() [localId:${e}, params:${JSON.stringify(i)}]`);const r=this.midTransceiverMap.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const n=r.sender.getParameters();n.encodings.forEach((s,o)=>{n.encodings[o]=L(L({},s),i)}),yield r.sender.setParameters(n)})}getSenderStats(e){this._assertSendDirection();const i=this.midTransceiverMap.get(e);if(!i)throw new Error("associated RTCRtpTransceiver not found");return i.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:l.warn("unknown state");break}}),this.pc.addEventListener("negotiationneeded",()=>{this.emit("@negotiationneeded",{}),l.debug("negotiationneeded")}),this.pc.addEventListener("icegatheringstatechange",()=>{switch(this.pc.iceGatheringState){case"gathering":l.debug("icegatheringstatechange | gathering"),this.emit("@icegatheringstatechange","gathering");break;case"complete":l.debug("icegatheringstatechange | complete"),this.emit("@icegatheringstatechange","complete");break;default:l.warn("unknown state");break}}),this.pc.addEventListener("icecandidateerror",e=>{l.warn("icecandidateerror",{error:{code:e.errorCode,message:e.errorText}})}),this.pc.addEventListener("datachannel",e=>{l.info("data channel created: ",{rtcChannel:{label:e.channel.label}});const{channel:i}=e;i.onopen=()=>{l.info("data channel open: ",{rtcChannel:{label:e.channel.label}}),this.safeEmit("dc_open",e.channel)},i.onclose=()=>{l.warn("data channel closed: ",{rtcChannel:{label:e.channel.label}})},i.onerror=()=>{l.error("data channel error: ",{rtcChannel:{label:e.channel.label}})}}),this.addCustomEventListeners()}addCustomEventListeners(){}}class uh extends lh{static createFactory(){return()=>new uh}get name(){return"Chrome74"}init({direction:e,iceServers:i,iceTransportPolicy:r,additionalSettings:n,proprietaryConstraints:s,onTrackHandler:o}){this._direction=e,this.pc=new RTCPeerConnection(L({iceServers:i||[],iceTransportPolicy:r||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"unified-plan"},n),s),o&&this.pc.addEventListener("track",c=>{o(c)}),this._addEventListeners()}send(e){return u(this,arguments,function*({track:i,encodings:r,codecOptions:n,screenShare:s}){this._assertSendDirection();const o=this.pc.addTransceiver(i,{direction:"sendonly",streams:[s?this._sendScreenShareStream:this._sendWebStream],sendEncodings:r});if(!navigator.isReactNative){l.debug("creating new transceiver");const h=RTCRtpSender.getCapabilities(typeof i=="string"?i:i.kind);l.info(`senders available params: ${JSON.stringify(h)}`);const p=[];n&&n.length&&n.forEach(g=>{var y;const T=h.codecs.find(b=>b.mimeType.includes(g.name));if(g.parameters){l.debug(`codecOption.parameters:${JSON.stringify(g.parameters)}`);const b=((y=T.sdpFmtpLine)==null?void 0:y.split(";"))||[];b.push(...g.parameters);const O=Array.from(new Set(b).values());T.sdpFmtpLine=O.join(";")}p.push(T)}),l.info(`selected codecs: ${JSON.stringify(p)}`),o.setCodecPreferences(p)}const c=yield this.pc.createOffer();if(yield this.pc.setLocalDescription(c),n&&n.findIndex(({name:h})=>h==="opus")>=0){const{enableDtx:h,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;${h?"usedtx=1;":""}${p?"stereo=1;sprop-stereo=1;":""}maxaveragebitrate=${g}`),c.sdp+=`a=rtcp-fb:111 nack\r
17
- `}this.midTransceiverMap.set(o.mid,o);const d=h=>u(this,null,function*(){return l.debug(`send() | calling pc.setRemoteDescription() [answer:${JSON.stringify(h)}]`),yield this.pc.setRemoteDescription(h),o.mid});return l.debug(`send() | calling pc.setLocalDescription() [offer: ${JSON.stringify(c,void 0,2)}]`),{offerSdp:c,callback:d,sender:o.sender,mid:o.mid}})}addCustomEventListeners(){this.pc.addEventListener("datachannel",e=>{const{channel:i}=e;i.onmessage=r=>{this.safeEmit("datachannel",e.channel,String.fromCharCode(...new Uint8Array(r.data)))}})}}class Od extends lh{constructor(e){super(),m(this,"supportsSendEncodings",!1),this.supportsSendEncodings=e.supportsSendEncodings}static createFactory(e){return()=>new Od(e)}get name(){return"Firefox60"}send(e){return u(this,arguments,function*({track:i,encodings:r,codecOptions:n,screenShare:s}){this._assertSendDirection();const o=this.supportsSendEncodings&&r!==void 0?{sendEncodings:r}:{},c=this.pc.addTransceiver(i,L({direction:"sendonly",streams:[s?this._sendScreenShareStream:this._sendWebStream]},o));if(!this.supportsSendEncodings&&r){r.reverse();const p=c.sender.getParameters();p.encodings=r,yield c.sender.setParameters(p)}const d=(p,g)=>{var y;const T=Jr(p),b=T.media[T.media.length-1],O=b.rtp.filter($=>g.some(I=>I.name===$.codec)),R=b.fmtp.filter($=>O.some(I=>I.payload===$.payload)),x=(y=b.rtcpFb)==null?void 0:y.filter($=>O.some(I=>I.payload===$.payload)),G=O.map($=>$.payload);return T.media[T.media.length-1].rtp=O,T.media[T.media.length-1].fmtp=R,T.media[T.media.length-1].rtcpFb=x,T.media[T.media.length-1].payloads=G.join(" "),gc(T)},h=yield this.pc.createOffer();if(h.sdp=d(h.sdp,n),l.debug(`send() | calling pc.setLocalDescription() [offer:${JSON.stringify(h)}]`),yield this.pc.setLocalDescription(h),i==="audio"||i.kind==="audio"){const{enableDtx:p,enableStereo:g}=this,y=this.enableHighBitrate?g?128e3:64e3:g?64e3:32e3;h.sdp=h.sdp.replace("minptime=10;useinbandfec=1",`minptime=10;useinbandfec=1;${p?"usedtx=1;":""}${g?"stereo=1;sprop-stereo=1;":""}maxaveragebitrate=${y}`)}return this.midTransceiverMap.set(c.mid,c),{offerSdp:h,callback:p=>u(this,null,function*(){return l.debug(`send() | calling pc.setRemoteDescription() [answer:${JSON.stringify(p)}]`),yield this.pc.setRemoteDescription(p),c.mid}),sender:c.sender,mid:c.mid}})}setMaxSpatialLayer(e,i){return u(this,null,function*(){this._assertSendDirection(),l.debug(`setMaxSpatialLayer() [localId:${e}, spatialLayer:${i}]`);const r=this.midTransceiverMap.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const n=r.sender.getParameters(),s=n.encodings.length-1-i;n.encodings.forEach((o,c)=>{c>=s?o.active=!0:o.active=!1}),yield r.sender.setParameters(n)})}addCustomEventListeners(){this.pc.addEventListener("datachannel",e=>{const{channel:i}=e;i.onmessage=r=>u(this,null,function*(){const n=yield r.data.arrayBuffer();this.safeEmit("datachannel",e.channel,String.fromCharCode(...new Uint8Array(n)))})})}}class hh extends lh{static createFactory(){return()=>new hh}get name(){return"Safari12"}send(e){return u(this,arguments,function*({track:i,encodings:r,codecOptions:n,screenShare:s}){this._assertSendDirection(),l.debug("Safari12::creating new transceiver");const o=this.pc.addTransceiver(i,{direction:"sendonly",streams:[s?this._sendScreenShareStream:this._sendWebStream],sendEncodings:r}),c=RTCRtpSender.getCapabilities(typeof i=="string"?i:i.kind);l.info(`Safari12::senders available params: ${JSON.stringify(c)}`);const d=[];n&&n.length>0&&n.forEach(p=>{var g;const y=c.codecs.find(T=>T.mimeType.includes(p.name));if(p.parameters){l.info(`Safari12::codecOption.parameters:, ${JSON.stringify(p.parameters)}`);const T=((g=y.sdpFmtpLine)==null?void 0:g.split(";"))||[];T.push(...p.parameters);const b=[...new Set(T).values()];y.sdpFmtpLine=b.join(";")}d.push(y)}),l.info(`Safari12::selected codecs: ${JSON.stringify(d)}`),o.setCodecPreferences(d);const h=yield this.pc.createOffer();if(yield this.pc.setLocalDescription(h),i==="audio"||i.kind==="audio"){const{enableStereo:p,enableDtx:g}=this,y=this.enableHighBitrate?p?128e3:64e3:p?64e3:32e3;h.sdp=h.sdp.replace("minptime=10;useinbandfec=1",`minptime=10;useinbandfec=1;${g?"usedtx=1;":""}${p?"stereo=1;sprop-stereo=1;":""}maxaveragebitrate=${y}`)}return this.midTransceiverMap.set(o.mid,o),{offerSdp:h,callback:p=>u(this,null,function*(){return l.debug(`Safari12::send() | calling pc.setRemoteDescription() [answer:${JSON.stringify(p)}]`),yield this.pc.setRemoteDescription(p),o.mid}),sender:o.sender,mid:o.mid}})}addCustomEventListeners(){this.pc.ondatachannel=e=>{const{channel:i}=e;i.onmessage=r=>u(this,null,function*(){const n=String.fromCharCode(...new Uint8Array(r.data));this.safeEmit("datachannel",e.channel,n)})}}}function FD(t,e){return typeof t=="undefined"?e:typeof window!="undefined"&&Object.getOwnPropertyDescriptor(window,"structuredClone")?structuredClone(t):JSON.parse(JSON.stringify(t))}var Nd,Ps,rr,nr,Mr,Ld,ph,mh,bv,gh,_v;class BD extends Dd{constructor(e){var i;super(),f(this,nr),f(this,Ld),f(this,mh),f(this,gh),m(this,"rtpReceiver"),m(this,"id"),m(this,"localId"),m(this,"producerId"),m(this,"producingTransportId"),m(this,"mimeType"),m(this,"track"),m(this,"peerId"),m(this,"appData"),m(this,"transceiver"),f(this,Nd,void 0),f(this,Ps,void 0),f(this,rr,void 0),this.id=e.id,this.localId=e.localId,v(this,Nd,e.handler),this.appData=e.appData,this.peerId=e.producingPeerId,this.producingTransportId=e.producingTransportId,v(this,rr,!1),this.producerId=e.producerId,this.track=e.track,v(this,Ps,(i=e.paused)!=null?i:!1),this.mimeType=e.mimeType,this.transceiver=e.transceiver,this.rtpReceiver=e.rtpReceiver,F(this,mh,bv).call(this)}get closed(){return a(this,rr)}get kind(){return this.track.kind}get paused(){return a(this,Ps)}close(e,i){a(this,rr)||(l.debug(`Consumer::close() ${e?`with reason ${e}`:""}`,a(this,nr,Mr)),v(this,rr,!0),i&&(F(this,gh,_v).call(this),this.transceiver.stop()),this.safeEmit("close",e))}getStats(){return u(this,null,function*(){if(a(this,rr))throw new Vt("closed");return a(this,Nd).getReceiverStats(this.localId)})}pause(){if(l.debug("consumer::pause()",a(this,nr,Mr)),a(this,rr)){l.error("consumer::pause() | Consumer closed",a(this,nr,Mr));return}v(this,Ps,!0),this.track.enabled=!1,this.safeEmit("pause")}resume(){if(l.debug("consumer::resume()",a(this,nr,Mr)),a(this,rr)){l.error("Consumer::resume() | Consumer closed",a(this,nr,Mr));return}v(this,Ps,!1),this.track.enabled=!0,this.safeEmit("resume")}}Nd=new WeakMap,Ps=new WeakMap,rr=new WeakMap,nr=new WeakSet,Mr=function(){return{consumer:{id:this.id,appData:this.appData,peerId:this.peerId,kind:this.kind}}},Ld=new WeakSet,ph=function(){l.debug('Consumer::track "ended" event',a(this,nr,Mr)),this.safeEmit("trackended")},mh=new WeakSet,bv=function(){this.track.addEventListener("ended",F(this,Ld,ph).bind(this))},gh=new WeakSet,_v=function(){try{this.track.removeEventListener("ended",F(this,Ld,ph)),this.track.stop()}catch(t){l.error("Consumer::destroyTrack()",j(L({},a(this,nr,Mr)),{error:t}))}};var Fi,co,lo,Rs,wi,mt,wn,uo,oi,Ii;class WD extends Dd{constructor(e){var i,r;super(),f(this,oi),m(this,"id"),m(this,"localId"),f(this,Fi,void 0),m(this,"kind"),m(this,"appData"),m(this,"rtpSender"),f(this,co,void 0),f(this,lo,void 0),f(this,Rs,void 0),f(this,wi,!1),f(this,mt,void 0),f(this,wn,void 0),f(this,uo,void 0),this.id=e.id,this.localId=e.localId,v(this,mt,e.track),this.kind=(i=e.track)==null?void 0:i.kind,v(this,wn,e.disableTrackOnPause?!((r=e.track)!=null&&r.enabled):!1),v(this,uo,void 0),v(this,co,e.stopTracks),v(this,lo,e.disableTrackOnPause),v(this,Rs,e.zeroRtpOnPause),this.appData=e.appData||{},this._onTrackEnded=this._onTrackEnded.bind(this),v(this,Fi,e.handler),this.rtpSender=e.rtpSender,this._handleTrack()}get closed(){return a(this,wi)}get track(){return a(this,mt)}get paused(){return a(this,wn)}get maxSpatialLayer(){return a(this,uo)}close(e){return u(this,null,function*(){if(a(this,wi))return;if(l.debug(`Producer::close() ${e?`with reason ${e}`:""}`,a(this,oi,Ii)),v(this,wi,!0),this._destroyTrack(),e===xd){this.safeEmit("close",{reason:e});return}const{offerSdp:i,callback:r}=yield a(this,Fi).stopSending(this.localId),{answer:n}=yield this.safeEmitAsPromise("close",{offer:i,reason:e});r(n)})}getStats(){return u(this,null,function*(){if(a(this,wi))throw new Vt("closed");return a(this,Fi).getSenderStats(this.localId)})}pause(){l.debug("Producer::pause()",a(this,oi,Ii)),a(this,wi)&&l.error("Producer::pause() | Producer closed",a(this,oi,Ii)),v(this,wn,!0),a(this,mt)&&a(this,lo)&&(a(this,mt).enabled=!1),a(this,Rs)&&a(this,Fi).replaceTrack(this.localId,null),this.emit("pause")}resume(){if(l.debug("Producer::resume()",a(this,oi,Ii)),a(this,wi)){l.error("Producer::resume() | Producer closed",a(this,oi,Ii));return}v(this,wn,!1),a(this,mt)&&a(this,lo)&&(a(this,mt).enabled=!0),a(this,Rs)&&a(this,Fi).replaceTrack(this.localId,a(this,mt)),this.emit("resume")}replaceTrack(e){return u(this,arguments,function*({track:i}){if(l.debug(`Producer::replaceTrack() trackId: ${i==null?void 0:i.id}`,a(this,oi,Ii)),a(this,wi)){if(i&&a(this,co))try{i.stop()}catch(r){l.error("Producer::replaceTrack",j(L({},a(this,oi,Ii)),{error:r}))}throw new Vt("closed")}else if(i&&i.readyState==="ended")throw new Vt("track ended");if(i===a(this,mt)){l.debug(`replaceTrack() | same track, ignored trackId: ${i.id}`,a(this,oi,Ii));return}(!a(this,Rs)||!a(this,wn))&&(yield a(this,Fi).replaceTrack(this.localId,i)),this._destroyTrack(),v(this,mt,i),this._handleTrack()})}setMaxSpatialLayer(e){return u(this,null,function*(){if(a(this,wi))throw new Vt("closed");if(this.kind!=="video")throw new oo("not a video Producer");if(typeof e!="number")throw new TypeError("invalid spatialLayer");yield a(this,Fi).setMaxSpatialLayer(this.localId,e),v(this,uo,e)})}setRtpEncodingParameters(e){return u(this,null,function*(){if(a(this,wi))throw new Vt("closed");if(typeof e!="object")throw new TypeError("invalid params");yield a(this,Fi).setRtpEncodingParameters(this.localId,e)})}_onTrackEnded(){l.debug(`Producer::track "ended" event trackId: ${this.track.id}`,a(this,oi,Ii)),this.safeEmit("trackended",this.track.id)}_handleTrack(){a(this,mt)&&a(this,mt).addEventListener("ended",this._onTrackEnded)}_destroyTrack(){var e;if(a(this,mt))try{a(this,mt).removeEventListener("ended",this._onTrackEnded),a(this,co)&&a(this,mt).stop()}catch(i){l.error(`Producer::_destroyTrack trackId: ${(e=this.track)==null?void 0:e.id}`,j(L({},a(this,oi,Ii)),{error:i}))}}}Fi=new WeakMap,co=new WeakMap,lo=new WeakMap,Rs=new WeakMap,wi=new WeakMap,mt=new WeakMap,wn=new WeakMap,uo=new WeakMap,oi=new WeakSet,Ii=function(){return{producer:{id:this.id,appData:this.appData,kind:this.kind}}};function wv(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null}function fh(t){return Math.random().toString(36).substring(2,2+t)}const Vd=1;function Iv(t){const e=t;return delete e.payload._bolt,e}function jD(t){return t.payload&&wv(t.payload)}function Cv(t){var e,i;return jD(t)&&(i=(e=t.payload._bolt)==null?void 0:e.id)!=null?i:""}var In;const ho=class extends lt.EventEmitter{constructor(t,e,i){super(),m(this,"channel"),m(this,"queue"),m(this,"serverProtocolVersion"),f(this,In,new Map),m(this,"respond",(r,n,s=!1)=>{let o;s?o=ho.createErrorResponse(r,n):o=ho.createResponse(r,n),this.channel.send(JSON.stringify(o))}),m(this,"notify",r=>{const n=ho.createNotification(r);this.channel.send(JSON.stringify(n))}),m(this,"request",r=>u(this,null,function*(){const n=ho.createRequest(r),s=new Promise((o,c)=>{const{id:d}=n.payload._bolt,h={id:d,method:n.type,resolve:p=>{this.queue.delete(d)&&(clearTimeout(h.timer),o(p))},timer:setTimeout(()=>{this.queue.delete(d)&&c(new Error(`request timeout for message id: ${d}`))},2e4),cancel:p=>{this.queue.delete(d)&&(clearTimeout(h.timer),c(p))}};this.queue.set(d,h)});return this.channel.send(JSON.stringify(n)),s})),m(this,"send",r=>{const n=JSON.stringify(r),s=16384;if(n.length>s){const o=s-200,c=Math.ceil(n.length/o),d=[];for(let p=0;p<c;p+=1){const g=p*o,y=(p+1)*o;d.push(n.slice(g,y))}const h=jn();for(let p=0;p<c;p+=1){const g=d[p],y=JSON.stringify({id:h,count:c,chunkIndex:p,chunk:g});l.debug(`Sending message chunk over dc: ${y}`),this.channel.send(y)}}else l.debug(`Sending message over dc: ${n}`),this.channel.send(n)}),m(this,"processMessage",r=>{var n;a(this,In).has(r.id)||a(this,In).set(r.id,[]);const s=a(this,In).get(r.id);if(s[r.chunkIndex]=r,(s==null?void 0:s.length)===r.count&&!s.some(o=>o===void 0)){const o=a(this,In).get(r.id),c=o==null?void 0:o.reduce((h,p)=>h+p.chunk,"");a(this,In).delete(r.id);const d=JSON.parse(c);if(!d.payload||!wv(d.payload))throw new Error("corrupted incoming message over dc",{cause:{code:"CORRUPT_DC_MESSAGE",values:d}});if(this.processBoltHandshake(d))return;if(this.serverProtocolVersion=(n=d.payload._bolt)==null?void 0:n.version,!this.processResponseMsg(d))return d}}),m(this,"processResponseMsg",r=>{const{id:n}=r.payload._bolt,s=this.queue.get(n);return s?(l.debug(`resolving pending request with id: ${n}, complete response: ${JSON.stringify(r)}`),r.type==="error"?s.cancel(Iv(r)):s.resolve(Iv(r)),!0):!1}),m(this,"processBoltHandshake",r=>{var n,s;return r.type==="_bolt"||r.type==="handshake"?(this.respond((s=(n=r.payload._bolt)==null?void 0:n.id)!=null?s:fh(8),{type:"_bolt",payload:{message:"pong"}}),!0):!1}),this.label=e,this.transportId=i,this.channel=t,this.queue=new Map}};let po=ho;In=new WeakMap,m(po,"createRequest",t=>{var e;if((e=t.payload)!=null&&e._bolt)throw new Error("rpc fields are internal values");return{type:t.type,payload:j(L({},t.payload),{_bolt:{id:fh(8),type:"REQUEST",version:Vd}})}}),m(po,"createResponse",(t,e)=>{var i;if((i=e.payload)!=null&&i._bolt)throw new Error("rpc fields are internal values");return{type:e.type,payload:j(L({},e.payload),{_bolt:{id:t,type:"RESPONSE",version:Vd}})}}),m(po,"createNotification",t=>{var e;if((e=t.payload)!=null&&e._bolt)throw new Error("rpc fields are internal values");return{type:t.type,payload:j(L({},t.payload),{bolt:{id:fh(8),type:"NOTIFY",version:Vd}})}}),m(po,"createErrorResponse",(t,e)=>({type:"error",payload:{error:e.message,_bolt:{id:t,type:"RESPONSE",version:Vd}}}));const xd="transport closed";var Ms;const mo=class extends Dd{constructor(t,{id:e,direction:i,handlerFactory:r,iceServers:n,iceTransportPolicy:s,proprietaryConstraints:o,additionalSettings:c,appData:d,config:h}){var p,g,y;super(),m(this,"awaitQueue"),m(this,"observer"),f(this,Ms,void 0),m(this,"id"),m(this,"serverId"),m(this,"direction"),m(this,"maxSctpMessageSize"),m(this,"handler"),m(this,"connectionState","new"),m(this,"producers"),m(this,"consumers"),m(this,"datachannels"),m(this,"connected",!1),m(this,"eventsDCReadyPromise"),m(this,"eventsDCReadyPromiseResolver"),m(this,"eventsDCFailureTimer"),m(this,"transportConnectionPromise"),m(this,"consumerTrackEvents"),m(this,"unknownTracksMap"),m(this,"appData"),l.debug(`constructor() [id: ${e}, direction: ${i}]`),v(this,Ms,t),this.id=e,this.direction=i;const T=FD(c,{});delete T.iceServers,delete T.iceTransportPolicy,delete T.bundlePolicy,delete T.rtcpMuxPolicy,delete T.sdpSemantics,this.producers=new Map,this.consumers=new Map,this.datachannels=new Map,this.consumerTrackEvents=new Map,this.unknownTracksMap=new Map,this.awaitQueue=new dh(!0),this.handler=r(),this.handler.enableHighBitrate=(p=h==null?void 0:h.enableHighBitrate)!=null?p:!1,this.handler.enableStereo=(g=h==null?void 0:h.enableStereo)!=null?g:!1,this.handler.enableDtx=(y=h==null?void 0:h.enableDtx)!=null?y:!0,this.handler.sfu=a(this,Ms),this.handler.init({onTrackHandler:this._ontrack.bind(this),direction:i,iceServers:n,iceTransportPolicy:s,additionalSettings:c,proprietaryConstraints:o}),this.appData=d||{},this.transportConnectionPromise=new Promise(b=>{this.once("connected",()=>{b(!0)}),this.once("disconnect",()=>{b(!1)}),this.once("close",()=>{b(!1)})}),this.eventsDCReadyPromise=new Promise(b=>{this.eventsDCReadyPromiseResolver=b}),this.handler.on("@connectionstatechange",b=>{b!==this.connectionState&&(l.debug(`connection state changed to ${b}`),this.connectionState=b,b==="connected"&&(this.connected=!0,this.emit("connected")),b==="disconnected"&&(this.connected=!1,this.emit("disconnect")),(b==="failed"||b==="closed")&&(this.connected=!1,this.emit("close")),this.closed||this.safeEmit("connectionstatechange",b))}),this.handler.on("@icecandidate",({candidate:b})=>{this.closed||this.safeEmit("icecandidate",b)}),this.handler.on("dc_open",b=>{let O=this.datachannels.get(b.label);O||(O||(O=new po(b,b.label,this.serverId),this.datachannels.set(b.label,O)),this.eventsDCFailureTimer=setTimeout(()=>{b.label==="events"&&(this.eventsDCReadyPromiseResolver(!1),this.safeEmit("dc_error",b.label))},5e3))}),this.handler.on("datachannel",(b,O)=>{b.label==="events"&&(this.eventsDCReadyPromiseResolver(!0),this.eventsDCFailureTimer&&clearTimeout(this.eventsDCFailureTimer));const R=this.datachannels.get(b.label);if(!R){l.error("unregistered datachannel for message",{rtcChannel:{label:b.label,message:O}});return}try{const x=JSON.parse(O);l.debug("datachannel message chunk recieved",{dataChannelMessageChunk:{id:x.id,count:x.count,chunkIndex:x.chunkIndex,chunk:x.chunk,transprtId:this.serverId}});const G=R.processMessage(x);if(!G)return;l.debug(`datachannel message with id:${x.id} on transport:${this.serverId}complete - ${JSON.stringify(G)}`),this.emit(`datachannel:${b.label}`,R.label,G)}catch(x){l.error("error parsing message",{error:x})}})}get closed(){return this.connectionState==="closed"}setServerId(t){this.serverId=t}getDatachannel(t){return this.datachannels.get(t)}get isEventsDCReady(){return this.eventsDCReadyPromise}close(){this.closed||(l.debug("Transport close called"),this.connectionState="closed",this.awaitQueue.stop(),this.awaitQueue=void 0,this.connected=!1,this.handler.close(),Array.from(this.producers.values()).forEach(t=>{t.close(xd).catch(()=>{})}),this.producers.clear(),Array.from(this.consumers.values()).forEach(t=>{t.close(xd)}),this.consumers.clear(),this.consumerTrackEvents.clear(),this.emit("close"))}getStats(){return u(this,null,function*(){if(this.closed)throw new Vt("closed");return this.handler.getTransportStats()})}connect(t){return u(this,null,function*(){try{if(yield this.awaitQueue.push(()=>u(this,null,function*(){const{offerSdp:e,callback:i}=yield this.handler.connect(),{transportId:r,answer:n}=yield t(e);this.setServerId(r),yield i(n)})),!(yield this.transportConnectionPromise))throw new Error("ice connection failed");if(a(this,Ms)===Ne.HIVE&&!(yield this.isEventsDCReady))throw new Error("events datachannel not open")}catch(e){throw l.error("transport failed to connect:",{error:e}),e}})}restartIce(){return u(this,null,function*(){if(l.debug("restartIce()"),this.closed)throw new Vt("closed");return this.handler.restartIce()})}canProduce(t){return u(this,null,function*(){const{track:e,appData:i}=t;if(e){if(this.direction!=="send")throw new oo("not a sending Transport");if(e.readyState==="ended")throw new Vt("track ended");if(i&&typeof i!="object")throw new TypeError("if given, appData must be an object")}else throw new TypeError("missing track");if(!(yield this.transportConnectionPromise))throw new _n("transport not connected");return!0})}produce(t,e){return u(this,null,function*(){if(!(yield this.canProduce(t)))throw new Error("Cannot produce");const{track:i,encodings:r,codecOptions:n,stopTracks:s=!0,disableTrackOnPause:o=!0,zeroRtpOnPause:c=!1,appData:d={}}=t;l.debug(`produce() [track:${i.id}]`);const{producerId:h,localId:p,rtpSender:g}=yield this.awaitQueue.push(()=>u(this,null,function*(){const{offerSdp:y,callback:T,sender:b,mid:O}=yield this.handler.send({track:i,encodings:r,codecOptions:n,screenShare:d==null?void 0:d.screenShare}),{answer:R,producerId:x}=yield e({offer:y,kind:i.kind,paused:o?!i.enabled||Object.hasOwn(i,"fakeTracks"):!1,appData:j(L({},d||{}),{mid:O}),codecOptions:n,producingTransportId:this.serverId}),G=yield T(R);return{producerId:x,localId:G,rtpSender:b}}),"Transport.produce");return this.createProducerObject({id:h,localId:p,track:i,stopTracks:s,disableTrackOnPause:o,zeroRtpOnPause:c,appData:d,handler:this.handler,rtpSender:g})})}createProducerObject(t){return u(this,null,function*(){const e=new WD(t);return this.producers.set(e.id,e),e.once("close",()=>{this.producers.delete(e.id)}),this.emit("newproducer",e),e})}closeProducer(t){return u(this,null,function*(){yield this.awaitQueue.push(t.close.bind(t),"Transport.closeProducer")})}canConsume(){return u(this,null,function*(){if(this.closed)throw new Vt("closed");if(this.direction!=="recv")throw new oo("not a receiving transport");if(!(yield this.transportConnectionPromise))throw new _n("transport not connected");return!0})}consume(t,e,i){return u(this,null,function*(){return this.awaitQueue.push(()=>u(this,null,function*(){const r={},{consumerStates:n,sessionDescription:s,failedProducers:o}=yield e(t);n.forEach((d,h)=>{r[h]=this.createConsumerObjectAndWaitForTrack(j(L({},d),{producerId:h}))}),s&&(l.info("Session description found, sending negotiation request"),yield i(s));const c=[];return yield Promise.all(Object.entries(r).map(([d,h])=>h.then(p=>c.push(p)).catch(()=>{l.error(`Failed to create consumer object, producer: ${d}`,{error:{message:"This should not happen"},transport:{serverId:this.serverId}})}))),{consumers:c,failedProducers:o}}),"Transport.consume",{producersLength:t.length})})}static parseCodecAndFmtpMappings(t,e){const i=Jr(t.sdp),r={};return i.media.forEach(n=>{e.includes(n.mid.toString())&&(r[n.mid.toString()]={rtp:n.rtp,fmtp:n.fmtp,payloads:n.payloads,rtcpFb:n.rtcpFb})}),r}static setCodecAndFmtpMappings(t,e,i){const r=Jr(t.sdp);return r.media=r.media.map(n=>{if(e.includes(n.mid.toString())){const s=L({},n);return s.rtp=i[n.mid.toString()].rtp,s.fmtp=i[n.mid.toString()].fmtp,s.payloads=i[n.mid.toString()].payloads,s.rtcpFb=i[n.mid.toString()].rtcpFb,s}return n}),j(L({},t),{sdp:gc(r)})}static parseHeaderExtensionMappings(t){const e=Jr(t.sdp),i={};return e.media.forEach(r=>{i[r.mid]=r.ext}),i}static setHeaderExtensionMappings(t,e){const i=Jr(t.sdp);return i.media=i.media.map(r=>{const n=L({},r);return n.ext=e[r.mid],n}),j(L({},t),{sdp:gc(i)})}closeConsumers(t,e){return u(this,null,function*(){try{const i=t.map(c=>c.transceiver.mid),r=mo.parseCodecAndFmtpMappings(this.handler.pc.remoteDescription,i),n=mo.parseHeaderExtensionMappings(this.handler.pc.remoteDescription);l.info("Stopping transceivers",{consumerIds:t.map(({id:c})=>c)}),t.forEach(c=>c.close(void 0,!0));let s=yield this.handler.pc.createOffer();l.info("Created offer for closing consumers",{sdp:s.sdp}),s=mo.setCodecAndFmtpMappings(s,i,r),s=mo.setHeaderExtensionMappings(s,n),l.info("Updated codec and fmtp mappings in close consumer offer",{sdp:s.sdp}),yield this.setLocalDescription(s),l.info("Successfully set local description in close consumers");const o=yield e(t,s);l.info("Received answer in close consumers",{sdp:o.sdp}),yield this.setRemoteDescription(o),l.info("Remote description was set successfully in close consumers",{sdp:o.sdp})}catch(i){l.error("Failed to close consumers",{error:i})}})}setRemoteOffer(t){return u(this,null,function*(){try{l.info("Received offer from SFU",{sdp:t.sdp}),yield this.setRemoteDescription(t);const e=yield this.handler.pc.createAnswer();l.info("Created answer corresponding to received offer",{sdp:e.sdp});const i=Jr(e.sdp);return i.media=i.media.map(r=>{if(r.type==="audio"){const n=L({},r),s=n.fmtp.find(o=>o.payload===111);return s&&(s.config+=";stereo=1;sprop-stereo=1"),n.rtcpFb||(n.rtcpFb=[]),n.rtcpFb.some(o=>o.type==="nack")||n.rtcpFb.push({payload:parseInt(n.payloads,10),type:"nack"}),n}return r}),e.sdp=gc(i),l.info("Setting munged SDP",{sdp:e.sdp}),yield this.setLocalDescription(e),l.info("Successfully set local description",{sdp:e.sdp}),e}catch(e){throw l.error("Set remote offer failed",{error:e}),e}})}_ontrack(t){const{track:e,transceiver:i,streams:r}=t;l.info(`track event received [trackId: ${e.id}] [mid: ${i.mid}]`);let n;a(this,Ms)===Ne.HIVE?n=`${r[0].id}:${e.kind}`:n=`${i.mid}:${e.kind}`,e.addEventListener("ended",()=>{l.info(`rtc consumer track ended [trackId: ${e.id}]`),this.unknownTracksMap.delete(n)});const s=this.consumerTrackEvents.get(n);s?(s(e,i),this.consumerTrackEvents.delete(n)):(l.warn(`track event handler not found ${n}`),this.unknownTracksMap.set(n,t))}sendErrorOverDC(t,e,i){const r=this.getDatachannel(t);if(!r)throw new Error("datachannel not found",{cause:{code:"DC_NOT_FOUND",values:{label:t}}});r.respond(e,i,!0)}sendResponseOverDC(t,e,i){const r=this.getDatachannel(t);if(!r)throw new Error("datachannel not found",{cause:{code:"DC_NOT_FOUND",values:{label:t}}});r.respond(e,i)}createConsumerObjectAndWaitForTrack(t){return u(this,null,function*(){const{consumerId:e,producerId:i,producingPeerId:r,producingTransportId:n,streamId:s,paused:o,screenShare:c,appData:d,kind:h,mimeType:p}=t,g=`${s}:${h}`,y=j(L({},t),{name:"consumer creation task error",message:"consumer creation failed"});return new Promise((T,b)=>u(this,null,function*(){const O=setTimeout(()=>{l.warn(`Timed out waiting for track event ${g} producingPeerId: ${r}`),this.consumerTrackEvents.delete(g),y.isTimedout=!0,b(y)},5e3),R=(G,$)=>{try{if(G.readyState==="ended")clearTimeout(O),b(y);else{const I=G;I.enabled=!0,this.handler.midTransceiverMap.set($.mid,$);const se=new BD({id:e,localId:$.mid,transceiver:$,track:I,paused:o,producerId:i,producingPeerId:r,producingTransportId:n,handler:this.handler,appData:j(L({},d),{screenShare:c,peerId:r}),rtpReceiver:$.receiver,mimeType:p});this.consumers.set(e,se),se.once("close",()=>{this.consumers.delete(se.id),this.handler.midTransceiverMap.delete($.mid)}),l.info("consumer created for ",{consumer:{id:e,kind:h,appData:{screenShare:c},peerId:r,producerId:i}}),this.emit("newconsumer",se),clearTimeout(O),T(se)}}catch(I){l.warn("error while creating consumer:",I),clearTimeout(O),b(y)}},x=this.unknownTracksMap.get(g);x?(l.info(`track event already received [trackId: ${x.track.id}] [mid: ${x.transceiver.mid}]`),this.unknownTracksMap.delete(g),R(x.track,x.transceiver)):(l.info(`Registering onTrack handler for key ${g} [producingPeerId: ${r}]`),this.consumerTrackEvents.set(g,R))}))})}setRemoteDescription(t){return u(this,null,function*(){yield this.handler.pc.setRemoteDescription(t)})}setLocalDescription(t){return u(this,null,function*(){l.debug(`${this.direction}() {transportId: ${this.serverId}} | calling pc.setLocalDescription() [offer:${JSON.stringify(t)}]`),yield this.handler.pc.setLocalDescription(t)})}sendDataChannelMessage(t,e){return u(this,null,function*(){const i=this.getDatachannel(t);if(!i)throw ND("DC_NOT_READY",`${t} datachannel not ready`);const r=(yield i.request(e)).payload;return l.info(`sendDataChannelMessage::response ${JSON.stringify(r)}`),r})}};let HD=mo;Ms=new WeakMap;function qD(){if(typeof navigator=="object"&&navigator.product==="ReactNative"){if(typeof RTCPeerConnection=="undefined"){l.warn("Device::this._detectDevice() | unsupported ReactNative without RTCPeerConnection");return}return l.debug("Device::this._detectDevice() | ReactNative handler chosen"),"Chrome74"}if(typeof navigator=="object"&&typeof navigator.userAgent=="string"){const t=navigator.userAgent,e=bp.getParser(t),i=e.getEngine();if(e.satisfies({chrome:">=74",chromium:">=74","microsoft edge":">=88"}))return"Chrome74";if(e.satisfies({chrome:">=55",chromium:">=55"}))return;if(e.satisfies({firefox:">=110"}))return"Firefox110";if(e.satisfies({firefox:">=60"}))return"Firefox60";if(e.satisfies({ios:{OS:">=14.3",firefox:">=30.0"}})||e.satisfies({safari:">=12.0"})&&typeof RTCRtpTransceiver!="undefined"&&RTCRtpTransceiver.prototype.hasOwnProperty("currentDirection"))return"Safari12";if(e.satisfies({safari:">=11"})||e.satisfies({"microsoft edge":">=11"})&&e.satisfies({"microsoft edge":"<=18"}))return;if(i.name&&i.name.toLowerCase()==="blink"){const r=t.match(/(?:(?:Chrome|Chromium))[ /](\w+)/i);return r?Number(r[1])>=74?"Chrome74":void 0:"Chrome74"}if(i.name.toLowerCase()==="webkit"&&e.getOS().name.toLowerCase()==="ios")return typeof RTCRtpTransceiver!="undefined"&&RTCRtpTransceiver.prototype.hasOwnProperty("currentDirection")?"Safari12":void 0;l.warn("Device::this._detectDevice() | browser not supported");return}l.warn("Device::this._detectDevice() | unknown device")}var Ud;class GD{constructor(e,{handlerName:i,handlerFactory:r}={}){if(m(this,"handlerFactory"),f(this,Ud,void 0),l.debug("constructor()"),v(this,Ud,e),i&&r)throw new TypeError("just one of handlerName or handlerInterface can be given");if(r)this.handlerFactory=r;else{if(i)l.debug(`Device::constructor() | handler given: ${i}`);else if(i=qD(),i)l.debug(`Device::constructor() | detected handler: ${i}`);else throw new Error("device not supported");switch(i){case"Chrome74":this.handlerFactory=uh.createFactory();break;case"Safari12":this.handlerFactory=hh.createFactory();break;case"Firefox60":this.handlerFactory=Od.createFactory({supportsSendEncodings:!1});break;case"Firefox110":this.handlerFactory=Od.createFactory({supportsSendEncodings:!0});break;default:throw new TypeError(`unknown handlerName "${i}"`)}}}createTransport(e){const i=jn();return new HD(a(this,Ud),j(L({id:i},e),{handlerFactory:this.handlerFactory}))}}Ud=new WeakMap;const $D=2e3;var zt,go,wt,It,Fd,Bd,As,fo,vo,yo,Ds,sr,So,Eo,Wd,jd,vh,yh,Pv,Hd,Sh,Eh,Rv,Th,Mv,kh,Av,bh,Dv,_h,Ov,qd,wh,Gd,Ih;class JD extends lt.EventEmitter{constructor(e,i,r){switch(super(),f(this,Eo),f(this,jd),f(this,yh),f(this,Hd),f(this,Eh),f(this,Th),f(this,kh),f(this,bh),f(this,_h),f(this,qd),f(this,Gd),f(this,zt,void 0),f(this,go,void 0),f(this,wt,void 0),f(this,It,void 0),f(this,Fd,void 0),f(this,Bd,void 0),f(this,As,void 0),f(this,fo,void 0),f(this,vo,void 0),f(this,yo,{transportFailureCount:{send:0,recv:0},lastConnectionTime:0}),f(this,Ds,void 0),f(this,sr,"all"),f(this,So,void 0),v(this,zt,e),v(this,As,i),v(this,So,r),v(this,go,new GD(r)),v(this,fo,new UD(i,r)),r){case Ne.CF:{v(this,vo,gi);break}case Ne.HIVE:default:{v(this,vo,ii);break}}a(this,Eo,Wd).mediaState={send:{state:ws.NEW},recv:{state:ws.NEW}},(Kn(a(this,zt),"forceRelay")||z.hasFeature(ie.FORCE_RELAY))&&v(this,sr,"relay"),l.info(`ICE Transport Policy initially set to ${a(this,sr)}`),F(this,jd,vh).call(this)}get socket(){return a(this,As)}get socketHandler(){return a(this,fo)}get sendTransport(){return a(this,wt)}get recvTransport(){return a(this,It)}get events(){return a(this,vo)}get nodeType(){return a(this,So)}set sendTransportConnectedCallback(e){v(this,Fd,e)}set recvTransportConnectedCallback(e){v(this,Bd,e)}setupTransports(e){return u(this,null,function*(){yield F(this,yh,Pv).call(this,e);let i,r;e.send&&(i=F(this,Hd,Sh).call(this,a(this,wt)).then(n=>{try{a(this,Fd).call(this,n)}catch(s){l.error("Failed to run send transport callback")}})),e.recv&&(r=F(this,Hd,Sh).call(this,a(this,It)).then(n=>{try{a(this,Bd).call(this,n)}catch(s){l.error("Failed to run recv transport callback")}})),yield Promise.all([i,r])})}stopTransports(e){var i,r;if(e.send&&this.sendTransport!==void 0){const{id:n,serverId:s,direction:o}=a(this,wt);l.info("Closing send transport",{transport:{id:n,serverId:s,type:o}}),a(this,wt).close(),a(this,wt).removeAllListeners(),v(this,wt,void 0)}if(e.recv&&this.recvTransport!==void 0){const{id:n,serverId:s,direction:o}=a(this,It);l.info("Closing recv transport",{transport:{id:n,serverId:s,type:o}}),(i=a(this,It))==null||i.close(),(r=a(this,It))==null||r.removeAllListeners(),v(this,It,void 0)}F(this,jd,vh).call(this)}stopAllTransports(){l.info("Closing all transports"),this.stopTransports({send:!0,recv:!0})}handleErrors(e){throw new Error("Method not implemented.")}}zt=new WeakMap,go=new WeakMap,wt=new WeakMap,It=new WeakMap,Fd=new WeakMap,Bd=new WeakMap,As=new WeakMap,fo=new WeakMap,vo=new WeakMap,yo=new WeakMap,Ds=new WeakMap,sr=new WeakMap,So=new WeakMap,Eo=new WeakSet,Wd=function(){return a(this,zt).getValue("connectionHandler")},jd=new WeakSet,vh=function(){v(this,Ds,{send:void 0,recv:void 0})},yh=new WeakSet,Pv=function(t){return u(this,null,function*(){var e,i,r,n,s,o,c,d;(Kn(a(this,zt),"forceRelay")||z.hasFeature(ie.FORCE_RELAY))&&v(this,sr,"relay"),l.info(`ICE Transport Policy set to ${a(this,sr)}`);const h=yield ht().getICEServers().catch(p=>(l.warn(`failed to get iceservers from server: ${p.message}`),[]));if(t.send){const p=z.hasFeature(ie.DISABLE_OPUS_DTX_CF);F(this,Th,Mv).call(this,{iceServers:h,additionalSettings:{encodedInsertableStreams:(e=a(this,zt).getValue("modules").e2ee)==null?void 0:e.enabled},config:{enableHighBitrate:(n=(r=(i=a(this,zt).getValue("defaults").mediaConfiguration)==null?void 0:i.audio)==null?void 0:r.enableHighBitrate)!=null?n:!1,enableStereo:(c=(o=(s=a(this,zt).getValue("defaults").mediaConfiguration)==null?void 0:s.audio)==null?void 0:o.enableStereo)!=null?c:!1,enableDtx:a(this,So)===Ne.HIVE?!0:!!p},iceTransportPolicy:a(this,sr)})}t.recv&&F(this,kh,Av).call(this,{iceServers:h,additionalSettings:{encodedInsertableStreams:(d=a(this,zt).getValue("modules").e2ee)==null?void 0:d.enabled},iceTransportPolicy:a(this,sr)})})},Hd=new WeakSet,Sh=function(t){return u(this,null,function*(){const{id:e,serverId:i,direction:r}=t;F(this,bh,Dv).call(this,t);try{const n=z.hasFeature(ie.ENABLE_HIVE_INFINITE_RETRIES)?1/0:3;return yield kv((s,o)=>u(this,null,function*(){s>0&&l.debug(`Retrying transport connect, count: ${s}`,{transport:{id:e,serverId:i,type:r}});try{if(t.closed)throw new _n("Cannot reconnect closed transport");yield F(this,Eh,Rv).call(this,t)}catch(c){if(c instanceof _n){o(c);return}throw l.error("Failed to connect transport, retrying",{transport:t,error:c}),c}}),{delayTime:100,strategy:"exponential",maxRetryCount:n}),t}catch(n){throw l.error(`Failed to connect send transport after retry: ${t.id}`,{error:n,transport:{id:e,serverId:i,type:r}}),t.close(),t.removeAllListeners(),n}})},Eh=new WeakSet,Rv=function(t){return u(this,null,function*(){const{id:e,direction:i}=t;if(l.info(`Connecting ${i} transport`,{transport:{id:e,type:i}}),!a(this,As).isConnected)throw new _n("Socket is not connected");if(t.connectionState==="closed")throw new _n("Transport is closed");try{yield t.connect(r=>F(this,_h,Ov).call(this,i,r)),l.info(`Connected ${i} transport`,{transport:{id:e,serverId:t.serverId,type:i}})}catch(r){throw a(this,yo).transportFailureCount[i]+=1,r.message==="ice connection failed"?new _n(r.message):r}})},Th=new WeakSet,Mv=function(t){var e,i;if(a(this,wt)&&a(this,wt).connected){l.info("Transport send is already connected",{transport:{id:(e=a(this,wt))==null?void 0:e.id,serverId:(i=a(this,wt))==null?void 0:i.serverId,type:"send"}});return}v(this,wt,a(this,go).createTransport(j(L({},t),{direction:"send"}))),J.configureSendTransport(a(this,wt))},kh=new WeakSet,Av=function(t){var e,i;if(a(this,It)&&a(this,It).connected){l.info("Transport recv is already connected",{transport:{id:(e=a(this,It))==null?void 0:e.id,serverId:(i=a(this,It))==null?void 0:i.serverId,type:"recv"}});return}v(this,It,a(this,go).createTransport(j(L({},t),{direction:"recv"}))),J.configureRecvTransport(a(this,It))},bh=new WeakSet,Dv=function(t){const{direction:e,id:i}=t;t.on("connectionstatechange",r=>u(this,null,function*(){F(this,Gd,Ih).call(this,{state:r,direction:e}),l.info(`Transport connection state changed for ${e} transport`,{transport:{id:i,serverId:t.serverId,type:e,status:r}});const n=()=>{const s=a(this,Ds)[e];s!==void 0&&(clearTimeout(s),a(this,Ds)[e]=void 0)};switch(r){case"connected":n(),a(this,yo).lastConnectionTime=performance.now();break;case"disconnected":a(this,Ds)[e]=setTimeout(()=>u(this,null,function*(){yield F(this,qd,wh).call(this,t.direction)}),$D);break;case"failed":if(t.closed)return;n(),yield F(this,qd,wh).call(this,t.direction);break}})),t.on("icecandidate",r=>u(this,null,function*(){l.debug("Sending iceCandidate:",{iceCandidate:r})})),t.on("datachannel:events",(r,n)=>u(this,null,function*(){var s,o;l.debug("Got data channel message on event:",{rtcChannel:{label:r,message:n}});try{switch(n.type){case"handshake":{const c={type:"handshake",payload:{message:"pong"}};t.sendResponseOverDC(r,Cv(n),c);break}case"hub-disconnect":{l.debug(`media hub disconnected, full_reconnect: ${(s=n.payload)==null?void 0:s.full_reconnect}`),((o=n.payload)==null?void 0:o.full_reconnect)===!0&&this.handleErrors("rejoin");break}case"error":break;default:break}}catch(c){l.error(`Unable to handle the incoming datachannel message on channel ${r}`)}})),t.on("dc_error",()=>{t.direction==="recv"&&(l.warn("Events datachannel did not open in 5s",{country:S.location.country}),this.handleErrors("reconnectRecvTransport"))})},_h=new WeakSet,Ov=function(t,e){return u(this,null,function*(){const i=t==="recv";try{const{sdp:r,type:n}=e,s={consuming:i,description:{sdp:r,type:n,target:i?zi.SUBSCRIBER:zi.PUBLISHER},producers:[]};return a(this,fo).connectTransport(s)}catch(r){throw l.error(`Error in ${t} transport connection:`,{error:r,country:S.location.country}),r}})},qd=new WeakSet,wh=function(t){return u(this,null,function*(){switch(l.info("Called reconnect transport",{transport:{type:t}}),this.stopTransports({[t]:!0}),z.hasFeature(ie.HIVE_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED)&&a(this,As).isConnected&&a(this,yo).transportFailureCount[t]>2&&(l.warn(`Multiple disconnections in ${t} transport, forcing relay`),v(this,sr,"relay")),yield this.setupTransports({[t]:!0}),t){case"send":{l.info("Transport reconnected",{transport:a(this,wt)}),a(this,zt).getValue("peerSessionStore").emit(P.RESET_PRODUCER_STATE);break}case"recv":{l.info("Transport reconnected",{transport:a(this,It)}),a(this,zt).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE,{createAllConsumers:!0});break}default:l.warn("Unknown transport direction",{transport:{type:t}})}F(this,Gd,Ih).call(this,{state:ws.CONNECTED,direction:t})})},Gd=new WeakSet,Ih=function(t){const{state:e,direction:i}=t;a(this,Eo,Wd).mediaState[i]={state:e},a(this,zt).getValue("peerSessionStore").emit(P.TRANSPORT_STATE_UPDATE,L({transport:i},a(this,Eo,Wd).mediaState[i]))};var Ch,Nv;class KD{constructor(e){f(this,Ch),this.recvTransport=e,F(this,Ch,Nv).call(this)}create(e){return u(this,null,function*(){if(!e||e&&e.length===0)throw new Error("List of producers is required");const i={type:"create_consumer",payload:{producers:e.map(({producerId:o,producingTransportId:c,kind:d,mimeType:h})=>({producerId:o,producingTransportId:c,preferredCodec:L(L({},d==="video"&&h?{video:h}:{}),d==="audio"&&h?{audio:h}:{})}))}},r=yield this.recvTransport.sendDataChannelMessage("events",i),n=new Map;e.forEach(o=>n.set(o.producerId,o));const s=new Map;return Object.entries(r).forEach(([o,c])=>{const d=n.get(c.producerId);d&&s.set(c.producerId,{consumerId:o,producingTransportId:d.producingTransportId,producingPeerId:d.producingPeerId,kind:d.kind,paused:d.pause,streamId:c.streamId,trackId:c.trackId,screenShare:d.screenShare,mimeType:d.mimeType,appData:{}})}),{consumerStates:s}})}negotiate(e,i,r){return u(this,null,function*(){try{l.debug(`Received offer over dc: ${e.sdp} for transport`);const n=yield this.recvTransport.setRemoteOffer(e),s={type:"answer",payload:{type:n.type,sdp:n.sdp}};return l.debug(`datachannel answer: ${JSON.stringify(s)}`),this.recvTransport.sendResponseOverDC(r,i,s),n}catch(n){throw l.error("datachannel:events::Error:",n),n.code!=="DC_NOT_FOUND"&&this.recvTransport.sendErrorOverDC(r,i,n),n}})}close(e){return u(this,null,function*(){if(!e.length)return{};const i=e.map(o=>o.id);l.info(`Closing consumers: ${JSON.stringify(i)}`);const r={type:"close_consumers",payload:{consumers:i}},n=yield this.recvTransport.sendDataChannelMessage("events",r),{failedConsumers:s}=n;return{failedConsumers:s}})}switchConsumersToLayer(e,i){return u(this,null,function*(){var r;const n=this.recvTransport.getDatachannel("events");if(!n){l.warn("events datachannel not found");return}const s=(r=e==null?void 0:e.map(({id:c})=>c))!=null?r:[],o={type:"switch_consumer_layer",payload:{consumerIds:s,layer:i}};yield n.request(o),l.info(`Consumers switched layers to ${i}`,{consumerIds:s})})}}Ch=new WeakSet,Nv=function(){this.recvTransport.on("datachannel:events",(t,e)=>u(this,null,function*(){try{switch(e.type){case"negotiation":{const{sdp:i}=e.payload,r={sdp:i,type:"offer"};this.negotiate(r,Cv(e),t);break}default:break}}catch(i){l.error(`Unable to handle the incoming datachannel message on channel ${t}`)}}))};class zD{constructor(e,i,r,n){this.events=e,this.recvTransport=i,this.socket=r,this.socketHandler=n}create(e){return u(this,null,function*(){if(!e||e&&e.length===0)throw new Error("List of producers is required");const i=new Map,r=[];e.forEach(d=>{const{producingPeerId:h,producerId:p,producingTransportId:g}=d,y=z.hasFeature(ie.ENABLE_CF_SIMULCAST)?{simulcast:{preferredRid:"h",priorityOrdering:"asciibetical",ridNotAvailable:"asciibetical"}}:{};i.set(p,h),r.push(L({producingPeerId:h,producerId:p,producingTransportId:g},y))});const n=yield this.socketHandler.consume({requests:r,consumingTransportId:this.recvTransport.serverId}),s=new Map;e.forEach(d=>s.set(d.producerId,d));const o=new Map,c=[];return Object.entries(n.consumerStateMap).forEach(([d,h])=>{const p=s.get(d);if(!p)return;if(h.errorCode){l.warn(`Consumer request failed for producer ${d}`,{error:{message:h.errorCode}}),c.push(j(L({},p),{errorCode:h.errorCode}));return}let g={};try{g=JSON.parse(h.producerState.appData)}catch(y){}o.set(d,{consumerId:h.consumerId,producingTransportId:p.producingTransportId,producingPeerId:p.producingPeerId,kind:p.kind,paused:p.pause,streamId:h.producerTrack.streamId,trackId:h.producerTrack.trackId,screenShare:p.screenShare,mimeType:p.mimeType,appData:g})}),{consumerStates:o,sessionDescription:n.sessionDescription,failedProducers:c}})}negotiate(e){return u(this,null,function*(){try{l.info("Negotiating socket consumer",{transport:this.recvTransport}),l.debug(`setting remote offer: ${JSON.stringify(e)} on recvTransport`,{transport:this.recvTransport});const i=yield this.recvTransport.setRemoteOffer(e),r={transportId:this.recvTransport.serverId,description:{sdp:i.sdp,type:i.type,target:zi.SUBSCRIBER}};return l.debug(`sending renegotiate request: ${JSON.stringify(r)} on recvTransport`,{transport:this.recvTransport}),yield this.socket.sendMessagePromise(this.events.renegotiateSessionDescription,ww.toBinary(r)),l.info("Renegotiation done",{transport:this.recvTransport}),i}catch(i){l.error("Failed to renegotiate",{error:i});return}})}close(e){return u(this,null,function*(){if(!e.length)return{};const i=(r,n)=>u(this,null,function*(){const s=r.map(h=>h.localId);l.info(`Closing consumers: ${JSON.stringify(s)}`);const o={description:{sdp:n.sdp,type:n.type,target:zi.SUBSCRIBER},consumerIds:s,consumingTransportId:this.recvTransport.serverId},c=yield this.socketHandler.closeConsumer(o),d=XI.fromBinary(c).description;return{sdp:d.sdp,type:d.type}});return yield this.recvTransport.awaitQueue.push(()=>this.recvTransport.closeConsumers(e,i),"ConsumerStrategy.close",{consumersLength:e.length}),{}})}switchConsumersToLayer(e,i){return u(this,null,function*(){const r={requests:[],consumingTransportId:this.recvTransport.serverId};e.forEach(({id:n,producingTransportId:s,localId:o})=>{r.requests.push({producerId:n,producingTransportId:s,mid:o,simulcast:{preferredRid:i===0?"q":"h",priorityOrdering:"asciibetical",ridNotAvailable:"asciibetical"}})}),yield this.socketHandler.updateConsumersSimulcastConfig(r),l.info(`Consumers switched layers to ${i}`,{consumerIds:e==null?void 0:e.map(({id:n})=>n)})})}}class Ph{constructor(e){this.socketHandler=e}static getMSIDFromSDP(e,i){return Jr(e).media.filter(r=>i==="video"?r.type==="video":r.type==="audio").at(-1).msid}create(e){return u(this,arguments,function*({offer:i,kind:r,paused:n,appData:s,codecOptions:o,producingTransportId:c}){var d,h;const p=Ph.getMSIDFromSDP(i.sdp,r),g={description:{sdp:i.sdp,type:i.type,target:zi.PUBLISHER},paused:n,kind:r,msid:p,appData:JSON.stringify(s),screenShare:(d=s.screenShare)!=null?d:!1,mimeType:`${r}/${(h=o[0])==null?void 0:h.name}`,producingTransportId:c},{answer:y,producerId:T}=yield this.socketHandler.produce(g);return{answer:y,producerId:T}})}}var Ar,Os,Cn,To,$d,Bi,Rh,Dr,ko,Jd,Mh,Ah,Lv,Dh,Vv,Oh,xv,Nh,Uv;class YD extends JD{constructor(e,i,r){super(e,i,r),f(this,Jd),f(this,Ah),f(this,Dh),f(this,Oh),f(this,Nh),f(this,Ar,void 0),f(this,Os,void 0),f(this,Cn,void 0),f(this,To,void 0),f(this,$d,void 0),f(this,Bi,void 0),f(this,Rh,{producerCreationFailureCount:0,consumerCreationFailureCount:0,producerNotReadyFailureCount:0}),f(this,Dr,[]),f(this,ko,void 0),v(this,Ar,e),this.sendTransportConnectedCallback=()=>u(this,null,function*(){v(this,$d,new Ph(this.socketHandler))}),this.recvTransportConnectedCallback=n=>u(this,null,function*(){switch(a(this,To).clear(),this.nodeType){case Ne.CF:{v(this,Bi,new zD(this.events,n,this.socket,this.socketHandler));break}case Ne.HIVE:default:v(this,Bi,new KD(n))}}),this.reset()}get socketHandler(){return super.socketHandler}get producers(){return a(this,Os)}get consumers(){return a(this,Cn)}get producerIdToConsumerIdMap(){return a(this,To)}reset(){v(this,Os,new Map),v(this,Cn,new Map),v(this,To,new Map)}createProducer(e,i){return u(this,null,function*(){var r;if(!this.sendTransport||this.sendTransport.closed)throw new Error("Send transport is closed");try{const n=yield this.sendTransport.produce(e,F(this,Ah,Lv).bind(this));return(r=e.appData)!=null&&r.e2ee&&a(this,Ar).getValue("peerSessionStore").emit(P.E2EE_ACTIVE_PRODUCER,n),F(this,Dh,Vv).call(this,n,i),n}catch(n){throw l.error("Failed to create producer",{error:n}),a(this,Rh).producerCreationFailureCount+=1,n}})}closeProducer(e,i){return u(this,null,function*(){var r;const n=this.producers.get(e);if(!n){l.warn(`Producer with ID ${e} was not found`);return}i!=null&&i.stopTrack&&n.track.stop();try{yield this.sendTransport.closeProducer(n),(r=a(this,Ar).getValue("modules").e2ee)!=null&&r.enabled&&a(this,Ar).getValue("peerSessionStore").emit(P.E2EE_INACTIVE_PRODUCER,n)}catch(s){l.error("Failed to close producer on server",{error:s,producer:n})}})}closeAllProducers(){return Promise.all(Array.from(a(this,Os).entries()).map(([,e])=>e.close()))}createConsumer(e){return this.createConsumers([e])}createConsumers(e){return u(this,null,function*(){a(this,ko)||clearTimeout(a(this,ko)),v(this,Dr,a(this,Dr).concat(e)),yield F(this,Jd,Mh).call(this)})}closeConsumer(e){return this.closeConsumers([e])}closeConsumers(e){return u(this,null,function*(){if(!a(this,Bi))return;const i=e.map(n=>this.consumers.get(n)).filter(n=>n!==void 0);if(i.length===0)return;const{failedConsumers:r}=yield a(this,Bi).close(i);r!=null&&r.length&&l.warn("Failed to close some consumers",{consumerIds:r})})}closeAllConsumers(){return this.closeConsumers(Array.from(a(this,Cn).keys()))}switchConsumersToLayer(e,i){return u(this,null,function*(){a(this,Bi).switchConsumersToLayer(e,i)})}}Ar=new WeakMap,Os=new WeakMap,Cn=new WeakMap,To=new WeakMap,$d=new WeakMap,Bi=new WeakMap,Rh=new WeakMap,Dr=new WeakMap,ko=new WeakMap,Jd=new WeakSet,Mh=function(){return u(this,null,function*(){if(!this.recvTransport||this.recvTransport.closed)throw new Error("Recv transport is closed");const t=500,e=a(this,Dr).splice(0,a(this,Dr).length);try{const i=e.filter(({producerId:s})=>!this.producers.get(s));if(i.length===0)return;const{consumers:r,failedProducers:n}=yield this.recvTransport.consume(i,F(this,Oh,xv).bind(this),a(this,Bi).negotiate.bind(a(this,Bi)));if(r.forEach(F(this,Nh,Uv).bind(this)),n!=null&&n.length){l.error("Failed to create consumers for producers",{producers:n});const s=n.filter(({errorCode:o,producerId:c})=>o==="not_found_track_error"?(l.error(`Track not found for producer: ${c}. This will not be retried.`),!1):o==="backend_error"?(l.error("Unrecoverable error: backend error"),!1):!0);v(this,Dr,a(this,Dr).concat(s)),v(this,ko,setTimeout(F(this,Jd,Mh).bind(this),t))}}catch(i){if(l.error("failed to consume on transport",{error:i}),i.errorCode==="internal_error"&&i.errorDescription==="Backend error"||i.errorCode==="invalid_session_description"){l.error("Irrecoverable error, closing current recvTransport to create a new one",{transport:this.recvTransport,error:{code:i.errorCode,message:i.errorDescription}});try{this.stopTransports({recv:!0})}catch(r){}yield this.setupTransports({recv:!0})}}})},Ah=new WeakSet,Lv=function(t){return a(this,$d).create(t)},Dh=new WeakSet,Vv=function(t,e){t.on("close",(i,r)=>u(this,null,function*(){const{offer:n,reason:s}=i;if(l.info("producer::closing",{debuggingHint:s,producer:j(L({},t),{status:"closing"})}),s!==xd){const o={producerId:t.id,description:{sdp:n.sdp,type:n.type,target:zi.PUBLISHER}};try{const c=yield this.socketHandler.closeProducer(o),d={sdp:c==null?void 0:c.sdp,type:c==null?void 0:c.type};l.info("producer::closed",{producer:j(L({},t),{status:"closed"})}),r({answer:d})}catch(c){l.error("producer close error",c)}}this.producers.delete(t.id),e()})),t.on("trackended",()=>{l.info("producer::trackended",{producer:j(L({},t),{status:"UNKNOWN"})})}),a(this,Os).set(t.id,t)},Oh=new WeakSet,xv=function(t){return u(this,null,function*(){try{return yield this.recvTransport.canConsume(),yield a(this,Bi).create(t)}catch(e){throw l.error("Error in consume request",{error:e}),e}})},Nh=new WeakSet,Uv=function(t){t.on("close",e=>u(this,null,function*(){l.debug("consumer closed",{consumer:{closureReason:e,id:t.id,kind:t.kind,appData:t.appData}}),a(this,Cn).delete(t.id),a(this,Ar).getValue("peerSessionStore").emit(P.CONSUMER_CLOSED,{id:t.id})})),a(this,Cn).set(t.id,t),this.producerIdToConsumerIdMap.set(t.producerId,t.id),a(this,Ar).getValue("peerSessionStore").emit(P.NEW_CONSUMER,{id:t.id,appData:t.appData,peerId:t.peerId})};var Kd,zd,Yd,bo,_o,wo,Qd,Xd,Io,Yt,Wi,ji,Pn,Rn,Or,Zd,Lh,Fv,Vh,Bv,xh,Wv,Uh,jv;const Fh=class{constructor({initialEnergyThreshold:t=.015,zeroCrossingThreshold:e=20,minVoiceDuration:i=3,hangoverFrames:r=5,noiseAdaptationRate:n=.95,voiceAdaptationRate:s=.99,minEnergyThreshold:o=.005,maxEnergyThreshold:c=.2,energyRatioThreshold:d=1.5,noiseHistorySize:h=50}={}){f(this,Lh),f(this,Vh),f(this,Kd,void 0),f(this,zd,void 0),f(this,Yd,void 0),f(this,bo,void 0),f(this,_o,void 0),f(this,wo,void 0),f(this,Qd,void 0),f(this,Xd,void 0),f(this,Io,void 0),f(this,Yt,void 0),f(this,Wi,void 0),f(this,ji,!1),f(this,Pn,0),f(this,Rn,0),f(this,Or,[]),f(this,Zd,void 0),v(this,bo,t),v(this,Yt,t),v(this,Kd,e),v(this,zd,i),v(this,Yd,r),v(this,_o,n),v(this,wo,s),v(this,Qd,o),v(this,Xd,c),v(this,Io,d),v(this,Zd,h),v(this,Wi,t/2)}get voiceDetected(){return a(this,ji)}processAudioChunk(t){var e,i;const r=F(e=Fh,xh,Wv).call(e,t),n=F(i=Fh,Uh,jv).call(i,t);return F(this,Lh,Fv).call(this,r),r/a(this,Wi)>a(this,Io)&&r>a(this,Yt)&&n>a(this,Kd)?(v(this,Pn,a(this,Pn)+1),v(this,Rn,a(this,Yd)),a(this,Pn)>=a(this,zd)&&v(this,ji,!0)):(v(this,Pn,0),a(this,Rn)>0?v(this,Rn,a(this,Rn)-1):a(this,ji)&&v(this,ji,!1),a(this,ji)||F(this,Vh,Bv).call(this,r)),{energy:r,isVoice:a(this,ji)}}reset(){v(this,ji,!1),v(this,Pn,0),v(this,Rn,0),v(this,Yt,a(this,bo)),v(this,Wi,a(this,bo)/2),v(this,Or,[])}getThresholdInfo(){return{currentEnergyThreshold:a(this,Yt),backgroundNoiseEnergy:a(this,Wi),energyRatioThreshold:a(this,Io)}}};let Bh=Fh;Kd=new WeakMap,zd=new WeakMap,Yd=new WeakMap,bo=new WeakMap,_o=new WeakMap,wo=new WeakMap,Qd=new WeakMap,Xd=new WeakMap,Io=new WeakMap,Yt=new WeakMap,Wi=new WeakMap,ji=new WeakMap,Pn=new WeakMap,Rn=new WeakMap,Or=new WeakMap,Zd=new WeakMap,Lh=new WeakSet,Fv=function(t){a(this,ji)?v(this,Yt,a(this,wo)*a(this,Yt)+(1-a(this,wo))*t):v(this,Yt,a(this,_o)*a(this,Yt)+(1-a(this,_o))*a(this,Wi)),v(this,Yt,Math.max(a(this,Qd),Math.min(a(this,Xd),a(this,Yt))))},Vh=new WeakSet,Bv=function(t){if(t<a(this,Yt)*1.2)if(a(this,Or).push(t),a(this,Or).length>a(this,Zd)&&a(this,Or).shift(),a(this,Or).length>=10){const e=[...a(this,Or)].sort((r,n)=>r-n),i=Math.floor(e.length/2);v(this,Wi,e[i])}else v(this,Wi,.95*a(this,Wi)+.05*t)},xh=new WeakSet,Wv=function(t){return Math.sqrt(t.map(e=>e*e).reduce((e,i)=>e+i)/t.length)},Uh=new WeakSet,jv=function(t){let e=0;for(let i=1;i<t.length;i+=1)(t[i]>=0&&t[i-1]<0||t[i]<0&&t[i-1]>=0)&&(e+=1);return e},f(Bh,xh),f(Bh,Uh);const QD=60,XD=400;var Nr,Lr,Hi,Mn,An,Co,Ns,Po,Vr,Dn,Ro,Wh,Hv,el,jh,Hh,qv,qh,Gv;const tl=class{constructor(t){f(this,Wh),f(this,Hh),f(this,Nr,void 0),f(this,Lr,void 0),f(this,Hi,void 0),f(this,Mn,void 0),f(this,An,void 0),f(this,Co,void 0),f(this,Ns,void 0),f(this,Po,void 0),f(this,Vr,void 0),f(this,Dn,void 0),f(this,Ro,void 0),this.reportRequest=t,v(this,Mn,new AudioContext),v(this,An,a(this,Mn).createAnalyser()),a(this,An).fftSize=2048,v(this,Po,new Bh)}set producerId(t){v(this,Hi,t)}set audioTrack(t){v(this,Co,t);const e=new MediaStream;e.addTrack(a(this,Co)),a(this,Mn).createMediaStreamSource(e).connect(a(this,An))}start(){l.debug(`AudioActivityReporter: Starting audio activity reporter: ${a(this,Hi)}`),a(this,Nr)&&Hn(a(this,Nr)),v(this,Nr,mc(()=>u(this,null,function*(){var t;if(!a(this,Co)||!a(this,Hi))return;const{energy:e}=F(this,Wh,Hv).call(this),i=F(t=tl,el,jh).call(t,e);let r=.9;a(this,Ro)!==i&&a(this,Ro)?r=.9:i?r=.3:r=.5,v(this,Ns,(a(this,Ns)||0)*(1-r)+e*r)}),QD)),a(this,Lr)&&Hn(a(this,Lr)),v(this,Lr,mc(F(this,Hh,qv).bind(this),XD))}stop(){try{l.debug(`AudioActivityReporter: Stopping audio activity reporter: ${a(this,Hi)}`),a(this,Nr)&&(Hn(a(this,Nr)),v(this,Nr,void 0)),a(this,Lr)&&(Hn(a(this,Lr)),v(this,Lr,void 0))}catch(t){}a(this,Po).reset()}};let Gh=tl;Nr=new WeakMap,Lr=new WeakMap,Hi=new WeakMap,Mn=new WeakMap,An=new WeakMap,Co=new WeakMap,Ns=new WeakMap,Po=new WeakMap,Vr=new WeakMap,Dn=new WeakMap,Ro=new WeakMap,Wh=new WeakSet,Hv=function(){var t;a(this,Mn).state==="suspended"&&a(this,Mn).resume().then(()=>{l.debug("AudioActivityReporter: AudioContext forced resumed")}).catch(s=>{l.error("AudioActivityReporter: Error resuming AudioContext",s)});const e=new Float32Array(a(this,An).frequencyBinCount);a(this,An).getFloatTimeDomainData(e);const{energy:i,isVoice:r}=a(this,Po).processAudioChunk(e),n=F(t=tl,qh,Gv).call(t,i);return z.hasFeature(ie.ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS)&&l.debug(`AudioActivityReporter: producer: ${a(this,Hi)}, energy: ${a(this,Ns)},
12
+ `)),this.pc2.setLocalDescription(e),this.pc1.setRemoteDescription(e)}establishConnection(){this.pc1.createOffer().then(this.gotOffer.bind(this),this.reportFatal.bind(this))}reportFatal(e){console.error("Error:",e)}getRoundTripTime(){return u(this,null,function*(){const[e,i]=yield Promise.all([this.pc1.getStats(),this.pc2.getStats()]);let r,n;if(e.forEach(s=>{s.type==="candidate-pair"&&s.nominated===!0&&s.bytesSent>0&&(r=s)}),i.forEach(s=>{s.type==="candidate-pair"&&s.nominated===!0&&s.bytesReceived>0&&(n=s)}),r&&n)try{if(r.currentRoundTripTime&&n.currentRoundTripTime)return{rtt:r.currentRoundTripTime,backendRTT:n.currentRoundTripTime};const s=(n.lastPacketReceivedTimestamp-r.lastPacketSentTimestamp)/1e3;return{rtt:s,backendRTT:s}}catch(s){return}})}close(){this.pc1.close(),this.pc2.close()}}class mm extends lt{constructor(e){super(),m(this,"call"),m(this,"timeOut"),this.call=new Ji(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 QS=8,XS=1/1e3;class ZS extends mm{constructor(e){super(e),m(this,"senderChannel"),m(this,"recieveChannel"),m(this,"startTime"),m(this,"lastBitrateMeasureTime"),m(this,"sentPayloadBytes",0),m(this,"recievedPayloadBytes",0),m(this,"lastReceivedPayloadBytes",0),m(this,"stopSending",!1),m(this,"testProgress",0),m(this,"samplePacket",""),m(this,"finalBitrateSum",0),m(this,"bitRateSampels",0),m(this,"maxNumberOfPacketsToSend",0),m(this,"bytesToKeepBuffered",0),m(this,"testDurationSeconds",5),this.call.setIceCandidateFilter(Ji.isNotHostCandidate),this.senderChannel=this.call.pc1.createDataChannel(null);for(let i=0;i<262144;i+=1)this.samplePacket+="h";this.maxNumberOfPacketsToSend=1,this.bytesToKeepBuffered=1024*this.maxNumberOfPacketsToSend,this.testDurationSeconds=4,this.senderChannel.addEventListener("open",this.sendingStep.bind(this)),this.call.pc2.addEventListener("datachannel",this.onRecieverChannel.bind(this))}sendingStep(){const e=new Date;this.startTime||(this.startTime=e,this.lastBitrateMeasureTime=e);for(let r=0;r!==this.maxNumberOfPacketsToSend&&!(this.senderChannel.bufferedAmount>=this.bytesToKeepBuffered);r+=1){this.sentPayloadBytes+=this.samplePacket.length;try{this.senderChannel.send(this.samplePacket)}catch(n){}}const i=e.getTime()-this.startTime.getTime();i>=1e3*this.testDurationSeconds?(this.stopSending=!0,this.testProgress=100):(this.testProgress=i/(10*this.testDurationSeconds),setTimeout(this.sendingStep.bind(this),1))}onMessageRecieved(e){this.recievedPayloadBytes+=e.data.length;const i=new Date,r=i.getTime()-this.lastBitrateMeasureTime.getTime();if(r>=1e3){const n=(this.recievedPayloadBytes-this.lastReceivedPayloadBytes)*QS/(r/1e3);this.finalBitrateSum+=n,this.bitRateSampels+=1,this.lastReceivedPayloadBytes=this.recievedPayloadBytes,this.lastBitrateMeasureTime=i}if(this.stopSending&&this.sentPayloadBytes===this.recievedPayloadBytes){const n=this.finalBitrateSum/this.bitRateSampels;this.testComplete({throughput:Math.round(n*XS)})}}testComplete(e){this.call.getRoundTripTime().then(({rtt:i,backendRTT:r})=>super.testComplete({RTT:i,backendRTT:r,throughput:e.throughput}))}onRecieverChannel(e){this.recieveChannel=e.channel,this.recieveChannel.addEventListener("message",this.onMessageRecieved.bind(this))}}class Fl extends mm{constructor(e,i=Ji.noFilter){super(e),m(this,"ch1"),m(this,"ch2"),this.call.setIceCandidateFilter(i);const r=this.call.pc1.createDataChannel(null);this.ch1=r,r.addEventListener("open",()=>{r.send("hello")}),r.addEventListener("message",this.onCh1Recieve.bind(this)),this.call.pc2.addEventListener("datachannel",this.dataChannelHandler.bind(this))}onCh1Recieve(e){e.data!=="world"?this.hangup("Invalid data transmitted."):this.testComplete({connectivity:!0})}onCh2Recieve(e){if(e.data!=="hello")this.hangup("Invalid data transmitted.");else try{this.ch2.send("world")}catch(i){}}dataChannelHandler(e){const i=e.channel;this.ch2=i,i.addEventListener("message",this.onCh2Recieve.bind(this))}hangup(e){this.testFailed(e)}}class eE extends Fl{constructor(e){super(e,Ji.isHost)}}class tE extends Fl{constructor(e){super(e,Ji.isRelay)}}class iE extends Fl{constructor(e){super(e,Ji.isReflexive)}}class rE{constructor(){m(this,"ipInformation",null)}getIPDetails(e){return u(this,arguments,function*({peerId:i,apiHostnames:r,logger:n}){var s,o,c;if(!this.ipInformation){try{const d=`https://${r.location}`,h=yield(yield fetch(d)).json();if(((s=h.loc)==null?void 0:s.length)>5)return this.ipInformation=h,(o=this.ipInformation)!=null&&o.ip&&(this.ipInformation.ip=lr(this.ipInformation.ip)),h;throw Error("Insufficient data")}catch(d){n.error("callstats::ipDetails:: failed to fetch ip using location service",{error:d})}try{const d=yield fetch(`https://${r.locationLegacy}/?token=3c493932b0624c&peerId=${i}`,{method:"POST"});this.ipInformation=yield d.json(),(c=this.ipInformation)!=null&&c.ip&&(this.ipInformation.ip=lr(this.ipInformation.ip))}catch(d){n.error("callstats::ipDetails:: failed to fetch ip using legacy location service",{error:d})}}return this.ipInformation})}resetCache(){this.ipInformation=null}}const Bl=new rE,gm=[{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 fm(t){const[e,i]=t.split(",");return{coords:{latitude:Number(e),longitude:Number(i)}}}class vm{constructor(){m(this,"transport"),m(this,"candidatePair"),m(this,"outboundVideoRtp",new Map),m(this,"inboundVideoRtp",new Map),m(this,"outboundAudioRtp",new Map),m(this,"inboundAudioRtp",new Map),m(this,"remoteInboundRtp",new Map),m(this,"producerStreamMap",new Map),m(this,"consumerStreamMap",new Map),m(this,"staleProducerStreamMap",!1),m(this,"staleConsumerStreamMap",!1)}}class ym extends lt{constructor(){super(),m(this,"observer"),m(this,"outboundProducerMap",new Map),m(this,"inboundConsumerMap",new Map),m(this,"consumerPeerIdMap",new Map),m(this,"pausedConsumerMap",new Map),m(this,"pausedProducerMap",new Map),m(this,"overallProducingTransportsStatsMap",{}),m(this,"overallConsumingTransportsStatsMap",{}),m(this,"overallConsumersStatsMap",{}),m(this,"overallProducersStatsMap",{}),m(this,"videoProducerToStatsMap",new Map),m(this,"audioProducerToStatsMap",new Map),m(this,"videoConsumerToStatsMap",new Map),m(this,"audioConsumerToStatsMap",new Map),m(this,"consumerIdsWithFreezedVideo",new Set),m(this,"consumerIdsWithFreezedAudio",new Set),m(this,"producerIdsWithFreezedVideo",new Set),m(this,"producerIdsWithFreezedAudio",new Set),m(this,"freezedProducingTransportIds",new Set),m(this,"freezedConsumingTransportIds",new Set),m(this,"screenShareProducers",new Set),m(this,"screenShareConsumers",new Set),m(this,"ipDetails"),m(this,"callStatsInstance"),this.observer=new lt}registerProducer(e){return u(this,null,function*(){yield this.generateProducerStreamMap(e),e.on("close",this.deregisterProducer.bind(this,e)),e.on("pause",this.pauseProducer.bind(this,e.id)),e.on("resume",this.resumeProducer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareProducers.add(e.id)})}pauseProducer(e){this.pausedProducerMap.set(e,{lastReportCalculated:!1})}resumeProducer(e){this.pausedProducerMap.delete(e)}processInboundConsumerVideoStats(e,i,r){var n,s;const o=((s=(n=this==null?void 0:this.callStatsInstance)==null?void 0:n.consumerSharedMediaStatesMap)==null?void 0:s.get(e))||{};i.totalVideoPacketsReceived===r.packetsReceived?(this.consumerIdsWithFreezedVideo.add(e),this.callStatsInstance&&o.video&&(this.callStatsInstance.logger.debug("callstats::measurements::consumerVideoFreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_video_status","pause",e))):(i.totalVideoPacketsReceived=r.packetsReceived,this.consumerIdsWithFreezedVideo.has(e)&&(this.consumerIdsWithFreezedVideo.delete(e),this.callStatsInstance&&o.video&&(this.callStatsInstance.logger.debug("callstats::measurements::consumerVideoDefreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_video_status","resume",e))))}processInboundConsumerAudioStats(e,i,r){var n,s;const o=((s=(n=this==null?void 0:this.callStatsInstance)==null?void 0:n.consumerSharedMediaStatesMap)==null?void 0:s.get(e))||{};i.totalAudioPacketsReceived===r.packetsReceived?(this.consumerIdsWithFreezedAudio.add(e),this.callStatsInstance&&o.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::consumerAudioFreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_audio_status","pause",e))):(i.totalAudioPacketsReceived=r.packetsReceived,this.consumerIdsWithFreezedAudio.has(e)&&(this.consumerIdsWithFreezedAudio.delete(e),this.callStatsInstance&&o.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::consumerAudioDefreezed",{consumerId:e}),this.callStatsInstance.eventHandler.emit("consumer_audio_status","resume",e))))}processOutboundProducerVideoStats(e,i,r){var n;const s=((n=this==null?void 0:this.callStatsInstance)==null?void 0:n.currentUserMediaStates)||{};i.totalVideoPacketsSent===r.packetsSent?(this.producerIdsWithFreezedVideo.add(e),this.callStatsInstance&&s.video&&(this.callStatsInstance.logger.debug("callStats::measurements::producerVideoFreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_video_status","pause",e))):(i.totalVideoPacketsSent=r.packetsSent,this.producerIdsWithFreezedVideo.has(e)&&(this.producerIdsWithFreezedVideo.delete(e),this.callStatsInstance&&s.video&&(this.callStatsInstance.logger.debug("callStats::measurements::producerVideoDefreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_video_status","resume",e))))}processOutboundProducerAudioStats(e,i,r){var n;const s=((n=this==null?void 0:this.callStatsInstance)==null?void 0:n.currentUserMediaStates)||{};i.totalAudioPacketsSent===r.packetsSent?(this.producerIdsWithFreezedAudio.add(e),this.callStatsInstance&&s.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::producerAudioFreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_audio_status","pause",e))):(i.totalAudioPacketsSent=r.packetsSent,this.producerIdsWithFreezedAudio.has(e)&&(this.producerIdsWithFreezedAudio.delete(e),this.callStatsInstance&&s.audio&&(this.callStatsInstance.logger.debug("callStats::measurements::producerAudioDefreezed",{producerId:e}),this.callStatsInstance.eventHandler.emit("producer_audio_status","resume",e))))}processProducingTransportStats(e,i,r){var n;const s=((n=this==null?void 0:this.callStatsInstance)==null?void 0:n.currentUserMediaStates)||{},{audio:o,video:c,screen:d}=s,h=o||c||d;i.totalPacketsSent===r.packetsSent?(this.freezedProducingTransportIds.add(e),this.callStatsInstance&&h&&(this.callStatsInstance.logger.debug("callStats::measurements::producingTransportFreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("producing_transport_status","pause",e))):(i.totalPacketsSent=r.packetsSent,this.freezedProducingTransportIds.has(e)&&(this.freezedProducingTransportIds.delete(e),this.callStatsInstance&&h&&(this.callStatsInstance.logger.debug("callStats::measurements::producingTransportDefreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("producing_transport_status","resume",e))))}processConsumingTransportStats(e,i,r){var n,s;const o=!!Array.from(((s=(n=this==null?void 0:this.callStatsInstance)==null?void 0:n.consumerSharedMediaStatesMap)==null?void 0:s.values())||[]).reduce((c,d)=>c||d.audio||d.video||d.screen,!1);i.totalPacketsReceived===r.packetsSent?(this.freezedConsumingTransportIds.add(e),this.callStatsInstance&&o&&(this.callStatsInstance.logger.debug("callStats::measurements::consumingTransportFreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("consuming_transport_status","pause",e))):(i.totalPacketsReceived=r.packetsSent,this.freezedConsumingTransportIds.has(e)&&(this.freezedConsumingTransportIds.delete(e),this.callStatsInstance&&o&&(this.callStatsInstance.logger.debug("callStats::measurements::consumingTransportDefreezed",{transportId:e}),this.callStatsInstance.eventHandler.emit("consuming_transport_status","resume",e))))}registerConsumer(e){return u(this,null,function*(){yield this.generateConsumerStreamMap(e),this.consumerPeerIdMap.set(e.id,{producerId:e.producerId,peerId:e.appData.peerId,appData:e.appData}),e.on("close",this.deregisterConsumer.bind(this,e)),e.on("pause",this.pauseConsumer.bind(this,e.id)),e.on("resume",this.resumeConsumer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareConsumers.add(e.id)})}pauseConsumer(e){this.pausedConsumerMap.set(e,{lastReportCalculated:!1})}resumeConsumer(e){this.pausedConsumerMap.delete(e)}generateProducerStreamMap(e,i=!1){return u(this,null,function*(){const r=yield e.getStats(),n=i?this.getProducerStatsFromReport(this.parseRTCReport(r,["outbound-rtp","remote-inbound-rtp"],!1,e.id))[0]:void 0;for(const s of r.values())switch(s.type){case"outbound-rtp":{this.outboundProducerMap.set(s.id,e.id);break}}return n})}generateConsumerStreamMap(e,i=!1){return u(this,null,function*(){const r=yield e.getStats(),n=i?this.getConsumerStatsFromReport(this.parseRTCReport(r,["inbound-rtp"],!1,e.id))[0]:void 0;for(const s of r.values())switch(s.type){case"inbound-rtp":{this.inboundConsumerMap.set(s.id,e.id);break}}return n})}deregisterProducer(e){this.outboundProducerMap.forEach((i,r)=>{i===e.id&&this.outboundProducerMap.delete(r)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.inboundConsumerMap.forEach((i,r)=>{i===e.id&&this.inboundConsumerMap.delete(r)}),this.consumerPeerIdMap.delete(e.id),this.pausedConsumerMap.delete(e.id),this.screenShareConsumers.delete(e.id)}getIceCandidateStats(e){var i;return{id:e.id,type:e.candidateType||e.type,address:e.address,port:e.port,url:e.url,protocol:(i=e.relayProtocol)!=null?i:e.protocol,networkType:e.networkType,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort}}getWorkingSimulcastVideoStats(e){return e.find(i=>{const r=i.framesEncoded>0,n=i.packetsSent>0,s=i.frameWidth&&i.frameHeight;return r&&n&&!!s})||e[e.length-1]}parseRTCReport(e,i=[],r=!1,n=void 0,s=void 0){var o,c,d,h,p,g,y,T,b,O,R,x,G;const $=e,I=new vm,se=i.length?new Set(i):void 0,ne=[],Se=[],nt=[],ft=new Map,Bt=new Map;for(const M of $.values()){if(se){if(se.size===0)break;if(se.has(M.type))r&&se.delete(M.type);else continue}switch(M.type){case"local-candidate":{ne.push(this.getIceCandidateStats(M));break}case"remote-candidate":{Se.push(this.getIceCandidateStats(M));break}case"candidate-pair":{const{nominated:k}=M,{selected:_}=M,W=M,Re={nominated:k!=null?k:_,currentRoundTripTime:W.currentRoundTripTime,totalRoundTripTime:W.totalRoundTripTime,bytesReceived:W.bytesReceived,bytesSent:W.bytesSent,availableOutgoingBitrate:W.availableOutgoingBitrate,availableIncomingBitrate:W.availableIncomingBitrate,lastPacketReceivedTimestamp:W.lastPacketReceivedTimestamp,lastPacketSentTimestamp:W.lastPacketSentTimestamp,localCandidateId:W.localCandidateId,remoteCandidateId:W.remoteCandidateId,bytesDiscardedOnSend:W.bytesDiscardedOnSend,packetsSent:W.packetsSent,packetsReceived:W.packetsReceived,packetsDiscardedOnSend:W.packetsDiscardedOnSend};nt.push(Re),(M.nominated===!0||M.selected===!0)&&(I.candidatePair=Re);break}case"transport":{const k=M;s&&(s.producing&&(this.overallProducingTransportsStatsMap[s.id]||(this.overallProducingTransportsStatsMap[s.id]={totalPacketsSent:0})),s.consuming&&(this.overallConsumingTransportsStatsMap[s.id]||(this.overallConsumingTransportsStatsMap[s.id]={totalPacketsReceived:0})));const _={bytesReceived:k.bytesReceived,bytesSent:k.bytesSent,packetsSent:k.packetsSent,packetsReceived:k.packetsReceived,dtlsCipher:k.dtlsCipher,dtlsState:k.dtlsState,iceRole:k.iceRole};if(I.transport=_,s){if(s.producing){const W=this.overallProducingTransportsStatsMap[s.id];this.processProducingTransportStats(s.id,W,_)}if(s.consuming){const W=this.overallConsumingTransportsStatsMap[s.id];this.processConsumingTransportStats(s.id,W,_)}}break}case"remote-inbound-rtp":{const k=M,_={jitter:k.jitter,fractionLost:k.fractionLost,roundTripTime:k.roundTripTime,roundTripTimeMeasurements:k.roundTripTimeMeasurements,totalRoundTripTime:k.totalRoundTripTime,packetsLost:k.packetsLost};I.remoteInboundRtp.set(k.localId,_);break}case"outbound-rtp":{const k=M,_=n||this.outboundProducerMap.get(M.id),W=this.pausedProducerMap.get(_);if(W){if(W.lastReportCalculated===!0)break;this.pausedProducerMap.set(_,{lastReportCalculated:!0})}this.overallProducersStatsMap[_]||(this.overallProducersStatsMap[_]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const Re=this.overallProducersStatsMap[_];if(["video","audio"].includes(k.mediaType)||["video","audio"].includes(k.kind)){if(!this.outboundProducerMap.has(M.id)){I.staleProducerStreamMap=!0;break}const fe=this.callStatsInstance.producers.get(_);if(((o=fe==null?void 0:fe.track)==null?void 0:o.readyState)==="ended")break;I.producerStreamMap.has(_)||I.producerStreamMap.set(_,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const U={bytesSent:k.bytesSent,packetsSent:k.packetsSent,nackCount:k.nackCount,ssrc:k.ssrc,mid:k.mid,active:k.active,codecId:k.codecId,headerBytesSent:k.headerBytesSent||0,totalPacketSendDelay:k.totalPacketSendDelay||0};if(k.mediaType==="video"||k.kind==="video"){const C=k,Ge=L({frameHeight:C.frameHeight,frameWidth:C.frameWidth,framesEncoded:C.framesEncoded,framesDropped:C.framesDropped,framesPerSecond:C.framesPerSecond,framesSent:C.framesSent,keyFramesEncoded:C.keyFramesEncoded,firCount:C.firCount,encoderImplementation:C.encoderImplementation,hugeFramesSent:C.hugeFramesSent,pliCount:C.pliCount,qpSum:C.qpSum,qualityLimitationDurations:C.qualityLimitationDurations,qualityLimitationReason:C.qualityLimitationReason,qualityLimitationResolutionChanges:C.qualityLimitationResolutionChanges,totalEncodeTime:C.targetBitrate,totalPacketSendDelay:C.totalPacketSendDelay,retransmittedBytesSent:C.retransmittedBytesSent,retransmittedPacketsSent:C.retransmittedPacketsSent,scalabilityMode:C.scalabilityMode,powerEfficientEncoder:C.powerEfficientEncoder},U);I.outboundVideoRtp.set(M.id,Ge),I.producerStreamMap.get(_).outboundVideoRtpId.push(M.id),this.processOutboundProducerVideoStats(_,Re,Ge)}else if(k.mediaType==="audio"||k.kind==="audio"){const C=k,Ge=L({retransmittedBytesSent:C.retransmittedBytesSent,retransmittedPacketsSent:C.retransmittedPacketsSent},U);I.outboundAudioRtp.set(M.id,Ge),I.producerStreamMap.get(_).outboundAudioRtpId.push(M.id),this.processOutboundProducerAudioStats(_,Re,Ge)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${k.mediaType} kind: ${k.kind}`);break}case"inbound-rtp":{const k=M,_=n||this.inboundConsumerMap.get(M.id),W=this.pausedConsumerMap.get(_);if(W){if(W.lastReportCalculated===!0)break;this.pausedConsumerMap.set(_,{lastReportCalculated:!0})}if(k.ssrc===1234)break;this.overallConsumersStatsMap[_]||(this.overallConsumersStatsMap[_]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const Re=this.overallConsumersStatsMap[_];if(["video","audio"].includes(k.mediaType)||["video","audio"].includes(k.kind)){if(!this.inboundConsumerMap.has(M.id)){I.staleConsumerStreamMap=!0;break}I.consumerStreamMap.has(_)||I.consumerStreamMap.set(_,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const fe={bytesReceived:k.bytesReceived,packetsReceived:k.packetsReceived,packetsLost:k.packetsLost>=0?k.packetsLost:0,jitter:k.jitter,nackCount:k.nackCount,jitterBufferDelay:k.jitterBufferDelay,jitterBufferEmittedCount:k.jitterBufferEmittedCount,lastPacketReceivedTimestamp:k.lastPacketReceivedTimestamp,ssrc:k.ssrc,mid:k.mid,codecId:k.codecId,headerBytesReceived:k.headerBytesReceived||0,packetsDiscarded:k.packetsDiscarded||0,jitterBufferMinimumDelay:k.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:k.jitterBufferTargetDelay||0};if(k.mediaType==="video"||k.kind==="video"){const U=k,C=L({frameHeight:U.frameHeight,frameWidth:U.frameWidth,framesDecoded:U.framesDecoded,framesDropped:U.framesDropped,framesPerSecond:U.framesPerSecond,framesReceived:U.framesReceived,keyFramesDecoded:U.keyFramesDecoded,firCount:U.firCount,decoderImplementation:U.decoderImplementation,pliCount:U.pliCount,totalProcessingDelay:U.totalProcessingDelay,qpSum:U.qpSum||0,totalAssemblyTime:U.totalAssemblyTime||0,totalDecodeTime:U.totalDecodeTime||0,totalFreezesDuration:U.totalFreezesDuration||0,totalInterFrameDelay:U.totalInterFrameDelay||0,totalPausesDuration:U.totalPausesDuration||0,totalSquaredInterFrameDelay:U.totalSquaredInterFrameDelay||0,freezeCount:U.freezeCount||0,pauseCount:U.pauseCount||0,powerEfficientDecoder:U.powerEfficientDecoder},fe);C.score=pm({frameWidth:C.frameWidth||0,framesDecoded:(C.framesDecoded||0)-(((c=this.videoConsumerToStatsMap.get(_))==null?void 0:c.framesDecoded)||0),framesPerSecond:C.framesPerSecond||0,packetsLost:(C.packetsLost||0)-(((d=this.videoConsumerToStatsMap.get(_))==null?void 0:d.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((h=this.videoConsumerToStatsMap.get(_))==null?void 0:h.packetsReceived)||0),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_)}),Bt.set(_,{score:+(C.score*10).toFixed(),frameWidth:C.frameWidth||0,frameHeight:C.frameHeight||0,framesPerSecond:C.framesPerSecond||0,packetsLostPercentage:Tc({packetsLost:(C.packetsLost||0)-(((p=this.videoConsumerToStatsMap.get(_))==null?void 0:p.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((g=this.videoConsumerToStatsMap.get(_))==null?void 0:g.packetsReceived)||0)}),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((C.bytesReceived||0)-(((y=this.videoConsumerToStatsMap.get(_))==null?void 0:y.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(_,C),I.inboundVideoRtp.set(M.id,C),I.consumerStreamMap.get(_).inboundVideoRtpId.push(M.id),this.processInboundConsumerVideoStats(_,Re,C)}else if(k.mediaType==="audio"||k.kind==="audio"){const U=k,C=L({audioLevel:U.audioLevel,concealedSamples:U.concealedSamples,concealmentEvents:U.concealmentEvents,totalAudioEnergy:U.totalAudioEnergy,totalSamplesDuration:U.totalSamplesDuration,totalSamplesReceived:U.totalSamplesReceived,fecPacketsDiscarded:U.fecPacketsDiscarded||0,fecPacketsReceived:U.fecPacketsReceived||0,insertedSamplesForDeceleration:U.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:U.removedSamplesForAcceleration||0,silentConcealedSamples:U.silentConcealedSamples||0,playoutId:U.playoutId},fe);C.score=hm({concealmentEvents:(C.concealmentEvents||0)-(((T=this.audioConsumerToStatsMap.get(_))==null?void 0:T.concealmentEvents)||0),packetsLost:(C.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((O=this.audioConsumerToStatsMap.get(_))==null?void 0:O.packetsReceived)||0),jitter:C.jitter||0}),Bt.set(_,{score:+(C.score*10).toFixed(),packetsLostPercentage:Tc({packetsLost:(C.packetsLost||0)-(((R=this.audioConsumerToStatsMap.get(_))==null?void 0:R.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((x=this.audioConsumerToStatsMap.get(_))==null?void 0:x.packetsReceived)||0)}),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((C.bytesReceived||0)-(((G=this.audioConsumerToStatsMap.get(_))==null?void 0:G.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(_,C),I.inboundAudioRtp.set(M.id,C),I.consumerStreamMap.get(_).inboundAudioRtpId.push(M.id),this.processInboundConsumerAudioStats(_,Re,C)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${k.mediaType} kind: ${k.kind}`);break}}}if(I.producerStreamMap.forEach((M,k)=>{var _,W,Re,fe,U,C,Ge,Wo,jo,Ho,qo,Go,$o,Jo,Ko,zo,Yo,Qo,Xo,Zo,ec,tc,ic;if(M.outboundVideoRtpId.length>0){const Ee=[];M.outboundVideoRtpId.forEach(Sp=>{Ee.push(I.outboundVideoRtp.get(Sp))});const ae=this.getWorkingSimulcastVideoStats(Ee);ae.score=lm({frameWidth:ae.frameWidth||0,framesPerSecond:ae.framesPerSecond||0,jitter:((_=ae.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(k),packetsSent:(ae.packetsSent||0)-(((W=this.videoProducerToStatsMap.get(k))==null?void 0:W.packetsSent)||0),packetsLost:(((Re=ae.remoteData)==null?void 0:Re.packetsLost)||0)-(((U=(fe=this.videoProducerToStatsMap.get(k))==null?void 0:fe.remoteData)==null?void 0:U.packetsLost)||0),framesEncoded:(ae.framesEncoded||0)-(((C=this.videoProducerToStatsMap.get(k))==null?void 0:C.framesEncoded)||0)}),ft.set(k,{score:+(ae.score*10).toFixed(),frameWidth:ae.frameWidth||0,frameHeight:ae.frameHeight||0,framesPerSecond:ae.framesPerSecond||0,jitter:((Ge=ae.remoteData)==null?void 0:Ge.jitter)||0,isScreenShare:this.screenShareProducers.has(k),packetsLostPercentage:Ec({packetsSent:(ae.packetsSent||0)-(((Wo=this.videoProducerToStatsMap.get(k))==null?void 0:Wo.packetsSent)||0),packetsLost:(((jo=ae.remoteData)==null?void 0:jo.packetsLost)||0)-(((qo=(Ho=this.videoProducerToStatsMap.get(k))==null?void 0:Ho.remoteData)==null?void 0:qo.packetsLost)||0)}),bitrate:((ae.bytesSent||0)-(((Go=this.videoProducerToStatsMap.get(k))==null?void 0:Go.bytesSent)||0))*8/7,cpuLimitations:ae.qualityLimitationReason==="cpu",bandwidthLimitations:ae.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(k,ae)}else if(M.outboundAudioRtpId.length>0){const Ee=I.outboundAudioRtp.get(M.outboundAudioRtpId[0]);Ee.score=dm({packetsSent:(Ee.packetsSent||0)-((($o=this.audioProducerToStatsMap.get(k))==null?void 0:$o.packetsSent)||0),packetsLost:(((Jo=Ee.remoteData)==null?void 0:Jo.packetsLost)||0)-(((zo=(Ko=this.audioProducerToStatsMap.get(k))==null?void 0:Ko.remoteData)==null?void 0:zo.packetsLost)||0),jitter:((Yo=Ee.remoteData)==null?void 0:Yo.jitter)||0}),ft.set(k,{score:+(Ee.score*10).toFixed(),bitrate:((Ee.bytesSent||0)-(((Qo=this.audioProducerToStatsMap.get(k))==null?void 0:Qo.bytesSent)||0))*8/7,packetsLostPercentage:Ec({packetsSent:(Ee.packetsSent||0)-(((Xo=this.audioProducerToStatsMap.get(k))==null?void 0:Xo.packetsSent)||0),packetsLost:(((Zo=Ee.remoteData)==null?void 0:Zo.packetsLost)||0)-(((tc=(ec=this.audioProducerToStatsMap.get(k))==null?void 0:ec.remoteData)==null?void 0:tc.packetsLost)||0)}),jitter:((ic=Ee.remoteData)==null?void 0:ic.jitter)||0,isScreenShare:this.screenShareProducers.has(k)}),this.audioProducerToStatsMap.set(k,Ee)}}),nt.forEach(M=>{const k=ne.find(W=>W.id===M.localCandidateId?(M.localCandidateId=W.id,W):null),_=Se.find(W=>W.id===M.remoteCandidateId?(M.remoteCandidateId=W.id,W):null);k&&(M.localCandidateType=k.type,M.localCandidateAddress=lr(k.address),M.localCandidatePort=k.port,M.localCandidateProtocol=k.protocol,M.localCandidateUrl=k.url,M.localCandidateNetworkType=k.networkType,M.localCandidateRelatedAddress=lr(k.relatedAddress),M.localCandidateRelatedPort=k.relatedPort),_&&(M.remoteCandidateType=_.type,M.remoteCandidateAddress=lr(_.address),M.remoteCandidatePort=_.port,M.remoteCandidateProtocol=_.protocol,M.remoteCandidateUrl=_.url)}),I.candidatePair&&(I.transport?(I.transport.totalRoundTripTime=I.candidatePair.totalRoundTripTime,I.transport.availableOutgoingBitrate=I.candidatePair.availableOutgoingBitrate,I.transport.availableIncomingBitrate=I.candidatePair.availableIncomingBitrate,I.transport.roundTripTime=I.candidatePair.currentRoundTripTime):I.transport={bytesReceived:I.candidatePair.bytesReceived,bytesSent:I.candidatePair.bytesSent,totalRoundTripTime:I.candidatePair.totalRoundTripTime,availableOutgoingBitrate:I.candidatePair.availableOutgoingBitrate,availableIncomingBitrate:I.candidatePair.availableIncomingBitrate,roundTripTime:I.candidatePair.currentRoundTripTime}),I.transport&&(I.transport.candidatePairs=nt),I.transport&&!I.transport.roundTripTime){let M=0,k=0;I.remoteInboundRtp.forEach((_,W)=>{_.roundTripTime&&_.roundTripTime>M&&(M=_.roundTripTime,k=_.totalRoundTripTime)}),I.transport.roundTripTime=M,I.transport.totalRoundTripTime=k}if(Bt.size>0)try{this.observer.emit("consumer_score",Bt)}catch(M){}if(ft.size>0)try{this.observer.emit("producer_score",ft)}catch(M){}return I}getProducersReport(e){return u(this,null,function*(){const i=e.map(r=>this.generateProducerStreamMap(r,!0));return i.length>0?Promise.all(i):void 0})}getConsumersReport(e){return u(this,null,function*(){const i=e.map(r=>this.generateConsumerStreamMap(r,!0));return i.length>0?Promise.all(i):void 0})}getTransportReport(e){return u(this,null,function*(){return e.getStats()})}getProcessedStats(e,i,r){return u(this,null,function*(){const n=yield this.getTransportReport(e),s={producing:r,consuming:i,id:e.id},o=n,c=this.parseRTCReport(o,["transport","candidate-pair","inbound-rtp","outbound-rtp","remote-inbound-rtp","local-candidate","remote-candidate"],!1,void 0,s);if(!c)return;const d={stats:c.transport,transportId:e.id,consuming:i,producing:r},h=c.staleProducerStreamMap?void 0:this.getProducerStatsFromReport(c),p=c.staleConsumerStreamMap?void 0:this.getConsumerStatsFromReport(c);return{transportReport:d,producerReport:h,consumerReport:p}})}getProducerStatsFromReport(e){const i=[];try{e.producerStreamMap.forEach((r,n)=>{var s,o;i.push({producerId:n,videoStats:r.outboundVideoRtpId.map(c=>e.outboundVideoRtp.get(c)),audioStats:r.outboundAudioRtpId.map(c=>e.outboundAudioRtp.get(c)),appData:((o=(s=this.callStatsInstance.producers)==null?void 0:s.get(n))==null?void 0:o.appData)||null})})}catch(r){this.callStatsInstance.logger.error("callStats::measurements::getProducerStatsFromReport",{error:{reason:r.reason,message:r.message}})}return i}getConsumerStatsFromReport(e){const i=[];try{e.consumerStreamMap.forEach((r,n)=>{const{peerId:s,producerId:o,appData:c}=this.consumerPeerIdMap.get(n);i.push({consumerId:n,peerId:s,producerId:o,appData:c,videoStats:r.inboundVideoRtpId.map(d=>e.inboundVideoRtp.get(d)),audioStats:r.inboundAudioRtpId.map(d=>e.inboundAudioRtp.get(d))})})}catch(r){console.error("getConsumersReport: ",r,e)}return i}getUserLocation(){return u(this,null,function*(){return new Promise((e,i)=>{try{navigator.geolocation?navigator.geolocation.getCurrentPosition(r=>{e(r)}):i()}catch(r){i(r)}})})}getConnectivity(e){return u(this,null,function*(){try{const i={iceServers:e||gm},r=new Promise((h,p)=>{try{const g=new eE(i);g.addListener("done",h),g.addListener("failed",()=>{h({connectivity:!1})}),g.start(2e3)}catch(g){p(g)}}),n=new Promise((h,p)=>{try{const g=new tE(i);g.addListener("done",h),g.addListener("failed",()=>{h({connectivity:!1})}),g.start(2e3)}catch(g){p(g)}}),s=new Promise((h,p)=>{try{const g=new iE(i);g.addListener("done",h),g.addListener("failed",()=>{h({connectivity:!1})}),g.start(2e3)}catch(g){p(g)}}),[o,c,d]=yield Promise.all([r,n,s]);return{host:o==null?void 0:o.connectivity,relay:c==null?void 0:c.connectivity,reflexive:d==null?void 0:d.connectivity}}catch(i){return{host:!1,relay:!1,reflexive:!1}}})}getThroughput(e){return u(this,null,function*(){try{const i=yield new Promise((r,n)=>{try{const s={iceServers:e||gm},o=new ZS(s);o.addListener("done",r),o.addListener("failed",n),o.start(1e4)}catch(s){n(s)}});return{throughput:i.throughput,fractionalLoss:0,RTT:i.RTT,jitter:0,backendRTT:i.backendRTT}}catch(i){return}})}getIPDetails(){return u(this,null,function*(){var e,i;try{return this.ipDetails||(this.ipDetails=yield Bl.getIPDetails({peerId:(e=this.callStatsInstance)==null?void 0:e.peerId,apiHostnames:(i=this.callStatsInstance)==null?void 0:i.apiHostnames,logger:this.callStatsInstance.logger})),this.ipDetails}catch(r){return}})}getNetworkQuality(e){return u(this,null,function*(){const[i,r]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e)]);return{connectivity:i,throughput:r==null?void 0:r.throughput,fractionalLoss:r==null?void 0:r.fractionalLoss,RTT:r==null?void 0:r.RTT,jitter:r==null?void 0:r.jitter,backendRTT:r==null?void 0:r.backendRTT}})}getNetworkInfo(e,i=!1){return u(this,null,function*(){var r,n;if(i){const d=yield this.getIPDetails();return{ipDetails:d,effectiveNetworkType:(r=navigator.connection)==null?void 0:r.effectiveType,location:d!=null&&d.loc?fm(d==null?void 0:d.loc):void 0}}const[s,o,c]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e),this.getIPDetails()]);return{ipDetails:c,effectiveNetworkType:(n=navigator.connection)==null?void 0:n.effectiveType,location:c!=null&&c.loc?fm(c==null?void 0:c.loc):void 0,turnConnectivity:s?s.host||s.relay||s.reflexive:!1,connectivity:s,throughput:o==null?void 0:o.throughput,fractionalLoss:o==null?void 0:o.fractionalLoss,RTT:o==null?void 0:o.RTT,jitter:o==null?void 0:o.jitter,backendRTT:o==null?void 0:o.backendRTT}})}}class nE extends ym{}class Sm extends ym{constructor(){super(...arguments),m(this,"producerMap",new Map),m(this,"consumerMap",new Map)}registerProducer(e){return u(this,null,function*(){this.producerMap.set(e.id,e),yield this.generateProducerStreamMap(e),e.on("close",this.deregisterProducer.bind(this,e)),e.on("pause",this.pauseProducer.bind(this,e.id)),e.on("resume",this.resumeProducer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareProducers.add(e.id)})}registerConsumer(e){return u(this,null,function*(){this.consumerMap.set(e.id,e),yield this.generateConsumerStreamMap(e),this.consumerPeerIdMap.set(e.id,{producerId:e.producerId,peerId:e.appData.peerId,appData:e.appData}),e.on("close",this.deregisterConsumer.bind(this,e)),e.on("pause",this.pauseConsumer.bind(this,e.id)),e.on("resume",this.resumeConsumer.bind(this,e.id)),e.appData.screenShare===!0&&this.screenShareConsumers.add(e.id)})}generateConsumerStreamMap(e,i=!1){return u(this,null,function*(){const r=yield e.getStats(),n=this.parseRTCReport(r,["inbound-rtp"],!1,e.id),s=[...n.consumerStreamMap.values()][0],o=i?this.getConsumerStatsFromParsedConsumerStats(n,s,e.id):void 0;for(const c of r.values())switch(c.type){case"inbound-rtp":{this.inboundConsumerMap.set(c.id,e.id);break}}return o})}deregisterProducer(e){this.producerMap.delete(e.id),this.outboundProducerMap.forEach((i,r)=>{i===e.id&&this.outboundProducerMap.delete(r)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.consumerMap.delete(e.id),this.inboundConsumerMap.forEach((i,r)=>{i===e.id&&this.inboundConsumerMap.delete(r)}),this.consumerPeerIdMap.delete(e.id),this.pausedConsumerMap.delete(e.id),this.screenShareConsumers.delete(e.id)}getIceCandidateStats(e){var i;return{id:e.id,type:e.candidateType||e.type,address:e.address,port:e.port,url:e.url,protocol:(i=e.relayProtocol)!=null?i:e.protocol,networkType:e.networkType,relatedAddress:e.relatedAddress,relatedPort:e.relatedPort}}parseRTCReport(e,i=[],r=!1,n=void 0,s=void 0){var o,c,d,h,p,g,y,T,b,O,R,x,G;const $=e,I=new vm,se=i.length?new Set(i):void 0,ne=[],Se=[],nt=[],ft=new Map,Bt=new Map;for(const M of $.values()){if(se){if(se.size===0)break;if(se.has(M.type))r&&se.delete(M.type);else continue}switch(M.type){case"local-candidate":{ne.push(this.getIceCandidateStats(M));break}case"remote-candidate":{Se.push(this.getIceCandidateStats(M));break}case"candidate-pair":{const{nominated:k}=M,{selected:_}=M,W=M,Re={nominated:k!=null?k:_,currentRoundTripTime:W.currentRoundTripTime,totalRoundTripTime:W.totalRoundTripTime,bytesReceived:W.bytesReceived,bytesSent:W.bytesSent,availableOutgoingBitrate:W.availableOutgoingBitrate,availableIncomingBitrate:W.availableIncomingBitrate,lastPacketReceivedTimestamp:W.lastPacketReceivedTimestamp,lastPacketSentTimestamp:W.lastPacketSentTimestamp,localCandidateId:W.localCandidateId,remoteCandidateId:W.remoteCandidateId,bytesDiscardedOnSend:W.bytesDiscardedOnSend,packetsSent:W.packetsSent,packetsReceived:W.packetsReceived,packetsDiscardedOnSend:W.packetsDiscardedOnSend};nt.push(Re),(M.nominated===!0||M.selected===!0)&&(I.candidatePair=Re);break}case"transport":{const k=M;s&&(s.producing&&(this.overallProducingTransportsStatsMap[s.id]||(this.overallProducingTransportsStatsMap[s.id]={totalPacketsSent:0})),s.consuming&&(this.overallConsumingTransportsStatsMap[s.id]||(this.overallConsumingTransportsStatsMap[s.id]={totalPacketsReceived:0})));const _={bytesReceived:k.bytesReceived,bytesSent:k.bytesSent,packetsSent:k.packetsSent,packetsReceived:k.packetsReceived,dtlsCipher:k.dtlsCipher,dtlsState:k.dtlsState,iceRole:k.iceRole};if(I.transport=_,s){if(s.producing){const W=this.overallProducingTransportsStatsMap[s.id];this.processProducingTransportStats(s.id,W,_)}if(s.consuming){const W=this.overallConsumingTransportsStatsMap[s.id];this.processConsumingTransportStats(s.id,W,_)}}break}case"remote-inbound-rtp":{const k=M,_={jitter:k.jitter,fractionLost:k.fractionLost,roundTripTime:k.roundTripTime,roundTripTimeMeasurements:k.roundTripTimeMeasurements,totalRoundTripTime:k.totalRoundTripTime,packetsLost:k.packetsLost};I.remoteInboundRtp.set(k.localId,_);break}case"outbound-rtp":{const k=M,_=n||this.outboundProducerMap.get(M.id),W=this.pausedProducerMap.get(_);if(W){if(W.lastReportCalculated===!0)break;this.pausedProducerMap.set(_,{lastReportCalculated:!0})}this.overallProducersStatsMap[_]||(this.overallProducersStatsMap[_]={totalVideoPacketsSent:0,totalAudioPacketsSent:0});const Re=this.overallProducersStatsMap[_];if(["video","audio"].includes(k.mediaType)||["video","audio"].includes(k.kind)){if(!this.outboundProducerMap.has(M.id)){I.staleProducerStreamMap=!0;break}const fe=this.callStatsInstance.producers.get(_);if(((o=fe==null?void 0:fe.track)==null?void 0:o.readyState)==="ended")break;I.producerStreamMap.has(_)||I.producerStreamMap.set(_,{outboundVideoRtpId:[],outboundAudioRtpId:[]});const U={bytesSent:k.bytesSent,packetsSent:k.packetsSent,nackCount:k.nackCount,ssrc:k.ssrc,mid:k.mid,active:k.active,codecId:k.codecId,headerBytesSent:k.headerBytesSent||0,totalPacketSendDelay:k.totalPacketSendDelay||0};if(k.mediaType==="video"||k.kind==="video"){const C=k,Ge=L({frameHeight:C.frameHeight,frameWidth:C.frameWidth,framesEncoded:C.framesEncoded,framesDropped:C.framesDropped?C.framesDropped:C.droppedFrames,framesPerSecond:C.framesPerSecond?C.framesPerSecond:C.framerateMean,framesSent:C.framesSent,keyFramesEncoded:C.keyFramesEncoded,firCount:C.firCount,encoderImplementation:C.encoderImplementation,hugeFramesSent:C.hugeFramesSent,pliCount:C.pliCount,qpSum:C.qpSum,qualityLimitationReason:C.qualityLimitationReason,qualityLimitationDurations:C.qualityLimitationDurations,qualityLimitationResolutionChanges:C.qualityLimitationResolutionChanges,totalEncodeTime:C.totalEncodeTime,totalPacketSendDelay:C.totalEncodeTime,retransmittedBytesSent:C.retransmittedBytesSent,retransmittedPacketsSent:C.retransmittedPacketsSent,scalabilityMode:C.scalabilityMode,powerEfficientEncoder:C.powerEfficientEncoder},U);I.outboundVideoRtp.set(M.id,Ge),I.producerStreamMap.get(_).outboundVideoRtpId.push(M.id),this.processOutboundProducerVideoStats(_,Re,Ge)}else if(k.mediaType==="audio"||k.kind==="audio"){const C=k,Ge=L({retransmittedBytesSent:C.retransmittedBytesSent,retransmittedPacketsSent:C.retransmittedPacketsSent},U);I.outboundAudioRtp.set(M.id,Ge),I.producerStreamMap.get(_).outboundAudioRtpId.push(M.id),this.processOutboundProducerAudioStats(_,Re,Ge)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${k.mediaType} kind: ${k.kind}`);break}case"inbound-rtp":{const k=M,_=n||this.inboundConsumerMap.get(M.id),W=this.pausedConsumerMap.get(_);if(W){if(W.lastReportCalculated===!0)break;this.pausedConsumerMap.set(_,{lastReportCalculated:!0})}if(k.ssrc===1234)break;this.overallConsumersStatsMap[_]||(this.overallConsumersStatsMap[_]={totalVideoPacketsReceived:0,totalAudioPacketsReceived:0});const Re=this.overallConsumersStatsMap[_];if(["video","audio"].includes(k.mediaType)||["video","audio"].includes(k.kind)){if(!this.inboundConsumerMap.has(M.id)){I.staleConsumerStreamMap=!0;break}I.consumerStreamMap.has(_)||I.consumerStreamMap.set(_,{inboundVideoRtpId:[],inboundAudioRtpId:[]});const fe={bytesReceived:k.bytesReceived,packetsReceived:k.packetsReceived,packetsLost:k.packetsLost>=0?k.packetsLost:0,jitter:k.jitter,nackCount:k.nackCount,jitterBufferDelay:k.jitterBufferDelay,jitterBufferEmittedCount:k.jitterBufferEmittedCount,lastPacketReceivedTimestamp:k.lastPacketReceivedTimestamp,ssrc:k.ssrc,mid:k.mid,codecId:k.codecId,headerBytesReceived:k.headerBytesReceived||0,packetsDiscarded:k.packetsDiscarded||0,jitterBufferMinimumDelay:k.jitterBufferMinimumDelay||0,jitterBufferTargetDelay:k.jitterBufferTargetDelay||0};if(k.mediaType==="video"||k.kind==="video"){const U=k,C=L({frameHeight:U.frameHeight,frameWidth:U.frameWidth,framesDecoded:U.framesDecoded,framesDropped:U.framesDropped?U.framesDropped:U.droppedFrames,framesPerSecond:U.framesPerSecond?U.framesPerSecond:U.framerateMean,framesReceived:U.framesReceived,keyFramesDecoded:U.keyFramesDecoded,firCount:U.firCount,decoderImplementation:U.decoderImplementation,pliCount:U.pliCount,totalProcessingDelay:U.totalProcessingDelay,qpSum:U.qpSum||0,totalAssemblyTime:U.totalAssemblyTime||0,totalDecodeTime:U.totalDecodeTime||0,totalFreezesDuration:U.totalFreezesDuration||0,totalInterFrameDelay:U.totalInterFrameDelay||0,totalPausesDuration:U.totalPausesDuration||0,totalSquaredInterFrameDelay:U.totalSquaredInterFrameDelay||0,freezeCount:U.freezeCount||0,pauseCount:U.pauseCount||0,powerEfficientDecoder:U.powerEfficientDecoder},fe);C.score=pm({frameWidth:C.frameWidth||0,framesDecoded:(C.framesDecoded||0)-(((c=this.videoConsumerToStatsMap.get(_))==null?void 0:c.framesDecoded)||0),framesPerSecond:C.framesPerSecond||0,packetsLost:(C.packetsLost||0)-(((d=this.videoConsumerToStatsMap.get(_))==null?void 0:d.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((h=this.videoConsumerToStatsMap.get(_))==null?void 0:h.packetsReceived)||0),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_)}),Bt.set(_,{score:+(C.score*10).toFixed(),frameWidth:C.frameWidth||0,frameHeight:C.frameHeight||0,framesPerSecond:C.framesPerSecond||0,packetsLostPercentage:Tc({packetsLost:(C.packetsLost||0)-(((p=this.videoConsumerToStatsMap.get(_))==null?void 0:p.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((g=this.videoConsumerToStatsMap.get(_))==null?void 0:g.packetsReceived)||0)}),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((C.bytesReceived||0)-(((y=this.videoConsumerToStatsMap.get(_))==null?void 0:y.bytesReceived)||0))*8/7}),this.videoConsumerToStatsMap.set(_,C),I.inboundVideoRtp.set(M.id,C),I.consumerStreamMap.get(_).inboundVideoRtpId.push(M.id),this.processInboundConsumerVideoStats(_,Re,C)}else if(k.mediaType==="audio"||k.kind==="audio"){const U=k,C=L({audioLevel:U.audioLevel,concealedSamples:U.concealedSamples,concealmentEvents:U.concealmentEvents,totalAudioEnergy:U.totalAudioEnergy,totalSamplesDuration:U.totalSamplesDuration,totalSamplesReceived:U.totalSamplesReceived,fecPacketsDiscarded:U.fecPacketsDiscarded||0,fecPacketsReceived:U.fecPacketsReceived||0,insertedSamplesForDeceleration:U.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:U.removedSamplesForAcceleration||0,silentConcealedSamples:U.silentConcealedSamples||0,playoutId:U.playoutId},fe);C.score=hm({concealmentEvents:(C.concealmentEvents||0)-(((T=this.audioConsumerToStatsMap.get(_))==null?void 0:T.concealmentEvents)||0),packetsLost:(C.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((O=this.audioConsumerToStatsMap.get(_))==null?void 0:O.packetsReceived)||0),jitter:C.jitter||0}),Bt.set(_,{score:+(C.score*10).toFixed(),packetsLostPercentage:Tc({packetsLost:(C.packetsLost||0)-(((R=this.audioConsumerToStatsMap.get(_))==null?void 0:R.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((x=this.audioConsumerToStatsMap.get(_))==null?void 0:x.packetsReceived)||0)}),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((C.bytesReceived||0)-(((G=this.audioConsumerToStatsMap.get(_))==null?void 0:G.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(_,C),I.inboundAudioRtp.set(M.id,C),I.consumerStreamMap.get(_).inboundAudioRtpId.push(M.id),this.processInboundConsumerAudioStats(_,Re,C)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Inbound-rtp. mediatype: ${k.mediaType} kind: ${k.kind}`);break}}}if(I.producerStreamMap.forEach((M,k)=>{var _,W,Re,fe,U,C,Ge,Wo,jo,Ho,qo,Go,$o,Jo,Ko,zo,Yo,Qo,Xo,Zo,ec,tc,ic;if(M.outboundVideoRtpId.length>0){const Ee=[];M.outboundVideoRtpId.forEach(Sp=>{Ee.push(I.outboundVideoRtp.get(Sp))});const ae=this.getWorkingSimulcastVideoStats(Ee);ae.score=lm({frameWidth:ae.frameWidth||0,framesPerSecond:ae.framesPerSecond||0,jitter:((_=ae.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(k),packetsSent:(ae.packetsSent||0)-(((W=this.videoProducerToStatsMap.get(k))==null?void 0:W.packetsSent)||0),packetsLost:(((Re=ae.remoteData)==null?void 0:Re.packetsLost)||0)-(((U=(fe=this.videoProducerToStatsMap.get(k))==null?void 0:fe.remoteData)==null?void 0:U.packetsLost)||0),framesEncoded:(ae.framesEncoded||0)-(((C=this.videoProducerToStatsMap.get(k))==null?void 0:C.framesEncoded)||0)}),ft.set(k,{score:+(ae.score*10).toFixed(),frameWidth:ae.frameWidth||0,frameHeight:ae.frameHeight||0,framesPerSecond:ae.framesPerSecond||0,jitter:((Ge=ae.remoteData)==null?void 0:Ge.jitter)||0,isScreenShare:this.screenShareProducers.has(k),packetsLostPercentage:Ec({packetsSent:(ae.packetsSent||0)-(((Wo=this.videoProducerToStatsMap.get(k))==null?void 0:Wo.packetsSent)||0),packetsLost:(((jo=ae.remoteData)==null?void 0:jo.packetsLost)||0)-(((qo=(Ho=this.videoProducerToStatsMap.get(k))==null?void 0:Ho.remoteData)==null?void 0:qo.packetsLost)||0)}),bitrate:((ae.bytesSent||0)-(((Go=this.videoProducerToStatsMap.get(k))==null?void 0:Go.bytesSent)||0))*8/7,cpuLimitations:ae.qualityLimitationReason==="cpu",bandwidthLimitations:ae.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(k,ae)}else if(M.outboundAudioRtpId.length>0){const Ee=I.outboundAudioRtp.get(M.outboundAudioRtpId[0]);Ee.score=dm({packetsSent:(Ee.packetsSent||0)-((($o=this.audioProducerToStatsMap.get(k))==null?void 0:$o.packetsSent)||0),packetsLost:(((Jo=Ee.remoteData)==null?void 0:Jo.packetsLost)||0)-(((zo=(Ko=this.audioProducerToStatsMap.get(k))==null?void 0:Ko.remoteData)==null?void 0:zo.packetsLost)||0),jitter:((Yo=Ee.remoteData)==null?void 0:Yo.jitter)||0}),ft.set(k,{score:+(Ee.score*10).toFixed(),bitrate:((Ee.bytesSent||0)-(((Qo=this.audioProducerToStatsMap.get(k))==null?void 0:Qo.bytesSent)||0))*8/7,packetsLostPercentage:Ec({packetsSent:(Ee.packetsSent||0)-(((Xo=this.audioProducerToStatsMap.get(k))==null?void 0:Xo.packetsSent)||0),packetsLost:(((Zo=Ee.remoteData)==null?void 0:Zo.packetsLost)||0)-(((tc=(ec=this.audioProducerToStatsMap.get(k))==null?void 0:ec.remoteData)==null?void 0:tc.packetsLost)||0)}),jitter:((ic=Ee.remoteData)==null?void 0:ic.jitter)||0,isScreenShare:this.screenShareProducers.has(k)}),this.audioProducerToStatsMap.set(k,Ee)}}),nt.forEach(M=>{const k=ne.find(W=>W.id===M.localCandidateId?(M.localCandidateId=W.id,W):null),_=Se.find(W=>W.id===M.remoteCandidateId?(M.remoteCandidateId=W.id,W):null);k&&(M.localCandidateType=k.type,M.localCandidateAddress=lr(k.address),M.localCandidatePort=k.port,M.localCandidateProtocol=k.protocol,M.localCandidateUrl=k.url,M.localCandidateNetworkType=k.networkType,M.localCandidateRelatedAddress=lr(k.relatedAddress),M.localCandidateRelatedPort=k.relatedPort),_&&(M.remoteCandidateType=_.type,M.remoteCandidateAddress=lr(_.address),M.remoteCandidatePort=_.port,M.remoteCandidateProtocol=_.protocol,M.remoteCandidateUrl=_.url)}),I.candidatePair&&(I.transport?(I.transport.bytesReceived=I.candidatePair.bytesReceived,I.transport.bytesSent=I.candidatePair.bytesSent,I.transport.totalRoundTripTime=I.candidatePair.totalRoundTripTime,I.transport.availableOutgoingBitrate=I.candidatePair.availableOutgoingBitrate,I.transport.availableIncomingBitrate=I.candidatePair.availableIncomingBitrate,I.transport.roundTripTime=I.candidatePair.currentRoundTripTime):I.transport={bytesReceived:I.candidatePair.bytesReceived,bytesSent:I.candidatePair.bytesSent,totalRoundTripTime:I.candidatePair.totalRoundTripTime,availableOutgoingBitrate:I.candidatePair.availableOutgoingBitrate,availableIncomingBitrate:I.candidatePair.availableIncomingBitrate,roundTripTime:I.candidatePair.currentRoundTripTime}),I.transport&&(I.transport.candidatePairs=nt),I.transport&&!I.transport.roundTripTime){let M=0,k=0;I.remoteInboundRtp.forEach((_,W)=>{_.roundTripTime&&_.roundTripTime>M&&(M=_.roundTripTime,k=_.totalRoundTripTime)}),I.transport.roundTripTime=M,I.transport.totalRoundTripTime=k}if(Bt.size>0)try{this.observer.emit("consumer_score",Bt)}catch(M){}if(ft.size>0)try{this.observer.emit("producer_score",ft)}catch(M){}return I}getProducerStatsFromReport(e){const i=[];try{e.producerStreamMap.forEach((r,n)=>{const s=this.producerMap.get(n),o=s.track.getSettings(),c=r.outboundVideoRtpId.map(h=>{const p=e.outboundVideoRtp.get(h);return p.frameHeight||(p.frameHeight=o.height,p.frameWidth=o.width,p.framesPerSecond=o.frameRate),p}),d={producerId:n,appData:s.appData,videoStats:c,audioStats:r.outboundAudioRtpId.map(h=>e.outboundAudioRtp.get(h))};i.push(d)})}catch(r){console.error("getProducersReport: ",r,e)}return i}getConsumerStatsFromParsedConsumerStats(e,i,r){let n;try{const{peerId:s,producerId:o,appData:c}=this.consumerPeerIdMap.get(r),d=i==null?void 0:i.inboundVideoRtpId.map(h=>{const p=this.consumerMap.get(r).track.getSettings(),g=e.inboundVideoRtp.get(h);return g.frameHeight||(g.frameHeight=p.height,g.frameWidth=p.width,g.framesPerSecond=p.frameRate),g});n={consumerId:r,peerId:s,producerId:o,appData:c,videoStats:d,audioStats:i==null?void 0:i.inboundAudioRtpId.map(h=>e.inboundAudioRtp.get(h))}}catch(s){console.error("getConsumerStatsFromParsedConsumerStats: ",s,e)}return n}getConsumerStatsFromReport(e){const i=[];try{e.consumerStreamMap.forEach((r,n)=>{i.push(this.getConsumerStatsFromParsedConsumerStats(e,r,n))})}catch(r){console.error("getConsumerStatsFromReport: ",r,e)}return i}}class sE extends Sm{}function wc(t,e,i,r){if(t!=null&&t.logger&&t.logger.error("Callstats::handleError",{error:r}),typeof i=="function"&&r instanceof e)i.call(null,r,t);else throw r}function Em(t,e,i){const r=t.value;return t.value=function(...n){try{const s=r.apply(this,n);return s&&s instanceof Promise?s.catch(o=>{wc(this,e,i,o)}):s}catch(s){wc(this,e,i,s)}return null},t}const te=(t,e)=>(i,r,n)=>{const s=n.value;return n.value=function(...o){try{const c=s.apply(this,o);return c&&c instanceof Promise?c.catch(d=>{wc(this,t,e,d)}):c}catch(c){wc(this,t,e,c)}return null},n},aE=(t,e)=>(i,r,n)=>{if(n)return Em(n,t,e);for(const s of Reflect.ownKeys(i.prototype).filter(o=>o!=="constructor")){const o=Object.getOwnPropertyDescriptor(i.prototype,s);o.value instanceof Function&&Object.defineProperty(i.prototype,s,Em(o,t,e))}};var Z=globalThis&&globalThis.__decorate||function(t,e,i,r){var n=arguments.length,s=n<3?e:r===null?r=Object.getOwnPropertyDescriptor(e,i):r,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,i,r);else for(var c=t.length-1;c>=0;c--)(o=t[c])&&(s=(n<3?o(s):n>3?o(e,i,s):o(e,i))||s);return n>3&&s&&Object.defineProperty(e,i,s),s};const ee=console;let Q=class extends lt{constructor(t="https://api.testingv3.dyte.in",e="Blink",i=Xs.PROD,r,n,s,o){switch(super(),m(this,"observer"),m(this,"eventHandler"),m(this,"measurements"),m(this,"producingTransport"),m(this,"consumingTransport"),m(this,"producers",new Map),m(this,"consumers",new Map),m(this,"iceServers"),m(this,"connectionInfoPromise"),m(this,"pingStatsTimeout"),m(this,"logger"),m(this,"env"),m(this,"apiHostnames"),m(this,"peerId"),m(this,"consumerSharedMediaStatesMap",new Map),m(this,"currentUserMediaStates",{}),this.env=i,this.apiHostnames=o,this.logger=n,this.peerId=s,this.eventHandler=new qS({logger:n,peerId:s,apiHostnames:o}),this.logger.debug("callStats::engineName: ",{engineName:e}),e){case"Blink":this.measurements=new nE;break;case"Gecko":this.measurements=new Sm;break;case"WebKit":this.measurements=new sE;break;default:throw Error(`Unknown engineName! ${e}`)}this.measurements.callStatsInstance=this,this.registerProducer=this.registerProducer.bind(this),this.registerConsumer=this.registerConsumer.bind(this),this.observer=new lt,this.measurements.observer.on("consumer_score",c=>{n.debug(`callStats::consumer_score ${[...c.entries()]}`),this.eventHandler.emit("consumer_score",c)}),this.measurements.observer.on("producer_score",c=>{n.debug(`callStats::producer_score ${[...c.entries()]}`),this.eventHandler.emit("producer_score",c)})}registerIceServers(t){this.iceServers=t}registerConsumer(t){var e;this.consumerSharedMediaStatesMap.has(t.id)||this.consumerSharedMediaStatesMap.set(t.id,{}),this.consumers.set(t.id,t),this.measurements.registerConsumer(t),this.logger.debug("callStats::registerConsumer",{consumerId:t.id,consumerkind:t.kind,isScreenShare:!!((e=t.appData)!=null&&e.screenShare)}),t.on("close",this.deRegisterConsumer.bind(this,t))}registerProducer(t){var e;this.producers.set(t.id,t),this.measurements.registerProducer(t),this.logger.debug("callStats::registerProducer",{producerId:t.id,producerKind:t.kind,isScreenShare:!!((e=t.appData)!=null&&e.screenShare)}),t.on("close",this.deRegisterProducer.bind(this,t))}sendConsumerSharedMediaStateEvent(t,e){this.consumerSharedMediaStatesMap.has(t)||this.consumerSharedMediaStatesMap.set(t,{});const i=this.consumerSharedMediaStatesMap.get(t);this.consumerSharedMediaStatesMap.set(t,Object.assign(i,e))}registerProducingTransport(t){var e;this.producingTransport=t,t.on("close",this.disconnectProducingTransport.bind(this,t)),t.on("disconnect",this.disconnectProducingTransport.bind(this,t)),Array.from(((e=t._producers)==null?void 0:e.values())||[]).forEach(i=>{this.registerProducer(i)}),t.on("newproducer",this.registerProducer)}registerConsumingTransport(t){var e;this.consumingTransport=t,t.on("close",this.disconnectConsumingTransport.bind(this,t)),t.on("disconnect",this.disconnectConsumingTransport.bind(this,t)),Array.from(((e=t._consumers)==null?void 0:e.values())||[]).forEach(i=>{this.registerConsumer(i)}),t.on("newconsumer",this.registerConsumer)}deRegisterConsumer(t){this.consumers.delete(t.id)}deRegisterProducer(t){var e;this.producers.delete(t.id),this.logger.debug("callStats::deRegisterProducer",{producerId:t.id,producerKind:t.kind,isScreenShare:!!((e=t.appData)!=null&&e.screenShare)})}disconnectConsumingTransport(){this.consumingTransport=void 0}disconnectProducingTransport(){this.producingTransport=void 0}callEvent(t){this.eventHandler.callEvent(t)}sendPreCallTestBeginEvent(t=!1,e){this.connectionInfoPromise=this.measurements.getNetworkInfo(this.iceServers,t),this.eventHandler.callEvent({event:V.PRECALL_TEST_BEGIN,timestamp:e}),this.connectionInfoPromise&&this.connectionInfoPromise.then(i=>{this.eventHandler.callEvent({event:V.PRECALL_TEST_COMPLETE,metaData:{connectionInfo:i},timestamp:e})})}sendScreenShareToggleEvent(t,e=null,i){this.currentUserMediaStates.screen=t,this.eventHandler.callEvent({event:t?V.SCREENSHARE_STARTED:V.SCREENSHARE_STOPPED,metaData:{ssrc:e},timestamp:i})}sendScreenShareRequestedEvent(t){this.eventHandler.callEvent({event:V.SCREENSHARE_START_REQUESTED,timestamp:t})}sendActiveSpeakerEvent(t,e){this.eventHandler.callEvent({event:V.DOMINANT_SPEAKER,metaData:{peerId:t},timestamp:e})}devices(t,e,i){this.eventHandler.callEvent({event:t===ti.AUDIO&&V.AUDIO_DEVICES_UPDATES||t===ti.VIDEO&&V.VIDEO_DEVICES_UPDATES||t===ti.SPEAKER&&V.SPEAKER_DEVICES_UPDATES,metaData:{deviceList:e},timestamp:i})}selectedDevice(t,e,i){this.eventHandler.callEvent({event:t===ti.AUDIO&&V.SELECTED_MICROHPONE_UPDATE||t===ti.VIDEO&&V.SELECTED_CAMERA_UPDATE||t===ti.SPEAKER&&V.SELECTED_SPEAKER_UPDATE,metaData:{device:e},timestamp:i})}mediaPermission(t,e,i){this.eventHandler.callEvent({event:V.MEDIA_PERMISSION,metaData:{deviceType:t,permission:e},timestamp:i})}mediaPlaybackFailed(t,e){this.eventHandler.callEvent({event:t===ti.AUDIO&&V.AUDIO_PLAY_FAILED||t===ti.VIDEO&&V.VIDEO_PLAY_FAILED,metaData:{deviceType:t},timestamp:e})}mediaTrackMuted(t,e){this.eventHandler.callEvent({event:t===ti.AUDIO&&V.AUDIO_TRACK_MUTED||t===ti.VIDEO&&V.VIDEO_TRACK_MUTED,metaData:{deviceType:t},timestamp:e})}tabChanged(t,e){this.eventHandler.callEvent({event:V.TAB_CHANGE,metaData:{isMeetingsTabActive:t},timestamp:e})}browserBackgrounded(t){this.eventHandler.callEvent({event:V.BROWSER_BACKGROUNDED,timestamp:t})}browserForegrounded(t){this.eventHandler.callEvent({event:V.BROWSER_FOREGROUNDED,timestamp:t})}legacySwitch(t,e){this.eventHandler.callEvent({event:V.LEGACY_SWITCH,metadata:{on:t},timestamp:e})}getPreCallTestResults(){return u(this,null,function*(){return this.connectionInfoPromise})}sendCallJoinBeginEvent(t,e){t=j(L({},t),{meetingEnv:this.env}),t.deviceInfo=j(L({},t.deviceInfo),{userAgent:navigator.userAgent,cpus:navigator.hardwareConcurrency,memory:navigator.deviceMemory}),this.eventHandler.callEvent({event:V.CALL_JOIN_BEGIN,metaData:{peerMetaData:t},timestamp:e})}sendNetworkQualityTestBeginEvent(t,e){this.eventHandler.callEvent({event:V.NET_QUALITY_TEST_BEGIN,timestamp:e}),new Promise((i,r)=>u(this,null,function*(){const n=[];try{for(const s of t)try{if(s.iceServers&&s.iceServers.length>0){const o=yield this.measurements.getNetworkQuality(s.iceServers);n.push(j(L({},s),{networkResults:o}))}}catch(o){console.warn("Error handling ",o)}i({regionData:n})}catch(s){console.warn("Error in callstats, ",s),r(s)}})).then(i=>{this.eventHandler.callEvent({event:V.NET_QUALITY_TEST_END,timestamp:e,metaData:i})})}sendWebSocketConnectedEvent(t){this.eventHandler.callEvent({event:V.WEBSOCKET_CONNECTED,timestamp:t})}sendTransportConnectedEvent(t){this.eventHandler.callEvent({event:V.TRANSPORT_CONNECTED,timestamp:t})}sendAudioToggleEvent(t,e){this.currentUserMediaStates.audio=t;let i;t?i=V.AUDIO_ON:i=V.AUDIO_OFF,this.eventHandler.callEvent({event:i,timestamp:e})}sendVideoToggleEvent(t,e){this.currentUserMediaStates.video=t;let i;t?i=V.VIDEO_ON:i=V.VIDEO_OFF,this.eventHandler.callEvent({event:i,timestamp:e})}sendParticipantRoleToggleEvent(t,e){this.eventHandler.callEvent({event:V.PARTICIPANT_ROLE,timestamp:e,metaData:t})}startPingStats(t=7e3){this.sendPingStatsEvent(!1,new Date),this.pingStatsTimeout=setInterval(this.sendPingStatsEvent.bind(this),t)}stopPingStats(){clearInterval(this.pingStatsTimeout)}sendPingStatsEvent(t=!0,e){return u(this,null,function*(){let i,r;if(this.producingTransport&&(i=yield this.measurements.getProcessedStats(this.producingTransport,!1,!0),!i||!(i!=null&&i.producerReport))){this.logger.debug("callStats::sendPingStatsEvent::staleProducingTransport",{disclaimer:"Stale producer? Regenerating Stream Maps!"});const s=yield this.measurements.getProducersReport([...this.producers.values()]);i&&s?i.producerReport=s:(i=yield this.measurements.getProcessedStats(this.producingTransport,!1,!0),(!i||!(i!=null&&i.producerReport))&&this.logger.debug("callStats::sendPingStatsEvent::noProducingTransportReport",{disclaimer:"Stream maps invalid despite regenerating!"}))}if(this.consumingTransport&&(r=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),!r||!r.consumerReport)){this.logger.debug("callStats::sendPingStatsEvent::staleConsumingTransport",{disclaimer:"Stale consumer? Regenerating Stream Maps!"});const s=yield this.measurements.getConsumersReport([...this.consumers.values()]);r&&s?r.consumerReport=s:(r=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),(!r||!r.consumerReport)&&this.logger.debug("callStats::sendPingStatsEvent::noConsumingTransportReport",{disclaimer:"Stream maps invalid despite regenerating!"}))}const n={producingTransportStats:i?i==null?void 0:i.transportReport:void 0,consumingTransportStats:r?r==null?void 0:r.transportReport:void 0,producerStats:[].concat((i==null?void 0:i.producerReport)||[]).concat((r==null?void 0:r.producerReport)||[]),consumerStats:[].concat((r==null?void 0:r.consumerReport)||[]).concat((i==null?void 0:i.consumerReport)||[])};if(t&&n.producerStats.length===0&&n.consumerStats.length===0){yield this.eventHandler.flush();return}this.eventHandler.callEvent({event:V.PING_STAT,metaData:n,timestamp:e})})}sendIVSPlayerRebufferEvent(t){this.eventHandler.callEvent({event:V.IVS_PLAYER_REBUFFERING,timestamp:t})}sendIVSPlayerAudioBlockEvent(t){this.eventHandler.callEvent({event:V.IVS_PLAYER_AUDIO_BLOCKED,timestamp:t})}sendIVSPlayerPlaybackBlockedEvent(t){this.eventHandler.callEvent({event:V.IVS_PLAYER_PLAYBACK_BLOCKED,timestamp:t})}sendIVSPlayerNetworkUnavailableEvent(t){this.eventHandler.callEvent({event:V.IVS_PLAYER_NETWORK_UNAVAILABLE,timestamp:t})}sendIVSPlayerInitializedEvent(t){this.eventHandler.callEvent({event:V.IVS_PLAYER_INITIALIZED,timestamp:t})}sendIVSPlayerWorkerErrorEvent(t){this.eventHandler.callEvent({event:V.IVS_PLAYER_WORKER_ERROR,timestamp:t})}sendIVSPlayerErrorEvent(t,e){this.eventHandler.callEvent({event:V.IVS_PLAYER_ERROR,timestamp:e,metaData:t})}sendIVSPlayerRecoverableErrorEvent(t,e){this.eventHandler.callEvent({event:V.IVS_PLAYER_RECOVERABLE_ERROR,timestamp:e,metaData:t})}sendIVSPlayerAnalyticsEvent(t,e){this.eventHandler.callEvent({event:V.IVS_PLAYER_ANALYTICS_EVENT,timestamp:e,metaData:t})}sendIVSPlayerPlaybackRateChangedEvent(t,e){this.eventHandler.callEvent({event:V.IVS_PLAYER_PLAYBACK_RATE_CHANGED,timestamp:e,metaData:{updatedPlaybackRate:t}})}sendIVSPlayerQualityChanged(t,e){this.eventHandler.callEvent({event:V.IVS_PLAYER_QUALITY_CHANGED,timestamp:e,metaData:t})}sendPlayerLiveLatency(t,e){this.eventHandler.callEvent({event:V.LIVESTREAM_LATENCY,timestamp:e,metaData:{latency:t}})}sendDisconnectEvent(t){this.eventHandler.callEvent({event:V.DISCONNECT,timestamp:t})}sendReconnectEvent(t){this.eventHandler.callEvent({event:V.RECONNECT_ATTEMPT,timestamp:t})}expectedVideoResolution(t,e,i){this.eventHandler.callEvent({event:V.EXPECTED_VIDEO_RESOLUTION,timestamp:i,metaData:{frameWidth:t,frameHeight:e}})}expectedScreenshareResolution(t,e,i){this.eventHandler.callEvent({event:V.EXPECTED_SCREENSHARE_RESOLUTION,timestamp:i,metaData:{frameWidth:t,frameHeight:e}})}};Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"registerIceServers",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"registerConsumer",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"registerProducer",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendConsumerSharedMediaStateEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"registerProducingTransport",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"registerConsumingTransport",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"deRegisterConsumer",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"deRegisterProducer",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"disconnectConsumingTransport",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"disconnectProducingTransport",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendPreCallTestBeginEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendScreenShareToggleEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendScreenShareRequestedEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendActiveSpeakerEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"devices",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"selectedDevice",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"mediaPermission",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"mediaPlaybackFailed",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"mediaTrackMuted",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"tabChanged",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"browserBackgrounded",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"browserForegrounded",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"legacySwitch",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"getPreCallTestResults",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendCallJoinBeginEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendNetworkQualityTestBeginEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendWebSocketConnectedEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendTransportConnectedEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendAudioToggleEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendVideoToggleEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendParticipantRoleToggleEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"startPingStats",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"stopPingStats",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendPingStatsEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerRebufferEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerAudioBlockEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerPlaybackBlockedEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerNetworkUnavailableEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerInitializedEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerWorkerErrorEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerErrorEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerRecoverableErrorEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerAnalyticsEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerPlaybackRateChangedEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendIVSPlayerQualityChanged",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendPlayerLiveLatency",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendDisconnectEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"sendReconnectEvent",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"expectedVideoResolution",null),Z([te(TypeError,(t,e)=>ee.error(e,t))],Q.prototype,"expectedScreenshareResolution",null),Q=Z([aE(TypeError,(t,e)=>ee.error(e,t))],Q);const oE=Q;class cE extends lt{constructor(){super(...arguments),m(this,"stats"),m(this,"peerId"),m(this,"backend"),m(this,"iceServers"),m(this,"initialized",!1),m(this,"stalled",!1),m(this,"ipInformation"),m(this,"logger")}initialize(e){return u(this,arguments,function*({peerId:i,engineName:r,env:n=Xs.PROD,iceServers:s,apiBase:o="https://api.cluster.dyte.in",flags:c,logger:d=console,apiHostnames:h,skipConnectivityChecks:p=!1}){var g,y,T;try{this.peerId=i,this.logger=d,this.ipInformation=yield Bl.getIPDetails({peerId:i,apiHostnames:h,logger:d}),this.backend=new oE(o,r,n,c,d,i,h),this.iceServers=s,(g=this.backend)==null||g.registerIceServers(this.iceServers),this.initialized=!0,(T=(y=this.backend)==null?void 0:y.eventHandler)==null||T.emit("initialized",this.ipInformation),this.emit("initialized",this.ipInformation),this.startPreCallTest(p)}catch(b){this.logger.error("callStats::CallStatsIntegration: ",{error:b}),this.stallCallStats()}})}configureSendTransport(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.registerProducingTransport(e)})}configureRecvTransport(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.registerConsumingTransport(e)})}candidateRegionalNetworkQualityTest(e){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var r;try{(r=this.backend)==null||r.sendNetworkQualityTestBeginEvent(e,i)}catch(n){this.logger.error("callStats::sendNetworkQualityTestBeginEvent",{error:{reason:n.reason}})}})})}roomJoined(e){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var r,n;(r=this.backend)==null||r.sendCallJoinBeginEvent(e,i),this.backend,(n=this.backend)==null||n.startPingStats()})})}audioOff(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendAudioToggleEvent(!1,e)})}audioOn(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendAudioToggleEvent(!0,e)})}videoOff(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendVideoToggleEvent(!1,e)})}videoOn(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendVideoToggleEvent(!0,e)})}callEnded(){const e=new Date;this.onSafeInitialization(()=>{var i,r;(i=this.backend)==null||i.stopPingStats(),(r=this.backend)==null||r.sendDisconnectEvent(e)})}screenShareStart(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendScreenShareToggleEvent(!0,e,i)})}consumerSharedMediaState(e,i){this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendConsumerSharedMediaStateEvent(e,i)})}screenShareStop(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendScreenShareToggleEvent(!1,e,i)})}screenShareRequested(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.sendScreenShareRequestedEvent(e)})}activeSpeaker(e){if(e!==this.peerId)return;const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendActiveSpeakerEvent(e,i)})}devices(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.devices(e,i,r)})}selectedDevice(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.selectedDevice(e,i,r)})}mediaPermission(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.mediaPermission(e,i,r)})}mediaPlaybackFailed(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.mediaPlaybackFailed(e,i)})}mediaTrackMuted(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.mediaTrackMuted(e,i)})}tabChanged(e=!1){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.tabChanged(e,i)})}browserBackgrounded(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.browserBackgrounded(e)})}browserForegrounded(){const e=new Date;this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.browserForegrounded(e)})}legacySwitch(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.legacySwitch(e,i)})}startPreCallTest(e=!1){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendPreCallTestBeginEvent(e,i)})})}onPreCallTestResults(e){return this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.once("precall_end",e)}),e}onReceivingConsumerAudioStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consumer_audio_status",e)})}onReceivingConsumerVideoStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consumer_video_status",e)})}onReceivingProducerAudioStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producer_audio_status",e)})}onReceivingProducerVideoStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producer_video_status",e)})}onReceivingProducingTransportStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producing_transport_status",e)})}onReceivingConsumingTransportStatus(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consuming_transport_status",e)})}onProducerScore(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("producer_score",e)})}onConsumerScore(e){this.onSafeInitialization(()=>{var i;(i=this.backend)==null||i.eventHandler.on("consumer_score",e)})}onSafeInitialization(e){if(this.initialized)e(this.ipInformation,!1);else if(!this.stalled){const i=r=>{e(r,!0)};return this.once("initialized",i),i}return()=>{}}removeInitializationListener(e){this.removeListener("initialized",e)}stallCallStats(){this.stalled=!0,this.removeAllListeners("initialized")}ivsPlayerEvent(e,i){const r=new Date;this.onSafeInitialization(()=>{var n,s,o,c,d,h,p,g,y,T,b;switch(e){case"PlayerRebuffering":(n=this.backend)==null||n.sendIVSPlayerRebufferEvent(r);break;case"PlayerAudioBlocked":(s=this.backend)==null||s.sendIVSPlayerAudioBlockEvent(r);break;case"PlayerPlaybackBlocked":(o=this.backend)==null||o.sendIVSPlayerPlaybackBlockedEvent(r);break;case"PlayerNetworkUnavailable":(c=this.backend)==null||c.sendIVSPlayerNetworkUnavailableEvent(r);break;case"PlayerInitialized":(d=this.backend)==null||d.sendIVSPlayerInitializedEvent(r);break;case"PlayerWorkerError":(h=this.backend)==null||h.sendIVSPlayerWorkerErrorEvent(r);break;case"PlayerError":(p=this.backend)==null||p.sendIVSPlayerErrorEvent(i,r);break;case"PlayerRecoverableError":(g=this.backend)==null||g.sendIVSPlayerRecoverableErrorEvent(i,r);break;case"PlayerAnalyticsEvent":(y=this.backend)==null||y.sendIVSPlayerAnalyticsEvent(i,r);break;case"PlayerPlaybackRateChanged":(T=this.backend)==null||T.sendIVSPlayerPlaybackRateChangedEvent(i,r);break;case"PlayerQualityChanged":(b=this.backend)==null||b.sendIVSPlayerQualityChanged(i,r);break}})}livestreamLatency(e){const i=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.sendPlayerLiveLatency(e,i)})}expectedVideoResolution(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.expectedVideoResolution(e,i,r)})}expectedScreenshareResolution(e,i){const r=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.expectedScreenshareResolution(e,i,r)})}}const J=new cE;J.setMaxListeners(30);function dE(t){const{length:e}=this,i=t>=0?t:e+t;return i<0||i>=e?void 0:this[i]}Array.prototype.at||Object.assign(Array.prototype,{at:dE});function lE(t){const{length:e}=this,i=t>=0?t:e+t;return i<0||i>=e?void 0:this[i]}String.prototype.at||Object.assign(String.prototype,{at:lE});function uE(){this.__data__=[],this.size=0}function Zs(t,e){return t===e||t!==t&&e!==e}function Ic(t,e){for(var i=t.length;i--;)if(Zs(t[i][0],e))return i;return-1}var hE=Array.prototype,pE=hE.splice;function mE(t){var e=this.__data__,i=Ic(e,t);if(i<0)return!1;var r=e.length-1;return i==r?e.pop():pE.call(e,i,1),--this.size,!0}function gE(t){var e=this.__data__,i=Ic(e,t);return i<0?void 0:e[i][1]}function fE(t){return Ic(this.__data__,t)>-1}function vE(t,e){var i=this.__data__,r=Ic(i,t);return r<0?(++this.size,i.push([t,e])):i[r][1]=e,this}function Ki(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}Ki.prototype.clear=uE,Ki.prototype.delete=mE,Ki.prototype.get=gE,Ki.prototype.has=fE,Ki.prototype.set=vE;function yE(){this.__data__=new Ki,this.size=0}function SE(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i}function EE(t){return this.__data__.get(t)}function TE(t){return this.__data__.has(t)}var kE=typeof global=="object"&&global&&global.Object===Object&&global;const Tm=kE;var bE=typeof self=="object"&&self&&self.Object===Object&&self,_E=Tm||bE||Function("return this")();const li=_E;var wE=li.Symbol;const ur=wE;var km=Object.prototype,IE=km.hasOwnProperty,CE=km.toString,ea=ur?ur.toStringTag:void 0;function PE(t){var e=IE.call(t,ea),i=t[ea];try{t[ea]=void 0;var r=!0}catch(s){}var n=CE.call(t);return r&&(e?t[ea]=i:delete t[ea]),n}var RE=Object.prototype,ME=RE.toString;function AE(t){return ME.call(t)}var DE="[object Null]",OE="[object Undefined]",bm=ur?ur.toStringTag:void 0;function Kr(t){return t==null?t===void 0?OE:DE:bm&&bm in Object(t)?PE(t):AE(t)}function ui(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var NE="[object AsyncFunction]",LE="[object Function]",VE="[object GeneratorFunction]",xE="[object Proxy]";function Wl(t){if(!ui(t))return!1;var e=Kr(t);return e==LE||e==VE||e==NE||e==xE}var UE=li["__core-js_shared__"];const jl=UE;var _m=function(){var t=/[^.]+$/.exec(jl&&jl.keys&&jl.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function FE(t){return!!_m&&_m in t}var BE=Function.prototype,WE=BE.toString;function zr(t){if(t!=null){try{return WE.call(t)}catch(e){}try{return t+""}catch(e){}}return""}var jE=/[\\^$.*+?()[\]{}|]/g,HE=/^\[object .+?Constructor\]$/,qE=Function.prototype,GE=Object.prototype,$E=qE.toString,JE=GE.hasOwnProperty,KE=RegExp("^"+$E.call(JE).replace(jE,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function zE(t){if(!ui(t)||FE(t))return!1;var e=Wl(t)?KE:HE;return e.test(zr(t))}function YE(t,e){return t==null?void 0:t[e]}function Yr(t,e){var i=YE(t,e);return zE(i)?i:void 0}var QE=Yr(li,"Map");const ta=QE;var XE=Yr(Object,"create");const ia=XE;function ZE(){this.__data__=ia?ia(null):{},this.size=0}function eT(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var tT="__lodash_hash_undefined__",iT=Object.prototype,rT=iT.hasOwnProperty;function nT(t){var e=this.__data__;if(ia){var i=e[t];return i===tT?void 0:i}return rT.call(e,t)?e[t]:void 0}var sT=Object.prototype,aT=sT.hasOwnProperty;function oT(t){var e=this.__data__;return ia?e[t]!==void 0:aT.call(e,t)}var cT="__lodash_hash_undefined__";function dT(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=ia&&e===void 0?cT:e,this}function Qr(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}Qr.prototype.clear=ZE,Qr.prototype.delete=eT,Qr.prototype.get=nT,Qr.prototype.has=oT,Qr.prototype.set=dT;function lT(){this.size=0,this.__data__={hash:new Qr,map:new(ta||Ki),string:new Qr}}function uT(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function Cc(t,e){var i=t.__data__;return uT(e)?i[typeof e=="string"?"string":"hash"]:i.map}function hT(t){var e=Cc(this,t).delete(t);return this.size-=e?1:0,e}function pT(t){return Cc(this,t).get(t)}function mT(t){return Cc(this,t).has(t)}function gT(t,e){var i=Cc(this,t),r=i.size;return i.set(t,e),this.size+=i.size==r?0:1,this}function Xr(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var r=t[e];this.set(r[0],r[1])}}Xr.prototype.clear=lT,Xr.prototype.delete=hT,Xr.prototype.get=pT,Xr.prototype.has=mT,Xr.prototype.set=gT;var fT=200;function vT(t,e){var i=this.__data__;if(i instanceof Ki){var r=i.__data__;if(!ta||r.length<fT-1)return r.push([t,e]),this.size=++i.size,this;i=this.__data__=new Xr(r)}return i.set(t,e),this.size=i.size,this}function Di(t){var e=this.__data__=new Ki(t);this.size=e.size}Di.prototype.clear=yE,Di.prototype.delete=SE,Di.prototype.get=EE,Di.prototype.has=TE,Di.prototype.set=vT;function yT(t,e){for(var i=-1,r=t==null?0:t.length;++i<r&&e(t[i],i,t)!==!1;);return t}var ST=function(){try{var t=Yr(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();const Pc=ST;function Hl(t,e,i){e=="__proto__"&&Pc?Pc(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}var ET=Object.prototype,TT=ET.hasOwnProperty;function wm(t,e,i){var r=t[e];(!(TT.call(t,e)&&Zs(r,i))||i===void 0&&!(e in t))&&Hl(t,e,i)}function ra(t,e,i,r){var n=!i;i||(i={});for(var s=-1,o=e.length;++s<o;){var c=e[s],d=r?r(i[c],t[c],c,i,t):void 0;d===void 0&&(d=t[c]),n?Hl(i,c,d):wm(i,c,d)}return i}function kT(t,e){for(var i=-1,r=Array(t);++i<t;)r[i]=e(i);return r}function Oi(t){return t!=null&&typeof t=="object"}var bT="[object Arguments]";function Im(t){return Oi(t)&&Kr(t)==bT}var Cm=Object.prototype,_T=Cm.hasOwnProperty,wT=Cm.propertyIsEnumerable,IT=Im(function(){return arguments}())?Im:function(t){return Oi(t)&&_T.call(t,"callee")&&!wT.call(t,"callee")};const Rc=IT;var CT=Array.isArray;const hr=CT;function PT(){return!1}var Pm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Rm=Pm&&typeof module=="object"&&module&&!module.nodeType&&module,RT=Rm&&Rm.exports===Pm,Mm=RT?li.Buffer:void 0,MT=Mm?Mm.isBuffer:void 0,AT=MT||PT;const Gn=AT;var DT=9007199254740991,OT=/^(?:0|[1-9]\d*)$/;function Am(t,e){var i=typeof t;return e=e==null?DT:e,!!e&&(i=="number"||i!="symbol"&&OT.test(t))&&t>-1&&t%1==0&&t<e}var NT=9007199254740991;function Dm(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=NT}var LT="[object Arguments]",VT="[object Array]",xT="[object Boolean]",UT="[object Date]",FT="[object Error]",BT="[object Function]",WT="[object Map]",jT="[object Number]",HT="[object Object]",qT="[object RegExp]",GT="[object Set]",$T="[object String]",JT="[object WeakMap]",KT="[object ArrayBuffer]",zT="[object DataView]",YT="[object Float32Array]",QT="[object Float64Array]",XT="[object Int8Array]",ZT="[object Int16Array]",ek="[object Int32Array]",tk="[object Uint8Array]",ik="[object Uint8ClampedArray]",rk="[object Uint16Array]",nk="[object Uint32Array]",we={};we[YT]=we[QT]=we[XT]=we[ZT]=we[ek]=we[tk]=we[ik]=we[rk]=we[nk]=!0,we[LT]=we[VT]=we[KT]=we[xT]=we[zT]=we[UT]=we[FT]=we[BT]=we[WT]=we[jT]=we[HT]=we[qT]=we[GT]=we[$T]=we[JT]=!1;function sk(t){return Oi(t)&&Dm(t.length)&&!!we[Kr(t)]}function ql(t){return function(e){return t(e)}}var Om=typeof exports=="object"&&exports&&!exports.nodeType&&exports,na=Om&&typeof module=="object"&&module&&!module.nodeType&&module,ak=na&&na.exports===Om,Gl=ak&&Tm.process,ok=function(){try{var t=na&&na.require&&na.require("util").types;return t||Gl&&Gl.binding&&Gl.binding("util")}catch(e){}}();const $n=ok;var Nm=$n&&$n.isTypedArray,ck=Nm?ql(Nm):sk;const Mc=ck;var dk=Object.prototype,lk=dk.hasOwnProperty;function Lm(t,e){var i=hr(t),r=!i&&Rc(t),n=!i&&!r&&Gn(t),s=!i&&!r&&!n&&Mc(t),o=i||r||n||s,c=o?kT(t.length,String):[],d=c.length;for(var h in t)(e||lk.call(t,h))&&!(o&&(h=="length"||n&&(h=="offset"||h=="parent")||s&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Am(h,d)))&&c.push(h);return c}var uk=Object.prototype;function Ac(t){var e=t&&t.constructor,i=typeof e=="function"&&e.prototype||uk;return t===i}function Vm(t,e){return function(i){return t(e(i))}}var hk=Vm(Object.keys,Object);const pk=hk;var mk=Object.prototype,gk=mk.hasOwnProperty;function xm(t){if(!Ac(t))return pk(t);var e=[];for(var i in Object(t))gk.call(t,i)&&i!="constructor"&&e.push(i);return e}function sa(t){return t!=null&&Dm(t.length)&&!Wl(t)}function $l(t){return sa(t)?Lm(t):xm(t)}function fk(t,e){return t&&ra(e,$l(e),t)}function vk(t){var e=[];if(t!=null)for(var i in Object(t))e.push(i);return e}var yk=Object.prototype,Sk=yk.hasOwnProperty;function Ek(t){if(!ui(t))return vk(t);var e=Ac(t),i=[];for(var r in t)r=="constructor"&&(e||!Sk.call(t,r))||i.push(r);return i}function aa(t){return sa(t)?Lm(t,!0):Ek(t)}function Tk(t,e){return t&&ra(e,aa(e),t)}var Um=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Fm=Um&&typeof module=="object"&&module&&!module.nodeType&&module,kk=Fm&&Fm.exports===Um,Bm=kk?li.Buffer:void 0,Wm=Bm?Bm.allocUnsafe:void 0;function jm(t,e){if(e)return t.slice();var i=t.length,r=Wm?Wm(i):new t.constructor(i);return t.copy(r),r}function Hm(t,e){var i=-1,r=t.length;for(e||(e=Array(r));++i<r;)e[i]=t[i];return e}function bk(t,e){for(var i=-1,r=t==null?0:t.length,n=0,s=[];++i<r;){var o=t[i];e(o,i,t)&&(s[n++]=o)}return s}function qm(){return[]}var _k=Object.prototype,wk=_k.propertyIsEnumerable,Gm=Object.getOwnPropertySymbols,Ik=Gm?function(t){return t==null?[]:(t=Object(t),bk(Gm(t),function(e){return wk.call(t,e)}))}:qm;const Jl=Ik;function Ck(t,e){return ra(t,Jl(t),e)}function $m(t,e){for(var i=-1,r=e.length,n=t.length;++i<r;)t[n+i]=e[i];return t}var Pk=Vm(Object.getPrototypeOf,Object);const Kl=Pk;var Rk=Object.getOwnPropertySymbols,Mk=Rk?function(t){for(var e=[];t;)$m(e,Jl(t)),t=Kl(t);return e}:qm;const Jm=Mk;function Ak(t,e){return ra(t,Jm(t),e)}function Km(t,e,i){var r=e(t);return hr(t)?r:$m(r,i(t))}function zl(t){return Km(t,$l,Jl)}function Dk(t){return Km(t,aa,Jm)}var Ok=Yr(li,"DataView");const Yl=Ok;var Nk=Yr(li,"Promise");const Ql=Nk;var Lk=Yr(li,"Set");const Xl=Lk;var Vk=Yr(li,"WeakMap");const Zl=Vk;var zm="[object Map]",xk="[object Object]",Ym="[object Promise]",Qm="[object Set]",Xm="[object WeakMap]",Zm="[object DataView]",Uk=zr(Yl),Fk=zr(ta),Bk=zr(Ql),Wk=zr(Xl),jk=zr(Zl),Zr=Kr;(Yl&&Zr(new Yl(new ArrayBuffer(1)))!=Zm||ta&&Zr(new ta)!=zm||Ql&&Zr(Ql.resolve())!=Ym||Xl&&Zr(new Xl)!=Qm||Zl&&Zr(new Zl)!=Xm)&&(Zr=function(t){var e=Kr(t),i=e==xk?t.constructor:void 0,r=i?zr(i):"";if(r)switch(r){case Uk:return Zm;case Fk:return zm;case Bk:return Ym;case Wk:return Qm;case jk:return Xm}return e});const Jn=Zr;var Hk=Object.prototype,qk=Hk.hasOwnProperty;function Gk(t){var e=t.length,i=new t.constructor(e);return e&&typeof t[0]=="string"&&qk.call(t,"index")&&(i.index=t.index,i.input=t.input),i}var $k=li.Uint8Array;const Dc=$k;function eu(t){var e=new t.constructor(t.byteLength);return new Dc(e).set(new Dc(t)),e}function Jk(t,e){var i=e?eu(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)}var Kk=/\w*$/;function zk(t){var e=new t.constructor(t.source,Kk.exec(t));return e.lastIndex=t.lastIndex,e}var eg=ur?ur.prototype:void 0,tg=eg?eg.valueOf:void 0;function Yk(t){return tg?Object(tg.call(t)):{}}function ig(t,e){var i=e?eu(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}var Qk="[object Boolean]",Xk="[object Date]",Zk="[object Map]",e0="[object Number]",t0="[object RegExp]",i0="[object Set]",r0="[object String]",n0="[object Symbol]",s0="[object ArrayBuffer]",a0="[object DataView]",o0="[object Float32Array]",c0="[object Float64Array]",d0="[object Int8Array]",l0="[object Int16Array]",u0="[object Int32Array]",h0="[object Uint8Array]",p0="[object Uint8ClampedArray]",m0="[object Uint16Array]",g0="[object Uint32Array]";function f0(t,e,i){var r=t.constructor;switch(e){case s0:return eu(t);case Qk:case Xk:return new r(+t);case a0:return Jk(t,i);case o0:case c0:case d0:case l0:case u0:case h0:case p0:case m0:case g0:return ig(t,i);case Zk:return new r;case e0:case r0:return new r(t);case t0:return zk(t);case i0:return new r;case n0:return Yk(t)}}var rg=Object.create,v0=function(){function t(){}return function(e){if(!ui(e))return{};if(rg)return rg(e);t.prototype=e;var i=new t;return t.prototype=void 0,i}}();const y0=v0;function ng(t){return typeof t.constructor=="function"&&!Ac(t)?y0(Kl(t)):{}}var S0="[object Map]";function E0(t){return Oi(t)&&Jn(t)==S0}var sg=$n&&$n.isMap,T0=sg?ql(sg):E0;const k0=T0;var b0="[object Set]";function _0(t){return Oi(t)&&Jn(t)==b0}var ag=$n&&$n.isSet,w0=ag?ql(ag):_0;const I0=w0;var C0=1,P0=2,R0=4,og="[object Arguments]",M0="[object Array]",A0="[object Boolean]",D0="[object Date]",O0="[object Error]",cg="[object Function]",N0="[object GeneratorFunction]",L0="[object Map]",V0="[object Number]",dg="[object Object]",x0="[object RegExp]",U0="[object Set]",F0="[object String]",B0="[object Symbol]",W0="[object WeakMap]",j0="[object ArrayBuffer]",H0="[object DataView]",q0="[object Float32Array]",G0="[object Float64Array]",$0="[object Int8Array]",J0="[object Int16Array]",K0="[object Int32Array]",z0="[object Uint8Array]",Y0="[object Uint8ClampedArray]",Q0="[object Uint16Array]",X0="[object Uint32Array]",ke={};ke[og]=ke[M0]=ke[j0]=ke[H0]=ke[A0]=ke[D0]=ke[q0]=ke[G0]=ke[$0]=ke[J0]=ke[K0]=ke[L0]=ke[V0]=ke[dg]=ke[x0]=ke[U0]=ke[F0]=ke[B0]=ke[z0]=ke[Y0]=ke[Q0]=ke[X0]=!0,ke[O0]=ke[cg]=ke[W0]=!1;function Oc(t,e,i,r,n,s){var o,c=e&C0,d=e&P0,h=e&R0;if(i&&(o=n?i(t,r,n,s):i(t)),o!==void 0)return o;if(!ui(t))return t;var p=hr(t);if(p){if(o=Gk(t),!c)return Hm(t,o)}else{var g=Jn(t),y=g==cg||g==N0;if(Gn(t))return jm(t,c);if(g==dg||g==og||y&&!n){if(o=d||y?{}:ng(t),!c)return d?Ak(t,Tk(o,t)):Ck(t,fk(o,t))}else{if(!ke[g])return n?t:{};o=f0(t,g,c)}}s||(s=new Di);var T=s.get(t);if(T)return T;s.set(t,o),I0(t)?t.forEach(function(R){o.add(Oc(R,e,i,R,t,s))}):k0(t)&&t.forEach(function(R,x){o.set(x,Oc(R,e,i,x,t,s))});var b=h?d?Dk:zl:d?aa:$l,O=p?void 0:b(t);return yT(O||t,function(R,x){O&&(x=R,R=t[x]),wm(o,x,Oc(R,e,i,x,t,s))}),o}var Z0=1,eb=4;function tu(t){return Oc(t,Z0|eb)}var tb="[object Symbol]";function ib(t){return typeof t=="symbol"||Oi(t)&&Kr(t)==tb}var rb=Object.defineProperty,nb=(t,e)=>{for(var i in e)rb(t,i,{get:e[i],enumerable:!0})},sb={};nb(sb,{permissions:()=>ab,theme:()=>ob});var Rt=(t=>(t.GroupCall="GROUP_CALL",t.Webinar="WEBINAR",t.AudioRoom="AUDIO_ROOM",t.Livestream="LIVESTREAM",t.Chat="CHAT",t))(Rt||{}),H=(t=>(t.Allowed="ALLOWED",t.NotAllowed="NOT_ALLOWED",t.CanRequest="CAN_REQUEST",t))(H||{}),ab={view_type:"GROUP_CALL",accept_waiting_requests:!1,accept_present_requests:!1,request_produce:!1,can_allow_participant_audio:!1,can_allow_participant_screensharing:!1,can_allow_participant_video:!1,can_spotlight:!1,request_kick_participant:!1,kick_participant:!1,pin_participant:!1,can_edit_display_name:!1,can_record:!1,can_livestream:!1,can_present:!0,waiting_room_type:"SKIP_ON_ACCEPT",recorder_type:"NONE",plugins:{can_close:!0,can_start:!0},polls:{can_create:!0,can_vote:!0,can_view:!0},produce:{video:{allow:!0,quality:"vga",frame_rate:24},audio:!0,screenshare:{allow:!0,quality:"hd",frame_rate:5}},chat:{public:{can_send:!0,text:!0,files:!0},private:{can_send:!1,can_receive:!1,text:!1,files:!1}},connected_meetings:{can_alter_connected_meetings:!1,can_switch_connected_meetings:!1,can_switch_to_parent_meeting:!1},reactions:!1,hidden_participant:!1,is_recorder:!1,show_participant_list:!0,can_change_participant_role:!1,can_change_theme:!1,max_screenshare_count:1},ob={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}},lg="hXgU8Wc8pwuGNq9ms5q9Hh",ug;typeof process!="undefined"&&(ug=process==null?void 0:process.env)!=null&&ug.FLAGSMITH_ENVIRONMENT_KEY&&(lg={}.FLAGSMITH_ENVIRONMENT_KEY);function cb(t=[]){const e={};return t.forEach(i=>{e[i.feature.name]={enabled:i.enabled,value:i.feature_state_value}}),e}var db=class{constructor(t=lg){m(this,"flags",{}),m(this,"environmentKey",null),this.environmentKey=t}identifyAndFetchFlagsWithRetry(t){return u(this,arguments,function*({primaryEndpoint:e,secondaryEndpoint:i,forceEvaluate:r,timeout:n,uniqueIdentifier:s,traitsObj:o,logger:c}){const d=JSON.parse(JSON.stringify(o)),h=Object.entries(d).map(g=>({trait_key:g[0],trait_value:g[1]})),p=[e,i,i];for(const g of p)try{const y=new AbortController,T=setTimeout(()=>y.abort(),n),b="_"+(Math.random()+1).toString(36).substring(2),O=yield fetch(`https://${g}/api/v1/identities/`,{method:"POST",headers:{"Content-Type":"application/json","X-Environment-Key":this.environmentKey},body:JSON.stringify({identifier:s+(r?b:""),traits:h}),signal:y.signal});if(clearTimeout(T),!O.ok)throw new Error(`Request failed with status ${O.status}`);const R=yield O.json();return cb(R.flags||[])}catch(y){c.error("Flagsmith identify failed!!",{error:y,url:g})}return{}})}identify(t){return u(this,arguments,function*(e,i={},r=!1,n=5e3,s="edge.api.flagsmith.com",o=console){return this.flags=yield this.identifyAndFetchFlagsWithRetry({traitsObj:i,uniqueIdentifier:e,forceEvaluate:r,timeout:n,primaryEndpoint:s,secondaryEndpoint:"edge.api.flagsmith.com",logger:o}),this.flags})}getValue(t){return this.flags&&this.flags[t]&&this.flags[t].value}hasFeature(t){return this.flags&&this.flags[t]&&this.flags[t].enabled}getAllFlags(){return this.flags}},z=new db,hg=[-2,-1,0,1,2],lb=[0,1,2,3,4];function ub(t){t=t.trim();let e="0",i="0",r="0";return t.length==4?(e="0x"+t[1]+t[1],i="0x"+t[2]+t[2],r="0x"+t[3]+t[3]):t.length>6&&(e="0x"+t[1]+t[2],i="0x"+t[3]+t[4],r="0x"+t[5]+t[6]),[+e,+i,+r]}var hb=(t,e,i)=>{let r,n,s;if(e==0)r=n=s=i;else{const o=(h,p,g)=>(g<0&&(g+=1),g>1&&(g-=1),g<.16666666666666666?h+(p-h)*6*g:g<.5?p:g<.6666666666666666?h+(p-h)*(.6666666666666666-g)*6:h),c=i<.5?i*(1+e):i+e-i*e,d=2*i-c;r=o(d,c,t+1/3),n=o(d,c,t),s=o(d,c,t-1/3)}return[Math.round(r*255),Math.round(n*255),Math.round(s*255)]},pb=(t,e,i)=>{t/=255,e/=255,i/=255;const r=Math.max(t,e,i),n=Math.min(t,e,i);let s,o;const c=(r+n)/2;if(r==n)s=o=0;else{const d=r-n;switch(o=c>.5?d/(2-r-n):d/(r+n),r){case t:s=(e-i)/d+(e<i?6:0);break;case e:s=(i-t)/d+2;break;case i:s=(t-e)/d+4;break}s/=6}return[s,o,c]},mb=(t,e,i)=>{const r=n=>n.toString(16).padStart(2,"0");return`#${r(t)}${r(e)}${r(i)}`},pg=(t,e=hg,i=.4)=>{const r=[],[n,s,o]=ub(t),[c,d,h]=pb(n,s,o),p=Math.round(h*100);p>70?i=.8:p>60?i=.9:p<10?i=.075:p<42&&(i=.3);const g=e.findIndex(R=>R===0);if(g===-1)throw new Error("Invalid reducer provided, it must contain atleast one zero");const y=5-g,T=g+1,b=(100-p)/y,O=p/T;for(const R of e){let x;R<0?x=p+R*O*i:R>0?x=p+R*b*i:x=p;const[G,$,I]=hb(c,d,x/100);r.push(mb(G,$,I))}return r},mg={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"}},gb=t=>{const[e,i,r,n,s]=pg(t,hg);return{300:e,400:i,500:r,600:n,700:s}},fb=t=>{if(t==="#FFFFFF")return mg.light.background;if(t==="#000000")return mg.dark.background;const[e,i,r,n,s]=pg(t,lb);return{1e3:e,900:i,800:r,700:n,600:s}},vb={border_radius:"rounded",border_width:"thin",spacing_base:4,theme:"dark",colors:{brand:gb("#2160FD"),background:fb("#141414"),danger:"#FF2D2D",text:"#EEEEEE",text_on_brand:"#EEEEEE",success:"#62A504",video_bg:"#191919",warning:"#FFCD07"}};function gg(){return tu(vb)}var yb={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:gg(),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 Sb(){return tu(yb)}var Eb={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:gg(),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 iu(){return tu(Eb)}var Tb=/\s/;function kb(t){for(var e=t.length;e--&&Tb.test(t.charAt(e)););return e}var bb=/^\s+/;function _b(t){return t&&t.slice(0,kb(t)+1).replace(bb,"")}var fg=0/0,wb=/^[-+]0x[0-9a-f]+$/i,Ib=/^0b[01]+$/i,Cb=/^0o[0-7]+$/i,Pb=parseInt;function vg(t){if(typeof t=="number")return t;if(ib(t))return fg;if(ui(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=ui(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=_b(t);var i=Ib.test(t);return i||Cb.test(t)?Pb(t.slice(2),i?2:8):wb.test(t)?fg:+t}function yg(t){return t}function Rb(t,e,i){switch(i.length){case 0:return t.call(e);case 1:return t.call(e,i[0]);case 2:return t.call(e,i[0],i[1]);case 3:return t.call(e,i[0],i[1],i[2])}return t.apply(e,i)}var Mb=800,Ab=16,Db=Date.now;function Ob(t){var e=0,i=0;return function(){var r=Db(),n=Ab-(r-i);if(i=r,n>0){if(++e>=Mb)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function Nb(t){return function(){return t}}var Lb=Pc?function(t,e){return Pc(t,"toString",{configurable:!0,enumerable:!1,value:Nb(e),writable:!0})}:yg,Vb=Ob(Lb);const xb=Vb;var Sg=Math.max;function Ub(t,e,i){return e=Sg(e===void 0?t.length-1:e,0),function(){for(var r=arguments,n=-1,s=Sg(r.length-e,0),o=Array(s);++n<s;)o[n]=r[e+n];n=-1;for(var c=Array(e+1);++n<e;)c[n]=r[n];return c[e]=i(o),Rb(t,this,c)}}function Fb(t,e){return xb(Ub(t,e,yg),t+"")}function Bb(t,e,i){if(!ui(i))return!1;var r=typeof e;return(r=="number"?sa(i)&&Am(e,i.length):r=="string"&&e in i)?Zs(i[e],t):!1}function Wb(t){return Fb(function(e,i){var r=-1,n=i.length,s=n>1?i[n-1]:void 0,o=n>2?i[2]:void 0;for(s=t.length>3&&typeof s=="function"?(n--,s):void 0,o&&Bb(i[0],i[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++r<n;){var c=i[r];c&&t(e,c,r,s)}return e})}var jb="[object Object]",Hb=Function.prototype,qb=Object.prototype,Eg=Hb.toString,Gb=qb.hasOwnProperty,$b=Eg.call(Object);function Jb(t){if(!Oi(t)||Kr(t)!=jb)return!1;var e=Kl(t);if(e===null)return!0;var i=Gb.call(e,"constructor")&&e.constructor;return typeof i=="function"&&i instanceof i&&Eg.call(i)==$b}var Kb="__lodash_hash_undefined__";function zb(t){return this.__data__.set(t,Kb),this}function Yb(t){return this.__data__.has(t)}function Nc(t){var e=-1,i=t==null?0:t.length;for(this.__data__=new Xr;++e<i;)this.add(t[e])}Nc.prototype.add=Nc.prototype.push=zb,Nc.prototype.has=Yb;function Qb(t,e){for(var i=-1,r=t==null?0:t.length;++i<r;)if(e(t[i],i,t))return!0;return!1}function Xb(t,e){return t.has(e)}var Zb=1,e_=2;function Tg(t,e,i,r,n,s){var o=i&Zb,c=t.length,d=e.length;if(c!=d&&!(o&&d>c))return!1;var h=s.get(t),p=s.get(e);if(h&&p)return h==e&&p==t;var g=-1,y=!0,T=i&e_?new Nc:void 0;for(s.set(t,e),s.set(e,t);++g<c;){var b=t[g],O=e[g];if(r)var R=o?r(O,b,g,e,t,s):r(b,O,g,t,e,s);if(R!==void 0){if(R)continue;y=!1;break}if(T){if(!Qb(e,function(x,G){if(!Xb(T,G)&&(b===x||n(b,x,i,r,s)))return T.push(G)})){y=!1;break}}else if(!(b===O||n(b,O,i,r,s))){y=!1;break}}return s.delete(t),s.delete(e),y}function t_(t){var e=-1,i=Array(t.size);return t.forEach(function(r,n){i[++e]=[n,r]}),i}function i_(t){var e=-1,i=Array(t.size);return t.forEach(function(r){i[++e]=r}),i}var r_=1,n_=2,s_="[object Boolean]",a_="[object Date]",o_="[object Error]",c_="[object Map]",d_="[object Number]",l_="[object RegExp]",u_="[object Set]",h_="[object String]",p_="[object Symbol]",m_="[object ArrayBuffer]",g_="[object DataView]",kg=ur?ur.prototype:void 0,ru=kg?kg.valueOf:void 0;function f_(t,e,i,r,n,s,o){switch(i){case g_:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case m_:return!(t.byteLength!=e.byteLength||!s(new Dc(t),new Dc(e)));case s_:case a_:case d_:return Zs(+t,+e);case o_:return t.name==e.name&&t.message==e.message;case l_:case h_:return t==e+"";case c_:var c=t_;case u_:var d=r&r_;if(c||(c=i_),t.size!=e.size&&!d)return!1;var h=o.get(t);if(h)return h==e;r|=n_,o.set(t,e);var p=Tg(c(t),c(e),r,n,s,o);return o.delete(t),p;case p_:if(ru)return ru.call(t)==ru.call(e)}return!1}var v_=1,y_=Object.prototype,S_=y_.hasOwnProperty;function E_(t,e,i,r,n,s){var o=i&v_,c=zl(t),d=c.length,h=zl(e),p=h.length;if(d!=p&&!o)return!1;for(var g=d;g--;){var y=c[g];if(!(o?y in e:S_.call(e,y)))return!1}var T=s.get(t),b=s.get(e);if(T&&b)return T==e&&b==t;var O=!0;s.set(t,e),s.set(e,t);for(var R=o;++g<d;){y=c[g];var x=t[y],G=e[y];if(r)var $=o?r(G,x,y,e,t,s):r(x,G,y,t,e,s);if(!($===void 0?x===G||n(x,G,i,r,s):$)){O=!1;break}R||(R=y=="constructor")}if(O&&!R){var I=t.constructor,se=e.constructor;I!=se&&"constructor"in t&&"constructor"in e&&!(typeof I=="function"&&I instanceof I&&typeof se=="function"&&se instanceof se)&&(O=!1)}return s.delete(t),s.delete(e),O}var T_=1,bg="[object Arguments]",_g="[object Array]",Lc="[object Object]",k_=Object.prototype,wg=k_.hasOwnProperty;function b_(t,e,i,r,n,s){var o=hr(t),c=hr(e),d=o?_g:Jn(t),h=c?_g:Jn(e);d=d==bg?Lc:d,h=h==bg?Lc:h;var p=d==Lc,g=h==Lc,y=d==h;if(y&&Gn(t)){if(!Gn(e))return!1;o=!0,p=!1}if(y&&!p)return s||(s=new Di),o||Mc(t)?Tg(t,e,i,r,n,s):f_(t,e,d,i,r,n,s);if(!(i&T_)){var T=p&&wg.call(t,"__wrapped__"),b=g&&wg.call(e,"__wrapped__");if(T||b){var O=T?t.value():t,R=b?e.value():e;return s||(s=new Di),n(O,R,i,r,s)}}return y?(s||(s=new Di),E_(t,e,i,r,n,s)):!1}function Ig(t,e,i,r,n){return t===e?!0:t==null||e==null||!Oi(t)&&!Oi(e)?t!==t&&e!==e:b_(t,e,i,r,Ig,n)}function __(t){return function(e,i,r){for(var n=-1,s=Object(e),o=r(e),c=o.length;c--;){var d=o[t?c:++n];if(i(s[d],d,s)===!1)break}return e}}var w_=__();const I_=w_;var C_=function(){return li.Date.now()};const nu=C_;var P_="Expected a function",R_=Math.max,M_=Math.min;function su(t,e,i){var r,n,s,o,c,d,h=0,p=!1,g=!1,y=!0;if(typeof t!="function")throw new TypeError(P_);e=vg(e)||0,ui(i)&&(p=!!i.leading,g="maxWait"in i,s=g?R_(vg(i.maxWait)||0,e):s,y="trailing"in i?!!i.trailing:y);function T(ne){var Se=r,nt=n;return r=n=void 0,h=ne,o=t.apply(nt,Se),o}function b(ne){return h=ne,c=setTimeout(x,e),p?T(ne):o}function O(ne){var Se=ne-d,nt=ne-h,ft=e-Se;return g?M_(ft,s-nt):ft}function R(ne){var Se=ne-d,nt=ne-h;return d===void 0||Se>=e||Se<0||g&&nt>=s}function x(){var ne=nu();if(R(ne))return G(ne);c=setTimeout(x,O(ne))}function G(ne){return c=void 0,y&&r?T(ne):(r=n=void 0,o)}function $(){c!==void 0&&clearTimeout(c),h=0,r=d=n=c=void 0}function I(){return c===void 0?o:G(nu())}function se(){var ne=nu(),Se=R(ne);if(r=arguments,n=this,d=ne,Se){if(c===void 0)return b(d);if(g)return clearTimeout(c),c=setTimeout(x,e),T(d)}return c===void 0&&(c=setTimeout(x,e)),o}return se.cancel=$,se.flush=I,se}function au(t,e,i){(i!==void 0&&!Zs(t[e],i)||i===void 0&&!(e in t))&&Hl(t,e,i)}function A_(t){return Oi(t)&&sa(t)}function ou(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}function D_(t){return ra(t,aa(t))}function O_(t,e,i,r,n,s,o){var c=ou(t,i),d=ou(e,i),h=o.get(d);if(h){au(t,i,h);return}var p=s?s(c,d,i+"",t,e,o):void 0,g=p===void 0;if(g){var y=hr(d),T=!y&&Gn(d),b=!y&&!T&&Mc(d);p=d,y||T||b?hr(c)?p=c:A_(c)?p=Hm(c):T?(g=!1,p=jm(d,!0)):b?(g=!1,p=ig(d,!0)):p=[]:Jb(d)||Rc(d)?(p=c,Rc(c)?p=D_(c):(!ui(c)||Wl(c))&&(p=ng(d))):g=!1}g&&(o.set(d,p),n(p,d,r,s,o),o.delete(d)),au(t,i,p)}function Cg(t,e,i,r,n){t!==e&&I_(e,function(s,o){if(n||(n=new Di),ui(s))O_(t,e,o,i,Cg,r,n);else{var c=r?r(ou(t,o),s,o+"",t,e,n):void 0;c===void 0&&(c=s),au(t,o,c)}},aa)}var N_="[object Map]",L_="[object Set]",V_=Object.prototype,x_=V_.hasOwnProperty;function U_(t){if(t==null)return!0;if(sa(t)&&(hr(t)||typeof t=="string"||typeof t.splice=="function"||Gn(t)||Mc(t)||Rc(t)))return!t.length;var e=Jn(t);if(e==N_||e==L_)return!t.size;if(Ac(t))return!xm(t).length;for(var i in t)if(x_.call(t,i))return!1;return!0}function F_(t,e){return Ig(t,e)}var B_=Wb(function(t,e,i){Cg(t,e,i)});const pr=B_;var cu=(t=>(t.PARTICIPANT="PARTICIPANT",t.PEER="PEER",t.CLIENT="CLIENT",t))(cu||{});const ie={PROPAGATE_KICK_ALL:"propagate_kick_across_rooms",REFRESH_ID_ON_DISCONNECTION:"refresh_id_on_disconnection",SIMULCAST:"simulcast",CHAT_SOCKET_SERVER:"chat_socket_server",POLL_SOCKET_SERVER:"poll_socket_server",PLUGIN_SOCKET_SERVER:"plugin_socket_server",NR_OTEL_WEB:"nr_otel_web",ICE_RESTART_ON_FAILED_STATE:"ice_restart_on_failed_state",ICE_RESTART_ON_DISCONNECTED_STATE:"ice_restart_on_disconnected_state",ENABLE_ICE_STATE_LOGGING:"enable_ice_state_logging",SUPPRESS_PEER_MUTE_UNMUTE_EMITS:"web_core_suppress_peer_mute_unmute_emits",SKIP_OTEL_TRACES:"skip_otel_traces",USE_USERIDS_IN_CHAT:"use_userids_in_chat",CUSTOM_PING_PONG:"custom_ping_pong",ENABLE_HIVE_SIMULCAST:"enable_hive_simulcast",ENABLE_HIVE_TRANSPORT_RECONNECTION_ON_ICE_FAILED:"enable_hive_transport_reconnection_on_ice_failed",ENABLE_HIVE_EXPERIMENTAL_FAIL_RECOVERY:"enable_hive_fail_recovery",ENABLE_HIVE_INFINITE_RETRIES:"enable_hive_infinite_retries",HIVE_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED:"hive_transport_force_relay_on_ice_failed",ENABLE_HIVE_CONSUME_OVER_DC:"enable_hive_consume_over_dc",ENABLE_CF_SIMULCAST:"enable_cf_simulcast",ENABLE_CF_TRANSPORT_RECONNECTION_ON_ICE_FAILED:"enable_cf_transport_reconnection_on_ice_failed",ENABLE_CF_EXPERIMENTAL_FAIL_RECOVERY:"enable_cf_fail_recovery",ENABLE_CF_INFINITE_RETRIES:"enable_cf_infinite_retries",CF_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED:"cf_transport_force_relay_on_ice_failed",BYPASS_LOG_EXCLUSION_LIST:"bypass_log_exclusion_list",LOG_LEVEL:"log_level",V1_PLUGINS:"v1_plugins",SCREENSHARE_DTX:"screenshare_dtx",SCREENSHARE_PRIORITY:"screenshare_priority",SCREENSHARE_MIN_BITRATE:"screenshare_minbitrate",SCREENSHARE_SIMULCAST:"screenshare_simulcast",DISABLE_WEBCAM_LAYERS_ON_SCREENSHARE:"disable_webcam_layers_on_screenshare",SCREENSHARE_FORCE_GOOG_CONFERENCE:"screenshare_force_goog_conference",LIVESTREAM:"feat_livestream",FETCH_RETRY:"fetch_retry",DISABLE_WEBCAM_SIMULCAST:"webcore_disable_webcam_simulcast",OVERRIDE_WEBCAM_SIMULCAST:"override_webcam_simulcast",SOCKET_POLLING:"socket_polling",FEAT_PAGINATED_CHAT:"feat_paginated_chat",VAL_MIN_FRAMERATE:"val_min_framerate",SCREEENSHARE_ERR_HACK:"screenshare_err_hack",SCREEENSHARE_CONSTRAINTS_RETRY:"screenshare_constraints_retry",TROUBLESHOOTING:"feat_troubleshooting",VIDEO_CONSTRAINTS:"video_constraints",SCREENSHARE_CONSTRAINTS:"screenshare_constraints",FEAT_CHAT_SDK:"feat_chat_sdk",FEAT_CHAT_SDK_SEARCH:"chat_search",OBS_QUALITY:"obs_quality",ALLOW_SAFARI_MEDIA_MIDDLEWARES:"allow_safari_media_middlewares",DYNAMIC_VIDEO_QUALITY:"dynamic_video_quality",EXP_RESHARE:"exp_reshare",LEAVE_STAGE_ON_END:"leave_stage_on_end",SKIP_SETTING_IN_USE_DEVICE:"skip_setting_in_use_device",PRECALL_BANDWIDTH_TEST:"precall_bandwidth_test",CONSUMER_BIND_NO_RETRY:"consumer_bind_no_retry",DEBUG_SOCKET_JOIN:"debug_socket_join",FORCE_RELAY:"force_relay",FORCE_VIDEO_CODEC:"force_video_codec",USE_EXPERIMENTAL_SFU_HANDLER:"use_experimental_sfu_handler",TRACK_HINT:"track_hint",OVERRIDE_HIVE_SIMULCAST_DYNAMIC:"override_hive_simulcast_dynamic",PRECREATE_PRODUCERS:"precreate_producers",DISABLE_OPUS_DTX_CF:"disable_opus_dtx_cf",ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS:"enable_audio_activity_debug_logs"};function Vc(t){const e={};return typeof(t==null?void 0:t.code)=="number"&&(e.code=t.code),typeof(t==null?void 0:t.code)=="string"&&(e.code=t.code.substring(0,100)),typeof(t==null?void 0:t.name)=="string"&&(e.name=t.name.substring(0,500)),typeof(t==null?void 0:t.message)=="string"&&(e.message=t.message.substring(0,500)),typeof(t==null?void 0:t.reason)=="string"&&(e.reason=t.reason.substring(0,500)),typeof(t==null?void 0:t.stack)=="string"&&(e.stack=t.stack.substring(0,500)),e}function W_(t){var e,i,r,n;const s=typeof navigator!="undefined"&&!navigator.isReactNative&&typeof window!="undefined"&&((e=window.location.host)==null?void 0:e.includes("devel"))&&((i=window.location.host)==null?void 0:i.includes("dyte.io")),o=!!((n=(r=t==null?void 0:t.getValue("modules"))==null?void 0:r.devTools)!=null&&n.logs);return s||o}function j_(t){var e;if(z.hasFeature(ie.LOG_LEVEL)){let i=((e=z.getValue(ie.LOG_LEVEL))==null?void 0:e.toString())||"all";if(i=i.toLowerCase().trim(),i==="off")return!1;if(i!=="all"){const r=["debug","log","info","warn","error"],n=r.indexOf(t),s=r.indexOf(i);if(n<s)return!1}}return!0}function Pg(t,e,i={}){return Object.getOwnPropertyNames(t).forEach(r=>{var n;if([null,void 0,NaN].includes(t[r])||e&&(((n=e.match(/\./g))==null?void 0:n.length)||0)>=10)return;const s=e?`${e}.${r}`:r;typeof t[r]=="object"?Pg(t[r],s,i):["number","string","boolean"].includes(typeof t[r])&&(i[s]=t[r])}),i}function Rg(t,e,i={},r=""){const n={};try{const s=JSON.stringify(i),o=JSON.parse(s),c=Pg(o,r),d=JSON.stringify(c);return JSON.parse(d)}catch(s){const o=Vc(s);n[`${r}.error.message`]=o.message||"",n[`${r}.error.stack`]=o.stack||"",n[`${r}.error.reason`]=o.reason||"",n[`${r}.error.source`]="safelyFlattenObjForOpenTelemetry"}return n}const oa="chrome",Mg="opera",Ag="firefox",Dg="iexplorer",Og="safari",Ng="nwjs",Lg="electron",Vg="react-native",du="unknown",xc={Chrome:oa,Chromium:oa,Opera:Mg,Firefox:Ag,"Internet Explorer":Dg,Safari:Og};function H_(){const{userAgent:t}=navigator,e={name:du,version:void 0};if(t.match(/Chrome/)&&!t.match(/Edge/))if(t.match(/Edg(A?)/)){const i=t.match(/Chrome\/([\d.]+)/)[1];Number.parseInt(i,10)>72&&(e.name=oa,e.version=i)}else e.name=oa,e.version=t.match(/Chrome\/([\d.]+)/)[1];return e}function q_(){const{userAgent:t}=navigator;if(t.match(/Electron/)){const e=t.match(/Electron\/([\d.]+)/)[1];return{name:Lg,version:e}}return null}function G_(){const{userAgent:t}=navigator;if(t.match(/JitsiMeetNW/)){const e=t.match(/JitsiMeetNW\/([\d.]+)/)[1];return{name:Ng,version:e}}}function $_(){const t=navigator.userAgent.match(/\b(react[ \t_-]*native)(?:\/(\S+))?/i);let e;if(t||navigator.product==="ReactNative")return t&&t.length>2&&(t[1],e=t[2]),e||(e="unknown"),{name:Vg,version:e}}function J_(t){let e;const i=[$_,q_,G_];for(let n=0;n<i.length;n+=1)if(e=i[n](),e)return e;const r=t.getBrowserName();return r in xc?{name:xc[r],version:t.getBrowserVersion()}:(e=H_(),e||{name:du,version:void 0})}class K_{constructor(){m(this,"_bowser"),m(this,"_name"),m(this,"_version"),m(this,"getDeviceInfo",()=>({isMobile:this.isMobile(),browserName:this._bowser.getBrowserName(),osName:this._bowser.getOSName(),browserVersion:this._bowser.getBrowserVersion(),osVersionName:this._bowser.getOSVersion(),engineName:this._bowser.getEngineName()}))}init(e){let i,r;if(this._bowser=kp.getParser(navigator.userAgent),typeof e=="undefined"){const n=J_(this._bowser);i=n.name,r=n.version}else e.name in xc?(i=xc[e.name],r=e.version):(i=du,r=void 0);this._name=i,this._version=r}getName(){return this._name}isChrome(){return this._name===oa}isOpera(){return this._name===Mg}isFirefox(){return this._name===Ag}isIExplorer(){return this._name===Dg}isSafari(){return this._name===Og}isNWJS(){return this._name===Ng}isElectron(){return this._name===Lg}isReactNative(){return this._name===Vg||navigator.isReactNative===!0}getVersion(){return this._version}isMobile(){return this._bowser.getPlatformType()==="mobile"}_checkCondition(e){if(this._version)return this._bowser.satisfies(e)}isVersionGreaterThan(e){return this._checkCondition({[this._name]:`>${e}`})}isVersionLessThan(e){return this._checkCondition({[this._name]:`<${e}`})}isVersionEqualTo(e){return this._checkCondition({[this._name]:`~${e}`})}}class z_ extends K_{doesVideoMuteByStreamRemove(){return this.isChromiumBased()||this.isWebKitBased()}supportsP2P(){return!this.usesUnifiedPlan()}isChromiumBased(){return this.isChrome()||this.isElectron()||this.isNWJS()||this.isOpera()}isWebKitBased(){return this._bowser.isEngine("webkit")&&typeof navigator.mediaDevices!="undefined"&&typeof navigator.mediaDevices.getUserMedia!="undefined"&&typeof window.RTCRtpTransceiver!="undefined"&&Object.keys(RTCRtpTransceiver.prototype).indexOf("currentDirection")>-1}isSupported(){return typeof RTCPeerConnection!="undefined"}isUserInteractionRequiredForUnmute(){return this.isFirefox()&&this.isVersionLessThan("68")}supportsVideoMuteOnConnInterrupted(){return this.isChromiumBased()||this.isReactNative()||this.isWebKitBased()}supportsBandwidthStatistics(){return!this.isFirefox()&&!this.isWebKitBased()}supportsCodecPreferences(){return this.usesUnifiedPlan()&&typeof window.RTCRtpTransceiver!="undefined"&&Object.keys(window.RTCRtpTransceiver.prototype).indexOf("setCodecPreferences")>-1&&Object.keys(RTCRtpSender.prototype).indexOf("getCapabilities")>-1&&!this.isWebKitBased()}supportsDeviceChangeEvent(){return navigator.mediaDevices&&typeof navigator.mediaDevices.ondevicechange!="undefined"&&typeof navigator.mediaDevices.addEventListener!="undefined"}supportsLocalCandidateRttStatistics(){return this.isChromiumBased()||this.isReactNative()||this.isWebKitBased()}supportsPerformanceObserver(){return typeof window.PerformanceObserver!="undefined"&&PerformanceObserver.supportedEntryTypes.indexOf("longtask")>-1}supportsReceiverStats(){return typeof window.RTCRtpReceiver!="undefined"&&Object.keys(RTCRtpReceiver.prototype).indexOf("getSynchronizationSources")>-1}supportsRTTStatistics(){return!this.isFirefox()}usesPlanB(){return!this.usesUnifiedPlan()}usesSdpMungingForSimulcast(){return this.isChromiumBased()||this.isReactNative()||this.isWebKitBased()}usesUnifiedPlan(){return!!(this.isFirefox()||this.isWebKitBased())}usesNewGumFlow(){return!!(this.isChromiumBased()||this.isFirefox()||this.isWebKitBased())}usesAdapter(){return this.usesNewGumFlow()}usesRidsForSimulcast(){return!1}supportsGetDisplayMedia(){return typeof navigator.getDisplayMedia!="undefined"||typeof navigator.mediaDevices!="undefined"&&typeof navigator.mediaDevices.getDisplayMedia!="undefined"}supportsInsertableStreams(){if(!(typeof window.RTCRtpSender!="undefined"&&(window.RTCRtpSender.prototype.createEncodedStreams||window.RTCRtpSender.prototype.createEncodedVideoStreams)))return!1;const e=new ReadableStream;try{return window.postMessage(e,"*",[e]),!0}catch(i){return!1}}supportsAudioRed(){return Boolean(window.RTCRtpSender&&window.RTCRtpSender.getCapabilities&&window.RTCRtpSender.getCapabilities("audio").codecs.some(e=>e.mimeType==="audio/red")&&window.RTCRtpReceiver&&window.RTCRtpReceiver.getCapabilities&&window.RTCRtpReceiver.getCapabilities("audio").codecs.some(e=>e.mimeType==="audio/red"))}supportsSdpSemantics(){return this.isChromiumBased()}_getChromiumBasedVersion(){if(this.isChromiumBased()){if(this.isNWJS())return Number.parseInt(process.versions.chromium,10);const e=navigator.userAgent;if(e.match(/Chrome/))return Number.parseInt(e.match(/Chrome\/([\d.]+)/)[1],10)}return-1}isIOSMobile(){return this.isMobile&&this._bowser.getOSName()==="iOS"}}const Ie=new z_,Y_={audio:!0,video:!0,screenshareAudio:!0,screenshareVideo:!0},ca={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"},Q_={pip:!0,poll:!0,chat:!0,stage:!0,theme:!0,plugin:!0,tracing:!0,internals:!0,recording:!0,livestream:!0,participant:!0,devTools:{logs:!1}};function Kn(t,e){const i=t.getValue("overrides");return i&&i[e]?i[e]:!1}function X_({baseURI:t}){return t!=null&&t.includes("preprod.dyte")?Xs.PREPROD:t!=null&&t.includes("devel.dyte")?Xs.DEVEL:Xs.PROD}function zn({servicePrefix:t,baseURI:e}){return`${t}.${e}`}function xg(t){const e=t.getValue("baseURI");return{location:zn({servicePrefix:"location",baseURI:e}),locationLegacy:zn({servicePrefix:"location-legacy",baseURI:e}),daCollector:zn({servicePrefix:"da-collector",baseURI:e})}}const Z_='<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>',ew='<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>',Uc=t=>{if(!t)return;if(!t.startsWith("<svg"))return new Promise(n=>{n(t)});const e=new Blob([t],{type:"image/svg+xml"}),i=new Image,r=window.URL.createObjectURL(e);return new Promise((n,s)=>{i.onload=()=>{n(i),window.URL.revokeObjectURL(r)},i.onerror=()=>{s(),window.URL.revokeObjectURL(r)},i.src=r})};var mr,gr;const Ug=class extends lt.EventEmitter{constructor(){super(),f(this,mr,void 0),f(this,gr,void 0),m(this,"asyncPromiseTimeout"),v(this,mr,new Map),v(this,gr,new Map),this.asyncPromiseTimeout=8e3}emitAsync(t,...e){return u(this,null,function*(){a(this,mr).set(t,[]);const i=a(this,gr).get(t).map(()=>new Promise(r=>{a(this,mr).get(t).push(r)}));NS(Ug.prototype,this,"emit").call(this,t,...e),yield Promise.race([Promise.all(i),new Promise((r,n)=>setTimeout(()=>n(new Error(`emitAsync failed to resolve for event ${t}.`)),this.asyncPromiseTimeout))]),a(this,mr).delete(t)})}onAsync(t,e){const i=a(this,mr),r=(...n)=>u(this,null,function*(){var s;try{yield e(...n)}catch(c){l.error("[onAsync]",{error:c})}const o=(s=i.get(t))==null?void 0:s.shift();o==null||o()});return a(this,gr).get(t)||a(this,gr).set(t,[]),a(this,gr).get(t).push(r),super.on(t,r)}reset(){v(this,mr,new Map),v(this,gr,new Map),super.removeAllListeners()}};let tw=Ug;mr=new WeakMap,gr=new WeakMap;function iw(t){const e=L({},t),i=new Map,r=(o,c)=>(i.has(o)||i.set(o,new Set),i.get(o).add(c),()=>{var d;return(d=i.get(o))==null?void 0:d.delete(c)}),n=(o,c)=>{var d;(d=i.get(o))==null||d.delete(c)},s=o=>{var c;(c=i.get(o))==null||c.forEach(d=>{try{d(e[o])}catch(h){l.error(`Error in notifying for "${o.toString()}"`,h)}})};return{subscribe:r,unsubscribe:n,notify:s,setValue:(o,c,d=!0)=>{e[o]=c,d&&s(o)},getValue:o=>e[o],getAllValues:()=>e}}class rw{constructor(){m(this,"contexts",new Map),m(this,"mostRecentPeerId",null)}createContext(e,i){return this.contexts.has(e)?this.contexts.get(e):(this.contexts.set(e,iw(i)),this.contexts.get(e).setValue("peerSessionStore",new tw),this.mostRecentPeerId=e,this.contexts.get(e))}remapContext(e,i){const r=i.getValue("peerId");r!==e&&(i.setValue("peerId",e),this.mostRecentPeerId=e,this.contexts.set(e,i),this.contexts.delete(r))}getContext(e){return this.contexts.get(e)}getMostRecentPeerId(){return this.mostRecentPeerId}}const en=new rw,oe=class{static get logsEndpoint(){const t=en.getContext(oe.meetingMetadata.peerId);return`https://${zn({servicePrefix:"api-silos",baseURI:t.getValue("baseURI")})}/otel/logs`}static resetPeerId(t){oe.meetingMetadata.peerId=t}static init(t,e){const i=t.getValue("peerId");oe.tracingEnabled=e,oe.meetingMetadata.peerId=i,oe.meetingMetadata.sdkVersion=t.getValue("sdkVersion"),oe.meetingMetadata.deviceInfo=Ie.getDeviceInfo(),oe.meetingMetadata.visitedUrl=!navigator.isReactNative&&typeof window!="undefined"&&window.location.href,navigator.isReactNative||document.addEventListener("visibilitychange",oe.processCachedLogs),oe.logsProcessorTimer=setInterval(oe.processCachedLogs,oe.logsProcessingInterval),e&&(oe.initialized=!0)}static trace(t,e=void 0){return(i,r,n)=>{const s=n.value;return n.value=function(...o){if(!oe.initialized||navigator.isReactNative||!oe.tracingEnabled||z.hasFeature(ie.SKIP_OTEL_TRACES))return s.apply(this,o);oe.addLogInCurrentSpan("info",t,e);const c=performance.now(),d=s.apply(this,o);return Promise.resolve(d).then(()=>{const h=performance.now();h-c>10&&oe.addLogInCurrentSpan("info",`${t}_timing`,{execTime:h-c,country:oe.location.country})}).catch(()=>{const h=performance.now();oe.addLogInCurrentSpan("info",`${t}_timing`,{execTime:h-c})}),d},n}}static injectContext(t){var e;const i=jn().replace(/-/g,"").substring(0,16),r=(e=oe.meetingMetadata.peerId)==null?void 0:e.replace(/-/g,"");t.TRACEPARENT=`00-${r}-${i}-01`}static addLogInCurrentSpan(t,e,i={},r=!1){i!=null&&i.error&&Object.assign(i,{error:Vc(i.error)});const n=en.getContext(oe.meetingMetadata.peerId);if(W_(n)&&(U_(i)?console[t]("DyteInternalLogs:: ",t,e):console[t]("DyteInternalLogs:: ",t,e,i)),!!j_(t))try{const s=Rg(n,e,i,"metadata"),o=new Date,c=j(L({message:e,level:t},s),{loggedAt:o.toISOString(),loggedAtTzOffset:o.getTimezoneOffset()});r?oe.sendOtelLogsToNewRelic([c]):oe.logsCache.push(c)}catch(s){oe.addLogInCurrentSpan("error","opentelemetry::addLogInCurrentSpan_failed",{error:Vc(s)})}}static sendOtelLogsToNewRelic(t){const e=en.getContext(oe.meetingMetadata.peerId);fetch(oe.logsEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({meetingMetadata:Rg(e,"sendOtelLogsToNewRelic",oe.meetingMetadata,"meetingMetadata"),serviceName:e.getValue("sdkName"),logs:t})}).catch(i=>{oe.addLogInCurrentSpan("error","opentelemetry::sendOtelLogToNewRelic_failed",{error:Vc(i)}),oe.logsCache.push(...t)})}static processCachedLogs(){const t=oe.logsCache.splice(0,25);t!=null&&t.length&&oe.sendOtelLogsToNewRelic(t)}static destruct(){clearInterval(oe.logsProcessorTimer),oe.processCachedLogs(),navigator.isReactNative||document.removeEventListener("visibilitychange",oe.processCachedLogs)}};let S=oe;m(S,"logsCache",[]),m(S,"logsProcessorTimer"),m(S,"location",{country:void 0}),m(S,"tracingEnabled",!0),m(S,"initialized",!1),m(S,"logsProcessingInterval",7e3),m(S,"logExclusionList",["message","websocket/message","roomMessage","websocket/room-message","websocket/room-legacy-mode","chatMessage","websocket/new-chat-message","websocket/no-active-speaker","websocket/selected-peers","websocket/active-speaker","ping","websocket/new-consumer","websocket/producer-score","websocket/consumer-score","websocket/plugin-event","websocket/plugin-data","websocket/plugin-internal-data"]),m(S,"meetingMetadata",{});class l{static info(e,i,r){S.addLogInCurrentSpan("info",e,i,r)}static error(e,i,r){S.addLogInCurrentSpan("error",e,i,r)}static debug(e,i,r){S.addLogInCurrentSpan("debug",e,i,r)}static log(e,i,r){S.addLogInCurrentSpan("log",e,i,r)}static warn(e,i,r){S.addLogInCurrentSpan("warn",e,i,r)}}const nw=()=>{!navigator.isReactNative&&typeof window!="undefined"&&(window.addEventListener("error",t=>{var e;!((e=t.filename)!=null&&e.includes("localhost"))&&t.lineno!==0&&l.error("window::error",{error:t.error},!0)}),window.addEventListener("unhandledrejection",t=>{var e,i,r,n,s,o,c,d;l.error("window::unhandledrejection",{error:t==null?void 0:t.reason,networkCall:{url:(i=(e=t==null?void 0:t.reason)==null?void 0:e.config)==null?void 0:i.url,baseURL:(n=(r=t==null?void 0:t.reason)==null?void 0:r.config)==null?void 0:n.baseURL,method:(o=(s=t==null?void 0:t.reason)==null?void 0:s.config)==null?void 0:o.method,status:(c=t==null?void 0:t.reason)==null?void 0:c.status,statusText:(d=t==null?void 0:t.reason)==null?void 0:d.statusText}},!0)}),window.addEventListener("offline",()=>{l.info("window::offline")}),window.addEventListener("online",()=>{l.info("window::online")}))},sw={"00":"DyteClient","01":"Controller","02":"RoomNodeClient","03":"HiveNodeClient","04":"SocketService","05":"Chat","06":"Plugin","07":"Polls","08":"Meta","09":"Preset",10:"Recording",11:"Self",12:"Participant",13:"Spotlight",14:"Remote Request",15:"Webinar",16:"LocalMediaHandler",17:"End-End Encryption",18:"AI",19:"Livestream",20:"Stage"},Fc={"0000":"Internal exception.","0001":"Failed to initialize.","0002":"Failed to join room.","0003":"Failed to leave room.","0004":"Invalid auth token","0010":"Browser not supported","0011":"HTTP Network Error","0012":"Websocket Network Error","0013":"Rate Limited","0100":"Internal exception","0101":"Permission denied","0102":"Prerequisite module missing","0200":"Internal exception.","0300":"Internal exception","0400":"Internal exception","0404":"Missing prerequisites to establish a websocket connection","0500":"Internal exception","0501":"Permission denied.","0502":"Invalid message body.","0503":"Text Message is too large","0504":"Message not found by the given id","0505":"Action not permitted without joining room","0506":"Message search is disabled","0510":"Invalid channel name.","0600":"Internal exception","0601":"Permission denied.","0602":"Auth token not set for plugin","0603":"Iframe was not provided","0700":"Internal exception","0705":"Action not permitted without joining room","0800":"Internal exception","0801":"Permission denied","0900":"Internal exception","0904":"Could not load preset",1e3:"Internal exception",1001:"Permission denied",1004:"Could not find specified recording",1005:"Action not permitted in given recording state",1100:"Internal exception",1101:"Permission denied",1102:"Unsupported",1103:"Name cannot be empty",1104:"No device selected while calling meeting.self.setDevice",1105:"Action not permitted without joining room",1106:"Can't set currently used device",1200:"Internal exception",1201:"Permission denied",1202:"Invalid page number was requested",1203:"Invalid participant count per page was requested",1204:"No participants exists with the given UserIds",1205:"Action not permitted without joining room",1206:"Manual Subscription Mode was not ACTIVATED",1207:"Invalid view mode",1208:"Manual Subscription not enabled for organization",1209:"Broadcast message type must be a non-empty string",1300:"Internal exception",1400:"Internal exception",1402:"No existing remote requests",1403:"No peer exists with given id",1500:"Internal exception",1600:"Internal exception",1601:"Failed to get audio track",1602:"Failed to get video track",1603:"Incorrect device",1604:"Failed to change device",1605:"Failed to get audio & video track",1606:"No audio input devices are available",1607:"No video input devices are available",1608:"No audio output devices (speakers) are available",1609:"Failed to fetch list of media devices",1610:"No media track exists",1611:"Failed to unmute track",1612:"Failed to get screenshare tracks",1701:"Crypto error",1800:"Internal exception",1801:"Can't fetch transcript file",1900:"Internal exception",1901:"Permission denied.",1902:"Livestream that has not yet started, can't be stopped",2e3:"Internal exception",2001:"Permission denied",2002:"Unsupported",2003:"Stage is disabled",2004:"Method not implemented",2005:"Action not permitted without joining room",2006:"Action not permitted in current stage status",9900:"Internal exception"};Object.keys(Fc).forEach(t=>{Fc[t]=`{${sw[t.slice(0,2)]}} ${Fc[t]}`});class w extends Error{constructor(e,i,r=!1){super(e),m(this,"code"),this.code=i,this.name="DyteError",this.message=`[ERR${this.code}]: ${Fc[this.code]}
13
+ ${this.message}`;try{let n=r;i&&i.endsWith("00")&&(n=!0),n&&l.error("DyteError",{error:{message:this.message,name:this.name,code:i}});const s=en.getContext(en.getMostRecentPeerId());if(s){const o=s.getValue("onError");try{o(this)}catch(c){}}typeof window!="undefined"&&window.dispatchEvent(new CustomEvent("dyteError",{detail:this}))}catch(n){}}}function Bc(t,e,i,r){if(r instanceof w)throw r;if(r instanceof e){const n=new w(r.message,i);throw n.stack=r.stack,n}else throw r}function Fg(t,e,i){if(!t.value){const n=t.get,s=t.set;return n&&(t.get=function(){try{return n.apply(this)}catch(o){Bc(this,e,i,o)}}),s&&(t.set=function(o){try{return s.apply(this,[o])}catch(c){Bc(this,e,i,c)}}),t}const r=t.value;return t.value=function(...n){try{const s=r.apply(this,n);return s&&s instanceof Promise?s.catch(o=>{Bc(this,e,i,o)}):s}catch(s){Bc(this,e,i,s)}},t}function aw(t,e){return(i,r,n)=>{if(n)return Fg(n,t,e);for(const s of Reflect.ownKeys(i.prototype).filter(o=>o!=="constructor")){const o=Object.getOwnPropertyDescriptor(i.prototype,s);(o.value instanceof Function||o.get instanceof Function||o.set instanceof Function)&&Object.defineProperty(i.prototype,s,Fg(o,t,e))}}}const ut=t=>aw(Error,t);function ow(t){let e=0,i,r;if(!t)return e;for(i=0;i<t.length;i+=1)r=t.charCodeAt(i),e=(e<<5)-e+r,e|=0;return Math.abs(e)%100+1}function cw(){Ie.isElectron()&&window.dyteElectronGetDisplayMediaSource&&(navigator.mediaDevices.getDisplayMedia=()=>u(this,null,function*(){const t=yield window.dyteElectronGetDisplayMediaSource({types:["window","screen"]});let e=[];if(t&&(Array.isArray(t)?e=t:e=[t]),!(e!=null&&e.length))throw new Error("Couldn't find any media source for screen share.");let i=e.find(n=>{var s;return(s=n.id)==null?void 0:s.includes("screen")});i=i!=null?i:e[0];const r={audio:!1,video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:i.id}}};return yield navigator.mediaDevices.getUserMedia(r)}))}var P=(t=>(t.NEW_PRODUCER="NEW_PRODUCER",t.PRODUCER_TRACK_ENDED="PRODUCER_TRACK_ENDED",t.ROOM_NODE_CONNECTION_ERROR="ROOM_NODE_CONNECTION_ERROR",t.SOCKET_SERVICE_ROOM_JOINED="SOCKET_SERVICE_ROOM_JOINED",t.SOCKET_SERVICE_RECONNECTED="SOCKET_SERVICE_RECONNECTED",t.SOCKET_SERVICE_DISCONNECTED="SOCKET_SERVICE_DISCONNECTED",t.SOCKET_SERVICE_FAILED="SOCKET_SERVICE_FAILED",t.SOCKET_STATE_UPDATE="SOCKET_STATE_UPDATE",t.ROOM_NODE_RECONNECTED="ROOM_NODE_RECONNECTED",t.ROOM_NODE_DISCONNECTED="ROOM_NODE_DISCONNECTED",t.ROOM_NODE_FAILED="ROOM_NODE_FAILED",t.TRANSPORT_STATE_UPDATE="TRANSPORT_STATE_UPDATE",t.PRODUCER_SCORE_UPDATE="PRODUCER_SCORE_UPDATE",t.CONSUMER_SCORE_UPDATE="CONSUMER_SCORE_UPDATE",t.PRODUCER_STATUS_UPDATE="PRODUCER_STATUS_UPDATE",t.CONSUMER_STATUS_UPDATE="CONSUMER_STATUS_UPDATE",t.LOW_PRODUCER_SCORE="LOW_PRODUCER_SCORE",t.LOW_CONSUMER_SCORE="LOW_CONSUMER_SCORE",t.MEDIA_PERMISSION_ERROR="MEDIA_PERMISSION_ERROR",t.MEDIA_PERMISSION_UPDATE="MEDIA_PERMISSION_UPDATE",t.WAITLISTED="WAIT_LISTED",t.MESSAGE="websocket/message",t.ROOM_MESSAGE="websocket/room-message",t.PEER_JOINED_INTERNAL="peer/joined-internal",t.PEER_CLOSED="websocket/peer-closed",t.CONSUMER_CLOSED="websocket/consumer-closed",t.CONSUMER_PAUSED="websocket/consumer-paused",t.CONSUMER_RESUMED="websocket/consumer-resumed",t.PRODUCER_CLOSED="websocket/producer-closed",t.NEW_CONSUMER="websocket/new-consumer",t.PRODUCER_SCORE="websocket/producer-score",t.CONSUMER_SCORE="websocket/consumer-score",t.PRODUCER_TOGGLE="hive/producer-toggle",t.CONSUMER_TOGGLE="hive/consumer-toggle",t.SELECTED_PEERS_DIFF="hive/selected-peers-diff",t.UPDATE_ACTIVE="media/update-active",t.RESET_PRODUCER_STATE="hive/reset-producer-state",t.CF_TRANSPORT_STATE_CHANGED="cf/transport-state-changed",t.CF_ROOM_REJOINING="cf/room-rejoining",t.CF_ROOM_REJOIN_FAILED="cf/room-rejoining-failed",t.CF_ROOM_REJOINED="cf/room-rejoined",t.CF_TRANPSORT_RECONNECTING="cf/transport-reconnecting",t.ROOM_STATE="sockethub/room-state",t.PEER_DISPLAY_NAME_CHANGED="hive/display-name-changed",t.GET_STAGE_REQUESTS="GET_STAGE_REQUESTS",t.UPDATE_STAGE_REQUESTS="UPDATE_STAGE_REQUESTS",t.KICK_PEER="KICK_PEER",t.UPDATE_PEER_STAGE_STATUS="UPDATE_PEER_STAGE_STATUS",t.JOIN_MEDIA_ROOM="JOIN_MEDIA_ROOM",t.LEAVE_MEDIA_ROOM="LEAVE_MEDIA_ROOM",t.PIP_HANGUP="PIP_HANGUP",t.E2EE_ACTIVE_PRODUCER="E2EE_ACTIVE_PRODUCER",t.E2EE_INACTIVE_PRODUCER="E2EE_INACTIVE_PRODUCER",t.E2EE_ACTIVE_CONSUMER="E2EE_ACTIVE_CONSUMER",t.E2EE_INACTIVE_CONSUMER="E2EE_INACTIVE_CONSUMER",t.SOCKET_PEERS="SOCKET_PEERS",t.UPDATE_PERMISSIONS="UPDATE_PERMISSIONS",t.MAX_SPATIAL_LAYER_CHANGE="MAX_SPATIAL_LAYER_CHANGE",t.MUTE_SELF="MUTE_SELF",t.MUTE_SELF_VIDEO="MUTE_SELF_VIDEO",t))(P||{});class Yn extends lt.EventEmitter{constructor(){super(),super.setMaxListeners(25)}emit(e,...i){return super.emit("*",e,...i),super.emit(e,...i)}on(e,i){try{const r=this.listenerCount(e);r>25&&r%25===0&&l.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}})}catch(r){}return super.on(e,i)}addListener(e,i){try{const r=this.listenerCount(e);r>25&&r%25===0&&l.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}})}catch(r){}return super.addListener(e,i)}off(e,i){return super.off(e,i)}once(e,i){return super.once(e,i)}prependListener(e,i){return super.prependListener(e,i)}prependOnceListener(e,i){return super.prependOnceListener(e,i)}removeListener(e,i){return super.removeListener(e,i)}removeAllListeners(e){return super.removeAllListeners(e)}listeners(e){return super.listeners(e)}listenerCount(e){return super.listenerCount(e)}}class Wt extends lt.EventEmitter{constructor(){super(),super.setMaxListeners(25)}emit(e,...i){return super.emit("*",e,...i),super.emit(e,...i)}on(e,i){try{const r=this.listenerCount(e);r>25&&r%25===0&&l.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}})}catch(r){}return super.on(e,i)}addListener(e,i){try{const r=this.listenerCount(e);r>25&&r%25===0&&l.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}})}catch(r){}return super.addListener(e,i)}off(e,i){return super.off(e,i)}once(e,i){return super.once(e,i)}prependListener(e,i){return super.prependListener(e,i)}prependOnceListener(e,i){return super.prependOnceListener(e,i)}removeListener(e,i){return super.removeListener(e,i)}removeAllListeners(e){return super.removeAllListeners(e)}listeners(e){return super.listeners(e)}listenerCount(e){return super.listenerCount(e)}}function dw(t,e=2){return t.replace(/[^\u00BF-\u1FFF\u2C00-\uD7FF\w\s]/g,"").trim().split(/\s+/).slice(0,e).map(i=>i.charAt(0)).join("").toUpperCase()}const Bg=1080,Wg=1920,lw=(t,e,i,r,n,s)=>{let o=.5,c=.5;const d=n,h=s,p=Math.min(i/d,r/h);let g=d*p,y=h*p,T,b,O,R,x=1;return g<i&&(x=i/g),Math.abs(x-1)<1e-14&&y<r&&(x=r/y),g*=x,y*=x,O=d/(g/i),R=h/(y/r),T=(d-O)*o,b=(h-R)*c,T<0&&(T=0),b<0&&(b=0),O>d&&(O=d),R>h&&(R=h),[T,b,O,R,t,e,i,r]};var hi,Qn,yt,pi,je,Ni,fr,Mt,$e,da,la,vr,ua;const jg=class extends Wt{constructor(t,e,i,r){super(),f(this,hi,void 0),f(this,Qn,void 0),f(this,yt,void 0),f(this,pi,void 0),f(this,je,{height:Bg,width:Wg}),f(this,Ni,{brand:"#2160FD",background:"#141414",text:"#000000",videoBackground:"#191919",textOnBrand:"#EEEEEE"}),f(this,fr,void 0),f(this,Mt,{}),f(this,$e,void 0),f(this,da,void 0),f(this,la,void 0),f(this,vr,void 0),f(this,ua,!1),m(this,"cleanupEventListeners",()=>{a(this,Qn).unsubscribe("stageStatus",this.handlePipMediaControls),a(this,$e).removeListener("videoUpdate",this.onSelfVideoUpdateListener),a(this,$e).removeListener("audioUpdate",this.onSelfAudioUpdateListener),a(this,$e).removeListener("roomLeft",()=>this.disable())}),m(this,"enablePipMediaControls",()=>{this.mountAudioEvents(),this.mountVideoEvents()}),m(this,"onSelfVideoUpdateListener",({videoEnabled:n})=>{this.updateMediaSession("CAMERA",n)}),m(this,"onSelfAudioUpdateListener",({audioEnabled:n})=>{this.updateMediaSession("MIC",n)}),m(this,"handlePipMediaControls",n=>{n==="ON_STAGE"?this.enablePipMediaControls():this.unmountEvents()}),m(this,"eventCallback",n=>{n==="CAMERA"&&(a(this,$e).videoEnabled?a(this,$e).disableVideo():a(this,$e).enableVideo(),this.emit("cameraToggled")),n==="MIC"&&(a(this,$e).audioEnabled?a(this,$e).disableAudio():a(this,$e).enableAudio(),this.emit("micToggled")),n==="END"&&(a(this,Qn).getValue("peerSessionStore").emit(P.PIP_HANGUP),this.cleanupEventListeners(),this.emit("hangup"),this.cleanup())}),m(this,"unmountEvents",()=>{navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||(navigator.mediaSession.setActionHandler("togglemicrophone",void 0),navigator.mediaSession.setActionHandler("togglecamera",void 0))}),m(this,"animate",()=>{if(!this.isActive&&a(this,vr)==="active"){this.disable(!0);return}a(this,Mt)!==void 0&&this.paintCanvas(),a(this,fr)!==void 0&&v(this,fr,requestAnimationFrame(()=>this.animate()))}),m(this,"disable",(n=!1)=>{v(this,vr,"idle"),this.cleanupEventListeners(),cancelAnimationFrame(a(this,fr)),n!==!0&&document.body.removeChild(a(this,yt)),v(this,fr,void 0),document.pictureInPictureElement&&document.exitPictureInPicture()}),v(this,Qn,t),v(this,vr,"idle"),v(this,$e,e),v(this,Ni,{brand:e.config.designTokens.colors.brand[500],background:e.config.designTokens.colors.background[1e3],text:e.config.designTokens.colors.text,videoBackground:e.config.designTokens.colors.videoBg,textOnBrand:e.config.designTokens.colors.textOnBrand}),i&&this.setupIcon("pin",i),r&&this.setupIcon("handRaise",r)}static _init(t,e){return u(this,null,function*(){let i,r;try{i=yield Uc(Z_),r=yield Uc(ew)}catch(n){}return new jg(t,e,i,r)})}setupIcon(t,e){return u(this,null,function*(){switch(t){case"handRaise":v(this,la,e);break;case"pin":v(this,da,e);break}})}overrideIcon(t,e){return u(this,null,function*(){switch(t){case"handRaise":v(this,la,yield Uc(e));break;case"pin":v(this,da,yield Uc(e));break}})}constructImage(t){const e=new Image,i=new Blob([t],{type:"image/svg+xml"}),r=window.URL.createObjectURL(i);return new Promise(n=>{e.onload=()=>{n(e),window.URL.revokeObjectURL(r)},e.src=r})}createVideoContainer(){v(this,yt,document.createElement("div")),a(this,yt).style.width="0.1px",a(this,yt).style.height="0.1px",a(this,yt).style.overflow="hidden",a(this,yt).style.position="absolute",a(this,yt).style.bottom="0",a(this,yt).style.right="0",a(this,yt).style.opacity="0",a(this,yt).appendChild(a(this,pi))}setupEventListeners(){a(this,Qn).subscribe("stageStatus",this.handlePipMediaControls),a(this,$e).addListener("videoUpdate",this.onSelfVideoUpdateListener),a(this,$e).addListener("audioUpdate",this.onSelfAudioUpdateListener),a(this,$e).addListener("roomLeft",()=>this.disable())}createCanvas(){const t=document.createElement("canvas");t.height=a(this,je).height,t.width=a(this,je).width,v(this,hi,t)}setupMediaSessionEvents(){navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||(navigator.mediaSession.setActionHandler("hangup",()=>{this.eventCallback("END")}),this.mountAudioEvents(),this.mountVideoEvents())}mountAudioEvents(){navigator.mediaSession===void 0||navigator.mediaSession.setMicrophoneActive===void 0||a(this,$e).permissions.canProduceAudio&&navigator.mediaSession.setActionHandler("togglemicrophone",()=>{this.eventCallback("MIC")})}mountVideoEvents(){navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||a(this,$e).permissions.canProduceVideo&&navigator.mediaSession.setActionHandler("togglecamera",()=>{this.eventCallback("CAMERA")})}getSources(){const t=Object.values(a(this,Mt)).reduce((e,i)=>(e[i.pinned?"pinned":"regular"].push(i),e),{pinned:[],regular:[]});return[...t.pinned,...t.regular]}drawEmptyTile(t,e,i,r){if(a(this,hi)===void 0)return;const n=a(this,hi).getContext("2d"),s=a(this,hi).width,o=0,c=0,d=e-o*2,h=i-o*2,p=Math.floor(s/d),g=Math.floor(t/p),y=t%p*(d+o)+o,T=g*(h+o)+o,{displayText:b,image:O}=r!=null?r:{};n.fillStyle=b||O?a(this,Ni).videoBackground:a(this,Ni).background,n.strokeStyle=a(this,Ni).brand,n.beginPath(),n.moveTo(y+c,T),n.arcTo(y+d,T,y+d,T+c,c),n.arcTo(y+d,T+h,y+d-c,T+h,c),n.arcTo(y,T+h,y,T+h-c,c),n.arcTo(y,T,y+c,T,c),n.closePath(),n.fill(),n.stroke();const R=d/6,x=d/2+y,G=h/2+T;n.save(),(b||O)&&(n.beginPath(),n.arc(x,G,R,0,Math.PI*2),n.fillStyle=a(this,Ni).brand,n.fill(),O?(n.clip(),n.drawImage(O,x-R,G-R,R*2,R*2),n.restore()):b&&(n.fillStyle=a(this,Ni).textOnBrand,n.font=`${R/2}px sans-serif`,n.textAlign="center",n.textBaseline="middle",n.fillText(b,x,G)),this.drawIcons(r,y,T,Math.max(d,h)))}drawIcons(t,e,i,r){const n=Math.min(Math.max(r*.15,100),200),s=n*.2,o=n*.2;let c=e+s;const d=i+s,h=p=>{const g=a(this,hi).getContext("2d");g.save(),g.fillStyle=a(this,Ni).background,g.beginPath(),g.moveTo(c+o,d),g.arcTo(c+n,d,c+n,d+o,o),g.arcTo(c+n,d+n,c+n-o,d+n,o),g.arcTo(c,d+n,c,d+n-o,o),g.arcTo(c,d,c+o,d,o),g.closePath(),g.fill(),typeof p=="string"?(g.font=`${n/1.5}px sans-serif`,g.fillStyle=a(this,Ni).text,g.textAlign="center",g.textBaseline="top",g.fillText(p,n/2+c,d+s)):g.drawImage(p,c+s,d+s,n-s*2,n-s*2),c+=n+s,g.restore()};t.pinned&&h(a(this,da)),t.handRaised&&h(a(this,la))}drawTile(t,e,i){var r,n;if(a(this,hi)===void 0)return;const s=a(this,hi).getContext("2d"),o=this.getSources();let c=0,d=0;for(;c<a(this,je).height-5;){let h=0;for(;h<a(this,je).width-5&&d<i;){if((r=o[d])!=null&&r.enabled){const p=o[d].element,[g,y,T,b,O,R,x,G]=lw(h,c,t,e,p.videoWidth,p.videoHeight);(n=p==null?void 0:p.classList)!=null&&n.contains("mirror")?(s.save(),s.scale(-1,1),s.drawImage(p,g,y,T,b,-1*O,R,-1*x,G),s.restore()):s.drawImage(p,g,y,T,b,O,R,x,G),this.drawIcons(o[d],O,R,Math.max(x,G))}else this.drawEmptyTile(d,t,e,o[d]);d+=1,h+=t}c+=e}}calcGridElemSize(t){switch(t){case 0:case 1:return[a(this,je).width,a(this,je).height];case 2:return[Math.floor(a(this,je).width/2),a(this,je).height];case 3:case 4:return[Math.floor(a(this,je).width/2),Math.floor(a(this,je).height/2)];case 5:case 6:return[Math.floor(a(this,je).width/3),Math.floor(a(this,je).height/2)];case 7:case 8:case 9:return[Math.floor(a(this,je).width/3),Math.floor(a(this,je).height/3)];default:return[Math.floor(a(this,je).width/3),Math.floor(a(this,je).height/2)]}}paintCanvas(){let t=this.getSources().length;t!==1&&(t=t%2>0?t+1:t);const[e,i]=this.calcGridElemSize(t);this.drawTile(e,i,t)}isSupported(){var t;return!!window.chrome&&document.pictureInPictureEnabled&&((t=a(this,$e).config)==null?void 0:t.viewType)!=="LIVESTREAM"}get isActive(){return document.pictureInPictureElement!==null}cleanup(){if(v(this,ua,!1),this.isSupported()&&document.exitPictureInPicture!==void 0&&document.pictureInPictureElement!==null&&document.exitPictureInPicture(),a(this,yt))try{document.body.removeChild(a(this,yt))}catch(t){}this.removeAllSources(),v(this,hi,void 0),v(this,pi,void 0),v(this,fr,void 0)}init({height:t,width:e}={}){if(!this.isSupported())throw l.error("DytePip.unsupported"),new Error("Picture-in-picture is not available in this environment");if(a(this,ua))return;v(this,ua,!0),this.createCanvas(),this.setupMediaSessionEvents();const i=document.createElement("video");v(this,je,{height:t!=null?t:Bg,width:e!=null?e:Wg}),i.height=a(this,je).height,i.width=a(this,je).width,i.autoplay=!0,i.muted=!0,i.srcObject=a(this,hi).captureStream(24),v(this,pi,i),a(this,pi).onloadedmetadata=()=>{try{this.emit("pipStarted"),a(this,pi).onleavepictureinpicture=()=>{this.emit("pipEnded")}}catch(r){this.emit("pipEnded")}},this.createVideoContainer(),this.paintCanvas()}updateMediaSession(t,e){navigator.mediaSession!==void 0&&(t==="CAMERA"&&navigator.mediaSession.setCameraActive!==void 0&&navigator.mediaSession.setCameraActive(e),t==="MIC"&&navigator.mediaSession.setMicrophoneActive!==void 0&&navigator.mediaSession.setMicrophoneActive(e))}enableSource(t){a(this,Mt)[t]!==void 0&&(a(this,Mt)[t].enabled=!0)}disableSource(t){a(this,Mt)[t]!==void 0&&(a(this,Mt)[t].enabled=!1)}generateAvatar(t,e){return u(this,null,function*(){if(!e)return;const i=new Image;try{const r=yield(yield fetch(e)).blob(),n=window.URL.createObjectURL(r);i.onload=()=>{this.updateSource(t,{image:i}),window.URL.revokeObjectURL(n)},i.src=n}catch(r){l.error("DytePip::GenerateAvatar",{error:r})}})}addSource(t,e,i,r=!1,n=void 0,s=void 0,o=!1){l.debug("DytePIP::AddSource",{pip:{id:t,handRaised:o}}),a(this,Mt)[t]={id:t,element:e,enabled:i,pinned:r,displayText:n?dw(n):void 0,imageUrl:s,handRaised:o},s&&this.generateAvatar(t,s)}updateSource(t,e){l.info("DytePIP::UpdateSource",{pip:{id:t,handRaised:e.handRaised}});const i=a(this,Mt)[t];i&&(a(this,Mt)[t]=L(L({},i),e))}removeSource(t){delete a(this,Mt)[t]}removePinnedSource(){Object.values(a(this,Mt)).forEach(t=>{t.pinned&&this.removeSource(t.id)})}removeAllSources(){v(this,Mt,{})}enable(){v(this,vr,"activating"),this.setupEventListeners(),this.updateMediaSession("CAMERA",a(this,$e).videoEnabled),this.updateMediaSession("MIC",a(this,$e).audioEnabled),document.body.appendChild(a(this,yt)),v(this,fr,requestAnimationFrame(()=>this.animate())),a(this,pi).onloadedmetadata=()=>{a(this,pi).requestPictureInPicture().then(()=>{v(this,vr,"active")})},a(this,pi).readyState===4&&a(this,pi).requestPictureInPicture().then(()=>{v(this,vr,"active")})}};let uw=jg;hi=new WeakMap,Qn=new WeakMap,yt=new WeakMap,pi=new WeakMap,je=new WeakMap,Ni=new WeakMap,fr=new WeakMap,Mt=new WeakMap,$e=new WeakMap,da=new WeakMap,la=new WeakMap,vr=new WeakMap,ua=new WeakMap;var zi;(function(t){t[t.PUBLISHER=0]="PUBLISHER",t[t.SUBSCRIBER=1]="SUBSCRIBER"})(zi||(zi={}));var Li;(function(t){t[t.AUDIO=0]="AUDIO",t[t.VIDEO=1]="VIDEO"})(Li||(Li={}));class hw extends E{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 Hg=new hw;class pw extends E{constructor(){super("media.HeaderExtension",[{no:1,name:"direction",kind:"scalar",opt:!0,T:9},{no:2,name:"uri",kind:"scalar",T:9}])}}const mw=new pw;class gw extends E{constructor(){super("media.Fingerprint",[{no:1,name:"algorithm",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:9}])}}new gw;class fw extends E{constructor(){super("media.SessionDescription",[{no:1,name:"target",kind:"enum",T:()=>["media.Target",zi]},{no:2,name:"type",kind:"scalar",T:9},{no:3,name:"sdp",kind:"scalar",T:9}])}}const mi=new fw;class vw extends E{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 yw=new vw;class Sw extends E{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:()=>mi},{no:4,name:"private_ice",kind:"scalar",opt:!0,T:8},{no:5,name:"producers",kind:"message",repeat:1,T:()=>yw}])}}const Ew=new Sw;class Tw extends E{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 kw=new Tw;class bw extends E{constructor(){super("media.CreateTransportResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>mi},{no:3,name:"transcription_enabled",kind:"scalar",opt:!0,T:8},{no:4,name:"producer_ids",kind:"scalar",repeat:2,T:9}])}}const qg=new bw;class _w extends E{constructor(){super("media.RenegotiateRequest",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>mi}])}}const ww=new _w;class Iw extends E{constructor(){super("media.RenegotiateResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>mi}])}}new Iw;class Cw extends E{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 Pw=new Cw;class Rw extends E{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 Mw=new Rw;class Aw extends E{constructor(){super("media.ProducerEntry",[{no:1,name:"producing_transport_id",kind:"scalar",T:9},{no:2,name:"producer_id",kind:"scalar",T:9}])}}new Aw;class Dw extends E{constructor(){super("media.ConsumerEntry",[{no:1,name:"consuming_transport_id",kind:"scalar",T:9},{no:2,name:"consumer_id",kind:"scalar",T:9}])}}new Dw;class Ow extends E{constructor(){super("media.ProducerState",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"kind",kind:"enum",T:()=>["media.ProducerKind",Li]},{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:()=>Hg}])}}const ha=new Ow;class Nw extends E{constructor(){super("media.ConsumerState",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>ha},{no:3,name:"producer_track",kind:"message",T:()=>Mw},{no:4,name:"error_code",kind:"scalar",opt:!0,T:9}])}}const Lw=new Nw;class Vw extends E{constructor(){super("media.ProducerIdToConsumerMap",[{no:1,name:"map",kind:"map",K:9,V:{kind:"message",T:()=>Lw}}])}}const Gg=new Vw;class xw extends E{constructor(){super("media.PeerRtpCapabilitites",[{no:1,name:"sender",kind:"message",T:()=>Kg},{no:2,name:"receiver",kind:"message",T:()=>Kg}])}}const $g=new xw;class Uw extends E{constructor(){super("media.RtpCapability",[{no:1,name:"codecs",kind:"message",repeat:1,T:()=>Hg},{no:2,name:"header_extensions",kind:"message",repeat:1,T:()=>mw}])}}const Jg=new Uw;class Fw extends E{constructor(){super("media.RtpCapabilitites",[{no:1,name:"audio",kind:"message",T:()=>Jg},{no:2,name:"video",kind:"message",T:()=>Jg}])}}const Kg=new Fw;class Bw extends E{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 Ww=new Bw;class jw extends E{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 zg=new jw;class Hw extends E{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 qw=new Hw;class Gw extends E{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:()=>qw},{no:9,name:"capabilities",kind:"message",T:()=>$g}])}}const $w=new Gw;class Jw extends E{constructor(){super("media.edge.PeerJoinCompleteRequest",[])}}const Kw=new Jw;class zw extends E{constructor(){super("media.edge.PeerLeaveRequest",[{no:1,name:"close_room",kind:"scalar",T:8}])}}const Yw=new zw;class Qw extends E{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 Qw;class Xw extends E{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:()=>Ww},{no:5,name:"producing_transport_id",kind:"scalar",opt:!0,T:9},{no:6,name:"simulcast",kind:"message",T:()=>zg}])}}const Zw=new Xw;class eI extends E{constructor(){super("media.edge.ConsumePeersRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>Zw},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const tI=new eI;class iI extends E{constructor(){super("media.edge.UpdateConsumerSimulcastConfigRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"simulcast",kind:"message",T:()=>zg},{no:3,name:"producing_transport_id",kind:"scalar",T:9},{no:4,name:"mid",kind:"scalar",T:9}])}}const rI=new iI;class nI extends E{constructor(){super("media.edge.UpdateConsumersSimulcastConfigRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>rI},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const sI=new nI;class aI extends E{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:()=>mi},{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 oI=new aI;class cI extends E{constructor(){super("media.edge.SelectedPeersRequest",[])}}new cI;class dI extends E{constructor(){super("media.edge.GlobalPeerPinningRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const lI=new dI;class uI extends E{constructor(){super("media.edge.ProducerToggleRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"pause",kind:"scalar",T:8}])}}const Wc=new uI;class hI extends E{constructor(){super("media.edge.ConsumerToggleRequest",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"pause",kind:"scalar",T:8}])}}new hI;class pI extends E{constructor(){super("media.edge.ProducerCloseRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>mi},{no:3,name:"producing_transport_id",kind:"scalar",opt:!0,T:9}])}}const mI=new pI;class gI extends E{constructor(){super("media.edge.ConsumerCloseRequest",[{no:1,name:"consumer_ids",kind:"scalar",repeat:2,T:9},{no:2,name:"description",kind:"message",T:()=>mi},{no:3,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const fI=new gI;class vI extends E{constructor(){super("media.edge.KickPeerRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new vI;class yI extends E{constructor(){super("media.edge.KickAllPeersRequest",[{no:1,name:"propagate_kick_across_rooms",kind:"scalar",T:8}])}}const Yg=new yI;class SI extends E{constructor(){super("media.edge.PeerDisplayNameEditRequest",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",T:9}])}}const EI=new SI;class TI extends E{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 kI=new TI;class bI extends E{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 _I=new bI;class wI extends E{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 II=new wI;class CI extends E{constructor(){super("media.edge.ErrorResponse",[{no:1,name:"error_message",kind:"scalar",T:9},{no:2,name:"event_id",kind:"scalar",T:5}])}}const PI=new CI;class RI extends E{constructor(){super("media.edge.EmptyResponse",[])}}new RI;class MI extends E{constructor(){super("media.edge.RoomParticipants",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"producer_states",kind:"message",repeat:1,T:()=>ha},{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:()=>$g}])}}const Qg=new MI;class AI extends E{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 lu=new AI;class DI extends E{constructor(){super("media.edge.SelectedPeersDiffEntry",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"priority",kind:"scalar",T:5}])}}const OI=new DI;class NI extends E{constructor(){super("media.edge.SelectedPeersDiffResponse",[{no:1,name:"entries",kind:"message",repeat:1,T:()=>OI}])}}const Xg=new NI;class LI extends E{constructor(){super("media.edge.PeerJoinResponse",[])}}new LI;class VI extends E{constructor(){super("media.edge.PeerJoinCompleteResponse",[{no:1,name:"room_state",kind:"message",T:()=>II},{no:2,name:"participants",kind:"message",repeat:1,T:()=>Qg},{no:3,name:"selected_peers",kind:"message",T:()=>lu},{no:4,name:"max_preferred_streams",kind:"scalar",T:5}])}}const uu=new VI;class xI extends E{constructor(){super("media.edge.PeerLeaveResponse",[{no:1,name:"closed",kind:"scalar",T:8}])}}const UI=new xI;class FI extends E{constructor(){super("media.edge.ConsumeMultipleProducerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>Gg}])}}new FI;class BI extends E{constructor(){super("media.edge.ConsumePeerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>Gg},{no:3,name:"description",kind:"message",T:()=>mi}])}}const WI=new BI;class jI extends E{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:()=>mi}])}}const HI=new jI;class qI extends E{constructor(){super("media.edge.ProducerScoreResponse",[{no:1,name:"responseid",kind:"scalar",T:9},{no:2,name:"score",kind:"message",T:()=>Pw}])}}new qI;class GI extends E{constructor(){super("media.edge.ActiveSpeakerResponse",[{no:1,name:"responsepeer_id",kind:"scalar",T:9},{no:2,name:"volume",kind:"scalar",T:5}])}}new GI;class $I extends E{constructor(){super("media.edge.NoActiveSpeakerResponse",[])}}new $I;class JI extends E{constructor(){super("media.edge.ProducerToggleResponse",[])}}new JI;class KI extends E{constructor(){super("media.edge.ConsumerToggleResponse",[])}}new KI;class zI extends E{constructor(){super("media.edge.ProducerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>mi}])}}const YI=new zI;class QI extends E{constructor(){super("media.edge.ConsumerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>mi}])}}const XI=new QI;class ZI extends E{constructor(){super("media.edge.GlobalPeerPinningResponse",[])}}new ZI;class eC extends E{constructor(){super("media.edge.KickPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new eC;class tC extends E{constructor(){super("media.edge.KickAllPeersResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new tC;class iC extends E{constructor(){super("media.edge.HostMediaControlForPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const rC=new iC;class nC extends E{constructor(){super("media.edge.HostMediaControlForAllPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const sC=new nC;class aC extends E{constructor(){super("media.edge.PeerDisplayNameEditResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const oC=new aC;class cC extends E{constructor(){super("media.edge.PeerJoinBroadcastResponse",[{no:1,name:"participant",kind:"message",T:()=>Qg}])}}const Zg=new cC;class dC extends E{constructor(){super("media.edge.TrackSubscriptionKind",[{no:1,name:"audio",kind:"scalar",T:8},{no:2,name:"video",kind:"scalar",T:8}])}}const ef=new dC;class lC extends E{constructor(){super("media.edge.TrackSubscription",[{no:1,name:"label",kind:"scalar",T:9},{no:2,name:"webcam",kind:"message",T:()=>ef},{no:3,name:"screenshare",kind:"message",T:()=>ef}])}}const uC=new lC;class hC extends E{constructor(){super("media.edge.PeerProducingTransportCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"transport_details",kind:"message",T:()=>qg},{no:3,name:"track_subscriptions",kind:"message",repeat:1,T:()=>uC}])}}new hC;class pC extends E{constructor(){super("media.edge.PeerProducerCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>ha}])}}const mC=new pC;class gC extends E{constructor(){super("media.edge.PeerProducerToggleBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>ha},{no:3,name:"initiator_participant_id",kind:"scalar",opt:!0,T:9}])}}const tf=new gC;class fC extends E{constructor(){super("media.edge.PeerProducerCloseBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>ha}])}}const vC=new fC;class yC extends E{constructor(){super("media.edge.PeerLeaveBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const hu=new yC;class SC extends E{constructor(){super("media.edge.GlobalPeerPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const rf=new SC;class EC extends E{constructor(){super("media.edge.GlobalPeerUnPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new EC;class TC extends E{constructor(){super("media.edge.RecordingStartedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new TC;class kC extends E{constructor(){super("media.edge.RecordingStoppedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new kC;class bC extends E{constructor(){super("media.edge.PeerDisplayNameEditBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",T:9}])}}new bC;class _C extends E{constructor(){super("media.edge.PeerPingRequestBroadcastResponse",[{no:1,name:"password",kind:"scalar",T:9}])}}new _C;class wC extends E{constructor(){super("media.edge.MediaRoomTerminationBroadcastResponse",[{no:1,name:"reason",kind:"scalar",T:9}])}}new wC;class IC extends E{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 pu=new IC;class CC extends E{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 CC;class PC extends E{constructor(){super("socket.api.ErrorMessage",[{no:1,name:"code",kind:"scalar",opt:!0,T:5},{no:2,name:"message",kind:"scalar",T:9}])}}const RC=new PC;var tn;(function(t){t[t.BROWSER=0]="BROWSER",t[t.TRACK=1]="TRACK",t[t.COMPOSITE=2]="COMPOSITE"})(tn||(tn={}));var Yi;(function(t){t[t.UNSPECIFIED=0]="UNSPECIFIED",t[t.ON_STAGE=1]="ON_STAGE",t[t.APPROVED_STAGE=2]="APPROVED_STAGE",t[t.REQUESTED_STAGE=3]="REQUESTED_STAGE",t[t.OFF_STAGE=4]="OFF_STAGE"})(Yi||(Yi={}));var mu;(function(t){t[t.NONE=0]="NONE",t[t.RECORDER=1]="RECORDER",t[t.LIVESTREAMER=2]="LIVESTREAMER"})(mu||(mu={}));var gu;(function(t){t[t.PEERS=0]="PEERS",t[t.ROOMS=1]="ROOMS"})(gu||(gu={}));var jc;(function(t){t[t.HIVE=0]="HIVE",t[t.CHAT=1]="CHAT",t[t.PING=2]="PING"})(jc||(jc={}));class MC extends E{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 AC=new MC;class DC extends E{constructor(){super("socket.room.Peer",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9},{no:3,name:"display_name",kind:"scalar",T:9},{no:4,name:"stage_type",kind:"enum",opt:!0,T:()=>["socket.room.StageType",Yi,"STAGE_TYPE_"]},{no:5,name:"custom_participant_id",kind:"scalar",opt:!0,T:9},{no:6,name:"preset_id",kind:"scalar",opt:!0,T:9},{no:7,name:"display_picture_url",kind:"scalar",opt:!0,T:9},{no:8,name:"waitlisted",kind:"scalar",T:8},{no:9,name:"flags",kind:"message",T:()=>AC}])}}const Hc=new DC;class OC extends E{constructor(){super("socket.room.PeerInfoResponse",[{no:1,name:"peer",kind:"message",T:()=>Hc}])}}const Xn=new OC;class NC extends E{constructor(){super("socket.room.PeerStatusUpdate",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9},{no:3,name:"stage_type",kind:"enum",opt:!0,T:()=>["socket.room.StageType",Yi,"STAGE_TYPE_"]}])}}const nf=new NC;class LC extends E{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 VC=new LC;class xC extends E{constructor(){super("socket.room.RoomPeersInfoResponse",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>Hc}])}}const fu=new xC;class UC extends E{constructor(){super("socket.room.RoomPeerCountResponse",[{no:1,name:"count",kind:"scalar",T:4,L:2}])}}const sf=new UC;class FC extends E{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:()=>WC},{no:6,name:"room_uuid",kind:"scalar",opt:!0,T:9}])}}const af=new FC;class BC extends E{constructor(){super("socket.room.ActiveRecording",[{no:1,name:"recording_id",kind:"scalar",T:9},{no:2,name:"recording_type",kind:"enum",T:()=>["common.RecordingType",tn]},{no:3,name:"recording_status",kind:"scalar",T:9}])}}const WC=new BC;class jC extends E{constructor(){super("socket.room.RoomInfoResponse",[{no:1,name:"room",kind:"message",T:()=>af}])}}const of=new jC;class HC extends E{constructor(){super("socket.room.GetPeerInfoRequest",[{no:1,name:"peer_id",kind:"scalar",T:9}])}}const cf=new HC;class qC extends E{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 qC;class GC extends E{constructor(){super("socket.room.JoinRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>Hc},{no:3,name:"room_uuid",kind:"scalar",T:9},{no:4,name:"organization_id",kind:"scalar",opt:!0,T:9},{no:5,name:"use_hive",kind:"scalar",opt:!0,T:8},{no:6,name:"preset",kind:"scalar",opt:!0,T:12},{no:7,name:"capabilities",kind:"enum",repeat:1,T:()=>["socket.room.Capabilities",jc,"CAPABILITIES_"]},{no:8,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const $C=new GC;class JC extends E{constructor(){super("socket.room.LeaveRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>Hc},{no:2,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const KC=new JC;class zC extends E{constructor(){super("socket.room.UpdateRoomInfoRequest",[{no:1,name:"room",kind:"message",T:()=>af}])}}new zC;class YC extends E{constructor(){super("socket.room.GetConnectedRoomsDumpRequest",[])}}new YC;class QC extends E{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 vu=new QC;class XC extends E{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 ZC=new XC;class eP extends E{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:()=>ZC}])}}const df=new eP;class tP extends E{constructor(){super("socket.room.GetConnectedRoomsDumpResponse",[{no:1,name:"parent_meeting",kind:"message",T:()=>df},{no:2,name:"meetings",kind:"message",repeat:1,T:()=>df}])}}const iP=new tP;class rP extends E{constructor(){super("socket.room.CreateRoomRequestPayload",[{no:1,name:"title",kind:"scalar",opt:!0,T:9}])}}const nP=new rP;class sP extends E{constructor(){super("socket.room.CreateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>nP}])}}const aP=new sP;class oP extends E{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:()=>vu}])}}const cP=new oP;class dP extends E{constructor(){super("socket.room.CreateConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>cP}])}}const lf=new dP;class lP extends E{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 uP=new lP;class hP extends E{constructor(){super("socket.room.UpdateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>uP}])}}new hP;class pP extends E{constructor(){super("socket.room.DisableRoomPayload",[{no:1,name:"id",kind:"scalar",opt:!0,T:9}])}}const mP=new pP;class gP extends E{constructor(){super("socket.room.DisableConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>mP}])}}const fP=new gP;class vP extends E{constructor(){super("socket.room.DisableConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>EP}])}}const yP=new vP;class SP extends E{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:()=>vu}])}}const EP=new SP;class TP extends E{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 kP=new TP;class bP extends E{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:()=>kP}])}}const _P=new bP;class wP extends E{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:()=>vu}])}}const uf=new wP;class IP extends E{constructor(){super("socket.room.MovePeersBetweenRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>uf}])}}new IP;class CP extends E{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 PP=new CP;class RP extends E{constructor(){super("socket.room.GetAllAddedParticipantsResponse",[{no:1,name:"participants",kind:"message",repeat:1,T:()=>DP}])}}const MP=new RP;class AP extends E{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 DP=new AP;class OP extends E{constructor(){super("socket.room.RemoveParticipantsRequest",[{no:1,name:"peer_ids",kind:"scalar",repeat:2,T:9}])}}const hf=new OP;class NP extends E{constructor(){super("socket.room.BroadcastMessage",[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:12},{no:3,name:"timestamp",kind:"scalar",T:4,L:2},{no:4,name:"ids",kind:"scalar",repeat:2,T:9},{no:5,name:"broadcast_type",kind:"enum",opt:!0,T:()=>["socket.room.BroadcastType",gu,"BROADCAST_TYPE_"]}])}}const pa=new NP;class LP extends E{constructor(){super("socket.room.AcceptWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const VP=new LP;class xP extends E{constructor(){super("socket.room.DenyWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const UP=new xP;class FP extends E{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 BP=new FP;class WP extends E{constructor(){super("socket.room.GetWaitingRoomRequests",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>BP}])}}const pf=new WP;class jP extends E{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 mf=new jP;var yu;(function(t){t[t.NONE=0]="NONE",t[t.SKIP=1]="SKIP",t[t.ON_PRIVILEGED_USER_ENTRY=2]="ON_PRIVILEGED_USER_ENTRY",t[t.SKIP_ON_ACCEPT=3]="SKIP_ON_ACCEPT"})(yu||(yu={}));var yr;(function(t){t[t.NONE=0]="NONE",t[t.ALLOWED=1]="ALLOWED",t[t.NOT_ALLOWED=2]="NOT_ALLOWED",t[t.CAN_REQUEST=3]="CAN_REQUEST"})(yr||(yr={}));class HP extends E{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 qP=new HP;class GP extends E{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 $P=new GP;class JP extends E{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 KP=new JP;class zP extends E{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 YP=new zP;class QP extends E{constructor(){super("socket.preset.ChatPermissionUpdate",[{no:1,name:"public",kind:"message",T:()=>KP},{no:2,name:"private",kind:"message",T:()=>YP}])}}const XP=new QP;class ZP extends E{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 eR=new ZP;class tR extends E{constructor(){super("socket.preset.StreamPermission",[{no:1,name:"can_produce",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",yr,"STREAM_PERMISSION_TYPE_"]},{no:2,name:"can_consume",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",yr,"STREAM_PERMISSION_TYPE_"]}])}}const Su=new tR;class iR extends E{constructor(){super("socket.preset.MediaPermissionUpdate",[{no:1,name:"video",kind:"message",T:()=>Su},{no:2,name:"audio",kind:"message",T:()=>Su},{no:3,name:"screenshare",kind:"message",T:()=>Su}])}}const rR=new iR;class nR extends E{constructor(){super("socket.preset.PresetUpdates",[{no:1,name:"polls",kind:"message",T:()=>qP},{no:2,name:"plugins",kind:"message",T:()=>$P},{no:3,name:"chat",kind:"message",T:()=>XP},{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",yu,"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",mu,"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:()=>eR},{no:23,name:"media",kind:"message",T:()=>rR}])}}const Eu=new nR;class sR extends E{constructor(){super("socket.preset.ReadPeersPresetRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const aR=new sR;class oR extends E{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 cR=new oR;class dR extends E{constructor(){super("socket.preset.ReadPeersPresetResponse",[{no:1,name:"peer_presets",kind:"message",repeat:1,T:()=>cR}])}}const lR=new dR;class uR extends E{constructor(){super("socket.preset.UpdatePeerPreset",[{no:1,name:"user_ids",kind:"scalar",T:9},{no:2,name:"patch",kind:"message",T:()=>Eu}])}}const gf=new uR;class hR extends E{constructor(){super("socket.preset.UpdatePeersPresetRequest",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>gf}])}}const pR=new hR;class mR extends E{constructor(){super("socket.preset.UpdatePeersPresetResponse",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>gf}])}}const ff=new mR;class gR extends E{constructor(){super("socket.preset.PeerUserIDMap",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9}])}}const fR=new gR;class vR extends E{constructor(){super("socket.preset.BulkUpdatePeerPresetRequest",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>fR},{no:2,name:"patch",kind:"message",T:()=>Eu}])}}new vR;class yR extends E{constructor(){super("socket.preset.BulkUpdatePeerPresetResponse",[{no:2,name:"patch",kind:"message",T:()=>Eu}])}}new yR;class SR extends E{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 rn=new SR;class ER extends E{constructor(){super("socket.chat.GetPaginatedChatMessageRoomRequest",[{no:1,name:"time_stamp",kind:"scalar",T:4,L:2},{no:2,name:"size",kind:"scalar",T:5},{no:3,name:"from",kind:"scalar",T:5},{no:4,name:"reversed",kind:"scalar",T:8},{no:5,name:"channel_id",kind:"scalar",opt:!0,T:9}])}}const TR=new ER;class kR extends E{constructor(){super("socket.chat.GetPaginatedChatMessageRoomResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>rn},{no:2,name:"next",kind:"scalar",T:8}])}}const bR=new kR;class _R extends E{constructor(){super("socket.chat.GetChatMessagesResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>rn}])}}const vf=new _R;class wR extends E{constructor(){super("socket.chat.SendChatMessageToRoomRequest",[{no:1,name:"payload_type",kind:"scalar",T:5},{no:2,name:"payload",kind:"scalar",T:9}])}}const IR=new wR;class CR extends E{constructor(){super("socket.chat.SendChatMessageToRoomResponse",[{no:1,name:"message",kind:"message",T:()=>rn}])}}const Tu=new CR;class PR extends E{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 RR=new PR;class MR extends E{constructor(){super("socket.chat.SendChatMessageToPeersResponse",[{no:1,name:"message",kind:"message",T:()=>rn}])}}const ku=new MR;class AR extends E{constructor(){super("socket.chat.SendChatMessageToChannelRequest",[{no:1,name:"channel_id",kind:"scalar",T:9},{no:2,name:"payload_type",kind:"scalar",T:5},{no:3,name:"payload",kind:"scalar",T:9}])}}const DR=new AR;class OR extends E{constructor(){super("socket.chat.SendChatMessageToChannelResponse",[{no:1,name:"message",kind:"message",T:()=>rn}])}}new OR;class NR extends E{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 LR=new NR;class VR extends E{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 xR=new VR;class UR extends E{constructor(){super("socket.chat.PinChatMessageResponse",[{no:1,name:"chat_id",kind:"scalar",T:9},{no:2,name:"pinned",kind:"scalar",T:8},{no:3,name:"channel_id",kind:"scalar",opt:!0,T:9}])}}const qc=new UR;class FR extends E{constructor(){super("socket.chat.EditChatMessageResponse",[{no:1,name:"message",kind:"message",T:()=>rn}])}}const Gc=new FR;class BR extends E{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 WR=new BR;class jR extends E{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 $c=new jR;class HR extends E{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 qR=new HR;class GR extends E{constructor(){super("socket.chat.MarkChannelIndexAsReadRequest",[{no:1,name:"channel_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9},{no:3,name:"channel_index",kind:"scalar",T:9}])}}const $R=new GR;class JR extends E{constructor(){super("socket.chat.MarkChannelIndexAsReadResponse",[{no:1,name:"channel_index",kind:"scalar",T:9}])}}const KR=new JR;class zR extends E{constructor(){super("socket.chat.CreateChatChannelRequest",[{no:1,name:"display_name",kind:"scalar",T:9},{no:2,name:"target_user_ids",kind:"scalar",repeat:2,T:9},{no:3,name:"display_picture_url",kind:"scalar",opt:!0,T:9},{no:4,name:"visibility",kind:"scalar",T:9},{no:5,name:"is_direct_message",kind:"scalar",T:8}])}}const YR=new zR;class QR extends E{constructor(){super("socket.chat.UpdateChatChannelRequest",[{no:1,name:"chat_channel_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",opt:!0,T:9},{no:3,name:"target_user_ids",kind:"scalar",repeat:2,T:9},{no:4,name:"display_picture_url",kind:"scalar",opt:!0,T:9},{no:5,name:"visibility",kind:"scalar",opt:!0,T:9},{no:6,name:"is_direct_message",kind:"scalar",opt:!0,T:8}])}}const XR=new QR;class ZR extends E{constructor(){super("socket.chat.CreateChatChannelResponse",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}new ZR;class eM extends E{constructor(){super("socket.chat.GetChatChannelRequest",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}const tM=new eM;class iM extends E{constructor(){super("socket.chat.LatestMessageAndUnreadCount",[{no:1,name:"message",kind:"message",T:()=>rn},{no:2,name:"unread_count",kind:"scalar",T:4,L:2}])}}const rM=new iM;class nM extends E{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:()=>rM},{no:7,name:"target_user_ids",kind:"scalar",repeat:2,T:9}])}}const sM=new nM;class aM extends E{constructor(){super("socket.chat.GetChatChannelResponse",[{no:1,name:"chat_channels",kind:"message",repeat:1,T:()=>sM}])}}const Qi=new aM;class oM extends E{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 cM=new oM;class dM extends E{constructor(){super("socket.chat.GetChatChannelMembersResponse",[{no:1,name:"channel_members",kind:"message",repeat:1,T:()=>cM}])}}const lM=new dM;class uM extends E{constructor(){super("socket.plugin.AddPluginRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"staggered",kind:"scalar",T:8}])}}const hM=new uM;class pM extends E{constructor(){super("socket.plugin.RemovePluginRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"staggered",kind:"scalar",T:8}])}}const mM=new pM;class gM extends E{constructor(){super("socket.plugin.EnablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const fM=new gM;class vM extends E{constructor(){super("socket.plugin.DisablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const yM=new vM;class SM extends E{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 EM=new SM;class TM extends E{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 kM=new TM;class bM extends E{constructor(){super("socket.plugin.PluginEventToRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"plugin_data",kind:"scalar",T:12}])}}const _M=new bM;class wM extends E{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 IM=new wM;class CM extends E{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 bu=new CM;class PM extends E{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:()=>bu}])}}const yf=new PM;class RM extends E{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:()=>bu}])}}const MM=new RM;class AM extends E{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:()=>bu}])}}const DM=new AM;class OM extends E{constructor(){super("socket.plugin.PluginStoreDeleteRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"store_name",kind:"scalar",T:9}])}}const NM=new OM;class LM extends E{constructor(){super("socket.plugin.EnablePluginResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"enabled_by",kind:"scalar",T:9}])}}const _u=new LM;class VM extends E{constructor(){super("socket.plugin.EnablePluginsResponse",[{no:1,name:"plugins",kind:"message",repeat:1,T:()=>_u}])}}const xM=new VM;class UM extends E{constructor(){super("socket.plugin.DisablePluginResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"disabled_by",kind:"scalar",T:9}])}}const Sf=new UM;class FM extends E{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 BM=new FM;class WM extends E{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:()=>BM}])}}const Ef=new WM;class jM extends E{constructor(){super("socket.plugin.PluginEventResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"plugin_data",kind:"scalar",T:12}])}}const Tf=new jM;class HM extends E{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 kf=new HM;class qM extends E{constructor(){super("socket.livestreaming.GetStagePeersResponse",[{no:1,name:"stage_peers",kind:"scalar",repeat:2,T:9}])}}const bf=new qM;class GM extends E{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 $M=new GM;class JM extends E{constructor(){super("socket.livestreaming.GetStageRequestsResponse",[{no:1,name:"stage_requests",kind:"message",repeat:1,T:()=>$M}])}}const wu=new JM;class KM extends E{constructor(){super("socket.livestreaming.GrantStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const zM=new KM;class YM extends E{constructor(){super("socket.livestreaming.DenyStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const QM=new YM;class XM extends E{constructor(){super("socket.livestreaming.LeaveStageRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const _f=new XM;class ZM extends E{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:()=>tA},{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 wf=new ZM;class eA extends E{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:()=>rA}])}}const tA=new eA;class iA extends E{constructor(){super("socket.polls.PollVote",[{no:1,name:"user_id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9}])}}const rA=new iA;class nA extends E{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 sA=new nA;class aA extends E{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 oA=new aA;class cA extends E{constructor(){super("socket.polls.UpdatePollResponse",[{no:1,name:"poll",kind:"message",T:()=>wf}])}}const Iu=new cA;class dA extends E{constructor(){super("socket.polls.GetPollsResponse",[{no:1,name:"polls",kind:"message",repeat:1,T:()=>wf}])}}const lA=new dA;class uA extends E{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",tn]}])}}const If=new uA;class hA extends E{constructor(){super("google.protobuf.Timestamp",[{no:1,name:"seconds",kind:"scalar",T:3,L:0},{no:2,name:"nanos",kind:"scalar",T:5}])}now(){const e=this.create(),i=Date.now();return e.seconds=Te.from(Math.floor(i/1e3)).toBigInt(),e.nanos=i%1e3*1e6,e}toDate(e){return new Date(Te.from(e.seconds).toNumber()*1e3+Math.ceil(e.nanos/1e6))}fromDate(e){const i=this.create(),r=e.getTime();return i.seconds=Te.from(Math.floor(r/1e3)).toBigInt(),i.nanos=r%1e3*1e6,i}internalJsonWrite(e,i){let r=Te.from(e.seconds).toNumber()*1e3;if(r<Date.parse("0001-01-01T00:00:00Z")||r>Date.parse("9999-12-31T23:59:59Z"))throw new Error("Unable to encode Timestamp to JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");if(e.nanos<0)throw new Error("Unable to encode invalid Timestamp to JSON. Nanos must not be negative.");let n="Z";if(e.nanos>0){let s=(e.nanos+1e9).toString().substring(1);s.substring(3)==="000000"?n="."+s.substring(0,3)+"Z":s.substring(6)==="000"?n="."+s.substring(0,6)+"Z":n="."+s+"Z"}return new Date(r).toISOString().replace(".000Z",n)}internalJsonRead(e,i,r){if(typeof e!="string")throw new Error("Unable to parse Timestamp from JSON "+Rl(e)+".");let n=e.match(/^([0-9]{4})-([0-9]{2})-([0-9]{2})T([0-9]{2}):([0-9]{2}):([0-9]{2})(?:Z|\.([0-9]{3,9})Z|([+-][0-9][0-9]:[0-9][0-9]))$/);if(!n)throw new Error("Unable to parse Timestamp from JSON. Invalid format.");let s=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(s))throw new Error("Unable to parse Timestamp from JSON. Invalid value.");if(s<Date.parse("0001-01-01T00:00:00Z")||s>Date.parse("9999-12-31T23:59:59Z"))throw new globalThis.Error("Unable to parse Timestamp from JSON. Must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive.");return r||(r=this.create()),r.seconds=Te.from(s/1e3).toBigInt(),r.nanos=0,n[7]&&(r.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9),r}}new hA;class pA extends E{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 Cu=new pA;class mA extends E{constructor(){super("common.BulkedHubMessage",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>Cu}])}}new mA;class gA extends E{constructor(){super("common.CFWorkersResponse",[{no:1,name:"responses",kind:"message",repeat:1,T:()=>Cu},{no:2,name:"broadcast_responses",kind:"message",repeat:1,T:()=>Cu}])}}new gA;const fA=0,vA=1,yA=2,SA=3,EA=4,TA=5,kA={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},bA={getMessages:0,sendMessageToRoom:1,sendMessageToPeers:2,editMessage:3,deleteMessage:4,getPaginatedMessages:5,sendMessageToChannel:6,searchChannelMessages:7,getAllChatChannels:8,markChannelIndexAsRead:9,pinMessage:10},_A={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},wA={createPoll:0,getPolls:1,votePoll:2,updatePoll:3},Cf={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},IA={createChatChannel:0,getChatChannel:1,deprecatedGetAllChatChannels:2,getChannelMembers:3,updateChatChannel:4},CA={getUserPresets:0,updateUserPreset:1};function Zn(t,e){return Object.keys(e).reduce((i,r)=>(i[r]=(t<<16)+e[r],i),{})}function Pf(t,e){return Object.keys(t).reduce((i,r)=>(i[r]=e|t[r],i),{})}const B=Zn(fA,kA),Oe=Zn(vA,bA),K=Zn(yA,_A),Xi=Zn(SA,wA),nn=Zn(EA,IA),ii=Pf(Cf,16777216),gi=Pf(Cf,50331648),Jc=Zn(TA,CA);var PA=Object.defineProperty,RA=Object.getOwnPropertyDescriptor,Pu=(t,e,i,r)=>{for(var n=r>1?void 0:r?RA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&PA(e,i,n),n},sn,Rf;const Ru=(Rf=class{constructor(t){f(this,sn,void 0),v(this,sn,t)}createChannel(t,e,i,r="public",n=!1){return u(this,null,function*(){const s={displayName:t,targetUserIds:e,displayPictureUrl:i,visibility:r,isDirectMessage:n};n&&(s.visibility="private");const o=yield a(this,sn).sendMessagePromise(nn.createChatChannel,YR.toBinary(s)),c=Qi.fromBinary(o.payload).chatChannels;return Ru.formatChannel(c[0])})}updateChannel(t,e){return u(this,null,function*(){const i=yield a(this,sn).sendMessagePromise(nn.updateChatChannel,XR.toBinary({chatChannelId:t,targetUserIds:e.memberIds,displayName:e.displayName,displayPictureUrl:e.displayPictureUrl,visibility:e.visibility})),r=Qi.fromBinary(i.payload).chatChannels;return Ru.formatChannel(r[0])})}static formatChannel(t){var e;const{latestMessageAndUnreadCount:i}=t,r=j(L({},t),{id:t.chatChannelId,memberIds:t.targetUserIds,unreadCount:(e=i==null?void 0:i.unreadCount)!=null?e:0});return i!=null&&i.message&&(r.latestMessage=Zi.formatSocketServiceMessage(i.message)),delete r.chatChannelId,delete r.targetUserIds,delete r.latestMessageAndUnreadCount,r}getChannelMembers(t){return u(this,null,function*(){try{const e=yield a(this,sn).sendMessagePromise(nn.getChannelMembers,tM.toBinary({chatChannelId:t}));return lM.fromBinary(e.payload).channelMembers.map(i=>{var r=i,{id:n}=r,s=vc(r,["id"]);return j(L({},s),{userId:n})})}catch(e){return[]}})}on(t,e){let i,r;switch(t){case nn.createChatChannel:{i=Qi.fromBinary.bind(Qi),r=Qi.create();break}case nn.updateChatChannel:{i=Qi.fromBinary.bind(Qi),r=Qi.create();break}}if(!i){l.warn(`ChatChannelSocketHandler::Event ${t} is not recognized`);return}a(this,sn).on(t,({payload:n})=>{let s=r;try{s=i(n)}catch(o){l.error("ChatChannelSocketHandler::on::binary_decode_error",{error:o})}return e(s)})}},sn=new WeakMap,Rf);let an=Ru;Pu([S.trace("ChatChannelHandler.createChannel")],an.prototype,"createChannel",1),Pu([S.trace("ChatChannelHandler.updateChannel")],an.prototype,"updateChannel",1),Pu([S.trace("ChatChannelHandler.getChannelMembers")],an.prototype,"getChannelMembers",1);var MA=Object.defineProperty,AA=Object.getOwnPropertyDescriptor,fi=(t,e,i,r)=>{for(var n=r>1?void 0:r?AA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&MA(e,i,n),n},St=(t=>(t[t.TEXT=0]="TEXT",t[t.IMAGE=1]="IMAGE",t[t.FILE=2]="FILE",t[t.CUSTOM=3]="CUSTOM",t))(St||{}),Et;class ri{constructor(e){f(this,Et,void 0),v(this,Et,e)}getChatMessages(){return a(this,Et).sendMessagePromise(Oe.getMessages)}getChatMessagesPaginated(e,i,r,n=0,s=""){return u(this,null,function*(){const o={timeStamp:e,size:i,from:n,reversed:r,channelId:s},c=yield a(this,Et).sendMessagePromise(Oe.getPaginatedMessages,TR.toBinary(o));return c.payload?bR.fromBinary(c.payload):{messages:[],next:!1}})}sendMessageToRoom(e,i){const r={payloadType:i,payload:e};a(this,Et).sendMessage(Oe.sendMessageToRoom,IR.toBinary(r))}sendMessageToPeers(e,i,r){const n={payloadType:i,peerIds:r,payload:e};a(this,Et).sendMessage(Oe.sendMessageToPeers,RR.toBinary(n))}sendMessageToChannel(e,i,r){const n={payloadType:i,channelId:r,payload:e};a(this,Et).sendMessage(Oe.sendMessageToChannel,DR.toBinary(n))}sendMessage(e,i,r,n){if(n&&this.sendMessageToChannel(e,i,n),r&&r.length>0){this.sendMessageToPeers(e,i,r);return}this.sendMessageToRoom(e,i)}editMessage(e,i,r,n,s){return u(this,null,function*(){const o={chatId:e,payloadType:r,payload:i};n&&(o.channelId=n),s!==void 0&&(o.pinned=s);const c=yield a(this,Et).sendMessagePromise(Oe.editMessage,LR.toBinary(o));return Gc.fromBinary(c.payload).message})}deleteMessage(e,i){return u(this,null,function*(){const r={chatId:e};i&&(r.channelId=i);const n=yield a(this,Et).sendMessagePromise(Oe.deleteMessage,WR.toBinary(r)),s=$c.fromBinary(n.payload);return L({id:s.chatId},s.channelId?{channelId:s.channelId}:{})})}searchMessages(e,i){return u(this,null,function*(){var r,n,s;const o={searchTerm:e,timeStamp:(r=i.timestamp)!=null?r:Date.now(),size:(n=i.size)!=null?n:75,from:0,reversed:(s=i.reversed)!=null?s:!0};i.channelId&&(o.channelId=i.channelId);try{const c=yield a(this,Et).sendMessagePromise(Oe.searchChannelMessages,qR.toBinary(o));return vf.fromBinary(c.payload).messages}catch(c){return[]}})}getAllChannels(){return u(this,null,function*(){try{const e=yield a(this,Et).sendMessagePromise(Oe.getAllChatChannels);return Qi.fromBinary(e.payload).chatChannels.map(an.formatChannel)}catch(e){return[]}})}markLastReadMessage(e,i){return u(this,null,function*(){const r=yield a(this,Et).sendMessagePromise(Oe.markChannelIndexAsRead,$R.toBinary({channelId:e,userId:i.userId,channelIndex:i.channelIndex}));return KR.fromBinary(r.payload).channelIndex})}setPinState(e,i){return u(this,null,function*(){const r={chatId:e.id,pinned:i,channelId:e.channelId},n=yield a(this,Et).sendMessagePromise(Oe.pinMessage,xR.toBinary(r));return qc.fromBinary(n.payload)})}on(e,i){let r,n;switch(e){case Oe.sendMessageToRoom:{r=Tu.fromBinary.bind(Tu),n=Tu.create();break}case Oe.sendMessageToPeers:{r=ku.fromBinary.bind(ku),n=ku.create();break}case Oe.editMessage:{r=Gc.fromBinary.bind(Gc),n=Gc.create();break}case Oe.pinMessage:{r=qc.fromBinary.bind(qc),n=qc.create();break}case Oe.deleteMessage:{r=$c.fromBinary.bind($c),n=$c.create();break}}if(!r){l.warn(`ChatSocketHandler::Event ${e} is not recognized`);return}a(this,Et).on(e,({payload:s})=>{let o=n;try{o=r(s)}catch(c){l.error("chatSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}}Et=new WeakMap,fi([S.trace("SocketService.getChatMessages")],ri.prototype,"getChatMessages",1),fi([S.trace("SocketService.getChatMessagesPaginated")],ri.prototype,"getChatMessagesPaginated",1),fi([S.trace("SocketService.sendMessageToRoom")],ri.prototype,"sendMessageToRoom",1),fi([S.trace("SocketService.sendMessageToPeers")],ri.prototype,"sendMessageToPeers",1),fi([S.trace("SocketService.sendMessageToChannel")],ri.prototype,"sendMessageToChannel",1),fi([S.trace("SocketService.sendMessage")],ri.prototype,"sendMessage",1),fi([S.trace("SocketService.editMessage")],ri.prototype,"editMessage",1),fi([S.trace("SocketService.deleteMessage")],ri.prototype,"deleteMessage",1),fi([S.trace("SocketService.searchMessages")],ri.prototype,"searchMessages",1),fi([S.trace("SocketService.getAllChannels")],ri.prototype,"getAllChannels",1),fi([S.trace("SocketService.markLastReadMessage")],ri.prototype,"markLastReadMessage",1);function DA(t){return t.replace(/([-_]\w)/g,e=>e[1].toUpperCase())}function vi(t){if(!t||typeof t!="object")return t;if(Array.isArray(t))return t.map(i=>vi(i));const e={};return Object.keys(t).forEach(i=>{const r=Cl(i)?i:DA(i);e[r]=vi(t[i])}),e}function OA(t){return t.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function Mf(t){if(!t||typeof t!="object")return t;if(Array.isArray(t))return t.map(i=>Mf(i));const e={};return Object.keys(t).forEach(i=>{const r=Cl(i)?i:OA(i);e[r]=t[i]}),e}function Kc(t,e={}){return t==null?{}:(Object.getOwnPropertyNames(t).forEach(i=>{if(typeof t[i]!="function"){if(typeof t[i]=="object"){Kc(t[i],e[i]={});return}e[i]=t[i]}}),e)}class Af{constructor(e){m(this,"defaults"),this.defaults={baseURL:e.baseURL,headers:{common:{}},timeout:e.timeout,retry:e.retry,retryDelay:e.retryDelay}}buildURL(e,i){const{baseURL:r}=this.defaults,n=e.startsWith("http")?e:`${r}${e.startsWith("/")?e:`/${e}`}`;if(i){const s=new URLSearchParams;return Object.entries(i).forEach(([o,c])=>{s.append(o,c)}),`${n}${n.includes("?")?"&":"?"}${s.toString()}`}return n}request(e){return u(this,null,function*(){var i;const r=((i=e.method)==null?void 0:i.toUpperCase())||"GET",n=this.buildURL(e.url||"",e.params),s=L(L({},this.defaults.headers.common),e.headers);r!=="GET"&&r!=="HEAD"&&e.data&&!s["Content-Type"]&&(s["Content-Type"]="application/json");const o=s["Content-Type"]==="application/json"?JSON.stringify(e.data):e.data,c={method:r,headers:s,body:r!=="GET"&&r!=="HEAD"&&e.data?o:void 0},d=e.timeout||this.defaults.timeout,h=e.retry!==void 0?e.retry:this.defaults.retry,p=e.retryDelay||this.defaults.retryDelay;try{const g=new AbortController,y=setTimeout(()=>g.abort(),d);c.signal=g.signal;const T=yield fetch(n,c);clearTimeout(y);let b=null;const O=T.headers.get("content-type");O&&O.includes("application/json")?b=yield T.json():b=yield T.text();const R={};T.headers.forEach((G,$)=>{R[$]=G});const x={data:b,status:T.status,statusText:T.statusText,headers:R,config:e};if(!T.ok)throw x;return x}catch(g){if(g instanceof Error&&h>0)return yield new Promise(y=>setTimeout(y,p)),this.defaults.baseURL==="https://api.dyte.io"?this.defaults.baseURL="https://api.cluster.dyte.in":this.defaults.baseURL==="https://api.cluster.dyte.in"&&(this.defaults.baseURL="https://api.dyte.io"),this.request(j(L({},e),{retry:h-1}));throw g}})}get(e){return u(this,arguments,function*(i,r={}){return this.request(j(L({},r),{method:"GET",url:i}))})}post(e,i){return u(this,arguments,function*(r,n,s={}){return this.request(j(L({},s),{method:"POST",url:r,data:n}))})}put(e,i){return u(this,arguments,function*(r,n,s={}){return this.request(j(L({},s),{method:"PUT",url:r,data:n}))})}}const NA=3,LA=30,VA=8e3;class xA{constructor(e,i){m(this,"ipInfo"),m(this,"fetchClient"),m(this,"requests"),m(this,"roomName"),m(this,"roomUUID"),m(this,"authToken"),m(this,"organizationId"),m(this,"iceServers"),m(this,"pluginInformation"),m(this,"userDetails"),m(this,"roomDetails"),m(this,"context"),this.context=e;const{timeout:r=VA,retry:n=NA,retryDelay:s=LA,baseURL:o="https://api.dyte.io",authToken:c,cachedUserDetails:d}=i||{};this.iceServers=d==null?void 0:d.iceServers,this.pluginInformation=d==null?void 0:d.pluginInformation,this.userDetails=d==null?void 0:d.userDetails,this.roomDetails=d==null?void 0:d.roomDetails,this.requests=new Af({baseURL:o,timeout:r,retry:n,retryDelay:s,responseType:"json"}),this.fetchClient=new Af({baseURL:"",timeout:r,retry:n,retryDelay:s,responseType:"json"}),this.setAuthToken(c,{bearer:!0});const h=this.requests.request.bind(this.requests);this.requests.request=p=>u(this,null,function*(){var g,y,T,b,O;try{S.injectContext(this.requests.defaults.headers.common);const R=yield h(p);return p.url!==S.logsEndpoint&&l.debug("xhr::fetch",{networkCall:{status:R.status,statusText:R.statusText,baseURL:p.baseURL||this.requests.defaults.baseURL,url:p.url,method:p.method}}),R}catch(R){throw R?(((g=R.config)==null?void 0:g.url)!==S.logsEndpoint&&l.error("xhr::fetch",{error:R,networkCall:{status:R.status,statusText:R.statusText,baseURL:((y=R.config)==null?void 0:y.baseURL)||this.requests.defaults.baseURL,url:(T=R.config)==null?void 0:T.url,retries:(b=R.config)==null?void 0:b.retry,method:(O=R.config)==null?void 0:O.method,isOnline:navigator.onLine?"online":"offline"}}),new w(R.message||"Network request failed","0011")):new w("Unknown network error occurred","0011")}})}get peerId(){return this.context.getValue("peerId")}setAuthToken(e,i){const{bearer:r}=i||{};this.authToken=e,this.requests.defaults.headers.common.Authorization=r?`Bearer ${e}`:e}setHeader(e,i){this.requests.defaults.headers.common[e]=i}setRoomName(e){this.roomName=e}setRoomUUID(e){this.roomUUID=e}setOrganizationId(e){this.organizationId=e}}var UA=Object.defineProperty,FA=Object.getOwnPropertyDescriptor,ni=(t,e,i,r)=>{for(var n=r>1?void 0:r?FA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&UA(e,i,n),n};class jt extends xA{constructor(e,i){super(e,i),this.setHeader("x-dyte-web-core-version",e.getValue("sdkVersion"))}getIPDetails(){return u(this,null,function*(){var e;const{peerId:i}=this;try{const r=yield Bl.getIPDetails({peerId:i,apiHostnames:xg(this.context),logger:l});if(l.log("ipInfo",{ipInfo:r}),((e=r==null?void 0:r.loc)==null?void 0:e.length)>5)return r;throw Error("Insufficient data")}catch(r){l.warn("ApiClient.getRoomNodeLinkAndTitleV1 Failed to get ip details",{error:{name:r.name,message:r.message}});return}})}getICEServers(){return u(this,null,function*(){if(this.iceServers)return this.iceServers;const{success:e,iceServers:i}=(yield this.requests.get("/iceservers")).data;if(e)return(i==null?void 0:i.length)>0&&(this.iceServers=i),i})}getPlugins(){return u(this,null,function*(){var e,i,r,n,s,o,c;if(this.pluginInformation)return this.pluginInformation;const{plugins:d}=(yield this.requests.get("/v2/plugins/user")).data.data,h=((i=(e=z.getValue(ie.V1_PLUGINS))==null?void 0:e.toString())==null?void 0:i.split(","))||[],p=d.reduce((g,y)=>(g[h.includes(y.id)?"v1":"v2"].push(j(L({},y),{name:y.name.replace("v2","")})),g),{v1:[],v2:[]});return(s=(n=(r=this.context.getValue("modules"))==null?void 0:r.devTools)==null?void 0:n.plugins)!=null&&s.length&&((c=(o=this.context.getValue("modules"))==null?void 0:o.devTools)==null||c.plugins.forEach(g=>{var y,T,b;const O=j(L({},ca),{tags:[...ca.tags],baseUrl:`http://localhost:${g.port}`,name:g.name,picture:(y=g.picture)!=null?y:ca.picture,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),id:g.id,organizationId:this.organizationId,description:(T=g.description)!=null?T:ca.description,staggered:(b=g.staggered)!=null?b:ca.staggered});p.v2.push(O)})),p.v2})}getPluginDetails(e){return u(this,null,function*(){const{plugin:i}=(yield this.requests.get(`/v2/plugins/view/${e}`)).data.data;return i})}getPluginConfig(e){return u(this,null,function*(){return(yield this.fetchClient.get(`${e}/dyte-config.json`)).data})}authorizePlugin(e){return u(this,null,function*(){const i={peerId:this.peerId},{token:r}=(yield this.requests.post(`/v2/plugins/authorize/${e}`,i)).data.data;return r})}getPresignedUrls(e,i){return u(this,null,function*(){const r=Kn(this.context,"chat_upload_expiry"),n={roomUUID:this.roomUUID,filename:e,expiry:typeof r=="number"?r:void 0};z.hasFeature(ie.FEAT_CHAT_SDK)&&(n.viewType=i);const{getLocation:s,putLocation:o}=(yield this.requests.post("/v1/meetings/genPreSignedUploadUrl",n)).data.data;return{getLocation:s,putLocation:o}})}uploadFile(e,i){return u(this,null,function*(){if(navigator.isReactNative&&"uri"in e)try{yield fetch(i,{method:"PUT",headers:{"Content-Type":"application/octet-stream"},body:{uri:e.uri,name:e.name}})}catch(r){l.error(`sendFileMessage::${r}`)}else yield this.fetchClient.put(i,e,{headers:{"Content-Type":e.type}})})}startLivestreaming(e){return u(this,arguments,function*({manualIngestion:i}){const r=vi(yield this.requests.post(`/v2/meetings/${this.context.getValue("meetingId")}/livestreams`,{manual_ingest:!!i})).data.data;return{playbackUrl:r.playbackUrl,status:r.status,manualIngest:r.manualIngest,ingestionCredentials:r.streamKey?{ingestionServer:r.ingestServer,streamKey:r.streamKey}:null}})}stopLivestreaming(){return u(this,null,function*(){return this.requests.post(`/v2/meetings/${this.context.getValue("meetingId")}/active-livestream/stop`)})}getActiveLivestream(){return u(this,null,function*(){const e=vi((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 vi(e)})}startRecording(e,i){return u(this,null,function*(){return(yield this.requests.post("/v2/recordings",j(L({},Mf(e)),{meeting_id:this.context.getValue("meetingId"),allow_multiple_recordings:!!i}))).data.data.id})}updateRecording(e,i){return u(this,null,function*(){return this.requests.put(`v2/recordings/${e}`,{action:i})})}getActiveRecording(){return u(this,null,function*(){const{status:e,id:i}=(yield this.requests.get(`v2/recordings/active-recording/${this.context.getValue("meetingId")}`)).data.data;return{status:e,id:i}})}getActiveTranscript(){return u(this,null,function*(){const{transcript_download_url:e}=(yield this.requests.get(`v2/meetings/${this.context.getValue("meetingId")}/active-transcript`)).data.data;try{return{transcript:(yield this.fetchClient.get(e)).data}}catch(i){throw new w("Cant fetch transcript s3 url","1801")}})}getRoomNodeData(){return u(this,null,function*(){const e=yield this.getIPDetails();if(this.ipInfo=e,this.roomDetails)return this.roomDetails;const{roomNodeLink:i,title:r,useHiveMedia:n,sfu:s}=vi((yield this.requests.post("v2/internals/rooms",{ip_information:e})).data.data);return{roomNodeUrl:i,meetingTitle:r,useHiveMedia:n!=null?n:!1,sfu:s}})}}ni([S.trace("APIClient.getIPDetails")],jt.prototype,"getIPDetails",1),ni([S.trace("APIClient.getICEServers")],jt.prototype,"getICEServers",1),ni([S.trace("APIClient.getPlugins")],jt.prototype,"getPlugins",1),ni([S.trace("APIClient.startLivestreaming")],jt.prototype,"startLivestreaming",1),ni([S.trace("APIClient.stopLivestreaming")],jt.prototype,"stopLivestreaming",1),ni([S.trace("APIClient.getActiveLivestream")],jt.prototype,"getActiveLivestream",1),ni([S.trace("APIClient.getUserDetails")],jt.prototype,"getUserDetails",1),ni([S.trace("APIClient.startRecording")],jt.prototype,"startRecording",1),ni([S.trace("APIClient.stopRecording")],jt.prototype,"updateRecording",1),ni([S.trace("APIClient.getActiveRecording")],jt.prototype,"getActiveRecording",1),ni([S.trace("APIClient.getActiveTranscript")],jt.prototype,"getActiveTranscript",1),ni([S.trace("APIClient.getRoomNodeData")],jt.prototype,"getRoomNodeData",1);let Mu;function BA(t,e){return Mu=new jt(t,e),Mu}function ht(){return Mu}function WA(t,e){return`<blockquote>${e.replace(/<blockquote>[.\s\S]*<\/blockquote>\n\n/m,"")}</blockquote>
14
+ ${t}`}const es={maxInvocations:5,period:1};function At(t,e){return function(i,r,n){const s=n.value;let o=0,c=Date.now();return n.value=function(...d){const h=Date.now(),p=e?this[e]:t;if(h-c>p.period*1e3&&(c=h,o=0),o>=p.maxInvocations)throw new w(`Method rate limit ${p.maxInvocations} invocations/${p.period}sec exceeded`,"0013");return o+=1,s.apply(this,d)},n}}var jA=Object.defineProperty,HA=Object.getOwnPropertyDescriptor,pt=(t,e,i,r)=>{for(var n=r>1?void 0:r?HA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&jA(e,i,n),n};const qA=["text","image","file","custom","poll"],zc={maxInvocations:180,period:60};var re,ts,ze,is,Yc,Au,Df,Qc,Du,Of;let Qe=(Of=class extends Wt{constructor(t,e,i,r,n){super(),f(this,Au),f(this,Qc),m(this,"messages"),m(this,"channels",[]),f(this,re,void 0),f(this,ts,void 0),f(this,ze,void 0),f(this,is,void 0),f(this,Yc,void 0),m(this,"maxTextLimit",2e3),v(this,Yc,t),v(this,ze,e),v(this,is,i),v(this,re,r),v(this,ts,n),this.messages=[]}setMaxTextLimit(t){this.maxTextLimit=t}sendMessageInternal(t,e,i){return u(this,arguments,function*(r,n,s,o={}){switch(r.type){case"text":{const c=o.replyTo&&o.replyTo.type==="text"?WA(r.message,o.replyTo.message):r.message;yield this.sendTextMessageInternal(c,n,s);break}case"image":yield this.sendImageMessageInternal(r.image,n,s);break;case"file":yield this.sendFileMessageInternal(r.file,n,s);break;default:l.error("sendMessage::message_type_not_supported",{dyteChat:{messageType:r.type}});break}})}sendTextMessageInternal(t,e,i){return u(this,null,function*(){var r,n,s,o,c,d;if(t.length>this.maxTextLimit)throw new w("Max character limit breached","0503");if(e&&e.length>0){if(!((r=a(this,re).permissions)!=null&&r.chatPrivate.canSend)||!((n=a(this,re).permissions)!=null&&n.chatPrivate.text))throw l.error("sendTextMessage::private_chat_permission_denied"),new w("Could not send message to private chat.","0501")}else if(!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,re).permissions)==null?void 0:c.chatPublic)!=null&&d.text))throw l.error("sendTextMessage::public_chat_permission_denied"),new w("Could not send message to public chat.","0501");if(!t)throw l.error("sendTextMessage::message_can_not_be_empty"),new w("Message can not be empty.","0502");if(i){a(this,ze).sendMessageToChannel(t,St.TEXT,i);return}let h=[];e&&e.length>0&&(e.push(a(this,re).id),h=a(this,ts).joined.toArray().filter(p=>e.includes(p.id)).map(p=>p.userId),h.push(a(this,re).userId)),a(this,ze).sendMessage(t,St.TEXT,e)})}sendImageMessageInternal(t,e,i){return u(this,null,function*(){var r,n,s,o,c,d;if(e&&e.length>0){if(!((r=a(this,re).permissions)!=null&&r.chatPrivate.canSend)||!((n=a(this,re).permissions)!=null&&n.chatPrivate.files)){l.error("sendImageMessage::private_chat_permission_denied");return}}else if(!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,re).permissions)==null?void 0:c.chatPublic)!=null&&d.files)){l.error("sendImageMessage::permission_denied");return}if(!t){l.error("sendImageMessage::required_argument_image_can_not_be_empty");return}if(!["image/gif","image/jpeg","image/png"].includes(t.type)){l.error("sendImageMessage::image_type_not_supported",{dyteChat:{imageType:t.type}});return}try{const h=ht(),{getLocation:p,putLocation:g}=yield h.getPresignedUrls(t.name,a(this,re).config.viewType);if(yield h.uploadFile(t,g),i){a(this,ze).sendMessageToChannel(p,St.IMAGE,i);return}let y=[];e&&e.length>0&&(e.push(a(this,re).id),y=a(this,ts).joined.toArray().filter(T=>e.includes(T.id)).map(T=>T.userId),y.push(a(this,re).userId)),a(this,ze).sendMessage(p,St.IMAGE,e)}catch(h){throw new w("Error sending image message.","0500")}})}sendFileMessageInternal(t,e,i){return u(this,null,function*(){var r,n,s,o,c,d;if(e&&e.length>0){if(!((r=a(this,re).permissions)!=null&&r.chatPrivate.canSend)||!((n=a(this,re).permissions)!=null&&n.chatPrivate.files)){l.error("sendFileMessage::private_chat_permission_denied");return}}else if(!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,re).permissions)==null?void 0:c.chatPublic)!=null&&d.files)){l.error("sendFileMessage::permission_denied");return}if(!t){l.error("sendFileMessage::required_argument_file_can_not_be_empty");return}try{const h=ht(),{getLocation:p,putLocation:g}=yield h.getPresignedUrls(t.name,a(this,re).config.viewType);if(yield h.uploadFile(t,g),i){a(this,ze).sendMessageToChannel(JSON.stringify({link:p,name:t.name,size:"size"in t?t.size:0}),St.FILE,i);return}let y=[];e&&e.length>0&&(e.push(a(this,re).id),y=a(this,ts).joined.toArray().filter(b=>e.includes(b.id)).map(b=>b.userId),y.push(a(this,re).userId));const T=JSON.stringify({link:p,name:t.name,size:"size"in t?t.size:0});a(this,ze).sendMessage(T,St.FILE,e)}catch(h){throw new w("Error sending file message.","0500")}})}get rateLimits(){return zc}updateRateLimits(t,e){zc.maxInvocations=t,zc.period=e}sendTextMessage(t,e){return u(this,null,function*(){return this.sendTextMessageInternal(t,e)})}sendCustomMessage(t,e){return u(this,null,function*(){var i,r,n,s,o,c,d,h,p,g,y,T,b,O,R;if(e&&e.length>0){if(!((i=a(this,re).permissions)!=null&&i.chatPrivate.canSend)||!((r=a(this,re).permissions)!=null&&r.chatPrivate.files)||!((n=a(this,re).permissions)!=null&&n.chatPrivate.text)){l.error("sendCustomMessage::private_chat_permission_denied");return}}else if(!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,re).permissions)==null?void 0:c.chatPublic)!=null&&d.files)||!((p=(h=a(this,re).permissions)==null?void 0:h.chatPublic)!=null&&p.text)){l.error("sendCustomMessage::permission_denied");return}const x=$=>u(this,null,function*(){try{if(typeof $=="string")return{link:$};const I=ht(),{getLocation:se,putLocation:ne}=yield I.getPresignedUrls($.name,a(this,re).config.viewType);return yield I.uploadFile($,ne),{link:se,type:$.type,name:$.name,size:$.size}}catch(I){throw new w("Error sending image message.","0500")}}),G=j(L({},t),{files:yield Promise.all((y=(g=t.files)!=null?g:[])==null?void 0:y.map($=>u(this,null,function*(){return x($)}))),images:yield Promise.all((b=(T=t.images)!=null?T:[])==null?void 0:b.map($=>u(this,null,function*(){return x($)}))),videos:yield Promise.all((R=(O=t.videos)!=null?O:[])==null?void 0:R.map($=>u(this,null,function*(){return x($)})))});a(this,ze).sendMessage(JSON.stringify(G),St.CUSTOM,e)})}sendImageMessage(t,e){return u(this,null,function*(){return this.sendImageMessageInternal(t,e)})}sendFileMessage(t,e){return u(this,null,function*(){return this.sendFileMessageInternal(t,e)})}sendMessage(t,e){return u(this,null,function*(){return this.sendMessageInternal(t,e)})}editTextMessage(t,e,i){return u(this,null,function*(){var r,n,s,o,c,d;if(((n=(r=a(this,re).permissions)==null?void 0:r.chatMessage)==null?void 0:n.canEdit)==="NONE")throw new w("Not permitted to edit messages","0501");if(!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.canSend)||!((d=(c=a(this,re).permissions)==null?void 0:c.chatPublic)!=null&&d.text)){l.error("editTextMessage::permission_denied");return}if(!e){l.error("editTextMessage::message_can_not_be_empty");return}a(this,ze).editMessage(t,e,St.TEXT,i)})}editImageMessage(t,e,i){return u(this,null,function*(){var r,n,s,o;if(!((n=(r=a(this,re).permissions)==null?void 0:r.chatPublic)!=null&&n.canSend)||!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.files)){l.error("editImageMessage::permission_denied");return}if(!e){l.error("editImageMessage::required_argument_image_can_not_be_empty");return}if(!["image/gif","image/jpeg","image/png"].includes(e.type)){l.error("sendImageMessage::image_type_not_supported",{dyteChat:{imageType:e.type}});return}try{const c=ht(),{getLocation:d,putLocation:h}=yield c.getPresignedUrls(e.name,a(this,re).config.viewType);yield c.uploadFile(e,h),a(this,ze).editMessage(t,d,St.IMAGE,i)}catch(c){throw new w("Error editing image message.","0500")}})}editFileMessage(t,e,i){return u(this,null,function*(){var r,n,s,o;if(!((n=(r=a(this,re).permissions)==null?void 0:r.chatPublic)!=null&&n.canSend)||!((o=(s=a(this,re).permissions)==null?void 0:s.chatPublic)!=null&&o.files)){l.error("sendFileMessage::permission_denied");return}if(!e){l.error("sendFileMessage::required_argument_file_can_not_be_empty");return}try{const c=ht(),{getLocation:d,putLocation:h}=yield c.getPresignedUrls(e.name,a(this,re).config.viewType);yield c.uploadFile(e,h),a(this,ze).editMessage(t,JSON.stringify({link:d,name:e.name,size:"size"in e?e.size:0}),St.FILE,i)}catch(c){throw new w("Error editing file message.","0500")}})}editMessage(t,e,i){return u(this,null,function*(){switch(e.type){case"text":{this.editTextMessage(t,e.message,i);break}case"image":{this.editImageMessage(t,e.image,i);break}case"file":{this.editFileMessage(t,e.file,i);break}default:{l.error("editMessage::message_type_not_supported",{dyteChat:{messageType:e.type}});break}}})}deleteMessage(t,e){return u(this,null,function*(){var i,r;if(((r=(i=a(this,re).permissions)==null?void 0:i.chatMessage)==null?void 0:r.canDelete)==="NONE")throw new w("Not permitted to delete messages","0501");a(this,ze).deleteMessage(t,e)})}getMessagesByUser(t){return this.messages.filter(e=>e.userId===t)}getMessagesByType(t){return this.messages.filter(e=>e.type===t)}pin(t){return u(this,null,function*(){if(!a(this,Qc,Du))throw new w("Can`t pin message without joining room","0505");if(!a(this,re).permissions.pinParticipant)throw new w("You do not have permission to pin messages.","0501");const e=this.messages.find(i=>i.id===t);if(e){a(this,ze).setPinState(e,!0);return}throw new w(`No message found with id: ${t}`,"0504")})}unpin(t){return u(this,null,function*(){if(!a(this,Qc,Du))throw new w("Can`t unpin message without joining room","0505");if(!a(this,re).permissions.pinParticipant)throw new w("You do not have permission to unpin messages.","0501");const e=this.messages.find(i=>i.id===t);if(e){a(this,ze).setPinState(e,!1);return}throw new w(`No message found with id: ${t}`,"0504")})}getMessages(t,e,i,r=0,n=void 0){return u(this,null,function*(){const s=yield a(this,ze).getChatMessagesPaginated(t,e,i,r,n);return{messages:s.messages.map(o=>Zi.formatSocketServiceMessage(o)),next:s.next}})}createChannel(t,e){return u(this,arguments,function*(i,r,n={}){var s;const o=(s=a(this,re).permissions)==null?void 0:s.chatChannel;if(o){if(o.canCreate==="NONE")throw new w("Not permitted to create channels","0501");if(n.visibility==="public"&&!(o.canCreate==="PUBLIC"||o.canCreate==="ALL"))throw new w("Not permitted to create public channels","0501");if(n.visibility==="private"&&!(o.canCreate==="PRIVATE"||o.canCreate==="ALL"))throw new w("Not permitted to create private channels","0501")}if(!i||i.trim().length===0)throw new w("channel name cannot be empty.","0510");const c=[...new Set([...r,a(this,re).userId])];return yield a(this,is).createChannel(i.trim(),c,n.displayPictureUrl,n.visibility,n.isDirectMessage)})}updateChannel(t,e){var i,r,n,s,o;const c=this.channels.find(p=>p.id===t),d=(i=a(this,re).permissions)==null?void 0:i.chatChannel;if(d){if(d.canUpdate==="NONE")throw new w("Not permitted to update channels","0501");if(c.visibility==="public"&&!(d.canUpdate==="PUBLIC"||d.canUpdate==="ALL"))throw new w("Not permitted to update public channels","0501");if(c.visibility==="private"&&!(d.canUpdate==="PRIVATE"||d.canUpdate==="ALL"))throw new w("Not permitted to update private channels","0501")}const h={memberIds:(r=e.memberIds)!=null?r:c.memberIds,displayName:(n=e.displayName)!=null?n:c.displayName,displayPictureUrl:(s=e.displayPictureUrl)!=null?s:c.displayPictureUrl,visibility:(o=e.visibility)!=null?o:c.visibility};return a(this,is).updateChannel(t,h)}sendMessageToChannel(t,e){return u(this,arguments,function*(i,r,n={}){return this.sendMessageInternal(i,null,r,n)})}getChannelMembers(t){return u(this,null,function*(){return a(this,is).getChannelMembers(t)})}searchMessages(t){return u(this,arguments,function*(e,i={}){if(!z.hasFeature(ie.FEAT_CHAT_SDK_SEARCH))throw new w("searchMessages is temporarily disabled!","0506");return(yield a(this,ze).searchMessages(e,i)).map(Zi.formatSocketServiceMessage)})}markLastReadMessage(t,e){return u(this,null,function*(){yield a(this,ze).markLastReadMessage(t,e);const i=this.channels.find(r=>r.id===t);if(i){const r=j(L({},i),{unreadCount:0});this.channels=this.channels.map(n=>n.id===t?r:n),this.emit("channelMessageUpdate",r)}})}get pinned(){return this.messages.filter(t=>t.pinned)}},re=new WeakMap,ts=new WeakMap,ze=new WeakMap,is=new WeakMap,Yc=new WeakMap,Au=new WeakSet,Df=function(){return a(this,Yc).getValue("connectionHandler")},Qc=new WeakSet,Du=function(){return a(this,Au,Df).socketJoined===!0},Of);pt([S.trace("DyteChat.sendTextMessage"),At(zc)],Qe.prototype,"sendTextMessage",1),pt([S.trace("DyteChat.sendImageMessage"),At({maxInvocations:20,period:60})],Qe.prototype,"sendImageMessage",1),pt([S.trace("DyteChat.sendFileMessage"),At({maxInvocations:20,period:60})],Qe.prototype,"sendFileMessage",1),pt([S.trace("DyteChat.sendMessage"),At({maxInvocations:180,period:60})],Qe.prototype,"sendMessage",1),pt([S.trace("DyteChat.editTextMessage")],Qe.prototype,"editTextMessage",1),pt([S.trace("DyteChat.editImageMessage")],Qe.prototype,"editImageMessage",1),pt([S.trace("DyteChat.editFileMessage")],Qe.prototype,"editFileMessage",1),pt([S.trace("DyteChat.editMessage")],Qe.prototype,"editMessage",1),pt([S.trace("DyteChat.deleteMessage")],Qe.prototype,"deleteMessage",1),pt([S.trace("DyteChat.createChannel")],Qe.prototype,"createChannel",1),pt([S.trace("DyteChat.updateChannel")],Qe.prototype,"updateChannel",1),pt([S.trace("DyteChat.sendMessageToChannel")],Qe.prototype,"sendMessageToChannel",1),pt([S.trace("DyteChat.getChannelMembers")],Qe.prototype,"getChannelMembers",1),pt([S.trace("DyteChat.searchMessages")],Qe.prototype,"searchMessages",1),pt([S.trace("DyteChat.markLastReadMessage")],Qe.prototype,"markLastReadMessage",1),Qe=pt([ut("0500")],Qe);var GA=Object.defineProperty,$A=Object.getOwnPropertyDescriptor,JA=(t,e,i,r)=>{for(var n=r>1?void 0:r?$A(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&GA(e,i,n),n},Xc,Nf;const on=(Nf=class{constructor(t,e,i,r,n){m(this,"chat"),m(this,"chatSocketHandler"),m(this,"chatChannelSocketHandler"),m(this,"self"),f(this,Xc,void 0),v(this,Xc,t),this.chatSocketHandler=e,this.chatChannelSocketHandler=i,this.chat=new Qe(t,e,i,r,n),this.self=r,this.setupEvents()}static init(t,e,i,r,n){return u(this,null,function*(){return new on(t,e,i,r,n)})}static formatMessage(t){return j(L({},t),{time:new Date(t.time),type:qA[t.type]})}static formatSocketServiceMessage(t){const e=t.createdAt*1e3,i={displayName:t.displayName,id:t.chatId,time:e,timeMs:t.createdAtMs,type:t.payloadType,isEdited:t.isEdited,userId:t.userId,targetUserIds:t.targetUserIds,channelId:t.channelId,channelIndex:t.channelIndex,message:"",link:"",name:"",html:"",images:[],videos:[],files:[],size:0,pinned:t.pinned};switch(i.type){case St.TEXT:{i.message=t.payload;break}case St.IMAGE:{i.link=t.payload;break}case St.FILE:{const{link:r,name:n,size:s}=JSON.parse(t.payload);i.link=r,i.name=n,i.size=s;break}case St.CUSTOM:{const{html:r,images:n,message:s,videos:o,files:c}=JSON.parse(t.payload);i.message=s,i.html=r,i.images=n,i.videos=o,i.files=c;break}}return on.formatMessage(i)}getChatMessages(){return u(this,null,function*(){if(this.self.config.viewType==="LIVESTREAM"||this.self.config.viewType==="CHAT"||z.hasFeature(ie.FEAT_PAGINATED_CHAT))return;const t=yield this.chatSocketHandler.getChatMessages();if(!(t!=null&&t.payload))return;const e=vf.fromBinary(t.payload).messages;this.chat.messages=e.map(i=>on.formatSocketServiceMessage(i))})}setupEvents(){a(this,Xc).getValue("peerSessionStore").on(P.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){this.getChatMessages()})),this.chatSocketHandler.on(Oe.sendMessageToRoom,t=>{const e=on.formatSocketServiceMessage(t.message);if(!e.channelId)this.chat.messages=[...this.chat.messages,e];else{const i=this.chat.channels.find(r=>r.id===e.channelId);i&&(i.latestMessage=e,i.unreadCount+=1,this.chat.emit("channelMessageUpdate",i))}this.chat.emit("chatUpdate",{action:"add",message:e,messages:this.chat.messages})}),this.chatSocketHandler.on(Oe.sendMessageToPeers,t=>{const e=on.formatSocketServiceMessage(t.message);this.chat.messages=[...this.chat.messages,e],this.chat.emit("chatUpdate",{action:"add",message:e,messages:this.chat.messages})}),this.chatSocketHandler.on(Oe.editMessage,t=>{const e=on.formatSocketServiceMessage(t.message);if(e.channelId){this.chat.emit("chatUpdate",{action:"edit",message:e,messages:this.chat.messages});return}const i=this.chat.messages.findIndex(r=>r.id===e.id);i!==-1&&(this.chat.messages[i]=e,this.chat.emit("chatUpdate",{action:"edit",message:e,messages:this.chat.messages}))}),this.chatSocketHandler.on(Oe.deleteMessage,t=>{if(t.channelId){this.chat.emit("chatUpdate",{action:"delete",message:{id:t.chatId,channelId:t.channelId},messages:this.chat.messages});return}const e=this.chat.messages.findIndex(r=>r.id===t.chatId);if(e===-1)return;const[i]=this.chat.messages.splice(e,1);this.chat.emit("chatUpdate",{action:"delete",message:i,messages:this.chat.messages})}),this.chatChannelSocketHandler.on(nn.createChatChannel,t=>{const[e]=t.chatChannels,i=an.formatChannel(e);this.chat.channels.push(i),this.chat.emit("channelCreate",i)}),this.chatSocketHandler.on(Oe.pinMessage,t=>{const e=this.chat.messages.findIndex(r=>r.id===t.chatId);if(e===-1)return;const i=this.chat.messages[e];i.pinned=t.pinned,this.chat.messages[e]=i,this.chat.emit("chatUpdate",{action:"edit",message:i,messages:this.chat.messages})}),this.chatChannelSocketHandler.on(nn.updateChatChannel,t=>{const[e]=t.chatChannels,i=an.formatChannel(e);this.chat.channels=this.chat.channels.map(r=>r.id===i.id?i:r),this.chat.emit("channelUpdate",i)})}},Xc=new WeakMap,Nf);let Zi=on;JA([S.trace("ChatController.setupEvents")],Zi.prototype,"setupEvents",1);var KA=Object.defineProperty,zA=Object.getOwnPropertyDescriptor,YA=(t,e,i,r)=>{for(var n=r>1?void 0:r?zA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&KA(e,i,n),n},Ou,Lf,Nu,Vf,ma,ga,Zc,xf;let Lu=(xf=class extends Wt{constructor(t,e,i){super(),f(this,Ou),f(this,Nu),m(this,"items"),f(this,ma,void 0),f(this,ga,void 0),f(this,Zc,void 0),v(this,Zc,t),v(this,ma,e),v(this,ga,i),this.items=[]}create(t,e,i=!1,r=!1){return u(this,null,function*(){if(!a(this,Nu,Vf))throw new w("Can't create polls without joining room","0705");if(!a(this,ma).permissions.polls.canCreate){l.error("DytePolls::create::permission_denied");return}if(!t||!e){l.error("DytePolls::question_and_options_can_not_be_empty",{dytePolls:{hasQuestion:!!t,optionsLength:e==null?void 0:e.length}});return}if(e.length<2){l.error("DytePolls::there_must_be_at_least_two_options",{dytePolls:{hasQuestion:!!t,optionsLength:e.length}});return}yield a(this,ga).createPoll(t,e,i,r)})}vote(t,e){return u(this,null,function*(){if(!a(this,ma).permissions.polls.canVote){l.error("DytePolls::vote::permission_denied");return}yield a(this,ga).votePoll(t,e)})}},Ou=new WeakSet,Lf=function(){return a(this,Zc).getValue("connectionHandler")},Nu=new WeakSet,Vf=function(){var t;return((t=a(this,Ou,Lf))==null?void 0:t.socketJoined)===!0},ma=new WeakMap,ga=new WeakMap,Zc=new WeakMap,xf);Lu=YA([ut("0700")],Lu);var QA=Object.defineProperty,XA=Object.getOwnPropertyDescriptor,ZA=(t,e,i,r)=>{for(var n=r>1?void 0:r?XA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&QA(e,i,n),n},fa,va,rs,Uf;const ns=(Uf=class{constructor(t,e,i){m(this,"polls"),f(this,fa,void 0),f(this,va,void 0),f(this,rs,void 0),this.polls=new Lu(t,e,i),v(this,va,e),v(this,fa,t),v(this,rs,i),this.setupEvents()}static init(t,e,i){return u(this,null,function*(){return new ns(t,e,i)})}canViewPolls(){return a(this,va).permissions.polls.canView}setupEvents(){const t={[Xi.createPoll]:r=>{r.poll&&this.updatePoll(ns.formatSocketServicePoll(r.poll))},[Xi.updatePoll]:r=>{r.poll&&this.updatePoll(ns.formatSocketServicePoll(r.poll))},[Xi.votePoll]:r=>{r.poll&&this.updatePoll(ns.formatSocketServicePoll(r.poll))}},e=()=>{a(this,fa).getValue("peerSessionStore").on(P.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(t).map(Number).forEach(r=>{a(this,rs).on(r,t[r])})},i=()=>{a(this,fa).getValue("peerSessionStore").on(P.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(t).map(Number).forEach(r=>{a(this,rs).removeListeners(r)})};a(this,va).permissions.on("permissionsUpdate",r=>u(this,null,function*(){var n;(n=r==null?void 0:r.polls)!=null&&n.canView?(yield this.getPolls(),e()):(this.polls.items=[],i())})),this.canViewPolls()&&e()}updatePoll(t){if(!this.canViewPolls())return;const e=this.polls.items.findIndex(i=>i.id===t.id);if(e>-1){const i=JSON.stringify(this.polls.items[e]);this.polls.items[e]=t,i!==JSON.stringify(t)&&this.polls.emit("pollsUpdate",{polls:this.polls.items,newPoll:!1});return}this.polls.items=[...this.polls.items,t],this.polls.emit("pollsUpdate",{polls:this.polls.items,newPoll:!0})}getPolls(){return u(this,null,function*(){const t=yield a(this,rs).getPolls();if(!(t!=null&&t.payload))return;const{polls:e}=lA.fromBinary(t.payload);this.polls.items=e.map(i=>ns.formatSocketServicePoll(i))})}static formatSocketServicePoll(t){const e=t.options.map(i=>({count:i.count,text:i.text,votes:i.votes.map(r=>({id:r.userId,name:r.name}))}));return{anonymous:t.anonymous,createdBy:t.createdBy,createdByUserId:t.createdByUserId,hideVotes:t.hideVotes,id:t.pollId,options:e,question:t.question,voted:t.votes}}},fa=new WeakMap,va=new WeakMap,rs=new WeakMap,Uf);let Ff=ns;ZA([S.trace("PollController.setupEvents")],Ff.prototype,"setupEvents",1);var e1=Object.defineProperty,t1=Object.getOwnPropertyDescriptor,i1=(t,e,i,r)=>{for(var n=r>1?void 0:r?t1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&e1(e,i,n),n},Bf=(t=>(t[t.User=0]="User",t[t.Meeting=1]="Meeting",t))(Bf||{}),ya,ed,Vu,ss,td,Wf;let xu=(Wf=class extends Wt{constructor(t,e,i,r,n){super(),f(this,ed),m(this,"selfActiveTab"),m(this,"broadcastTabChanges"),f(this,ya,void 0),f(this,ss,void 0),f(this,td,void 0),m(this,"viewType"),m(this,"meetingStartedTimestamp"),m(this,"meetingTitle"),m(this,"sessionId"),v(this,ya,t),v(this,ss,e),this.viewType=i,v(this,td,r),this.meetingTitle=n,this.broadcastTabChanges=e.permissions.canSpotlight}get socketState(){return a(this,ed,Vu).socketState}get mediaState(){return a(this,ed,Vu).mediaState}get meetingId(){return a(this,ya).getValue("meetingId")}setBroadcastTabChanges(t){if(!a(this,ss).permissions.canSpotlight)throw l.error("DyteSpotlight::setSpotlighted::permission_denied"),new w("User does not have permission to toggle spotlight","0801");this.broadcastTabChanges=t,this.emit("broadcastTabChangesUpdate",this.broadcastTabChanges),this.broadcastTabChanges&&this.assertActiveTabToRoom()}setSelfActiveTab(t,e){var i;l.info("DyteSpotlight::setActiveTab",{spotlight:{currentTab:{id:t.id,type:t.type}}}),this.selfActiveTab=t,e===0&&this.emit("selfTabUpdate",t),(i=a(this,ss).permissions)!=null&&i.canSpotlight&&this.broadcastTabChanges&&e===0&&this.assertActiveTabToRoom()}assertActiveTabToRoom(){a(this,td).broadcastMessage("spotlight",{userId:a(this,ss).userId,currentTab:this.selfActiveTab})}},ya=new WeakMap,ed=new WeakSet,Vu=function(){return a(this,ya).getValue("connectionHandler")},ss=new WeakMap,td=new WeakMap,Wf);xu=i1([ut("0800")],xu);function r1(t){let e="",i=[""];const r=[i];let n=0,s=0,o=!0,c;for(c of t)c==='"'?(o&&c===e&&(i[n]+=c),o=!o):c===","&&o?c=i[++n]="":c===`
15
+ `&&o?(e==="\r"&&(i[n]=i[n].slice(0,-1)),i=r[++s]=[c=""],n=0):i[n]+=c,e=c;return r}var n1=Object.defineProperty,s1=Object.getOwnPropertyDescriptor,jf=(t,e,i,r)=>{for(var n=r>1?void 0:r?s1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&n1(e,i,n),n};let Sr=class extends Wt{constructor(){super(),m(this,"transcripts"),this.transcripts=[]}static init(t){return u(this,null,function*(){const e=new Sr;try{t&&e.getActiveTranscript()}catch(i){l.error("Error fetching active transcriptions ",i)}return e})}static parseTranscript(t,e=!1){try{if(!t)return;const[[i,r,n,s,o,c]]=r1(t);return{id:jn(),name:o,peerId:r,userId:n,customParticipantId:s,transcript:c,isPartialTranscript:e,date:new Date(parseInt(i,10)*1e3)}}catch(i){l.error(`Failed to parse transcript: ${t}`,i);return}}static parseTranscripts(t){return t?t.split(`
16
+ `).map(e=>Sr.parseTranscript(e,!1)).filter(Boolean):[]}getActiveTranscript(){return u(this,null,function*(){try{const t=ht(),{transcript:e}=yield t.getActiveTranscript();this.transcripts=Sr.parseTranscripts(e)}catch(t){}})}onTranscript(t){return u(this,null,function*(){var e;const i=this.transcripts.filter(({peerId:r})=>r===t.peerId);if((e=i==null?void 0:i.at(-1))!=null&&e.isPartialTranscript){const r=i.at(-1);r.transcript=t.transcript,r.isPartialTranscript=t.isPartialTranscript,this.emit("transcript",r);return}this.transcripts=[...this.transcripts,t],this.emit("transcript",t)})}};jf([S.trace("DyteAi.getActiveTranscript")],Sr.prototype,"getActiveTranscript",1),Sr=jf([ut("0000")],Sr);var a1=Object.defineProperty,o1=Object.getOwnPropertyDescriptor,c1=(t,e,i,r)=>{for(var n=r>1?void 0:r?o1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&a1(e,i,n),n},cn,Sa,Vi,Hf;const qf=(Hf=class{constructor(t,e,i,r,n,s){m(this,"meta"),m(this,"ai"),f(this,cn,void 0),f(this,Sa,void 0),m(this,"aiSocketHandler"),f(this,Vi,void 0),v(this,Vi,t),this.meta=new xu(t,e,e.config.viewType,i,s),this.ai=r,v(this,cn,e),v(this,Sa,i),this.aiSocketHandler=n,e.config.viewType!==Rt.Chat&&this.setupEvents()}static init(t,e,i,r,n){return u(this,null,function*(){const s=yield Sr.init(e.permissions.transcriptionEnabled);return new qf(t,e,i,s,r,n)})}conditionallySetActiveTab(t){var e;t!=null&&t.currentTab&&((e=this.meta.selfActiveTab)==null?void 0:e.id)!==t.currentTab.id&&(this.meta.setSelfActiveTab(t.currentTab,Bf.Meeting),this.meta.emit("activeTabUpdate",t.currentTab))}setupEvents(){a(this,Vi).getValue("peerSessionStore").on(P.TRANSPORT_STATE_UPDATE,t=>{this.meta.emit("mediaConnectionUpdate",t)}),a(this,Vi).getValue("peerSessionStore").on(P.SOCKET_STATE_UPDATE,t=>{this.meta.emit("socketConnectionUpdate",t)}),a(this,Vi).getValue("peerSessionStore").on(P.ROOM_STATE,({createdAt:t,roomUuid:e})=>{const i=this.meta.meetingStartedTimestamp;if(e&&(this.meta.sessionId=e),t&&!i){const r=new Date(t*1e3);this.meta.meetingStartedTimestamp=r,this.meta.emit("meetingStartTimeUpdate",{meetingStartedTimestamp:this.meta.meetingStartedTimestamp})}}),a(this,Vi).getValue("peerSessionStore").on(P.PRODUCER_SCORE_UPDATE,({score:t})=>{t<5&&this.meta.emit("poorConnection",{score:t})}),a(this,cn).permissions.canSpotlight&&(l.info("DyteMetaController::Asserting Spotlight"),this.meta.selfActiveTab&&a(this,Sa).broadcastMessage("spotlight",{userId:a(this,cn).userId,currentTab:this.meta.selfActiveTab})),a(this,Vi).getValue("peerSessionStore").on(P.PEER_JOINED_INTERNAL,t=>u(this,null,function*(){a(this,cn).permissions.canSpotlight&&this.meta.selfActiveTab&&a(this,Sa).broadcastToPeers("spotlight",[t.id],{userId:a(this,cn).userId,currentTab:this.meta.selfActiveTab})})),a(this,Vi).getValue("peerSessionStore").on(P.ROOM_MESSAGE,t=>{var e,i;let r;if("type"in t){if(t.type!=="spotlight")return;r=L(L({},t),t.payload)}else if("roomMessageType"in t){if(t.roomMessageType!=="spotlight")return;r=t}else return;l.info("Spotlight Assertion Received",{spotlight:{spotlighter:{id:r.userId},currentTab:{id:(e=r.currentTab)==null?void 0:e.id,type:(i=r.currentTab)==null?void 0:i.type}}}),this.conditionallySetActiveTab(r)}),a(this,Vi).getValue("peerSessionStore").on(P.MESSAGE,t=>{var e,i;let r;if("type"in t){if(t.type!=="spotlight")return;r=L(L({},t),t.payload)}else if("roomMessageType"in t){if(t.roomMessageType!=="spotlight")return;r=t}else return;l.info("Spotlight Assertion Received",{spotlight:{spotlighter:{id:r.userId},currentTab:{id:(e=r.currentTab)==null?void 0:e.id,type:(i=r.currentTab)==null?void 0:i.type}}}),this.conditionallySetActiveTab(r)}),this.aiSocketHandler.on(B.transcript,t=>{const{meetingId:e,transcript:i,isPartial:r}=t,n=Sr.parseTranscript(i,r);if(!n){l.warn("Received empty transcript data");return}this.ai.onTranscript(n),this.meta.emit("transcript",n);const{peerId:s,name:o,transcript:c}=n;l.debug(`${e} Received transcript for peer ${s} - ${o}: ${c}`)})}},cn=new WeakMap,Sa=new WeakMap,Vi=new WeakMap,Hf);let Gf=qf;c1([S.trace("MetaController.setupEvents")],Gf.prototype,"setupEvents",1);var d1=Object.defineProperty,l1=Object.getOwnPropertyDescriptor,dn=(t,e,i,r)=>{for(var n=r>1?void 0:r?l1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&d1(e,i,n),n},yi,Ea,le,id,er,Dt,rd,Uu,Ta,nd;class Er extends Wt{constructor(e,i,r,n,s){super(),f(this,rd),f(this,Ta),f(this,yi,void 0),f(this,Ea,void 0),f(this,le,void 0),f(this,id,void 0),f(this,er,void 0),f(this,Dt,void 0),v(this,Dt,e),v(this,yi,n),v(this,Ea,s),v(this,le,i),v(this,id,r),v(this,er,[]),this.setupEvents()}get status(){return a(this,Dt).getValue("stageStatus")}setupEvents(){const e={[P.GET_STAGE_REQUESTS]:n=>u(this,null,function*(){v(this,er,n)}),[P.UPDATE_STAGE_REQUESTS]:n=>u(this,[n],function*({add:s}){const o=a(this,er).length,{stageRequests:c}=this.getAccessRequests();(s||c.length>o)&&this.emit("newStageRequest",{count:c.length}),this.emit("stageAccessRequestUpdate",c)})},i=()=>{Object.entries(e).forEach(([n,s])=>{a(this,Dt).getValue("peerSessionStore").onAsync(n,s)})},r=()=>{Object.entries(e).forEach(([n,s])=>{a(this,Dt).getValue("peerSessionStore").removeListener(n,s)})};a(this,le).permissions.on("permissionsUpdate",n=>{const{canAcceptProductionRequests:s}=n;s!==void 0&&(a(this,le).permissions.acceptStageRequests?(i(),a(this,yi).getStageRequests()):(r(),v(this,er,[]),this.emit("stageAccessRequestUpdate",a(this,er))))}),a(this,le).permissions.acceptStageRequests&&i()}getAccessRequests(){if(!a(this,le).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");if(!a(this,le).permissions.acceptStageRequests)throw l.error("DyteStage::get_access_request::permission_denied"),new w("You do not have permission to perform this action","2001");const e=a(this,id).joined.toArray().filter(i=>i.stageStatus==="REQUESTED_TO_JOIN_STAGE").map(i=>({displayName:i.name,userId:i.userId,peerId:i.id}));return v(this,er,e),{stageRequests:a(this,er)}}requestAccess(){return u(this,null,function*(){if(!a(this,le).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");if(this.status!=="OFF_STAGE")throw new w(`Unable to request access you are currently ${this.status}`,"2006");if(a(this,le).permissions.stageAccess===H.Allowed){F(this,Ta,nd).call(this,"ACCEPTED_TO_JOIN_STAGE");return}a(this,yi).requestAccess(),F(this,Ta,nd).call(this,"REQUESTED_TO_JOIN_STAGE")})}cancelRequestAccess(){return u(this,null,function*(){if(!a(this,le).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");a(this,yi).cancelRequestAccess(),F(this,Ta,nd).call(this,"OFF_STAGE")})}grantAccess(e){if(!a(this,le).roomJoined)throw new w("Can`t grant for participant without joining room");if(!a(this,le).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");if(!a(this,le).permissions.acceptStageRequests)throw l.error("DyteStage::grant_access::permission_denied"),new w("You do not have permission to perform this action","2001");return a(this,yi).grantAccess(e)}denyAccess(e){if(!a(this,le).roomJoined)throw new w("Can`t rejectRequestToJoinStage for participant without joining room","2005");if(!a(this,le).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");if(!a(this,le).permissions.acceptStageRequests)throw l.error("DyteStage::deny_access::permission_denied"),new w("You do not have permission to perform this action","2001");return a(this,yi).denyAccess(e)}join(){return u(this,null,function*(){const e=a(this,Dt).getValue("viewType");if(this.status==="ON_STAGE")throw new w("You are already on stage.","2006");if(this.status!=="ACCEPTED_TO_JOIN_STAGE"||a(this,le).permissions.stageAccess===H.NotAllowed)throw new w(`Unable to join stage you are currently ${this.status}`,"2006");if(yield a(this,yi).joinStage(),e===Rt.Livestream){yield a(this,Ea).joinRoom(a(this,le));const{peers:i}=yield a(this,Ea).getStagePeers();a(this,Dt).getValue("peerSessionStore").emit(P.SOCKET_PEERS,i)}a(this,Dt).setValue("stageStatus","ON_STAGE"),a(this,le).audioEnabled&&a(this,rd,Uu).shareMic(a(this,le).audioTrack),a(this,le).videoEnabled&&a(this,rd,Uu).shareWebcam(a(this,le).videoTrack)})}leave(){return u(this,null,function*(){if(!a(this,le).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");if(!(this.status==="ON_STAGE"||this.status==="ACCEPTED_TO_JOIN_STAGE"))throw new w(`Unable to leave stage you are currently ${this.status}`,"2006");a(this,le).setIsPinned(!1),yield a(this,yi).leaveStage(a(this,le).userId),a(this,Dt).setValue("stageStatus","OFF_STAGE",!1),yield a(this,Dt).getValue("peerSessionStore").emitAsync(P.LEAVE_MEDIA_ROOM,"stageLeft"),a(this,Dt).notify("stageStatus")})}kick(e){return u(this,null,function*(){if(!a(this,le).roomJoined)throw new w("Can`t kick participant without joining room","2005");if(!a(this,le).permissions.stageEnabled)throw l.error("DyteStage::stage_disabled"),new w("Stage is disabled","2003");if(!a(this,le).permissions.acceptStageRequests)throw l.error("DyteStage::kick::permission_denied"),new w("You do not have permissions for kick","2001");return a(this,yi).kick(e)})}}yi=new WeakMap,Ea=new WeakMap,le=new WeakMap,id=new WeakMap,er=new WeakMap,Dt=new WeakMap,rd=new WeakSet,Uu=function(){return a(this,Dt).getValue("roomNodeClient")},Ta=new WeakSet,nd=function(t){return u(this,null,function*(){this.status!==t&&a(this,Dt).setValue("stageStatus",t)})},dn([S.trace("DyteStage.getStageRequests")],Er.prototype,"getAccessRequests",1),dn([S.trace("DyteStage.requestAccess")],Er.prototype,"requestAccess",1),dn([S.trace("DyteStage.cancelRequestAccess")],Er.prototype,"cancelRequestAccess",1),dn([S.trace("DyteStage.grantAccess")],Er.prototype,"grantAccess",1),dn([S.trace("DyteStage.denyAccess")],Er.prototype,"denyAccess",1),dn([S.trace("DyteStage.joinStage")],Er.prototype,"join",1),dn([S.trace("DyteStage.leaveStage")],Er.prototype,"leave",1);function u1(t){return!(t.viewType==="LIVESTREAM"||t.viewType==="CHAT")}function Fu(t){switch(t){case Yi.UNSPECIFIED:return"OFF_STAGE";case Yi.REQUESTED_STAGE:return"REQUESTED_TO_JOIN_STAGE";case Yi.APPROVED_STAGE:return"ACCEPTED_TO_JOIN_STAGE";case Yi.OFF_STAGE:return"OFF_STAGE";case Yi.ON_STAGE:return"ON_STAGE";default:return"OFF_STAGE"}}var h1=Object.defineProperty,p1=Object.getOwnPropertyDescriptor,m1=(t,e,i,r)=>{for(var n=r>1?void 0:r?p1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&h1(e,i,n),n},ln,as,un,sd,si;class $f{constructor(e,i,r,n,s){m(this,"stage"),f(this,ln,void 0),f(this,as,void 0),f(this,un,void 0),f(this,sd,0),f(this,si,void 0),v(this,si,e),this.stage=new Er(e,n,s,i,r),v(this,un,i),v(this,ln,n),v(this,as,s),this.setupEvents()}setupEvents(){a(this,si).subscribe("stageStatus",e=>{this.stage.emit("stageStatusUpdate",e)}),a(this,un).on(B.grantStageAccess,()=>{a(this,ln).permissions.stageAccess!==H.Allowed&&(this.stage.emit("stageRequestApproved"),this.setStageStatus("ACCEPTED_TO_JOIN_STAGE"))}),a(this,un).on(B.peerStageStatusUpdate,e=>{e!==void 0&&(e.peerId===a(this,ln).id?this.selfStageStatusHandler(e):this.peerStageStatusHandler(e))}),a(this,un).on(B.denyStageAccess,()=>{a(this,ln).permissions.stageAccess!==H.Allowed&&(this.stage.emit("stageRequestRejected"),this.setStageStatus("OFF_STAGE"))}),a(this,un).on(B.getStageRequests,e=>u(this,null,function*(){var i;if(a(this,ln).permissions.stageAccess!==H.Allowed)return;const r=(i=e==null?void 0:e.stageRequests)!=null?i:[];yield a(this,si).getValue("peerSessionStore").emitAsync(P.GET_STAGE_REQUESTS,r),a(this,sd)<r.length&&r.length>0&&this.stage.emit("newStageRequest",{count:r.length}),v(this,sd,r.length),this.stage.emit("stageAccessRequestUpdate",r)}))}getCurrentStageRequests(){return a(this,as).joined.toArray().filter(e=>e.stageStatus==="REQUESTED_TO_JOIN_STAGE").map(e=>({displayName:e.name,userId:e.userId,peerId:e.id}))}setStageStatus(e){return u(this,null,function*(){this.stage.status!==e&&a(this,si).setValue("stageStatus",e)})}selfStageStatusHandler(e){const i=Fu(e.stageType),r=a(this,si).getValue("stageStatus");if(r!==i)switch(e.stageType){case 1:a(this,si).setValue("stageStatus","ACCEPTED_TO_JOIN_STAGE",!1),this.stage.join();break;case 2:case 3:this.setStageStatus(r);break;case 0:case 4:default:a(this,si).setValue("stageStatus","ACCEPTED_TO_JOIN_STAGE",!1),this.stage.leave();break}}peerStageStatusHandler(e){return u(this,null,function*(){const i=a(this,as).joined.get(e.peerId),r=a(this,as).viewMode==="ACTIVE_GRID";if(!i){l.warn("err::peerStageStatusUpdate: participant not found");return}switch(e.stageType){case 1:i.setStageStatus("ON_STAGE"),r&&a(this,si).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE);break;case 2:i.setStageStatus("ACCEPTED_TO_JOIN_STAGE");break;case 3:i.setStageStatus("REQUESTED_TO_JOIN_STAGE");break;case 0:case 4:default:i.setStageStatus("OFF_STAGE"),r&&a(this,si).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE);break}a(this,si).getValue("peerSessionStore").emit(P.UPDATE_PEER_STAGE_STATUS,{id:i.id,status:i.stageStatus})})}}ln=new WeakMap,as=new WeakMap,un=new WeakMap,sd=new WeakMap,si=new WeakMap,m1([S.trace("DyteStage.setupEvents")],$f.prototype,"setupEvents",1);var g1=Object.defineProperty,f1=Object.getOwnPropertyDescriptor,ad=(t,e,i,r)=>{for(var n=r>1?void 0:r?f1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&g1(e,i,n),n};const Ve={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 Tt,ai,ka,ba,Tr,_a,os,wa,Jf;let cs=(Jf=class extends Yn{constructor(t,{baseURL:e,createdAt:i,description:r,id:n,name:s,organizationId:o,picture:c,private:d,published:h,staggered:p,tags:g,type:y,updatedAt:T},b,O,R,x,G){super(),f(this,Tt,void 0),m(this,"baseURL"),m(this,"createdAt"),m(this,"description"),m(this,"id"),m(this,"name"),f(this,ai,void 0),f(this,ka,void 0),f(this,ba,void 0),m(this,"organizationId"),m(this,"picture"),m(this,"private"),m(this,"published"),m(this,"staggered"),m(this,"tags"),m(this,"type"),m(this,"updatedAt"),f(this,Tr,void 0),m(this,"config"),f(this,_a,void 0),m(this,"active"),m(this,"iframes"),m(this,"enabledBy"),f(this,os,void 0),f(this,wa,void 0),v(this,os,t),this.baseURL=e,this.createdAt=new Date(i),this.description=r,this.id=n,this.name=s,v(this,ai,O),this.organizationId=o,this.picture=c,this.private=d,this.published=h,this.staggered=p,this.tags=g,this.type=y,this.updatedAt=new Date(T),this.active=!1,this.iframes=new Map,v(this,Tt,b),v(this,ka,R),v(this,ba,x),this.enabledBy="",v(this,wa,G)}sendIframeEvent(t){this.iframes.size&&this.iframes.forEach(e=>{const{iframe:i}=e;i&&(navigator.isReactNative?i.postMessage(JSON.stringify(t)):i.contentWindow.postMessage(t,"*"))})}handleIframeMessage(t){return u(this,null,function*(){var e;if(!this.active)return;const i=t,{payload:r,uuid:n,type:s}=i;switch(s){case K.customPluginEventToRoom:{a(this,Tt).customPluginEventToRoom(this.id,r,n);break}case K.customPluginEventToPeers:{a(this,Tt).customPluginEventToPeers(this.id,r.peerIds,r,n);break}case K.enablePluginForRoom:{a(this,Tt).enablePluginForRoom(this.id,n);break}case K.enablePluginForPeers:{a(this,Tt).enablePluginForPeers(this.id,r.peerIds,n);break}case K.disablePluginForRoom:{a(this,Tt).disablePluginForRoom(this.id,n);break}case K.disablePluginForPeers:{a(this,Tt).disablePluginForPeers(this.id,r.peerIds,n);break}case K.storeInsertKeys:{a(this,Tt).storeInsertKeys(this.id,r.store,r.insertKeys,n);break}case K.storeGetKeys:{a(this,Tt).storeGetKeys(this.id,r.store,r.getKeys,n);break}case K.storeDeleteKeys:{a(this,Tt).storeDeleteKeys(this.id,r.store,r.deleteKeys,n);break}case K.storeDelete:{a(this,Tt).storeDelete(this.id,r.store,n);break}case Ve.chatMessage:{const{messagePayload:o,peerIds:c}=r;if(!a(this,ba)){this.sendIframeEvent({type:Ve.chatMessage,uuid:i.uuid,payload:{error:"Chat is disabled for this room."}});return}try{yield a(this,ba).sendMessage(o,c),this.sendIframeEvent({type:Ve.chatMessage,uuid:i.uuid,payload:{success:!0}})}catch(d){this.sendIframeEvent({type:Ve.chatMessage,uuid:i.uuid,payload:{error:d}})}break}case Ve.getPeer:{let o;const{peerId:c}=r,d=j(L({},a(this,ai)),{id:a(this,ai).id,isRecorder:(e=a(this,ai).permissions)==null?void 0:e.isRecorder,isHidden:a(this,ai).permissions.hiddenParticipant,stageStatus:a(this,ai).stageStatus});c?(o=a(this,ka).joined.get(r.peerId),a(this,ai).id===c&&(o=d)):o=d,this.sendIframeEvent({type:Ve.getPeer,payload:{peer:o&&Kc(o)},uuid:i.uuid});break}case Ve.getPeers:{const o=a(this,ka).joined.toArray().map(c=>Kc(c));this.sendIframeEvent({type:Ve.getPeers,payload:{peers:o},uuid:i.uuid});break}case Ve.getPluginInitiator:{this.sendIframeEvent({type:Ve.getPluginInitiator,payload:{enabledBy:this.enabledBy},uuid:i.uuid});break}case Ve.getDisplayTitle:{this.sendIframeEvent({type:Ve.getDisplayTitle,payload:{displayTitle:a(this,wa)},uuid:i.uuid});break}case Ve.getRoomName:{this.sendIframeEvent({type:Ve.getRoomName,payload:{roomName:a(this,os).getValue("meetingId")},uuid:i.uuid});break}case Ve.customPluginEventToParent:{this.emit(i.payload.eventName,i.payload.data);break}}})}sendData(t){this.active&&(l.info("DytePlugin::SendData",{plugin:{id:this.id,name:this.name,data:{eventName:t.eventName}}}),this.sendIframeEvent({type:Ve.sendData,uuid:"",payload:t}))}removePluginView(t="default"){var e;const{iframe:i,listener:r}=(e=this.iframes.get(t))!=null?e:{};(i||r)&&(navigator.isReactNative?i.props.onMessage=void 0:window.removeEventListener("message",r),this.iframes.delete(t))}addPluginView(t,e="default"){var i;if(!a(this,_a))throw l.error("DytePlugin::addPluginView::no_auth_token_set_for_plugin"),new w("No auth token set for plugin.","0602");if(!t)throw l.error("DytePlugin::addPluginView::iframe_was_not_provided"),new w("Iframe was not provided.","0603");this.removePluginView(e);const r=t,n=new URL(this.baseURL),s={auth:a(this,_a),parent:navigator.isReactNative?this.baseURL:window.location.origin,backend:a(this,os).getValue("apiBase"),pluginId:this.id,roomName:(i=a(this,os).getValue("meetingId"))!=null?i:"",displayTitle:a(this,wa)};if(Object.keys(s).forEach(o=>{n.searchParams.set(o,s[o])}),r.src=n.href,r.allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",r.title=e,navigator.isReactNative)r.props.onMessage=o=>{this.handleIframeMessage(JSON.parse(o.nativeEvent.data))},this.iframes.set(e,{iframe:r});else{const o=c=>u(this,null,function*(){c.source===t.contentWindow&&(yield this.handleIframeMessage(c.data))});window.addEventListener("message",o),this.iframes.set(e,{iframe:r,listener:o})}}setActive(t){var e,i;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:(i=this.config)==null?void 0:i.views})}activateForSelf(){return u(this,null,function*(){const t=ht(),e=yield t.authorizePlugin(this.id);v(this,_a,e),v(this,Tr,new Date);try{const i=yield t.getPluginConfig(this.baseURL);this.config=i}catch(i){l.error("DytePlugin::activateForSelf",{error:i})}this.setActive(!0),this.emit("enabled")})}deactivateForSelf(){Array.from(this.iframes.keys()).forEach(t=>{this.removePluginView(t)}),v(this,Tr,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=a(this,ai).permissions)==null?void 0:t.plugins)!=null&&e.canStart&&(a(this,Tt).addPlugin(this.id,this.staggered),v(this,Tr,new Date),l.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=a(this,ai).permissions)==null?void 0:t.plugins)!=null&&e.canClose)&&this.enabledBy!==a(this,ai).id||(a(this,Tt).removePlugin(this.id),l.info("plugin::deactivated",{plugin:{id:this.id,name:this.name,duration:a(this,Tr)?new Date().getTime()-a(this,Tr).getTime():0}}),v(this,Tr,void 0)))})}},Tt=new WeakMap,ai=new WeakMap,ka=new WeakMap,ba=new WeakMap,Tr=new WeakMap,_a=new WeakMap,os=new WeakMap,wa=new WeakMap,Jf);ad([At({maxInvocations:5,period:1})],cs.prototype,"sendData",1),ad([S.trace("DytePlugin.activatePlugin")],cs.prototype,"activate",1),ad([S.trace("DytePlugin.deactivatePlugin")],cs.prototype,"deactivate",1),cs=ad([ut("0600")],cs);var Je,ds;class Kf extends Map{constructor(e){const{onAddEvent:i,onDeleteEvent:r,onClearEvent:n}=e;super(),f(this,Je,void 0),f(this,ds,void 0),m(this,"onAddEvent"),m(this,"onDeleteEvent"),m(this,"onClearEvent"),v(this,Je,new Yn),this.onAddEvent=i,this.onDeleteEvent=r,this.onClearEvent=n,v(this,ds,new Map)}emit(e,...i){return a(this,Je).emit(e,...i)}on(e,i){return a(this,Je).on(e,i)}addListener(e,i){return a(this,Je).addListener(e,i)}off(e,i){return a(this,Je).off(e,i)}once(e,i){return a(this,Je).once(e,i)}prependListener(e,i){return a(this,Je).prependListener(e,i)}prependOnceListener(e,i){return a(this,Je).prependOnceListener(e,i)}removeListener(e,i){return a(this,Je).removeListener(e,i)}removeAllListeners(e){return a(this,Je).removeAllListeners(e)}listeners(e){return a(this,Je).listeners(e)}listenerCount(e){return a(this,Je).listenerCount(e)}getMaxListeners(){return a(this,Je).getMaxListeners()}setMaxListeners(e){return a(this,Je).setMaxListeners(e)}eventNames(){return a(this,Je).eventNames()}add(e,i=!0){return this.set(e.id,e,i)}set(e,i,r=!0){const n=super.set(e,i),s=(o,...c)=>{this.emit(o,i,...c)};return a(this,ds).set(e,s),i.on("*",s),r&&a(this,Je).emit(this.onAddEvent,i),n}delete(e,i=!0,r=!1){const n=this.get(e);if(!n)return!1;n.removeListener("*",a(this,ds).get(e));const s=super.delete(e);return r&&n.removeAllListeners(),i&&a(this,Je).emit(this.onDeleteEvent,n),s}clear(e=!0,i=!1){this.forEach(n=>{n.removeListener("*",a(this,ds).get(n.id)),i&&n.removeAllListeners()});const r=super.clear();return e&&a(this,Je).emit(this.onClearEvent),r}toArray(){return Array.from(this.values())}}Je=new WeakMap,ds=new WeakMap;class zf extends Kf{constructor(){super({onAddEvent:"pluginAdded",onDeleteEvent:"pluginDeleted"})}add(e,i=!0){return super.add(e,i)}delete(e,i=!0,r=!1){return super.delete(e,i,r)}}var v1=Object.defineProperty,y1=Object.getOwnPropertyDescriptor,S1=(t,e,i,r)=>{for(var n=r>1?void 0:r?y1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&v1(e,i,n),n};let Bu=class{constructor(){m(this,"all"),m(this,"active"),this.all=new zf,this.active=new zf}};Bu=S1([ut("0600")],Bu);var E1=Object.defineProperty,T1=Object.getOwnPropertyDescriptor,od=(t,e,i,r)=>{for(var n=r>1?void 0:r?T1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&E1(e,i,n),n},Si,Ia,kr,Yf;const Qf=(Yf=class{constructor(t,e,i,r){m(this,"plugins"),f(this,Si,void 0),f(this,Ia,void 0),f(this,kr,void 0),v(this,Si,e),v(this,Ia,i),v(this,kr,t),this.plugins=r,this.setupEvents()}static init(t,e,i,r,n,s,o,c){return u(this,null,function*(){const d=new Bu;return e.forEach(h=>{const p=new cs(t,h,i,s,o,n,c);d.all.add(p)}),new Qf(t,i,r,d)})}getRoomPlugins(){return u(this,null,function*(){var t;const{plugins:e}=yield a(this,Si).getActivePlugins();(t=this.plugins.active)==null||t.toArray().forEach(i=>{this.disablePlugin({id:i.id})}),yield Promise.all(e.map(i=>this.enablePlugin({id:i.pluginId,enabledBy:i.enabledBy})))})}enablePlugin(t){return u(this,arguments,function*({id:e,enabledBy:i}){const r=this.plugins.all.get(e);r&&(yield r.activateForSelf(),r.enabledBy=i)})}disablePlugin(t){return u(this,arguments,function*({id:e}){const i=this.plugins.all.get(e);i&&i.deactivateForSelf()})}sendIframeEvent(t,e,i,r){const n=this.plugins.all.get(e);n&&n.sendIframeEvent({type:t,uuid:i,payload:r})}broadcastIframeEvent(t,e){this.plugins.active.forEach(i=>{this.sendIframeEvent(t,i.id,"",e)})}setupEvents(){this.plugins.all.on("stateUpdate",({active:t,id:e})=>{if(t){this.plugins.active.add(this.plugins.all.get(e));return}this.plugins.active.delete(e)}),a(this,kr).getValue("peerSessionStore").onAsync(P.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){yield this.getRoomPlugins(),l.debug("[SOCKET_SERVICE_ROOM_JOINED] resolved request to fetch plugins.")})),a(this,Si).on(K.addPlugin,t=>u(this,null,function*(){var e;const i=t.pluginId;(e=this.plugins.all.get(i))!=null&&e.active||(yield this.enablePlugin({id:i,enabledBy:t.enabledBy}))})),a(this,Si).on(K.removePlugin,t=>u(this,null,function*(){var e;const i=t.pluginId;(e=this.plugins.all.get(i))!=null&&e.active&&(yield this.disablePlugin({id:i}))})),[K.enablePluginForPeers,K.enablePluginForRoom].forEach(t=>{a(this,Si).on(t,(e,i)=>u(this,null,function*(){this.sendIframeEvent(t,e.pluginId,i,{enabledBy:e.enabledBy})}))}),[K.disablePluginForPeers,K.disablePluginForRoom].forEach(t=>{a(this,Si).on(t,(e,i)=>u(this,null,function*(){this.sendIframeEvent(t,e.pluginId,i,{disabledBy:e.disabledBy})}))}),[K.customPluginEventToPeers,K.customPluginEventToRoom].forEach(t=>{a(this,Si).on(t,(e,i)=>u(this,null,function*(){this.sendIframeEvent(t,e.pluginId,i,{data:JSON.parse(new TextDecoder().decode(e.pluginData))})}))}),[K.storeInsertKeys,K.storeGetKeys,K.storeDeleteKeys].forEach(t=>{a(this,Si).on(t,(e,i)=>u(this,null,function*(){var r;const n=(r=e.storeItems)==null?void 0:r.map(s=>{var o;return{timestamp:s.timestamp,peerId:s.peerId,payload:JSON.parse((o=s.payload)!=null&&o.length?new TextDecoder().decode(s.payload):"{}"),key:s.storeKey}});this.sendIframeEvent(t,e.pluginId,i,{storeName:e.storeName,storeItems:n})}))}),a(this,Si).on(K.storeDelete,(t,e)=>u(this,null,function*(){this.sendIframeEvent(K.storeDelete,t.pluginId,e,{storeName:t.storeName})})),a(this,Ia).on(Oe.sendMessageToPeers,t=>{const e=Zi==null?void 0:Zi.formatSocketServiceMessage(t.message);this.broadcastIframeEvent(Ve.chatMessage,{message:e})}),a(this,Ia).on(Oe.sendMessageToRoom,t=>{const e=Zi==null?void 0:Zi.formatSocketServiceMessage(t.message);this.broadcastIframeEvent(Ve.chatMessage,{message:e})}),a(this,kr).getValue("peerSessionStore").on(P.PEER_JOINED_INTERNAL,t=>{const e=Kc(t);this.broadcastIframeEvent(Ve.peerJoined,e)}),a(this,kr).getValue("peerSessionStore").on(P.PEER_CLOSED,t=>{this.broadcastIframeEvent(Ve.peerLeft,t)}),a(this,kr).getValue("peerSessionStore").on(P.UPDATE_PEER_STAGE_STATUS,t=>{this.broadcastIframeEvent(Ve.peerStageStatusUpdate,t)}),a(this,kr).subscribe("stageStatus",t=>{this.broadcastIframeEvent(Ve.stageStatusUpdate,t)})}},Si=new WeakMap,Ia=new WeakMap,kr=new WeakMap,Yf);let Ca=Qf;od([S.trace("PluginController.getRoomPlugins")],Ca.prototype,"getRoomPlugins",1),od([S.trace("PluginController.enableForSelf")],Ca.prototype,"enablePlugin",1),od([S.trace("PluginController.disableForSelf")],Ca.prototype,"disablePlugin",1),od([S.trace("PluginController.setupEvents")],Ca.prototype,"setupEvents",1);var cd;class k1{constructor(e){m(this,"mediaJoined"),m(this,"socketJoined"),m(this,"socketJoinAttempted"),m(this,"mediaJoinAttempted"),m(this,"socketState"),m(this,"mediaState"),f(this,cd,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},v(this,cd,e)}get joinAttempted(){return this.mediaJoinAttempted||this.socketJoinAttempted}get roomJoined(){return this.mediaJoined&&this.socketJoined}updateSocketConnectionState(e,i){let r;const{reconnected:n}=this.socketState;switch(e){case"connected":r={state:"connected",reconnected:n,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:n,reconnectionAttempt:0};break;case"reconnectAttempt":r={state:"reconnecting",reconnected:n,reconnectionAttempt:i};break;case"failed":r={state:"failed",reconnected:n,reconnectionAttempt:void 0},this.socketJoined=!1;break}r&&(a(this,cd).getValue("peerSessionStore").emit(P.SOCKET_STATE_UPDATE,r),this.socketState=r)}}cd=new WeakMap;var b1=Object.defineProperty,_1=Object.getOwnPropertyDescriptor,Pa=(t,e,i,r)=>{for(var n=r>1?void 0:r?_1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&b1(e,i,n),n},Ra,dd,Ma,ld,Xf;let hn=(Xf=class extends Wt{constructor(t,e){super(),f(this,Ma),f(this,Ra,void 0),f(this,dd,void 0),m(this,"recordingPeerIds",[]),m(this,"recordings",[]),v(this,dd,t),v(this,Ra,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"}updateRecordings(t){this.recordings=t,this.emit("recordingUpdate",this.recordingState)}start(t){return u(this,null,function*(){if(!a(this,Ra).permissions.canRecord)throw l.error("DyteRecording::start::permission_denied"),new w("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 l.error("DyteRecording::start::recording_in_progress",{recording:{state:this.recordingState}}),new w(`Cant start recording, recordingState irregular: ${this.recordingState}`,"1005");try{const e=ht(),{recording:i={}}=a(this,dd).getValue("defaults"),r=yield e.startRecording(i,t==null?void 0:t.allowMultiple);this.updateRecordings([...this.recordings,{id:r,state:"STARTING",type:"BROWSER"}])}catch(e){throw l.error("DyteRecording::stop::recording_failed_to_start",{error:e}),new w("Error while starting recording","1000")}})}stop(t){return u(this,null,function*(){yield F(this,Ma,ld).call(this,"stop",["RECORDING","PAUSED"],t)})}pause(t){return u(this,null,function*(){yield F(this,Ma,ld).call(this,"pause",["RECORDING"],t)})}resume(t){return u(this,null,function*(){yield F(this,Ma,ld).call(this,"resume",["PAUSED"],t)})}},Ra=new WeakMap,dd=new WeakMap,Ma=new WeakSet,ld=function(t,e,i){return u(this,null,function*(){if(!a(this,Ra).permissions.canRecord)throw l.error("DyteRecording::stop::permission_denied"),new w("User does not have permission to stop recording","1001");let r=[];if(i!==void 0){const n=this.recordings.find(s=>s.id===i);if(n===void 0)throw new w("Could not find the specified recording","1004");if(e.includes(n.state)){l.error("DyteRecording::stop::recording_not_in_expected_state",{recording:{state:n.state}});return}r.push(n)}else r=this.recordings.filter(n=>e.includes(n.state));r.forEach(n=>u(this,null,function*(){const s=n.state;t==="stop"&&(n.state="STOPPING",this.emit("recordingUpdate","STOPPING"));try{yield ht().updateRecording(n.id,t)}catch(o){throw l.error("DyteRecording::stop::recording_failed_to_stop",{error:o}),n.state!==s&&(n.state=s,this.emit("recordingUpdate",s)),new w("Error while stopping recording","1000")}}))})},Xf);Pa([S.trace("DyteRecording.start")],hn.prototype,"start",1),Pa([S.trace("DyteRecording.stop")],hn.prototype,"stop",1),Pa([S.trace("DyteRecording.stop")],hn.prototype,"pause",1),Pa([S.trace("DyteRecording.stop")],hn.prototype,"resume",1),hn=Pa([ut("1000")],hn);var w1=Object.defineProperty,I1=Object.getOwnPropertyDescriptor,C1=(t,e,i,r)=>{for(var n=r>1?void 0:r?I1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&w1(e,i,n),n},ud;class Zf{constructor(e,i,r){m(this,"recording"),m(this,"room"),f(this,ud,void 0),v(this,ud,e),this.recording=new hn(e,i),this.room=r,this.setupEvents()}getRecordingTypeFromProtoType(e){let i;switch(e){case tn.BROWSER:i="BROWSER";break;case tn.COMPOSITE:i="COMPOSITE";break;case tn.TRACK:i="TRACK";break;default:i="BROWSER"}return i}setupEvents(){a(this,ud).getValue("peerSessionStore").on(P.ROOM_STATE,e=>{e.activeRecordings.length!==0?this.recording.updateRecordings(e.activeRecordings.map(i=>{const r=this.getRecordingTypeFromProtoType(i.recordingType);return{id:i.recordingId,state:i.recordingStatus,type:r}})):this.recording.recordings.length&&this.recording.updateRecordings([])}),this.room.on(B.recordingStarted,e=>{let i=!1;const r=[...this.recording.recordings];if(r.forEach(n=>{n.id===e.recordingId&&(i=!0,n.state="RECORDING")}),i===!1){const n=this.getRecordingTypeFromProtoType(e.recordingType);r.push({id:e.recordingId,state:"RECORDING",type:n})}this.recording.updateRecordings(r)}),this.room.on(B.recordingPaused,e=>{const i=[...this.recording.recordings];i.forEach(r=>{r.id===e.recordingId&&(r.state="PAUSED")}),this.recording.updateRecordings(i)}),this.room.on(B.recordingStopped,e=>{const i=[...this.recording.recordings.filter(r=>r.id!==e.recordingId)];this.recording.updateRecordings(i)})}}ud=new WeakMap,C1([S.trace("RecordingController.setupEvents")],Zf.prototype,"setupEvents",1);class P1{static hasFeature(e){var i;return(i=z.hasFeature(e))!=null?i:!1}static getFeatureValue(e){return z.getValue(e)}static getAllFeatures(){return z.getAllFlags()}}class Wu{constructor(e,i,r){m(this,"logger"),m(this,"features"),m(this,"browserSpecs"),m(this,"callStats"),this.logger=e,this.features=i,this.browserSpecs=Ie,this.callStats=r}static init(e){return new Wu(l,P1,e)}}class ju{constructor(e){m(this,"internals"),this.internals=e}static init(){return u(this,null,function*(){const e=Wu.init(J);return new ju(e)})}}var R1=Object.defineProperty,M1=Object.getOwnPropertyDescriptor,Ht=(t,e,i,r)=>{for(var n=r>1?void 0:r?M1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&R1(e,i,n),n},Xe,Me,Ce,br,Ei,hd,pd;class Ot extends Yn{constructor(e,i,r=Hu,n=!0){super(),f(this,Xe,void 0),f(this,Me,void 0),f(this,Ce,void 0),f(this,br,void 0),f(this,Ei,void 0),f(this,hd,void 0),f(this,pd,void 0),m(this,"audioUpdateInProgress"),m(this,"videoUpdateInProgress"),v(this,pd,e),this.audioUpdateInProgress=!1,this.videoUpdateInProgress=!1,v(this,Xe,new iv(e,i)),v(this,Me,new X1(a(this,Xe),void 0,r)),v(this,Ce,new sD(a(this,Xe),void 0,r)),v(this,Ei,new iD(a(this,pd),a(this,Xe))),v(this,br,new eD(a(this,Xe))),v(this,hd,n),a(this,Me).on("trackMuted",this.onAudioTrackMuted.bind(this)),a(this,Me).on("trackChanged",this.onAudioTrackChanged.bind(this)),a(this,Ce).on("trackChanged",this.onVideoTrackChanged.bind(this)),a(this,Ce).on("trackEnded",this.onVideoTrackEnded.bind(this)),a(this,Ei).on("trackEnded",this.onScreenShareEnded.bind(this)),this.onVisibilityChange=this.onVisibilityChange.bind(this),document.addEventListener("visibilitychange",this.onVisibilityChange)}onVisibilityChange(){return u(this,null,function*(){J.tabChanged(document.visibilityState==="visible"),document.visibilityState!=="visible"?J.browserBackgrounded():(J.browserForegrounded(),yield this.setupSpeaker())})}repopulateAvailableDevices(){return u(this,null,function*(){return!0})}setupStreams(e){return u(this,arguments,function*({audio:i,video:r}){var n;i?J.audioOn():J.audioOff(),r?J.videoOn():J.videoOff();let s,o;if(i&&r)try{const c=yield a(this,Xe).getAudioAndVideoTrack(a(this,Me).userSelectedDevice,a(this,Ce).userSelectedDevice);s=c.audioTrack,o=c.videoTrack}catch(c){l.error("LocalMediaHandler::init::Failed to get audio video tracks",{error:c})}if(!s&&i)try{s=yield a(this,Xe).getAudioTrack(!1,a(this,Me).userSelectedDevice)}catch(c){l.error("LocalMediaHandler::init::Failed to get audio track",{error:c})}if(!o&&r)try{o=yield a(this,Xe).getVideoTrack(a(this,Ce).userSelectedDevice)}catch(c){l.error("LocalMediaHandler::init::Failed to get video track",{error:c})}i&&!s&&J.audioOff(),r&&!o&&J.videoOff(),yield a(this,Me).setMediaTrack(s),yield a(this,Ce).setMediaTrack(o);try{this.setupSpeaker()}catch(c){}if(o){const c=yield this.getDeviceById(o.getSettings().deviceId);J.selectedDevice("VIDEO",c)}if(s){const c=yield this.getDeviceById(s.getSettings().deviceId);J.selectedDevice("AUDIO",c)}(n=a(this,br).currentDevice)!=null&&n.deviceId&&J.selectedDevice("SPEAKER",a(this,br).currentDevice),a(this,Xe).onDeviceChange((c,d,h)=>{this.onDeviceChange(d,h)})})}getCurrentDevices(){return{audio:a(this,Me).currentDevice,video:a(this,Ce).currentDevice,speaker:a(this,br).currentDevice}}get permissions(){return a(this,Xe).permissions}getAllDevices(){return a(this,Xe).getAvailableDevices()}getDeviceById(e,i){return a(this,Xe).getDevice(e)}onAudioTrackMuted(){this.emit("AUDIO_TRACK_SILENT")}onAudioTrackChanged(){this.emit("AUDIO_TRACK_CHANGE")}get rawAudioTrack(){return a(this,Me).mediaTrack}get audioTrack(){return a(this,Me).transformedMediaTrack}get audioEnabled(){return a(this,Me).trackEnabled}enableAudio(e){return u(this,null,function*(){if(!this.audioUpdateInProgress){this.audioUpdateInProgress=!0;try{e?yield a(this,Me).enableTrack(!1,e):yield a(this,Me).unmuteTrack()}catch(i){}finally{this.audioUpdateInProgress=!1}}})}disableAudio(){a(this,Me).mediaTrack&&!a(this,Me).isCustomTrack?a(this,Me).muteTrack():a(this,Me).disableTrack()}getAudioDevices(e){return a(this,Xe).getAudioInputDevices(e)}setAudioDevice(e){return u(this,null,function*(){yield a(this,Me).setDevice(e),e!=null&&e.deviceId&&J.selectedDevice("AUDIO",e),this.emit("AUDIO_TRACK_CHANGE"),this.emit("DEVICE_CHANGE",{device:e})})}setupSpeaker(){return u(this,null,function*(){yield a(this,br).setupSpeaker();const{speaker:e}=this.getCurrentDevices();e&&this.emit("DEVICE_CHANGE",{device:e})})}setSpeakerDevice(e){return u(this,null,function*(){yield a(this,br).setupSpeaker(e),e!=null&&e.deviceId&&J.selectedDevice("SPEAKER",e),this.emit("DEVICE_CHANGE",{device:e})})}onVideoTrackChanged(){this.emit("VIDEO_TRACK_CHANGE")}onVideoTrackEnded(){this.emit("VIDEO_TRACK_CHANGE")}get rawVideoTrack(){return a(this,Ce).mediaTrack}get videoTrack(){return a(this,Ce).transformedMediaTrack}get videoEnabled(){return a(this,Ce).trackEnabled}enableVideo(e){return u(this,null,function*(){if(!this.videoUpdateInProgress){this.videoUpdateInProgress=!0;try{e?yield a(this,Ce).enableTrack(!1,e):yield a(this,Ce).unmuteTrack()}catch(i){}finally{this.videoUpdateInProgress=!1}}})}disableVideo(){a(this,Ce).disableTrack()}getVideoDevices(e){return a(this,Xe).getVideoInputDevices(e)}setVideoDevice(e){return u(this,null,function*(){yield a(this,Ce).setDevice(e),e!=null&&e.deviceId&&J.selectedDevice("VIDEO",e),this.emit("VIDEO_TRACK_CHANGE"),this.emit("DEVICE_CHANGE",{device:e})})}updateVideoConstraints(e){return u(this,null,function*(){yield a(this,Ce).updateConstraints(e)})}onScreenShareEnded(){this.emit("SCREENSHARE_ENDED")}get screenShareTracks(){return{audio:a(this,Ei).audioMediaTrack,video:a(this,Ei).videoMediaTrack}}get screenShareEnabled(){return a(this,Ei).trackEnabled}enableScreenShare(){return u(this,null,function*(){yield a(this,Ei).enableScreenShare()})}disableScreenShare(){return u(this,null,function*(){a(this,Ei).disableScreenShare()})}updateScreenshareConstraints(e){return u(this,null,function*(){yield a(this,Ei).updateConstraints(e)})}getSpeakerDevices(e){return a(this,Xe).getAudioOutputDevices(e)}addAudioMiddleware(e){return a(this,Me).addMiddleware(e)}removeAudioMiddleware(e){return a(this,Me).removeMiddleware(e)}removeAllAudioMiddlewares(){return a(this,Me).removeAllMiddlewares()}addVideoMiddleware(e){return a(this,Ce).addMiddleware(e)}removeVideoMiddleware(e){return a(this,Ce).removeMiddleware(e)}removeAllVideoMiddlewares(){return a(this,Ce).removeAllMiddlewares()}setVideoMiddlewareGlobalConfig(e){return a(this,Ce).setVideoMiddlewareGlobalConfig(e)}destruct(){a(this,Me).disableTrack(),a(this,Ce).disableTrack(),a(this,Ce).terminateMiddlewareWebWorker(),a(this,Ei).disableScreenShare(),a(this,Xe).destruct()}onDeviceChange(e,i){return u(this,null,function*(){var r,n;this.emit("DEVICE_LIST_UPDATED",e),!(i||!a(this,hd))&&((r=e==null?void 0:e.added)==null||r.forEach(s=>u(this,null,function*(){var o;s&&!Hu(s)&&(s.kind==="audioinput"&&((o=this.audioTrack)==null?void 0:o.enabled)===!0?yield this.setAudioDevice(s):s.kind==="audiooutput"&&(yield this.setSpeakerDevice(s)))})),(n=e==null?void 0:e.removed)==null||n.forEach(s=>u(this,null,function*(){var o;if(s.kind==="audiooutput"&&((o=this.getCurrentDevices().speaker)==null?void 0:o.deviceId)===s.deviceId){const c=(yield this.getSpeakerDevices()).find(d=>d.deviceId!==s.deviceId);c&&(yield this.setSpeakerDevice(c))}})))})}removeAllTracks(){this.destruct()}removeAudioTrack(){a(this,Me).disableTrack()}removeVideoTrack(){a(this,Ce).disableTrack(),a(this,Ce).terminateMiddlewareWebWorker()}removeDocumentEventListeners(){return u(this,null,function*(){document.removeEventListener("visibilitychange",this.onVisibilityChange)})}}Xe=new WeakMap,Me=new WeakMap,Ce=new WeakMap,br=new WeakMap,Ei=new WeakMap,hd=new WeakMap,pd=new WeakMap,Ht([S.trace("MediaHandler.setupStreams")],Ot.prototype,"setupStreams",1),Ht([S.trace("MediaHandler.enableAudio")],Ot.prototype,"enableAudio",1),Ht([S.trace("MediaHandler.disableAudio")],Ot.prototype,"disableAudio",1),Ht([S.trace("MediaHandler.setAudioDevice")],Ot.prototype,"setAudioDevice",1),Ht([S.trace("MediaHandler.enableVideo")],Ot.prototype,"enableVideo",1),Ht([S.trace("MediaHandler.disableVideo")],Ot.prototype,"disableVideo",1),Ht([S.trace("MediaHandler.setVideoDevice")],Ot.prototype,"setVideoDevice",1),Ht([S.trace("MediaHandler.updateVideoConstraints")],Ot.prototype,"updateVideoConstraints",1),Ht([S.trace("MediaHandler.enableScreenShare")],Ot.prototype,"enableScreenShare",1),Ht([S.trace("MediaHandler.disableScreenShare")],Ot.prototype,"disableScreenShare",1),Ht([S.trace("MediaHandler.updateScreenshareConstraints")],Ot.prototype,"updateScreenshareConstraints",1),Ht([S.trace("MediaHandler.destruct")],Ot.prototype,"destruct",1),Ht([S.trace("MediaHandler.onDeviceChange")],Ot.prototype,"onDeviceChange",1);function md(t,e,i){switch(!0){case Ie.isChromiumBased():switch(e){case"NotAllowedError":return i.includes("by system")?"SYSTEM_DENIED":t==="screenshare"?"CANCELED":"DENIED";case"NotReadableError":default:return"COULD_NOT_START"}case Ie.isSafari():switch(e){case"NotAllowedError":return"DENIED";default:return"COULD_NOT_START"}case Ie.isFirefox():switch(e){case"NotFoundError":case"NotReadableError":return"SYSTEM_DENIED";case"NotAllowedError":return"DENIED";case"AbortError":default:return"COULD_NOT_START"}default:return"COULD_NOT_START"}}const A1=["virtual","emulator","krisp","solstice conference","teams","loom","zoom","manycam","blackhole","displayport","xsplit","wirecast","vMix","elgato","epiphan","voice changer","voicemod","morphvoxx"];function Hu(t){var e,i;const r=(e=t.label)==null?void 0:e.toLowerCase();return((i=Ie._bowser)==null?void 0:i.getOSName())==="macOS"&&r.includes("iphone")?(l.log("isVirtualDevice::ignore_macos_continuity"),!0):A1.some(n=>r==null?void 0:r.includes(n))}function D1(t,e){return u(this,null,function*(){if(!(t!=null&&t.length))return e;const i=new AudioContext,r=yield Promise.all(t==null?void 0:t.map(o=>o(i))),n=i.createMediaStreamSource(new MediaStream([e])),s=i.createMediaStreamDestination();try{let o=n;for(let c=0;c<r.length;c+=1)o.connect(r[c]),o=r[c];o.connect(s)}catch(o){return l.error("getTransformedAudioTrack::middleware_execution_failed",{error:o}),e}return s.stream.getAudioTracks()[0]})}var ls;class O1{constructor(){f(this,ls,void 0)}terminateMiddlewareWebWorker(){if(a(this,ls))try{Hn(a(this,ls)),v(this,ls,void 0)}catch(e){l.debug("WorkerTimers::terminateMiddlewareWebWorker::failed")}}getTransformedVideoTrack(e,i,r){return u(this,null,function*(){if(!(e!=null&&e.length))return i;const n=document.createElement("canvas"),s=yield Promise.all(e==null?void 0:e.map(g=>g({canvas:n,WorkerTimers:TS})));if(r.disablePerFrameCanvasRendering){const g=n.captureStream().getVideoTracks()[0];return Object.defineProperty(g,"originalSettings",{value:i.getSettings()}),g}const o=document.createElement("video"),c=new MediaStream;c.addTrack(i);const d=n.getContext("2d");o.srcObject=c,o.autoplay=!0,this.terminateMiddlewareWebWorker();const h=()=>u(this,null,function*(){if(i.enabled===!1||i.readyState==="ended"){this.terminateMiddlewareWebWorker(),o.remove(),n.remove();return}try{d.drawImage(o,0,0);for(let g=0;g<s.length;g+=1)typeof s[g]=="function"&&(yield s[g](n,d))}catch(g){l.error("getTransformedVideoTrack::middleware_execution_failed",{error:g})}});try{o.play()}catch(g){}o.addEventListener("play",()=>{n.width=o.width||i.getSettings().width,n.height=o.width||i.getSettings().height,v(this,ls,mc(h,50))},!1);const p=n.captureStream().getVideoTracks()[0];return Object.defineProperty(p,"originalSettings",{value:i.getSettings()}),p})}}ls=new WeakMap;const ev={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}}},N1=[[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"}]]],L1=t=>{var e;const i="getSettings"in t&&t.getSettings().width||"getConstraints"in t&&t.getConstraints().width||"originalSettings"in t&&((e=t.originalSettings)==null?void 0:e.width);let r=N1;z.hasFeature(ie.OVERRIDE_HIVE_SIMULCAST_DYNAMIC)&&(r=JSON.parse(z.getValue(ie.OVERRIDE_HIVE_SIMULCAST_DYNAMIC)));const n=r.map(([c])=>c).sort((c,d)=>c-d);let s=Number.MAX_VALUE,o=0;return n.forEach((c,d)=>{Math.abs(c-i)<s&&(s=Math.abs(c-i),o=d)}),r[o][1]};var be=(t=>(t.WEBCAM="webcam",t.WEBCAM_BACKUP="webcam_backup",t.MIC="mic",t.SCREENSHARE_VIDEO="screenshare_video",t.SCREENSHARE_AUDIO="screenshare_audio",t))(be||{});const V1=Sb(),us=vi(V1.config.media);function x1(t){var e,i;const r={};return t.audio&&(r.audio={enableStereo:(e=t.audio.enableStereo)!=null?e:!1,enableHighBitrate:(i=t.audio.enableHighBitrate)!=null?i:!1}),r.video=t.video.quality,r}var hs,qu;class U1{constructor(e,i){f(this,hs,void 0),f(this,qu,void 0),m(this,"getScreenShareConstraints",()=>{var r,n,s,o,c,d,h,p,g,y,T;const b=(r=a(this,hs))==null?void 0:r.screenshare,O=(s=(n=b==null?void 0:b.width)==null?void 0:n.max)!=null?s:1920,R=(c=(o=b==null?void 0:b.height)==null?void 0:o.max)!=null?c:1080,x=(h=(d=b==null?void 0:b.frameRate)==null?void 0:d.max)!=null?h:5;let G=(g=(p=b==null?void 0:b.frameRate)==null?void 0:p.ideal)!=null?g:5;const $=b==null?void 0:b.displaySurface,I=b==null?void 0:b.selfBrowserSurface;z.getValue(ie.VAL_MIN_FRAMERATE)&&(G=parseInt((y=z.getValue(ie.VAL_MIN_FRAMERATE))==null?void 0:y.toString(),10));let se={width:{max:O},height:{max:R},frameRate:{ideal:G,max:x}};if(z.hasFeature(ie.SCREENSHARE_CONSTRAINTS)){const ne=(T=z.getValue(ie.SCREENSHARE_CONSTRAINTS))==null?void 0:T.toString();se=JSON.parse(ne)}return $!==void 0&&["monitor","browser","window"].includes($)&&(se=j(L({},se),{displaySurface:$})),I!==void 0&&(se=j(L({},se),{selfBrowserSurface:I})),{audio:!0,video:se}}),m(this,"getAudioConstraints",r=>{var n,s,o,c,d,h,p,g;const y={},T=(n=a(this,hs))==null?void 0:n.audio,b=T!=null&&T.enableStereo?2:1;return Ie.isFirefox()||Ie.isWebKitBased()?(y.audio={deviceId:r,autoGainControl:(s=T==null?void 0:T.autoGainControl)!=null?s:!0,echoCancellation:(o=T==null?void 0:T.echoCancellation)!=null?o:!0,noiseSuppression:(c=T==null?void 0:T.noiseSupression)!=null?c:!0,channelCount:b},y):(y.audio={},y.audio.optional=[r?{sourceId:r}:{sourceId:"default"},{channelCount:b},{echoCancellation:(d=T==null?void 0:T.echoCancellation)!=null?d:!0},{googEchoCancellation:(h=T==null?void 0:T.echoCancellation)!=null?h:!0},{googAutoGainControl:(p=T==null?void 0:T.autoGainControl)!=null?p:!0},{googNoiseSuppression:(g=T==null?void 0:T.noiseSupression)!=null?g:!0},{googHighpassFilter:!0}],y)}),m(this,"getVideoConstraints",r=>{var n,s,o,c;const d={},h=(n=a(this,hs))==null?void 0:n.video;let p=ev.vga;if(typeof h=="string"?p=ev[h]:h!==void 0&&(p.height.ideal=h.height.ideal,p.width.ideal=h.width.ideal),p.frameRate={ideal:(o=(s=p.frameRate)==null?void 0:s.ideal)!=null?o:24},Ie.isChromiumBased()&&(p.frameRate.max=30),z.hasFeature(ie.VIDEO_CONSTRAINTS)){const g=(c=z.getValue(ie.VIDEO_CONSTRAINTS))==null?void 0:c.toString();p=JSON.parse(g)}return d.video=p,typeof d.video=="boolean"||(r?d.video.deviceId={exact:r}:d.video.facingMode="user"),d}),v(this,qu,e),v(this,hs,i)}getUpdatedVideoConstraints(e){return e}}hs=new WeakMap,qu=new WeakMap;class Gu extends Error{constructor(e,i,r){super(i),m(this,"constraints"),m(this,"name"),this.name=e,this.constraints=r}}class F1{constructor(){m(this,"permissions"),this.permissions={audio:"NOT_REQUESTED",video:"NOT_REQUESTED",screenshare:"NOT_REQUESTED"}}getAudioInputDevices(e){return u(this,null,function*(){let i=e;return e||(i=yield this.getAvailableDevices()),i.filter(r=>r.kind==="audioinput")})}getVideoInputDevices(e){return u(this,null,function*(){let i=e;return e||(i=yield this.getAvailableDevices()),i.filter(r=>r.kind==="videoinput")})}getAudioOutputDevices(e){return u(this,null,function*(){let i=e;return e||(i=yield this.getAvailableDevices()),i.filter(r=>r.kind==="audiooutput")})}}var B1=Object.defineProperty,W1=Object.getOwnPropertyDescriptor,Ti=(t,e,i,r)=>{for(var n=r>1?void 0:r?W1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&B1(e,i,n),n},Aa,ki,bi,tv;let qt=(tv=class extends F1{constructor(t,e){super(),m(this,"availableDevices"),f(this,Aa,void 0),f(this,ki,void 0),f(this,bi,void 0),v(this,bi,t),v(this,ki,new U1(t,e)),v(this,Aa,new AbortController),this.availableDevices=[],this.getAvailableDevices()}get constraintsBuilder(){return a(this,ki)}destruct(){return u(this,null,function*(){var t;(t=a(this,Aa))==null||t.abort()})}handlePermissionErrors(t,e){const i=md(t,e.name,e.message);return this.permissions[t]=i,a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_ERROR,{message:i,constraints:e.constraints,kind:t}),i}getAudioAndVideoTrack(t,e){return u(this,null,function*(){const i={audio:a(this,ki).getAudioConstraints(t).audio,video:a(this,ki).getVideoConstraints(e).video};try{l.info("getUserMediaWithoutTimeout::requesting_user_media",{constraints:JSON.stringify(i)});const r=yield navigator.mediaDevices.getUserMedia(i);l.info("getUserMediaWithoutTimeout::received_user_media",{constraints:JSON.stringify(i)});const n=r.getAudioTracks()[0];let s=r.getVideoTracks()[0];if(this.permissions.audio="ACCEPTED",this.permissions.video="ACCEPTED",z.hasFeature(ie.OBS_QUALITY)&&s.label.includes("OBS Virtual")){const o=(yield this.getVideoInputDevices()).find(c=>c.label.includes("OBS Virtual"));s=yield this.getVideoTrack(o.deviceId)}return a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.audio,kind:"audio"}),a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.video,kind:"video"}),{audioTrack:n,videoTrack:s}}catch(r){throw l.error("WebMediaInterface.getAudioAndVideoTrack",{error:r}),new w("Couldnt fetch audio and video track","1605")}})}getAudioTrack(t,e){return u(this,null,function*(){let i=yield this.getAudioInputDevices();if(i.length===0)throw this.permissions.audio="NO_DEVICES_AVAILABLE",a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.audio,kind:"audio"}),new w("No audio devices available","1606");const r=n=>u(this,null,function*(){let s;try{i=i.filter(c=>c.deviceId!==n),s=a(this,ki).getAudioConstraints(n),l.info("getUserMediaWithoutTimeout::requesting_user_media",{constraints:JSON.stringify(s)});const[o]=(yield navigator.mediaDevices.getUserMedia(s)).getAudioTracks();return l.info("getUserMediaWithoutTimeout::received_user_media",{constraints:JSON.stringify(s)}),o}catch(o){const c=md("audio",o.name,o.message),d=new Gu(o.name,o.message,s);if(c==="COULD_NOT_START"){const h=i.shift();if(!h)throw d;l.info("getAudioTrack::gum_failed",{constraints:JSON.stringify(s),error:o});const p=a(this,ki).getAudioConstraints(h.deviceId);return l.info("getAudioTrack::retrying_gum_for_next_device",{constraints:JSON.stringify(p)}),r(h.deviceId)}throw d}});try{const n=yield r(e);return n.enabled=!t,this.permissions.audio!=="ACCEPTED"&&(this.permissions.audio="ACCEPTED",a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.audio,kind:"audio"})),n}catch(n){throw n.constraints&&this.handlePermissionErrors("audio",n),new w(n.message,"1601")}})}getVideoTrack(t){return u(this,null,function*(){var e;const i=z.hasFeature(ie.OBS_QUALITY),r=(e=yield this.getCurrentDeviceLabel(t))==null?void 0:e.includes("OBS Virtual"),n=i&&r,s=yield this.getVideoInputDevices();if(s.length===0)throw this.permissions.video="NO_DEVICES_AVAILABLE",a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.video,kind:"video"}),new w("No video devices available","1607");const o=c=>u(this,null,function*(){try{let d=c;const{video:h}=d;n&&typeof h!="boolean"&&(d={video:{deviceId:h.deviceId}}),l.info("getUserMediaWithoutTimeout::requesting_user_media",{constraints:JSON.stringify(d)});const[p]=(yield navigator.mediaDevices.getUserMedia(d)).getVideoTracks();if(n&&typeof h!="boolean"&&typeof h.width=="object"){const{width:g,height:y}=p.getSettings(),{ideal:T}=h.width;p.applyConstraints({width:{ideal:T},height:{ideal:Math.floor(y*T/g)},frameRate:h.frameRate})}return l.info("getUserMediaWithoutTimeout::received_user_media",{constraints:JSON.stringify(d)}),p}catch(d){const h=md("video",d.name,d.message),p=new Gu(d.name,d.message,c);if(h==="COULD_NOT_START"){const g=s.shift();if(!g)throw p;l.info("getVideoTrack::gum_failed",{constraints:JSON.stringify(c),error:d});const y=a(this,ki).getVideoConstraints(g.deviceId);return l.info("getVideoTrack::retrying_gum_for_next_device",{constraints:JSON.stringify(y)}),o({video:y.video})}throw p}});try{const c=a(this,ki).getVideoConstraints(t),d=yield o(c);return this.permissions.video!=="ACCEPTED"&&(this.permissions.video="ACCEPTED",a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.video,kind:"video"})),d}catch(c){throw c.constraints&&this.handlePermissionErrors("video",c),new w(c.message,"1602")}})}getScreenShareTracks(){return u(this,null,function*(){const t=e=>u(this,null,function*(){try{l.info("getDisplayMediaWithoutTimeout::requesting_display_media",{constraints:JSON.stringify(e)}),J.screenShareRequested();const i=yield navigator.mediaDevices.getDisplayMedia(e);return l.info("getDisplayMediaWithoutTimeout::received_display_media",{constraints:JSON.stringify(e)}),i}catch(i){const r=md("video",i.name,i.message),n=new Gu(i.name,i.message,e),s={video:!0};if(F_(e,s)||!z.hasFeature(ie.SCREEENSHARE_CONSTRAINTS_RETRY))throw n;if(r==="COULD_NOT_START")return t(s);throw n}});try{const e=a(this,ki).getScreenShareConstraints(),i=yield t(e);return this.permissions.screenshare!=="ACCEPTED"&&(this.permissions.screenshare="ACCEPTED",a(this,bi).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.permissions.screenshare,kind:"screenshare"})),{audioTrack:i.getAudioTracks()[0],videoTrack:i.getVideoTracks()[0]}}catch(e){throw e.constraints&&this.handlePermissionErrors("screenshare",e),new w(e.message,"1612")}})}getCurrentDeviceLabel(t){return u(this,null,function*(){const e=yield this.getDevice(t||"default");return e==null?void 0:e.label})}getAvailableDevices(){return u(this,null,function*(){try{const t=yield navigator.mediaDevices.enumerateDevices();return this.availableDevices=t,t}catch(t){throw l.error("enumerate_devices_failed",{error:t}),new w("Failed to get available devices","1609")}})}getAvailableDevicesByKind(t){return u(this,null,function*(){try{return(yield navigator.mediaDevices.enumerateDevices()).filter(({kind:e})=>t===e)}catch(e){throw l.error("enumerate_devices_failed",{error:e}),new w("Failed to get available devices by kind","1609")}})}getDevice(t){return u(this,null,function*(){try{return(yield navigator.mediaDevices.enumerateDevices()).filter(e=>e.deviceId===t)[0]}catch(e){throw l.error("enumerate_devices_failed",{error:e}),new w("Failed to get device","1609")}})}onDeviceChange(t){return u(this,null,function*(){Ie.supportsDeviceChangeEvent()&&navigator.mediaDevices.addEventListener("devicechange",e=>u(this,null,function*(){var i,r;const n=p=>`${p.kind}-${p.deviceId}-${p.groupId}`,s=this.availableDevices,o=new Set(s.map(p=>n(p))),c=yield this.getAvailableDevices(),d=new Set(c.map(p=>n(p))),h={added:c.filter(p=>!o.has(n(p))),removed:s.filter(p=>!d.has(n(p))),devices:c};if((i=h.added)!=null&&i.length||(r=h.removed)!=null&&r.length){l.info("repopulated_full_device_list",{devices:JSON.stringify(c)});const p=[...h.added,...h.removed];p.some(g=>g.kind==="audioinput")&&J.devices("AUDIO",c==null?void 0:c.filter(g=>g.kind==="audioinput")),p.some(g=>g.kind==="videoinput")&&J.devices("VIDEO",c==null?void 0:c.filter(g=>g.kind==="videoinput")),p.some(g=>g.kind==="audiooutput")&&J.devices("SPEAKER",c==null?void 0:c.filter(g=>g.kind==="audiooutput")),t(e,h,!1)}}),{signal:a(this,Aa).signal})})}},Aa=new WeakMap,ki=new WeakMap,bi=new WeakMap,tv);Ti([S.trace("WebMediaInterface.destruct")],qt.prototype,"destruct",1),Ti([S.trace("WebMediaInterface.handlePermissionErrors")],qt.prototype,"handlePermissionErrors",1),Ti([S.trace("WebMediaInterface.getAudioAndVideoTrack")],qt.prototype,"getAudioAndVideoTrack",1),Ti([S.trace("WebMediaInterface.getAudioTrack")],qt.prototype,"getAudioTrack",1),Ti([S.trace("WebMediaInterface.getVideoTrack")],qt.prototype,"getVideoTrack",1),Ti([S.trace("WebMediaInterface.getScreenShareTracks")],qt.prototype,"getScreenShareTracks",1),Ti([S.trace("WebMediaInterface.getAvailableDevices")],qt.prototype,"getAvailableDevices",1),Ti([S.trace("WebMediaInterface.getAvailableDevicesByKind")],qt.prototype,"getAvailableDevicesByKind",1),Ti([S.trace("WebMediaInterface.getDevice")],qt.prototype,"getDevice",1),Ti([S.trace("WebMediaInterface.onDeviceChange")],qt.prototype,"onDeviceChange",1),qt=Ti([ut("1600")],qt);const iv=qt,Da={setItem:(t,e)=>{try{localStorage.setItem(t,e)}catch(i){l.error("LocalStorage::setItem::crashed",{error:i,localStorage:{key:t,value:e}})}},getItem:t=>{try{return localStorage.getItem(t)}catch(e){l.error("LocalStorage::getItem::crashed",{error:e,localStorage:{key:t}})}return null}},j1=(t=0)=>new Promise(e=>setTimeout(e,t)),H1=(t,e,i)=>{const r=typeof i=="number"?i:250,n=t.createMediaStreamSource(e),s=t.createAnalyser();s.fftSize=2048,n.connect(s);const o=new Uint8Array(s.fftSize);let c=!1;setTimeout(()=>{c=!0},r);function d(){return c?Promise.resolve(!0):(s.getByteTimeDomainData(o),o.some(h=>h!==128&&h!==0)?Promise.resolve(!1):j1().then(d))}return d().then(h=>(n.disconnect(),h),h=>{throw n.disconnect(),h})},q1=typeof AudioContext!="undefined"?AudioContext:null;class $u{constructor(e){m(this,"_AudioContext"),m(this,"audioContext"),m(this,"_audioContextRefContainers");const i=L({AudioContext:q1},e);Object.defineProperties(this,{_AudioContext:{value:i.AudioContext},audioContext:{value:null,writable:!0},_audioContextRefContainers:{value:new Set},AudioContextProvider:{enumerable:!0,value:$u}})}getOrCreate(e){if(!this._audioContextRefContainers.has(e)&&(this._audioContextRefContainers.add(e),this._AudioContext&&!this.audioContext))try{this.audioContext=new this._AudioContext}catch(i){}return this.audioContext}release(e){this._audioContextRefContainers.has(e)&&(this._audioContextRefContainers.delete(e),!this._audioContextRefContainers.size&&this.audioContext&&(this.audioContext.close(),this.audioContext=null))}}const rv=new $u,G1=3,$1=250;function J1(t){const e={},i=rv.getOrCreate(e);let r=G1;function n(){return r-=1,H1(i,t.srcObject,$1).then(s=>s?r>0?n():!0:!1).catch(()=>!0)}return n().finally(()=>{rv.release(e)})}function nv(t){return u(this,null,function*(){const e=new Audio,i=new MediaStream;i.addTrack(t),e.srcObject=i;let r=!1;try{const n=e.play();n&&(yield n),r=yield J1(e),r&&l.info("checkIfAudioTrackIsSilent::silence_detected")}catch(n){l.error("checkIfAudioTrackIsSilent::failed_to_detect_silence",{error:n})}finally{e.pause(),e.remove()}return r})}var K1=Object.defineProperty,z1=Object.getOwnPropertyDescriptor,sv=(t,e,i,r)=>{for(var n=r>1?void 0:r?z1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&K1(e,i,n),n};let gd=class extends Yn{constructor(t,e,i){var r;super(),m(this,"constructorName",this.constructor.name),m(this,"userSelectedDevice"),m(this,"mediaInterface"),m(this,"isNonPreferredDevice"),m(this,"_mediaTrack"),m(this,"transformedMediaTrack"),m(this,"middlewares",[]),m(this,"currentDevice"),m(this,"userPreferredDeviceKey",`Dyte::${this.constructorName}::UserDeviceID`),m(this,"setUserPreferredDevice",n=>Da.setItem(this.userPreferredDeviceKey,n)),m(this,"getUserPreferredDevice",()=>Da.getItem(this.userPreferredDeviceKey)),m(this,"isCustomTrack",!1),this.mediaInterface=t,e&&this.setMediaTrack(e),this.userSelectedDevice=(r=this.getUserPreferredDevice())!=null?r:void 0,this.isNonPreferredDevice=i,this.onTrackEnded=this.onTrackEnded.bind(this),this.onTrackMuted=this.onTrackMuted.bind(this)}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){return u(this,null,function*(){const e=i=>{l.error(`${this.constructorName}.setMediaTrack.error`,{error:i})};try{this.disableTrack()}catch(i){e(i)}this._mediaTrack=yield this.conditionallyChangeTrack(t),yield this.setTransformedTrack();try{this.addMediaTrackListeners(),yield this.setCurrentDevice()}catch(i){e(i)}})}get trackEnabled(){return!!this.mediaTrack&&this.mediaTrack.readyState==="live"&&this.mediaTrack.enabled}muteTrack(){if(!this.mediaTrack){l.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 l.error(`${this.constructorName}.unmuteTrack.error`,{error:t}),this.disableTrack(),new w("Failed to unmute track","1611")}})}getCurrentDeviceId(){var t,e;const{kind:i}=this.mediaTrack;switch(i){case"audio":{const r=this.mediaTrack.getConstraints();return this.userSelectedDevice?(e=(t=r==null?void 0:r.deviceId)!=null?t:r==null?void 0:r.advanced[0].deviceId)!=null?e:this.mediaTrack.getSettings().deviceId:this.mediaTrack.getSettings().deviceId}default:return this.mediaTrack.getSettings().deviceId}}setCurrentDevice(){return u(this,null,function*(){var t;if(!this.mediaTrack){this.currentDevice=void 0;return}const e=this.getCurrentDeviceId();((t=this.currentDevice)==null?void 0:t.deviceId)!==e&&(this.currentDevice=yield this.mediaInterface.getDevice(e))})}setDevice(t){return u(this,null,function*(){if(!t)throw l.warn(`${this.constructorName}.setDevice No device received`),new w("No device received!","1603");this.userSelectedDevice=t.deviceId,this.setUserPreferredDevice(t.deviceId),yield this.onSetDevice(t)})}addMiddleware(t){return u(this,null,function*(){if(Ie.isWebKitBased()&&!z.hasFeature(ie.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 l.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(i){return l.error("While removing middleware",{error:i}),{success:!1,message:i==null?void 0:i.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 l.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,i;this.mediaTrack&&(l.info(`${this.constructorName}.addMediaTrackListeners for deviceId ${(e=(t=this.mediaTrack)==null?void 0:t.getSettings())==null?void 0:e.deviceId} of type ${(i=this.mediaTrack)==null?void 0:i.kind}`),this.mediaTrack.addEventListener("ended",this.onTrackEnded),this.mediaTrack.addEventListener("mute",this.onTrackMuted))}removeMediaTrackListeners(){var t,e,i;this.mediaTrack&&(l.info(`${this.constructorName}.removeMediaTrackListeners for deviceId ${(e=(t=this.mediaTrack)==null?void 0:t.getSettings())==null?void 0:e.deviceId} of type ${(i=this.mediaTrack)==null?void 0:i.kind}`),l.info(`${this.constructorName}.removeMediaTrackListeners`),this.mediaTrack.removeEventListener("ended",this.onTrackEnded),this.mediaTrack.removeEventListener("mute",this.onTrackMuted))}};sv([S.trace("BaseMediaHandler.unmuteTrack")],gd.prototype,"unmuteTrack",1),gd=sv([ut("1600")],gd);const av=gd;var Y1=Object.defineProperty,Q1=Object.getOwnPropertyDescriptor,Ju=(t,e,i,r)=>{for(var n=r>1?void 0:r?Q1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&Y1(e,i,n),n};const Ku="[Dyte]nonSilentDeviceLabels";class fd extends av{onSetDevice(e){return u(this,null,function*(){if(!e)throw l.warn("AudioMediaHandler.setDevice No device received"),new w("No device received!","1603");if(e.kind!=="audioinput")throw l.warn("AudioMediaHandler.setDevice Received non audio device"),new w("Non audio device received while setting device!","1603");try{const i=this.trackEnabled;yield this.setMediaTrack(yield this.mediaInterface.getAudioTrack(!i,this.userSelectedDevice)),this.userSelectedDevice=void 0}catch(i){throw l.error("AudioMediaHandler.setDevice.error",{error:i}),this.disableTrack(),new w(i.message,"1604")}})}enableTrack(e,i){return u(this,null,function*(){if(this.trackEnabled){l.warn("AudioMediaHandler.enableTrack Track already enabled!");return}if(i){this.isCustomTrack=!0,yield this.setMediaTrack(i);return}this.isCustomTrack=!1;const r=yield this.mediaInterface.getAudioTrack(e,this.userSelectedDevice);yield this.setMediaTrack(r)})}setTransformedTrack(e){return u(this,null,function*(){var i;if(!e&&!((i=this.middlewares)!=null&&i.length)){this.transformedMediaTrack=this.mediaTrack;return}try{this.transformedMediaTrack=yield D1(this.middlewares,this.mediaTrack),this.emit("trackChanged")}catch(r){l.error("AudioMediaHandler.setTransformedTrack",{error:r}),this.transformedMediaTrack=this.mediaTrack}})}onTrackEnded(){return u(this,null,function*(){l.info("AudioMediaHandler.TrackEnded"),this.emit("trackEnded");const e=this.mediaTrack.enabled;this.disableTrack(),yield this.enableTrack(!e),yield this.setTransformedTrack(),this.emit("trackChanged")})}onTrackMuted(){l.info("AudioMediaHandler.TrackMuted"),this.emit("trackMuted")}conditionallyChangeTrack(e){return u(this,null,function*(){var i;if(!e||this.userSelectedDevice)return e;let r=e;const n=yield this.mediaInterface.getAudioInputDevices(),s=this.isNonPreferredDevice?n.filter(d=>d&&!this.isNonPreferredDevice(d)):n;if(!(s!=null&&s.length))return r;s.find(d=>d.deviceId===e.getSettings().deviceId)||(r.stop(),l.info("localmediahandler::setupstreams::found_audio_non_preferred"),r=yield this.mediaInterface.getAudioTrack(!1,s[0].deviceId));const o=JSON.parse(Da.getItem(Ku));if(o!=null&&o.devices.some(d=>d.label===r.label))return r;if(!(yield nv(r))){const d=(i=o==null?void 0:o.devices.concat({label:r.label}))!=null?i:[{label:r.label}];return Da.setItem(Ku,JSON.stringify({devices:d})),r}l.info("AudioMediaHandler.conditionallyChangeTrack.DetectedSilentTrack");const c=r.getSettings().deviceId;return s.filter(d=>d.deviceId!==c).some(d=>u(this,null,function*(){if(r=yield this.mediaInterface.getAudioTrack(!1,d.deviceId),!(yield nv(r))){const h=o.devices.concat({label:r.label});return Da.setItem(Ku,JSON.stringify({devices:h})),l.info("AudioMediaHandler.conditionallyChangeTrack.SuccesfullyChangedTrack"),!0}return l.info("AudioMediaHandler.conditionallyChangeTrack.AnotherSilentTrackFound"),!1})),r})}}Ju([S.trace("AudioMediaHandler.setTransformedTrack")],fd.prototype,"setTransformedTrack",1),Ju([S.trace("AudioMediaHandler.onTrackEnded")],fd.prototype,"onTrackEnded",1),Ju([S.trace("AudioMediaHandler.conditionallyChangeTrack")],fd.prototype,"conditionallyChangeTrack",1);const X1=fd;var Oa;class Z1{constructor(e){f(this,Oa,void 0),m(this,"currentDevice"),v(this,Oa,e)}setupSpeaker(e){return u(this,null,function*(){var i,r;if(!(a(this,Oa)instanceof iv))return;let n=e;if(e||([n]=(yield a(this,Oa).getAvailableDevicesByKind("audiooutput")).filter(o=>!Hu(o))),!n)throw new w("No speaker found","1608");if(((i=this.currentDevice)==null?void 0:i.deviceId)===n.deviceId)return;this.currentDevice=n;const s=document.querySelectorAll("audio");(r=s[0])!=null&&r.setSinkId&&s.forEach(o=>u(this,null,function*(){if(typeof o.sinkId!="undefined"&&this.currentDevice.deviceId&&o.sinkId!==this.currentDevice.deviceId)try{yield o.setSinkId(this.currentDevice.deviceId)}catch(c){}}))})}}Oa=new WeakMap;const eD=Z1;var vd;class tD extends Yn{constructor(e,i){super(),m(this,"mediaInterface"),m(this,"audioMediaTrack"),m(this,"videoMediaTrack"),f(this,vd,void 0),v(this,vd,e),this.mediaInterface=i}get trackEnabled(){return!!this.videoMediaTrack}enableScreenShare(){return u(this,null,function*(){var e,i;try{const{audioTrack:r,videoTrack:n}=yield this.mediaInterface.getScreenShareTracks();if(this.audioMediaTrack=r,this.videoMediaTrack=n,this.addMediaTrackListeners(),((i=(e=this.mediaInterface)==null?void 0:e.permissions)==null?void 0:i.screenshare)==="ACCEPTED")return;this.mediaInterface.permissions&&(this.mediaInterface.permissions.screenshare="ACCEPTED",a(this,vd).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,{message:this.mediaInterface.permissions.screenshare,kind:"screenshare"}))}catch(r){}})}disableScreenShare(){var e,i;this.removeMediaTrackListeners(),(e=this.audioMediaTrack)==null||e.stop(),(i=this.videoMediaTrack)==null||i.stop(),this.videoMediaTrack=void 0,this.audioMediaTrack=void 0}updateConstraints(e){return u(this,null,function*(){if(!this.videoMediaTrack)throw new w("No media track enabled!","1610");const i=this.mediaInterface;if(!i.constraintsBuilder)throw new w("update constraints not supported for non web clients","1100");try{this.videoMediaTrack.applyConstraints(i.constraintsBuilder.getUpdatedVideoConstraints(e)),this.addMediaTrackListeners()}catch(r){l.error("ScreenShareHandler.updateConstraints.error",{error:r})}})}addMediaTrackListeners(){var e,i;(e=this.videoMediaTrack)==null||e.addEventListener("ended",this.onTrackEnded.bind(this)),Ie.isWebKitBased()&&((i=this.videoMediaTrack)==null||i.addEventListener("mute",this.onTrackEnded.bind(this)))}removeMediaTrackListeners(){var e,i;(e=this.videoMediaTrack)==null||e.removeEventListener("ended",this.onTrackEnded),(i=this.videoMediaTrack)==null||i.removeEventListener("mute",this.onTrackEnded)}onTrackEnded(){this.emit("trackEnded")}}vd=new WeakMap;const iD=tD;var rD=Object.defineProperty,nD=Object.getOwnPropertyDescriptor,yd=(t,e,i,r)=>{for(var n=r>1?void 0:r?nD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&rD(e,i,n),n},Na,Sd;class La extends av{constructor(e,i,r){super(e,i,r),f(this,Na,void 0),f(this,Sd,{disablePerFrameCanvasRendering:!1}),v(this,Na,new O1)}onSetDevice(e){return u(this,null,function*(){if(!e)throw l.warn("VideoMediaHandler.setDevice No device received"),new w("No device received!","1603");if(e.kind!=="videoinput")throw l.warn("VideoMediaHandler.setDevice Received non video device",{devices:[e]}),new w("Non video device received while setting video device!","1603");if(!(this.mediaTrack&&this.mediaTrack.enabled)){l.warn("VideoMediaHandler.setDevice Tried switching device with video disabled",{devices:[e]}),this.currentDevice=e;return}try{yield this.setMediaTrack(yield this.mediaInterface.getVideoTrack(this.userSelectedDevice))}catch(i){throw l.error("VideoMediaHandler.setDevice.error",{error:i}),this.disableTrack(),new w("Failed to change device","1600")}})}enableTrack(e,i){return u(this,null,function*(){if(this.trackEnabled){l.warn("VideoMediaHandler.enableTrack Track already enabled!");return}if(i){this.isCustomTrack=!0,yield this.setMediaTrack(i);return}this.isCustomTrack=!1;const r=yield this.mediaInterface.getVideoTrack(this.userSelectedDevice);yield this.setMediaTrack(r)})}setTransformedTrack(e){return u(this,null,function*(){var i;if(!e&&!((i=this.middlewares)!=null&&i.length)){this.transformedMediaTrack=this.mediaTrack;return}try{this.transformedMediaTrack=yield a(this,Na).getTransformedVideoTrack(this.middlewares,this.mediaTrack,a(this,Sd)),this.emit("trackChanged")}catch(r){l.error("VideoMediaHandler.setTransformedTrack",{error:r}),this.transformedMediaTrack=this.mediaTrack}})}setVideoMiddlewareGlobalConfig(e){return u(this,null,function*(){v(this,Sd,e)})}updateConstraints(e){return u(this,null,function*(){if(!this._mediaTrack)throw new w("No media track enabled!","1610");const i=this.mediaInterface;if(!i.constraintsBuilder)throw new w("update constraints not supported for non web clients","1100");try{this._mediaTrack.applyConstraints(i.constraintsBuilder.getUpdatedVideoConstraints(e)),yield this.setTransformedTrack(),this.addMediaTrackListeners(),yield this.setCurrentDevice()}catch(r){l.error("VideoMediaHandler.updateConstraints.error",{error:r})}})}terminateMiddlewareWebWorker(){a(this,Na).terminateMiddlewareWebWorker()}onTrackEnded(){return u(this,null,function*(){l.info("VideoMediaHandler.TrackEnded"),this.disableTrack(),this.emit("trackEnded")})}onTrackMuted(){l.info("VideoMediaHandler.TrackMuted"),this.emit("trackMuted")}conditionallyChangeTrack(e){return u(this,null,function*(){if(!e||this.userSelectedDevice)return e;let i=e;const r=yield this.mediaInterface.getVideoInputDevices(),n=this.isNonPreferredDevice?r.filter(s=>!this.isNonPreferredDevice(s)):r;return!(n!=null&&n.length)||window.FAST_DYTE||n.find(s=>s.deviceId===e.getSettings().deviceId)||(i.stop(),l.info("localmediahandler::setupstreams::found_video_non_preferred"),i=yield this.mediaInterface.getVideoTrack(n[0].deviceId)),i})}}Na=new WeakMap,Sd=new WeakMap,yd([S.trace("VideoMediaHandler.setTransformedTrack")],La.prototype,"setTransformedTrack",1),yd([S.trace("VideoMediaHandler.setVideoMiddlewareGlobalConfig")],La.prototype,"setVideoMiddlewareGlobalConfig",1),yd([S.trace("VideoMediaHandler.onTrackEnded")],La.prototype,"onTrackEnded",1),yd([S.trace("VideoMediaHandler.conditionallyChangeTrack")],La.prototype,"conditionallyChangeTrack",1);const sD=La,ov=vi(iu());var Gt,ps,Ed,Va;const xa=class{constructor(t){if(f(this,Gt,void 0),f(this,ps,void 0),f(this,Ed,void 0),f(this,Va,void 0),!t)throw new w("Could not load preset.","0904");v(this,Gt,t.config),v(this,Ed,t.name),v(this,ps,t.ui||vi(iu().ui)),v(this,Va,t.permissions.plugins.config)}static fromResponse(t){return new xa(t)}static default(){return new xa(ov)}static init(t,e=!0){return!t||e?new xa(ov):new xa(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:a(this,ps).designTokens.logo,timer:!0,title:!0,participantCount:!0,changeLayout:!1}}}get pipMode(){return!0}get viewType(){return a(this,Gt).viewType}get livestreamViewerQualities(){return a(this,Gt).livestreamViewerQualities||[]}get maxVideoStreams(){return a(this,Gt).maxVideoStreams}get maxScreenShareCount(){return a(this,Gt).maxScreenshareCount}get plugins(){return[]}get disabledPlugins(){return Object.keys(a(this,Va)).filter(t=>a(this,Va)[t].disabled)}get designTokens(){return a(this,ps).designTokens}get configDiff(){return a(this,ps).configDiff}get mediaConstraints(){var t,e,i,r,n,s,o,c,d,h,p,g,y,T,b,O,R,x,G,$,I,se,ne,Se;return{audio:{enableStereo:(r=(i=(e=(t=a(this,Gt))==null?void 0:t.media)==null?void 0:e.audio)==null?void 0:i.enableStereo)!=null?r:us.audio.enableStereo,enableHighBitrate:(c=(o=(s=(n=a(this,Gt))==null?void 0:n.media)==null?void 0:s.audio)==null?void 0:o.enableHighBitrate)!=null?c:us.audio.enableHighBitrate},video:{quality:(g=(p=(h=(d=a(this,Gt))==null?void 0:d.media)==null?void 0:h.video)==null?void 0:p.quality)!=null?g:us.video.quality,frameRate:(O=(b=(T=(y=a(this,Gt))==null?void 0:y.media)==null?void 0:T.video)==null?void 0:b.frameRate)!=null?O:us.video.frameRate},screenshare:{quality:($=(G=(x=(R=a(this,Gt))==null?void 0:R.media)==null?void 0:x.screenshare)==null?void 0:G.quality)!=null?$:us.screenshare.quality,frameRate:(Se=(ne=(se=(I=a(this,Gt))==null?void 0:I.media)==null?void 0:se.screenshare)==null?void 0:ne.frameRate)!=null?Se:us.screenshare.frameRate}}}get name(){return a(this,Ed)}};let aD=xa;Gt=new WeakMap,ps=new WeakMap,Ed=new WeakMap,Va=new WeakMap;var oD=Object.defineProperty,cD=Object.getOwnPropertyDescriptor,cv=(t,e,i,r)=>{for(var n=r>1?void 0:r?cD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&oD(e,i,n),n},Ua;class zu extends Wt{constructor(e){super(),f(this,Ua,void 0),m(this,"state","IDLE"),m(this,"playbackUrl"),m(this,"ingestionCredentials"),m(this,"viewerCount"),v(this,Ua,e),this.viewerCount=0}setLivestreamState(e){const i=this.state;this.state=e,i!==e&&this.emitCurrentLivestreamState()}emitCurrentLivestreamState(){this.emit("livestreamUpdate",this.state)}start(){return u(this,arguments,function*(e={manualIngestion:!1}){if(!a(this,Ua).permissions.canLivestream)throw l.error("DyteLivestream::start::permission_denied"),new w("User does not have permission to start livestreaming","1901");this.setLivestreamState("STARTING");try{const i=ht(),{playbackUrl:r,ingestionCredentials:n}=yield i.startLivestreaming(e);this.playbackUrl=r,this.ingestionCredentials=n,e!=null&&e.manualIngestion&&this.setLivestreamState("WAITING_ON_MANUAL_INGESTION")}catch(i){throw l.error("DyteRecording::stop::livestream_failed_to_start",{error:i}),this.setLivestreamState("IDLE"),new w("Error while starting livestream","1900")}})}stop(){return u(this,null,function*(){if(!a(this,Ua).permissions.canLivestream)throw l.error("DyteLivestream::stop::permission_denied"),new w("User does not have permission to stop livestreaming","1901");if(this.state!=="LIVESTREAMING"&&this.state!=="WAITING_ON_MANUAL_INGESTION")throw l.error("DyteLivestream::stop::inconsistent_state"),new w("Livestream not started yet","1902");try{this.setLivestreamState("STOPPING"),yield ht().stopLivestreaming()}catch(e){throw l.error("DyteLivestream::stop::livestream_failed_to_stop",{error:e}),this.setLivestreamState("STOPPING"),new w("Error while stopping livestream","1900")}})}}Ua=new WeakMap,cv([S.trace("livestream.start")],zu.prototype,"start",1),cv([S.trace("livestream.stop")],zu.prototype,"stop",1);var dD=Object.defineProperty,lD=Object.getOwnPropertyDescriptor,uD=(t,e,i,r)=>{for(var n=r>1?void 0:r?lD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&dD(e,i,n),n},Fa,Ba,_r,pn;class dv{constructor(e,i,r){m(this,"livestream"),f(this,Fa,void 0),f(this,Ba,void 0),f(this,_r,void 0),f(this,pn,void 0),v(this,pn,e),v(this,Ba,i),this.livestream=new zu(i),v(this,_r,r),this.setupEvents()}fetchInitialLivestreamingState(){return u(this,null,function*(){const e=ht(),{status:i,playbackUrl:r,manualIngest:n,ingestionCredentials:s}=yield e.getActiveLivestream();this.livestream.playbackUrl=r,this.livestream.ingestionCredentials=s,i==="LIVE"&&this.livestream.setLivestreamState("LIVESTREAMING"),i==="INVOKED"&&n&&this.livestream.setLivestreamState("WAITING_ON_MANUAL_INGESTION")})}setupEvents(){a(this,_r).on(B.startedLivestream,e=>u(this,null,function*(){this.livestream.playbackUrl=e.playbackUrl,this.livestream.setLivestreamState("LIVESTREAMING");try{a(this,Ba).permissions.canLivestream&&(yield this.fetchInitialLivestreamingState())}catch(i){l.error("Error: LivestreamController.fetchLivestream during startedLivestream re-fetch")}})),a(this,_r).on(B.livestreamingInvoked,e=>u(this,null,function*(){if(e.manualIngest){this.livestream.setLivestreamState("WAITING_ON_MANUAL_INGESTION");try{a(this,Ba).permissions.canLivestream&&(yield this.fetchInitialLivestreamingState())}catch(i){l.error("Error: LivestreamController.fetchLivestream during livestreamingInvoked re-fetch")}}})),a(this,_r).on(B.stoppedLivestream,()=>{this.livestream.setLivestreamState("IDLE"),this.livestream.playbackUrl=void 0,this.livestream.ingestionCredentials=void 0}),a(this,_r).on(B.erroredLivestream,()=>{this.livestream.setLivestreamState("IDLE"),this.livestream.playbackUrl=void 0}),a(this,_r).on(B.roomPeerCount,e=>{this.livestream.viewerCount=e.count,this.livestream.emit("viewerCountUpdate",e.count)}),a(this,pn).getValue("peerSessionStore").on(P.PEER_JOINED_INTERNAL,e=>u(this,null,function*(){var i;((i=e.flags)==null?void 0:i.hiddenParticipant)===!0&&e.recorderType==="LIVESTREAMER"&&(v(this,Fa,e.id),this.livestream.setLivestreamState("LIVESTREAMING"))})),a(this,pn).getValue("peerSessionStore").on(P.PEER_CLOSED,e=>{e.id===a(this,Fa)&&(v(this,Fa,void 0),this.livestream.setLivestreamState("IDLE"))}),a(this,pn).getValue("peerSessionStore").onAsync(P.LEAVE_MEDIA_ROOM,()=>u(this,null,function*(){this.livestream.playbackUrl||(l.info("Fetching livestreaming state on leave stage"),yield this.fetchInitialLivestreamingState())})),a(this,pn).getValue("peerSessionStore").on(P.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){try{yield this.fetchInitialLivestreamingState()}catch(e){l.error("Error: LivestreamController.fetchLivestream")}}))}}Fa=new WeakMap,Ba=new WeakMap,_r=new WeakMap,pn=new WeakMap,uD([S.trace("LivestreamController.setupEvents")],dv.prototype,"setupEvents",1);var hD=Object.defineProperty,pD=Object.getOwnPropertyDescriptor,Wa=(t,e,i,r)=>{for(var n=r>1?void 0:r?pD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&hD(e,i,n),n},kt,mn,gn,Yu,lv;class ms{constructor({name:e,socketHandler:i,meetingId:r}){f(this,Yu),m(this,"name",""),f(this,kt,{}),f(this,mn,""),f(this,gn,void 0),m(this,"rateLimitConfig",{maxInvocations:5,period:1}),m(this,"bulkRateLimitConfig",{maxInvocations:5,period:1}),m(this,"listeners",{}),this.name=e,v(this,gn,i),v(this,mn,r)}set(e,i,r=!0,n=!1){return u(this,null,function*(){a(this,kt)[e]=i,r&&this.remoteSet(e,i),n&&(this.listeners[e]&&this.listeners[e].forEach(s=>s({[e]:a(this,kt)[e]})),this.listeners["*"]&&this.listeners["*"].forEach(s=>s({[e]:a(this,kt)[e]})))})}remoteSet(e,i){a(this,gn).storeInsertKeys(a(this,mn),this.name,[{key:e,payload:i}])}bulkSet(e){return u(this,null,function*(){e.forEach(({key:i,payload:r})=>{a(this,kt)[i]=r}),a(this,gn).storeInsertKeys(a(this,mn),this.name,e)})}update(e,i,r=!0){return u(this,null,function*(){F(this,Yu,lv).call(this,e,i,r)})}delete(e,i=!0,r=!1){return u(this,null,function*(){if(a(this,kt)[e]&&delete a(this,kt)[e],i)return a(this,gn).storeDeleteKeys(a(this,mn),this.name,[{key:e}]);r&&(this.listeners[e]&&(this.listeners[e].forEach(n=>n({[e]:void 0})),delete this.listeners[e]),this.listeners["*"]&&this.listeners["*"].forEach(n=>n({[e]:void 0})))})}bulkDelete(e){return u(this,null,function*(){return e.forEach(({key:i})=>{a(this,kt)[i]&&delete a(this,kt)[i]}),a(this,gn).storeDeleteKeys(a(this,mn),this.name,e)})}get(e){if(a(this,kt)[e])return a(this,kt)[e]}getAll(){return a(this,kt)}get rateLimits(){return this.rateLimitConfig}updateRateLimits(e,i){this.rateLimitConfig.maxInvocations=e,this.rateLimitConfig.period=i}get bulkRateLimits(){return this.bulkRateLimitConfig}updateBulkRateLimits(e,i){this.bulkRateLimitConfig.maxInvocations=e,this.bulkRateLimitConfig.period=i}subscribe(e,i){if(this.listeners[e]){this.listeners[e].push(i);return}this.listeners[e]=[i]}unsubscribe(e,i){var r;if(i){this.listeners[e]=((r=this.listeners[e])==null?void 0:r.filter(n=>n!==i))||[];return}this.listeners[e]&&delete this.listeners[e]}populate(e){v(this,kt,e)}}kt=new WeakMap,mn=new WeakMap,gn=new WeakMap,Yu=new WeakSet,lv=function(t,e,i=!0){let r;const n=a(this,kt)[t],s=Object.prototype.toString.call(e),o=Object.prototype.toString.call(n);if(s!==o){this.set(t,e);return}switch(o){case"[object Array]":r=[...n,...e];break;case"[object Object]":r=L(L({},n),e);break;case"[object Map]":r=new Map([...n,...e]);break;case"[object Set]":r=new Set([...n,...e]);break;default:r=e;break}this.set(t,r,i)},Wa([At(es,"rateLimitConfig")],ms.prototype,"remoteSet",1),Wa([At(es,"bulkRateLimitConfig")],ms.prototype,"bulkSet",1),Wa([At(es,"rateLimitConfig")],ms.prototype,"update",1),Wa([At(es,"rateLimitConfig")],ms.prototype,"delete",1),Wa([At(es,"bulkRateLimitConfig")],ms.prototype,"bulkDelete",1);var gs,fs,Td,Qu,kd,fn,Xu,uv;class mD{constructor(e,i){f(this,Td),f(this,Xu),m(this,"stores",new Map),f(this,gs,void 0),f(this,fs,""),f(this,kd,void 0),f(this,fn,new Map),v(this,gs,i),v(this,fs,e.getValue("meetingId")),v(this,kd,e),F(this,Xu,uv).call(this)}create(e){const i=new ms({name:e,socketHandler:a(this,gs),meetingId:a(this,fs)});return a(this,gs).storeGetKeys(a(this,fs),e,[]),new Promise((r,n)=>{const s=setTimeout(()=>n(Error("Failed")),3e3);a(this,fn).set(e,{rejectTimeout:s,resolve:r,store:i})})}}gs=new WeakMap,fs=new WeakMap,Td=new WeakSet,Qu=function(){return a(this,kd).getValue("peerId")},kd=new WeakMap,fn=new WeakMap,Xu=new WeakSet,uv=function(){[K.storeInsertKeys,K.storeGetKeys,K.storeDeleteKeys].forEach(t=>{a(this,gs).on(t,e=>u(this,null,function*(){var i,r;if(e.pluginId!==a(this,fs))return;const n=(i=e.storeItems)==null?void 0:i.map(o=>{var c;return{timestamp:o.timestamp,peerId:o.peerId,payload:JSON.parse((c=o.payload)!=null&&c.length?new TextDecoder().decode(o.payload):"{}"),key:o.storeKey}});if(t===K.storeGetKeys){const o=a(this,fn).get(e.storeName),c=this.stores.get(e.storeName)||(o==null?void 0:o.store);a(this,fn).get(e.storeName)&&(this.stores.set(e.storeName,o.store),o.resolve(c),clearTimeout(o.rejectTimeout),a(this,fn).delete(e.storeName)),n.forEach(d=>{c.set(d.key,d.payload,!1,!1)});return}const s=this.stores.get(e.storeName)||((r=a(this,fn).get(e.storeName))==null?void 0:r.store);s!==void 0&&(t===K.storeInsertKeys&&n.forEach(({key:o,peerId:c,payload:d})=>{c!==a(this,Td,Qu)&&s.set(o,d,!1,!0)}),t===K.storeDeleteKeys&&n.forEach(({key:o,peerId:c})=>{c!==a(this,Td,Qu)&&s.delete(o,!1,!0)}))}))})};function vn(t){var e,i,r,n,s,o,c,d,h,p,g,y,T;return t?{media:{audio:{enabled:t.audioEnabled,trackId:(e=t.audioTrack)==null?void 0:e.id,permission:"mediaPermissions"in t?(i=t.mediaPermissions)==null?void 0:i.audio:null},video:{enabled:t.videoEnabled,trackId:(r=t.videoTrack)==null?void 0:r.id,permission:"mediaPermissions"in t?(n=t.mediaPermissions)==null?void 0:n.video:null},screenshare:{enabled:t.screenShareEnabled,permission:"mediaPermissions"in t?(s=t.mediaPermissions)==null?void 0:s.screenshare:null,audio:{enabled:(c=(o=t.screenShareTracks)==null?void 0:o.audio)==null?void 0:c.enabled,trackId:(h=(d=t.screenShareTracks)==null?void 0:d.audio)==null?void 0:h.id},video:{enabled:(g=(p=t.screenShareTracks)==null?void 0:p.video)==null?void 0:g.enabled,trackId:(T=(y=t.screenShareTracks)==null?void 0:y.video)==null?void 0:T.id}}}}:{}}var gD=Object.defineProperty,fD=Object.getOwnPropertyDescriptor,vs=(t,e,i,r)=>{for(var n=r>1?void 0:r?fD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&gD(e,i,n),n};const vD=.8,yD=1.2;var ja,Ha,_i,ys,qa,yn,Ss,Es,Ga,Zu,hv,wr,bd,Sn,Ts,$a,Ir,eh,_d,th,ih,pv,rh,mv,gv;let tr=(gv=class extends Wt{constructor(t,e,i,r){super(),f(this,ys),f(this,yn),f(this,Es),f(this,Zu),f(this,Ts),f(this,_d),f(this,ih),f(this,rh),m(this,"id"),m(this,"userId"),m(this,"name"),m(this,"picture"),m(this,"isHost"),m(this,"customParticipantId"),m(this,"flags"),m(this,"device"),m(this,"videoTrack"),m(this,"audioTrack"),m(this,"screenShareTracks"),m(this,"videoEnabled"),m(this,"audioEnabled"),m(this,"screenShareEnabled"),m(this,"producers"),m(this,"manualProducerConfig"),f(this,ja,void 0),m(this,"supportsRemoteControl",!1),f(this,Ha,void 0),m(this,"presetName"),f(this,_i,void 0),f(this,wr,void 0),f(this,bd,void 0),f(this,Sn,new Map),f(this,Ir,1),f(this,eh,su(I=>{if(!this.videoTrack)return;const{clientWidth:se,clientHeight:ne}=I,{width:Se,height:nt}=this.videoTrack.getSettings();if(!Se||!nt)return;const ft=nt/ne,Bt=Se/se,M=Math.max(ft,Bt);M>yD&&a(this,Ir)===1?(v(this,Ir,0),a(this,_i).getValue("peerSessionStore").emit(P.MAX_SPATIAL_LAYER_CHANGE,{peerId:this.id,maxSpatialLayer:a(this,Ir)})):M<vD&&a(this,Ir)===0&&(v(this,Ir,1),a(this,_i).getValue("peerSessionStore").emit(P.MAX_SPATIAL_LAYER_CHANGE,{peerId:this.id,maxSpatialLayer:a(this,Ir)}))},2e3)),v(this,_i,t);const{id:n,userId:s,displayName:o,device:c,picture:d,isHost:h,flags:p,clientSpecificId:g,stageStatus:y,customParticipantId:T,audioMuted:b,audioTrack:O,videoEnabled:R=!1,videoTrack:x,producers:G,metadata:$}=e;this.id=n,this.userId=s,this.name=o,this.device=c,this.picture=d,this.isHost=h,this.flags=p,this.manualProducerConfig=Y_,v(this,Ha,y!=null?y:"ON_STAGE"),this.customParticipantId=T!=null?T:g,this.audioEnabled=!b,this.audioTrack=O,this.videoEnabled=R,this.videoTrack=x,this.screenShareTracks={audio:void 0,video:void 0},this.producers=G!=null?G:[],this.presetName=$==null?void 0:$.preset_name,v(this,ja,!1),v(this,wr,i),v(this,bd,r),this.setupEvents(),this.updateVideo=this.updateVideo.bind(this),F(this,_d,th).call(this)}get clientSpecificId(){return this.customParticipantId}get stageStatus(){return a(this,Ha)}setVideoEnabled(t,e=!0){this.videoEnabled=t,e&&(l.info("DyteParticipant::setVideoEnabled::videoUpdate",L({},vn(this))),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}))}setAudioEnabled(t,e=!0){this.audioEnabled=t,e&&(l.info("DyteParticipant::setAudioEnabled::audioUpdate",L({},vn(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",F(this,_d,th)),a(this,yn,Ss)&&(this.on("audioUpdate",F(this,ih,pv)),this.on("screenShareUpdate",F(this,rh,mv)))}pin(){return u(this,null,function*(){if(!a(this,Es,Ga))throw new w("Can`t pin participant without joining room","1205");if(!a(this,wr).permissions.pinParticipant)throw new w("You do not have permission to pin participants.","1201");return a(this,ys,qa).pinPeer(this.id)})}unpin(){return u(this,null,function*(){if(!a(this,Es,Ga))throw new w("Can`t unpin participant without joining room","1205");if(!a(this,wr).permissions.pinParticipant)throw new w("You do not have permission to unpin participants.","1201");return a(this,ys,qa).pinPeer(null)})}setIsPinned(t,e=!0){var i;v(this,ja,t);const r=t?"pinned":"unpinned";(i=a(this,Ts,$a))==null||i.updateSource(this.id,{pinned:t}),e&&this.emit(r,this)}disableAudio(){return u(this,null,function*(){const t=this.id;if(l.info("DyteParticipant::disable_audio",{dyteParticipant:{id:t}}),!a(this,Es,Ga))throw new w("Can`t disable participant audio without joining room","1205");if(a(this,wr).permissions.canDisableParticipantAudio)return a(this,ys,qa).disableAudio(t);throw l.error("DyteParticipant::unauthorized_disable_audio",{dyteParticipant:{id:t}}),new w("Unauthorized: User does not have permission to disable participant audio.","1201")})}kick(){return u(this,null,function*(){const t=this.id;if(l.info("DyteParticipant::kick",{dyteParticipant:{id:t}}),!a(this,Zu,hv))throw new w("Can`t kick participant without joining room","1205");if(a(this,wr).permissions.kickParticipant){yield a(this,_i).getValue("peerSessionStore").emitAsync(P.KICK_PEER,{peerId:t});return}throw l.error("DyteParticipant::unauthorized_kick",{dyteParticipant:{id:t}}),new w("Unauthorized: User does not have permission to kick participants.","1201")})}disableVideo(){return u(this,null,function*(){const t=this.id;if(l.info("DyteParticipant::disable_video",{dyteParticipant:{id:t}}),!a(this,Es,Ga))throw new w("Can`t disable participant video without joining room","1205");if(a(this,wr).permissions.canDisableParticipantVideo)return a(this,ys,qa).disableVideo(t);throw l.error("DyteParticipant::unauthorized_disable_video",{dyteParticipant:{id:t}}),new w("Unauthorized: User does not have permission to disable participant video.","1201")})}getPermissions(){return u(this,null,function*(){return a(this,bd).getUserPermissions(this.userId)})}setStageStatus(t){v(this,Ha,t),this.emit("stageStatusUpdate",this)}get isPinned(){return a(this,ja)}registerVideoElement(t){var e,i,r,n;if(!t)return;let s;(i=(e=a(this,Sn).get(t))==null?void 0:e.observer)==null||i.disconnect(),"ResizeObserver"in window&&(s=new ResizeObserver(()=>a(this,eh).call(this,t)),s.observe(t)),a(this,Sn).set(t,{observer:s}),this.updateVideo(t),(n=a(this,Ts,$a))==null||n.addSource(this.id,t,this.videoEnabled,this.isPinned,this.name,this.picture,(r=this.raised)!=null?r:!1)}deregisterVideoElement(t){var e,i,r,n;if(!t){(e=a(this,Ts,$a))==null||e.removeSource(this.id);return}t.srcObject=void 0,(r=(i=a(this,Sn).get(t))==null?void 0:i.observer)==null||r.disconnect(),a(this,Sn).delete(t),(n=a(this,Ts,$a))==null||n.removeSource(this.id)}updateVideo(t){var e;if(this.videoEnabled){if(this.videoTrack==null)return;const i=(e=t.srcObject)==null?void 0:e.getTracks()[0];if((i==null?void 0:i.id)===this.videoTrack.id)return;const r=new MediaStream;r.addTrack(this.videoTrack),t.srcObject=r}else t.srcObject=void 0;t.style.display=this.videoEnabled?"block":"none"}},ja=new WeakMap,Ha=new WeakMap,_i=new WeakMap,ys=new WeakSet,qa=function(){return a(this,_i).getValue("roomNodeClient")},yn=new WeakSet,Ss=function(){return a(this,_i).getValue("audioPlayback")},Es=new WeakSet,Ga=function(){return a(this,_i).getValue("connectionHandler").mediaJoined},Zu=new WeakSet,hv=function(){return a(this,_i).getValue("connectionHandler").socketJoined},wr=new WeakMap,bd=new WeakMap,Sn=new WeakMap,Ts=new WeakSet,$a=function(){return a(this,_i).getValue("pip")},Ir=new WeakMap,eh=new WeakMap,_d=new WeakSet,th=function(){Array.from(a(this,Sn).keys()).forEach(this.updateVideo)},ih=new WeakSet,pv=function(){var t,e;this.audioEnabled&&this.audioTrack?(t=a(this,yn,Ss))==null||t.addParticipantTrack(this.id,this.audioTrack):(e=a(this,yn,Ss))==null||e.removeParticipantTrack(this.id)},rh=new WeakSet,mv=function(){var t,e;this.screenShareEnabled&&this.screenShareTracks.audio?(t=a(this,yn,Ss))==null||t.addParticipantTrack(`screenshare-${this.id}`,this.screenShareTracks.audio):(e=a(this,yn,Ss))==null||e.removeParticipantTrack(`screenshare-${this.id}`)},gv);vs([S.trace("DyteParticipant.disableAudio")],tr.prototype,"disableAudio",1),vs([S.trace("DyteParticipant.kick")],tr.prototype,"kick",1),vs([S.trace("DyteParticipant.disableVideo")],tr.prototype,"disableVideo",1),vs([S.trace("DyteParticipant.getPermissions")],tr.prototype,"getPermissions",1),vs([S.trace("DyteParticipant.setStageStatus")],tr.prototype,"setStageStatus",1),tr=vs([ut("1200")],tr);class En extends Kf{constructor(e){const{onAddEvent:i="participantJoined",onDeleteEvent:r="participantLeft",onClearEvent:n="participantsCleared"}=e!=null?e:{};super({onAddEvent:i,onDeleteEvent:r,onClearEvent:n})}add(e,i=!0){return this.has(e.id)&&Object.is(this.get(e.id),e)===!1&&this.delete(e.id),super.add(e,i)}clear(e=!0,i=!1){return super.clear(e,i)}delete(e,i=!0,r=!1){return super.delete(e,i,r)}}var Tn;class SD extends Yn{constructor(){super(),f(this,Tn,void 0),v(this,Tn,new Map)}__set(e,i){return a(this,Tn).set(e,i)}__clear(){return a(this,Tn).clear()}get(e){return a(this,Tn).get(e)}toArray(){return Array.from(a(this,Tn).values())}}Tn=new WeakMap;class ED{constructor(){m(this,"_orderedArray"),m(this,"_map"),this._map=new Map,this._orderedArray=[]}add(e,i){if(!this._map.has(e))return this._map.set(e,{peerId:e,priority:i}),this._orderedArray.splice(Math.max(i-1,0),0,e),this.index(e);const r=this.index(e);this.delete(e);const n=this.add(e,i);return r!==n?n:-1}delete(e){if(this._map.has(e)){const i=this.index(e);this._map.delete(e),this._orderedArray.splice(i,1)}}index(e){return this._map.has(e)?this._orderedArray.indexOf(e):-1}[Symbol.iterator](){return this._orderedArray[Symbol.iterator]()}}class TD{constructor(){m(this,"_activeSpeakerPeers"),m(this,"_compulsoryPeers"),this._activeSpeakerPeers=new ED,this._compulsoryPeers=new Set}add(e,i){if(!e)return-1;if(i<0)return this._compulsoryPeers.add(e),0;if(this.compulsoryPeers.includes(e)&&(i>0||i===246267631)){if(l.info("DyteSelectedPeer::removing_compulsory_peer",{selectedPeer:{peerId:e}}),this._removeFromCompulsoryPeer(e),i===246267631)return-1}else if(i===229490415)return this.delete(e),-1;return this._activeSpeakerPeers.add(e,i)}delete(e){l.info("DyteSelectedPeer::deleting_peer_from_selectedPeer",{selectedPeer:{peerId:e}}),this._removeFromCompulsoryPeer(e),this._activeSpeakerPeers.delete(e)}index(e){return this._activeSpeakerPeers.index(e)}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(e){this._compulsoryPeers.delete(e)}}const fv=new TD;var kD=Object.defineProperty,bD=Object.getOwnPropertyDescriptor,$t=(t,e,i,r)=>{for(var n=r>1?void 0:r?bD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&kD(e,i,n),n};const _D=["ACTIVE_GRID","PAGINATED","MANUAL"];var Ze,ks,Ja,bs,Ka,za,wd,_s,Jt,vv;let bt=(vv=class extends Wt{constructor(t,e,i){super(),f(this,ks),f(this,bs),f(this,za),m(this,"waitlisted"),m(this,"joined"),m(this,"active"),m(this,"videoSubscribed"),m(this,"audioSubscribed"),m(this,"pinned"),m(this,"all"),f(this,Ze,void 0),f(this,_s,void 0),f(this,Jt,void 0),m(this,"rateLimitConfig",{maxInvocations:5,period:1}),m(this,"viewMode"),m(this,"currentPage"),m(this,"lastActiveSpeaker"),m(this,"selectedPeers",fv),v(this,Ze,t),v(this,_s,e),v(this,Jt,i),this.waitlisted=new En,this.joined=new En,this.videoSubscribed=new En,this.audioSubscribed=new En,this.active=this.videoSubscribed,this.pinned=new En,this.all=new SD,this.viewMode="ACTIVE_GRID",this.currentPage=0,this.setupEvents()}get pip(){return a(this,Ze).getValue("pip")}get rateLimits(){return this.rateLimitConfig}updateRateLimits(t,e){this.rateLimitConfig.maxInvocations=t,this.rateLimitConfig.period=e}setupEvents(){a(this,Ze).getValue("peerSessionStore").on(P.E2EE_ACTIVE_CONSUMER,({peerId:e})=>{var i;((i=a(this,Ze).getValue("modules").e2ee)==null?void 0:i.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=a(this,Ze).getValue("audioPlayback");t&&this.audioSubscribed.on("participantLeft",e=>{t.removeParticipantTrack(e.id)})}get count(){return this.joined.size}get maxActiveParticipantsCount(){var t;return(t=a(this,Ze))==null?void 0:t.getValue("maxPreferredStreams")}setMaxActiveParticipantsCount(t){if(t<0||t>24)throw new w("0 <= Max active participants count limit <= 24","1203");a(this,Ze).setValue("maxPreferredStreams",t),a(this,za,wd)&&a(this,Ze).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE)}get pageCount(){if(this.viewMode==="PAGINATED"){const t=this.selectedPeers.compulsoryPeers.length,e=this.joined.toArray().filter(i=>i.stageStatus==="ON_STAGE");return Math.ceil((e.length-t)/Math.max(this.maxActiveParticipantsCount-t,1))}return 0}acceptWaitingRoomRequest(t){var e,i;if(!a(this,bs,Ka))throw new w("Can`t accept waiting room request without joining room","1205");const r=(i=(e=this.waitlisted.get(t))==null?void 0:e.userId)!=null?i:t;return a(this,Jt).acceptWaitingRoomRequest([r])}acceptAllWaitingRoomRequest(t){return u(this,null,function*(){const e=t.map(i=>{var r,n;return(n=(r=this.waitlisted.get(i))==null?void 0:r.userId)!=null?n:i});return a(this,Jt).acceptWaitingRoomRequest(e)})}rejectWaitingRoomRequest(t){return u(this,null,function*(){var e,i;if(!a(this,bs,Ka))throw new w("Can`t reject waiting room request without joining room","1205");const r=(i=(e=this.waitlisted.get(t))==null?void 0:e.userId)!=null?i:t;a(this,Jt).rejectWaitingRoomRequest([r])})}setViewMode(t){return u(this,null,function*(){if(l.info("DyteParticipants::set_view_mode",{pageNavigation:{viewMode:t,currentPage:this.currentPage,pageCount:this.pageCount,maxActiveParticipantsCount:this.maxActiveParticipantsCount}}),!(e=>_D.includes(e))(t))throw l.error("DyteParticipants::setViewMode::invalid_view_mode",{pageNavigation:{viewMode:t,currentPage:this.currentPage,pageCount:this.pageCount,maxActiveParticipantsCount:this.maxActiveParticipantsCount}}),new w(`Invalid view mode: ${t}. Try ACTIVE_GRID, PAGINATED or MANUAL.`,"1207");if(this.viewMode===t){l.info("DyteParticipants::setViewMode::view_mode_same_as_previous");return}if(t==="MANUAL")throw new w("Manual Subscription is not enabled for your Organization. Please contact support.","1208");this.viewMode=t,t==="PAGINATED"?(this.currentPage=1,a(this,Ze).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE,{page:this.currentPage})):t==="ACTIVE_GRID"&&(this.currentPage=0,a(this,Ze).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE)),this.emit("viewModeChanged",{viewMode:t,currentPage:this.currentPage,pageCount:this.pageCount})})}subscribe(t){return u(this,arguments,function*(e,i=["audio","video","screenshareAudio","screenshareVideo"]){if(this.viewMode!=="MANUAL")throw new w("MANUAL subscription mode was not activated.","1206");const r=[];e.forEach(n=>{const s=this.joined.get(n);if(s){if(i.includes("audio")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{audio:!0}),this.videoSubscribed.add(s);const o=s.producers.find(c=>c.kind==="audio"&&!c.screenShare);o&&r.push(o)}if(i.includes("video")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{video:!0}),this.audioSubscribed.add(s);const o=s.producers.find(c=>c.kind==="video"&&!c.screenShare);o&&r.push(o)}if(i.includes("screenshareAudio")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{screenshareAudio:!0});const o=s.producers.find(c=>c.kind==="audio"&&c.screenShare);r.push(o)}if(i.includes("screenshareVideo")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{screenshareVideo:!0});const o=s.producers.find(c=>c.kind==="video"&&c.screenShare);r.push(o)}}}),yield a(this,ks,Ja).createConsumers(r)})}unsubscribe(t){return u(this,arguments,function*(e,i=["audio","video","screenshareAudio","screenshareVideo"]){if(this.viewMode!=="MANUAL")throw new w("MANUAL subscription mode was not activated.","1206");const r=[];e.forEach(n=>{const s=this.joined.get(n);if(s){if(i.includes("audio")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{audio:!1});const o=s.producers.find(c=>c.kind==="audio"&&!c.screenShare);o&&r.push(o)}if(i.includes("video")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{video:!1});const o=s.producers.find(c=>c.kind==="video"&&!c.screenShare);o&&r.push(o)}if(i.includes("screenshareAudio")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{screenshareAudio:!1});const o=s.producers.find(c=>c.kind==="audio"&&c.screenShare);r.push(o)}if(i.includes("screenshareVideo")){s.manualProducerConfig=j(L({},s.manualProducerConfig),{screenshareVideo:!1});const o=s.producers.find(c=>c.kind==="video"&&c.screenShare);r.push(o)}}}),yield a(this,ks,Ja).closeConsumers(r)})}getPeerIdsForCurrentPage(){l.info("DyteParticipants::getPeerIdsForCurrentPage()",{pageNavigation:{viewMode:this.viewMode,currentPage:this.currentPage,pageCount:this.pageCount,maxActiveParticipantsCount:this.maxActiveParticipantsCount}});const{compulsoryPeers:t}=this.selectedPeers,e=t.filter(o=>this.joined.has(o)),i=Array.from(this.pinned.keys()).filter(o=>!e.includes(o)),r=Array.from(this.joined.toArray().filter(o=>o.stageStatus==="ON_STAGE").map(o=>o.id)),n=Math.max((this.currentPage-1)*(this.maxActiveParticipantsCount-e.length-i.length)),s=this.currentPage*(this.maxActiveParticipantsCount-e.length-i.length);return e.concat(i,r.slice(n,s))}setPage(t){return u(this,null,function*(){if(l.info("DyteParticipants::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 l.error("DyteParticipants::invalid_page_number"),new w(`Invalid page: ${t}. Page must be an integer and greater than 0 and less than or equal to .pageCount`,"1202");this.currentPage=t,a(this,Ze).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE,{page:t}),this.emit("pageChanged",{viewMode:this.viewMode,currentPage:this.currentPage,pageCount:this.pageCount})}})}disableAllAudio(t){return u(this,null,function*(){if(l.info("DyteParticipants::disable_all_audio",{actions:{disableAllAudio:{allowUnmute:t}}}),!a(this,za,wd))throw new w("Can`t disable all audio without joining room","1205");if(a(this,_s).permissions.canAllowParticipantAudio)return a(this,ks,Ja).muteAll(t);throw l.error("DyteParticipants::unauthorized_disable_all_audio",{actions:{disableAllAudio:{allowUnmute:t}}}),new w("Unauthorized: User does not have permission to disable peer audio.","1201")})}disableAllVideo(){return u(this,null,function*(){if(l.info("DyteParticipants::disable_all_video"),!a(this,za,wd))throw new w("Can`t disable all video without joining room","1205");if(a(this,_s).permissions.canAllowParticipantVideo)return a(this,ks,Ja).muteAllVideo();throw l.error("DyteParticipants::unauthorized_disable_all_video"),new w("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 a(this,Ze).getValue("peerSessionStore").emitAsync(P.KICK_PEER,{peerId:t})})}kickAll(){return u(this,null,function*(){if(l.info("DyteParticipants::kick_all"),a(this,Ze).getValue("viewType")!=="LIVESTREAM"&&!a(this,bs,Ka))throw new w("Can`t kick all without joining room","1205");if(!a(this,_s).permissions.kickParticipant)throw l.error("DyteParticipants::unauthorized_kick_all"),new w("Unauthorized: User does not have permission to kick peers.","1201");const t=z.hasFeature(ie.PROPAGATE_KICK_ALL);a(this,Jt).kickAll(t)})}broadcastMessage(t,e,i){return u(this,null,function*(){if(l.info("DyteParticipants::broadcastMessage"),!a(this,bs,Ka))throw new w("Can`t broadcast message without joining room","1205");if(!(t!=null&&t.trim()))throw new w("`type` must be a non-empty string.","1209");if(i)if("meetingIds"in i)yield a(this,Jt).broadcastToMeetings(t,i.meetingIds,e);else{let r=[];"participantIds"in i?r=i.participantIds:r=this.joined.toArray().filter(n=>{var s;return(s=i.presetNames)==null?void 0:s.includes(n.presetName)}).map(n=>n.id),yield a(this,Jt).broadcastToPeers(t,r,e)}else yield a(this,Jt).broadcastMessage(t,e)})}getAllJoinedPeers(t,e,i){return u(this,null,function*(){return(yield a(this,Jt).getRoomPeers(t,e,i)).peers.map(ir.formatSocketServiceMessage)})}updatePermissions(t,e){return u(this,null,function*(){const i=this.joined.toArray().filter(n=>t.includes(n.id)).map(n=>n.userId),r=[...new Set(i)];if(!r.length)throw new w("Cannot update permissions, no valid userIDs found","1204");a(this,Jt).updatePermissions(r,e)})}getParticipantsInMeetingPreJoin(){return u(this,null,function*(){return a(this,Jt).getRoomPeersNonPaginated()})}},Ze=new WeakMap,ks=new WeakSet,Ja=function(){return a(this,Ze).getValue("roomNodeClient")},bs=new WeakSet,Ka=function(){var t;return((t=a(this,Ze).getValue("connectionHandler"))==null?void 0:t.socketJoined)===!0},za=new WeakSet,wd=function(){var t;return((t=a(this,Ze).getValue("connectionHandler"))==null?void 0:t.mediaJoined)===!0},_s=new WeakMap,Jt=new WeakMap,vv);$t([S.trace("DyteParticipants.setViewMode")],bt.prototype,"setViewMode",1),$t([S.trace("DyteParticipants.setPage")],bt.prototype,"setPage",1),$t([S.trace("DyteParticipants.disableAllAudio")],bt.prototype,"disableAllAudio",1),$t([S.trace("DyteParticipants.disableAllVideo")],bt.prototype,"disableAllVideo",1),$t([S.trace("DyteParticipants.disablePeerAudio")],bt.prototype,"disableAudio",1),$t([S.trace("DyteParticipants.disablePeerVideo")],bt.prototype,"disableVideo",1),$t([S.trace("DyteParticipants.kickPeer")],bt.prototype,"kick",1),$t([S.trace("DyteParticipants.kickAll")],bt.prototype,"kickAll",1),$t([S.trace("DyteParticipants.broadcastMessage"),At(es,"rateLimitConfig")],bt.prototype,"broadcastMessage",1),$t([S.trace("DyteParticipants.getAllJoinedPeers"),At({maxInvocations:10,period:60})],bt.prototype,"getAllJoinedPeers",1),$t([S.trace("DyteParticipant.updatePermissions"),At({maxInvocations:1e3,period:60})],bt.prototype,"updatePermissions",1),$t([S.trace("DyteParticipants.getParticipantsInMeetingPreJoin")],bt.prototype,"getParticipantsInMeetingPreJoin",1),bt=$t([ut("1200")],bt);var ws=(t=>(t.NEW="new",t.CONNECTING="connecting",t.RECONNECTING="reconnecting",t.DISCONNECTED="disconnected",t.CONNECTED="connected",t.FAILED="failed",t.CLOSED="closed",t))(ws||{}),Ne=(t=>(t[t.HIVE=1]="HIVE",t[t.ROOM_NODE=2]="ROOM_NODE",t[t.CF=3]="CF",t))(Ne||{}),wD=Object.defineProperty,ID=Object.getOwnPropertyDescriptor,kn=(t,e,i,r)=>{for(var n=r>1?void 0:r?ID(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&wD(e,i,n),n},Cr,Ya,Qa,Is,Xa,yv;const Id=(yv=class{constructor(t,e,i,r){switch(m(this,"participants"),m(this,"self"),m(this,"selectedPeers",fv),m(this,"maxSpatialLayerUpdates",new Map),m(this,"consumerPeerMap"),m(this,"events"),m(this,"roomSocketHandler"),m(this,"context"),m(this,"videoPeerConsumerMap",new Map),f(this,Cr,{mode:"ACTIVE_GRID",page:0}),f(this,Ya,new En),f(this,Qa,new En),f(this,Is,!1),f(this,Xa,!1),m(this,"updateConsumerSpatialLayers",su(()=>{const n={},s=new Map(this.maxSpatialLayerUpdates);this.maxSpatialLayerUpdates.clear(),Array.from(s.entries()).forEach(([o,c])=>{n[c]===void 0&&(n[c]={layer:c,consumerIds:[]}),n[c].consumerIds.push(o)}),Object.keys(n).forEach(o=>{const c=n[o];l.log(`Switching max spatial layer to ${c.layer}`,{consumerIds:c.consumerIds}),this.roomNodeClient.switchConsumersToLayer(c.consumerIds,c.layer)})},2e3)),m(this,"updateConsumers",(n,s)=>u(this,null,function*(){try{n.length!==0&&(l.info("Queueing create consumers for producers",{producers:n}),yield this.roomNodeClient.createConsumers(n))}catch(o){l.error("Error activating peers",{error:o})}try{s.length!==0&&(l.info("Queueing close consumers for producers",{producers:s}),yield this.roomNodeClient.closeConsumers(s))}catch(o){l.error("Error deactivating peers",{error:o})}})),this.context=t,this.roomSocketHandler=i,this.participants=new bt(t,e,this.roomSocketHandler),this.self=e,this.consumerPeerMap=new Map,r){case Ne.HIVE:{this.events=ii;break}case Ne.CF:{this.events=gi;break}default:this.events=ii}e.config.viewType!=="CHAT"&&this.setupEventsGlobal(),this.setupEvents()}get roomNodeClient(){return this.context.getValue("roomNodeClient")}get mediaJoined(){var t;return((t=this.roomNodeClient)==null?void 0:t.mediaJoined)===!0}get pip(){return this.context.getValue("pip")}setupEvents(){this.roomSocketHandler.on(B.getWaitingRoomRequests,this.waitingRoomRequestHandler.bind(this)),this.context.getValue("peerSessionStore").on(P.SOCKET_PEERS,t=>u(this,null,function*(){const e=z.hasFeature(ie.DEBUG_SOCKET_JOIN);if(e){const i=t&&(t==null?void 0:t.length)<20?{peers:JSON.stringify(t.map(r=>r.peerId))}:void 0;l.info("Processing socket peers",i)}t==null||t.forEach(i=>{i.waitlisted||this.onParticipantJoined(this.fromSocketService(i))}),e&&l.info("Processed socket peers")})),this.roomSocketHandler.on(this.events.peerJoinedBroadcast,({participant:t})=>{z.hasFeature(ie.DEBUG_SOCKET_JOIN)&&l.info("events.peerJoinedBroadcast",{peers:t.peerId}),this.onMediaJoined(t.peerId,t.producerStates,t.capabilities)}),this.roomSocketHandler.on(this.events.selfJoinComplete,({participants:t,selectedPeers:e,roomState:i})=>{if(z.hasFeature(ie.DEBUG_SOCKET_JOIN)){const s=t&&(t==null?void 0:t.length)<20?{peers:JSON.stringify(t.map(o=>o.peerId))}:void 0;l.info("events.selfJoinComplete",s)}t.forEach(({peerId:s,producerStates:o,capabilities:c})=>this.onMediaJoined(s,o,c));const{audioPeers:r,compulsoryPeers:n}=e!=null?e:{};i.pinnedPeerIds.length!==0&&this.onParticipantPinned(i.pinnedPeerIds[0]),this.computeActivateParticipants(r!=null?r:[],n),this.context.getValue("peerSessionStore").emit(P.UPDATE_ACTIVE,{createAllConsumers:!0})}),this.context.getValue("peerSessionStore").on(P.MAX_SPATIAL_LAYER_CHANGE,({peerId:t,maxSpatialLayer:e})=>{const i=this.videoPeerConsumerMap.get(t);i&&(this.maxSpatialLayerUpdates.set(i,e),this.updateConsumerSpatialLayers())}),this.context.getValue("peerSessionStore").on(P.NEW_PRODUCER,({peerId:t,producer:e})=>{const i=this.participants.joined.get(t);if(!i){l.warn("ParticipantController::NEW_PRODUCER::participant not found",{producer:{id:e==null?void 0:e.producerId,kind:e==null?void 0:e.kind,status:"UNKNOWN",appData:{screenShare:e==null?void 0:e.screenShare}},dyteParticipant:{id:t}});return}if(i.producers.push(e),l.info("ParticipantController::NEW_PRODUCER::producer_added_to_participant",{producer:{id:e==null?void 0:e.producerId,peerId:t,kind:e==null?void 0:e.kind,status:"UNKNOWN",appData:{screenShare:e==null?void 0:e.screenShare}}}),this.participants.viewMode==="MANUAL"){let r=!1;const n=e.kind==="audio",s=e.kind==="video",o=i.manualProducerConfig;(n&&(o.audio&&!e.screenShare||o.screenshareAudio&&e.screenShare)||s&&(o.video&&!e.screenShare||o.screenshareVideo&&e.screenShare))&&(r=!0),r?this.roomNodeClient.createConsumers([e]):l.info("ParticipantController::NEW_PRODUCER::not_consuming_producer",{producer:{id:e==null?void 0:e.producerId,peerId:t,kind:e==null?void 0:e.kind,status:"UNKNOWN",appData:{screenShare:e==null?void 0:e.screenShare}}});return}(e==null?void 0:e.kind)==="audio"&&this.participants.audioSubscribed.get(t)||(e==null?void 0:e.kind)==="video"&&this.participants.videoSubscribed.get(t)||e!=null&&e.screenShare?this.roomNodeClient.createConsumers([e]).catch(r=>{l.error("ParticipantController::createConsumer failed",{error:r})}):l.info("ParticipantController::NEW_PRODUCER::not_consuming_producer",{producer:{id:e==null?void 0:e.producerId,peerId:t,kind:e==null?void 0:e.kind,status:"UNKNOWN",appData:{screenShare:e==null?void 0:e.screenShare}}})}),this.context.getValue("peerSessionStore").on(P.PRODUCER_CLOSED,({peerId:t,producerId:e})=>{const i=this.participants.joined.get(t);if(!i){l.warn("ParticipantController::NEW_PRODUCER::participant not found",{dyteParticipant:{id:t}});return}i.producers=i.producers.filter(r=>r.producerId!==e)}),this.context.getValue("peerSessionStore").on(P.PRODUCER_TOGGLE,({peerId:t,producerId:e,paused:i,kind:r})=>{const n=this.participants.joined.get(t);if(n){r==="audio"&&n.setAudioEnabled(!i);const s=n.producers.find(o=>o.producerId===e);s&&(s.pause=i)}}),this.roomSocketHandler.on(this.events.globalPeerPinBroadcast,t=>{let e;if(t&&(e=t.participantId),!this.mediaJoined)return;const i=e;this.onParticipantPinned(i);const r=this.participants.joined.get(i);r&&this.roomNodeClient.activatePeers(r.producers).catch(n=>{l.error("unable to create consumers",{error:n})})}),this.roomSocketHandler.on(this.events.selectedPeer,({audioPeers:t,compulsoryPeers:e})=>{this.mediaJoined&&this.onSelectedPeers(e.concat(t))}),this.roomSocketHandler.on(this.events.selectedPeerDiff,({entries:t})=>{if(!this.mediaJoined)return;const e=t.map(i=>({peerId:i.peerId,priority:i.priority}));this.updateActiveParticipantsWithPriorities(e,!0)})}waitingRoomRequestHandler(t){const e=t.requests.filter(r=>!this.participants.waitlisted.toArray().find(n=>n.userId===r.userId)),i=this.participants.waitlisted.toArray().filter(r=>!t.requests.find(n=>n.userId===r.userId));e.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))),i.forEach(r=>this.participants.waitlisted.delete(r.id))}get maxPreferredStreams(){return this.participants.maxActiveParticipantsCount}selectPagePeers(t){const{compulsoryPeers:e}=this.selectedPeers,i=e.filter(c=>this.participants.joined.has(c)),r=Array.from(this.participants.pinned.keys()).filter(c=>!i.includes(c)),n=Array.from(this.participants.joined.toArray().filter(c=>c.stageStatus==="ON_STAGE").map(c=>c.id)),s=Math.max((t-1)*(this.maxPreferredStreams-i.length-r.length)),o=t*(this.maxPreferredStreams-i.length-r.length);return i.concat(r,n.slice(s,o))}selectActivePeers(t){const e=new Map,i=Array.from(this.participants.joined.toArray().filter(p=>p.stageStatus==="ON_STAGE").map(p=>(e.set(p.id,!0),p.id))),r=this.selectedPeers.peers,n=this.participants.pinned.toArray().reduce((p,g)=>(g.stageStatus!=="ON_STAGE"?this.participants.pinned.delete(g.id):p.push(g.id),p),[]),s=this.self.stageStatus==="ON_STAGE"?1:0,o=t-s,c=new Set(r.concat(n).filter(p=>p!==this.self.id&&e.has(p)));let d=Array.from(c);const h=o-c.size;if(h>=0){const p=i.filter(g=>!c.has(g)&&g!==this.self.id).slice(0,h);d=Array.from(c).concat(p)}else d=d.slice(0,o);return d}updateSubscriptions(t,e){const{page:i,createAllConsumers:r}=e!=null?e:{};t&&a(this,Cr).mode!==t&&(a(this,Cr).mode=t),i&&a(this,Cr).page!==i&&(a(this,Cr).page=i);const{mode:n,page:s}=a(this,Cr);switch(r&&(a(this,Ya).clear(),a(this,Qa).clear()),n){case"PAGINATED":{if(!s)return;const o=this.selectPagePeers(s),c=this.selectActivePeers(this.participants.maxActiveParticipantsCount+4);this.updateParticipantsMap(this.participants.videoSubscribed,o),this.updateParticipantsMap(this.participants.audioSubscribed,c),l.debug("ParticipantController::updateActive::updating_current_page_peers",{peerIds:o});break}case"ACTIVE_GRID":{const o=this.selectActivePeers(this.participants.maxActiveParticipantsCount),c=this.selectActivePeers(this.participants.maxActiveParticipantsCount+4);this.updateParticipantsMapMinReplacement(this.participants.videoSubscribed,o),this.updateParticipantsMap(this.participants.audioSubscribed,c);break}default:throw new Error(`View mode ${t} not supported`)}setTimeout(()=>this.syncConsumers(),a(this,Cr).mode==="PAGINATED"&&!a(this,Is)?200:0)}syncConsumers(){return u(this,null,function*(){var t,e,i;if(((i=(e=(t=this.context.getValue("connectionHandler"))==null?void 0:t.mediaState)==null?void 0:e.recv)==null?void 0:i.state)!=="connected")return;if(a(this,Is)){v(this,Xa,!0);return}v(this,Is,!0),v(this,Xa,!1);const[r,n]=Id.mapDiff(a(this,Ya),this.participants.videoSubscribed);this.updateParticipantsMap(a(this,Ya),this.participants.videoSubscribed.toArray().filter(({videoEnabled:h})=>!!h).map(({id:h})=>h));const[s,o]=Id.mapDiff(a(this,Qa),this.participants.audioSubscribed);this.updateParticipantsMap(a(this,Qa),this.participants.audioSubscribed.toArray().filter(({audioEnabled:h})=>!!h).map(({id:h})=>h));const c=[...this.mapPeerIdsToProducers(r,["video"]),...this.mapPeerIdsToProducers(s,["audio"])],d=[...this.mapPeerIdsToProducers(n,["video"]),...this.mapPeerIdsToProducers(o,["audio"])];try{(c.length>0||d.length>0)&&(yield this.updateConsumers(c,d))}finally{v(this,Is,!1)}a(this,Xa)&&this.syncConsumers()})}static mapDiff(t,e){const i=[],r=[],n=Array.from(t.keys()),s=Array.from(e.keys());return n.forEach(o=>{s.includes(o)||r.push(o)}),s.forEach(o=>{n.includes(o)||i.push(o)}),[i,r]}computeActivateParticipants(t,e){const i=t.map((n,s)=>({peerId:n,priority:s+1})),r=e==null?void 0:e.map((n,s)=>({peerId:n,priority:-(s+1)}));i.push(...r!=null?r:[]),i.length>0&&this.updateActiveParticipantsWithPriorities(i)}fromSocketService(t){const e=Id.formatSocketServiceMessage(t);return new tr(this.context,j(L({},e),{isHost:!1,videoEnabled:!1,audioMuted:!0,videoTrack:void 0,audioTrack:void 0}),this.self,this.roomSocketHandler)}updatePipSource(t,e){var i,r;e?(i=this.pip)==null||i.enableSource(t):(r=this.pip)==null||r.disableSource(t)}onMediaJoined(t,e,i){if(!this.mediaJoined||t===this.self.id)return;const r=this.participants.joined.get(t);if(!r){l.warn(`Received media.peerJoinedBroadcast for non-existent peer ${t}`);return}e.forEach(n=>{n.kind===Li.AUDIO&&!n.screenShare?r.setAudioEnabled(!n.pause):n.kind===Li.VIDEO&&!n.screenShare&&(r.setVideoEnabled(!n.pause),this.updatePipSource(r.id,!n.pause)),r.producers.push(j(L({},n),{producingTransportId:n.producingTransportId,kind:n.kind===Li.AUDIO?"audio":"video",producingPeerId:t,mimeType:n.mimeType}))}),this.roomNodeClient.handlePeerCapabilities(t,i),z.hasFeature(ie.FORCE_VIDEO_CODEC)||this.roomNodeClient.shareWebcam(this.self.videoTrack),this.context.getValue("peerSessionStore").emit(P.UPDATE_ACTIVE)}updateParticipantsMapMinReplacement(t,e){const i=Array.from(t.keys()),r=new Map(t),n=new Set(e),s=[];i.forEach((o,c)=>{(!n.has(o)||!this.participants.joined.get(o))&&s.push(c)}),e.forEach(o=>{if(t.get(o))return;if(i.length<e.length){i.push(o);return}const c=s.shift();i[c]=o}),s.forEach(o=>{i.splice(o,1)}),Array.from(t.keys()).forEach(o=>{t.delete(o,!n.has(o))}),i.forEach(o=>{if(!this.participants.joined.get(o)){l.warn("updateActiveParticipants::participant_not_in_joined_list",{dyteParticipant:{id:o}});return}t.add(this.participants.joined.get(o),!r.get(o))}),t.emit("participantsUpdate")}updateParticipantsMap(t,e){Array.from(t.keys()).forEach(i=>{e.includes(i)||t.delete(i,!0)}),e.forEach(i=>{t.get(i)||t.add(this.participants.joined.get(i),!0)}),t.emit("participantsUpdate")}updatePinnedParticipants(){this.participants.pinned.forEach(t=>{t.setIsPinned(!1),this.participants.pinned.delete(t.id)})}setupEventsGlobal(){this.roomSocketHandler.on(B.joinRoom,({peer:t})=>{if(!t.waitlisted){const e=z.hasFeature(ie.DEBUG_SOCKET_JOIN);e&&l.info("Processing socket join",{peers:t.peerId}),this.onParticipantJoined(this.fromSocketService(t)),e&&l.info("Processed socket join",{peers:t.peerId})}}),this.roomSocketHandler.on(B.leaveRoom,t=>{const{peerId:e}=t.peer;this.selectedPeers.delete(e),this.onParticipantLeave(e)}),this.context.getValue("peerSessionStore").on(P.SOCKET_SERVICE_ROOM_JOINED,()=>{this.self.permissions.acceptWaitingRequests&&this.roomSocketHandler.getWaitingRoomRequests()}),this.self.permissions.on("permissionsUpdate",t=>{const{acceptWaitingRequests:e}=t;e!==void 0&&(e?this.roomSocketHandler.getWaitingRoomRequests():this.participants.waitlisted.clear())}),this.context.getValue("peerSessionStore").on(P.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(P.CONSUMER_PAUSED,({id:t})=>{this.processConsumerPaused(t)}),this.context.getValue("peerSessionStore").on(P.CONSUMER_RESUMED,({id:t})=>{this.processConsumerResumed(t)}),this.context.getValue("peerSessionStore").on(P.NEW_CONSUMER,({id:t})=>{this.processNewConsumer(t)}),this.context.getValue("peerSessionStore").on(P.CONSUMER_CLOSED,({id:t})=>{this.processConsumerClosed(t)}),this.context.getValue("peerSessionStore").on(P.ROOM_MESSAGE,t=>u(this,[t],function*({payload:e,type:i,timestamp:r}){this.participants.emit("broadcastedMessage",{type:i,payload:e,timestamp:r})})),this.context.getValue("peerSessionStore").on(P.MESSAGE,t=>u(this,[t],function*({payload:e,type:i,timestamp:r}){i!=="spotlight"&&this.participants.emit("broadcastedMessage",{type:i,payload:e,timestamp:r})})),this.context.getValue("peerSessionStore").on(P.LOW_CONSUMER_SCORE,({peerId:t,score:e,kind:i})=>{const r=this.participants.joined.get(t);r&&(r.emit("poorConnection",{score:e,kind:i}),this.participants.emit("poorConnection",{participantId:t,score:e,kind:i}))}),this.context.getValue("peerSessionStore").on(P.CONSUMER_SCORE_UPDATE,({score:t,kind:e,appData:i,peerId:r,scoreStats:n})=>{var s;const o=e==="video"&&((s=i==null?void 0:i.screenShare)!=null?s:!1),c=this.participants.joined.get(r);c&&(c.emit("mediaScoreUpdate",{kind:e,isScreenshare:o,score:t,participantId:r,scoreStats:n}),this.participants.emit("mediaScoreUpdate",{kind:e,isScreenshare:o,score:t,participantId:r,scoreStats:n}))}),this.context.getValue("peerSessionStore").onAsync(P.KICK_PEER,t=>u(this,[t],function*({peerId:e}){const i=this.participants.joined.get(e);this.roomNodeClient.kick(e),yield this.roomSocketHandler.kick(e),i?i.emit("kicked"):this.participants.joined.emit("kicked",{id:e})})),this.context.getValue("peerSessionStore").on(P.UPDATE_ACTIVE,(...t)=>u(this,[...t],function*({page:e,createAllConsumers:i}={}){this.updateSubscriptions(e?"PAGINATED":"ACTIVE_GRID",{page:e,createAllConsumers:i})}))}onParticipantPinned(t){return u(this,null,function*(){if(!t){this.self.isPinned&&this.self.setIsPinned(!1),this.participants.pinned.size!==0&&this.updatePinnedParticipants();return}if(t===this.self.id){this.participants.pinned.size!==0&&this.updatePinnedParticipants(),this.self.setIsPinned(!0);return}const e=this.participants.joined.get(t);this.self.isPinned&&this.self.setIsPinned(!1),this.updatePinnedParticipants(),e.setIsPinned(!0),this.participants.pinned.add(e)})}onParticipantJoined(t){return u(this,null,function*(){var e,i,r;this.self.id!==t.id&&!((e=t.flags)!=null&&e.recorder)&&!((i=t.flags)!=null&&i.hidden_participant)&&!((r=t.flags)!=null&&r.hiddenParticipant)&&(this.participants.videoSubscribed.delete(t.id),this.participants.audioSubscribed.delete(t.id),this.participants.joined.add(t),this.participants.waitlisted.delete(t.id),t.stageStatus==="REQUESTED_TO_JOIN_STAGE"&&this.context.getValue("peerSessionStore").emit(P.UPDATE_STAGE_REQUESTS,{request:{displayName:t.name,userId:t.userId,peerId:t.id},add:!0})),this.context.getValue("peerSessionStore").emit(P.PEER_JOINED_INTERNAL,t)})}onParticipantLeave(t){return u(this,null,function*(){const e=this.participants.joined.get(t);this.participants.joined.delete(t,!0,!0),this.participants.pinned.delete(t,!0,!0),this.participants.waitlisted.delete(t,!0,!0),this.roomNodeClient&&(this.roomNodeClient.handlePeerLeaving(t),this.roomNodeClient.closeConsumers(e==null?void 0:e.producers)),e&&e.stageStatus==="REQUESTED_TO_JOIN_STAGE"&&this.context.getValue("peerSessionStore").emit(P.UPDATE_STAGE_REQUESTS,{request:{displayName:e.name,userId:e.userId,peerId:e.id},add:!1});const{currentPage:i}=this.participants,r=this.maxPreferredStreams*(i-1),n=this.participants.videoSubscribed.get(t);r===0?this.participants.setViewMode("ACTIVE_GRID"):this.participants.joined.size<=r?i===2?this.participants.setViewMode("ACTIVE_GRID"):this.participants.setPage(i-1):n&&this.updateSubscriptions(i?"PAGINATED":"ACTIVE_GRID",{page:i})})}processMedia(t){var e;const i=this.roomNodeClient.getConsumers(),{peerId:r,kind:n,appData:s,track:o,producerId:c,rtpReceiver:d,paused:h}=(e=i.get(t))!=null?e:{};if(!r)return l.warn("processMedia::Peer ID is undefined",{consumer:{id:t,kind:n,peerId:r,appData:{supportsRemoteControl:!!(s!=null&&s.supportsRemoteControl),screenShare:!!(s!=null&&s.screenShare)},remotelyPaused:h,producerId:c}}),{};const p=s;return n==="video"&&p.screenShare!==!0&&this.videoPeerConsumerMap.set(r,t),l.info("ParticipantController::processMedia",{consumer:{id:t,peerId:r,kind:n,appData:p,remotelyPaused:h,producerId:c}}),this.consumerPeerMap.set(t,{type:n,peerId:r,appData:p,remotelyPaused:h,producerId:c}),{peerId:r,kind:n,appData:p,remotelyPaused:h,track:o,producerId:c,rtpReceiver:d}}processConsumerClosed(t){const{peerId:e,type:i,appData:r,remotelyPaused:n,producerId:s}=this.consumerPeerMap.get(t)||{},o=this.participants.joined.get(e);if(l.info("ParticipantController::processConsumerClosed",{consumer:{id:t,peerId:e,appData:r,kind:i,remotelyPaused:n,producerId:s}}),this.consumerPeerMap.delete(t),i==="video"&&r.screenShare!==!0&&this.videoPeerConsumerMap.delete(e),!o)return;const c=[];r&&r.screenShare?(o.setScreenShareEnabled(!1),J.consumerSharedMediaState(t,{screen:!1}),o.screenShareTracks.video&&c.push(o.screenShareTracks.video.id),o.screenShareTracks.audio&&c.push(o.screenShareTracks.audio.id),o.screenShareTracks={audio:void 0,video:void 0}):i==="audio"?(o.setAudioEnabled(!1),o.audioTrack&&c.push(o.audioTrack.id),J.consumerSharedMediaState(t,{audio:!1}),o.audioTrack=void 0):i==="video"&&(o.setVideoEnabled(!1),this.updatePipSource(o.id,!1),o.videoTrack&&c.push(o.videoTrack.id),J.consumerSharedMediaState(t,{video:!1}),o.videoTrack=void 0),r.e2ee&&c.forEach(d=>{this.context.getValue("peerSessionStore").emit(P.E2EE_INACTIVE_CONSUMER,{peerId:e,trackId:d})})}processConsumerResumed(t){const{peerId:e,kind:i,appData:r,track:n,remotelyPaused:s,producerId:o,rtpReceiver:c}=this.processMedia(t);if(!e)return;l.info("ParticipantController::processConsumerResumed",{consumer:{id:t,peerId:e,kind:i,appData:r,remotelyPaused:s,producerId:o}});const d=this.participants.joined.get(e);if(d){if(r.e2ee&&this.context.getValue("peerSessionStore").emit(P.E2EE_ACTIVE_CONSUMER,{peerId:e,rtpReceiver:c,track:n}),r.screenShare){i==="video"?d.screenShareTracks.video=n:i==="audio"&&(d.screenShareTracks.audio=n),d.setScreenShareEnabled(!0),J.consumerSharedMediaState(t,{screen:!0});return}i==="video"?(d.videoTrack=n,d.setVideoEnabled(!0),this.updatePipSource(d.id,!0),J.consumerSharedMediaState(t,{video:!0})):i==="audio"&&(d.audioTrack=n,d.setAudioEnabled(d.audioEnabled),J.consumerSharedMediaState(t,{audio:d.audioEnabled}))}}processConsumerPaused(t){l.info(`ParticipantController::processConsumerPaused called for consumerId: ${t}`);const{peerId:e,kind:i,track:r,appData:n,remotelyPaused:s,producerId:o}=this.processMedia(t);if(!e)return;l.info("ParticipantController::processConsumerPaused",{consumer:{id:t,peerId:e,kind:i,appData:n,remotelyPaused:s,producerId:o}});const c=this.participants.joined.get(e);c&&(r&&n.e2ee&&this.context.getValue("peerSessionStore").emit(P.E2EE_INACTIVE_CONSUMER,{peerId:e,trackId:r.id}),i==="video"?(c.videoTrack=r,c.setVideoEnabled(!1),this.updatePipSource(c.id,!1),J.consumerSharedMediaState(t,{video:!1})):i==="audio"&&(c.audioTrack=r,c.setAudioEnabled(c.audioEnabled),J.consumerSharedMediaState(t,{audio:c.audioEnabled})))}processNewConsumer(t){const{peerId:e,kind:i,remotelyPaused:r,track:n,appData:s,producerId:o,rtpReceiver:c}=this.processMedia(t);if(!e)return;l.info("ParticipantController::processNewConsumer",{consumer:{id:t,peerId:e,kind:i,remotelyPaused:r,appData:s,producerId:o}});const d=this.participants.joined.get(e);if(d){if(s.screenShare){i==="video"?d.screenShareTracks.video=n:i==="audio"&&(d.screenShareTracks.audio=n),(!r||this.self.permissions.isRecorder||z.hasFeature(ie.SCREEENSHARE_ERR_HACK))&&d.setScreenShareEnabled(!0),s.supportsRemoteControl&&(d.supportsRemoteControl=!0),this.participants.broadcastMessage("screenshareConsumerCreated",{producerId:o,peerId:e,screenShare:!0,consumerId:t,consumerPeerId:this.self.id}),l.info("ParticipantController::newScreenshareConsumer::screenshareConsumerCreated",{consumer:{id:t,peerId:e,kind:i,remotelyPaused:r,appData:s,producerId:o}});return}i==="video"?(d.videoTrack=n,r||(d.setVideoEnabled(!0),this.updatePipSource(d.id,!0)),J.consumerSharedMediaState(t,{video:!r})):i==="audio"&&(d.audioTrack=n,r||d.setAudioEnabled(!0),J.consumerSharedMediaState(t,{audio:!r})),!r&&s.e2ee&&this.context.getValue("peerSessionStore").emit(P.E2EE_ACTIVE_CONSUMER,{peerId:e,rtpReceiver:c,track:n})}}static formatSocketServiceMessage(t){var e,i,r,n,s,o;if(!t)return;const c=Fu(t.stageType);return{id:t.peerId,userId:t.userId,name:t.displayName,displayName:t.displayName,stageType:c,customParticipantId:t.customParticipantId,presetId:t.presetId,picture:t.displayPictureUrl,waitlisted:t.waitlisted,stageStatus:c,metadata:{preset_name:(e=t.flags)==null?void 0:e.presetName},recorderType:(i=t.flags)==null?void 0:i.recorderType,flags:{hiddenParticipant:(r=t.flags)==null?void 0:r.hiddenParticipant,hidden_participant:(n=t.flags)==null?void 0:n.hiddenParticipant,recorder:((s=t.flags)==null?void 0:s.recorderType)!==void 0&&((o=t.flags)==null?void 0:o.recorderType)!=="NONE"}}}mapPeerIdsToProducers(t,e){const i=(r,n)=>r.filter(({kind:s,screenShare:o})=>n.includes(s)||o&&n.includes("screenshare"));return t.flatMap(r=>{const n=this.participants.joined.get(r);if(n)return i(n.producers,e)}).filter(r=>!!r)}onSelectedPeers(t,e){return u(this,null,function*(){this.participants.viewMode==="ACTIVE_GRID"&&this.computeActivateParticipants(t,e)})}updateActiveParticipantsWithPriorities(t,e=!1){if(!this.mediaJoined){l.warn("Skipped::ParticipantController::updateActiveParticipantsWithPriorities",{roomJoined:this.mediaJoined});return}t.forEach(r=>{this.selectedPeers.add(r.peerId,r.priority)});const i=this.selectedPeers.activeSpeakerPeers.at(0);i!==void 0&&i!==this.participants.lastActiveSpeaker&&(this.participants.lastActiveSpeaker=i,this.participants.emit("activeSpeaker",{peerId:i,volume:1})),e&&this.updateSubscriptions(this.participants.viewMode)}},Cr=new WeakMap,Ya=new WeakMap,Qa=new WeakMap,Is=new WeakMap,Xa=new WeakMap,yv);let ir=Id;kn([S.trace("ParticipantController.setupEvents")],ir.prototype,"setupEvents",1),kn([S.trace("ParticipantController.setupEvents")],ir.prototype,"setupEventsGlobal",1),kn([S.trace("ParticipantController.processMedia")],ir.prototype,"processMedia",1),kn([S.trace("ParticipantController.processConsumerClosed")],ir.prototype,"processConsumerClosed",1),kn([S.trace("ParticipantController.processConsumerResumed")],ir.prototype,"processConsumerResumed",1),kn([S.trace("ParticipantController.processConsumerPaused")],ir.prototype,"processConsumerPaused",1),kn([S.trace("ParticipantController.processNewConsumer")],ir.prototype,"processNewConsumer",1);const _e=vi(iu().permissions);var q,Za,Cs,nh,Nt,Kt;const eo=class extends Wt{constructor(t,e,i,r=!1){if(super(),f(this,Nt),f(this,q,void 0),f(this,Za,void 0),f(this,Cs,void 0),f(this,nh,n=>{var s,o,c;const d=n,{chat:h,connectedMeetings:p,plugins:g,polls:y,media:T}=d,b=vc(d,["chat","connectedMeetings","plugins","polls","media"]);if(h&&(h.private&&pr(a(this,q).chat.private,h.private),h.public&&pr(a(this,q).chat.public,h.public),this.emit("chatUpdate")),p&&pr(a(this,q).connectedMeetings,p),T){const O=x=>{switch(x){case yr.NONE:return H.Allowed;case yr.ALLOWED:return H.Allowed;case yr.NOT_ALLOWED:return H.NotAllowed;case yr.CAN_REQUEST:return H.CanRequest;default:return}},R={audio:void 0,video:void 0,screenshare:void 0};(s=T.audio)!=null&&s.canProduce&&(R.audio={canProduce:O(T.audio.canProduce)}),(o=T.video)!=null&&o.canProduce&&(R.video={canProduce:O(T.video.canProduce)}),(c=T.screenshare)!=null&&c.canProduce&&(R.screenshare={canProduce:O(T.screenshare.canProduce)}),pr(a(this,q).media,R)}g&&(pr(a(this,q).plugins,g),this.emit("pluginsUpdate")),y&&(pr(a(this,q).polls,y),this.emit("pollsUpdate")),Object.keys(b).length!==0&&pr(a(this,q),b),this.emit("permissionsUpdate",n)}),!e)throw l.error("DytePermissionsPreset::load_preset_permissions_failed"),new w("Could not load preset permissions.","0904");v(this,Cs,t),v(this,Za,i),v(this,q,e),r&&this.setupEvents()}setupEvents(){a(this,Cs).getValue("peerSessionStore").on(P.UPDATE_PERMISSIONS,a(this,nh))}static fromResponse(t,e,i){return new eo(i,t,e,!0)}static default(t,e){return new eo(t,_e,e)}static init(t,e,i){let r;return i?r=new eo(t,i,e,!0):r=new eo(t,_e,e),r}get mediaRoomType(){const{sfu:t}=a(this,Cs).getValue("roomNodeOptions");return t===Ne.CF?"CF":"HIVE"}get stageEnabled(){var t;return((t=a(this,q))==null?void 0:t.stageEnabled)||a(this,Za)===Rt.Webinar||a(this,Za)===Rt.Livestream}get acceptStageRequests(){var t,e;return this.stageEnabled?((t=a(this,q))==null?void 0:t.acceptStageRequests)||((e=a(this,q))==null?void 0:e.canAcceptProductionRequests):!1}get stageAccess(){var t,e,i;return((t=a(this,q))==null?void 0:t.stageAccess)===H.NotAllowed?H.NotAllowed:((e=a(this,q))==null?void 0:e.stageAccess)===H.CanRequest?H.CanRequest:((i=a(this,q))==null?void 0:i.stageAccess)===H.Allowed||a(this,q).media.audio.canProduce===H.Allowed||a(this,q).media.video.canProduce===H.Allowed||a(this,q).media.screenshare.canProduce===H.Allowed?H.Allowed:a(this,q).media.audio.canProduce===H.CanRequest||a(this,q).media.video.canProduce===H.CanRequest||a(this,q).media.screenshare.canProduce===H.CanRequest?H.CanRequest:H.NotAllowed}get acceptWaitingRequests(){var t,e;return(e=(t=a(this,q))==null?void 0:t.acceptWaitingRequests)!=null?e:_e.acceptWaitingRequests}get requestProduceVideo(){var t,e,i;return((i=(e=(t=a(this,q))==null?void 0:t.media)==null?void 0:e.video)==null?void 0:i.canProduce)===H.CanRequest}get requestProduceAudio(){var t,e,i;return((i=(e=(t=a(this,q))==null?void 0:t.media)==null?void 0:e.audio)==null?void 0:i.canProduce)===H.CanRequest}get requestProduceScreenshare(){var t,e,i;return((i=(e=(t=a(this,q))==null?void 0:t.media)==null?void 0:e.screenshare)==null?void 0:i.canProduce)===H.CanRequest}get canAllowParticipantAudio(){var t,e;return(e=(t=a(this,q))==null?void 0:t.disableParticipantAudio)!=null?e:_e.disableParticipantAudio}get canAllowParticipantScreensharing(){var t,e;return(e=(t=a(this,q))==null?void 0:t.canAcceptProductionRequests)!=null?e:_e.canAcceptProductionRequests}get canAllowParticipantVideo(){var t,e;return(e=(t=a(this,q))==null?void 0:t.disableParticipantVideo)!=null?e:_e.disableParticipantVideo}get canDisableParticipantAudio(){return this.canAllowParticipantAudio}get canDisableParticipantVideo(){return this.canAllowParticipantVideo}get kickParticipant(){var t,e;return(e=(t=a(this,q))==null?void 0:t.kickParticipant)!=null?e:_e.kickParticipant}get pinParticipant(){var t,e;return(e=(t=a(this,q))==null?void 0:t.pinParticipant)!=null?e:_e.pinParticipant}get canRecord(){var t,e;return(e=(t=a(this,q))==null?void 0:t.canRecord)!=null?e:_e.canRecord}get waitingRoomType(){var t,e;return(e=(t=a(this,q))==null?void 0:t.waitingRoomType)!=null?e:_e.waitingRoomType}get waitingRoomBehaviour(){var t,e;return(e=(t=a(this,q))==null?void 0:t.waitingRoomType)!=null?e:_e.waitingRoomType}get plugins(){var t,e;return(e=(t=a(this,q))==null?void 0:t.plugins)!=null?e:_e.plugins}get polls(){var t,e;return(e=(t=a(this,q))==null?void 0:t.polls)!=null?e:_e.polls}get produceVideo(){return this.canProduceVideo}get requestProduce(){return a(this,q).media.audio.canProduce===H.CanRequest||a(this,q).media.video.canProduce===H.CanRequest||a(this,q).media.screenshare.canProduce===H.CanRequest}get canProduceVideo(){var t;const e=(t=a(this,q).media.video.canProduce)!=null?t:_e.media.video.canProduce;return this.stageEnabled&&(a(this,Nt,Kt)==="ACCEPTED_TO_JOIN_STAGE"||a(this,Nt,Kt)==="ON_STAGE")&&e===H.CanRequest?H.Allowed:this.stageEnabled&&(a(this,Nt,Kt)==="OFF_STAGE"||a(this,Nt,Kt)==="REQUESTED_TO_JOIN_STAGE")&&e===H.Allowed?H.NotAllowed:e}get produceScreenshare(){return this.canProduceScreenshare}get canProduceScreenshare(){var t;const e=(t=a(this,q).media.screenshare.canProduce)!=null?t:_e.media.screenshare.canProduce;return this.stageEnabled&&(a(this,Nt,Kt)==="ACCEPTED_TO_JOIN_STAGE"||a(this,Nt,Kt)==="ON_STAGE")&&e===H.CanRequest?H.Allowed:this.stageEnabled&&(a(this,Nt,Kt)==="OFF_STAGE"||a(this,Nt,Kt)==="REQUESTED_TO_JOIN_STAGE")&&e===H.Allowed?H.NotAllowed:e}get produceAudio(){return this.canProduceAudio}get canProduceAudio(){var t;const e=(t=a(this,q).media.audio.canProduce)!=null?t:_e.media.audio.canProduce;return this.stageEnabled&&(a(this,Nt,Kt)==="ACCEPTED_TO_JOIN_STAGE"||a(this,Nt,Kt)==="ON_STAGE")&&e===H.CanRequest?H.Allowed:this.stageEnabled&&(a(this,Nt,Kt)==="OFF_STAGE"||a(this,Nt,Kt)==="REQUESTED_TO_JOIN_STAGE")&&e===H.Allowed?H.NotAllowed:e}get chatPublic(){var t,e,i;return(i=(e=(t=a(this,q))==null?void 0:t.chat)==null?void 0:e.public)!=null?i:_e.chat.public}get chatPrivate(){var t,e,i;return(i=(e=(t=a(this,q))==null?void 0:t.chat)==null?void 0:e.private)!=null?i:_e.chat.private}get chatChannel(){var t,e,i;return(i=(e=(t=a(this,q))==null?void 0:t.chat)==null?void 0:e.channel)!=null?i:_e.chat.channel}get chatMessage(){var t,e,i;return(i=(e=(t=a(this,q))==null?void 0:t.chat)==null?void 0:e.message)!=null?i:_e.chat.message}get connectedMeetings(){var t,e;return(e=(t=a(this,q))==null?void 0:t.connectedMeetings)!=null?e:_e==null?void 0:_e.connectedMeetings}get hiddenParticipant(){var t,e;return(e=(t=a(this,q))==null?void 0:t.hiddenParticipant)!=null?e:_e.hiddenParticipant}get showParticipantList(){var t;return(t=a(this,q).showParticipantList)!=null?t:_e.showParticipantList}get canChangeParticipantRole(){var t,e;return(e=(t=a(this,q))==null?void 0:t.canChangeParticipantPermissions)!=null?e:_e.canChangeParticipantPermissions}get canChangeParticipantPermissions(){var t,e;return(e=(t=a(this,q))==null?void 0:t.canChangeParticipantPermissions)!=null?e:_e.canChangeParticipantPermissions}get canChangeTheme(){return!1}get canPresent(){return a(this,q).media.audio.canProduce===H.Allowed||a(this,q).media.video.canProduce===H.Allowed||a(this,q).media.screenshare.canProduce===H.Allowed}get acceptPresentRequests(){return this.acceptStageRequests}get canEditDisplayName(){var t;return(t=a(this,q).canEditDisplayName)!=null?t:!1}get maxScreenShareCount(){return 1}get isRecorder(){return a(this,q).isRecorder}get canSpotlight(){return a(this,q).canSpotlight}get canLivestream(){return a(this,q).canLivestream}get transcriptionEnabled(){return a(this,q).transcriptionEnabled}};let CD=eo;q=new WeakMap,Za=new WeakMap,Cs=new WeakMap,nh=new WeakMap,Nt=new WeakSet,Kt=function(){return a(this,Cs).getValue("stageStatus")};var Cd;class PD extends Wt{constructor(){super(...arguments),m(this,"localMediaHandler"),f(this,Cd,void 0)}updatePermission(){return u(this,null,function*(){var e,i;const r=(h,p)=>{this.mediaPermissions[h]=p;const g={message:this.mediaPermissions[h],kind:h};p==="DENIED"?a(this,Cd).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_ERROR,g):a(this,Cd).getValue("peerSessionStore").emit(P.MEDIA_PERMISSION_UPDATE,g)};if(Ie.getName()==="firefox")return;const n="microphone",s="camera",o=yield(e=navigator==null?void 0:navigator.permissions)==null?void 0:e.query({name:n}),c=yield(i=navigator==null?void 0:navigator.permissions)==null?void 0:i.query({name:s}),d=(h,p)=>{switch(p){case"granted":r(h,"ACCEPTED");break;case"denied":r(h,"DENIED");break;case"prompt":r(h,"NOT_REQUESTED");break}this.localMediaHandler.repopulateAvailableDevices()};o&&(o.onchange=()=>d("audio",o.state)),c&&(c.onchange=()=>d("video",c.state))})}populateMediaPermissionsInCallstats(e){return u(this,arguments,function*({message:i,kind:r}){switch(r){case"audio":{J.mediaPermission("AUDIO",i),J.mediaPermission("SPEAKER",i);break}case"video":{J.mediaPermission("VIDEO",i);break}case"screenshare":{J.mediaPermission("SCREENSHARE",i);break}}})}init(){return u(this,arguments,function*(e={},i=!1,r=null){var n,s,o,c,d,h;if(Ie.init(),!this.localMediaHandler)try{let p=!0;if(r!=null&&r.getValue("defaults").mediaHandler)p=!1,this.localMediaHandler=r.getValue("defaults").mediaHandler.localMediaHandler;else if(navigator.RNLocalMediaHandlerImpl){const{RNLocalMediaHandlerImpl:g}=navigator;this.localMediaHandler=yield g.init(e)}else this.localMediaHandler=new Ot(r,e.constraints,(n=r==null?void 0:r.getValue("defaults"))==null?void 0:n.isNonPreferredDevice,(s=r==null?void 0:r.getValue("defaults"))==null?void 0:s.autoSwitchAudioDevice);if(r==null||r.getValue("peerSessionStore").on(P.MEDIA_PERMISSION_UPDATE,g=>u(this,null,function*(){if(this.populateMediaPermissionsInCallstats({message:g.message,kind:g.kind}),g.message==="NOT_REQUESTED")switch(g==null?void 0:g.kind){case"audio":this.rawAudioTrack&&(l.info("Disabling audio due to media permission update"),this.disableAudio());break;case"video":this.rawVideoTrack&&(l.info("Disabling video due to media permission update"),this.disableVideo());break;default:break}this.emit("mediaPermissionUpdate",g)})),r==null||r.getValue("peerSessionStore").on(P.MEDIA_PERMISSION_ERROR,g=>u(this,null,function*(){const{kind:y,message:T,constraints:b}=g;this.populateMediaPermissionsInCallstats({message:T,kind:y}),y==="audio"?(l.info(`Disabling audio due to media permission error skipping: ${this.localMediaHandler.audioUpdateInProgress}`),this.localMediaHandler.audioUpdateInProgress===!1&&this.disableAudio()):y==="video"&&(l.info(`Disabling video due to media permission error skipping: ${this.localMediaHandler.videoUpdateInProgress}`),this.localMediaHandler.videoUpdateInProgress===!1&&this.disableVideo()),l.error("SelfController::mediaPermissionError",{error:{message:T},constraints:b,mediaPermissionsErrors:{kind:y,message:T}}),this.emit("mediaPermissionError",g),this.emit("mediaPermissionUpdate",{message:T,kind:y})})),p){l.info(`Setting up DyteSelfMedia streams using media handler. audio:${(o=e==null?void 0:e.audio)!=null?o:!0} video:${(c=e==null?void 0:e.video)!=null?c:!0}`);const g=this.localMediaHandler.setupStreams({video:(d=e==null?void 0:e.video)!=null?d:!0,audio:(h=e==null?void 0:e.audio)!=null?h:!0});i||(yield g)}}catch(p){l.error("DyteSelf::init::Failed To Setup Streams",{error:{name:p.name,message:p.message}})}})}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,i){let r;return i==="audio"?r="audioinput":i==="video"?r="videoinput":i==="speaker"&&(r="audiooutput"),this.localMediaHandler.getDeviceById(e,r)}setDevice(e){return u(this,null,function*(){switch(e.kind){case"audioinput":try{yield this.localMediaHandler.setAudioDevice(e)}catch(i){}finally{this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})}break;case"audiooutput":yield this.localMediaHandler.setSpeakerDevice(e);break;case"videoinput":try{yield this.localMediaHandler.setVideoDevice(e)}catch(i){}finally{this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack})}break}this.emit("deviceUpdate",{device:e})})}}Cd=new WeakMap;const to={},Pr={executeWithLock({methodName:t,lockName:e,timeout:i}){return(r,n,s)=>{const o=s.value;return s.value=function(...c){if(to[e]){const p=new Error(`Unsupported concurrent calls on Dyte method: ${t}.`);throw p.name="UnsupportedConcurrentMethodExecution",l.error("DyteLocker::UnsupportedConcurrentMethodExecution",{error:{stack:p.stack},dyteLocker:{methodName:t,lockName:e}}),p}to[e]=!0;const d=setTimeout(()=>delete to[e],i),h=o.apply(this,c);return Promise.resolve(h).then(()=>{delete to[e],clearTimeout(d)}).catch(()=>{delete to[e],clearTimeout(d)}),h},s}}};var RD=Object.defineProperty,MD=Object.getOwnPropertyDescriptor,_t=(t,e,i,r)=>{for(var n=r>1?void 0:r?MD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&RD(e,i,n),n},io,Lt,ro,xi,Rr,bn,et,at,no,Pd,Ke,Ye,so,ao,Rd,sh,Sv;let tt=(Sv=class extends PD{constructor(t,e,i,r,n){var s;super(),f(this,Rr),f(this,et),f(this,no),f(this,Ke),f(this,Rd),m(this,"name"),m(this,"picture"),m(this,"customParticipantId"),m(this,"waitlistStatus"),f(this,io,void 0),f(this,Lt,void 0),f(this,ro,void 0),m(this,"role"),m(this,"userId"),m(this,"organizationId"),m(this,"supportsRemoteControl",!1),m(this,"device"),f(this,xi,void 0),m(this,"hidden",!1),m(this,"presetName"),m(this,"roomState","init"),f(this,so,new Set),f(this,ao,new Set),v(this,xi,t),this.userId=e.id,this.name=e.name,this.picture=e.picture,this.customParticipantId=(s=e.customParticipantId)!=null?s:e.clientSpecificId,this.waitlistStatus="none",v(this,Lt,i),v(this,io,r),this.hidden=!1,v(this,ro,!1),this.organizationId=e.organizationId,this.supportsRemoteControl=Ie.isElectron(),this.device=Ie.getDeviceInfo(),this.presetName=n,r.viewType!==Rt.Chat&&this.updatePermission(),this.updateVideo=this.updateVideo.bind(this),F(this,Rd,sh).call(this)}get stageStatus(){return a(this,xi).getValue("stageStatus")}get id(){return a(this,xi).getValue("peerId")}static __init__(t,e,i,r,n,s=!1){return u(this,null,function*(){var o,c,d,h,p;let g=(c=(o=t.getValue("defaults"))==null?void 0:o.audio)!=null?c:!0,y=(h=(d=t.getValue("defaults"))==null?void 0:d.video)!=null?h:!0;i.canProduceAudio!=="ALLOWED"&&(g=!1),i.canProduceVideo!=="ALLOWED"&&(y=!1);const T=new tt(t,e,i,r,n);if(r.viewType===Rt.Chat)return T;const b=x1(r.mediaConstraints);return pr(b,(p=t.getValue("defaults"))==null?void 0:p.mediaConfiguration),yield T.init({audio:g,video:y,constraints:b},s,t),T.setupEvents(),T})}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"),a(this,Lt).removeAllListeners("permissionsUpdate")}setupEvents(){this.on("videoUpdate",F(this,Rd,sh));const t=a(this,no,Pd);t&&t.onError(e=>{this.emit("autoplayError",e)}),this.localMediaHandler.on("AUDIO_TRACK_CHANGE",()=>u(this,null,function*(){if(l.info("DyteSelf::setupEvents::AUDIO_TRACK_CHANGE",L({},vn(this))),a(this,Ke,Ye)&&this.audioEnabled)try{yield a(this,et,at).shareMic(this.audioTrack)}catch(e){l.error("DyteSelf::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(l.info("DyteSelf::setupEvents::VIDEO_TRACK_CHANGE",L({},vn(this))),a(this,Ke,Ye)&&this.rawVideoTrack===void 0)l.info("DyteSelf::VIDEO_TRACK_CHANGE::Forcing_disable_video"),this.disableVideo();else if(this.videoEnabled&&a(this,Ke,Ye))try{const e=yield a(this,et,at).shareWebcam(this.videoTrack);e&&e.id!==this.videoTrack.id&&z.hasFeature(ie.EXP_RESHARE)&&(yield a(this,et,at).shareWebcam(this.videoTrack))}catch(e){l.error("DyteSelf::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",e=>u(this,[e],function*({device:i}){var r;this.emit("deviceUpdate",{device:i}),i.kind==="audiooutput"&&typeof HTMLAudioElement.prototype.setSinkId=="function"&&((r=a(this,no,Pd))==null||r.setSpeakerDevice(i.deviceId))})),this.localMediaHandler.on("DEVICE_LIST_UPDATED",e=>{this.emit("deviceListUpdate",e)}),this.localMediaHandler.on("SCREENSHARE_TRACK_CHANGE",()=>u(this,null,function*(){if(!a(this,Ke,Ye)){l.error("DyteSelf.SCREENSHARE_TRACK_CHANGE.LocalMediaInitialized_WithoutRoomNode");return}if(this.screenShareEnabled)try{yield a(this,et,at).shareScreen(this.screenShareTracks)}catch(e){l.error("DyteSelf::setupEvents::Error while sharing screen",{error:e}),this.screenShareEnabled&&(yield this.localMediaHandler.disableScreenShare())}l.info("DyteSelf::setupEvents::SCREENSHARE_TRACK_CHANGE",L({},vn(this))),this.emit("screenShareUpdate",{screenShareEnabled:this.screenShareEnabled,screenShareTracks:this.screenShareTracks})})),this.localMediaHandler.on("SCREENSHARE_ENDED",()=>u(this,null,function*(){l.log("Disabling screenshare due to SCREENSHARE_ENDED"),yield this.disableScreenShare(),l.info("DyteSelf::setupEvents::SCREENSHARE_ENDED",L({},vn(this)))})),this.localMediaHandler.on("AUDIO_TRACK_SILENT",()=>{J.mediaTrackMuted("AUDIO")}),this.localMediaHandler.on("FORCE_MUTE_AUDIO",()=>{this.disableAudio()}),this.localMediaHandler.on("FORCE_MUTE_VIDEO",()=>u(this,null,function*(){a(this,Ke,Ye)&&(yield a(this,et,at).pauseWebcam()),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}),J.videoOff()})),a(this,Lt).on("permissionsUpdate",e=>{var i,r,n;(i=e==null?void 0:e.media)!=null&&i.audio&&a(this,Lt).canProduceAudio!==H.Allowed&&(this.disableAudio(),l.info(`Disabled audio due to dynamic preset change: canProduceAudio: ${this.permissions.canProduceAudio}`)),(r=e==null?void 0:e.media)!=null&&r.video&&a(this,Lt).canProduceVideo!==H.Allowed&&(this.disableVideo(),l.info(`Disabled video due to dynamic preset change: canProduceVideo: ${this.permissions.canProduceVideo}`)),(n=e==null?void 0:e.media)!=null&&n.screenshare&&a(this,Lt).canProduceScreenshare!==H.Allowed&&(this.disableScreenShare(),l.info(`Disabled screenshare due to dynamic preset change: canProduceScreenshare: ${this.permissions.canProduceScreenshare}`))})}get permissions(){return a(this,Lt)}get config(){return a(this,io)}get roomJoined(){var t;return a(this,io).viewType===Rt.Livestream&&this.stageStatus!=="ON_STAGE"?((t=a(this,xi).getValue("connectionHandler"))==null?void 0:t.socketJoined)===!0:a(this,Ke,Ye)}setName(t){if(!t)throw new w("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*(){if(this.permissions.canProduceAudio!==H.NotAllowed&&!(a(this,Lt).canProduceAudio===H.CanRequest&&(this.stageStatus==="OFF_STAGE"||this.stageStatus==="REQUESTED_TO_JOIN_STAGE"))&&!this.audioEnabled){if(J.audioOn(),yield this.localMediaHandler.enableAudio(t),a(this,Ke,Ye)&&this.stageStatus==="ON_STAGE"){if(this.audioTrack)try{yield a(this,et,at).shareMic(this.audioTrack)}catch(e){l.error("DyteSelf::enableAudio::Error while sharing mic",{error:e}),this.localMediaHandler.disableAudio()}if(!this.audioEnabled)return;a(this,et,at).unmuteSelf()}this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})}})}enableVideo(t){return u(this,null,function*(){if(a(this,Lt).canProduceVideo!==H.NotAllowed&&!(a(this,Lt).canProduceVideo===H.CanRequest&&(this.stageStatus==="OFF_STAGE"||this.stageStatus==="REQUESTED_TO_JOIN_STAGE"))&&!this.videoEnabled){if(J.videoOn(),yield this.localMediaHandler.enableVideo(t),a(this,Ke,Ye)&&this.stageStatus==="ON_STAGE")try{yield a(this,et,at).shareWebcam(this.videoTrack)}catch(e){l.error("DyteSelf::enableVideo::Error while sharing video",{error:e}),this.videoEnabled&&this.localMediaHandler.disableVideo()}this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}),l.info("DyteSelf.enableVideo",L({},vn(this)))}})}updateVideoConstraints(t){return u(this,null,function*(){if(!this.localMediaHandler.updateVideoConstraints)throw new w("Unsupported","1102");yield this.localMediaHandler.updateVideoConstraints(t)})}enableScreenShare(){return u(this,null,function*(){if(!a(this,Ke,Ye))throw new w("Can`t enable screenshare without joining room","1105");if(a(this,Lt).canProduceScreenshare!==H.NotAllowed&&!(a(this,Lt).canProduceScreenshare===H.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 a(this,et,at).shareScreen(this.screenShareTracks)}catch(t){l.error("DyteSelf::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 w("Unsupported","1102");yield this.localMediaHandler.updateScreenshareConstraints(t)})}disableAudio(){return u(this,null,function*(){this.audioEnabled&&(this.localMediaHandler.disableAudio(),a(this,Ke,Ye)&&a(this,et,at).muteSelf(),this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack}),J.audioOff())})}disableVideo(){return u(this,null,function*(){this.videoEnabled&&(yield this.localMediaHandler.disableVideo(),a(this,Ke,Ye)&&(yield a(this,et,at).pauseWebcam()),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}),J.videoOff())})}disableScreenShare(){return u(this,null,function*(){this.screenShareEnabled&&(yield this.localMediaHandler.disableScreenShare(),a(this,Ke,Ye)&&(yield a(this,et,at).disableScreenShare()),this.emit("screenShareUpdate",{screenShareEnabled:this.screenShareEnabled,screenShareTracks:this.screenShareTracks}))})}getAllDevices(){return this.localMediaHandler.getAllDevices()}setIsPinned(t,e=!0){var i;v(this,ro,t);const r=t?"pinned":"unpinned";(i=a(this,Rr,bn))==null||i.updateSource(this.id,{pinned:t}),e&&this.emit(r,this)}get isPinned(){return a(this,ro)}pin(){return u(this,null,function*(){if(!a(this,Ke,Ye))throw new w("Can`t pin participants without joining room","1105");return this.show(),a(this,et,at).pinPeer(this.id)})}unpin(){return u(this,null,function*(){if(!a(this,Ke,Ye))throw new w("Can`t unpin participants without joining room","1105");return a(this,et,at).pinPeer(null)})}hide(){return u(this,null,function*(){if(!a(this,Ke,Ye))throw new w("Can`t toggle participant tile without joining room","1105");this.hidden=!0,this.emit("toggleTile",{hidden:this.hidden})})}show(){if(!a(this,Ke,Ye))throw new w("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 e,i,r;if(!t)throw new w("No device selected","1104");const n=this.getCurrentDevices();if(t.deviceId&&(((e=n==null?void 0:n.audio)==null?void 0:e.deviceId)===t.deviceId||((i=n==null?void 0:n.video)==null?void 0:i.deviceId)===t.deviceId||((r=n==null?void 0:n.speaker)==null?void 0:r.deviceId)===t.deviceId)&&(l.warn("DyteSelf.setDevice.setting_to_in_use_device",{devices:[t]}),z.hasFeature(ie.SKIP_SETTING_IN_USE_DEVICE)))throw new w("Cannot set device currently in use","1106");switch(t.kind){case"audioinput":try{yield this.localMediaHandler.setAudioDevice(t)}catch(s){a(this,Ke,Ye)&&(yield a(this,et,at).muteSelf()),this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})}break;case"audiooutput":yield this.localMediaHandler.setSpeakerDevice(t);break;case"videoinput":try{yield this.localMediaHandler.setVideoDevice(t)}catch(s){a(this,Ke,Ye)&&(yield a(this,et,at).pauseWebcam()),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack})}break}})}cleanUpTracks(){var t,e,i,r;(t=this.audioTrack)==null||t.stop(),(e=this.rawAudioTrack)==null||e.stop(),(i=this.videoTrack)==null||i.stop(),(r=this.rawVideoTrack)==null||r.stop()}playAudio(){var t;return(t=a(this,no,Pd))==null?void 0:t.play()}registerVideoElement(t,e=!1){var i,r;t&&(e?a(this,so).add(t):a(this,ao).add(t),this.updateVideo(t),e||(r=a(this,Rr,bn))==null||r.addSource(this.id,t,this.videoEnabled,this.isPinned,this.name,this.picture,(i=this.raised)!=null?i:!1))}deregisterVideoElement(t,e=!1){if(!t){a(this,Rr,bn).removeSource(this.id);return}t.srcObject=void 0,e?a(this,so).delete(t):(a(this,ao).delete(t),a(this,Rr,bn).removeSource(this.id))}updateVideo(t,e=!1){var i,r,n;if(this.videoEnabled){if(this.videoTrack==null)return;const s=(i=t.srcObject)==null?void 0:i.getTracks()[0];if((s==null?void 0:s.id)===this.videoTrack.id)return;const o=new MediaStream;o.addTrack(this.videoTrack),t.srcObject=o,e||(r=a(this,Rr,bn))==null||r.enableSource(this.id)}else t.srcObject=void 0,e||(n=a(this,Rr,bn))==null||n.disableSource(this.id);t.style.display=this.videoEnabled?"block":"none"}},io=new WeakMap,Lt=new WeakMap,ro=new WeakMap,xi=new WeakMap,Rr=new WeakSet,bn=function(){return a(this,xi).getValue("pip")},et=new WeakSet,at=function(){return a(this,xi).getValue("roomNodeClient")},no=new WeakSet,Pd=function(){return a(this,xi).getValue("audioPlayback")},Ke=new WeakSet,Ye=function(){var t;return((t=a(this,xi).getValue("connectionHandler"))==null?void 0:t.mediaJoined)===!0},so=new WeakMap,ao=new WeakMap,Rd=new WeakSet,sh=function(){Array.from(a(this,ao)).forEach(t=>this.updateVideo(t,!1)),Array.from(a(this,so)).forEach(t=>this.updateVideo(t,!0))},Sv);_t([S.trace("DyteSelf.cleanupEvents")],tt.prototype,"cleanupEvents",1),_t([S.trace("DyteSelf.setupEvents")],tt.prototype,"setupEvents",1),_t([S.trace("DyteSelf.setupTracks")],tt.prototype,"setupTracks",1),_t([S.trace("DyteSelf.destructMediaHandler")],tt.prototype,"destructMediaHandler",1),_t([S.trace("DyteSelf.removeDocumentEventListeners")],tt.prototype,"removeDocumentEventListeners",1),_t([Pr.executeWithLock({methodName:"meeting.self.enableAudio",lockName:"DyteSelf.toggleAudio",timeout:3e3}),S.trace("DyteSelf.enableAudio")],tt.prototype,"enableAudio",1),_t([Pr.executeWithLock({methodName:"meeting.self.enableVideo",lockName:"DyteSelf.toggleVideo",timeout:3e3}),S.trace("DyteSelf.enableVideo")],tt.prototype,"enableVideo",1),_t([S.trace("DyteSelf.updateVideoConstraints")],tt.prototype,"updateVideoConstraints",1),_t([S.trace("DyteSelf.enableScreenShare"),Pr.executeWithLock({methodName:"meeting.self.enableScreenShare",lockName:"DyteSelf.toggleScreenShare",timeout:3e3})],tt.prototype,"enableScreenShare",1),_t([S.trace("DyteSelf.updateScreenshareConstraints")],tt.prototype,"updateScreenshareConstraints",1),_t([Pr.executeWithLock({methodName:"meeting.self.disableAudio",lockName:"DyteSelf.toggleAudio",timeout:3e3}),S.trace("DyteSelf.disableAudio")],tt.prototype,"disableAudio",1),_t([Pr.executeWithLock({methodName:"meeting.self.disableVideo",lockName:"DyteSelf.toggleVideo",timeout:3e3}),S.trace("DyteSelf.disableVideo")],tt.prototype,"disableVideo",1),_t([Pr.executeWithLock({methodName:"meeting.self.disableScreenShare",lockName:"DyteSelf.toggleScreenShare",timeout:3e3}),S.trace("DyteSelf.disableScreenShare")],tt.prototype,"disableScreenShare",1),_t([S.trace("DyteSelf.setDevice")],tt.prototype,"setDevice",1),tt=_t([ut("1100")],tt);class ah extends Error{constructor(e){super(e!=null?e:"AwaitQueue stopped"),this.name="AwaitQueueStoppedError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ah)}}class oh extends Error{constructor(e){super(e!=null?e:"AwaitQueue task removed"),this.name="AwaitQueueRemovedTaskError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,oh)}}var Md;class ch{constructor(e=!1){m(this,"pendingTasks",new Map),m(this,"nextTaskId",0),m(this,"stopping",!1),f(this,Md,void 0),this.log=e,v(this,Md,{info:e?l.info:()=>{}})}get size(){return this.pendingTasks.size}push(e,i,r){return u(this,null,function*(){if(i=i!=null?i:e.name,typeof e!="function")throw new TypeError("given task is not a function");if(i)try{Object.defineProperty(e,"name",{value:i})}catch(n){}return new Promise((n,s)=>{const o={id:this.nextTaskId++,task:e,metadata:r,name:i,enqueuedAt:Date.now(),executedAt:void 0,completed:!1,resolve:c=>{if(o.completed)return;o.completed=!0,this.pendingTasks.delete(o.id),n(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),s(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 e of this.pendingTasks.values())e.reject(new ah);this.stopping=!1}remove(e){const i=Array.from(this.pendingTasks.values())[e];i&&i.reject(new oh)}get(e){return Array.from(this.pendingTasks.values())[e]}dump(){const e=Date.now();let i=0;return Array.from(this.pendingTasks.values()).map(r=>({idx:i++,task:r.task,name:r.name,enqueuedTime:r.executedAt?r.executedAt-r.enqueuedAt:e-r.enqueuedAt,executionTime:r.executedAt?e-r.executedAt:0}))}execute(e){return u(this,null,function*(){if(e.executedAt)throw new Error("task already being executed");e.executedAt=Date.now();try{const i=this.pendingTasks.size,r=yield e.task(),n=Date.now();a(this,Md).info(`AwaitQueue.push(${e.name})_timings`,{awaitQueueTask:{id:e.id,metadata:e.metadata,queueSizeAtStart:i,execTime:(n-e.executedAt)/1e3,taskStartTime:(e.executedAt-e.enqueuedAt)/1e3}}),e.resolve(r)}catch(i){e.reject(i)}})}}Md=new WeakMap;function AD(t,e){const i=new Error(e);return i.name=t,i}class oo extends w{constructor(e){super(e),this.name="UnsupportedError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,oo):this.stack=new Error(e).stack}}class Vt extends w{constructor(e){super(e),this.name="InvalidStateError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,Vt):this.stack=new Error(e).stack}}class _n extends w{constructor(e){super(e),this.name="TransportConnectionError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,Vt):this.stack=new Error(e).stack}}const Ev=t=>new Promise(e=>setTimeout(e,t));function Tv(t,e){return u(this,null,function*(){return new Promise((i,r)=>u(this,null,function*(){const{strategy:n,maxRetryCount:s,delayTime:o}=L({strategy:"linear",maxRetryCount:3,delayTime:10},e);let c=0,d,h=!1;const p=g=>{h=!0,r(g)};for(;c<s;){try{const g=yield t(c,p);return i(g)}catch(g){if(d=g,h)break;if(c<s)n==="linear"?yield Ev(o*(c+1)):n==="exponential"&&(yield Ev(o*(c+Math.max(0,c-1))));else break}c+=1}return r(d)}))})}function DD(t){return t.map(e=>({channels:e.channels,clockRate:e.clockRate,mimeType:e.mimeType,sdpFmtpLine:e.sdpFmtpLine}))}function OD(t){return t.map(e=>({uri:e.uri}))}function Ad(t){return{codecs:DD(t.codecs),headerExtensions:OD(t.headerExtensions?t.headerExtensions:[])}}function ND(t){const e=RTCRtpReceiver.getCapabilities("audio"),i=RTCRtpReceiver.getCapabilities("video"),r=RTCRtpSender.getCapabilities("audio"),n=RTCRtpSender.getCapabilities("video");t&&(i.codecs=i.codecs.filter(({mimeType:o})=>t===o),n.codecs=n.codecs.filter(({mimeType:o})=>t===o));const s={audio:Ad(e),video:Ad(i)};return{sender:{audio:Ad(r),video:Ad(n)},receiver:s}}var ot;class LD{constructor(e,i){f(this,ot,void 0),m(this,"events"),m(this,"sfuType"),v(this,ot,e),this.sfuType=i,this.events=i===Ne.CF?gi:ii}joinRoom(e,i,r,n=!1,s=null){return u(this,null,function*(){const o={roomUuid:e,displayName:i,prejoined:n,capabilities:r};return s&&(o.location=s),(yield a(this,ot).sendMessagePromiseWithTimeout({event:this.events.joinRoom,protobuf:$w.toBinary(o),timeout:5e3})).payload})}connectTransport(e){return u(this,null,function*(){const i=(yield a(this,ot).sendMessagePromise(this.events.createWebRTCTransport,Ew.toBinary(e))).payload,{transportId:r,description:n,producerIds:s}=qg.fromBinary(i),o={sdp:n==null?void 0:n.sdp,type:n.type};return{transportId:r,answer:o,producerIds:s}})}produce(e){return u(this,null,function*(){var i,r;const n=(yield a(this,ot).sendMessagePromise(this.events.produce,oI.toBinary(e))).payload,s=HI.fromBinary(n);return{answer:{sdp:(i=s==null?void 0:s.description)==null?void 0:i.sdp,type:(r=s==null?void 0:s.description)==null?void 0:r.type},producerId:s.producerId}})}consume(e){return u(this,null,function*(){if(this.sfuType===Ne.HIVE)throw new Error("Hive does not support socket consumer operations");const i=(yield a(this,ot).sendMessagePromise(this.events.consume,tI.toBinary(e))).payload,{consumerIdsMap:{map:r},description:n}=WI.fromBinary(i);return{consumerStateMap:r,sessionDescription:n}})}closeProducer(e){return u(this,null,function*(){const i=(yield a(this,ot).sendMessagePromise(this.events.closeProducer,mI.toBinary(e))).payload,{description:r}=YI.fromBinary(i);return r})}closeConsumer(e){return u(this,null,function*(){if(this.sfuType===Ne.HIVE)throw new Error("Hive does not support socket consumer operations");return(yield a(this,ot).sendMessagePromise(this.events.closeConsumer,fI.toBinary(e))).payload})}updateConsumersSimulcastConfig(e){return u(this,null,function*(){if(this.sfuType===Ne.HIVE)throw new Error("Method not implemented");return(yield a(this,ot).sendMessagePromise(this.events.updateConsumersSimulcastConfig,sI.toBinary(e))).payload})}hostControlForPeer(e,i){return u(this,null,function*(){const r={audio:i==="audio",screeShare:!1,video:i==="video",participantId:e},n=(yield a(this,ot).sendMessagePromise(this.events.hostControlPeer,kI.toBinary(r))).payload;if(!n)return!1;const{status:s}=rC.fromBinary(n);return s==="success"})}hostControlForAll(e){return u(this,null,function*(){const i={audio:e==="audio",screenShare:!1,video:e==="video"},r=(yield a(this,ot).sendMessagePromise(this.events.hostControlAllPeers,_I.toBinary(i))).payload;if(!r)return!1;const{status:n}=sC.fromBinary(r);return n==="success"})}kickAll(){return u(this,null,function*(){const e={propagateKickAcrossRooms:!1};a(this,ot).sendMessagePromise(B.kickAll,Yg.toBinary(e))})}kickPeer(e){return u(this,null,function*(){a(this,ot).sendMessagePromise(B.kick,hf.toBinary(e))})}changeDisplayName(e){return u(this,null,function*(){const i=(yield a(this,ot).sendMessagePromise(this.events.changeDisplayName,EI.toBinary(e))).payload;if(!i)return!1;const{status:r}=oC.fromBinary(i);return r==="success"})}notifySelfJoinComplete(){return u(this,null,function*(){const e={},i=(yield a(this,ot).sendMessagePromise(this.events.selfJoinComplete,Kw.toBinary(e))).payload;return uu.fromBinary(i)})}audioActivity(e){return u(this,null,function*(){a(this,ot).sendMessage(this.events.audioActivity,kw.toBinary(e))})}}ot=new WeakMap;class Dd extends lt.EventEmitter{constructor(){super(),this.setMaxListeners(1/0)}safeEmit(e,...i){const r=this.listenerCount(e);try{return this.emit(e,...i)}catch(n){return l.error(`EnhancedEventEmitter:: safeEmit() | event listener ${e} threw an error`,{error:n}),Boolean(r)}}safeEmitAsPromise(e,...i){return u(this,null,function*(){const r={}.EVENT_PROMISE_TIMEOUT?parseInt({}.EVENT_PROMISE_TIMEOUT,10):1e4;return this.safeEmitAsPromiseWithTimeout(e,r,...i)})}safeEmitAsPromiseWithTimeout(e,i,...r){return u(this,null,function*(){return new Promise((n,s)=>{setTimeout(s,i,"event request timeout");try{this.emit(e.toString(),...r,n,s)}catch(o){l.error(`EnhancedEventEmitter:: safeEmitAsPromise() | event listener for event ${e.toString()} threw an error [event:%s]:%o`,{error:o}),s(o)}})})}}class dh extends Dd{constructor(){super(...arguments),m(this,"_sendWebStream",new MediaStream),m(this,"_sendScreenShareStream",new MediaStream),m(this,"_direction"),m(this,"pc"),m(this,"_transportReady",!1),m(this,"_mapMidTransceiver",new Map),m(this,"enableHighBitrate",!1),m(this,"enableStereo",!1),m(this,"enableDtx",!0),m(this,"sfu",Ne.HIVE)}get midTransceiverMap(){return this._mapMidTransceiver}close(){if(l.debug(`${this.name}::close()`),this.pc)try{this.pc.close()}catch(e){l.error(`${this.name}::pc.close()`,{error:e})}}restartIce(){return u(this,null,function*(){l.debug(`${this.name}::restartIce()`);const e=yield this.pc.createOffer({iceRestart:!0});return l.debug(`${this.name}::restartIce() | calling pc.setLocalDescription() [offer:${JSON.stringify(e)}]`),{offerSdp:e,callback:i=>u(this,null,function*(){l.info(`${this.name}::restartIce() | calling pc.setRemoteDescription() [answer:${JSON.stringify(i)}]`),yield this.pc.setRemoteDescription(i)})}})}init({direction:e,iceServers:i,iceTransportPolicy:r,additionalSettings:n,proprietaryConstraints:s,onTrackHandler:o}){l.debug("HandlerInterface::init()"),this._direction=e,this.pc=new RTCPeerConnection(L({iceServers:i||[],iceTransportPolicy:r||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"},n),s),o&&this.pc.addEventListener("track",c=>{o(c)}),this._addEventListeners()}connect(){return u(this,null,function*(){let e;this.sfu===Ne.CF?this.pc.addTransceiver("video",{direction:"sendonly"}):e=this.pc.createDataChannel("dyte");const i=yield this.pc.createOffer();return yield this.pc.setLocalDescription(i),l.info(`connect offer: ${JSON.stringify(i)}`),{offerSdp:i,callback:r=>u(this,null,function*(){l.debug(`${this.name}::connect() | calling pc.setRemoteDescription() [answer:${JSON.stringify(r)}]`),yield this.pc.setRemoteDescription(r),e==null||e.close()})}})}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 i=this.midTransceiverMap.get(e);if(!i)throw new Error("associated RTCRtpTransceiver not found");return i.receiver.getStats()})}stopSending(e){return u(this,null,function*(){this._assertSendDirection(),l.debug(`stopSending() [localId:${e}]`);const i=this.midTransceiverMap.get(e);if(!i)throw new Error("associated RTCRtpTransceiver not found");i.sender.replaceTrack(null),this.pc.removeTrack(i.sender),i.direction="inactive";const r=yield this.pc.createOffer();return l.debug(`stopSending() | calling pc.setLocalDescription() [offer:${JSON.stringify(r)}]`),yield this.pc.setLocalDescription(r),{offerSdp:r,callback:n=>u(this,null,function*(){l.debug(`stopSending() | calling pc.setRemoteDescription() [answer:${JSON.stringify(n)}]`),yield this.pc.setRemoteDescription(n),this.midTransceiverMap.delete(e)})}})}replaceTrack(e,i){return u(this,null,function*(){this._assertSendDirection(),i?l.debug(`replaceTrack() [localId:${e}, track.id:${i.id}]`):l.debug(`replaceTrack() [localId:${e}, no track]`);const r=this.midTransceiverMap.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");yield r.sender.replaceTrack(i)})}setMaxSpatialLayer(e,i){return u(this,null,function*(){this._assertSendDirection(),l.debug(`setMaxSpatialLayer() [localId:${e}, spatialLayer:${i}]`);const r=this.midTransceiverMap.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const n=r.sender.getParameters();n.encodings.forEach((s,o)=>{o<=i?s.active=!0:s.active=!1}),yield r.sender.setParameters(n)})}setRtpEncodingParameters(e,i){return u(this,null,function*(){this._assertSendDirection(),l.debug(`setRtpEncodingParameters() [localId:${e}, params:${JSON.stringify(i)}]`);const r=this.midTransceiverMap.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const n=r.sender.getParameters();n.encodings.forEach((s,o)=>{n.encodings[o]=L(L({},s),i)}),yield r.sender.setParameters(n)})}getSenderStats(e){this._assertSendDirection();const i=this.midTransceiverMap.get(e);if(!i)throw new Error("associated RTCRtpTransceiver not found");return i.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:l.warn("unknown state");break}}),this.pc.addEventListener("negotiationneeded",()=>{this.emit("@negotiationneeded",{}),l.debug("negotiationneeded")}),this.pc.addEventListener("icegatheringstatechange",()=>{switch(this.pc.iceGatheringState){case"gathering":l.debug("icegatheringstatechange | gathering"),this.emit("@icegatheringstatechange","gathering");break;case"complete":l.debug("icegatheringstatechange | complete"),this.emit("@icegatheringstatechange","complete");break;default:l.warn("unknown state");break}}),this.pc.addEventListener("icecandidateerror",e=>{l.warn("icecandidateerror",{error:{code:e.errorCode,message:e.errorText}})}),this.pc.addEventListener("datachannel",e=>{l.info("data channel created: ",{rtcChannel:{label:e.channel.label}});const{channel:i}=e;i.onopen=()=>{l.info("data channel open: ",{rtcChannel:{label:e.channel.label}}),this.safeEmit("dc_open",e.channel)},i.onclose=()=>{l.warn("data channel closed: ",{rtcChannel:{label:e.channel.label}})},i.onerror=()=>{l.error("data channel error: ",{rtcChannel:{label:e.channel.label}})}}),this.addCustomEventListeners()}addCustomEventListeners(){}}class lh extends dh{static createFactory(){return()=>new lh}get name(){return"Chrome74"}init({direction:e,iceServers:i,iceTransportPolicy:r,additionalSettings:n,proprietaryConstraints:s,onTrackHandler:o}){this._direction=e,this.pc=new RTCPeerConnection(L({iceServers:i||[],iceTransportPolicy:r||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"unified-plan"},n),s),o&&this.pc.addEventListener("track",c=>{o(c)}),this._addEventListeners()}send(e){return u(this,arguments,function*({track:i,encodings:r,codecOptions:n,screenShare:s}){this._assertSendDirection();const o=this.pc.addTransceiver(i,{direction:"sendonly",streams:[s?this._sendScreenShareStream:this._sendWebStream],sendEncodings:r});if(!navigator.isReactNative){l.debug("creating new transceiver");const h=RTCRtpSender.getCapabilities(typeof i=="string"?i:i.kind);l.info(`senders available params: ${JSON.stringify(h)}`);const p=[];n&&n.length&&n.forEach(g=>{var y;const T=h.codecs.find(b=>b.mimeType.includes(g.name));if(g.parameters){l.debug(`codecOption.parameters:${JSON.stringify(g.parameters)}`);const b=((y=T.sdpFmtpLine)==null?void 0:y.split(";"))||[];b.push(...g.parameters);const O=Array.from(new Set(b).values());T.sdpFmtpLine=O.join(";")}p.push(T)}),l.info(`selected codecs: ${JSON.stringify(p)}`),o.setCodecPreferences(p)}const c=yield this.pc.createOffer();if(yield this.pc.setLocalDescription(c),n&&n.findIndex(({name:h})=>h==="opus")>=0){const{enableDtx:h,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;${h?"usedtx=1;":""}${p?"stereo=1;sprop-stereo=1;":""}maxaveragebitrate=${g}`),c.sdp+=`a=rtcp-fb:111 nack\r
17
+ `}this.midTransceiverMap.set(o.mid,o);const d=h=>u(this,null,function*(){return l.debug(`send() | calling pc.setRemoteDescription() [answer:${JSON.stringify(h)}]`),yield this.pc.setRemoteDescription(h),o.mid});return l.debug(`send() | calling pc.setLocalDescription() [offer: ${JSON.stringify(c,void 0,2)}]`),{offerSdp:c,callback:d,sender:o.sender,mid:o.mid}})}addCustomEventListeners(){this.pc.addEventListener("datachannel",e=>{const{channel:i}=e;i.onmessage=r=>{this.safeEmit("datachannel",e.channel,String.fromCharCode(...new Uint8Array(r.data)))}})}}class Od extends dh{constructor(e){super(),m(this,"supportsSendEncodings",!1),this.supportsSendEncodings=e.supportsSendEncodings}static createFactory(e){return()=>new Od(e)}get name(){return"Firefox60"}send(e){return u(this,arguments,function*({track:i,encodings:r,codecOptions:n,screenShare:s}){this._assertSendDirection();const o=this.supportsSendEncodings&&r!==void 0?{sendEncodings:r}:{},c=this.pc.addTransceiver(i,L({direction:"sendonly",streams:[s?this._sendScreenShareStream:this._sendWebStream]},o));if(!this.supportsSendEncodings&&r){r.reverse();const p=c.sender.getParameters();p.encodings=r,yield c.sender.setParameters(p)}const d=(p,g)=>{var y;const T=Jr(p),b=T.media[T.media.length-1],O=b.rtp.filter($=>g.some(I=>I.name===$.codec)),R=b.fmtp.filter($=>O.some(I=>I.payload===$.payload)),x=(y=b.rtcpFb)==null?void 0:y.filter($=>O.some(I=>I.payload===$.payload)),G=O.map($=>$.payload);return T.media[T.media.length-1].rtp=O,T.media[T.media.length-1].fmtp=R,T.media[T.media.length-1].rtcpFb=x,T.media[T.media.length-1].payloads=G.join(" "),gc(T)},h=yield this.pc.createOffer();if(h.sdp=d(h.sdp,n),l.debug(`send() | calling pc.setLocalDescription() [offer:${JSON.stringify(h)}]`),yield this.pc.setLocalDescription(h),i==="audio"||i.kind==="audio"){const{enableDtx:p,enableStereo:g}=this,y=this.enableHighBitrate?g?128e3:64e3:g?64e3:32e3;h.sdp=h.sdp.replace("minptime=10;useinbandfec=1",`minptime=10;useinbandfec=1;${p?"usedtx=1;":""}${g?"stereo=1;sprop-stereo=1;":""}maxaveragebitrate=${y}`)}return this.midTransceiverMap.set(c.mid,c),{offerSdp:h,callback:p=>u(this,null,function*(){return l.debug(`send() | calling pc.setRemoteDescription() [answer:${JSON.stringify(p)}]`),yield this.pc.setRemoteDescription(p),c.mid}),sender:c.sender,mid:c.mid}})}setMaxSpatialLayer(e,i){return u(this,null,function*(){this._assertSendDirection(),l.debug(`setMaxSpatialLayer() [localId:${e}, spatialLayer:${i}]`);const r=this.midTransceiverMap.get(e);if(!r)throw new Error("associated RTCRtpTransceiver not found");const n=r.sender.getParameters(),s=n.encodings.length-1-i;n.encodings.forEach((o,c)=>{c>=s?o.active=!0:o.active=!1}),yield r.sender.setParameters(n)})}addCustomEventListeners(){this.pc.addEventListener("datachannel",e=>{const{channel:i}=e;i.onmessage=r=>u(this,null,function*(){const n=yield r.data.arrayBuffer();this.safeEmit("datachannel",e.channel,String.fromCharCode(...new Uint8Array(n)))})})}}class uh extends dh{static createFactory(){return()=>new uh}get name(){return"Safari12"}send(e){return u(this,arguments,function*({track:i,encodings:r,codecOptions:n,screenShare:s}){this._assertSendDirection(),l.debug("Safari12::creating new transceiver");const o=this.pc.addTransceiver(i,{direction:"sendonly",streams:[s?this._sendScreenShareStream:this._sendWebStream],sendEncodings:r}),c=RTCRtpSender.getCapabilities(typeof i=="string"?i:i.kind);l.info(`Safari12::senders available params: ${JSON.stringify(c)}`);const d=[];n&&n.length>0&&n.forEach(p=>{var g;const y=c.codecs.find(T=>T.mimeType.includes(p.name));if(p.parameters){l.info(`Safari12::codecOption.parameters:, ${JSON.stringify(p.parameters)}`);const T=((g=y.sdpFmtpLine)==null?void 0:g.split(";"))||[];T.push(...p.parameters);const b=[...new Set(T).values()];y.sdpFmtpLine=b.join(";")}d.push(y)}),l.info(`Safari12::selected codecs: ${JSON.stringify(d)}`),o.setCodecPreferences(d);const h=yield this.pc.createOffer();if(yield this.pc.setLocalDescription(h),i==="audio"||i.kind==="audio"){const{enableStereo:p,enableDtx:g}=this,y=this.enableHighBitrate?p?128e3:64e3:p?64e3:32e3;h.sdp=h.sdp.replace("minptime=10;useinbandfec=1",`minptime=10;useinbandfec=1;${g?"usedtx=1;":""}${p?"stereo=1;sprop-stereo=1;":""}maxaveragebitrate=${y}`)}return this.midTransceiverMap.set(o.mid,o),{offerSdp:h,callback:p=>u(this,null,function*(){return l.debug(`Safari12::send() | calling pc.setRemoteDescription() [answer:${JSON.stringify(p)}]`),yield this.pc.setRemoteDescription(p),o.mid}),sender:o.sender,mid:o.mid}})}addCustomEventListeners(){this.pc.ondatachannel=e=>{const{channel:i}=e;i.onmessage=r=>u(this,null,function*(){const n=String.fromCharCode(...new Uint8Array(r.data));this.safeEmit("datachannel",e.channel,n)})}}}function VD(t,e){return typeof t=="undefined"?e:typeof window!="undefined"&&Object.getOwnPropertyDescriptor(window,"structuredClone")?structuredClone(t):JSON.parse(JSON.stringify(t))}var Nd,Ps,rr,nr,Mr,Ld,hh,ph,kv,mh,bv;class xD extends Dd{constructor(e){var i;super(),f(this,nr),f(this,Ld),f(this,ph),f(this,mh),m(this,"rtpReceiver"),m(this,"id"),m(this,"localId"),m(this,"producerId"),m(this,"producingTransportId"),m(this,"mimeType"),m(this,"track"),m(this,"peerId"),m(this,"appData"),m(this,"transceiver"),f(this,Nd,void 0),f(this,Ps,void 0),f(this,rr,void 0),this.id=e.id,this.localId=e.localId,v(this,Nd,e.handler),this.appData=e.appData,this.peerId=e.producingPeerId,this.producingTransportId=e.producingTransportId,v(this,rr,!1),this.producerId=e.producerId,this.track=e.track,v(this,Ps,(i=e.paused)!=null?i:!1),this.mimeType=e.mimeType,this.transceiver=e.transceiver,this.rtpReceiver=e.rtpReceiver,F(this,ph,kv).call(this)}get closed(){return a(this,rr)}get kind(){return this.track.kind}get paused(){return a(this,Ps)}close(e,i){a(this,rr)||(l.debug(`Consumer::close() ${e?`with reason ${e}`:""}`,a(this,nr,Mr)),v(this,rr,!0),i&&(F(this,mh,bv).call(this),this.transceiver.stop()),this.safeEmit("close",e))}getStats(){return u(this,null,function*(){if(a(this,rr))throw new Vt("closed");return a(this,Nd).getReceiverStats(this.localId)})}pause(){if(l.debug("consumer::pause()",a(this,nr,Mr)),a(this,rr)){l.error("consumer::pause() | Consumer closed",a(this,nr,Mr));return}v(this,Ps,!0),this.track.enabled=!1,this.safeEmit("pause")}resume(){if(l.debug("consumer::resume()",a(this,nr,Mr)),a(this,rr)){l.error("Consumer::resume() | Consumer closed",a(this,nr,Mr));return}v(this,Ps,!1),this.track.enabled=!0,this.safeEmit("resume")}}Nd=new WeakMap,Ps=new WeakMap,rr=new WeakMap,nr=new WeakSet,Mr=function(){return{consumer:{id:this.id,appData:this.appData,peerId:this.peerId,kind:this.kind}}},Ld=new WeakSet,hh=function(){l.debug('Consumer::track "ended" event',a(this,nr,Mr)),this.safeEmit("trackended")},ph=new WeakSet,kv=function(){this.track.addEventListener("ended",F(this,Ld,hh).bind(this))},mh=new WeakSet,bv=function(){try{this.track.removeEventListener("ended",F(this,Ld,hh)),this.track.stop()}catch(t){l.error("Consumer::destroyTrack()",j(L({},a(this,nr,Mr)),{error:t}))}};var Ui,co,lo,Rs,wi,mt,wn,uo,oi,Ii;class UD extends Dd{constructor(e){var i,r;super(),f(this,oi),m(this,"id"),m(this,"localId"),f(this,Ui,void 0),m(this,"kind"),m(this,"appData"),m(this,"rtpSender"),f(this,co,void 0),f(this,lo,void 0),f(this,Rs,void 0),f(this,wi,!1),f(this,mt,void 0),f(this,wn,void 0),f(this,uo,void 0),this.id=e.id,this.localId=e.localId,v(this,mt,e.track),this.kind=(i=e.track)==null?void 0:i.kind,v(this,wn,e.disableTrackOnPause?!((r=e.track)!=null&&r.enabled):!1),v(this,uo,void 0),v(this,co,e.stopTracks),v(this,lo,e.disableTrackOnPause),v(this,Rs,e.zeroRtpOnPause),this.appData=e.appData||{},this._onTrackEnded=this._onTrackEnded.bind(this),v(this,Ui,e.handler),this.rtpSender=e.rtpSender,this._handleTrack()}get closed(){return a(this,wi)}get track(){return a(this,mt)}get paused(){return a(this,wn)}get maxSpatialLayer(){return a(this,uo)}close(e){return u(this,null,function*(){if(a(this,wi))return;if(l.debug(`Producer::close() ${e?`with reason ${e}`:""}`,a(this,oi,Ii)),v(this,wi,!0),this._destroyTrack(),e===xd){this.safeEmit("close",{reason:e});return}const{offerSdp:i,callback:r}=yield a(this,Ui).stopSending(this.localId),{answer:n}=yield this.safeEmitAsPromise("close",{offer:i,reason:e});r(n)})}getStats(){return u(this,null,function*(){if(a(this,wi))throw new Vt("closed");return a(this,Ui).getSenderStats(this.localId)})}pause(){l.debug("Producer::pause()",a(this,oi,Ii)),a(this,wi)&&l.error("Producer::pause() | Producer closed",a(this,oi,Ii)),v(this,wn,!0),a(this,mt)&&a(this,lo)&&(a(this,mt).enabled=!1),a(this,Rs)&&a(this,Ui).replaceTrack(this.localId,null),this.emit("pause")}resume(){if(l.debug("Producer::resume()",a(this,oi,Ii)),a(this,wi)){l.error("Producer::resume() | Producer closed",a(this,oi,Ii));return}v(this,wn,!1),a(this,mt)&&a(this,lo)&&(a(this,mt).enabled=!0),a(this,Rs)&&a(this,Ui).replaceTrack(this.localId,a(this,mt)),this.emit("resume")}replaceTrack(e){return u(this,arguments,function*({track:i}){if(l.debug(`Producer::replaceTrack() trackId: ${i==null?void 0:i.id}`,a(this,oi,Ii)),a(this,wi)){if(i&&a(this,co))try{i.stop()}catch(r){l.error("Producer::replaceTrack",j(L({},a(this,oi,Ii)),{error:r}))}throw new Vt("closed")}else if(i&&i.readyState==="ended")throw new Vt("track ended");if(i===a(this,mt)){l.debug(`replaceTrack() | same track, ignored trackId: ${i.id}`,a(this,oi,Ii));return}(!a(this,Rs)||!a(this,wn))&&(yield a(this,Ui).replaceTrack(this.localId,i)),this._destroyTrack(),v(this,mt,i),this._handleTrack()})}setMaxSpatialLayer(e){return u(this,null,function*(){if(a(this,wi))throw new Vt("closed");if(this.kind!=="video")throw new oo("not a video Producer");if(typeof e!="number")throw new TypeError("invalid spatialLayer");yield a(this,Ui).setMaxSpatialLayer(this.localId,e),v(this,uo,e)})}setRtpEncodingParameters(e){return u(this,null,function*(){if(a(this,wi))throw new Vt("closed");if(typeof e!="object")throw new TypeError("invalid params");yield a(this,Ui).setRtpEncodingParameters(this.localId,e)})}_onTrackEnded(){l.debug(`Producer::track "ended" event trackId: ${this.track.id}`,a(this,oi,Ii)),this.safeEmit("trackended",this.track.id)}_handleTrack(){a(this,mt)&&a(this,mt).addEventListener("ended",this._onTrackEnded)}_destroyTrack(){var e;if(a(this,mt))try{a(this,mt).removeEventListener("ended",this._onTrackEnded),a(this,co)&&a(this,mt).stop()}catch(i){l.error(`Producer::_destroyTrack trackId: ${(e=this.track)==null?void 0:e.id}`,j(L({},a(this,oi,Ii)),{error:i}))}}}Ui=new WeakMap,co=new WeakMap,lo=new WeakMap,Rs=new WeakMap,wi=new WeakMap,mt=new WeakMap,wn=new WeakMap,uo=new WeakMap,oi=new WeakSet,Ii=function(){return{producer:{id:this.id,appData:this.appData,kind:this.kind}}};function _v(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null}function gh(t){return Math.random().toString(36).substring(2,2+t)}const Vd=1;function wv(t){const e=t;return delete e.payload._bolt,e}function FD(t){return t.payload&&_v(t.payload)}function Iv(t){var e,i;return FD(t)&&(i=(e=t.payload._bolt)==null?void 0:e.id)!=null?i:""}var In;const ho=class extends lt.EventEmitter{constructor(t,e,i){super(),m(this,"channel"),m(this,"queue"),m(this,"serverProtocolVersion"),f(this,In,new Map),m(this,"respond",(r,n,s=!1)=>{let o;s?o=ho.createErrorResponse(r,n):o=ho.createResponse(r,n),this.channel.send(JSON.stringify(o))}),m(this,"notify",r=>{const n=ho.createNotification(r);this.channel.send(JSON.stringify(n))}),m(this,"request",r=>u(this,null,function*(){const n=ho.createRequest(r),s=new Promise((o,c)=>{const{id:d}=n.payload._bolt,h={id:d,method:n.type,resolve:p=>{this.queue.delete(d)&&(clearTimeout(h.timer),o(p))},timer:setTimeout(()=>{this.queue.delete(d)&&c(new Error(`request timeout for message id: ${d}`))},2e4),cancel:p=>{this.queue.delete(d)&&(clearTimeout(h.timer),c(p))}};this.queue.set(d,h)});return this.channel.send(JSON.stringify(n)),s})),m(this,"send",r=>{const n=JSON.stringify(r),s=16384;if(n.length>s){const o=s-200,c=Math.ceil(n.length/o),d=[];for(let p=0;p<c;p+=1){const g=p*o,y=(p+1)*o;d.push(n.slice(g,y))}const h=jn();for(let p=0;p<c;p+=1){const g=d[p],y=JSON.stringify({id:h,count:c,chunkIndex:p,chunk:g});l.debug(`Sending message chunk over dc: ${y}`),this.channel.send(y)}}else l.debug(`Sending message over dc: ${n}`),this.channel.send(n)}),m(this,"processMessage",r=>{var n;a(this,In).has(r.id)||a(this,In).set(r.id,[]);const s=a(this,In).get(r.id);if(s[r.chunkIndex]=r,(s==null?void 0:s.length)===r.count&&!s.some(o=>o===void 0)){const o=a(this,In).get(r.id),c=o==null?void 0:o.reduce((h,p)=>h+p.chunk,"");a(this,In).delete(r.id);const d=JSON.parse(c);if(!d.payload||!_v(d.payload))throw new Error("corrupted incoming message over dc",{cause:{code:"CORRUPT_DC_MESSAGE",values:d}});if(this.processBoltHandshake(d))return;if(this.serverProtocolVersion=(n=d.payload._bolt)==null?void 0:n.version,!this.processResponseMsg(d))return d}}),m(this,"processResponseMsg",r=>{const{id:n}=r.payload._bolt,s=this.queue.get(n);return s?(l.debug(`resolving pending request with id: ${n}, complete response: ${JSON.stringify(r)}`),r.type==="error"?s.cancel(wv(r)):s.resolve(wv(r)),!0):!1}),m(this,"processBoltHandshake",r=>{var n,s;return r.type==="_bolt"||r.type==="handshake"?(this.respond((s=(n=r.payload._bolt)==null?void 0:n.id)!=null?s:gh(8),{type:"_bolt",payload:{message:"pong"}}),!0):!1}),this.label=e,this.transportId=i,this.channel=t,this.queue=new Map}};let po=ho;In=new WeakMap,m(po,"createRequest",t=>{var e;if((e=t.payload)!=null&&e._bolt)throw new Error("rpc fields are internal values");return{type:t.type,payload:j(L({},t.payload),{_bolt:{id:gh(8),type:"REQUEST",version:Vd}})}}),m(po,"createResponse",(t,e)=>{var i;if((i=e.payload)!=null&&i._bolt)throw new Error("rpc fields are internal values");return{type:e.type,payload:j(L({},e.payload),{_bolt:{id:t,type:"RESPONSE",version:Vd}})}}),m(po,"createNotification",t=>{var e;if((e=t.payload)!=null&&e._bolt)throw new Error("rpc fields are internal values");return{type:t.type,payload:j(L({},t.payload),{bolt:{id:gh(8),type:"NOTIFY",version:Vd}})}}),m(po,"createErrorResponse",(t,e)=>({type:"error",payload:{error:e.message,_bolt:{id:t,type:"RESPONSE",version:Vd}}}));const xd="transport closed";var Ms;const mo=class extends Dd{constructor(t,{id:e,direction:i,handlerFactory:r,iceServers:n,iceTransportPolicy:s,proprietaryConstraints:o,additionalSettings:c,appData:d,config:h}){var p,g,y;super(),m(this,"awaitQueue"),m(this,"observer"),f(this,Ms,void 0),m(this,"id"),m(this,"serverId"),m(this,"direction"),m(this,"maxSctpMessageSize"),m(this,"handler"),m(this,"connectionState","new"),m(this,"producers"),m(this,"consumers"),m(this,"datachannels"),m(this,"connected",!1),m(this,"eventsDCReadyPromise"),m(this,"eventsDCReadyPromiseResolver"),m(this,"eventsDCFailureTimer"),m(this,"transportConnectionPromise"),m(this,"consumerTrackEvents"),m(this,"unknownTracksMap"),m(this,"appData"),l.debug(`constructor() [id: ${e}, direction: ${i}]`),v(this,Ms,t),this.id=e,this.direction=i;const T=VD(c,{});delete T.iceServers,delete T.iceTransportPolicy,delete T.bundlePolicy,delete T.rtcpMuxPolicy,delete T.sdpSemantics,this.producers=new Map,this.consumers=new Map,this.datachannels=new Map,this.consumerTrackEvents=new Map,this.unknownTracksMap=new Map,this.awaitQueue=new ch(!0),this.handler=r(),this.handler.enableHighBitrate=(p=h==null?void 0:h.enableHighBitrate)!=null?p:!1,this.handler.enableStereo=(g=h==null?void 0:h.enableStereo)!=null?g:!1,this.handler.enableDtx=(y=h==null?void 0:h.enableDtx)!=null?y:!0,this.handler.sfu=a(this,Ms),this.handler.init({onTrackHandler:this._ontrack.bind(this),direction:i,iceServers:n,iceTransportPolicy:s,additionalSettings:c,proprietaryConstraints:o}),this.appData=d||{},this.transportConnectionPromise=new Promise(b=>{this.once("connected",()=>{b(!0)}),this.once("disconnect",()=>{b(!1)}),this.once("close",()=>{b(!1)})}),this.eventsDCReadyPromise=new Promise(b=>{this.eventsDCReadyPromiseResolver=b}),this.handler.on("@connectionstatechange",b=>{b!==this.connectionState&&(l.debug(`connection state changed to ${b}`),this.connectionState=b,b==="connected"&&(this.connected=!0,this.emit("connected")),b==="disconnected"&&(this.connected=!1,this.emit("disconnect")),(b==="failed"||b==="closed")&&(this.connected=!1,this.emit("close")),this.closed||this.safeEmit("connectionstatechange",b))}),this.handler.on("@icecandidate",({candidate:b})=>{this.closed||this.safeEmit("icecandidate",b)}),this.handler.on("dc_open",b=>{let O=this.datachannels.get(b.label);O||(O||(O=new po(b,b.label,this.serverId),this.datachannels.set(b.label,O)),this.eventsDCFailureTimer=setTimeout(()=>{b.label==="events"&&(this.eventsDCReadyPromiseResolver(!1),this.safeEmit("dc_error",b.label))},5e3))}),this.handler.on("datachannel",(b,O)=>{b.label==="events"&&(this.eventsDCReadyPromiseResolver(!0),this.eventsDCFailureTimer&&clearTimeout(this.eventsDCFailureTimer));const R=this.datachannels.get(b.label);if(!R){l.error("unregistered datachannel for message",{rtcChannel:{label:b.label,message:O}});return}try{const x=JSON.parse(O);l.debug("datachannel message chunk recieved",{dataChannelMessageChunk:{id:x.id,count:x.count,chunkIndex:x.chunkIndex,chunk:x.chunk,transprtId:this.serverId}});const G=R.processMessage(x);if(!G)return;l.debug(`datachannel message with id:${x.id} on transport:${this.serverId}complete - ${JSON.stringify(G)}`),this.emit(`datachannel:${b.label}`,R.label,G)}catch(x){l.error("error parsing message",{error:x})}})}get closed(){return this.connectionState==="closed"}setServerId(t){this.serverId=t}getDatachannel(t){return this.datachannels.get(t)}get isEventsDCReady(){return this.eventsDCReadyPromise}close(){this.closed||(l.debug("Transport close called"),this.connectionState="closed",this.awaitQueue.stop(),this.awaitQueue=void 0,this.connected=!1,this.handler.close(),Array.from(this.producers.values()).forEach(t=>{t.close(xd).catch(()=>{})}),this.producers.clear(),Array.from(this.consumers.values()).forEach(t=>{t.close(xd)}),this.consumers.clear(),this.consumerTrackEvents.clear(),this.emit("close"))}getStats(){return u(this,null,function*(){if(this.closed)throw new Vt("closed");return this.handler.getTransportStats()})}connect(t){return u(this,null,function*(){try{if(yield this.awaitQueue.push(()=>u(this,null,function*(){const{offerSdp:e,callback:i}=yield this.handler.connect(),{transportId:r,answer:n}=yield t(e);this.setServerId(r),yield i(n)})),!(yield this.transportConnectionPromise))throw new Error("ice connection failed");if(a(this,Ms)===Ne.HIVE&&!(yield this.isEventsDCReady))throw new Error("events datachannel not open")}catch(e){throw l.error("transport failed to connect:",{error:e}),e}})}restartIce(){return u(this,null,function*(){if(l.debug("restartIce()"),this.closed)throw new Vt("closed");return this.handler.restartIce()})}canProduce(t){return u(this,null,function*(){const{track:e,appData:i}=t;if(e){if(this.direction!=="send")throw new oo("not a sending Transport");if(e.readyState==="ended")throw new Vt("track ended");if(i&&typeof i!="object")throw new TypeError("if given, appData must be an object")}else throw new TypeError("missing track");if(!(yield this.transportConnectionPromise))throw new _n("transport not connected");return!0})}produce(t,e){return u(this,null,function*(){if(!(yield this.canProduce(t)))throw new Error("Cannot produce");const{track:i,encodings:r,codecOptions:n,stopTracks:s=!0,disableTrackOnPause:o=!0,zeroRtpOnPause:c=!1,appData:d={}}=t;l.debug(`produce() [track:${i.id}]`);const{producerId:h,localId:p,rtpSender:g}=yield this.awaitQueue.push(()=>u(this,null,function*(){const{offerSdp:y,callback:T,sender:b,mid:O}=yield this.handler.send({track:i,encodings:r,codecOptions:n,screenShare:d==null?void 0:d.screenShare}),{answer:R,producerId:x}=yield e({offer:y,kind:i.kind,paused:o?!i.enabled||Object.hasOwn(i,"fakeTracks"):!1,appData:j(L({},d||{}),{mid:O}),codecOptions:n,producingTransportId:this.serverId}),G=yield T(R);return{producerId:x,localId:G,rtpSender:b}}),"Transport.produce");return this.createProducerObject({id:h,localId:p,track:i,stopTracks:s,disableTrackOnPause:o,zeroRtpOnPause:c,appData:d,handler:this.handler,rtpSender:g})})}createProducerObject(t){return u(this,null,function*(){const e=new UD(t);return this.producers.set(e.id,e),e.once("close",()=>{this.producers.delete(e.id)}),this.emit("newproducer",e),e})}closeProducer(t){return u(this,null,function*(){yield this.awaitQueue.push(t.close.bind(t),"Transport.closeProducer")})}canConsume(){return u(this,null,function*(){if(this.closed)throw new Vt("closed");if(this.direction!=="recv")throw new oo("not a receiving transport");if(!(yield this.transportConnectionPromise))throw new _n("transport not connected");return!0})}consume(t,e,i){return u(this,null,function*(){return this.awaitQueue.push(()=>u(this,null,function*(){const r={},{consumerStates:n,sessionDescription:s,failedProducers:o}=yield e(t);n.forEach((d,h)=>{r[h]=this.createConsumerObjectAndWaitForTrack(j(L({},d),{producerId:h}))}),s&&(l.info("Session description found, sending negotiation request"),yield i(s));const c=[];return yield Promise.all(Object.entries(r).map(([d,h])=>h.then(p=>c.push(p)).catch(()=>{l.error(`Failed to create consumer object, producer: ${d}`,{error:{message:"This should not happen"},transport:{serverId:this.serverId}})}))),{consumers:c,failedProducers:o}}),"Transport.consume",{producersLength:t.length})})}static parseCodecAndFmtpMappings(t,e){const i=Jr(t.sdp),r={};return i.media.forEach(n=>{e.includes(n.mid.toString())&&(r[n.mid.toString()]={rtp:n.rtp,fmtp:n.fmtp,payloads:n.payloads,rtcpFb:n.rtcpFb})}),r}static setCodecAndFmtpMappings(t,e,i){const r=Jr(t.sdp);return r.media=r.media.map(n=>{if(e.includes(n.mid.toString())){const s=L({},n);return s.rtp=i[n.mid.toString()].rtp,s.fmtp=i[n.mid.toString()].fmtp,s.payloads=i[n.mid.toString()].payloads,s.rtcpFb=i[n.mid.toString()].rtcpFb,s}return n}),j(L({},t),{sdp:gc(r)})}static parseHeaderExtensionMappings(t){const e=Jr(t.sdp),i={};return e.media.forEach(r=>{i[r.mid]=r.ext}),i}static setHeaderExtensionMappings(t,e){const i=Jr(t.sdp);return i.media=i.media.map(r=>{const n=L({},r);return n.ext=e[r.mid],n}),j(L({},t),{sdp:gc(i)})}closeConsumers(t,e){return u(this,null,function*(){try{const i=t.map(c=>c.transceiver.mid),r=mo.parseCodecAndFmtpMappings(this.handler.pc.remoteDescription,i),n=mo.parseHeaderExtensionMappings(this.handler.pc.remoteDescription);l.info("Stopping transceivers",{consumerIds:t.map(({id:c})=>c)}),t.forEach(c=>c.close(void 0,!0));let s=yield this.handler.pc.createOffer();l.info("Created offer for closing consumers",{sdp:s.sdp}),s=mo.setCodecAndFmtpMappings(s,i,r),s=mo.setHeaderExtensionMappings(s,n),l.info("Updated codec and fmtp mappings in close consumer offer",{sdp:s.sdp}),yield this.setLocalDescription(s),l.info("Successfully set local description in close consumers");const o=yield e(t,s);l.info("Received answer in close consumers",{sdp:o.sdp}),yield this.setRemoteDescription(o),l.info("Remote description was set successfully in close consumers",{sdp:o.sdp})}catch(i){l.error("Failed to close consumers",{error:i})}})}setRemoteOffer(t){return u(this,null,function*(){try{l.info("Received offer from SFU",{sdp:t.sdp}),yield this.setRemoteDescription(t);const e=yield this.handler.pc.createAnswer();l.info("Created answer corresponding to received offer",{sdp:e.sdp});const i=Jr(e.sdp);return i.media=i.media.map(r=>{if(r.type==="audio"){const n=L({},r),s=n.fmtp.find(o=>o.payload===111);return s&&(s.config+=";stereo=1;sprop-stereo=1"),n.rtcpFb||(n.rtcpFb=[]),n.rtcpFb.some(o=>o.type==="nack")||n.rtcpFb.push({payload:parseInt(n.payloads,10),type:"nack"}),n}return r}),e.sdp=gc(i),l.info("Setting munged SDP",{sdp:e.sdp}),yield this.setLocalDescription(e),l.info("Successfully set local description",{sdp:e.sdp}),e}catch(e){throw l.error("Set remote offer failed",{error:e}),e}})}_ontrack(t){const{track:e,transceiver:i,streams:r}=t;l.info(`track event received [trackId: ${e.id}] [mid: ${i.mid}]`);let n;a(this,Ms)===Ne.HIVE?n=`${r[0].id}:${e.kind}`:n=`${i.mid}:${e.kind}`,e.addEventListener("ended",()=>{l.info(`rtc consumer track ended [trackId: ${e.id}]`),this.unknownTracksMap.delete(n)});const s=this.consumerTrackEvents.get(n);s?(s(e,i),this.consumerTrackEvents.delete(n)):(l.warn(`track event handler not found ${n}`),this.unknownTracksMap.set(n,t))}sendErrorOverDC(t,e,i){const r=this.getDatachannel(t);if(!r)throw new Error("datachannel not found",{cause:{code:"DC_NOT_FOUND",values:{label:t}}});r.respond(e,i,!0)}sendResponseOverDC(t,e,i){const r=this.getDatachannel(t);if(!r)throw new Error("datachannel not found",{cause:{code:"DC_NOT_FOUND",values:{label:t}}});r.respond(e,i)}createConsumerObjectAndWaitForTrack(t){return u(this,null,function*(){const{consumerId:e,producerId:i,producingPeerId:r,producingTransportId:n,streamId:s,paused:o,screenShare:c,appData:d,kind:h,mimeType:p}=t,g=`${s}:${h}`,y=j(L({},t),{name:"consumer creation task error",message:"consumer creation failed"});return new Promise((T,b)=>u(this,null,function*(){const O=setTimeout(()=>{l.warn(`Timed out waiting for track event ${g} producingPeerId: ${r}`),this.consumerTrackEvents.delete(g),y.isTimedout=!0,b(y)},5e3),R=(G,$)=>{try{if(G.readyState==="ended")clearTimeout(O),b(y);else{const I=G;I.enabled=!0,this.handler.midTransceiverMap.set($.mid,$);const se=new xD({id:e,localId:$.mid,transceiver:$,track:I,paused:o,producerId:i,producingPeerId:r,producingTransportId:n,handler:this.handler,appData:j(L({},d),{screenShare:c,peerId:r}),rtpReceiver:$.receiver,mimeType:p});this.consumers.set(e,se),se.once("close",()=>{this.consumers.delete(se.id),this.handler.midTransceiverMap.delete($.mid)}),l.info("consumer created for ",{consumer:{id:e,kind:h,appData:{screenShare:c},peerId:r,producerId:i}}),this.emit("newconsumer",se),clearTimeout(O),T(se)}}catch(I){l.warn("error while creating consumer:",I),clearTimeout(O),b(y)}},x=this.unknownTracksMap.get(g);x?(l.info(`track event already received [trackId: ${x.track.id}] [mid: ${x.transceiver.mid}]`),this.unknownTracksMap.delete(g),R(x.track,x.transceiver)):(l.info(`Registering onTrack handler for key ${g} [producingPeerId: ${r}]`),this.consumerTrackEvents.set(g,R))}))})}setRemoteDescription(t){return u(this,null,function*(){yield this.handler.pc.setRemoteDescription(t)})}setLocalDescription(t){return u(this,null,function*(){l.debug(`${this.direction}() {transportId: ${this.serverId}} | calling pc.setLocalDescription() [offer:${JSON.stringify(t)}]`),yield this.handler.pc.setLocalDescription(t)})}sendDataChannelMessage(t,e){return u(this,null,function*(){const i=this.getDatachannel(t);if(!i)throw AD("DC_NOT_READY",`${t} datachannel not ready`);const r=(yield i.request(e)).payload;return l.info(`sendDataChannelMessage::response ${JSON.stringify(r)}`),r})}};let BD=mo;Ms=new WeakMap;function WD(){if(typeof navigator=="object"&&navigator.product==="ReactNative"){if(typeof RTCPeerConnection=="undefined"){l.warn("Device::this._detectDevice() | unsupported ReactNative without RTCPeerConnection");return}return l.debug("Device::this._detectDevice() | ReactNative handler chosen"),"Chrome74"}if(typeof navigator=="object"&&typeof navigator.userAgent=="string"){const t=navigator.userAgent,e=kp.getParser(t),i=e.getEngine();if(e.satisfies({chrome:">=74",chromium:">=74","microsoft edge":">=88"}))return"Chrome74";if(e.satisfies({chrome:">=55",chromium:">=55"}))return;if(e.satisfies({firefox:">=110"}))return"Firefox110";if(e.satisfies({firefox:">=60"}))return"Firefox60";if(e.satisfies({ios:{OS:">=14.3",firefox:">=30.0"}})||e.satisfies({safari:">=12.0"})&&typeof RTCRtpTransceiver!="undefined"&&RTCRtpTransceiver.prototype.hasOwnProperty("currentDirection"))return"Safari12";if(e.satisfies({safari:">=11"})||e.satisfies({"microsoft edge":">=11"})&&e.satisfies({"microsoft edge":"<=18"}))return;if(i.name&&i.name.toLowerCase()==="blink"){const r=t.match(/(?:(?:Chrome|Chromium))[ /](\w+)/i);return r?Number(r[1])>=74?"Chrome74":void 0:"Chrome74"}if(i.name.toLowerCase()==="webkit"&&e.getOS().name.toLowerCase()==="ios")return typeof RTCRtpTransceiver!="undefined"&&RTCRtpTransceiver.prototype.hasOwnProperty("currentDirection")?"Safari12":void 0;l.warn("Device::this._detectDevice() | browser not supported");return}l.warn("Device::this._detectDevice() | unknown device")}var Ud;class jD{constructor(e,{handlerName:i,handlerFactory:r}={}){if(m(this,"handlerFactory"),f(this,Ud,void 0),l.debug("constructor()"),v(this,Ud,e),i&&r)throw new TypeError("just one of handlerName or handlerInterface can be given");if(r)this.handlerFactory=r;else{if(i)l.debug(`Device::constructor() | handler given: ${i}`);else if(i=WD(),i)l.debug(`Device::constructor() | detected handler: ${i}`);else throw new Error("device not supported");switch(i){case"Chrome74":this.handlerFactory=lh.createFactory();break;case"Safari12":this.handlerFactory=uh.createFactory();break;case"Firefox60":this.handlerFactory=Od.createFactory({supportsSendEncodings:!1});break;case"Firefox110":this.handlerFactory=Od.createFactory({supportsSendEncodings:!0});break;default:throw new TypeError(`unknown handlerName "${i}"`)}}}createTransport(e){const i=jn();return new BD(a(this,Ud),j(L({id:i},e),{handlerFactory:this.handlerFactory}))}}Ud=new WeakMap;const HD=2e3;var zt,go,wt,It,Fd,Bd,As,fo,vo,yo,Ds,sr,So,Eo,Wd,jd,fh,vh,Cv,Hd,yh,Sh,Pv,Eh,Rv,Th,Mv,kh,Av,bh,Dv,qd,_h,Gd,wh;class qD extends lt.EventEmitter{constructor(e,i,r){switch(super(),f(this,Eo),f(this,jd),f(this,vh),f(this,Hd),f(this,Sh),f(this,Eh),f(this,Th),f(this,kh),f(this,bh),f(this,qd),f(this,Gd),f(this,zt,void 0),f(this,go,void 0),f(this,wt,void 0),f(this,It,void 0),f(this,Fd,void 0),f(this,Bd,void 0),f(this,As,void 0),f(this,fo,void 0),f(this,vo,void 0),f(this,yo,{transportFailureCount:{send:0,recv:0},lastConnectionTime:0}),f(this,Ds,void 0),f(this,sr,"all"),f(this,So,void 0),v(this,zt,e),v(this,As,i),v(this,So,r),v(this,go,new jD(r)),v(this,fo,new LD(i,r)),r){case Ne.CF:{v(this,vo,gi);break}case Ne.HIVE:default:{v(this,vo,ii);break}}a(this,Eo,Wd).mediaState={send:{state:ws.NEW},recv:{state:ws.NEW}},(Kn(a(this,zt),"forceRelay")||z.hasFeature(ie.FORCE_RELAY))&&v(this,sr,"relay"),l.info(`ICE Transport Policy initially set to ${a(this,sr)}`),F(this,jd,fh).call(this)}get socket(){return a(this,As)}get socketHandler(){return a(this,fo)}get sendTransport(){return a(this,wt)}get recvTransport(){return a(this,It)}get events(){return a(this,vo)}get nodeType(){return a(this,So)}set sendTransportConnectedCallback(e){v(this,Fd,e)}set recvTransportConnectedCallback(e){v(this,Bd,e)}setupTransports(e){return u(this,null,function*(){yield F(this,vh,Cv).call(this,e);let i,r;e.send&&(i=F(this,Hd,yh).call(this,a(this,wt)).then(n=>{try{a(this,Fd).call(this,n)}catch(s){l.error("Failed to run send transport callback")}})),e.recv&&(r=F(this,Hd,yh).call(this,a(this,It)).then(n=>{try{a(this,Bd).call(this,n)}catch(s){l.error("Failed to run recv transport callback")}})),yield Promise.all([i,r])})}stopTransports(e){var i,r;if(e.send&&this.sendTransport!==void 0){const{id:n,serverId:s,direction:o}=a(this,wt);l.info("Closing send transport",{transport:{id:n,serverId:s,type:o}}),a(this,wt).close(),a(this,wt).removeAllListeners(),v(this,wt,void 0)}if(e.recv&&this.recvTransport!==void 0){const{id:n,serverId:s,direction:o}=a(this,It);l.info("Closing recv transport",{transport:{id:n,serverId:s,type:o}}),(i=a(this,It))==null||i.close(),(r=a(this,It))==null||r.removeAllListeners(),v(this,It,void 0)}F(this,jd,fh).call(this)}stopAllTransports(){l.info("Closing all transports"),this.stopTransports({send:!0,recv:!0})}handleErrors(e){throw new Error("Method not implemented.")}}zt=new WeakMap,go=new WeakMap,wt=new WeakMap,It=new WeakMap,Fd=new WeakMap,Bd=new WeakMap,As=new WeakMap,fo=new WeakMap,vo=new WeakMap,yo=new WeakMap,Ds=new WeakMap,sr=new WeakMap,So=new WeakMap,Eo=new WeakSet,Wd=function(){return a(this,zt).getValue("connectionHandler")},jd=new WeakSet,fh=function(){v(this,Ds,{send:void 0,recv:void 0})},vh=new WeakSet,Cv=function(t){return u(this,null,function*(){var e,i,r,n,s,o,c,d;(Kn(a(this,zt),"forceRelay")||z.hasFeature(ie.FORCE_RELAY))&&v(this,sr,"relay"),l.info(`ICE Transport Policy set to ${a(this,sr)}`);const h=yield ht().getICEServers().catch(p=>(l.warn(`failed to get iceservers from server: ${p.message}`),[]));if(t.send){const p=z.hasFeature(ie.DISABLE_OPUS_DTX_CF);F(this,Eh,Rv).call(this,{iceServers:h,additionalSettings:{encodedInsertableStreams:(e=a(this,zt).getValue("modules").e2ee)==null?void 0:e.enabled},config:{enableHighBitrate:(n=(r=(i=a(this,zt).getValue("defaults").mediaConfiguration)==null?void 0:i.audio)==null?void 0:r.enableHighBitrate)!=null?n:!1,enableStereo:(c=(o=(s=a(this,zt).getValue("defaults").mediaConfiguration)==null?void 0:s.audio)==null?void 0:o.enableStereo)!=null?c:!1,enableDtx:a(this,So)===Ne.HIVE?!0:!!p},iceTransportPolicy:a(this,sr)})}t.recv&&F(this,Th,Mv).call(this,{iceServers:h,additionalSettings:{encodedInsertableStreams:(d=a(this,zt).getValue("modules").e2ee)==null?void 0:d.enabled},iceTransportPolicy:a(this,sr)})})},Hd=new WeakSet,yh=function(t){return u(this,null,function*(){const{id:e,serverId:i,direction:r}=t;F(this,kh,Av).call(this,t);try{const n=z.hasFeature(ie.ENABLE_HIVE_INFINITE_RETRIES)?1/0:3;return yield Tv((s,o)=>u(this,null,function*(){s>0&&l.debug(`Retrying transport connect, count: ${s}`,{transport:{id:e,serverId:i,type:r}});try{if(t.closed)throw new _n("Cannot reconnect closed transport");yield F(this,Sh,Pv).call(this,t)}catch(c){if(c instanceof _n){o(c);return}throw l.error("Failed to connect transport, retrying",{transport:t,error:c}),c}}),{delayTime:100,strategy:"exponential",maxRetryCount:n}),t}catch(n){throw l.error(`Failed to connect send transport after retry: ${t.id}`,{error:n,transport:{id:e,serverId:i,type:r}}),t.close(),t.removeAllListeners(),n}})},Sh=new WeakSet,Pv=function(t){return u(this,null,function*(){const{id:e,direction:i}=t;if(l.info(`Connecting ${i} transport`,{transport:{id:e,type:i}}),!a(this,As).isConnected)throw new _n("Socket is not connected");if(t.connectionState==="closed")throw new _n("Transport is closed");try{yield t.connect(r=>F(this,bh,Dv).call(this,i,r)),l.info(`Connected ${i} transport`,{transport:{id:e,serverId:t.serverId,type:i}})}catch(r){throw a(this,yo).transportFailureCount[i]+=1,r.message==="ice connection failed"?new _n(r.message):r}})},Eh=new WeakSet,Rv=function(t){var e,i;if(a(this,wt)&&a(this,wt).connected){l.info("Transport send is already connected",{transport:{id:(e=a(this,wt))==null?void 0:e.id,serverId:(i=a(this,wt))==null?void 0:i.serverId,type:"send"}});return}v(this,wt,a(this,go).createTransport(j(L({},t),{direction:"send"}))),J.configureSendTransport(a(this,wt))},Th=new WeakSet,Mv=function(t){var e,i;if(a(this,It)&&a(this,It).connected){l.info("Transport recv is already connected",{transport:{id:(e=a(this,It))==null?void 0:e.id,serverId:(i=a(this,It))==null?void 0:i.serverId,type:"recv"}});return}v(this,It,a(this,go).createTransport(j(L({},t),{direction:"recv"}))),J.configureRecvTransport(a(this,It))},kh=new WeakSet,Av=function(t){const{direction:e,id:i}=t;t.on("connectionstatechange",r=>u(this,null,function*(){F(this,Gd,wh).call(this,{state:r,direction:e}),l.info(`Transport connection state changed for ${e} transport`,{transport:{id:i,serverId:t.serverId,type:e,status:r}});const n=()=>{const s=a(this,Ds)[e];s!==void 0&&(clearTimeout(s),a(this,Ds)[e]=void 0)};switch(r){case"connected":n(),a(this,yo).lastConnectionTime=performance.now();break;case"disconnected":a(this,Ds)[e]=setTimeout(()=>u(this,null,function*(){yield F(this,qd,_h).call(this,t.direction)}),HD);break;case"failed":if(t.closed)return;n(),yield F(this,qd,_h).call(this,t.direction);break}})),t.on("icecandidate",r=>u(this,null,function*(){l.debug("Sending iceCandidate:",{iceCandidate:r})})),t.on("datachannel:events",(r,n)=>u(this,null,function*(){var s,o;l.debug("Got data channel message on event:",{rtcChannel:{label:r,message:n}});try{switch(n.type){case"handshake":{const c={type:"handshake",payload:{message:"pong"}};t.sendResponseOverDC(r,Iv(n),c);break}case"hub-disconnect":{l.debug(`media hub disconnected, full_reconnect: ${(s=n.payload)==null?void 0:s.full_reconnect}`),((o=n.payload)==null?void 0:o.full_reconnect)===!0&&this.handleErrors("rejoin");break}case"error":break;default:break}}catch(c){l.error(`Unable to handle the incoming datachannel message on channel ${r}`)}})),t.on("dc_error",()=>{t.direction==="recv"&&(l.warn("Events datachannel did not open in 5s",{country:S.location.country}),this.handleErrors("reconnectRecvTransport"))})},bh=new WeakSet,Dv=function(t,e){return u(this,null,function*(){const i=t==="recv";try{const{sdp:r,type:n}=e,s={consuming:i,description:{sdp:r,type:n,target:i?zi.SUBSCRIBER:zi.PUBLISHER},producers:[]};return a(this,fo).connectTransport(s)}catch(r){throw l.error(`Error in ${t} transport connection:`,{error:r,country:S.location.country}),r}})},qd=new WeakSet,_h=function(t){return u(this,null,function*(){switch(l.info("Called reconnect transport",{transport:{type:t}}),this.stopTransports({[t]:!0}),z.hasFeature(ie.HIVE_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED)&&a(this,As).isConnected&&a(this,yo).transportFailureCount[t]>2&&(l.warn(`Multiple disconnections in ${t} transport, forcing relay`),v(this,sr,"relay")),yield this.setupTransports({[t]:!0}),t){case"send":{l.info("Transport reconnected",{transport:a(this,wt)}),a(this,zt).getValue("peerSessionStore").emit(P.RESET_PRODUCER_STATE);break}case"recv":{l.info("Transport reconnected",{transport:a(this,It)}),a(this,zt).getValue("peerSessionStore").emit(P.UPDATE_ACTIVE,{createAllConsumers:!0});break}default:l.warn("Unknown transport direction",{transport:{type:t}})}F(this,Gd,wh).call(this,{state:ws.CONNECTED,direction:t})})},Gd=new WeakSet,wh=function(t){const{state:e,direction:i}=t;a(this,Eo,Wd).mediaState[i]={state:e},a(this,zt).getValue("peerSessionStore").emit(P.TRANSPORT_STATE_UPDATE,L({transport:i},a(this,Eo,Wd).mediaState[i]))};var Ih,Ov;class GD{constructor(e){f(this,Ih),this.recvTransport=e,F(this,Ih,Ov).call(this)}create(e){return u(this,null,function*(){if(!e||e&&e.length===0)throw new Error("List of producers is required");const i={type:"create_consumer",payload:{producers:e.map(({producerId:o,producingTransportId:c,kind:d,mimeType:h})=>({producerId:o,producingTransportId:c,preferredCodec:L(L({},d==="video"&&h?{video:h}:{}),d==="audio"&&h?{audio:h}:{})}))}},r=yield this.recvTransport.sendDataChannelMessage("events",i),n=new Map;e.forEach(o=>n.set(o.producerId,o));const s=new Map;return Object.entries(r).forEach(([o,c])=>{const d=n.get(c.producerId);d&&s.set(c.producerId,{consumerId:o,producingTransportId:d.producingTransportId,producingPeerId:d.producingPeerId,kind:d.kind,paused:d.pause,streamId:c.streamId,trackId:c.trackId,screenShare:d.screenShare,mimeType:d.mimeType,appData:{}})}),{consumerStates:s}})}negotiate(e,i,r){return u(this,null,function*(){try{l.debug(`Received offer over dc: ${e.sdp} for transport`);const n=yield this.recvTransport.setRemoteOffer(e),s={type:"answer",payload:{type:n.type,sdp:n.sdp}};return l.debug(`datachannel answer: ${JSON.stringify(s)}`),this.recvTransport.sendResponseOverDC(r,i,s),n}catch(n){throw l.error("datachannel:events::Error:",n),n.code!=="DC_NOT_FOUND"&&this.recvTransport.sendErrorOverDC(r,i,n),n}})}close(e){return u(this,null,function*(){if(!e.length)return{};const i=e.map(o=>o.id);l.info(`Closing consumers: ${JSON.stringify(i)}`);const r={type:"close_consumers",payload:{consumers:i}},n=yield this.recvTransport.sendDataChannelMessage("events",r),{failedConsumers:s}=n;return{failedConsumers:s}})}switchConsumersToLayer(e,i){return u(this,null,function*(){var r;const n=this.recvTransport.getDatachannel("events");if(!n){l.warn("events datachannel not found");return}const s=(r=e==null?void 0:e.map(({id:c})=>c))!=null?r:[],o={type:"switch_consumer_layer",payload:{consumerIds:s,layer:i}};yield n.request(o),l.info(`Consumers switched layers to ${i}`,{consumerIds:s})})}}Ih=new WeakSet,Ov=function(){this.recvTransport.on("datachannel:events",(t,e)=>u(this,null,function*(){try{switch(e.type){case"negotiation":{const{sdp:i}=e.payload,r={sdp:i,type:"offer"};this.negotiate(r,Iv(e),t);break}default:break}}catch(i){l.error(`Unable to handle the incoming datachannel message on channel ${t}`)}}))};class $D{constructor(e,i,r,n){this.events=e,this.recvTransport=i,this.socket=r,this.socketHandler=n}create(e){return u(this,null,function*(){if(!e||e&&e.length===0)throw new Error("List of producers is required");const i=new Map,r=[];e.forEach(d=>{const{producingPeerId:h,producerId:p,producingTransportId:g}=d,y=z.hasFeature(ie.ENABLE_CF_SIMULCAST)?{simulcast:{preferredRid:"h",priorityOrdering:"asciibetical",ridNotAvailable:"asciibetical"}}:{};i.set(p,h),r.push(L({producingPeerId:h,producerId:p,producingTransportId:g},y))});const n=yield this.socketHandler.consume({requests:r,consumingTransportId:this.recvTransport.serverId}),s=new Map;e.forEach(d=>s.set(d.producerId,d));const o=new Map,c=[];return Object.entries(n.consumerStateMap).forEach(([d,h])=>{const p=s.get(d);if(!p)return;if(h.errorCode){l.warn(`Consumer request failed for producer ${d}`,{error:{message:h.errorCode}}),c.push(j(L({},p),{errorCode:h.errorCode}));return}let g={};try{g=JSON.parse(h.producerState.appData)}catch(y){}o.set(d,{consumerId:h.consumerId,producingTransportId:p.producingTransportId,producingPeerId:p.producingPeerId,kind:p.kind,paused:p.pause,streamId:h.producerTrack.streamId,trackId:h.producerTrack.trackId,screenShare:p.screenShare,mimeType:p.mimeType,appData:g})}),{consumerStates:o,sessionDescription:n.sessionDescription,failedProducers:c}})}negotiate(e){return u(this,null,function*(){try{l.info("Negotiating socket consumer",{transport:this.recvTransport}),l.debug(`setting remote offer: ${JSON.stringify(e)} on recvTransport`,{transport:this.recvTransport});const i=yield this.recvTransport.setRemoteOffer(e),r={transportId:this.recvTransport.serverId,description:{sdp:i.sdp,type:i.type,target:zi.SUBSCRIBER}};return l.debug(`sending renegotiate request: ${JSON.stringify(r)} on recvTransport`,{transport:this.recvTransport}),yield this.socket.sendMessagePromise(this.events.renegotiateSessionDescription,ww.toBinary(r)),l.info("Renegotiation done",{transport:this.recvTransport}),i}catch(i){l.error("Failed to renegotiate",{error:i});return}})}close(e){return u(this,null,function*(){if(!e.length)return{};const i=(r,n)=>u(this,null,function*(){const s=r.map(h=>h.localId);l.info(`Closing consumers: ${JSON.stringify(s)}`);const o={description:{sdp:n.sdp,type:n.type,target:zi.SUBSCRIBER},consumerIds:s,consumingTransportId:this.recvTransport.serverId},c=yield this.socketHandler.closeConsumer(o),d=XI.fromBinary(c).description;return{sdp:d.sdp,type:d.type}});return yield this.recvTransport.awaitQueue.push(()=>this.recvTransport.closeConsumers(e,i),"ConsumerStrategy.close",{consumersLength:e.length}),{}})}switchConsumersToLayer(e,i){return u(this,null,function*(){const r={requests:[],consumingTransportId:this.recvTransport.serverId};e.forEach(({id:n,producingTransportId:s,localId:o})=>{r.requests.push({producerId:n,producingTransportId:s,mid:o,simulcast:{preferredRid:i===0?"q":"h",priorityOrdering:"asciibetical",ridNotAvailable:"asciibetical"}})}),yield this.socketHandler.updateConsumersSimulcastConfig(r),l.info(`Consumers switched layers to ${i}`,{consumerIds:e==null?void 0:e.map(({id:n})=>n)})})}}class Ch{constructor(e){this.socketHandler=e}static getMSIDFromSDP(e,i){return Jr(e).media.filter(r=>i==="video"?r.type==="video":r.type==="audio").at(-1).msid}create(e){return u(this,arguments,function*({offer:i,kind:r,paused:n,appData:s,codecOptions:o,producingTransportId:c}){var d,h;const p=Ch.getMSIDFromSDP(i.sdp,r),g={description:{sdp:i.sdp,type:i.type,target:zi.PUBLISHER},paused:n,kind:r,msid:p,appData:JSON.stringify(s),screenShare:(d=s.screenShare)!=null?d:!1,mimeType:`${r}/${(h=o[0])==null?void 0:h.name}`,producingTransportId:c},{answer:y,producerId:T}=yield this.socketHandler.produce(g);return{answer:y,producerId:T}})}}var Ar,Os,Cn,To,$d,Fi,Ph,Dr,ko,Jd,Rh,Mh,Nv,Ah,Lv,Dh,Vv,Oh,xv;class JD extends qD{constructor(e,i,r){super(e,i,r),f(this,Jd),f(this,Mh),f(this,Ah),f(this,Dh),f(this,Oh),f(this,Ar,void 0),f(this,Os,void 0),f(this,Cn,void 0),f(this,To,void 0),f(this,$d,void 0),f(this,Fi,void 0),f(this,Ph,{producerCreationFailureCount:0,consumerCreationFailureCount:0,producerNotReadyFailureCount:0}),f(this,Dr,[]),f(this,ko,void 0),v(this,Ar,e),this.sendTransportConnectedCallback=()=>u(this,null,function*(){v(this,$d,new Ch(this.socketHandler))}),this.recvTransportConnectedCallback=n=>u(this,null,function*(){switch(a(this,To).clear(),this.nodeType){case Ne.CF:{v(this,Fi,new $D(this.events,n,this.socket,this.socketHandler));break}case Ne.HIVE:default:v(this,Fi,new GD(n))}}),this.reset()}get socketHandler(){return super.socketHandler}get producers(){return a(this,Os)}get consumers(){return a(this,Cn)}get producerIdToConsumerIdMap(){return a(this,To)}reset(){v(this,Os,new Map),v(this,Cn,new Map),v(this,To,new Map)}createProducer(e,i){return u(this,null,function*(){var r;if(!this.sendTransport||this.sendTransport.closed)throw new Error("Send transport is closed");try{const n=yield this.sendTransport.produce(e,F(this,Mh,Nv).bind(this));return(r=e.appData)!=null&&r.e2ee&&a(this,Ar).getValue("peerSessionStore").emit(P.E2EE_ACTIVE_PRODUCER,n),F(this,Ah,Lv).call(this,n,i),n}catch(n){throw l.error("Failed to create producer",{error:n}),a(this,Ph).producerCreationFailureCount+=1,n}})}closeProducer(e,i){return u(this,null,function*(){var r;const n=this.producers.get(e);if(!n){l.warn(`Producer with ID ${e} was not found`);return}i!=null&&i.stopTrack&&n.track.stop();try{yield this.sendTransport.closeProducer(n),(r=a(this,Ar).getValue("modules").e2ee)!=null&&r.enabled&&a(this,Ar).getValue("peerSessionStore").emit(P.E2EE_INACTIVE_PRODUCER,n)}catch(s){l.error("Failed to close producer on server",{error:s,producer:n})}})}closeAllProducers(){return Promise.all(Array.from(a(this,Os).entries()).map(([,e])=>e.close()))}createConsumer(e){return this.createConsumers([e])}createConsumers(e){return u(this,null,function*(){a(this,ko)||clearTimeout(a(this,ko)),v(this,Dr,a(this,Dr).concat(e)),yield F(this,Jd,Rh).call(this)})}closeConsumer(e){return this.closeConsumers([e])}closeConsumers(e){return u(this,null,function*(){if(!a(this,Fi))return;const i=e.map(n=>this.consumers.get(n)).filter(n=>n!==void 0);if(i.length===0)return;const{failedConsumers:r}=yield a(this,Fi).close(i);r!=null&&r.length&&l.warn("Failed to close some consumers",{consumerIds:r})})}closeAllConsumers(){return this.closeConsumers(Array.from(a(this,Cn).keys()))}switchConsumersToLayer(e,i){return u(this,null,function*(){a(this,Fi).switchConsumersToLayer(e,i)})}}Ar=new WeakMap,Os=new WeakMap,Cn=new WeakMap,To=new WeakMap,$d=new WeakMap,Fi=new WeakMap,Ph=new WeakMap,Dr=new WeakMap,ko=new WeakMap,Jd=new WeakSet,Rh=function(){return u(this,null,function*(){if(!this.recvTransport||this.recvTransport.closed)throw new Error("Recv transport is closed");const t=500,e=a(this,Dr).splice(0,a(this,Dr).length);try{const i=e.filter(({producerId:s})=>!this.producers.get(s));if(i.length===0)return;const{consumers:r,failedProducers:n}=yield this.recvTransport.consume(i,F(this,Dh,Vv).bind(this),a(this,Fi).negotiate.bind(a(this,Fi)));if(r.forEach(F(this,Oh,xv).bind(this)),n!=null&&n.length){l.error("Failed to create consumers for producers",{producers:n});const s=n.filter(({errorCode:o,producerId:c})=>o==="not_found_track_error"?(l.error(`Track not found for producer: ${c}. This will not be retried.`),!1):o==="backend_error"?(l.error("Unrecoverable error: backend error"),!1):!0);v(this,Dr,a(this,Dr).concat(s)),v(this,ko,setTimeout(F(this,Jd,Rh).bind(this),t))}}catch(i){if(l.error("failed to consume on transport",{error:i}),i.errorCode==="internal_error"&&i.errorDescription==="Backend error"||i.errorCode==="invalid_session_description"){l.error("Irrecoverable error, closing current recvTransport to create a new one",{transport:this.recvTransport,error:{code:i.errorCode,message:i.errorDescription}});try{this.stopTransports({recv:!0})}catch(r){}yield this.setupTransports({recv:!0})}}})},Mh=new WeakSet,Nv=function(t){return a(this,$d).create(t)},Ah=new WeakSet,Lv=function(t,e){t.on("close",(i,r)=>u(this,null,function*(){const{offer:n,reason:s}=i;if(l.info("producer::closing",{debuggingHint:s,producer:j(L({},t),{status:"closing"})}),s!==xd){const o={producerId:t.id,description:{sdp:n.sdp,type:n.type,target:zi.PUBLISHER}};try{const c=yield this.socketHandler.closeProducer(o),d={sdp:c==null?void 0:c.sdp,type:c==null?void 0:c.type};l.info("producer::closed",{producer:j(L({},t),{status:"closed"})}),r({answer:d})}catch(c){l.error("producer close error",c)}}this.producers.delete(t.id),e()})),t.on("trackended",()=>{l.info("producer::trackended",{producer:j(L({},t),{status:"UNKNOWN"})})}),a(this,Os).set(t.id,t)},Dh=new WeakSet,Vv=function(t){return u(this,null,function*(){try{return yield this.recvTransport.canConsume(),yield a(this,Fi).create(t)}catch(e){throw l.error("Error in consume request",{error:e}),e}})},Oh=new WeakSet,xv=function(t){t.on("close",e=>u(this,null,function*(){l.debug("consumer closed",{consumer:{closureReason:e,id:t.id,kind:t.kind,appData:t.appData}}),a(this,Cn).delete(t.id),a(this,Ar).getValue("peerSessionStore").emit(P.CONSUMER_CLOSED,{id:t.id})})),a(this,Cn).set(t.id,t),this.producerIdToConsumerIdMap.set(t.producerId,t.id),a(this,Ar).getValue("peerSessionStore").emit(P.NEW_CONSUMER,{id:t.id,appData:t.appData,peerId:t.peerId})};var Kd,zd,Yd,bo,_o,wo,Qd,Xd,Io,Yt,Bi,Wi,Pn,Rn,Or,Zd,Nh,Uv,Lh,Fv,Vh,Bv,xh,Wv;const Uh=class{constructor({initialEnergyThreshold:t=.015,zeroCrossingThreshold:e=20,minVoiceDuration:i=3,hangoverFrames:r=5,noiseAdaptationRate:n=.95,voiceAdaptationRate:s=.99,minEnergyThreshold:o=.005,maxEnergyThreshold:c=.2,energyRatioThreshold:d=1.5,noiseHistorySize:h=50}={}){f(this,Nh),f(this,Lh),f(this,Kd,void 0),f(this,zd,void 0),f(this,Yd,void 0),f(this,bo,void 0),f(this,_o,void 0),f(this,wo,void 0),f(this,Qd,void 0),f(this,Xd,void 0),f(this,Io,void 0),f(this,Yt,void 0),f(this,Bi,void 0),f(this,Wi,!1),f(this,Pn,0),f(this,Rn,0),f(this,Or,[]),f(this,Zd,void 0),v(this,bo,t),v(this,Yt,t),v(this,Kd,e),v(this,zd,i),v(this,Yd,r),v(this,_o,n),v(this,wo,s),v(this,Qd,o),v(this,Xd,c),v(this,Io,d),v(this,Zd,h),v(this,Bi,t/2)}get voiceDetected(){return a(this,Wi)}processAudioChunk(t){var e,i;const r=F(e=Uh,Vh,Bv).call(e,t),n=F(i=Uh,xh,Wv).call(i,t);return F(this,Nh,Uv).call(this,r),r/a(this,Bi)>a(this,Io)&&r>a(this,Yt)&&n>a(this,Kd)?(v(this,Pn,a(this,Pn)+1),v(this,Rn,a(this,Yd)),a(this,Pn)>=a(this,zd)&&v(this,Wi,!0)):(v(this,Pn,0),a(this,Rn)>0?v(this,Rn,a(this,Rn)-1):a(this,Wi)&&v(this,Wi,!1),a(this,Wi)||F(this,Lh,Fv).call(this,r)),{energy:r,isVoice:a(this,Wi)}}reset(){v(this,Wi,!1),v(this,Pn,0),v(this,Rn,0),v(this,Yt,a(this,bo)),v(this,Bi,a(this,bo)/2),v(this,Or,[])}getThresholdInfo(){return{currentEnergyThreshold:a(this,Yt),backgroundNoiseEnergy:a(this,Bi),energyRatioThreshold:a(this,Io)}}};let Fh=Uh;Kd=new WeakMap,zd=new WeakMap,Yd=new WeakMap,bo=new WeakMap,_o=new WeakMap,wo=new WeakMap,Qd=new WeakMap,Xd=new WeakMap,Io=new WeakMap,Yt=new WeakMap,Bi=new WeakMap,Wi=new WeakMap,Pn=new WeakMap,Rn=new WeakMap,Or=new WeakMap,Zd=new WeakMap,Nh=new WeakSet,Uv=function(t){a(this,Wi)?v(this,Yt,a(this,wo)*a(this,Yt)+(1-a(this,wo))*t):v(this,Yt,a(this,_o)*a(this,Yt)+(1-a(this,_o))*a(this,Bi)),v(this,Yt,Math.max(a(this,Qd),Math.min(a(this,Xd),a(this,Yt))))},Lh=new WeakSet,Fv=function(t){if(t<a(this,Yt)*1.2)if(a(this,Or).push(t),a(this,Or).length>a(this,Zd)&&a(this,Or).shift(),a(this,Or).length>=10){const e=[...a(this,Or)].sort((r,n)=>r-n),i=Math.floor(e.length/2);v(this,Bi,e[i])}else v(this,Bi,.95*a(this,Bi)+.05*t)},Vh=new WeakSet,Bv=function(t){return Math.sqrt(t.map(e=>e*e).reduce((e,i)=>e+i)/t.length)},xh=new WeakSet,Wv=function(t){let e=0;for(let i=1;i<t.length;i+=1)(t[i]>=0&&t[i-1]<0||t[i]<0&&t[i-1]>=0)&&(e+=1);return e},f(Fh,Vh),f(Fh,xh);const KD=60,zD=400;var Nr,Lr,ji,Mn,An,Co,Ns,Po,Vr,Dn,Ro,Bh,jv,el,Wh,jh,Hv,Hh,qv;const tl=class{constructor(t){f(this,Bh),f(this,jh),f(this,Nr,void 0),f(this,Lr,void 0),f(this,ji,void 0),f(this,Mn,void 0),f(this,An,void 0),f(this,Co,void 0),f(this,Ns,void 0),f(this,Po,void 0),f(this,Vr,void 0),f(this,Dn,void 0),f(this,Ro,void 0),this.reportRequest=t,v(this,Mn,new AudioContext),v(this,An,a(this,Mn).createAnalyser()),a(this,An).fftSize=2048,v(this,Po,new Fh)}set producerId(t){v(this,ji,t)}set audioTrack(t){v(this,Co,t);const e=new MediaStream;e.addTrack(a(this,Co)),a(this,Mn).createMediaStreamSource(e).connect(a(this,An))}start(){l.debug(`AudioActivityReporter: Starting audio activity reporter: ${a(this,ji)}`),a(this,Nr)&&Hn(a(this,Nr)),v(this,Nr,mc(()=>u(this,null,function*(){var t;if(!a(this,Co)||!a(this,ji))return;const{energy:e}=F(this,Bh,jv).call(this),i=F(t=tl,el,Wh).call(t,e);let r=.9;a(this,Ro)!==i&&a(this,Ro)?r=.9:i?r=.3:r=.5,v(this,Ns,(a(this,Ns)||0)*(1-r)+e*r)}),KD)),a(this,Lr)&&Hn(a(this,Lr)),v(this,Lr,mc(F(this,jh,Hv).bind(this),zD))}stop(){try{l.debug(`AudioActivityReporter: Stopping audio activity reporter: ${a(this,ji)}`),a(this,Nr)&&(Hn(a(this,Nr)),v(this,Nr,void 0)),a(this,Lr)&&(Hn(a(this,Lr)),v(this,Lr,void 0))}catch(t){}a(this,Po).reset()}};let qh=tl;Nr=new WeakMap,Lr=new WeakMap,ji=new WeakMap,Mn=new WeakMap,An=new WeakMap,Co=new WeakMap,Ns=new WeakMap,Po=new WeakMap,Vr=new WeakMap,Dn=new WeakMap,Ro=new WeakMap,Bh=new WeakSet,jv=function(){var t;a(this,Mn).state==="suspended"&&a(this,Mn).resume().then(()=>{l.debug("AudioActivityReporter: AudioContext forced resumed")}).catch(s=>{l.error("AudioActivityReporter: Error resuming AudioContext",s)});const e=new Float32Array(a(this,An).frequencyBinCount);a(this,An).getFloatTimeDomainData(e);const{energy:i,isVoice:r}=a(this,Po).processAudioChunk(e),n=F(t=tl,Hh,qv).call(t,i);return z.hasFeature(ie.ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS)&&l.debug(`AudioActivityReporter: producer: ${a(this,ji)}, energy: ${a(this,Ns)},
18
18
  slogScale: ${n}, isVoice: ${r}, minEnergy: ${a(this,Vr)},
19
- maxEnergy: ${a(this,Dn)}`),n===-1/0||i<1e-6?{energy:0,isVoice:!1}:((!a(this,Vr)||n<a(this,Vr))&&v(this,Vr,n),(!a(this,Dn)||n>a(this,Dn))&&v(this,Dn,n),{energy:(n-a(this,Vr))/(a(this,Dn)-a(this,Vr))*10||0,isVoice:r})},el=new WeakSet,jh=function(t){return t<5},Hh=new WeakSet,qv=function(t=a(this,Ns)){var e;if(!a(this,Hi)||!t){z.hasFeature(ie.ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS)&&l.debug(`AudioActivityReporter: No producerId or energy to report: ${a(this,Hi)}`);return}const i={producerId:a(this,Hi),energy:Math.round(t),silent:F(e=tl,el,jh).call(e,t)};v(this,Ro,i.silent),this.reportRequest(i)},qh=new WeakSet,Gv=function(t){const e=Math.log10(t);return Math.round(e)},f(Gh,el),f(Gh,qh);const ZD=(t=!1)=>{if("MediaStreamTrackGenerator"in window&&"AudioData"in window)try{const i=new window.MediaStreamTrackGenerator({kind:"audio"}),r=i.writable.getWriter(),n=48e3,s=128,o=1;let c=0,d=null;const h=()=>u(void 0,null,function*(){try{const g=new Float32Array(s*o),y=new window.AudioData({format:"f32",sampleRate:n,numberOfFrames:s,numberOfChannels:o,timestamp:c,data:g});c+=s/n*1e6,yield r.ready,yield r.write(y)}catch(g){d&&clearInterval(d),r.releaseLock(),i.writable.abort()}});d=window.setInterval(h,100);const p=new MediaStream([i]).getAudioTracks()[0];return p.addEventListener("ended",()=>{d&&clearInterval(d),r.releaseLock(),i.writable.abort()}),Object.assign(p,{fakeTracks:"fakeTracks:fakeAudioTrack"}),p.enabled=t,p}catch(i){}const e=window.AudioContext||window.webkitAudioContext;if(e)try{const i=new e;if(!i||i.state!=="running"||!i.destination)return;const r=i.createOscillator();r.frequency.value=0,r.type="sine";const n=i.createGain();n.gain.value=0,r.connect(n);const s=i.createMediaStreamDestination();n.connect(s),r.start();const o=s.stream.getAudioTracks()[0];return o?(Object.assign(o,{fakeTracks:"fakeTracks:fakeAudioTrack"}),o.enabled=t,o):void 0}catch(i){return}},eO=(t=!1)=>{var e,i;const r=new MediaStream().getVideoTracks()[0],n=document.createElement("canvas");n.height=(e=r==null?void 0:r.getSettings().height)!=null?e:720,n.width=(i=r==null?void 0:r.getSettings().width)!=null?i:1280;const s=n.getContext("2d");s.fillStyle="black",s.fillRect(0,0,n.width,n.height),setInterval(()=>{s.fillStyle="black",s.fillRect(0,0,n.width,n.height)},1e3);const o=n.captureStream().getVideoTracks()[0];return Object.assign(o,{fakeTracks:"fakeTracks:fakeVideoTrack"}),o.enabled=t,o};var tO=Object.defineProperty,iO=Object.getOwnPropertyDescriptor,me=(t,e,i,r)=>{for(var n=r>1?void 0:r?iO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&tO(e,i,n),n};const Qt=["video/VP9","video/VP8"];var il,rl,Ct,Y,Mo,ar,xt,Ls,Vs,xs,nl,Ci,xr,Ao,Us,Fs,Ut,Xt,On,Bs,$h,$v,Jh,Jv,Kh,Kv,sl,zh,Yh,Qh,zv,Xh,Yv,Zh,Qv,ep,Xv,gt,Pt,Ws,Do,tp,Zv,ip,ey,rp,ty;const iy=(Qh=class{constructor(t,e,i){f(this,On),f(this,$h),f(this,Jh),f(this,Kh),f(this,sl),f(this,Xh),f(this,Zh),f(this,ep),f(this,gt),f(this,Ws),f(this,tp),f(this,ip),f(this,rp),m(this,"context"),m(this,"authToken"),m(this,"e2ee"),f(this,il,void 0),f(this,rl,void 0),f(this,Ct,void 0),f(this,Y,void 0),f(this,Mo,void 0),f(this,ar,void 0),f(this,xt,void 0),f(this,Ls,void 0),f(this,Vs,void 0),f(this,xs,void 0),f(this,nl,void 0),f(this,Ci,null),f(this,xr,void 0),f(this,Ao,void 0),f(this,Us,void 0),f(this,Fs,void 0),f(this,Ut,void 0),f(this,Xt,void 0);var r,n;this.context=t;const{socket:s}=i;this.mediaJoined=!1,v(this,Us,new Map([["video/VP9",new Set],["video/VP8",new Set]])),v(this,Fs,new Map([["video/VP9",new Set],["video/VP8",new Set]])),v(this,ar,e),v(this,Ct,s),v(this,Ls,!1),v(this,Y,new YD(t,s,e)),v(this,xt,a(this,Y).events),v(this,xr,new Set),v(this,Ut,new Map),v(this,Vs,!1),v(this,xs,new dh),e===Ne.CF&&!navigator.isReactNative&&v(this,Xt,new Gh(a(this,Y).socketHandler.audioActivity.bind(a(this,Y).socketHandler))),this.e2ee=(n=(r=t.getValue("modules").e2ee)==null?void 0:r.enabled)!=null?n:!1,this.handleSocketEvents(),this.handleCallstatsEvents(),v(this,nl,su(()=>u(this,null,function*(){if(!a(this,On,Bs).mediaJoinAttempted)return;const{roomJoined:o}=yield this.joinRoom(a(this,rl),a(this,il),!0,!0);o&&(this.context.getValue("peerSessionStore").emit(P.RESET_PRODUCER_STATE),this.context.getValue("peerSessionStore").emit(P.ROOM_NODE_RECONNECTED))}),5e3,{leading:!0,maxWait:1e3}))}get peerId(){return this.context.getValue("peerId")}get mediaJoined(){return a(this,On,Bs).mediaJoined}set mediaJoined(t){a(this,On,Bs).mediaJoined=t}reset(){a(this,Y).closeAllProducers(),a(this,Y).closeAllConsumers(),a(this,Ut).clear(),a(this,xr).clear(),v(this,Ci,null),a(this,xs).stop(),a(this,Y).stopAllTransports(),a(this,Y).reset(),v(this,xs,new dh)}joinRoom(t,e){return u(this,arguments,function*(i,r,n=!1,s=!1,o={}){a(this,On,Bs).mediaJoinAttempted=!0,v(this,Ls,!0),n&&this.reset();try{return yield a(this,xs).push(()=>F(this,$h,$v).call(this,i,r,s,o),"joinRoom")}catch(c){return l.error("Error in room joining process",{error:c}),this.context.getValue("peerSessionStore").emit(P.ROOM_NODE_FAILED),{roomJoined:!1}}})}initializeConnection(t,e){return u(this,arguments,function*(i,r,n=!1,s={}){return a(this,Ci)?a(this,Ci):(v(this,Ci,(()=>u(this,null,function*(){try{yield F(this,sl,zh).call(this,i,r,n,s)}catch(o){throw v(this,Ci,null),o}}))()),a(this,Ci))})}getConsumers(){return a(this,Y).consumers}leaveRoom(){return u(this,null,function*(){var t;a(this,Y).stopAllTransports(),v(this,Vs,!1),a(this,On,Bs).mediaJoinAttempted=!1;const e={closeRoom:!1};try{const i=yield a(this,Ct).sendMessagePromise(a(this,xt).leaveRoom,Yw.toBinary(e));(t=UI.fromBinary(i.payload))!=null&&t.closed||l.warn("weird state on peer closed and should not happen")}catch(i){l.error("error on sending leave room request",{error:i})}J.callEnded(),S.destruct()})}activatePeers(t){return u(this,null,function*(){return this.createConsumers(t)})}createConsumers(t){return u(this,null,function*(){return t.length===0?Promise.resolve():a(this,Y).createConsumers(t)})}closeConsumers(t){return u(this,null,function*(){if(!t.length)return;const e=t.reduce((i,r)=>{const n=a(this,Y).producerIdToConsumerIdMap.get(r.producerId);return n?(i.push(n),i):(l.warn(`consumer not found in close consumers: ${r.producerId}`),i)},[]);yield a(this,Y).closeConsumers(e)})}_shareWebcam(t,e){return u(this,null,function*(){const i=e==="video/VP9"?be.WEBCAM:be.WEBCAM_BACKUP,r=F(this,gt,Pt).call(this,i);if(r){const p=yield r;if(a(this,Y).producers.has(p)){const g=a(this,Y).producers.get(p);if(!g.closed)return yield g.replaceTrack({track:t}),yield this.resumeWebcam(i),t;yield this.disableWebcam(e)}return this._shareWebcam(t,e)}const n=[e].concat(Qt.filter(p=>p!==e)),s=F(this,rp,ty).call(this,t,n),o=Kn(this.context,"disableSimulcast"),c=a(this,ar)===Ne.CF?ie.ENABLE_CF_SIMULCAST:ie.ENABLE_HIVE_SIMULCAST;!o&&z.hasFeature(c)?(l.info(`Simulcast enabled for SFU: ${a(this,ar)}`),s.encodings=L1(t)):l.info(`Simulcast disabled for webcam producer, SFU: ${a(this,ar)}`),z.hasFeature(ie.TRACK_HINT)&&(s.track.contentHint=z.getValue(ie.TRACK_HINT));const d=()=>{l.info("Disabling video due to the producer closure"),a(this,Ut).delete(i)},h=a(this,Y).createProducer(s,d);return F(this,Ws,Do).call(this,i,h.then(p=>p.id)),h.then(p=>p.track)})}shareWebcam(t){return u(this,null,function*(){var e;if(t===void 0)return null;const i=(e=z.getValue(ie.FORCE_VIDEO_CODEC))==null?void 0:e.toString();if(i)return l.debug(`Calling _shareWebcam with forced video codec: ${i}`),this._shareWebcam(t,i);const r=Qt.filter(n=>{var s,o;return((o=(s=a(this,Mo).sender)==null?void 0:s.video)==null?void 0:o.codecs.findIndex(c=>c.mimeType===n))>=0&&a(this,Fs).get(n).size>0});return r.length===0&&r.push(Qt[0]),yield Promise.all(r.map(n=>(l.debug(`Calling _shareWebcam with video codec: ${n}`),this._shareWebcam(t,n)))),t})}shareScreen(t){return u(this,null,function*(){const{video:e,audio:i}=t;if(e===void 0)return;const r={track:e,codecOptions:[{name:"VP8"}],appData:{screenShare:!0,e2ee:this.e2ee,supportsRemoteControl:Ie.isElectron()},stopTracks:!1},n=()=>{l.info("Disabling screenShare due to the producer closure"),a(this,Ut).delete(be.SCREENSHARE_VIDEO),a(this,Ut).delete(be.SCREENSHARE_AUDIO)},s=a(this,Y).createProducer(r,n);F(this,Ws,Do).call(this,be.SCREENSHARE_VIDEO,s.then(c=>c.id));let o;if(i){const c={track:i,codecOptions:[{name:"opus"}],appData:{screenShare:!0,e2ee:this.e2ee,supportsRemoteControl:Ie.isElectron()},stopTracks:!1,zeroRtpOnPause:a(this,ar)!==Ne.CF},d=()=>{};o=a(this,Y).createProducer(c,d),F(this,Ws,Do).call(this,be.SCREENSHARE_AUDIO,o.then(h=>h.id))}yield Promise.all([s,o||Promise.resolve()]),J.screenShareStart()})}shareMic(t){return u(this,null,function*(){try{if(t===void 0)throw new Vt("track undefined");const e=F(this,gt,Pt).call(this,be.MIC);if(e){const s=yield e;if(a(this,Y).producers.has(s)){const o=a(this,Y).producers.get(s);if(!o.closed){yield o.replaceTrack({track:t}),yield this.resumeMic(),a(this,Xt)&&(a(this,Xt).audioTrack=t,a(this,Xt).producerId=s,a(this,Xt).start());return}yield a(this,Y).closeProducer(s,{stopTrack:!1})}yield this.shareMic(t);return}const i=F(this,ip,ey).call(this,t),r=()=>{a(this,Ut).delete(be.MIC)},n=a(this,Y).createProducer(i,r);F(this,Ws,Do).call(this,be.MIC,n.then(s=>s.id)),yield n.then(s=>{a(this,Xt)&&(a(this,Xt).audioTrack=s.track,a(this,Xt).producerId=s.id,a(this,Xt).start())})}catch(e){throw new w(e)}})}pauseMic(){return u(this,null,function*(){var t;const e=yield F(this,gt,Pt).call(this,be.MIC),i=a(this,Y).producers.get(e);if(!i){l.error("pauseMic::could_not_find_mic_producer");return}if(i.paused){l.info("pauseMic::mic_producer_already_paused");return}i.pause(),(t=a(this,Xt))==null||t.stop();const r={producerId:i.id,pause:!0};a(this,Ct).sendMessage(a(this,xt).toggleProducer,Wc.toBinary(r))})}pauseWebcam(){return u(this,null,function*(){const t=yield F(this,gt,Pt).call(this,be.WEBCAM),e=yield F(this,gt,Pt).call(this,be.WEBCAM_BACKUP),i=a(this,Y).producers.get(t),r=a(this,Y).producers.get(e);if(!i&&!r){l.error("pauseWebcam::could_not_find_webcam_producer");return}const n=s=>{const o={producerId:s.id,pause:!0};a(this,Ct).sendMessage(a(this,xt).toggleProducer,Wc.toBinary(o))};i&&(i.pause(),n(i)),r&&(r.pause(),n(r))})}resumeMic(){return u(this,null,function*(){const t=yield F(this,gt,Pt).call(this,be.MIC),e=a(this,Y).producers.get(t);if(!e){l.error("resumeMic::could_not_find_mic_producer");return}if(!e.pause){l.info("resumeMic::mic_producer_already_resumed");return}e.resume(),e.appData.e2ee&&this.context.getValue("peerSessionStore").emit(P.E2EE_ACTIVE_PRODUCER,e);const i={producerId:e.id,pause:!1};a(this,Ct).sendMessage(a(this,xt).toggleProducer,Wc.toBinary(i))})}resumeWebcam(){return u(this,arguments,function*(t=be.WEBCAM){const e=yield F(this,gt,Pt).call(this,t),i=a(this,Y).producers.get(e);if(!i){l.error("resumeWebcam::could_not_find_webcam_producer");return}if(!i.paused){l.info("resumeWebcam::webcam_producer_already_resumed");return}i.resume(),i.appData.e2ee&&this.context.getValue("peerSessionStore").emit(P.E2EE_ACTIVE_PRODUCER,i);const r={producerId:i.id,pause:!1};a(this,Ct).sendMessage(a(this,xt).toggleProducer,Wc.toBinary(r))})}disableWebcam(t){return u(this,null,function*(){const e=t==="video/VP9"?be.WEBCAM:be.WEBCAM_BACKUP,i=yield F(this,gt,Pt).call(this,e);F(this,tp,Zv).call(this,e),i&&(yield a(this,Y).closeProducer(i))})}disableMic(){return u(this,null,function*(){var t;const e=yield F(this,gt,Pt).call(this,be.MIC);e&&(yield a(this,Y).closeProducer(e)),(t=a(this,Xt))==null||t.stop(),a(this,Ut).delete(be.MIC)})}disableScreenShare(){return u(this,null,function*(){l.info("screen_sharing_stopped"),J.screenShareStop();const t=yield F(this,gt,Pt).call(this,be.SCREENSHARE_VIDEO),e=yield F(this,gt,Pt).call(this,be.SCREENSHARE_AUDIO);t&&(yield a(this,Y).closeProducer(t)),e&&(yield a(this,Y).closeProducer(e)),a(this,xr).clear(),a(this,Ut).delete(be.SCREENSHARE_VIDEO),a(this,Ut).delete(be.SCREENSHARE_AUDIO)})}muteSelf(){return u(this,null,function*(){this.pauseMic()})}unmuteSelf(){return u(this,null,function*(){})}resetVideoProducers(t,e){return u(this,null,function*(){if(t){const i=yield F(this,gt,Pt).call(this,be.WEBCAM),r=yield F(this,gt,Pt).call(this,be.WEBCAM_BACKUP);yield a(this,Y).closeProducer(i,{stopTrack:!1}),yield a(this,Y).closeProducer(r,{stopTrack:!1}),this.shareWebcam(t)}if(e){const i=yield F(this,gt,Pt).call(this,be.SCREENSHARE_VIDEO);yield a(this,Y).closeProducer(i,{stopTrack:!1}),this.shareScreen({video:e})}})}changeDisplayName(t,e){return u(this,null,function*(){const i={displayName:t,participantId:e!=null?e:this.peerId};if(!(yield a(this,Y).socketHandler.changeDisplayName(i)))throw new Error("failed to change display name!")})}kick(t){const e={peerIds:[t]};a(this,Y).socketHandler.kickPeer(e)}kickAll(){a(this,Y).socketHandler.kickAll()}muteAll(t){return u(this,null,function*(){if(!(yield a(this,Y).socketHandler.hostControlForAll("audio")))throw new Error("failed to mute all participant")})}muteAllVideo(){return u(this,null,function*(){if(!(yield a(this,Y).socketHandler.hostControlForAll("video")))throw new Error("failed to mute all video participant")})}disableAudio(t){return u(this,null,function*(){if(!(yield a(this,Y).socketHandler.hostControlForPeer(t,"audio")))throw new Error("failed to mute given participant")})}disableVideo(t){return u(this,null,function*(){if(!(yield a(this,Y).socketHandler.hostControlForPeer(t,"video")))throw new Error("failed to mute video of given participant")})}pinPeer(t){return u(this,null,function*(){const e={participantId:t!=null?t:""};try{yield a(this,Ct).sendMessagePromise(a(this,xt).globalPinPeer,lI.toBinary(e))}catch(i){l.error("Error in pinning peer:",{error:i})}})}validateScreenShare(t){return this.peerId===t.peerId&&a(this,Y).producers.get(t.producerId)&&a(this,xr).add(t.consumerPeerId),a(this,xr).size}switchConsumersToLayer(t,e){return u(this,null,function*(){const i=t.map(r=>this.getConsumers().get(r));a(this,Y).switchConsumersToLayer(i,e)})}handleSocketEvents(){return u(this,null,function*(){a(this,Ct).on(a(this,xt).peerProducerCreateBroadcast,({payload:t})=>{var e,i;if(this.mediaJoined)try{const{participantId:r,producerState:n}=mC.fromBinary(t);if(r===this.peerId)return;if(n!=null&&n.mimeType||(n.mimeType=n.kind===Li.AUDIO?"audio/opus":"video/VP8"),n.kind===Li.VIDEO&&!n.screenShare&&((i=(e=a(this,Mo).receiver)==null?void 0:e.video)==null?void 0:i.codecs.findIndex(s=>s.mimeType===Qt[0]))>=0&&a(this,Us).get(Qt[0]).has(r)&&n.mimeType!==Qt[0]){l.warn(`Ignoring producer: ${n.producerId}`);return}l.info(`producer created broadcast: ${r}, producer state: ${n}`),this.context.getValue("peerSessionStore").emit(P.NEW_PRODUCER,{peerId:r,producer:j(L({},n),{kind:n.kind===Li.AUDIO?"audio":"video",producingPeerId:r})})}catch(r){l.error("error in peer-producer-create-broadcast",{error:r})}}),a(this,Ct).on(a(this,xt).peerProducerToggleBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e,initiatorParticipantId:i,producerState:{kind:r,pause:n,producerId:s}}=rf.fromBinary(t),o=r===Li.AUDIO?"audio":"video";if(l.info(`producer toggle broadcast: ${e}, producerId: ${s}, kind:${o}, paused:${n} payload: ${JSON.stringify(rf.fromBinary(t))}`),e===this.peerId&&i!==this.peerId&&n&&this.context.getValue("peerSessionStore").emit(o==="audio"?P.MUTE_SELF:P.MUTE_SELF_VIDEO),e===this.peerId)return;this.context.getValue("peerSessionStore").emit(P.PRODUCER_TOGGLE,{peerId:e,producerId:s,paused:n,kind:o}),Array.from(this.getConsumers().values()).filter(c=>c.producerId===s).forEach(c=>{c.paused!==n&&(l.debug(`consumer state mismatched for ${c.id}. updating consumer pause state ${c.paused} to ${n}`),n?(c.pause(),this.context.getValue("peerSessionStore").emit(P.CONSUMER_PAUSED,{id:c.id})):(c.resume(),this.context.getValue("peerSessionStore").emit(P.CONSUMER_RESUMED,{id:c.id})))})}catch(e){l.error("error in producer toggle broadcast handler",{error:e})}}),a(this,Ct).on(a(this,xt).peerLeaveBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e}=hu.fromBinary(t);if(e===this.peerId)return;l.info(`peer left broadcast:${e}`),a(this,xr).delete(e),a(this,Y).consumers.forEach(i=>{i.peerId===e&&i.close()}),this.context.getValue("peerSessionStore").emit(P.PEER_CLOSED,{id:e})}catch(e){l.error("error in peer left broadcast",{error:e})}}),a(this,Ct).on(a(this,xt).peerProducerCloseBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e,producerState:{producerId:i}}=vC.fromBinary(t);if(e===this.peerId)return;l.info(`producer closed broadcast:${e}`),this.context.getValue("peerSessionStore").emit(P.PRODUCER_CLOSED,{peerId:e,producerId:i});const r=a(this,Y).producerIdToConsumerIdMap.get(i);if(!r){l.warn(`no consumer found for producer:${i}`);return}l.info(`closing consumer ${r}, producer id: ${i}`),a(this,Y).closeConsumer(r).then(()=>{l.info(`closed consumer: ${r}`),a(this,Y).producerIdToConsumerIdMap.delete(i),this.context.getValue("peerSessionStore").emit(P.CONSUMER_CLOSED,{id:r})}).catch(n=>{l.error("error closing consumer",{error:n})})}catch(e){l.error("error on producer close broadcast",{error:e})}}),a(this,Ct).on(a(this,xt).mediaRoomTerminationBroadcastResponse,()=>{!this.mediaJoined&&!a(this,Ls)&&!a(this,Vs)||(l.warn("media hub termination broadcast received, rejoining room"),this.context.getValue("peerSessionStore").emit(P.ROOM_NODE_DISCONNECTED),a(this,nl).call(this))})})}handleCallstatsEvents(){J.onConsumerScore(t=>{t.forEach((e,i)=>{const r=a(this,Y).consumers.get(i);r&&this.context.getValue("peerSessionStore").emit(P.CONSUMER_SCORE_UPDATE,{id:i,kind:r.kind,peerId:r.peerId,score:e.score,scoreStats:e})})}),J.onProducerScore(t=>{t.forEach((e,i)=>{const r=Array.from(a(this,Y).producers.values()).find(n=>n.id===i);r&&this.context.getValue("peerSessionStore").emit(P.PRODUCER_SCORE_UPDATE,{id:i,kind:r.kind,appData:r.appData,score:e.score,scoreStats:e})})})}handlePeerCapabilities(t,e){var i,r,n,s;for(let o=0;o<=Qt.length;o+=1){const c=Qt[o];if(((r=(i=e==null?void 0:e.receiver)==null?void 0:i.video)==null?void 0:r.codecs.findIndex(d=>d.mimeType===c))>=0||o===Qt.length-1){a(this,Fs).get(c).add(t);break}}for(let o=0;o<=Qt.length;o+=1){const c=Qt[o];if(((s=(n=e==null?void 0:e.sender)==null?void 0:n.video)==null?void 0:s.codecs.findIndex(d=>d.mimeType===c))>=0||o===Qt.length-1){a(this,Us).get(c).add(t);break}}}handlePeerLeaving(t){z.hasFeature(ie.FORCE_VIDEO_CODEC)||(a(this,Us).forEach(e=>e.delete(t)),a(this,Fs).forEach((e,i)=>{e.delete(t),!(e.size!==0||i===Qt[0])&&this.disableWebcam(i)}))}},il=new WeakMap,rl=new WeakMap,Ct=new WeakMap,Y=new WeakMap,Mo=new WeakMap,ar=new WeakMap,xt=new WeakMap,Ls=new WeakMap,Vs=new WeakMap,xs=new WeakMap,nl=new WeakMap,Ci=new WeakMap,xr=new WeakMap,Ao=new WeakMap,Us=new WeakMap,Fs=new WeakMap,Ut=new WeakMap,Xt=new WeakMap,On=new WeakSet,Bs=function(){return this.context.getValue("connectionHandler")},$h=new WeakSet,$v=function(t,e,i,r){return u(this,null,function*(){v(this,rl,t);try{return a(this,Ci)?yield a(this,Ci):yield F(this,sl,zh).call(this,t,e,i,r),F(this,Kh,Kv).call(this,e),{roomJoined:yield F(this,Jh,Jv).call(this)}}catch(n){return l.error("Failed to complete room join",{error:n}),{roomJoined:!1}}finally{v(this,Ci,null)}})},Jh=new WeakSet,Jv=function(){return u(this,null,function*(){try{this.mediaJoined=!0;const{roomState:t}=yield a(this,Y).socketHandler.notifySelfJoinComplete();return v(this,il,t.roomUuid),v(this,Vs,!0),v(this,Ls,!1),!0}catch(t){return l.error("Error completing room join",{error:t}),this.mediaJoined=!1,!1}})},Kh=new WeakSet,Kv=function(t){navigator.product!=="ReactNative"&&setTimeout(()=>{try{const e={userId:this.context.getValue("userId"),peerId:this.peerId,roomUUID:t,roomViewType:"groupCall",deviceInfo:j(L({},Ie.getDeviceInfo()),{userAgent:navigator.userAgent,memory:navigator.deviceMemory,cpus:navigator.hardwareConcurrency}),sdkName:this.context.getValue("sdkName"),sdkVersion:this.context.getValue("sdkVersion"),metaData:{},permissions:{}};J.roomJoined(e)}catch(e){l.error("Error reporting room joined analytics",{error:e})}},0)},sl=new WeakSet,zh=function(t,e,i,r){return u(this,null,function*(){var n,s;try{(s=a(this,Ao))!=null||v(this,Ao,F(n=iy,Yh,zv).call(n));const o=F(this,Xh,Yv).call(this);yield F(this,Zh,Qv).call(this,t,e,i,o),yield a(this,Y).setupTransports({send:!0,recv:!0}),yield F(this,ep,Xv).call(this,r)}catch(o){throw l.error("Failed to initialize connection",{error:o}),o}})},Yh=new WeakSet,zv=function(){const{ipInfo:t}=ht();if(!(t!=null&&t.loc))return;const[e,i]=t.loc.split(",").map(parseFloat);return{latitude:e,longitude:i}},Xh=new WeakSet,Yv=function(){var t;const e=(t=z.getValue(ie.FORCE_VIDEO_CODEC))==null?void 0:t.toString(),i=xD(e);return v(this,Mo,i),i},Zh=new WeakSet,Qv=function(t,e,i,r){return u(this,null,function*(){yield kv((n,s)=>u(this,null,function*(){if(!a(this,Ct).isConnected){s(new Error("Socket is not connected"));return}n>0&&l.warn("Retry: send joinRoom message",{debuggingHint:`Retry attempt ${n}`});try{yield a(this,Y).socketHandler.joinRoom(e,t,r,i,a(this,Ao))}catch(o){throw l.error("Failed to send joinRoom message after retries",{error:o}),o}}),{delayTime:1e3,strategy:"exponential",maxRetryCount:z.hasFeature(ie.ENABLE_HIVE_INFINITE_RETRIES)?1/0:3})})},ep=new WeakSet,Xv=function(t){return u(this,null,function*(){if(!(a(this,ar)===Ne.HIVE||!z.hasFeature(ie.PRECREATE_PRODUCERS)||!t))try{const e=[];if(t.canProduceVideo===H.Allowed&&e.push(this.shareWebcam(eO(!0))),t.canProduceAudio===H.Allowed){const i=ZD(!0);i&&e.push(this.shareMic(i))}e.length>0&&(yield Promise.all(e))}catch(e){l.warn("Failed to precreate producers",{error:e})}})},gt=new WeakSet,Pt=function(t){return a(this,Ut).get(t)},Ws=new WeakSet,Do=function(t,e){return a(this,Ut).set(t,e)},tp=new WeakSet,Zv=function(t){return a(this,Ut).delete(t)},ip=new WeakSet,ey=function(t){return{track:t,encodings:[{priority:"high"}],codecOptions:[{name:"opus"}],appData:{e2ee:this.e2ee},stopTracks:!1,zeroRtpOnPause:a(this,ar)!==Ne.CF}},rp=new WeakSet,ty=function(t,e){return{track:t,codecOptions:e?e.map(i=>({name:i.split("/")[1]})):[{name:"VP8"}],appData:{screenShare:!1,e2ee:this.e2ee},stopTracks:!1}},f(Qh,Yh),Qh);let le=iy;me([S.trace("MediaNodeClient.reset",{country:S.location.country})],le.prototype,"reset",1),me([S.trace("MediaNodeClient.joinRoom")],le.prototype,"joinRoom",1),me([S.trace("MediaNodeClient.leaveRoom")],le.prototype,"leaveRoom",1),me([S.trace("MediaNodeClient.activatePeers")],le.prototype,"activatePeers",1),me([S.trace("MediaNodeClient.createConsumers")],le.prototype,"createConsumers",1),me([S.trace("MediaNodeClient.closeConsumers")],le.prototype,"closeConsumers",1),me([S.trace("MediaNodeClient._shareWebcam")],le.prototype,"_shareWebcam",1),me([S.trace("MediaNodeClient.shareWebcam")],le.prototype,"shareWebcam",1),me([S.trace("MediaNodeClient.shareScreen")],le.prototype,"shareScreen",1),me([S.trace("MediaNodeClient.shareMic")],le.prototype,"shareMic",1),me([S.trace("MediaNodeClient.pauseMic")],le.prototype,"pauseMic",1),me([S.trace("MediaNodeClient.pauseWebcam")],le.prototype,"pauseWebcam",1),me([S.trace("MediaNodeClient.resumeMic")],le.prototype,"resumeMic",1),me([S.trace("MediaNodeClient.resumeWebcam")],le.prototype,"resumeWebcam",1),me([S.trace("MediaNodeClient.disableWebcam")],le.prototype,"disableWebcam",1),me([S.trace("HiveClient.disableMic")],le.prototype,"disableMic",1),me([S.trace("HiveClient.disableScreenShare")],le.prototype,"disableScreenShare",1),me([S.trace("MediaNodeClient.muteSelf")],le.prototype,"muteSelf",1),me([S.trace("MediaNodeClient.resetVideoProducers")],le.prototype,"resetVideoProducers",1),me([S.trace("MediaNodeClient.changeDisplayName")],le.prototype,"changeDisplayName",1),me([S.trace("MediaNodeClient.kickPeer")],le.prototype,"kick",1),me([S.trace("MediaNodeClient.kickAllPeers")],le.prototype,"kickAll",1),me([S.trace("MediaNodeClient.muteAll")],le.prototype,"muteAll",1),me([S.trace("MediaNodeClient.muteAllVideo")],le.prototype,"muteAllVideo",1),me([S.trace("MediaNodeClient.disableAudio")],le.prototype,"disableAudio",1),me([S.trace("MediaNodeClient.disableVideo")],le.prototype,"disableVideo",1),me([S.trace("MediaNodeClient.pinPeer")],le.prototype,"pinPeer",1),me([S.trace("MediaNodeClient.validateScreenShare")],le.prototype,"validateScreenShare",1);function ry(t,e,i){const r=t.getValue("roomNodeClient");if(r){if(r)return r;throw new Error("Room node client already set up.")}const n=new le(t,e,i);return t.setValue("roomNodeClient",n),n}function ny(t){const e=t.getValue("roomNodeClient");try{e==null||e.leaveRoom()}catch(i){l.error("roomNodeClient::cleanupRoomNodeClient")}t.setValue("roomNodeClient",void 0)}var rO=Object.defineProperty,nO=Object.getOwnPropertyDescriptor,Nn=(t,e,i,r)=>{for(var n=r>1?void 0:r?nO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&rO(e,i,n),n},Ln,qi,ue,Ft,Zt,sy;const ay=(sy=class{constructor(t,e,i,r){f(this,Ft),m(this,"self"),m(this,"authToken"),f(this,Ln,void 0),m(this,"viewType"),f(this,qi,void 0),f(this,ue,void 0);const{socket:n}=i,s=t.getValue("authToken");this.self=e,v(this,ue,t),this.viewType=r,this.authToken=s,v(this,Ln,n),v(this,qi,i),e.config.viewType!==Rt.Chat&&this.setupEvents()}get peerId(){return a(this,ue).getValue("peerId")}get mediaJoined(){return a(this,ue).getValue("connectionHandler").mediaJoined}static init(t,e,i,r,n){return u(this,null,function*(){const s=ht(),o=t.getValue("peerId"),c=!!t.getValue("cachedUserDetails"),d=yield tt.__init__(t,i,r,n,n.name,c);if(navigator.product!=="ReactNative"){const h=!z.hasFeature(ie.PRECALL_BANDWIDTH_TEST);setTimeout(()=>u(this,null,function*(){const p=yield d.getAllDevices();l.info("populated_full_device_list",{devices:JSON.stringify(p)}),J.devices("AUDIO",p==null?void 0:p.filter(g=>g.kind==="audioinput")),J.devices("VIDEO",p==null?void 0:p.filter(g=>g.kind==="videoinput")),J.devices("SPEAKER",p==null?void 0:p.filter(g=>g.kind==="audiooutput")),l.info("Callstats:: initializing");try{yield J.initialize({peerId:o,engineName:Ie.getDeviceInfo().engineName,env:t.getValue("env"),iceServers:yield s.getICEServers(),apiBase:t.getValue("apiBase"),flags:z.getAllFlags(),logger:l,apiHostnames:Ug(t),skipConnectivityChecks:h}),l.info("Callstats:: initialized")}catch(g){l.error("Callstats:: initialization failed",{error:g})}}),0)}else l.info("Callstats:: Skipped initialization due to navigator product being ReactNative.");return new ay(t,d,e,n.viewType)})}shareMediaTracks(){return u(this,null,function*(){var t;const{audioTrack:e,videoTrack:i,permissions:r,audioEnabled:n,videoEnabled:s,screenShareEnabled:o,screenShareTracks:c}=this.self;if(r.canProduceAudio===H.Allowed&&n)try{yield a(this,Ft,Zt).shareMic(e),this.self.audioEnabled||a(this,Ft,Zt).pauseMic()}catch(d){this.self.disableAudio()}if(r.canProduceVideo===H.Allowed&&s)try{const d=yield a(this,Ft,Zt).shareWebcam(i);d&&d.id!==i.id&&z.hasFeature(ie.EXP_RESHARE)&&(yield a(this,Ft,Zt).shareWebcam(d)),this.self.videoEnabled||a(this,Ft,Zt).pauseWebcam()}catch(d){this.self.disableVideo()}if(r.canProduceScreenshare===H.Allowed&&o)try{yield(t=a(this,Ft,Zt))==null?void 0:t.shareScreen({video:c.video,audio:c.audio})}catch(d){this.self.disableScreenShare()}})}kickHandler(t){return u(this,null,function*(){let e="kicked";(t==null?void 0:t.kickType)==="kickAll"&&(e="ended"),this.leaveRoom(e)})}waitlistedHandler(){l.info("SelController.waitlisted"),this.self.waitlistStatus="waiting",this.self.roomState="waitlisted",this.self.emit("waitlisted")}waitlistAcceptHandler(){if(l.info("SelController.waitlistAccepted"),this.self.waitlistStatus==="accepted"){l.warn("SelfController.WAITLIST_ACCEPTED.UserAlreadyAccepted");return}this.self.waitlistStatus="accepted",this.joinRoom()}waitlistRejectedHandler(){if(l.info("SelfController.waitlistRejected"),this.self.waitlistStatus==="rejected"){l.warn("SelfController.WAITLIST_REJECTED.UserAlreadyRejected");return}this.self.waitlistStatus="rejected",this.leaveRoom("rejected")}resetSelf(t){return u(this,null,function*(){J.callEnded(),a(this,Ft,Zt).reset(),t&&(yield this.joinRoom(t))})}setupEvents(){a(this,ue).getValue("peerSessionStore").on(P.RESET_PRODUCER_STATE,()=>u(this,null,function*(){this.mediaJoined&&this.shareMediaTracks()})),a(this,ue).getValue("peerSessionStore").on(P.ROOM_NODE_RECONNECTED,()=>{this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:!0})}),a(this,ue).getValue("peerSessionStore").on(P.ROOM_NODE_DISCONNECTED,()=>{this.self.roomState!=="disconnected"&&(this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"}))}),a(this,ue).getValue("peerSessionStore").on(P.ROOM_NODE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),a(this,ue).getValue("peerSessionStore").on(P.SOCKET_SERVICE_RECONNECTED,({wasJoinAttempted:t})=>{t===!1&&(this.self.roomState="init"),this.resetSelf(t)}),a(this,ue).getValue("peerSessionStore").on(P.SOCKET_SERVICE_DISCONNECTED,({joinAttempted:t})=>{if(this.self.roomState==="disconnected")return;let{peerId:e}=this;t&&z.hasFeature(ie.REFRESH_ID_ON_DISCONNECTION)&&(e=jn()),a(this,Ln).updateURL(e),S.resetPeerId(e),ht().setHeader("dyte-tracing-id",e),en.remapContext(e,a(this,ue)),this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"})}),a(this,ue).getValue("peerSessionStore").on(P.SOCKET_SERVICE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),a(this,qi).on(B.waitingRoomRequestAccepted,()=>{this.waitlistAcceptHandler()}),a(this,qi).on(Jc.updateUserPreset,t=>{t.updatePeersPresets.forEach(e=>{e.userIds===this.self.userId&&a(this,ue).getValue("peerSessionStore").emit(P.UPDATE_PERMISSIONS,e.patch)})}),a(this,qi).on(B.waitingRoomRequestDenied,()=>{this.waitlistRejectedHandler()}),a(this,qi).on(B.kick,()=>{this.kickHandler({kickType:"kick"})}),a(this,qi).on(B.kickAll,()=>{this.kickHandler({kickType:"kickAll"})}),a(this,ue).getValue("peerSessionStore").onAsync(P.JOIN_MEDIA_ROOM,this.joinMediaRoom.bind(this)),a(this,ue).getValue("peerSessionStore").on(P.PRODUCER_SCORE_UPDATE,({score:t,kind:e,appData:i,scoreStats:r})=>{var n;const s=(n=i==null?void 0:i.screenShare)!=null?n:!1;this.self.emit("mediaScoreUpdate",{kind:e,isScreenshare:s,score:t,participantId:this.self.id,scoreStats:r})}),a(this,ue).getValue("peerSessionStore").on(P.MUTE_SELF,()=>u(this,null,function*(){this.self.audioEnabled&&(yield this.self.disableAudio(),J.audioOff())})),a(this,ue).getValue("peerSessionStore").on(P.MUTE_SELF_VIDEO,()=>u(this,null,function*(){this.self.videoEnabled&&(yield this.self.disableVideo(),J.videoOff())})),a(this,ue).getValue("peerSessionStore").onAsync(P.LEAVE_MEDIA_ROOM,this.leaveMediaRoom.bind(this)),a(this,ue).getValue("peerSessionStore").on(P.PIP_HANGUP,this.leaveRoom.bind(this))}joinRoom(t=!1){return u(this,null,function*(){try{const{peer:e}=yield a(this,qi).joinRoom(this.self);a(this,qi).socket.flush();const i=Fu(e.stageType);if(a(this,ue).setValue("stageStatus",i,!1),e.waitlisted){this.waitlistedHandler();return}yield this.joinMediaRoom(t),a(this,ue).notify("stageStatus")}catch(e){throw l.error("Error in joinRoom",{error:e}),e}})}leaveRoom(t="left"){return u(this,null,function*(){var e,i;if(t==="rejected"){try{(e=a(this,Ln))==null||e.disconnect()}catch(r){l.error("SelfController::leaveRoom::socketDisconnect")}this.self.roomState=t,this.self.emit("roomLeft",{state:t});return}this.self.setIsPinned(!1),a(this,ue).setValue("stageStatus","OFF_STAGE",!1),yield this.leaveMediaRoom(t),a(this,ue).notify("stageStatus");try{(i=a(this,Ln))==null||i.disconnect()}catch(r){l.error("SelfController::leaveRoom::socketDisconnect")}ny(a(this,ue)),ah.cleanup(),this.self.roomState=t,this.self.emit("roomLeft",{state:t})})}joinMediaRoom(t=!1){return u(this,null,function*(){var e,i;const{peerId:r,viewType:n,meetingId:s,stageStatus:o,roomNodeOptions:c}=a(this,ue).getAllValues(),{sfu:d}=c;try{if(n===Rt.Livestream){if(o!=="ON_STAGE"){this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:t});return}ry(a(this,ue),d,{socket:a(this,Ln),peerId:r})}const{canProduceAudio:h,canProduceVideo:p,canProduceScreenshare:g}=this.self.permissions,{roomJoined:y}=(i=yield(e=a(this,Ft,Zt))==null?void 0:e.joinRoom(this.self.name,s,t,t,{canProduceAudio:h,canProduceVideo:p,canProduceScreenshare:g}))!=null?i:{};if(!y)return;o==="ON_STAGE"&&(yield this.shareMediaTracks()),this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:t})}catch(h){throw l.error("Error:SelfController.mediaRoomJoin",{error:h}),new w("Error: could not join media room","0002")}})}leaveMediaRoom(t){return u(this,null,function*(){const e=a(this,ue).getValue("viewType");t!=="connected-meeting"&&(yield this.cleanupSelf()),!(t==="stageLeft"&&e===Rt.Webinar)&&a(this,Ft,Zt)&&(a(this,Ft,Zt).mediaJoined&&t!=="disconnected"&&(yield a(this,Ft,Zt).leaveRoom()),!(t==="stageLeft"&&e===Rt.Livestream)&&(a(this,Ft,Zt).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()})}},Ln=new WeakMap,qi=new WeakMap,ue=new WeakMap,Ft=new WeakSet,Zt=function(){return a(this,ue).getValue("roomNodeClient")},sy);let Ur=ay;Nn([S.trace("SelfController.resetSelf")],Ur.prototype,"resetSelf",1),Nn([S.trace("SelfController.setupEvents")],Ur.prototype,"setupEvents",1),Nn([S.trace("SelfController.joinRoom")],Ur.prototype,"joinRoom",1),Nn([S.trace("SelfController.leaveRoom")],Ur.prototype,"leaveRoom",1),Nn([S.trace("SelfController.joinMediaRoom")],Ur.prototype,"joinMediaRoom",1),Nn([S.trace("SelfController.leaveMediaRoom")],Ur.prototype,"leaveMediaRoom",1),Nn([S.trace("SelfController.init")],Ur,"init",1);var al;class sO{constructor(e){f(this,al,void 0),v(this,al,e)}on(e,i){let r;e===B.roomPeerCount?r=af.fromBinary.bind(af):r=bf.fromBinary.bind(bf),a(this,al).on(e,({payload:n})=>{const s=r(n);return i(s)})}}al=new WeakMap;var ol;class aO{constructor(e){f(this,ol,void 0),v(this,ol,e)}on(e,i){let r,n;switch(e){case B.transcript:{r=pu.fromBinary.bind(pu),n=pu.create();break}default:{l.debug("AISocketHandler switch case hit default, event not accounted for.");break}}a(this,ol).on(e,({payload:s})=>{let o=n;try{o=r(s)}catch(c){l.error("chatSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}}ol=new WeakMap;var oO=Object.defineProperty,cO=Object.getOwnPropertyDescriptor,np=(t,e,i,r)=>{for(var n=r>1?void 0:r?cO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&oO(e,i,n),n},Fr;class cl{constructor(e){f(this,Fr,void 0),v(this,Fr,e)}getPolls(){return a(this,Fr).sendMessagePromise(Xi.getPolls)}createPoll(e,i,r=!1,n=!1){const s={anonymous:r,hideVotes:n,question:e,options:i};return a(this,Fr).sendMessage(Xi.createPoll,sA.toBinary(s))}votePoll(e,i){const r={index:i,pollId:e};return a(this,Fr).sendMessage(Xi.votePoll,oA.toBinary(r))}on(e,i){let r,n;switch(e){case Xi.updatePoll:case Xi.createPoll:case Xi.votePoll:{r=Iu.fromBinary.bind(Iu),n=Iu.create();break}}a(this,Fr).on(e,({payload:s})=>{let o=n;try{o=r(s)}catch(c){l.error("pollSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}removeListeners(e){a(this,Fr).removeListeners(e)}}Fr=new WeakMap,np([S.trace("PollSocketHandler.getPolls")],cl.prototype,"getPolls",1),np([S.trace("PollSocketHandler.createPoll")],cl.prototype,"createPoll",1),np([S.trace("PollSocketHandler.votePoll")],cl.prototype,"votePoll",1);var ei;class dO{constructor(e){f(this,ei,void 0),v(this,ei,e)}getStageRequests(){return u(this,null,function*(){const{payload:e}=yield a(this,ei).sendMessagePromise(B.getStageRequests);return e?wu.fromBinary(e):{stageRequests:[]}})}requestAccess(){a(this,ei).sendMessage(B.requestStageAccess)}cancelRequestAccess(){a(this,ei).sendMessage(B.cancelStageRequest)}grantAccess(e){return u(this,null,function*(){const i={userIds:e};a(this,ei).sendMessage(B.grantStageAccess,zM.toBinary(i))})}denyAccess(e){return u(this,null,function*(){const i={userIds:e};a(this,ei).sendMessage(B.denyStageAccess,QM.toBinary(i))})}joinStage(){return a(this,ei).sendMessagePromise(B.joinStage,void 0,void 0,B.peerStageStatusUpdate)}leaveStage(e){const i={userIds:[e]};return a(this,ei).sendMessagePromise(B.leaveStage,wf.toBinary(i),void 0,B.peerStageStatusUpdate)}kick(e){const i={userIds:e};return a(this,ei).sendMessagePromise(B.leaveStage,wf.toBinary(i))}on(e,i){let r;switch(e){case B.grantStageAccess:case B.denyStageAccess:{r=void 0;break}case B.getStagePeers:{r=_f.fromBinary.bind(_f);break}case B.getStageRequests:case B.requestStageAccess:case B.cancelStageRequest:{r=wu.fromBinary.bind(wu);break}case B.peerStageStatusUpdate:{r=sf.fromBinary.bind(sf);break}}a(this,ei).on(e,({payload:n,id:s})=>{if(!n||!r)return i(void 0,s);const o=r(n);return i(o,s)})}getPeerInfo(e){return u(this,null,function*(){const i=yield a(this,ei).sendMessagePromise(B.getPeerInfo,df.toBinary({peerId:e}));return Xn.fromBinary(i.payload)})}}ei=new WeakMap;var it;class lO{constructor(e){f(this,it,void 0),v(this,it,e)}addPlugin(e,i){a(this,it).sendMessage(K.addPlugin,hM.toBinary({pluginId:e,staggered:i}))}removePlugin(e){a(this,it).sendMessage(K.removePlugin,mM.toBinary({pluginId:e,staggered:!1}))}getActivePlugins(){return u(this,null,function*(){const{payload:e}=yield a(this,it).sendMessagePromise(K.getPlugins);return e?xM.fromBinary(e):{plugins:[]}})}customPluginEventToRoom(e,i,r){const n={pluginId:e,pluginData:new TextEncoder().encode(JSON.stringify(i))};a(this,it).sendMessage(K.customPluginEventToRoom,_M.toBinary(n),r)}customPluginEventToPeers(e,i,r,n){const s={pluginId:e,peerIds:i,pluginData:new TextEncoder().encode(JSON.stringify(r))};a(this,it).sendMessage(K.customPluginEventToPeers,IM.toBinary(s),n)}enablePluginForRoom(e,i){a(this,it).sendMessage(K.enablePluginForRoom,fM.toBinary({pluginId:e}),i)}enablePluginForPeers(e,i,r){a(this,it).sendMessage(K.enablePluginForPeers,EM.toBinary({pluginId:e,peerIds:i}),r)}disablePluginForRoom(e,i){a(this,it).sendMessage(K.disablePluginForRoom,yM.toBinary({pluginId:e}),i)}disablePluginForPeers(e,i,r){a(this,it).sendMessage(K.disablePluginForPeers,kM.toBinary({pluginId:e,peerIds:i}),r)}storeInsertKeys(e,i,r,n){const s={pluginId:e,storeName:i,insertKeys:r.map(o=>({storeKey:o.key,payload:new TextEncoder().encode(JSON.stringify(o.payload))}))};a(this,it).sendMessage(K.storeInsertKeys,Sf.toBinary(s),n)}storeGetKeys(e,i,r,n){const s={pluginId:e,storeName:i,getKeys:r.map(o=>({storeKey:o.key}))};a(this,it).sendMessage(K.storeGetKeys,MM.toBinary(s),n)}storeDeleteKeys(e,i,r,n){const s={pluginId:e,storeName:i,deleteKeys:r.map(o=>({storeKey:o.key}))};a(this,it).sendMessage(K.storeDeleteKeys,DM.toBinary(s),n)}storeDelete(e,i,r){a(this,it).sendMessage(K.storeDelete,NM.toBinary({pluginId:e,storeName:i}),r)}getPluginDataOld(e,i){l.info("getPluginDataOld",{plugin:{id:e,storeName:i}})}storePluginDataOld(e,i,r){const n={pluginId:e,storeName:i,insertKeys:[{storeKey:r.key,payload:new TextEncoder().encode(JSON.stringify(r))}]};a(this,it).sendMessage(K.storeInsertKeys,Sf.toBinary(n))}on(e,i){let r;switch(e){case K.addPlugin:case K.enablePluginForPeers:case K.enablePluginForRoom:{r=_u.fromBinary.bind(_u);break}case K.removePlugin:case K.disablePluginForPeers:case K.disablePluginForRoom:{r=Ef.fromBinary.bind(Ef);break}case K.customPluginEventToPeers:case K.customPluginEventToRoom:{r=kf.fromBinary.bind(kf);break}case K.storeInsertKeys:case K.storeGetKeys:case K.storeDeleteKeys:case K.storeDelete:{r=Tf.fromBinary.bind(Tf);break}}a(this,it).on(e,({payload:n,id:s})=>{const o=r(n);return i(o,s)})}}it=new WeakMap;var uO=Object.defineProperty,hO=(t,e,i)=>e in t?uO(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,pO=(t,e,i)=>(hO(t,typeof e!="symbol"?e+"":e,i),i),sp=(t,e,i)=>{if(!e.has(t))throw TypeError("Cannot "+i)},N=(t,e,i)=>(sp(t,e,"read from private field"),i?i.call(t):e.get(t)),Pe=(t,e,i)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,i)},he=(t,e,i,r)=>(sp(t,e,"write to private field"),r?r.call(t,i):e.set(t,i),i),Ae=(t,e,i)=>(sp(t,e,"access private method"),i),dl={},mO={get exports(){return dl},set exports(t){dl=t}},js=typeof Reflect=="object"?Reflect:null,oy=js&&typeof js.apply=="function"?js.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)},ll;js&&typeof js.ownKeys=="function"?ll=js.ownKeys:Object.getOwnPropertySymbols?ll=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:ll=function(t){return Object.getOwnPropertyNames(t)};function gO(t){console&&console.warn&&console.warn(t)}var cy=Number.isNaN||function(t){return t!==t};function ge(){ge.init.call(this)}mO.exports=ge,dl.once=SO,ge.EventEmitter=ge,ge.prototype._events=void 0,ge.prototype._eventsCount=0,ge.prototype._maxListeners=void 0;var dy=10;function ul(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(ge,"defaultMaxListeners",{enumerable:!0,get:function(){return dy},set:function(t){if(typeof t!="number"||t<0||cy(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");dy=t}}),ge.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},ge.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||cy(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 ly(t){return t._maxListeners===void 0?ge.defaultMaxListeners:t._maxListeners}ge.prototype.getMaxListeners=function(){return ly(this)},ge.prototype.emit=function(t){for(var e=[],i=1;i<arguments.length;i++)e.push(arguments[i]);var r=t==="error",n=this._events;if(n!==void 0)r=r&&n.error===void 0;else if(!r)return!1;if(r){var s;if(e.length>0&&(s=e[0]),s instanceof Error)throw s;var o=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var c=n[t];if(c===void 0)return!1;if(typeof c=="function")oy(c,this,e);else for(var d=c.length,h=gy(c,d),i=0;i<d;++i)oy(h[i],this,e);return!0};function uy(t,e,i,r){var n,s,o;if(ul(i),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,i.listener?i.listener:i),s=t._events),o=s[e]),o===void 0)o=s[e]=i,++t._eventsCount;else if(typeof o=="function"?o=s[e]=r?[i,o]:[o,i]:r?o.unshift(i):o.push(i),n=ly(t),n>0&&o.length>n&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=o.length,gO(c)}return t}ge.prototype.addListener=function(t,e){return uy(this,t,e,!1)},ge.prototype.on=ge.prototype.addListener,ge.prototype.prependListener=function(t,e){return uy(this,t,e,!0)};function fO(){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 hy(t,e,i){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:i},n=fO.bind(r);return n.listener=i,r.wrapFn=n,n}ge.prototype.once=function(t,e){return ul(e),this.on(t,hy(this,t,e)),this},ge.prototype.prependOnceListener=function(t,e){return ul(e),this.prependListener(t,hy(this,t,e)),this},ge.prototype.removeListener=function(t,e){var i,r,n,s,o;if(ul(e),r=this._events,r===void 0)return this;if(i=r[t],i===void 0)return this;if(i===e||i.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,i.listener||e));else if(typeof i!="function"){for(n=-1,s=i.length-1;s>=0;s--)if(i[s]===e||i[s].listener===e){o=i[s].listener,n=s;break}if(n<0)return this;n===0?i.shift():vO(i,n),i.length===1&&(r[t]=i[0]),r.removeListener!==void 0&&this.emit("removeListener",t,o||e)}return this},ge.prototype.off=ge.prototype.removeListener,ge.prototype.removeAllListeners=function(t){var e,i,r;if(i=this._events,i===void 0)return this;if(i.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):i[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete i[t]),this;if(arguments.length===0){var n=Object.keys(i),s;for(r=0;r<n.length;++r)s=n[r],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=i[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(r=e.length-1;r>=0;r--)this.removeListener(t,e[r]);return this};function py(t,e,i){var r=t._events;if(r===void 0)return[];var n=r[e];return n===void 0?[]:typeof n=="function"?i?[n.listener||n]:[n]:i?yO(n):gy(n,n.length)}ge.prototype.listeners=function(t){return py(this,t,!0)},ge.prototype.rawListeners=function(t){return py(this,t,!1)},ge.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):my.call(t,e)},ge.prototype.listenerCount=my;function my(t){var e=this._events;if(e!==void 0){var i=e[t];if(typeof i=="function")return 1;if(i!==void 0)return i.length}return 0}ge.prototype.eventNames=function(){return this._eventsCount>0?ll(this._events):[]};function gy(t,e){for(var i=new Array(e),r=0;r<e;++r)i[r]=t[r];return i}function vO(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function yO(t){for(var e=new Array(t.length),i=0;i<e.length;++i)e[i]=t[i].listener||t[i];return e}function SO(t,e){return new Promise(function(i,r){function n(o){t.removeListener(e,s),r(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",n),i([].slice.call(arguments))}fy(t,e,s,{once:!0}),e!=="error"&&EO(t,n,{once:!0})})}function EO(t,e,i){typeof t.on=="function"&&fy(t,"error",e,i)}function fy(t,e,i,r){if(typeof t.on=="function")r.once?t.once(e,i):t.on(e,i);else if(typeof t.addEventListener=="function")t.addEventListener(e,function n(s){r.once&&t.removeEventListener(e,n),i(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}class TO extends E{constructor(){super("message.v1.SocketMessage",[{no:1,name:"event",kind:"scalar",T:13},{no:2,name:"id",kind:"scalar",opt:!0,T:9},{no:3,name:"payload",kind:"scalar",opt:!0,T:12},{no:4,name:"metadata",kind:"scalar",opt:!0,T:12}])}}const vy=new TO;class yy{static encode(e){return vy.toBinary(e)}static decode(e){return vy.fromBinary(new Uint8Array(e))}}function kO(t,e){return Math.floor(Math.random()*(e-t+1)+t)}var Br;class bO{constructor(e={}){pO(this,"opts"),Pe(this,Br,void 0),this.opts={initialTimeout:e.initialTimeout||1e3,maxTimeout:e.maxTimeout||1e4,factor:e.factor||2},he(this,Br,0)}wait(){return u(this,null,function*(){he(this,Br,N(this,Br)+1);const e=kO(0,Math.min(this.opts.maxTimeout,this.opts.initialTimeout*OS(2,N(this,Br))));yield new Promise(i=>{setTimeout(i,e)})})}getAttempts(){return N(this,Br)}reset(){he(this,Br,0)}}Br=new WeakMap;const Wr={debug:0,info:1,warn:2,error:3};var Vn,xn;class _O{constructor(e){Pe(this,Vn,void 0),Pe(this,xn,void 0),he(this,Vn,console),he(this,xn,e)}debug(...e){Wr[N(this,xn)]>Wr.debug||N(this,Vn).debug("[Sockrates]:",...e)}info(...e){Wr[N(this,xn)]>Wr.info||N(this,Vn).info("[Sockrates]:",...e)}warn(...e){Wr[N(this,xn)]>Wr.warn||N(this,Vn).warn("[Sockrates]:",...e)}error(...e){Wr[N(this,xn)]>Wr.error||N(this,Vn).error("[Sockrates]:",...e)}}Vn=new WeakMap,xn=new WeakMap;var Sy=(t=>(t[t.CONNECTING=0]="CONNECTING",t[t.OPEN=1]="OPEN",t[t.CLOSING=2]="CLOSING",t[t.CLOSED=3]="CLOSED",t))(Sy||{});const wO="2",IO="3";var xe,Hs,De,He,jr,rt,or,Hr,Pi,qs,cr,ap,Ey,Oo,hl,op,Ty,cp,ky,pl,dp,lp,by,No,ml,Lo,gl,fl,up,Gs,Vo,xo,vl;class CO{constructor(e,i){var r;Pe(this,ap),Pe(this,Oo),Pe(this,op),Pe(this,cp),Pe(this,pl),Pe(this,lp),Pe(this,No),Pe(this,Lo),Pe(this,fl),Pe(this,Gs),Pe(this,xo),Pe(this,xe,void 0),Pe(this,Hs,void 0),Pe(this,De,void 0),Pe(this,He,void 0),Pe(this,jr,void 0),Pe(this,rt,void 0),Pe(this,or,void 0),Pe(this,Hr,void 0),Pe(this,Pi,void 0),Pe(this,qs,void 0),Pe(this,cr,void 0);var n,s,o,c,d,h,p,g,y;he(this,Hs,e),he(this,jr,[]),he(this,rt,new dl),he(this,or,!0),he(this,Pi,!1),he(this,De,i!=null?i:{}),(n=N(this,De)).autoReconnect!=null||(n.autoReconnect=!0),(s=N(this,De)).retryConnectionInterval!=null||(s.retryConnectionInterval=1e3),(o=N(this,De)).pingTimeout!=null||(o.pingTimeout=3e4),(c=N(this,De)).connectionTimeout!=null||(c.connectionTimeout=5e3),(d=N(this,De)).debug!=null||(d.debug=!0),(h=N(this,De)).maxReconnectionAttempts!=null||(h.maxReconnectionAttempts=10),(p=N(this,De)).disconnectOnPingTimeout!=null||(p.disconnectOnPingTimeout=!0),(g=N(this,De)).queueOnDisconnect!=null||(g.queueOnDisconnect=!1),(y=N(this,De)).flushOnReconnect!=null||(y.flushOnReconnect=!1),he(this,Hr,{code:void 0,reason:void 0}),he(this,He,(r=N(this,De).logger)!=null?r:new _O(N(this,De).debug?"debug":"info")),he(this,cr,new bO)}get readyState(){var e;return(e=N(this,xe))==null?void 0:e.readyState}get url(){return N(this,Hs)}updateURL(e){he(this,Hs,e),Ae(this,lp,by).call(this)}get config(){return N(this,De)}get sendQueue(){return N(this,jr)}flush(){if(!N(this,De).queueOnDisconnect)return!1;const e=[];return N(this,jr).forEach(i=>{this.send(i.event,i.id,i.payload,i.metadata)||e.push(i)}),he(this,jr,e),N(this,jr)}connect(e=!1){return u(this,null,function*(){if(!e&&[0,1].includes(this.readyState)){N(this,He).debug("Websocket was already connecting or connected.");return}if(N(this,or)!==!1)return new Promise((i,r)=>{Ae(this,Gs,Vo).call(this),Ae(this,xo,vl).call(this);try{he(this,xe,new WebSocket(Ae(this,ap,Ey).call(this,N(this,Hs)))),N(this,xe).binaryType="arraybuffer",N(this,He).debug("Connecting");const n=setTimeout(()=>{N(this,He).debug("Connection timeout. Closing socket"),he(this,or,!0),Ae(this,xo,vl).call(this),N(this,xe).close(3001,"Connection Timeout"),N(this,De).autoReconnect&&!N(this,Pi)&&(N(this,rt).emit("reconnecting"),Ae(this,No,ml).call(this)),r(new Error("Connection timed out!"))},N(this,De).connectionTimeout);N(this,xe).onopen=()=>{N(this,He).debug(`Ready State: ${Sy[N(this,xe).readyState]}`),n&&clearTimeout(n),Ae(this,fl,up).call(this),he(this,Hr,{code:void 0,reason:void 0}),N(this,rt).emit("connected"),N(this,De).flushOnReconnect&&this.flush(),i()},N(this,xe).onclose=s=>{try{n&&clearTimeout(n);const{code:o,reason:c}=s;r(c),N(this,He).debug("Socket closed. Close event:",{event:s}),N(this,He).debug(`Connection closed code: ${o}`),N(this,He).debug(`Connection closed reason: ${c}`),N(this,Pi)||Ae(this,pl,dp).call(this,o,c)}catch(o){Ae(this,Oo,hl).call(this,o)}},N(this,xe).onerror=s=>{Ae(this,Oo,hl).call(this,s)},N(this,xe).onmessage=s=>Ae(this,op,Ty).call(this,s)}catch(n){Ae(this,Oo,hl).call(this,n,r)}})})}send(e,i,r,n){const s={event:e,id:i,payload:r,metadata:n};if(N(this,De).queueOnDisconnect&&(!N(this,xe)||N(this,xe).readyState!==1))return N(this,He).debug("Queuing message since socket is not connected!",s),N(this,jr).push(s),!1;const o=yy.encode(s);return Ae(this,Lo,gl).call(this,o)}emit(e,i,r,n){return this.send(e,i,r,n)}sendRaw(e){return Ae(this,Lo,gl).call(this,e)}receive(e,i){return N(this,rt).on(e.toString(),i)}on(e,i){if(typeof e=="string"&&(e==="connected"||e==="disconnected"||e==="errored"||e==="reconnected"||e==="reconnecting"||e==="reconnectAttempt"||e==="reconnectFailure"||e==="failed")){N(this,rt).on(e,i);return}this.receive(e,i)}removeAllListeners(){N(this,rt).removeAllListeners()}removeReceiver(e,i){this.removeListener(e,i)}removeListener(e,i){N(this,rt).removeListener(e.toString(),i)}removeReceivers(e){this.removeListeners(e)}removeListeners(e){N(this,rt).listeners(e.toString()).map(i=>this.removeListener(e,i))}disconnect(){he(this,or,!1),Ae(this,Gs,Vo).call(this),this.removeAllListeners(),he(this,Hr,{code:1e3,reason:"Sockrates disconnect method called"}),N(this,xe).close(1e3,"Sockrates disconnect method called.")}}xe=new WeakMap,Hs=new WeakMap,De=new WeakMap,He=new WeakMap,jr=new WeakMap,rt=new WeakMap,or=new WeakMap,Hr=new WeakMap,Pi=new WeakMap,qs=new WeakMap,cr=new WeakMap,ap=new WeakSet,Ey=function(t){if(t.startsWith("ws://")||t.startsWith("wss://"))return t;if(t.startsWith("https://"))return`wss://${t.substring(8)}`;if(t.startsWith("http://"))return`ws://${t.substring(7)}`;throw new Error("Invalid URL. URL must start with http(s):// or ws(s)://.")},Oo=new WeakSet,hl=function(t,e){N(this,He).error("Error:",{error:t}),N(this,rt).emit("errored",{error:t}),e==null||e(t)},op=new WeakSet,Ty=function(t){if(Ae(this,fl,up).call(this),t.data===wO){N(this,He).debug("Received ping from server"),Ae(this,Lo,gl).call(this,IO);return}const e=yy.decode(t.data),{id:i,payload:r}=e;N(this,He).debug("Received message",{event:e.event,messageID:i}),N(this,rt).emit(e.event.toString(),{id:i,payload:r})},cp=new WeakSet,ky=function(){return N(this,xe).readyState===1},pl=new WeakSet,dp=function(t,e){he(this,Hr,{reason:e,code:t}),N(this,rt).emit("disconnected",{code:t,reason:e})},lp=new WeakSet,by=function(){const{reason:t,code:e}=N(this,Hr);e&&e!==1e3&&N(this,or)&&N(this,De).autoReconnect&&!N(this,Pi)&&(N(this,He).debug(`Triggering reconnection due to ${t}.`),N(this,rt).emit("reconnecting"),Ae(this,No,ml).call(this))},No=new WeakSet,ml=function(t=!0){return u(this,null,function*(){if(t&&N(this,Pi)){N(this,He).debug("Reconnect called when already in a reconnect loop. Ignoring.");return}if(N(this,Pi)||N(this,cr).reset(),N(this,De).maxReconnectionAttempts!==null&&N(this,cr).getAttempts()>=N(this,De).maxReconnectionAttempts){N(this,rt).emit("failed"),he(this,Pi,!1);return}he(this,Pi,!0),Ae(this,xo,vl).call(this),Ae(this,Gs,Vo).call(this);try{if(yield N(this,cr).wait(),N(this,or)===!1)return;if(N(this,He).debug(`Reconnection attempt ${N(this,cr).getAttempts()}`),N(this,rt).emit("reconnectAttempt",{attempt:N(this,cr).getAttempts()}),yield this.connect(),!Ae(this,cp,ky).call(this))throw Error("Reconnect Failed");he(this,Pi,!1),he(this,Hr,{code:void 0,reason:void 0}),N(this,rt).emit("reconnected")}catch(e){N(this,He).debug("Failed to reconnect."),N(this,rt).emit("reconnectFailure",{attempt:N(this,cr).getAttempts()}),Ae(this,No,ml).call(this,!1)}})},Lo=new WeakSet,gl=function(t){try{return N(this,xe).send(t),!0}catch(e){return N(this,He).error(e.message),!1}},fl=new WeakSet,up=function(){this.config.disconnectOnPingTimeout&&(N(this,He).debug("Resetting ping timeout"),Ae(this,Gs,Vo).call(this),he(this,qs,setTimeout(()=>{var t;N(this,He).debug("Disconnecting the socket due to ping timeout"),he(this,or,!0);const e=3002,i="Ping timeout";(t=N(this,xe))==null||t.close(e,i),Ae(this,pl,dp).call(this,e,i)},N(this,De).pingTimeout)))},Gs=new WeakSet,Vo=function(){N(this,qs)&&(clearTimeout(N(this,qs)),he(this,qs,void 0))},xo=new WeakSet,vl=function(){N(this,xe)&&(N(this,xe).onopen=void 0,N(this,xe).onerror=void 0,N(this,xe).onmessage=void 0,N(this,xe).onclose=void 0)};var PO=Object.defineProperty,RO=Object.getOwnPropertyDescriptor,yl=(t,e,i,r)=>{for(var n=r>1?void 0:r?RO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&PO(e,i,n),n};const _y=65535,MO=3e3;var Un,Ue,Fe,qe,Ri,ci,Sl,hp,El,pp,wy;const Iy=(wy=class{constructor(t,{peerId:e,meetingId:i,authToken:r,capabilities:n}){f(this,Fe),f(this,Sl),f(this,El),f(this,Un,void 0),f(this,Ue,void 0),m(this,"roomName"),m(this,"authToken"),m(this,"capabilities"),f(this,Ri,void 0),f(this,ci,void 0);var s;if(!e||!i||!r)throw new w("peerId, meetingId, or authToken can not be empty","0404");v(this,Ri,void 0),v(this,ci,t),this.capabilities=n,this.roomName=i,this.authToken=r,v(this,Un,F(this,Sl,hp).call(this,e)),v(this,Ue,new CO(a(this,Un),{autoReconnect:!0,disconnectOnPingTimeout:(s=n.includes("PING"))!=null?s:!1,queueOnDisconnect:!0,flushOnReconnect:!1,logger:l})),this.handleSocketConnectionEvents()}get joinAttempted(){return a(this,Fe,qe).socketJoinAttempted}set joinAttempted(t){a(this,Fe,qe).socketJoinAttempted=t}get peerId(){return a(this,ci).getValue("peerId")}updateURL(t){t!==this.peerId&&(v(this,Un,F(this,Sl,hp).call(this,t)),l.debug("SocketService:: Connection URL updated.")),a(this,Ue).updateURL(a(this,Un))}static getSocketEdgeDomain(t){return zn({servicePrefix:"socket-edge",baseURI:t})}get url(){return a(this,Un)}connect(){return u(this,null,function*(){a(this,Fe,qe).socketJoinAttempted=!0,yield a(this,Ue).connect(),a(this,Fe,qe).socketJoinAttempted=!0,a(this,Fe,qe).socketState={state:"connected",reconnected:!1,reconnectionAttempt:void 0}})}disconnect(){return u(this,null,function*(){a(this,Fe,qe).socketJoinAttempted=!1,a(this,Ue).disconnect(),a(this,Fe,qe).socketJoinAttempted=!0,a(this,Fe,qe).socketState={state:"disconnected",reconnected:!1,reconnectionAttempt:void 0}})}get isConnected(){try{return a(this,Ue).readyState===1}catch(t){return!1}}sendMessage(t,e,i){const r={};return S.injectContext(r),a(this,Ue).send(t,i!=null?i:F(this,El,pp).call(this),e,new TextEncoder().encode(JSON.stringify(r)))}sendMessagePromise(t,e,i,r){const n=parseInt({}.SOCKET_SERVICE_MESSAGE_REQUEST_TIMEOUT,10)||2e4;return this.sendMessagePromiseWithTimeout({event:t,timeout:n,protobuf:e,messageId:i,resp:r})}sendMessagePromiseWithTimeout({event:t,timeout:e,protobuf:i,messageId:r,resp:n}){const s=n!=null?n:t;return new Promise((o,c)=>{const d=(T,b)=>{a(this,Ue).removeListener(s,T),a(this,Ue).removeListener(_y,b),a(this,Ue).removeListener(ii.errorResponse,b),a(this,Ue).removeListener(gi.errorResponse,b)},h=r!=null?r:F(this,El,pp).call(this),p={};S.injectContext(p);const g=({id:T,payload:b})=>{if(h===T){let O;try{const R=PI.fromBinary(b);O=new Error(R.errorMessage)}catch(R){O=new Error("failed to parse error message",{cause:R});try{const x=RC.fromBinary(b);O=new Error(x.message)}catch(x){O=new Error("failed to parse error message",{cause:x})}}c(O),d(y,g)}},y=({id:T,payload:b})=>{h===T&&(o({id:T,payload:b}),d(y,g))};a(this,Ue).on(s,y),a(this,Ue).on(_y,g),a(this,Ue).on(ii.errorResponse,g),a(this,Ue).on(gi.errorResponse,g),setTimeout(()=>{d(y,g),c(new Error(`request timeout for callback eventId:${t}`))},e),a(this,Ue).send(t,h,i,new TextEncoder().encode(JSON.stringify(p)))})}on(t,e){a(this,Ue).on(t,e)}onStateEvent(t,e){a(this,Ue).on(t,e)}removeListener(t,e){a(this,Ue).removeListener(t,e)}removeListeners(t){a(this,Ue).removeListeners(t)}flush(){return a(this,Ue).flush()}handleSocketConnectionEvents(){this.onStateEvent("connected",()=>u(this,null,function*(){l.info("SocketService::Connected to socket-edge"),a(this,Ri)&&(clearTimeout(a(this,Ri)),v(this,Ri,void 0)),a(this,Fe,qe).updateSocketConnectionState("connected")})),this.onStateEvent("disconnected",({code:t,reason:e})=>{var i;l.info("SocketService::Disconnected from socket-edge",{error:{code:t,reason:e},country:S.location.country});const{recv:r,send:n}=(i=a(this,Fe,qe).mediaState)!=null?i:{};r!=null&&r.state&&(r==null?void 0:r.state)!==ws.CONNECTED||n!=null&&n.state&&(n==null?void 0:n.state)!==ws.CONNECTED?a(this,ci).getValue("peerSessionStore").emit(P.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:a(this,Fe,qe).joinAttempted}):v(this,Ri,setTimeout(()=>{a(this,ci).getValue("peerSessionStore").emit(P.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:a(this,Fe,qe).joinAttempted}),v(this,Ri,void 0)},MO)),a(this,Fe,qe).updateSocketConnectionState("disconnected")}),this.onStateEvent("reconnecting",()=>u(this,null,function*(){l.info("SocketService::Reconnecting to socket-edge",{country:S.location.country}),a(this,Fe,qe).updateSocketConnectionState("reconnecting")})),this.onStateEvent("reconnectAttempt",t=>u(this,[t],function*({attempt:e}){l.info("SocketService::Attempting to reconnect to socket-edge",{socket:{retryAttempt:e}}),a(this,Fe,qe).updateSocketConnectionState("reconnectAttempt",e)})),this.onStateEvent("reconnectFailure",({attempt:t})=>{l.info("SocketService::Reconnect attempt to socket-edge failed",{socket:{retryAttempt:t}}),a(this,Fe,qe).updateSocketConnectionState("reconnectFailure",t)}),this.onStateEvent("reconnected",()=>u(this,null,function*(){l.info("SocketService::Reconnected to socket-edge",{connectionState:{joinAttempted:a(this,Fe,qe).mediaJoinAttempted}}),a(this,Ri)&&(clearTimeout(a(this,Ri)),v(this,Ri,void 0)),a(this,ci).getValue("peerSessionStore").emit(P.SOCKET_SERVICE_RECONNECTED,{wasJoinAttempted:a(this,Fe,qe).mediaJoinAttempted}),a(this,Fe,qe).updateSocketConnectionState("reconnected")})),this.onStateEvent("failed",()=>u(this,null,function*(){l.info("SocketService::Failed to connect to socket-edge",{country:S.location.country}),a(this,ci).getValue("peerSessionStore").emit(P.SOCKET_SERVICE_FAILED),a(this,Fe,qe).updateSocketConnectionState("failed")}))}},Un=new WeakMap,Ue=new WeakMap,Fe=new WeakSet,qe=function(){return a(this,ci).getValue("connectionHandler")},Ri=new WeakMap,ci=new WeakMap,Sl=new WeakSet,hp=function(t){let e=Iy.getSocketEdgeDomain(a(this,ci).getValue("baseURI"));typeof Kn(a(this,ci),"socket_server_base")=="string"&&(e=Kn(a(this,ci),"socket_server_base"));const i=`wss://${e}`,r=new URL(`${i}/ws`),n=this.peerId,s=j(L({roomID:this.roomName,peerID:t,authToken:this.authToken,useMediaV2:!0},n!==t&&{oldPeerID:n}),{ping:this.capabilities.includes("PING"),capabilities:this.capabilities.map(o=>jc[o]).join(" "),joinWithDetails:!0,useCfWorker:!0,useStartSession:!0});return Object.entries(s).forEach(([o,c])=>{r.searchParams.append(o,c.toString())}),r.href},El=new WeakSet,pp=function(){return`${this.peerId}-${(Math.random()+1).toString(36).substring(7)}`},wy);let Uo=Iy;yl([S.trace("SocketService.connect")],Uo.prototype,"connect",1),yl([S.trace("SocketService.disconnect")],Uo.prototype,"disconnect",1),yl([S.trace("SocketService.sendMessagePromise")],Uo.prototype,"sendMessagePromise",1),yl([S.trace("SocketService.sendMessagePromiseWithTimeout")],Uo.prototype,"sendMessagePromiseWithTimeout",1);const Fn=class{static handleConnectedRoomsDumpRaw({payload:t}){var e;const i=iP.fromBinary(t),r=i.meetings.map(n=>{var s;return{id:n.id,title:n.title,participants:(s=n.participants)!=null?s:[]}});return{parentMeeting:{id:i.parentMeeting.id,title:i.parentMeeting.title,participants:(e=i.parentMeeting.participants)!=null?e:[]},meetings:r}}static handleTransferPeerRaw({payload:t}){const e=PP.fromBinary(t);return{authToken:e.authToken,meetingId:e.meetingId}}static handleMovedPeerRaw({payload:t}){const e=hf.fromBinary(t);return{meetingId:e.meetingId,customParticipantId:e.customParticipantId}}static handleConnectedRoomsUpdatedRaw({payload:t}){return uf.fromBinary(t).payloads.map(e=>({id:e.id,title:e.title}))}static handleConnectedRoomsDeletedRaw({payload:t}){return yP.fromBinary(t).payloads}static getConnectedRoomsDump(){return u(this,null,function*(){const t=yield Fn.socketService.sendMessagePromise(B.getConnectedRoomsDump);return Fn.handleConnectedRoomsDumpRaw(t)})}static createConnectedRooms(t){return u(this,null,function*(){const{payload:e}=yield Fn.socketService.sendMessagePromise(B.createConnectedRooms,aP.toBinary({payloads:t}));return uf.fromBinary(e).payloads.map(i=>({id:i.id,title:i.title}))})}static updateConnectedRooms(t){return u(this,null,function*(){})}static disableConnectedRooms(t){return u(this,null,function*(){const e=t.map(r=>({id:r})),i=yield Fn.socketService.sendMessagePromise(B.deleteConnectedRooms,fP.toBinary({payloads:e}));return Fn.handleConnectedRoomsDeletedRaw(i)})}static movePeersBetweenRooms(t){return u(this,null,function*(){try{const e=yield Fn.socketService.sendMessagePromise(B.movePeers,_P.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}}})}};let Le=Fn;m(Le,"socketService"),m(Le,"currentMeetingId");var AO=Object.defineProperty,DO=Object.getOwnPropertyDescriptor,Tl=(t,e,i,r)=>{for(var n=r>1?void 0:r?DO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&AO(e,i,n),n};const $s=class{constructor(t,e){m(this,"apiBase"),m(this,"selfController"),m(this,"pollController"),m(this,"chatController"),m(this,"metaController"),m(this,"storesManager"),m(this,"stageController"),m(this,"pluginController"),m(this,"internalsController"),m(this,"recordingController"),m(this,"livestreamController"),m(this,"participantController"),this.apiBase=t,this.storesManager=e.storesManager,this.metaController=e.metaController,this.selfController=e.selfController,this.chatController=e.chatController,this.pollController=e.pollController,this.stageController=e.stageController,this.pluginController=e.pluginController,this.recordingController=e.recordingController,this.internalsController=e.internalsController,this.participantController=e.participantController,this.livestreamController=e.livestreamController}static init(t){return u(this,null,function*(){var e,i;const{peerId:r,apiBase:n,authToken:s,meetingId:o,organizationId:c,cachedUserDetails:d}=t.getAllValues();if(ny(t),Ie.isSupported()===!1)throw new w("Browser not supported","0010",!0);const h=BA(t,{authToken:s,baseURL:n,cachedUserDetails:d});h.setRoomName(o),h.setRoomUUID(o),h.setOrganizationId(c),h.setHeader("dyte-tracing-id",r),t.setValue("apiClient",h);const p=new k1(t);t.setValue("connectionHandler",p);const g=$s.createSocketService(t),y=g.connect(),T=h.getUserDetails(),b=h.getPlugins();let O=Ne.HIVE,R,x="";try{yield $s.setupFlagsmith(t)}catch(ne){l.error("Failed to setup flagsmith",{error:ne})}try{yield y}catch(ne){l.error("[Controller]: Failed to connect to socket server:",{error:ne})}try{({sfu:O,meetingTitle:x}=yield h.getRoomNodeData()),R=yield T,l.info(`SFU ${O} is being used.`),t.setValue("presetName",R.preset.name),t.setValue("roomNodeOptions",{sfu:O})}catch(ne){l.error("Failed to get room metadata",{error:ne})}const G=aD.init(R.preset,!t.getValue("modules").theme),$=CD.init(t,G.viewType,R.preset.permissions),I=$s.setupControllers(g,t,R,b,x,G,$);u1(G)&&((e=$s.createRoomNodeClient(t,g).initializeConnection(R.participant.name,o,!1,$))==null||e.catch(ne=>{l.error("[Controller]: Failed to queue partial media room promise:",{error:ne})})),S.location.country=(i=h.ipInfo)==null?void 0:i.country;const{controllers:se}=yield I;return cw(),new $s(n,se)})}static setupFlagsmith(t){return u(this,null,function*(){var e;const{peerId:i,baseURI:r,overrides:n,meetingId:s,organizationId:o}=t.getAllValues(),c=ow(s),d=j(L({entity:cu.PEER,clientId:o,isAnonUser:!o,sdkVersion:t.getValue("sdkVersion"),presetName:t.getValue("presetName"),meetingHash:c,roomName:s},Ie.getDeviceInfo()),{isReactNative:navigator.isReactNative});try{const h=(e=n==null?void 0:n.whitelabelled_flags_endpoint)==null||e?zn({servicePrefix:"flags",baseURI:r}):"edge.api.flagsmith.com";yield z.identify(`${cu.PEER}_${i}`,JSON.parse(JSON.stringify(d)),!1,5e3,h,l),l.info("flagsmith::allFlags",{flags:JSON.stringify(z.getAllFlags())},!0)}catch(h){l.error("Failed to fetch flagsmith flags")}})}static setupControllers(t,e,i,r,n,s,o){return u(this,null,function*(){var c,d,h;const p=e.getValue("modules"),{participant:g}=i,y=e.getValue("defaults"),{sfu:T}=e.getValue("roomNodeOptions"),{viewType:b,mediaConstraints:{audio:O}}=s;e.setValue("viewType",b),e.setValue("defaults",L({mediaConfiguration:{audio:{enableHighBitrate:(c=O.enableHighBitrate)!=null?c:!1,enableStereo:(d=O.enableStereo)!=null?d:!1}}},y)),e.setValue("maxPreferredStreams",Ie.isMobile()?s.maxVideoStreams.mobile:s.maxVideoStreams.desktop);let R,x,G,$,I,se,ne,Se;const nt=new aO(t);Le.socketService=t;const ft=new cl(t),Bt=new ri(t),M=new dO(t),k=new ah(e,t),_=new lO(t),W=new sO(t),Re=new an(t),fe=yield Ur.init(e,k,g,o,s),U=yield $f.init(e,fe.self,k,nt,n);if(p.participant&&(Se=new ir(e,fe.self,k,T)),(h=p.e2ee)!=null&&h.enabled&&p.e2ee.manager.init(l,e.getValue("peerSessionStore")),p.chat&&(x=yield Zi.init(e,Bt,Re,fe.self,Se.participants)),p.internals&&(I=yield ju.init()),p.livestream&&s.viewType===Rt.Livestream&&z.hasFeature(ie.LIVESTREAM)&&(ne=new lv(e,fe.self,W)),s.viewType!==Rt.Chat){if(p.poll&&(R=yield Bf.init(e,fe.self,ft)),p.recording&&(se=new ev(e,fe.self,k)),p.stage&&(G=new Jf(e,M,k,fe.self,Se.participants)),p.plugin){if(!Se)throw new w("The plugin module cannot be initialized without the `participant` module","0102");const Ge=yield r;$=yield Ca.init(e,Ge,_,Bt,x==null?void 0:x.chat,fe.self,Se.participants,n)}if(p.pip){const Ge=yield uw._init(e,fe.self);e.setValue("pip",Ge)}}const C={storesManager:new mD(e,_),pollController:R,selfController:fe,metaController:U,chatController:x,stageController:G,pluginController:$,recordingController:se,internalsController:I,livestreamController:ne,participantController:Se};return{theme:s,permissions:o,controllers:C}})}static createRoomNodeClient(t,e){const{peerId:i,roomNodeOptions:r}=t.getAllValues(),{sfu:n}=r;return ry(t,n,{socket:e,peerId:i})}static createSocketService(t){const{peerId:e,meetingId:i,authToken:r}=t.getAllValues(),n=["PING"];return new Uo(t,{peerId:e,meetingId:i,authToken:r,capabilities:n})}};let Fo=$s;Tl([S.trace("Controller.init")],Fo,"init",1),Tl([S.trace("setupFlagsmith")],Fo,"setupFlagsmith",1),Tl([S.trace("Controller.createRoomNodeClient")],Fo,"createRoomNodeClient",1),Tl([S.trace("Controller.createSocketService")],Fo,"createSocketService",1);var OO=Object.defineProperty,NO=Object.getOwnPropertyDescriptor,LO=(t,e,i,r)=>{for(var n=r>1?void 0:r?NO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&OO(e,i,n),n},kl,mp;class Cy extends Wt{constructor(e,i){super(),f(this,kl,void 0),m(this,"meetings",[]),m(this,"parentMeeting",null),f(this,mp,void 0),v(this,mp,e),v(this,kl,i.self)}get supportsConnectedMeetings(){return a(this,kl).id!==""}get isActive(){return this.meetings.length!==0}get currentMeetingId(){return Le.currentMeetingId}validateConnectedMeetingsAction(){if(!this.supportsConnectedMeetings)throw new Error(`You are not allowed to perform this action.
20
- Please connect with Dyte team to move you to V2 APIs & to enable connected meetings.`)}getConnectedMeetings(){return u(this,null,function*(){return this.validateConnectedMeetingsAction(),yield Le.getConnectedRoomsDump()})}createMeetings(e){return u(this,null,function*(){return this.validateConnectedMeetingsAction(),(yield Le.createConnectedRooms(e)).map(i=>({id:i.id,title:i.title}))})}updateMeetings(e){return u(this,null,function*(){this.validateConnectedMeetingsAction(),yield Le.updateConnectedRooms(e.map(i=>({meetingId:i.id,title:i.title})))})}deleteMeetings(e){return u(this,null,function*(){this.validateConnectedMeetingsAction();const i=this.meetings.map(r=>e.includes(r.id)&&r.participants.length!==0?this.moveParticipants(r.id,this.parentMeeting.id,r.participants.map(n=>n.id)):Promise.resolve());return yield Promise.all(i),yield Le.disableConnectedRooms(e)})}moveParticipants(e,i,r){return u(this,null,function*(){this.validateConnectedMeetingsAction();const n=yield Le.movePeersBetweenRooms({sourceMeetingId:e,destinationMeetingId:i,participants:r.map(s=>({id:s}))});return n.success&&this.moveSuccessHandler(e,i,r),n})}moveParticipantsWithCustomPreset(e,i,r){return u(this,null,function*(){this.validateConnectedMeetingsAction();const n=yield Le.movePeersBetweenRooms({sourceMeetingId:e,destinationMeetingId:i,participants:r});return n.success&&this.moveSuccessHandler(e,i,r.map(s=>s.id)),n})}moveSuccessHandler(e,i,r){const n=new Map;[...this.parentMeeting.participants,...this.meetings.flatMap(s=>s.participants)].forEach(s=>n.set(s.id,s)),i===this.parentMeeting.id&&(this.parentMeeting.participants=this.parentMeeting.participants.concat(r.map(s=>n.get(s)))),e===this.parentMeeting.id&&(this.parentMeeting.participants=this.parentMeeting.participants.filter(s=>!r.includes(s.id))),this.meetings=this.meetings.map(s=>{if(i===s.id){const o=s.participants.concat(r.map(c=>n.get(c)));return j(L({},s),{participants:o})}if(e===s.id){const o=s.participants.filter(c=>!r.includes(c.id));return j(L({},s),{participants:o})}return s})}}kl=new WeakMap,mp=new WeakMap,LO([At({maxInvocations:60,period:60})],Cy.prototype,"getConnectedMeetings",1);var VO=Object.defineProperty,xO=Object.getOwnPropertyDescriptor,gp=(t,e,i,r)=>{for(var n=r>1?void 0:r?xO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&VO(e,i,n),n},Bo,Mi,fp,vp;const qr=(fp=class{constructor(t,e,i){m(this,"connectedMeetings"),f(this,Bo,void 0),f(this,Mi,void 0),f(this,vp,void 0),v(this,vp,t),v(this,Bo,i),this.connectedMeetings=new Cy(t,e),this.setCurrentMeeting(e)}static init(t,e,i){return qr.instance||(qr.instance=new qr(t,e,i)),qr.instance.connectedMeetings.supportsConnectedMeetings&&(qr.instance.setupEvents(),e.self.once("roomJoined",()=>qr.instance.getConnectedMeetings())),qr.instance}setCurrentMeeting(t){v(this,Mi,t),Le.currentMeetingId=t.meta.meetingId}getConnectedMeetings(){this.connectedMeetings.getConnectedMeetings()}setupEvents(){Le.socketService&&(Le.socketService.on(B.getConnectedRoomsDump,this.handleConnectedRoomsDump.bind(this)),Le.socketService.on(B.transferPeer,this.handleTransferPeer.bind(this)),Le.socketService.on(B.movedPeer,this.handleMovedPeer.bind(this)),Le.socketService.on(B.connectedRoomsUpdated,this.handleConnectedRoomsUpdated.bind(this)),Le.socketService.on(B.connectedRoomsDeleted,this.handleConnectedRoomsDeleted.bind(this)))}handleTransferPeer(t){const e=Le.handleTransferPeerRaw(t);return this.switchMeeting(e)}switchMeeting(t){return u(this,arguments,function*({authToken:e,meetingId:i}){var r,n,s,o;if(!this.connectedMeetings.supportsConnectedMeetings)throw new Error(`You are not allowed to perform this action.
21
- Please connect with Dyte team to move you to V2 APIs & to enable connected meetings.`);l.info("ConnectedMeetingsController::switchMeeting:: asking ui-kit to show switching breakout UI"),this.connectedMeetings.emit("changingMeeting",i);const c={video:a(this,Mi).self.videoEnabled,audio:a(this,Mi).self.audioEnabled};try{a(this,Mi).self.cleanupEvents(),yield a(this,Mi).leave("connected-meeting")}catch(h){l.error(`ConnectedMeetingsController:: switchMeeting:: issues in leaving previous meeting. Meeting Id: ${(n=(r=a(this,Mi))==null?void 0:r.meta)==null?void 0:n.meetingId}`,{error:h})}Le.socketService=void 0,l.info(`ConnectedMeetingsController::switchMeeting:: initializing new meeting. Meeting Id: ${i}`);const d=yield Dy.init(j(L({},a(this,Bo)),{cachedUserDetails:null,defaults:j(L(L({},a(this,Bo).defaults),c),{mediaHandler:a(this,Mi).self}),authToken:e}));l.info(`ConnectedMeetingsController::switchMeeting:: initialized new meeting. Meeting Id: ${(s=d==null?void 0:d.meta)==null?void 0:s.meetingId}`);try{const{hidden:h}=a(this,Mi).self;d.self.setName(a(this,Mi).self.name),yield d.join(),h&&d.self.hide()}catch(h){l.error("ConnectedMeetingsController.joinRoom",{error:h})}return l.info(`ConnectedMeetingsController::switchMeeting:: asking ui-kit to show in-meeting ui of newly joined meeting id: ${(o=d==null?void 0:d.meta)==null?void 0:o.meetingId}`),this.connectedMeetings.emit("meetingChanged",d),this.setCurrentMeeting(d),d})}handleConnectedRoomsDump(t){const e=Le.handleConnectedRoomsDumpRaw(t);this.connectedMeetings.meetings=e.meetings.map(i=>({id:i.id,title:i.title,participants:i.participants||[]})),this.connectedMeetings.parentMeeting={id:e.parentMeeting.id,title:e.parentMeeting.title,participants:e.parentMeeting.participants},this.emitStateUpdate()}handleMovedPeer(t){return Le.handleMovedPeerRaw(t)}handleConnectedRoomsUpdated(t){const e=Le.handleConnectedRoomsUpdatedRaw(t),i=new Map;this.connectedMeetings.meetings.forEach(r=>{i.set(r.id,r)}),e.forEach(r=>{i.has(r.id)?i.get(r.id).title=r.title:i.set(r.id,j(L({},r),{participants:[]}))}),this.connectedMeetings.meetings=Array.from(i.values()),this.emitStateUpdate()}handleConnectedRoomsDeleted(t){const e=Le.handleConnectedRoomsDeletedRaw(t).map(i=>i.id);this.connectedMeetings.meetings=this.connectedMeetings.meetings.filter(i=>!e.includes(i.id)),this.emitStateUpdate()}emitStateUpdate(){this.connectedMeetings.emit("stateUpdate",{meetings:this.connectedMeetings.meetings,parentMeeting:this.connectedMeetings.parentMeeting})}},Bo=new WeakMap,Mi=new WeakMap,vp=new WeakMap,m(fp,"instance"),fp);let bl=qr;gp([S.trace("ConnectedMeetingsController.getConnectedMeetings")],bl.prototype,"getConnectedMeetings",1),gp([S.trace("ConnectedMeetingsController.setupEvents")],bl.prototype,"setupEvents",1),gp([S.trace("ConnectedMeetingsController.switchMeeting")],bl.prototype,"switchMeeting",1);class UO{constructor(){m(this,"battery"),m(this,"init",()=>u(this,null,function*(){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){l.error("Error getting battery",e)}})),m(this,"updateChargeInfo",()=>{var e;l.log(`Battery charging? ${(e=this.battery)!=null&&e.charging?"Yes":"No"}`)}),m(this,"updateLevelInfo",()=>{if(!this.battery){l.log("Battery level: Not known");return}l.log(`Battery level: ${this.battery.level*100}%`)}),m(this,"cleanup",()=>{var e,i;"getBattery"in navigator&&((e=this.battery)==null||e.removeEventListener("chargingchange",this.updateChargeInfo),(i=this.battery)==null||i.removeEventListener("levelchange",this.updateLevelInfo))})}}const Py=new UO;function FO(t,e){t.startsWith("eyJ")||console.error("Invalid auth token provided. Ensure you are passing a %cparticipant `authToken`%c \u2014 not an Org API Key or an incorrectly formatted token.\nYou get the participant token from the Add Participant API: https://docs.dyte.io/api#/operations/add_participant","font-weight: bold","font-weight: normal");try{const{meetingId:i,orgId:r,participantId:n}=JSON.parse(atob(t.split(".")[1]));if(!i)throw Error(`Received V1 auth token ${t}`);let s="dyte.io";e&&(s=e);const o=`https://api.${s}`;return{meetingId:i,orgId:r,participantId:n,baseURI:s,apiBase:o}}catch(i){throw l.error("constants::decodeAuthToken",{error:i,debuggingHint:`Unable to decode auth token: ${t}`},!0),new w("Invalid auth token","0004")}}var Bn,Js,Ks,_l,yp,Ry;class BO{constructor(){f(this,yp),f(this,Bn,new Audio),f(this,Js,new MediaStream),f(this,Ks,new Map),f(this,_l,void 0),a(this,Bn).srcObject=a(this,Js),a(this,Bn).autoplay=!0}playTracks(e){return u(this,null,function*(){return e.forEach(i=>{a(this,Ks).has(i.id)||(a(this,Js).addTrack(i),a(this,Ks).set(i.id,i))}),this.play()})}setSpeakerDevice(e){typeof HTMLAudioElement.prototype.setSinkId=="function"&&a(this,Bn).setSinkId(e)}removeTrack(e){const i=a(this,Ks).get(e);i&&(a(this,Js).removeTrack(i),a(this,Ks).delete(e))}play(){return u(this,null,function*(){return a(this,Bn).srcObject=a(this,Js),a(this,Bn).play().catch(e=>{F(this,yp,Ry).call(this,e)})})}onError(e){v(this,_l,e)}}Bn=new WeakMap,Js=new WeakMap,Ks=new WeakMap,_l=new WeakMap,yp=new WeakSet,Ry=function(t){var e;(e=a(this,_l))==null||e.call(this,t)};var zs;class WO extends BO{constructor(){super(),f(this,zs,void 0),v(this,zs,new Map)}addParticipantTrack(e,i){a(this,zs).set(e,i.id),this.playTracks([i])}removeParticipantTrack(e){const i=a(this,zs).get(e);i&&this.removeTrack(i),a(this,zs).delete(e)}}zs=new WeakMap;var jO=Object.defineProperty,HO=Object.getOwnPropertyDescriptor,wl=(t,e,i,r)=>{for(var n=r>1?void 0:r?HO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&jO(e,i,n),n},ct,Il,Wn,Sp,My,Ay;let Gr=(Ay=class{constructor(t,e){f(this,Sp),f(this,ct,void 0),f(this,Il,void 0),f(this,Wn,void 0),v(this,Wn,t),v(this,ct,e)}static init(t){return u(this,null,function*(){var e,i,r,n,s,o,c;nw(),Ie.init();const d=(i=(e=t==null?void 0:t.cachedUserDetails)==null?void 0:e.peerId)!=null?i:jn();Py.init();const{authToken:h,baseURI:p}=t,g=FO(h,p),{meetingId:y}=g,T=vc(g,["meetingId"]);window.__zone_symbol__DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION=!0;const b=Gr.setupContext(d,t,y,T);S.meetingMetadata.roomName=y,S.meetingMetadata.userId=T.participantId,S.meetingMetadata.organizationId=T.orgId,S.init(b,(n=(r=t.modules)==null?void 0:r.tracing)!=null?n:!0),l.info("DyteClient::init::options",{dyteClientInitOptions:j(L({},t),{authToken:`${(s=t.authToken)==null?void 0:s.slice(0,10)}...
22
- ${(o=t.authToken)==null?void 0:o.slice(-10)}`})});const O=yield Fo.init(b),R=new Gr(b,O);return F(c=R,Sp,My).call(c,t),R})}static setupContext(t,e,i,r){var n,s;const o=en.createContext(t,e),c=L(L({},Q_),e==null?void 0:e.modules);return o.setValue("peerId",t),o.setValue("modules",c),o.setValue("sdkName","web-core"),o.setValue("meetingId",i),o.setValue("apiBase",r.apiBase),o.setValue("baseURI",r.baseURI),o.setValue("userId",r.participantId),o.setValue("organizationId",r.orgId),o.setValue("authToken",e.authToken),o.setValue("overrides",(n=e.overrides)!=null?n:{}),o.setValue("env",X_({baseURI:r.baseURI})),o.setValue("defaults",e.defaults||{audio:!0,video:!0}),o.setValue("onError",e.onError||(()=>{})),o.setValue("cachedUserDetails",vi(e.cachedUserDetails)),o.setValue("sdkVersion","3.1.0-staging.3"),(s=e.modules)!=null&&s.experimental_audio_playback&&o.setValue("audioPlayback",new WO),o}join(){return u(this,null,function*(){const{selfController:t}=a(this,ct);return t.self.roomJoined?null:t.joinRoom()})}leave(t){return u(this,null,function*(){var e;Py.cleanup(),a(this,Wn).getValue("peerSessionStore").reset(),(e=a(this,Wn).getValue("roomSocketHandler"))==null||e.cleanup();const{selfController:i}=a(this,ct);return i.leaveRoom(t)})}get participants(){var t;return(t=a(this,ct).participantController)==null?void 0:t.participants}get self(){var t;return(t=a(this,ct).selfController)==null?void 0:t.self}get meta(){var t;return(t=a(this,ct).metaController)==null?void 0:t.meta}get ai(){var t;return(t=a(this,ct).metaController)==null?void 0:t.ai}get plugins(){var t;return(t=a(this,ct).pluginController)==null?void 0:t.plugins}get chat(){var t;return(t=a(this,ct).chatController)==null?void 0:t.chat}get polls(){var t;return(t=a(this,ct).pollController)==null?void 0:t.polls}get connectedMeetings(){var t;return(t=a(this,Il))==null?void 0:t.connectedMeetings}get recording(){var t;return(t=a(this,ct).recordingController)==null?void 0:t.recording}get livestream(){var t;return(t=a(this,ct).livestreamController)==null?void 0:t.livestream}get stage(){var t;return(t=a(this,ct).stageController)==null?void 0:t.stage}get stores(){return a(this,ct).storesManager}get audio(){return a(this,Wn).getValue("audioPlayback")}get __internals__(){var t;return(t=a(this,ct).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)})}},ct=new WeakMap,Il=new WeakMap,Wn=new WeakMap,Sp=new WeakSet,My=function(t){v(this,Il,bl.init(a(this,Wn),this,t))},Ay);wl([ut("0002"),Pr.executeWithLock({methodName:"meeting.join",lockName:"DyteClient.join",timeout:3e3})],Gr.prototype,"join",1),wl([ut("0003")],Gr.prototype,"leave",1),wl([ut("0001"),Pr.executeWithLock({methodName:"DyteClient.init",lockName:"DyteClient.init",timeout:3e3})],Gr,"init",1),Gr=wl([ut("0000")],Gr);const Dy=Gr;return Dy}();
19
+ maxEnergy: ${a(this,Dn)}`),n===-1/0||i<1e-6?{energy:0,isVoice:!1}:((!a(this,Vr)||n<a(this,Vr))&&v(this,Vr,n),(!a(this,Dn)||n>a(this,Dn))&&v(this,Dn,n),{energy:(n-a(this,Vr))/(a(this,Dn)-a(this,Vr))*10||0,isVoice:r})},el=new WeakSet,Wh=function(t){return t<5},jh=new WeakSet,Hv=function(t=a(this,Ns)){var e;if(!a(this,ji)||!t){z.hasFeature(ie.ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS)&&l.debug(`AudioActivityReporter: No producerId or energy to report: ${a(this,ji)}`);return}const i={producerId:a(this,ji),energy:Math.round(t),silent:F(e=tl,el,Wh).call(e,t)};v(this,Ro,i.silent),this.reportRequest(i)},Hh=new WeakSet,qv=function(t){const e=Math.log10(t);return Math.round(e)},f(qh,el),f(qh,Hh);const YD=(t=!1)=>{if("MediaStreamTrackGenerator"in window&&"AudioData"in window)try{const i=new window.MediaStreamTrackGenerator({kind:"audio"}),r=i.writable.getWriter(),n=48e3,s=128,o=1;let c=0,d=null;const h=()=>u(void 0,null,function*(){try{const g=new Float32Array(s*o),y=new window.AudioData({format:"f32",sampleRate:n,numberOfFrames:s,numberOfChannels:o,timestamp:c,data:g});c+=s/n*1e6,yield r.ready,yield r.write(y)}catch(g){d&&clearInterval(d),r.releaseLock(),i.writable.abort()}});d=window.setInterval(h,100);const p=new MediaStream([i]).getAudioTracks()[0];return p.addEventListener("ended",()=>{d&&clearInterval(d),r.releaseLock(),i.writable.abort()}),Object.assign(p,{fakeTracks:"fakeTracks:fakeAudioTrack"}),p.enabled=t,p}catch(i){}const e=window.AudioContext||window.webkitAudioContext;if(e)try{const i=new e;if(!i||i.state!=="running"||!i.destination)return;const r=i.createOscillator();r.frequency.value=0,r.type="sine";const n=i.createGain();n.gain.value=0,r.connect(n);const s=i.createMediaStreamDestination();n.connect(s),r.start();const o=s.stream.getAudioTracks()[0];return o?(Object.assign(o,{fakeTracks:"fakeTracks:fakeAudioTrack"}),o.enabled=t,o):void 0}catch(i){return}},QD=(t=!1)=>{var e,i;const r=new MediaStream().getVideoTracks()[0],n=document.createElement("canvas");n.height=(e=r==null?void 0:r.getSettings().height)!=null?e:720,n.width=(i=r==null?void 0:r.getSettings().width)!=null?i:1280;const s=n.getContext("2d");s.fillStyle="black",s.fillRect(0,0,n.width,n.height),setInterval(()=>{s.fillStyle="black",s.fillRect(0,0,n.width,n.height)},1e3);const o=n.captureStream().getVideoTracks()[0];return Object.assign(o,{fakeTracks:"fakeTracks:fakeVideoTrack"}),o.enabled=t,o};var XD=Object.defineProperty,ZD=Object.getOwnPropertyDescriptor,me=(t,e,i,r)=>{for(var n=r>1?void 0:r?ZD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&XD(e,i,n),n};const Qt=["video/VP9","video/VP8"];var il,rl,Ct,Y,Mo,ar,xt,Ls,Vs,xs,nl,Ci,xr,Ao,Us,Fs,Ut,Xt,On,Bs,Gh,Gv,$h,$v,Jh,Jv,sl,Kh,zh,Yh,Kv,Qh,zv,Xh,Yv,Zh,Qv,gt,Pt,Ws,Do,ep,Xv,tp,Zv,ip,ey;const ty=(Yh=class{constructor(t,e,i){f(this,On),f(this,Gh),f(this,$h),f(this,Jh),f(this,sl),f(this,Qh),f(this,Xh),f(this,Zh),f(this,gt),f(this,Ws),f(this,ep),f(this,tp),f(this,ip),m(this,"context"),m(this,"authToken"),m(this,"e2ee"),f(this,il,void 0),f(this,rl,void 0),f(this,Ct,void 0),f(this,Y,void 0),f(this,Mo,void 0),f(this,ar,void 0),f(this,xt,void 0),f(this,Ls,void 0),f(this,Vs,void 0),f(this,xs,void 0),f(this,nl,void 0),f(this,Ci,null),f(this,xr,void 0),f(this,Ao,void 0),f(this,Us,void 0),f(this,Fs,void 0),f(this,Ut,void 0),f(this,Xt,void 0);var r,n;this.context=t;const{socket:s}=i;this.mediaJoined=!1,v(this,Us,new Map([["video/VP9",new Set],["video/VP8",new Set]])),v(this,Fs,new Map([["video/VP9",new Set],["video/VP8",new Set]])),v(this,ar,e),v(this,Ct,s),v(this,Ls,!1),v(this,Y,new JD(t,s,e)),v(this,xt,a(this,Y).events),v(this,xr,new Set),v(this,Ut,new Map),v(this,Vs,!1),v(this,xs,new ch),e===Ne.CF&&!navigator.isReactNative&&v(this,Xt,new qh(a(this,Y).socketHandler.audioActivity.bind(a(this,Y).socketHandler))),this.e2ee=(n=(r=t.getValue("modules").e2ee)==null?void 0:r.enabled)!=null?n:!1,this.handleSocketEvents(),this.handleCallstatsEvents(),v(this,nl,su(()=>u(this,null,function*(){if(!a(this,On,Bs).mediaJoinAttempted)return;const{roomJoined:o}=yield this.joinRoom(a(this,rl),a(this,il),!0,!0);o&&(this.context.getValue("peerSessionStore").emit(P.RESET_PRODUCER_STATE),this.context.getValue("peerSessionStore").emit(P.ROOM_NODE_RECONNECTED))}),5e3,{leading:!0,maxWait:1e3}))}get peerId(){return this.context.getValue("peerId")}get mediaJoined(){return a(this,On,Bs).mediaJoined}set mediaJoined(t){a(this,On,Bs).mediaJoined=t}reset(){a(this,Y).closeAllProducers(),a(this,Y).closeAllConsumers(),a(this,Ut).clear(),a(this,xr).clear(),v(this,Ci,null),a(this,xs).stop(),a(this,Y).stopAllTransports(),a(this,Y).reset(),v(this,xs,new ch)}joinRoom(t,e){return u(this,arguments,function*(i,r,n=!1,s=!1,o={}){a(this,On,Bs).mediaJoinAttempted=!0,v(this,Ls,!0),n&&this.reset();try{return yield a(this,xs).push(()=>F(this,Gh,Gv).call(this,i,r,s,o),"joinRoom")}catch(c){return l.error("Error in room joining process",{error:c}),this.context.getValue("peerSessionStore").emit(P.ROOM_NODE_FAILED),{roomJoined:!1}}})}initializeConnection(t,e){return u(this,arguments,function*(i,r,n=!1,s={}){return a(this,Ci)?a(this,Ci):(v(this,Ci,(()=>u(this,null,function*(){try{yield F(this,sl,Kh).call(this,i,r,n,s)}catch(o){throw v(this,Ci,null),o}}))()),a(this,Ci))})}getConsumers(){return a(this,Y).consumers}leaveRoom(){return u(this,null,function*(){var t;a(this,Y).stopAllTransports(),v(this,Vs,!1),a(this,On,Bs).mediaJoinAttempted=!1;const e={closeRoom:!1};try{const i=yield a(this,Ct).sendMessagePromise(a(this,xt).leaveRoom,Yw.toBinary(e));(t=UI.fromBinary(i.payload))!=null&&t.closed||l.warn("weird state on peer closed and should not happen")}catch(i){l.error("error on sending leave room request",{error:i})}J.callEnded(),S.destruct()})}activatePeers(t){return u(this,null,function*(){return this.createConsumers(t)})}createConsumers(t){return u(this,null,function*(){return t.length===0?Promise.resolve():a(this,Y).createConsumers(t)})}closeConsumers(t){return u(this,null,function*(){if(!t.length)return;const e=t.reduce((i,r)=>{const n=a(this,Y).producerIdToConsumerIdMap.get(r.producerId);return n?(i.push(n),i):(l.warn(`consumer not found in close consumers: ${r.producerId}`),i)},[]);yield a(this,Y).closeConsumers(e)})}_shareWebcam(t,e){return u(this,null,function*(){const i=e==="video/VP9"?be.WEBCAM:be.WEBCAM_BACKUP,r=F(this,gt,Pt).call(this,i);if(r){const p=yield r;if(a(this,Y).producers.has(p)){const g=a(this,Y).producers.get(p);if(!g.closed)return yield g.replaceTrack({track:t}),yield this.resumeWebcam(i),t;yield this.disableWebcam(e)}return this._shareWebcam(t,e)}const n=[e].concat(Qt.filter(p=>p!==e)),s=F(this,ip,ey).call(this,t,n),o=Kn(this.context,"disableSimulcast"),c=a(this,ar)===Ne.CF?ie.ENABLE_CF_SIMULCAST:ie.ENABLE_HIVE_SIMULCAST;!o&&z.hasFeature(c)?(l.info(`Simulcast enabled for SFU: ${a(this,ar)}`),s.encodings=L1(t)):l.info(`Simulcast disabled for webcam producer, SFU: ${a(this,ar)}`),z.hasFeature(ie.TRACK_HINT)&&(s.track.contentHint=z.getValue(ie.TRACK_HINT));const d=()=>{l.info("Disabling video due to the producer closure"),a(this,Ut).delete(i)},h=a(this,Y).createProducer(s,d);return F(this,Ws,Do).call(this,i,h.then(p=>p.id)),h.then(p=>p.track)})}shareWebcam(t){return u(this,null,function*(){var e;if(t===void 0)return null;const i=(e=z.getValue(ie.FORCE_VIDEO_CODEC))==null?void 0:e.toString();if(i)return l.debug(`Calling _shareWebcam with forced video codec: ${i}`),this._shareWebcam(t,i);const r=Qt.filter(n=>{var s,o;return((o=(s=a(this,Mo).sender)==null?void 0:s.video)==null?void 0:o.codecs.findIndex(c=>c.mimeType===n))>=0&&a(this,Fs).get(n).size>0});return r.length===0&&r.push(Qt[0]),yield Promise.all(r.map(n=>(l.debug(`Calling _shareWebcam with video codec: ${n}`),this._shareWebcam(t,n)))),t})}shareScreen(t){return u(this,null,function*(){const{video:e,audio:i}=t;if(e===void 0)return;const r={track:e,codecOptions:[{name:"VP8"}],appData:{screenShare:!0,e2ee:this.e2ee,supportsRemoteControl:Ie.isElectron()},stopTracks:!1},n=()=>{l.info("Disabling screenShare due to the producer closure"),a(this,Ut).delete(be.SCREENSHARE_VIDEO),a(this,Ut).delete(be.SCREENSHARE_AUDIO)},s=a(this,Y).createProducer(r,n);F(this,Ws,Do).call(this,be.SCREENSHARE_VIDEO,s.then(c=>c.id));let o;if(i){const c={track:i,codecOptions:[{name:"opus"}],appData:{screenShare:!0,e2ee:this.e2ee,supportsRemoteControl:Ie.isElectron()},stopTracks:!1,zeroRtpOnPause:a(this,ar)!==Ne.CF},d=()=>{};o=a(this,Y).createProducer(c,d),F(this,Ws,Do).call(this,be.SCREENSHARE_AUDIO,o.then(h=>h.id))}yield Promise.all([s,o||Promise.resolve()]),J.screenShareStart()})}shareMic(t){return u(this,null,function*(){try{if(t===void 0)throw new Vt("track undefined");const e=F(this,gt,Pt).call(this,be.MIC);if(e){const s=yield e;if(a(this,Y).producers.has(s)){const o=a(this,Y).producers.get(s);if(!o.closed){yield o.replaceTrack({track:t}),yield this.resumeMic(),a(this,Xt)&&(a(this,Xt).audioTrack=t,a(this,Xt).producerId=s,a(this,Xt).start());return}yield a(this,Y).closeProducer(s,{stopTrack:!1})}yield this.shareMic(t);return}const i=F(this,tp,Zv).call(this,t),r=()=>{a(this,Ut).delete(be.MIC)},n=a(this,Y).createProducer(i,r);F(this,Ws,Do).call(this,be.MIC,n.then(s=>s.id)),yield n.then(s=>{a(this,Xt)&&(a(this,Xt).audioTrack=s.track,a(this,Xt).producerId=s.id,a(this,Xt).start())})}catch(e){throw new w(e)}})}pauseMic(){return u(this,null,function*(){var t;const e=yield F(this,gt,Pt).call(this,be.MIC),i=a(this,Y).producers.get(e);if(!i){l.error("pauseMic::could_not_find_mic_producer");return}if(i.paused){l.info("pauseMic::mic_producer_already_paused");return}i.pause(),(t=a(this,Xt))==null||t.stop();const r={producerId:i.id,pause:!0};a(this,Ct).sendMessage(a(this,xt).toggleProducer,Wc.toBinary(r))})}pauseWebcam(){return u(this,null,function*(){const t=yield F(this,gt,Pt).call(this,be.WEBCAM),e=yield F(this,gt,Pt).call(this,be.WEBCAM_BACKUP),i=a(this,Y).producers.get(t),r=a(this,Y).producers.get(e);if(!i&&!r){l.error("pauseWebcam::could_not_find_webcam_producer");return}const n=s=>{const o={producerId:s.id,pause:!0};a(this,Ct).sendMessage(a(this,xt).toggleProducer,Wc.toBinary(o))};i&&(i.pause(),n(i)),r&&(r.pause(),n(r))})}resumeMic(){return u(this,null,function*(){const t=yield F(this,gt,Pt).call(this,be.MIC),e=a(this,Y).producers.get(t);if(!e){l.error("resumeMic::could_not_find_mic_producer");return}if(!e.pause){l.info("resumeMic::mic_producer_already_resumed");return}e.resume(),e.appData.e2ee&&this.context.getValue("peerSessionStore").emit(P.E2EE_ACTIVE_PRODUCER,e);const i={producerId:e.id,pause:!1};a(this,Ct).sendMessage(a(this,xt).toggleProducer,Wc.toBinary(i))})}resumeWebcam(){return u(this,arguments,function*(t=be.WEBCAM){const e=yield F(this,gt,Pt).call(this,t),i=a(this,Y).producers.get(e);if(!i){l.error("resumeWebcam::could_not_find_webcam_producer");return}if(!i.paused){l.info("resumeWebcam::webcam_producer_already_resumed");return}i.resume(),i.appData.e2ee&&this.context.getValue("peerSessionStore").emit(P.E2EE_ACTIVE_PRODUCER,i);const r={producerId:i.id,pause:!1};a(this,Ct).sendMessage(a(this,xt).toggleProducer,Wc.toBinary(r))})}disableWebcam(t){return u(this,null,function*(){const e=t==="video/VP9"?be.WEBCAM:be.WEBCAM_BACKUP,i=yield F(this,gt,Pt).call(this,e);F(this,ep,Xv).call(this,e),i&&(yield a(this,Y).closeProducer(i))})}disableMic(){return u(this,null,function*(){var t;const e=yield F(this,gt,Pt).call(this,be.MIC);e&&(yield a(this,Y).closeProducer(e)),(t=a(this,Xt))==null||t.stop(),a(this,Ut).delete(be.MIC)})}disableScreenShare(){return u(this,null,function*(){l.info("screen_sharing_stopped"),J.screenShareStop();const t=yield F(this,gt,Pt).call(this,be.SCREENSHARE_VIDEO),e=yield F(this,gt,Pt).call(this,be.SCREENSHARE_AUDIO);t&&(yield a(this,Y).closeProducer(t)),e&&(yield a(this,Y).closeProducer(e)),a(this,xr).clear(),a(this,Ut).delete(be.SCREENSHARE_VIDEO),a(this,Ut).delete(be.SCREENSHARE_AUDIO)})}muteSelf(){return u(this,null,function*(){this.pauseMic()})}unmuteSelf(){return u(this,null,function*(){})}resetVideoProducers(t,e){return u(this,null,function*(){if(t){const i=yield F(this,gt,Pt).call(this,be.WEBCAM),r=yield F(this,gt,Pt).call(this,be.WEBCAM_BACKUP);yield a(this,Y).closeProducer(i,{stopTrack:!1}),yield a(this,Y).closeProducer(r,{stopTrack:!1}),this.shareWebcam(t)}if(e){const i=yield F(this,gt,Pt).call(this,be.SCREENSHARE_VIDEO);yield a(this,Y).closeProducer(i,{stopTrack:!1}),this.shareScreen({video:e})}})}changeDisplayName(t,e){return u(this,null,function*(){const i={displayName:t,participantId:e!=null?e:this.peerId};if(!(yield a(this,Y).socketHandler.changeDisplayName(i)))throw new Error("failed to change display name!")})}kick(t){const e={peerIds:[t]};a(this,Y).socketHandler.kickPeer(e)}kickAll(){a(this,Y).socketHandler.kickAll()}muteAll(t){return u(this,null,function*(){if(!(yield a(this,Y).socketHandler.hostControlForAll("audio")))throw new Error("failed to mute all participant")})}muteAllVideo(){return u(this,null,function*(){if(!(yield a(this,Y).socketHandler.hostControlForAll("video")))throw new Error("failed to mute all video participant")})}disableAudio(t){return u(this,null,function*(){if(!(yield a(this,Y).socketHandler.hostControlForPeer(t,"audio")))throw new Error("failed to mute given participant")})}disableVideo(t){return u(this,null,function*(){if(!(yield a(this,Y).socketHandler.hostControlForPeer(t,"video")))throw new Error("failed to mute video of given participant")})}pinPeer(t){return u(this,null,function*(){const e={participantId:t!=null?t:""};try{yield a(this,Ct).sendMessagePromise(a(this,xt).globalPinPeer,lI.toBinary(e))}catch(i){l.error("Error in pinning peer:",{error:i})}})}validateScreenShare(t){return this.peerId===t.peerId&&a(this,Y).producers.get(t.producerId)&&a(this,xr).add(t.consumerPeerId),a(this,xr).size}switchConsumersToLayer(t,e){return u(this,null,function*(){const i=t.map(r=>this.getConsumers().get(r));a(this,Y).switchConsumersToLayer(i,e)})}handleSocketEvents(){return u(this,null,function*(){a(this,Ct).on(a(this,xt).peerProducerCreateBroadcast,({payload:t})=>{var e,i;if(this.mediaJoined)try{const{participantId:r,producerState:n}=mC.fromBinary(t);if(r===this.peerId)return;if(n!=null&&n.mimeType||(n.mimeType=n.kind===Li.AUDIO?"audio/opus":"video/VP8"),n.kind===Li.VIDEO&&!n.screenShare&&((i=(e=a(this,Mo).receiver)==null?void 0:e.video)==null?void 0:i.codecs.findIndex(s=>s.mimeType===Qt[0]))>=0&&a(this,Us).get(Qt[0]).has(r)&&n.mimeType!==Qt[0]){l.warn(`Ignoring producer: ${n.producerId}`);return}l.info(`producer created broadcast: ${r}, producer state: ${n}`),this.context.getValue("peerSessionStore").emit(P.NEW_PRODUCER,{peerId:r,producer:j(L({},n),{kind:n.kind===Li.AUDIO?"audio":"video",producingPeerId:r})})}catch(r){l.error("error in peer-producer-create-broadcast",{error:r})}}),a(this,Ct).on(a(this,xt).peerProducerToggleBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e,initiatorParticipantId:i,producerState:{kind:r,pause:n,producerId:s}}=tf.fromBinary(t),o=r===Li.AUDIO?"audio":"video";if(l.info(`producer toggle broadcast: ${e}, producerId: ${s}, kind:${o}, paused:${n} payload: ${JSON.stringify(tf.fromBinary(t))}`),e===this.peerId&&i!==this.peerId&&n&&this.context.getValue("peerSessionStore").emit(o==="audio"?P.MUTE_SELF:P.MUTE_SELF_VIDEO),e===this.peerId)return;this.context.getValue("peerSessionStore").emit(P.PRODUCER_TOGGLE,{peerId:e,producerId:s,paused:n,kind:o}),Array.from(this.getConsumers().values()).filter(c=>c.producerId===s).forEach(c=>{c.paused!==n&&(l.debug(`consumer state mismatched for ${c.id}. updating consumer pause state ${c.paused} to ${n}`),n?(c.pause(),this.context.getValue("peerSessionStore").emit(P.CONSUMER_PAUSED,{id:c.id})):(c.resume(),this.context.getValue("peerSessionStore").emit(P.CONSUMER_RESUMED,{id:c.id})))})}catch(e){l.error("error in producer toggle broadcast handler",{error:e})}}),a(this,Ct).on(a(this,xt).peerLeaveBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e}=hu.fromBinary(t);if(e===this.peerId)return;l.info(`peer left broadcast:${e}`),a(this,xr).delete(e),a(this,Y).consumers.forEach(i=>{i.peerId===e&&i.close()}),this.context.getValue("peerSessionStore").emit(P.PEER_CLOSED,{id:e})}catch(e){l.error("error in peer left broadcast",{error:e})}}),a(this,Ct).on(a(this,xt).peerProducerCloseBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e,producerState:{producerId:i}}=vC.fromBinary(t);if(e===this.peerId)return;l.info(`producer closed broadcast:${e}`),this.context.getValue("peerSessionStore").emit(P.PRODUCER_CLOSED,{peerId:e,producerId:i});const r=a(this,Y).producerIdToConsumerIdMap.get(i);if(!r){l.warn(`no consumer found for producer:${i}`);return}l.info(`closing consumer ${r}, producer id: ${i}`),a(this,Y).closeConsumer(r).then(()=>{l.info(`closed consumer: ${r}`),a(this,Y).producerIdToConsumerIdMap.delete(i),this.context.getValue("peerSessionStore").emit(P.CONSUMER_CLOSED,{id:r})}).catch(n=>{l.error("error closing consumer",{error:n})})}catch(e){l.error("error on producer close broadcast",{error:e})}}),a(this,Ct).on(a(this,xt).mediaRoomTerminationBroadcastResponse,()=>{!this.mediaJoined&&!a(this,Ls)&&!a(this,Vs)||(l.warn("media hub termination broadcast received, rejoining room"),this.context.getValue("peerSessionStore").emit(P.ROOM_NODE_DISCONNECTED),a(this,nl).call(this))})})}handleCallstatsEvents(){J.onConsumerScore(t=>{t.forEach((e,i)=>{const r=a(this,Y).consumers.get(i);r&&this.context.getValue("peerSessionStore").emit(P.CONSUMER_SCORE_UPDATE,{id:i,kind:r.kind,peerId:r.peerId,score:e.score,scoreStats:e})})}),J.onProducerScore(t=>{t.forEach((e,i)=>{const r=Array.from(a(this,Y).producers.values()).find(n=>n.id===i);r&&this.context.getValue("peerSessionStore").emit(P.PRODUCER_SCORE_UPDATE,{id:i,kind:r.kind,appData:r.appData,score:e.score,scoreStats:e})})})}handlePeerCapabilities(t,e){var i,r,n,s;for(let o=0;o<=Qt.length;o+=1){const c=Qt[o];if(((r=(i=e==null?void 0:e.receiver)==null?void 0:i.video)==null?void 0:r.codecs.findIndex(d=>d.mimeType===c))>=0||o===Qt.length-1){a(this,Fs).get(c).add(t);break}}for(let o=0;o<=Qt.length;o+=1){const c=Qt[o];if(((s=(n=e==null?void 0:e.sender)==null?void 0:n.video)==null?void 0:s.codecs.findIndex(d=>d.mimeType===c))>=0||o===Qt.length-1){a(this,Us).get(c).add(t);break}}}handlePeerLeaving(t){z.hasFeature(ie.FORCE_VIDEO_CODEC)||(a(this,Us).forEach(e=>e.delete(t)),a(this,Fs).forEach((e,i)=>{e.delete(t),!(e.size!==0||i===Qt[0])&&this.disableWebcam(i)}))}},il=new WeakMap,rl=new WeakMap,Ct=new WeakMap,Y=new WeakMap,Mo=new WeakMap,ar=new WeakMap,xt=new WeakMap,Ls=new WeakMap,Vs=new WeakMap,xs=new WeakMap,nl=new WeakMap,Ci=new WeakMap,xr=new WeakMap,Ao=new WeakMap,Us=new WeakMap,Fs=new WeakMap,Ut=new WeakMap,Xt=new WeakMap,On=new WeakSet,Bs=function(){return this.context.getValue("connectionHandler")},Gh=new WeakSet,Gv=function(t,e,i,r){return u(this,null,function*(){v(this,rl,t);try{return a(this,Ci)?yield a(this,Ci):yield F(this,sl,Kh).call(this,t,e,i,r),F(this,Jh,Jv).call(this,e),{roomJoined:yield F(this,$h,$v).call(this)}}catch(n){return l.error("Failed to complete room join",{error:n}),{roomJoined:!1}}finally{v(this,Ci,null)}})},$h=new WeakSet,$v=function(){return u(this,null,function*(){try{this.mediaJoined=!0;const{roomState:t}=yield a(this,Y).socketHandler.notifySelfJoinComplete();return v(this,il,t.roomUuid),v(this,Vs,!0),v(this,Ls,!1),!0}catch(t){return l.error("Error completing room join",{error:t}),this.mediaJoined=!1,!1}})},Jh=new WeakSet,Jv=function(t){navigator.product!=="ReactNative"&&setTimeout(()=>{try{const e={userId:this.context.getValue("userId"),peerId:this.peerId,roomUUID:t,roomViewType:"groupCall",deviceInfo:j(L({},Ie.getDeviceInfo()),{userAgent:navigator.userAgent,memory:navigator.deviceMemory,cpus:navigator.hardwareConcurrency}),sdkName:this.context.getValue("sdkName"),sdkVersion:this.context.getValue("sdkVersion"),metaData:{},permissions:{}};J.roomJoined(e)}catch(e){l.error("Error reporting room joined analytics",{error:e})}},0)},sl=new WeakSet,Kh=function(t,e,i,r){return u(this,null,function*(){var n,s;try{(s=a(this,Ao))!=null||v(this,Ao,F(n=ty,zh,Kv).call(n));const o=F(this,Qh,zv).call(this);yield F(this,Xh,Yv).call(this,t,e,i,o),yield a(this,Y).setupTransports({send:!0,recv:!0}),yield F(this,Zh,Qv).call(this,r)}catch(o){throw l.error("Failed to initialize connection",{error:o}),o}})},zh=new WeakSet,Kv=function(){const{ipInfo:t}=ht();if(!(t!=null&&t.loc))return;const[e,i]=t.loc.split(",").map(parseFloat);return{latitude:e,longitude:i}},Qh=new WeakSet,zv=function(){var t;const e=(t=z.getValue(ie.FORCE_VIDEO_CODEC))==null?void 0:t.toString(),i=ND(e);return v(this,Mo,i),i},Xh=new WeakSet,Yv=function(t,e,i,r){return u(this,null,function*(){yield Tv((n,s)=>u(this,null,function*(){if(!a(this,Ct).isConnected){s(new Error("Socket is not connected"));return}n>0&&l.warn("Retry: send joinRoom message",{debuggingHint:`Retry attempt ${n}`});try{yield a(this,Y).socketHandler.joinRoom(e,t,r,i,a(this,Ao))}catch(o){throw l.error("Failed to send joinRoom message after retries",{error:o}),o}}),{delayTime:1e3,strategy:"exponential",maxRetryCount:z.hasFeature(ie.ENABLE_HIVE_INFINITE_RETRIES)?1/0:3})})},Zh=new WeakSet,Qv=function(t){return u(this,null,function*(){if(!(a(this,ar)===Ne.HIVE||!z.hasFeature(ie.PRECREATE_PRODUCERS)||!t))try{const e=[];if(t.canProduceVideo===H.Allowed&&e.push(this.shareWebcam(QD(!0))),t.canProduceAudio===H.Allowed){const i=YD(!0);i&&e.push(this.shareMic(i))}e.length>0&&(yield Promise.all(e))}catch(e){l.warn("Failed to precreate producers",{error:e})}})},gt=new WeakSet,Pt=function(t){return a(this,Ut).get(t)},Ws=new WeakSet,Do=function(t,e){return a(this,Ut).set(t,e)},ep=new WeakSet,Xv=function(t){return a(this,Ut).delete(t)},tp=new WeakSet,Zv=function(t){return{track:t,encodings:[{priority:"high"}],codecOptions:[{name:"opus"}],appData:{e2ee:this.e2ee},stopTracks:!1,zeroRtpOnPause:a(this,ar)!==Ne.CF}},ip=new WeakSet,ey=function(t,e){return{track:t,codecOptions:e?e.map(i=>({name:i.split("/")[1]})):[{name:"VP8"}],appData:{screenShare:!1,e2ee:this.e2ee},stopTracks:!1}},f(Yh,zh),Yh);let ue=ty;me([S.trace("MediaNodeClient.reset",{country:S.location.country})],ue.prototype,"reset",1),me([S.trace("MediaNodeClient.joinRoom")],ue.prototype,"joinRoom",1),me([S.trace("MediaNodeClient.leaveRoom")],ue.prototype,"leaveRoom",1),me([S.trace("MediaNodeClient.activatePeers")],ue.prototype,"activatePeers",1),me([S.trace("MediaNodeClient.createConsumers")],ue.prototype,"createConsumers",1),me([S.trace("MediaNodeClient.closeConsumers")],ue.prototype,"closeConsumers",1),me([S.trace("MediaNodeClient._shareWebcam")],ue.prototype,"_shareWebcam",1),me([S.trace("MediaNodeClient.shareWebcam")],ue.prototype,"shareWebcam",1),me([S.trace("MediaNodeClient.shareScreen")],ue.prototype,"shareScreen",1),me([S.trace("MediaNodeClient.shareMic")],ue.prototype,"shareMic",1),me([S.trace("MediaNodeClient.pauseMic")],ue.prototype,"pauseMic",1),me([S.trace("MediaNodeClient.pauseWebcam")],ue.prototype,"pauseWebcam",1),me([S.trace("MediaNodeClient.resumeMic")],ue.prototype,"resumeMic",1),me([S.trace("MediaNodeClient.resumeWebcam")],ue.prototype,"resumeWebcam",1),me([S.trace("MediaNodeClient.disableWebcam")],ue.prototype,"disableWebcam",1),me([S.trace("HiveClient.disableMic")],ue.prototype,"disableMic",1),me([S.trace("HiveClient.disableScreenShare")],ue.prototype,"disableScreenShare",1),me([S.trace("MediaNodeClient.muteSelf")],ue.prototype,"muteSelf",1),me([S.trace("MediaNodeClient.resetVideoProducers")],ue.prototype,"resetVideoProducers",1),me([S.trace("MediaNodeClient.changeDisplayName")],ue.prototype,"changeDisplayName",1),me([S.trace("MediaNodeClient.kickPeer")],ue.prototype,"kick",1),me([S.trace("MediaNodeClient.kickAllPeers")],ue.prototype,"kickAll",1),me([S.trace("MediaNodeClient.muteAll")],ue.prototype,"muteAll",1),me([S.trace("MediaNodeClient.muteAllVideo")],ue.prototype,"muteAllVideo",1),me([S.trace("MediaNodeClient.disableAudio")],ue.prototype,"disableAudio",1),me([S.trace("MediaNodeClient.disableVideo")],ue.prototype,"disableVideo",1),me([S.trace("MediaNodeClient.pinPeer")],ue.prototype,"pinPeer",1),me([S.trace("MediaNodeClient.validateScreenShare")],ue.prototype,"validateScreenShare",1);function iy(t,e,i){const r=t.getValue("roomNodeClient");if(r){if(r)return r;throw new Error("Room node client already set up.")}const n=new ue(t,e,i);return t.setValue("roomNodeClient",n),n}function ry(t){const e=t.getValue("roomNodeClient");try{e==null||e.leaveRoom()}catch(i){l.error("roomNodeClient::cleanupRoomNodeClient")}t.setValue("roomNodeClient",void 0)}var eO=Object.defineProperty,tO=Object.getOwnPropertyDescriptor,Nn=(t,e,i,r)=>{for(var n=r>1?void 0:r?tO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&eO(e,i,n),n},Ln,Hi,de,Ft,Zt,ny;const sy=(ny=class{constructor(t,e,i,r){f(this,Ft),m(this,"self"),m(this,"authToken"),f(this,Ln,void 0),m(this,"viewType"),f(this,Hi,void 0),f(this,de,void 0);const{socket:n}=i,s=t.getValue("authToken");this.self=e,v(this,de,t),this.viewType=r,this.authToken=s,v(this,Ln,n),v(this,Hi,i),e.config.viewType!==Rt.Chat&&this.setupEvents()}get peerId(){return a(this,de).getValue("peerId")}get mediaJoined(){return a(this,de).getValue("connectionHandler").mediaJoined}static init(t,e,i,r,n){return u(this,null,function*(){const s=ht(),o=t.getValue("peerId"),c=!!t.getValue("cachedUserDetails"),d=yield tt.__init__(t,i,r,n,n.name,c);if(navigator.product!=="ReactNative"){const h=!z.hasFeature(ie.PRECALL_BANDWIDTH_TEST);setTimeout(()=>u(this,null,function*(){const p=yield d.getAllDevices();l.info("populated_full_device_list",{devices:JSON.stringify(p)}),J.devices("AUDIO",p==null?void 0:p.filter(g=>g.kind==="audioinput")),J.devices("VIDEO",p==null?void 0:p.filter(g=>g.kind==="videoinput")),J.devices("SPEAKER",p==null?void 0:p.filter(g=>g.kind==="audiooutput")),l.info("Callstats:: initializing");try{yield J.initialize({peerId:o,engineName:Ie.getDeviceInfo().engineName,env:t.getValue("env"),iceServers:yield s.getICEServers(),apiBase:t.getValue("apiBase"),flags:z.getAllFlags(),logger:l,apiHostnames:xg(t),skipConnectivityChecks:h}),l.info("Callstats:: initialized")}catch(g){l.error("Callstats:: initialization failed",{error:g})}}),0)}else l.info("Callstats:: Skipped initialization due to navigator product being ReactNative.");return new sy(t,d,e,n.viewType)})}shareMediaTracks(){return u(this,null,function*(){var t;const{audioTrack:e,videoTrack:i,permissions:r,audioEnabled:n,videoEnabled:s,screenShareEnabled:o,screenShareTracks:c}=this.self;if(r.canProduceAudio===H.Allowed&&n)try{yield a(this,Ft,Zt).shareMic(e),this.self.audioEnabled||a(this,Ft,Zt).pauseMic()}catch(d){this.self.disableAudio()}if(r.canProduceVideo===H.Allowed&&s)try{const d=yield a(this,Ft,Zt).shareWebcam(i);d&&d.id!==i.id&&z.hasFeature(ie.EXP_RESHARE)&&(yield a(this,Ft,Zt).shareWebcam(d)),this.self.videoEnabled||a(this,Ft,Zt).pauseWebcam()}catch(d){this.self.disableVideo()}if(r.canProduceScreenshare===H.Allowed&&o)try{yield(t=a(this,Ft,Zt))==null?void 0:t.shareScreen({video:c.video,audio:c.audio})}catch(d){this.self.disableScreenShare()}})}kickHandler(t){return u(this,null,function*(){let e="kicked";(t==null?void 0:t.kickType)==="kickAll"&&(e="ended"),this.leaveRoom(e)})}waitlistedHandler(){l.info("SelController.waitlisted"),this.self.waitlistStatus="waiting",this.self.roomState="waitlisted",this.self.emit("waitlisted")}waitlistAcceptHandler(){if(l.info("SelController.waitlistAccepted"),this.self.waitlistStatus==="accepted"){l.warn("SelfController.WAITLIST_ACCEPTED.UserAlreadyAccepted");return}this.self.waitlistStatus="accepted",this.joinRoom()}waitlistRejectedHandler(){if(l.info("SelfController.waitlistRejected"),this.self.waitlistStatus==="rejected"){l.warn("SelfController.WAITLIST_REJECTED.UserAlreadyRejected");return}this.self.waitlistStatus="rejected",this.leaveRoom("rejected")}resetSelf(t){return u(this,null,function*(){J.callEnded(),a(this,Ft,Zt).reset(),t&&(yield this.joinRoom(t))})}setupEvents(){a(this,de).getValue("peerSessionStore").on(P.RESET_PRODUCER_STATE,()=>u(this,null,function*(){this.mediaJoined&&this.shareMediaTracks()})),a(this,de).getValue("peerSessionStore").on(P.ROOM_NODE_RECONNECTED,()=>{this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:!0})}),a(this,de).getValue("peerSessionStore").on(P.ROOM_NODE_DISCONNECTED,()=>{this.self.roomState!=="disconnected"&&(this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"}))}),a(this,de).getValue("peerSessionStore").on(P.ROOM_NODE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),a(this,de).getValue("peerSessionStore").on(P.SOCKET_SERVICE_RECONNECTED,({wasJoinAttempted:t})=>{t===!1&&(this.self.roomState="init"),this.resetSelf(t)}),a(this,de).getValue("peerSessionStore").on(P.SOCKET_SERVICE_DISCONNECTED,({joinAttempted:t})=>{if(this.self.roomState==="disconnected")return;let{peerId:e}=this;t&&z.hasFeature(ie.REFRESH_ID_ON_DISCONNECTION)&&(e=jn()),a(this,Ln).updateURL(e),S.resetPeerId(e),ht().setHeader("dyte-tracing-id",e),en.remapContext(e,a(this,de)),this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"})}),a(this,de).getValue("peerSessionStore").on(P.SOCKET_SERVICE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),a(this,Hi).on(B.waitingRoomRequestAccepted,()=>{this.waitlistAcceptHandler()}),a(this,Hi).on(Jc.updateUserPreset,t=>{t.updatePeersPresets.forEach(e=>{e.userIds===this.self.userId&&a(this,de).getValue("peerSessionStore").emit(P.UPDATE_PERMISSIONS,e.patch)})}),a(this,Hi).on(B.waitingRoomRequestDenied,()=>{this.waitlistRejectedHandler()}),a(this,Hi).on(B.kick,()=>{this.kickHandler({kickType:"kick"})}),a(this,Hi).on(B.kickAll,()=>{this.kickHandler({kickType:"kickAll"})}),a(this,de).getValue("peerSessionStore").onAsync(P.JOIN_MEDIA_ROOM,this.joinMediaRoom.bind(this)),a(this,de).getValue("peerSessionStore").on(P.PRODUCER_SCORE_UPDATE,({score:t,kind:e,appData:i,scoreStats:r})=>{var n;const s=(n=i==null?void 0:i.screenShare)!=null?n:!1;this.self.emit("mediaScoreUpdate",{kind:e,isScreenshare:s,score:t,participantId:this.self.id,scoreStats:r})}),a(this,de).getValue("peerSessionStore").on(P.MUTE_SELF,()=>u(this,null,function*(){this.self.audioEnabled&&(yield this.self.disableAudio(),J.audioOff())})),a(this,de).getValue("peerSessionStore").on(P.MUTE_SELF_VIDEO,()=>u(this,null,function*(){this.self.videoEnabled&&(yield this.self.disableVideo(),J.videoOff())})),a(this,de).getValue("peerSessionStore").onAsync(P.LEAVE_MEDIA_ROOM,this.leaveMediaRoom.bind(this)),a(this,de).getValue("peerSessionStore").on(P.PIP_HANGUP,this.leaveRoom.bind(this))}joinRoom(t=!1){return u(this,null,function*(){try{const{peer:e}=yield a(this,Hi).joinRoom(this.self);a(this,Hi).socket.flush();const i=Fu(e.stageType);if(a(this,de).setValue("stageStatus",i,!1),e.waitlisted){this.waitlistedHandler();return}yield this.joinMediaRoom(t),a(this,de).notify("stageStatus")}catch(e){throw l.error("Error in joinRoom",{error:e}),e}})}leaveRoom(t="left"){return u(this,null,function*(){var e,i;if(t==="rejected"){try{(e=a(this,Ln))==null||e.disconnect()}catch(r){l.error("SelfController::leaveRoom::socketDisconnect")}this.self.roomState=t,this.self.emit("roomLeft",{state:t});return}this.self.setIsPinned(!1),a(this,de).setValue("stageStatus","OFF_STAGE",!1),yield this.leaveMediaRoom(t),a(this,de).notify("stageStatus");try{(i=a(this,Ln))==null||i.disconnect()}catch(r){l.error("SelfController::leaveRoom::socketDisconnect")}ry(a(this,de)),yield a(this,de).getValue("roomSocketHandler").cleanup(),this.self.roomState=t,this.self.emit("roomLeft",{state:t})})}joinMediaRoom(t=!1){return u(this,null,function*(){var e,i;const{peerId:r,viewType:n,meetingId:s,stageStatus:o,roomNodeOptions:c}=a(this,de).getAllValues(),{sfu:d}=c;try{if(n===Rt.Livestream){if(o!=="ON_STAGE"){this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:t});return}iy(a(this,de),d,{socket:a(this,Ln),peerId:r})}const{canProduceAudio:h,canProduceVideo:p,canProduceScreenshare:g}=this.self.permissions,{roomJoined:y}=(i=yield(e=a(this,Ft,Zt))==null?void 0:e.joinRoom(this.self.name,s,t,t,{canProduceAudio:h,canProduceVideo:p,canProduceScreenshare:g}))!=null?i:{};if(!y)return;o==="ON_STAGE"&&(yield this.shareMediaTracks()),this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:t})}catch(h){throw l.error("Error:SelfController.mediaRoomJoin",{error:h}),new w("Error: could not join media room","0002")}})}leaveMediaRoom(t){return u(this,null,function*(){const e=a(this,de).getValue("viewType");t!=="connected-meeting"&&(yield this.cleanupSelf()),!(t==="stageLeft"&&e===Rt.Webinar)&&a(this,Ft,Zt)&&(a(this,Ft,Zt).mediaJoined&&t!=="disconnected"&&(yield a(this,Ft,Zt).leaveRoom()),!(t==="stageLeft"&&e===Rt.Livestream)&&(a(this,Ft,Zt).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()})}},Ln=new WeakMap,Hi=new WeakMap,de=new WeakMap,Ft=new WeakSet,Zt=function(){return a(this,de).getValue("roomNodeClient")},ny);let Ur=sy;Nn([S.trace("SelfController.resetSelf")],Ur.prototype,"resetSelf",1),Nn([S.trace("SelfController.setupEvents")],Ur.prototype,"setupEvents",1),Nn([S.trace("SelfController.joinRoom")],Ur.prototype,"joinRoom",1),Nn([S.trace("SelfController.leaveRoom")],Ur.prototype,"leaveRoom",1),Nn([S.trace("SelfController.joinMediaRoom")],Ur.prototype,"joinMediaRoom",1),Nn([S.trace("SelfController.leaveMediaRoom")],Ur.prototype,"leaveMediaRoom",1),Nn([S.trace("SelfController.init")],Ur,"init",1);var al;class iO{constructor(e){f(this,al,void 0),v(this,al,e)}on(e,i){let r;e===B.roomPeerCount?r=sf.fromBinary.bind(sf):r=kf.fromBinary.bind(kf),a(this,al).on(e,({payload:n})=>{const s=r(n);return i(s)})}}al=new WeakMap;var ol;class rO{constructor(e){f(this,ol,void 0),v(this,ol,e)}on(e,i){let r,n;switch(e){case B.transcript:{r=pu.fromBinary.bind(pu),n=pu.create();break}default:{l.debug("AISocketHandler switch case hit default, event not accounted for.");break}}a(this,ol).on(e,({payload:s})=>{let o=n;try{o=r(s)}catch(c){l.error("chatSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}}ol=new WeakMap;var nO=Object.defineProperty,sO=Object.getOwnPropertyDescriptor,rp=(t,e,i,r)=>{for(var n=r>1?void 0:r?sO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&nO(e,i,n),n},Fr;class cl{constructor(e){f(this,Fr,void 0),v(this,Fr,e)}getPolls(){return a(this,Fr).sendMessagePromise(Xi.getPolls)}createPoll(e,i,r=!1,n=!1){const s={anonymous:r,hideVotes:n,question:e,options:i};return a(this,Fr).sendMessage(Xi.createPoll,sA.toBinary(s))}votePoll(e,i){const r={index:i,pollId:e};return a(this,Fr).sendMessage(Xi.votePoll,oA.toBinary(r))}on(e,i){let r,n;switch(e){case Xi.updatePoll:case Xi.createPoll:case Xi.votePoll:{r=Iu.fromBinary.bind(Iu),n=Iu.create();break}}a(this,Fr).on(e,({payload:s})=>{let o=n;try{o=r(s)}catch(c){l.error("pollSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}removeListeners(e){a(this,Fr).removeListeners(e)}}Fr=new WeakMap,rp([S.trace("PollSocketHandler.getPolls")],cl.prototype,"getPolls",1),rp([S.trace("PollSocketHandler.createPoll")],cl.prototype,"createPoll",1),rp([S.trace("PollSocketHandler.votePoll")],cl.prototype,"votePoll",1);var aO=Object.defineProperty,oO=Object.getOwnPropertyDescriptor,cO=(t,e,i,r)=>{for(var n=r>1?void 0:r?oO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&aO(e,i,n),n},qi;class ay{constructor(e,i){m(this,"socket"),f(this,qi,void 0),v(this,qi,e),this.socket=i,this.handleSocketEvents(),a(this,qi).setValue("roomSocketHandler",this)}cleanup(){return u(this,null,function*(){var e;try{(e=this.socket)==null||e.disconnect()}catch(i){l.error("roomSocketHandler::cleanup")}})}joinRoom(e){return u(this,null,function*(){var i;this.socket.joinAttempted=!0;const r={capabilities:[],peer:{displayName:(i=e.name)!=null?i:"Participant",customParticipantId:e.customParticipantId,peerId:e.id,userId:e.userId,displayPictureUrl:e.picture,waitlisted:!1},roomUuid:""},n=this.socket.sendMessagePromise(B.joinRoom,$C.toBinary(r));try{const{peer:s}=Xn.fromBinary((yield n).payload);a(this,qi).getValue("connectionHandler").socketJoined=!0,a(this,qi).getValue("peerSessionStore").emit(P.SOCKET_SERVICE_ROOM_JOINED,{peer:s});const o=this.getRoomState(),c=this.getRoomPeersNonPaginated(),[{room:d},{peers:h}]=yield Promise.all([o,c]);return a(this,qi).getValue("peerSessionStore").emit(P.ROOM_STATE,d),a(this,qi).getValue("peerSessionStore").emit(P.SOCKET_PEERS,h),{peer:s}}catch(s){throw l.error("RoomSocketHandler.joinRoom.failed",{error:s}),new w("Error: RoomSocketHandler.joinRoom failed.","0002",s)}})}getAllAddedParticipants(){return u(this,null,function*(){try{return MP.fromBinary((yield this.socket.sendMessagePromise(B.getAllAddedParticipants)).payload).participants.map(e=>{var i=e,{id:r}=i,n=vc(i,["id"]);return j(L({},n),{userId:r})})}catch(e){return[]}})}getRoomPeers(e,i,r){return u(this,null,function*(){let n;try{const s={seachQuery:e,limit:i,offset:r},o=yield this.socket.sendMessagePromise(B.getRoomPeersInfo,VC.toBinary(s));n=fu.fromBinary(o.payload)}catch(s){l.error("getRoomPeers::binary_decode_error",{error:s})}return n})}getRoomPeersNonPaginated(){return u(this,null,function*(){let e;try{const i=yield this.socket.sendMessagePromise(B.getRoomPeersInfo);e=fu.fromBinary(i.payload)}catch(i){l.error("getRoomJoinedPeers::binary_decode_error",{error:i})}return e})}getStagePeers(){return u(this,null,function*(){let e;try{const i=yield this.socket.sendMessagePromise(B.getRoomPeersInfo);e=fu.fromBinary(i.payload)}catch(i){l.error("getRoomJoinedPeers::binary_decode_error",{error:i})}return e})}getPeerInfo(e){return u(this,null,function*(){let i;try{const r=yield this.socket.sendMessagePromise(B.getPeerInfo,cf.toBinary({peerId:e}));i=Xn.fromBinary(r.payload)}catch(r){l.error("getPeerInfo::binary_decode_error",{error:r})}return i})}getRoomState(){return u(this,null,function*(){let e=of.create();try{const i=yield this.socket.sendMessagePromise(B.getRoomInfo);e=of.fromBinary(i.payload)}catch(i){l.error("getRoomState::binary_decode_error",{error:i})}return e})}getRoomStageState(){return u(this,null,function*(){let e=mf.create();try{const i=yield this.socket.sendMessagePromise(B.getRoomStageState);e=mf.fromBinary(i.payload)}catch(i){l.error("getRoomStageState::binary_decode_error",{error:i})}return e})}broadcastMessage(e,i){return u(this,null,function*(){const r={type:e,payload:new TextEncoder().encode(JSON.stringify(i)),timestamp:Date.now(),ids:[]};return this.socket.sendMessagePromise(B.broadcastMessage,pa.toBinary(r))})}broadcastToMeetings(e,i,r){return u(this,null,function*(){const n={type:e,payload:new TextEncoder().encode(JSON.stringify(r)),timestamp:Date.now(),ids:i,broadcastType:1};return this.socket.sendMessagePromise(B.broadcastToEntity,pa.toBinary(n))})}broadcastToPeers(e,i,r){return u(this,null,function*(){const n={type:e,payload:new TextEncoder().encode(JSON.stringify(r)),timestamp:Date.now(),ids:i,broadcastType:0};return this.socket.sendMessage(B.broadcastToEntity,pa.toBinary(n))})}leaveRoom(){return u(this,null,function*(){this.socket.joinAttempted=!1,this.socket.sendMessagePromise(B.leaveRoom,KC.toBinary({}))})}kick(e){return u(this,null,function*(){const i={peerIds:[e]};this.socket.sendMessage(B.kick,hf.toBinary(i))})}kickAll(e=!1){return u(this,null,function*(){const i={propagateKickAcrossRooms:e};this.socket.sendMessage(B.kickAll,Yg.toBinary(i))})}getWaitingRoomRequests(){this.socket.sendMessage(B.getWaitingRoomRequests)}acceptWaitingRoomRequest(e){const i={userIds:e};this.socket.sendMessage(B.acceptWaitingRoomRequests,VP.toBinary(i))}rejectWaitingRoomRequest(e){const i={userIds:e};this.socket.sendMessage(B.denyWaitingRoomRequests,UP.toBinary(i))}updatePermissions(e,i){return u(this,null,function*(){const r={updatePeersPresets:[]};return e.forEach(n=>{r.updatePeersPresets.push({userIds:n,patch:i})}),this.socket.sendMessagePromise(Jc.updateUserPreset,pR.toBinary(r))})}handleSocketEvents(){this.socket.on(B.broadcastMessage,({payload:e})=>{try{const i=pa.fromBinary(e);a(this,qi).getValue("peerSessionStore").emit(P.ROOM_MESSAGE,{payload:JSON.parse(new TextDecoder().decode(i.payload)),type:i.type,timestamp:i.timestamp})}catch(i){l.error("failed to decode broadcast message:",i)}}),this.socket.on(B.broadcastToEntity,({payload:e})=>{try{const i=pa.fromBinary(e);a(this,qi).getValue("peerSessionStore").emit(P.MESSAGE,{payload:JSON.parse(new TextDecoder().decode(i.payload)),type:i.type,timestamp:i.timestamp})}catch(i){l.error("failed to decode peer broadcast message:",i)}})}on(e,i){let r,n;switch(e){case B.joinRoom:case B.leaveRoom:case B.kick:case B.kickAll:{r=Xn.fromBinary.bind(Xn),n=Xn.create();break}case B.getWaitingRoomRequests:{r=(s,o)=>s?pf.fromBinary(s,o):{requests:[]},n=pf.create();break}case B.recordingPaused:case B.recordingStarted:case B.recordingStopped:{r=If.fromBinary.bind(If);break}case Jc.updateUserPreset:{r=ff.fromBinary.bind(ff);break}case gi.peerJoinedBroadcast:case ii.peerJoinedBroadcast:{r=Zg.fromBinary.bind(Zg);break}case gi.selfJoinComplete:case ii.selfJoinComplete:{r=uu.fromBinary.bind(uu);break}case gi.globalPeerPinBroadcast:case ii.globalPeerPinBroadcast:{r=rf.fromBinary.bind(rf);break}case gi.selectedPeer:case ii.selectedPeer:{r=lu.fromBinary.bind(lu);break}case gi.selectedPeerDiff:case ii.selectedPeerDiff:{r=Xg.fromBinary.bind(Xg);break}case gi.leaveRoom:case ii.leaveRoom:{r=hu.fromBinary.bind(hu);break}}this.socket.on(e,({payload:s})=>{let o=n;if(!r)return i(void 0);try{o=r(s)}catch(c){l.error("roomSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}getUserPermissions(e){return u(this,null,function*(){const i={userIds:[e]};try{const r=yield this.socket.sendMessagePromise(Jc.getUserPresets,aR.toBinary(i)),n=lR.fromBinary(r.payload).peerPresets[0],s=new TextDecoder().decode(n.preset),o=JSON.parse(s).permissions;return{chat:o.chat,polls:o.polls,plugins:o.plugins}}catch(r){throw l.error("Error in getting user preset",{error:r}),r}})}}qi=new WeakMap,cO([S.trace("RoomSocketHandler.joinRoom")],ay.prototype,"joinRoom",1);var ei;class dO{constructor(e){f(this,ei,void 0),v(this,ei,e)}getStageRequests(){return u(this,null,function*(){const{payload:e}=yield a(this,ei).sendMessagePromise(B.getStageRequests);return e?wu.fromBinary(e):{stageRequests:[]}})}requestAccess(){a(this,ei).sendMessage(B.requestStageAccess)}cancelRequestAccess(){a(this,ei).sendMessage(B.cancelStageRequest)}grantAccess(e){return u(this,null,function*(){const i={userIds:e};a(this,ei).sendMessage(B.grantStageAccess,zM.toBinary(i))})}denyAccess(e){return u(this,null,function*(){const i={userIds:e};a(this,ei).sendMessage(B.denyStageAccess,QM.toBinary(i))})}joinStage(){return a(this,ei).sendMessagePromise(B.joinStage,void 0,void 0,B.peerStageStatusUpdate)}leaveStage(e){const i={userIds:[e]};return a(this,ei).sendMessagePromise(B.leaveStage,_f.toBinary(i),void 0,B.peerStageStatusUpdate)}kick(e){const i={userIds:e};return a(this,ei).sendMessagePromise(B.leaveStage,_f.toBinary(i))}on(e,i){let r;switch(e){case B.grantStageAccess:case B.denyStageAccess:{r=void 0;break}case B.getStagePeers:{r=bf.fromBinary.bind(bf);break}case B.getStageRequests:case B.requestStageAccess:case B.cancelStageRequest:{r=wu.fromBinary.bind(wu);break}case B.peerStageStatusUpdate:{r=nf.fromBinary.bind(nf);break}}a(this,ei).on(e,({payload:n,id:s})=>{if(!n||!r)return i(void 0,s);const o=r(n);return i(o,s)})}getPeerInfo(e){return u(this,null,function*(){const i=yield a(this,ei).sendMessagePromise(B.getPeerInfo,cf.toBinary({peerId:e}));return Xn.fromBinary(i.payload)})}}ei=new WeakMap;var it;class lO{constructor(e){f(this,it,void 0),v(this,it,e)}addPlugin(e,i){a(this,it).sendMessage(K.addPlugin,hM.toBinary({pluginId:e,staggered:i}))}removePlugin(e){a(this,it).sendMessage(K.removePlugin,mM.toBinary({pluginId:e,staggered:!1}))}getActivePlugins(){return u(this,null,function*(){const{payload:e}=yield a(this,it).sendMessagePromise(K.getPlugins);return e?xM.fromBinary(e):{plugins:[]}})}customPluginEventToRoom(e,i,r){const n={pluginId:e,pluginData:new TextEncoder().encode(JSON.stringify(i))};a(this,it).sendMessage(K.customPluginEventToRoom,_M.toBinary(n),r)}customPluginEventToPeers(e,i,r,n){const s={pluginId:e,peerIds:i,pluginData:new TextEncoder().encode(JSON.stringify(r))};a(this,it).sendMessage(K.customPluginEventToPeers,IM.toBinary(s),n)}enablePluginForRoom(e,i){a(this,it).sendMessage(K.enablePluginForRoom,fM.toBinary({pluginId:e}),i)}enablePluginForPeers(e,i,r){a(this,it).sendMessage(K.enablePluginForPeers,EM.toBinary({pluginId:e,peerIds:i}),r)}disablePluginForRoom(e,i){a(this,it).sendMessage(K.disablePluginForRoom,yM.toBinary({pluginId:e}),i)}disablePluginForPeers(e,i,r){a(this,it).sendMessage(K.disablePluginForPeers,kM.toBinary({pluginId:e,peerIds:i}),r)}storeInsertKeys(e,i,r,n){const s={pluginId:e,storeName:i,insertKeys:r.map(o=>({storeKey:o.key,payload:new TextEncoder().encode(JSON.stringify(o.payload))}))};a(this,it).sendMessage(K.storeInsertKeys,yf.toBinary(s),n)}storeGetKeys(e,i,r,n){const s={pluginId:e,storeName:i,getKeys:r.map(o=>({storeKey:o.key}))};a(this,it).sendMessage(K.storeGetKeys,MM.toBinary(s),n)}storeDeleteKeys(e,i,r,n){const s={pluginId:e,storeName:i,deleteKeys:r.map(o=>({storeKey:o.key}))};a(this,it).sendMessage(K.storeDeleteKeys,DM.toBinary(s),n)}storeDelete(e,i,r){a(this,it).sendMessage(K.storeDelete,NM.toBinary({pluginId:e,storeName:i}),r)}getPluginDataOld(e,i){l.info("getPluginDataOld",{plugin:{id:e,storeName:i}})}storePluginDataOld(e,i,r){const n={pluginId:e,storeName:i,insertKeys:[{storeKey:r.key,payload:new TextEncoder().encode(JSON.stringify(r))}]};a(this,it).sendMessage(K.storeInsertKeys,yf.toBinary(n))}on(e,i){let r;switch(e){case K.addPlugin:case K.enablePluginForPeers:case K.enablePluginForRoom:{r=_u.fromBinary.bind(_u);break}case K.removePlugin:case K.disablePluginForPeers:case K.disablePluginForRoom:{r=Sf.fromBinary.bind(Sf);break}case K.customPluginEventToPeers:case K.customPluginEventToRoom:{r=Tf.fromBinary.bind(Tf);break}case K.storeInsertKeys:case K.storeGetKeys:case K.storeDeleteKeys:case K.storeDelete:{r=Ef.fromBinary.bind(Ef);break}}a(this,it).on(e,({payload:n,id:s})=>{const o=r(n);return i(o,s)})}}it=new WeakMap;var uO=Object.defineProperty,hO=(t,e,i)=>e in t?uO(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,pO=(t,e,i)=>(hO(t,typeof e!="symbol"?e+"":e,i),i),np=(t,e,i)=>{if(!e.has(t))throw TypeError("Cannot "+i)},N=(t,e,i)=>(np(t,e,"read from private field"),i?i.call(t):e.get(t)),Pe=(t,e,i)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,i)},he=(t,e,i,r)=>(np(t,e,"write to private field"),r?r.call(t,i):e.set(t,i),i),Ae=(t,e,i)=>(np(t,e,"access private method"),i),dl={},mO={get exports(){return dl},set exports(t){dl=t}},js=typeof Reflect=="object"?Reflect:null,oy=js&&typeof js.apply=="function"?js.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)},ll;js&&typeof js.ownKeys=="function"?ll=js.ownKeys:Object.getOwnPropertySymbols?ll=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:ll=function(t){return Object.getOwnPropertyNames(t)};function gO(t){console&&console.warn&&console.warn(t)}var cy=Number.isNaN||function(t){return t!==t};function ge(){ge.init.call(this)}mO.exports=ge,dl.once=SO,ge.EventEmitter=ge,ge.prototype._events=void 0,ge.prototype._eventsCount=0,ge.prototype._maxListeners=void 0;var dy=10;function ul(t){if(typeof t!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}Object.defineProperty(ge,"defaultMaxListeners",{enumerable:!0,get:function(){return dy},set:function(t){if(typeof t!="number"||t<0||cy(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");dy=t}}),ge.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},ge.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||cy(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 ly(t){return t._maxListeners===void 0?ge.defaultMaxListeners:t._maxListeners}ge.prototype.getMaxListeners=function(){return ly(this)},ge.prototype.emit=function(t){for(var e=[],i=1;i<arguments.length;i++)e.push(arguments[i]);var r=t==="error",n=this._events;if(n!==void 0)r=r&&n.error===void 0;else if(!r)return!1;if(r){var s;if(e.length>0&&(s=e[0]),s instanceof Error)throw s;var o=new Error("Unhandled error."+(s?" ("+s.message+")":""));throw o.context=s,o}var c=n[t];if(c===void 0)return!1;if(typeof c=="function")oy(c,this,e);else for(var d=c.length,h=gy(c,d),i=0;i<d;++i)oy(h[i],this,e);return!0};function uy(t,e,i,r){var n,s,o;if(ul(i),s=t._events,s===void 0?(s=t._events=Object.create(null),t._eventsCount=0):(s.newListener!==void 0&&(t.emit("newListener",e,i.listener?i.listener:i),s=t._events),o=s[e]),o===void 0)o=s[e]=i,++t._eventsCount;else if(typeof o=="function"?o=s[e]=r?[i,o]:[o,i]:r?o.unshift(i):o.push(i),n=ly(t),n>0&&o.length>n&&!o.warned){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=o.length,gO(c)}return t}ge.prototype.addListener=function(t,e){return uy(this,t,e,!1)},ge.prototype.on=ge.prototype.addListener,ge.prototype.prependListener=function(t,e){return uy(this,t,e,!0)};function fO(){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 hy(t,e,i){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:i},n=fO.bind(r);return n.listener=i,r.wrapFn=n,n}ge.prototype.once=function(t,e){return ul(e),this.on(t,hy(this,t,e)),this},ge.prototype.prependOnceListener=function(t,e){return ul(e),this.prependListener(t,hy(this,t,e)),this},ge.prototype.removeListener=function(t,e){var i,r,n,s,o;if(ul(e),r=this._events,r===void 0)return this;if(i=r[t],i===void 0)return this;if(i===e||i.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,i.listener||e));else if(typeof i!="function"){for(n=-1,s=i.length-1;s>=0;s--)if(i[s]===e||i[s].listener===e){o=i[s].listener,n=s;break}if(n<0)return this;n===0?i.shift():vO(i,n),i.length===1&&(r[t]=i[0]),r.removeListener!==void 0&&this.emit("removeListener",t,o||e)}return this},ge.prototype.off=ge.prototype.removeListener,ge.prototype.removeAllListeners=function(t){var e,i,r;if(i=this._events,i===void 0)return this;if(i.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):i[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete i[t]),this;if(arguments.length===0){var n=Object.keys(i),s;for(r=0;r<n.length;++r)s=n[r],s!=="removeListener"&&this.removeAllListeners(s);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(e=i[t],typeof e=="function")this.removeListener(t,e);else if(e!==void 0)for(r=e.length-1;r>=0;r--)this.removeListener(t,e[r]);return this};function py(t,e,i){var r=t._events;if(r===void 0)return[];var n=r[e];return n===void 0?[]:typeof n=="function"?i?[n.listener||n]:[n]:i?yO(n):gy(n,n.length)}ge.prototype.listeners=function(t){return py(this,t,!0)},ge.prototype.rawListeners=function(t){return py(this,t,!1)},ge.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):my.call(t,e)},ge.prototype.listenerCount=my;function my(t){var e=this._events;if(e!==void 0){var i=e[t];if(typeof i=="function")return 1;if(i!==void 0)return i.length}return 0}ge.prototype.eventNames=function(){return this._eventsCount>0?ll(this._events):[]};function gy(t,e){for(var i=new Array(e),r=0;r<e;++r)i[r]=t[r];return i}function vO(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function yO(t){for(var e=new Array(t.length),i=0;i<e.length;++i)e[i]=t[i].listener||t[i];return e}function SO(t,e){return new Promise(function(i,r){function n(o){t.removeListener(e,s),r(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",n),i([].slice.call(arguments))}fy(t,e,s,{once:!0}),e!=="error"&&EO(t,n,{once:!0})})}function EO(t,e,i){typeof t.on=="function"&&fy(t,"error",e,i)}function fy(t,e,i,r){if(typeof t.on=="function")r.once?t.once(e,i):t.on(e,i);else if(typeof t.addEventListener=="function")t.addEventListener(e,function n(s){r.once&&t.removeEventListener(e,n),i(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}class TO extends E{constructor(){super("message.v1.SocketMessage",[{no:1,name:"event",kind:"scalar",T:13},{no:2,name:"id",kind:"scalar",opt:!0,T:9},{no:3,name:"payload",kind:"scalar",opt:!0,T:12},{no:4,name:"metadata",kind:"scalar",opt:!0,T:12}])}}const vy=new TO;class yy{static encode(e){return vy.toBinary(e)}static decode(e){return vy.fromBinary(new Uint8Array(e))}}function kO(t,e){return Math.floor(Math.random()*(e-t+1)+t)}var Br;class bO{constructor(e={}){pO(this,"opts"),Pe(this,Br,void 0),this.opts={initialTimeout:e.initialTimeout||1e3,maxTimeout:e.maxTimeout||1e4,factor:e.factor||2},he(this,Br,0)}wait(){return u(this,null,function*(){he(this,Br,N(this,Br)+1);const e=kO(0,Math.min(this.opts.maxTimeout,this.opts.initialTimeout*OS(2,N(this,Br))));yield new Promise(i=>{setTimeout(i,e)})})}getAttempts(){return N(this,Br)}reset(){he(this,Br,0)}}Br=new WeakMap;const Wr={debug:0,info:1,warn:2,error:3};var Vn,xn;class _O{constructor(e){Pe(this,Vn,void 0),Pe(this,xn,void 0),he(this,Vn,console),he(this,xn,e)}debug(...e){Wr[N(this,xn)]>Wr.debug||N(this,Vn).debug("[Sockrates]:",...e)}info(...e){Wr[N(this,xn)]>Wr.info||N(this,Vn).info("[Sockrates]:",...e)}warn(...e){Wr[N(this,xn)]>Wr.warn||N(this,Vn).warn("[Sockrates]:",...e)}error(...e){Wr[N(this,xn)]>Wr.error||N(this,Vn).error("[Sockrates]:",...e)}}Vn=new WeakMap,xn=new WeakMap;var Sy=(t=>(t[t.CONNECTING=0]="CONNECTING",t[t.OPEN=1]="OPEN",t[t.CLOSING=2]="CLOSING",t[t.CLOSED=3]="CLOSED",t))(Sy||{});const wO="2",IO="3";var xe,Hs,De,He,jr,rt,or,Hr,Pi,qs,cr,sp,Ey,Oo,hl,ap,Ty,op,ky,pl,cp,dp,by,No,ml,Lo,gl,fl,lp,Gs,Vo,xo,vl;class CO{constructor(e,i){var r;Pe(this,sp),Pe(this,Oo),Pe(this,ap),Pe(this,op),Pe(this,pl),Pe(this,dp),Pe(this,No),Pe(this,Lo),Pe(this,fl),Pe(this,Gs),Pe(this,xo),Pe(this,xe,void 0),Pe(this,Hs,void 0),Pe(this,De,void 0),Pe(this,He,void 0),Pe(this,jr,void 0),Pe(this,rt,void 0),Pe(this,or,void 0),Pe(this,Hr,void 0),Pe(this,Pi,void 0),Pe(this,qs,void 0),Pe(this,cr,void 0);var n,s,o,c,d,h,p,g,y;he(this,Hs,e),he(this,jr,[]),he(this,rt,new dl),he(this,or,!0),he(this,Pi,!1),he(this,De,i!=null?i:{}),(n=N(this,De)).autoReconnect!=null||(n.autoReconnect=!0),(s=N(this,De)).retryConnectionInterval!=null||(s.retryConnectionInterval=1e3),(o=N(this,De)).pingTimeout!=null||(o.pingTimeout=3e4),(c=N(this,De)).connectionTimeout!=null||(c.connectionTimeout=5e3),(d=N(this,De)).debug!=null||(d.debug=!0),(h=N(this,De)).maxReconnectionAttempts!=null||(h.maxReconnectionAttempts=10),(p=N(this,De)).disconnectOnPingTimeout!=null||(p.disconnectOnPingTimeout=!0),(g=N(this,De)).queueOnDisconnect!=null||(g.queueOnDisconnect=!1),(y=N(this,De)).flushOnReconnect!=null||(y.flushOnReconnect=!1),he(this,Hr,{code:void 0,reason:void 0}),he(this,He,(r=N(this,De).logger)!=null?r:new _O(N(this,De).debug?"debug":"info")),he(this,cr,new bO)}get readyState(){var e;return(e=N(this,xe))==null?void 0:e.readyState}get url(){return N(this,Hs)}updateURL(e){he(this,Hs,e),Ae(this,dp,by).call(this)}get config(){return N(this,De)}get sendQueue(){return N(this,jr)}flush(){if(!N(this,De).queueOnDisconnect)return!1;const e=[];return N(this,jr).forEach(i=>{this.send(i.event,i.id,i.payload,i.metadata)||e.push(i)}),he(this,jr,e),N(this,jr)}connect(e=!1){return u(this,null,function*(){if(!e&&[0,1].includes(this.readyState)){N(this,He).debug("Websocket was already connecting or connected.");return}if(N(this,or)!==!1)return new Promise((i,r)=>{Ae(this,Gs,Vo).call(this),Ae(this,xo,vl).call(this);try{he(this,xe,new WebSocket(Ae(this,sp,Ey).call(this,N(this,Hs)))),N(this,xe).binaryType="arraybuffer",N(this,He).debug("Connecting");const n=setTimeout(()=>{N(this,He).debug("Connection timeout. Closing socket"),he(this,or,!0),Ae(this,xo,vl).call(this),N(this,xe).close(3001,"Connection Timeout"),N(this,De).autoReconnect&&!N(this,Pi)&&(N(this,rt).emit("reconnecting"),Ae(this,No,ml).call(this)),r(new Error("Connection timed out!"))},N(this,De).connectionTimeout);N(this,xe).onopen=()=>{N(this,He).debug(`Ready State: ${Sy[N(this,xe).readyState]}`),n&&clearTimeout(n),Ae(this,fl,lp).call(this),he(this,Hr,{code:void 0,reason:void 0}),N(this,rt).emit("connected"),N(this,De).flushOnReconnect&&this.flush(),i()},N(this,xe).onclose=s=>{try{n&&clearTimeout(n);const{code:o,reason:c}=s;r(c),N(this,He).debug("Socket closed. Close event:",{event:s}),N(this,He).debug(`Connection closed code: ${o}`),N(this,He).debug(`Connection closed reason: ${c}`),N(this,Pi)||Ae(this,pl,cp).call(this,o,c)}catch(o){Ae(this,Oo,hl).call(this,o)}},N(this,xe).onerror=s=>{Ae(this,Oo,hl).call(this,s)},N(this,xe).onmessage=s=>Ae(this,ap,Ty).call(this,s)}catch(n){Ae(this,Oo,hl).call(this,n,r)}})})}send(e,i,r,n){const s={event:e,id:i,payload:r,metadata:n};if(N(this,De).queueOnDisconnect&&(!N(this,xe)||N(this,xe).readyState!==1))return N(this,He).debug("Queuing message since socket is not connected!",s),N(this,jr).push(s),!1;const o=yy.encode(s);return Ae(this,Lo,gl).call(this,o)}emit(e,i,r,n){return this.send(e,i,r,n)}sendRaw(e){return Ae(this,Lo,gl).call(this,e)}receive(e,i){return N(this,rt).on(e.toString(),i)}on(e,i){if(typeof e=="string"&&(e==="connected"||e==="disconnected"||e==="errored"||e==="reconnected"||e==="reconnecting"||e==="reconnectAttempt"||e==="reconnectFailure"||e==="failed")){N(this,rt).on(e,i);return}this.receive(e,i)}removeAllListeners(){N(this,rt).removeAllListeners()}removeReceiver(e,i){this.removeListener(e,i)}removeListener(e,i){N(this,rt).removeListener(e.toString(),i)}removeReceivers(e){this.removeListeners(e)}removeListeners(e){N(this,rt).listeners(e.toString()).map(i=>this.removeListener(e,i))}disconnect(){he(this,or,!1),Ae(this,Gs,Vo).call(this),this.removeAllListeners(),he(this,Hr,{code:1e3,reason:"Sockrates disconnect method called"}),N(this,xe).close(1e3,"Sockrates disconnect method called.")}}xe=new WeakMap,Hs=new WeakMap,De=new WeakMap,He=new WeakMap,jr=new WeakMap,rt=new WeakMap,or=new WeakMap,Hr=new WeakMap,Pi=new WeakMap,qs=new WeakMap,cr=new WeakMap,sp=new WeakSet,Ey=function(t){if(t.startsWith("ws://")||t.startsWith("wss://"))return t;if(t.startsWith("https://"))return`wss://${t.substring(8)}`;if(t.startsWith("http://"))return`ws://${t.substring(7)}`;throw new Error("Invalid URL. URL must start with http(s):// or ws(s)://.")},Oo=new WeakSet,hl=function(t,e){N(this,He).error("Error:",{error:t}),N(this,rt).emit("errored",{error:t}),e==null||e(t)},ap=new WeakSet,Ty=function(t){if(Ae(this,fl,lp).call(this),t.data===wO){N(this,He).debug("Received ping from server"),Ae(this,Lo,gl).call(this,IO);return}const e=yy.decode(t.data),{id:i,payload:r}=e;N(this,He).debug("Received message",{event:e.event,messageID:i}),N(this,rt).emit(e.event.toString(),{id:i,payload:r})},op=new WeakSet,ky=function(){return N(this,xe).readyState===1},pl=new WeakSet,cp=function(t,e){he(this,Hr,{reason:e,code:t}),N(this,rt).emit("disconnected",{code:t,reason:e})},dp=new WeakSet,by=function(){const{reason:t,code:e}=N(this,Hr);e&&e!==1e3&&N(this,or)&&N(this,De).autoReconnect&&!N(this,Pi)&&(N(this,He).debug(`Triggering reconnection due to ${t}.`),N(this,rt).emit("reconnecting"),Ae(this,No,ml).call(this))},No=new WeakSet,ml=function(t=!0){return u(this,null,function*(){if(t&&N(this,Pi)){N(this,He).debug("Reconnect called when already in a reconnect loop. Ignoring.");return}if(N(this,Pi)||N(this,cr).reset(),N(this,De).maxReconnectionAttempts!==null&&N(this,cr).getAttempts()>=N(this,De).maxReconnectionAttempts){N(this,rt).emit("failed"),he(this,Pi,!1);return}he(this,Pi,!0),Ae(this,xo,vl).call(this),Ae(this,Gs,Vo).call(this);try{if(yield N(this,cr).wait(),N(this,or)===!1)return;if(N(this,He).debug(`Reconnection attempt ${N(this,cr).getAttempts()}`),N(this,rt).emit("reconnectAttempt",{attempt:N(this,cr).getAttempts()}),yield this.connect(),!Ae(this,op,ky).call(this))throw Error("Reconnect Failed");he(this,Pi,!1),he(this,Hr,{code:void 0,reason:void 0}),N(this,rt).emit("reconnected")}catch(e){N(this,He).debug("Failed to reconnect."),N(this,rt).emit("reconnectFailure",{attempt:N(this,cr).getAttempts()}),Ae(this,No,ml).call(this,!1)}})},Lo=new WeakSet,gl=function(t){try{return N(this,xe).send(t),!0}catch(e){return N(this,He).error(e.message),!1}},fl=new WeakSet,lp=function(){this.config.disconnectOnPingTimeout&&(N(this,He).debug("Resetting ping timeout"),Ae(this,Gs,Vo).call(this),he(this,qs,setTimeout(()=>{var t;N(this,He).debug("Disconnecting the socket due to ping timeout"),he(this,or,!0);const e=3002,i="Ping timeout";(t=N(this,xe))==null||t.close(e,i),Ae(this,pl,cp).call(this,e,i)},N(this,De).pingTimeout)))},Gs=new WeakSet,Vo=function(){N(this,qs)&&(clearTimeout(N(this,qs)),he(this,qs,void 0))},xo=new WeakSet,vl=function(){N(this,xe)&&(N(this,xe).onopen=void 0,N(this,xe).onerror=void 0,N(this,xe).onmessage=void 0,N(this,xe).onclose=void 0)};var PO=Object.defineProperty,RO=Object.getOwnPropertyDescriptor,yl=(t,e,i,r)=>{for(var n=r>1?void 0:r?RO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&PO(e,i,n),n};const _y=65535,MO=3e3;var Un,Ue,Fe,qe,Ri,ci,Sl,up,El,hp,wy;const Iy=(wy=class{constructor(t,{peerId:e,meetingId:i,authToken:r,capabilities:n}){f(this,Fe),f(this,Sl),f(this,El),f(this,Un,void 0),f(this,Ue,void 0),m(this,"roomName"),m(this,"authToken"),m(this,"capabilities"),f(this,Ri,void 0),f(this,ci,void 0);var s;if(!e||!i||!r)throw new w("peerId, meetingId, or authToken can not be empty","0404");v(this,Ri,void 0),v(this,ci,t),this.capabilities=n,this.roomName=i,this.authToken=r,v(this,Un,F(this,Sl,up).call(this,e)),v(this,Ue,new CO(a(this,Un),{autoReconnect:!0,disconnectOnPingTimeout:(s=n.includes("PING"))!=null?s:!1,queueOnDisconnect:!0,flushOnReconnect:!1,logger:l})),this.handleSocketConnectionEvents()}get joinAttempted(){return a(this,Fe,qe).socketJoinAttempted}set joinAttempted(t){a(this,Fe,qe).socketJoinAttempted=t}get peerId(){return a(this,ci).getValue("peerId")}updateURL(t){t!==this.peerId&&(v(this,Un,F(this,Sl,up).call(this,t)),l.debug("SocketService:: Connection URL updated.")),a(this,Ue).updateURL(a(this,Un))}static getSocketEdgeDomain(t){return zn({servicePrefix:"socket-edge",baseURI:t})}get url(){return a(this,Un)}connect(){return u(this,null,function*(){a(this,Fe,qe).socketJoinAttempted=!0,yield a(this,Ue).connect(),a(this,Fe,qe).socketJoinAttempted=!0,a(this,Fe,qe).socketState={state:"connected",reconnected:!1,reconnectionAttempt:void 0}})}disconnect(){return u(this,null,function*(){a(this,Fe,qe).socketJoinAttempted=!1,a(this,Ue).disconnect(),a(this,Fe,qe).socketJoinAttempted=!0,a(this,Fe,qe).socketState={state:"disconnected",reconnected:!1,reconnectionAttempt:void 0}})}get isConnected(){try{return a(this,Ue).readyState===1}catch(t){return!1}}sendMessage(t,e,i){const r={};return S.injectContext(r),a(this,Ue).send(t,i!=null?i:F(this,El,hp).call(this),e,new TextEncoder().encode(JSON.stringify(r)))}sendMessagePromise(t,e,i,r){const n=parseInt({}.SOCKET_SERVICE_MESSAGE_REQUEST_TIMEOUT,10)||2e4;return this.sendMessagePromiseWithTimeout({event:t,timeout:n,protobuf:e,messageId:i,resp:r})}sendMessagePromiseWithTimeout({event:t,timeout:e,protobuf:i,messageId:r,resp:n}){const s=n!=null?n:t;return new Promise((o,c)=>{const d=(T,b)=>{a(this,Ue).removeListener(s,T),a(this,Ue).removeListener(_y,b),a(this,Ue).removeListener(ii.errorResponse,b),a(this,Ue).removeListener(gi.errorResponse,b)},h=r!=null?r:F(this,El,hp).call(this),p={};S.injectContext(p);const g=({id:T,payload:b})=>{if(h===T){let O;try{const R=PI.fromBinary(b);O=new Error(R.errorMessage)}catch(R){O=new Error("failed to parse error message",{cause:R});try{const x=RC.fromBinary(b);O=new Error(x.message)}catch(x){O=new Error("failed to parse error message",{cause:x})}}c(O),d(y,g)}},y=({id:T,payload:b})=>{h===T&&(o({id:T,payload:b}),d(y,g))};a(this,Ue).on(s,y),a(this,Ue).on(_y,g),a(this,Ue).on(ii.errorResponse,g),a(this,Ue).on(gi.errorResponse,g),setTimeout(()=>{d(y,g),c(new Error(`request timeout for callback eventId:${t}`))},e),a(this,Ue).send(t,h,i,new TextEncoder().encode(JSON.stringify(p)))})}on(t,e){a(this,Ue).on(t,e)}onStateEvent(t,e){a(this,Ue).on(t,e)}removeListener(t,e){a(this,Ue).removeListener(t,e)}removeListeners(t){a(this,Ue).removeListeners(t)}flush(){return a(this,Ue).flush()}handleSocketConnectionEvents(){this.onStateEvent("connected",()=>u(this,null,function*(){l.info("SocketService::Connected to socket-edge"),a(this,Ri)&&(clearTimeout(a(this,Ri)),v(this,Ri,void 0)),a(this,Fe,qe).updateSocketConnectionState("connected")})),this.onStateEvent("disconnected",({code:t,reason:e})=>{var i;l.info("SocketService::Disconnected from socket-edge",{error:{code:t,reason:e},country:S.location.country});const{recv:r,send:n}=(i=a(this,Fe,qe).mediaState)!=null?i:{};r!=null&&r.state&&(r==null?void 0:r.state)!==ws.CONNECTED||n!=null&&n.state&&(n==null?void 0:n.state)!==ws.CONNECTED?a(this,ci).getValue("peerSessionStore").emit(P.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:a(this,Fe,qe).joinAttempted}):v(this,Ri,setTimeout(()=>{a(this,ci).getValue("peerSessionStore").emit(P.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:a(this,Fe,qe).joinAttempted}),v(this,Ri,void 0)},MO)),a(this,Fe,qe).updateSocketConnectionState("disconnected")}),this.onStateEvent("reconnecting",()=>u(this,null,function*(){l.info("SocketService::Reconnecting to socket-edge",{country:S.location.country}),a(this,Fe,qe).updateSocketConnectionState("reconnecting")})),this.onStateEvent("reconnectAttempt",t=>u(this,[t],function*({attempt:e}){l.info("SocketService::Attempting to reconnect to socket-edge",{socket:{retryAttempt:e}}),a(this,Fe,qe).updateSocketConnectionState("reconnectAttempt",e)})),this.onStateEvent("reconnectFailure",({attempt:t})=>{l.info("SocketService::Reconnect attempt to socket-edge failed",{socket:{retryAttempt:t}}),a(this,Fe,qe).updateSocketConnectionState("reconnectFailure",t)}),this.onStateEvent("reconnected",()=>u(this,null,function*(){l.info("SocketService::Reconnected to socket-edge",{connectionState:{joinAttempted:a(this,Fe,qe).mediaJoinAttempted}}),a(this,Ri)&&(clearTimeout(a(this,Ri)),v(this,Ri,void 0)),a(this,ci).getValue("peerSessionStore").emit(P.SOCKET_SERVICE_RECONNECTED,{wasJoinAttempted:a(this,Fe,qe).mediaJoinAttempted}),a(this,Fe,qe).updateSocketConnectionState("reconnected")})),this.onStateEvent("failed",()=>u(this,null,function*(){l.info("SocketService::Failed to connect to socket-edge",{country:S.location.country}),a(this,ci).getValue("peerSessionStore").emit(P.SOCKET_SERVICE_FAILED),a(this,Fe,qe).updateSocketConnectionState("failed")}))}},Un=new WeakMap,Ue=new WeakMap,Fe=new WeakSet,qe=function(){return a(this,ci).getValue("connectionHandler")},Ri=new WeakMap,ci=new WeakMap,Sl=new WeakSet,up=function(t){let e=Iy.getSocketEdgeDomain(a(this,ci).getValue("baseURI"));typeof Kn(a(this,ci),"socket_server_base")=="string"&&(e=Kn(a(this,ci),"socket_server_base"));const i=`wss://${e}`,r=new URL(`${i}/ws`),n=this.peerId,s=j(L({roomID:this.roomName,peerID:t,authToken:this.authToken,useMediaV2:!0},n!==t&&{oldPeerID:n}),{ping:this.capabilities.includes("PING"),capabilities:this.capabilities.map(o=>jc[o]).join(" "),joinWithDetails:!0,useCfWorker:!0,useStartSession:!0});return Object.entries(s).forEach(([o,c])=>{r.searchParams.append(o,c.toString())}),r.href},El=new WeakSet,hp=function(){return`${this.peerId}-${(Math.random()+1).toString(36).substring(7)}`},wy);let Uo=Iy;yl([S.trace("SocketService.connect")],Uo.prototype,"connect",1),yl([S.trace("SocketService.disconnect")],Uo.prototype,"disconnect",1),yl([S.trace("SocketService.sendMessagePromise")],Uo.prototype,"sendMessagePromise",1),yl([S.trace("SocketService.sendMessagePromiseWithTimeout")],Uo.prototype,"sendMessagePromiseWithTimeout",1);const Fn=class{static handleConnectedRoomsDumpRaw({payload:t}){var e;const i=iP.fromBinary(t),r=i.meetings.map(n=>{var s;return{id:n.id,title:n.title,participants:(s=n.participants)!=null?s:[]}});return{parentMeeting:{id:i.parentMeeting.id,title:i.parentMeeting.title,participants:(e=i.parentMeeting.participants)!=null?e:[]},meetings:r}}static handleTransferPeerRaw({payload:t}){const e=PP.fromBinary(t);return{authToken:e.authToken,meetingId:e.meetingId}}static handleMovedPeerRaw({payload:t}){const e=uf.fromBinary(t);return{meetingId:e.meetingId,customParticipantId:e.customParticipantId}}static handleConnectedRoomsUpdatedRaw({payload:t}){return lf.fromBinary(t).payloads.map(e=>({id:e.id,title:e.title}))}static handleConnectedRoomsDeletedRaw({payload:t}){return yP.fromBinary(t).payloads}static getConnectedRoomsDump(){return u(this,null,function*(){const t=yield Fn.socketService.sendMessagePromise(B.getConnectedRoomsDump);return Fn.handleConnectedRoomsDumpRaw(t)})}static createConnectedRooms(t){return u(this,null,function*(){const{payload:e}=yield Fn.socketService.sendMessagePromise(B.createConnectedRooms,aP.toBinary({payloads:t}));return lf.fromBinary(e).payloads.map(i=>({id:i.id,title:i.title}))})}static updateConnectedRooms(t){return u(this,null,function*(){})}static disableConnectedRooms(t){return u(this,null,function*(){const e=t.map(r=>({id:r})),i=yield Fn.socketService.sendMessagePromise(B.deleteConnectedRooms,fP.toBinary({payloads:e}));return Fn.handleConnectedRoomsDeletedRaw(i)})}static movePeersBetweenRooms(t){return u(this,null,function*(){try{const e=yield Fn.socketService.sendMessagePromise(B.movePeers,_P.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}}})}};let Le=Fn;m(Le,"socketService"),m(Le,"currentMeetingId");var AO=Object.defineProperty,DO=Object.getOwnPropertyDescriptor,Tl=(t,e,i,r)=>{for(var n=r>1?void 0:r?DO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&AO(e,i,n),n};const $s=class{constructor(t,e){m(this,"apiBase"),m(this,"selfController"),m(this,"pollController"),m(this,"chatController"),m(this,"metaController"),m(this,"storesManager"),m(this,"stageController"),m(this,"pluginController"),m(this,"internalsController"),m(this,"recordingController"),m(this,"livestreamController"),m(this,"participantController"),this.apiBase=t,this.storesManager=e.storesManager,this.metaController=e.metaController,this.selfController=e.selfController,this.chatController=e.chatController,this.pollController=e.pollController,this.stageController=e.stageController,this.pluginController=e.pluginController,this.recordingController=e.recordingController,this.internalsController=e.internalsController,this.participantController=e.participantController,this.livestreamController=e.livestreamController}static init(t){return u(this,null,function*(){var e,i;const{peerId:r,apiBase:n,authToken:s,meetingId:o,organizationId:c,cachedUserDetails:d}=t.getAllValues();if(ry(t),Ie.isSupported()===!1)throw new w("Browser not supported","0010",!0);const h=BA(t,{authToken:s,baseURL:n,cachedUserDetails:d});h.setRoomName(o),h.setRoomUUID(o),h.setOrganizationId(c),h.setHeader("dyte-tracing-id",r),t.setValue("apiClient",h);const p=new k1(t);t.setValue("connectionHandler",p);const g=$s.createSocketService(t),y=g.connect(),T=h.getUserDetails(),b=h.getPlugins();let O=Ne.HIVE,R,x="";try{yield $s.setupFlagsmith(t)}catch(ne){l.error("Failed to setup flagsmith",{error:ne})}try{yield y}catch(ne){l.error("[Controller]: Failed to connect to socket server:",{error:ne})}try{({sfu:O,meetingTitle:x}=yield h.getRoomNodeData()),R=yield T,l.info(`SFU ${O} is being used.`),t.setValue("presetName",R.preset.name),t.setValue("roomNodeOptions",{sfu:O})}catch(ne){l.error("Failed to get room metadata",{error:ne})}const G=aD.init(R.preset,!t.getValue("modules").theme),$=CD.init(t,G.viewType,R.preset.permissions),I=$s.setupControllers(g,t,R,b,x,G,$);u1(G)&&((e=$s.createRoomNodeClient(t,g).initializeConnection(R.participant.name,o,!1,$))==null||e.catch(ne=>{l.error("[Controller]: Failed to queue partial media room promise:",{error:ne})})),S.location.country=(i=h.ipInfo)==null?void 0:i.country;const{controllers:se}=yield I;return cw(),new $s(n,se)})}static setupFlagsmith(t){return u(this,null,function*(){var e;const{peerId:i,baseURI:r,overrides:n,meetingId:s,organizationId:o}=t.getAllValues(),c=ow(s),d=j(L({entity:cu.PEER,clientId:o,isAnonUser:!o,sdkVersion:t.getValue("sdkVersion"),presetName:t.getValue("presetName"),meetingHash:c,roomName:s},Ie.getDeviceInfo()),{isReactNative:navigator.isReactNative});try{const h=(e=n==null?void 0:n.whitelabelled_flags_endpoint)==null||e?zn({servicePrefix:"flags",baseURI:r}):"edge.api.flagsmith.com";yield z.identify(`${cu.PEER}_${i}`,JSON.parse(JSON.stringify(d)),!1,5e3,h,l),l.info("flagsmith::allFlags",{flags:JSON.stringify(z.getAllFlags())},!0)}catch(h){l.error("Failed to fetch flagsmith flags")}})}static setupControllers(t,e,i,r,n,s,o){return u(this,null,function*(){var c,d,h;const p=e.getValue("modules"),{participant:g}=i,y=e.getValue("defaults"),{sfu:T}=e.getValue("roomNodeOptions"),{viewType:b,mediaConstraints:{audio:O}}=s;e.setValue("viewType",b),e.setValue("defaults",L({mediaConfiguration:{audio:{enableHighBitrate:(c=O.enableHighBitrate)!=null?c:!1,enableStereo:(d=O.enableStereo)!=null?d:!1}}},y)),e.setValue("maxPreferredStreams",Ie.isMobile()?s.maxVideoStreams.mobile:s.maxVideoStreams.desktop);let R,x,G,$,I,se,ne,Se;const nt=new rO(t);Le.socketService=t;const ft=new cl(t),Bt=new ri(t),M=new dO(t),k=new ay(e,t),_=new lO(t),W=new iO(t),Re=new an(t),fe=yield Ur.init(e,k,g,o,s),U=yield Gf.init(e,fe.self,k,nt,n);if(p.participant&&(Se=new ir(e,fe.self,k,T)),(h=p.e2ee)!=null&&h.enabled&&p.e2ee.manager.init(l,e.getValue("peerSessionStore")),p.chat&&(x=yield Zi.init(e,Bt,Re,fe.self,Se.participants)),p.internals&&(I=yield ju.init()),p.livestream&&s.viewType===Rt.Livestream&&z.hasFeature(ie.LIVESTREAM)&&(ne=new dv(e,fe.self,W)),s.viewType!==Rt.Chat){if(p.poll&&(R=yield Ff.init(e,fe.self,ft)),p.recording&&(se=new Zf(e,fe.self,k)),p.stage&&(G=new $f(e,M,k,fe.self,Se.participants)),p.plugin){if(!Se)throw new w("The plugin module cannot be initialized without the `participant` module","0102");const Ge=yield r;$=yield Ca.init(e,Ge,_,Bt,x==null?void 0:x.chat,fe.self,Se.participants,n)}if(p.pip){const Ge=yield uw._init(e,fe.self);e.setValue("pip",Ge)}}const C={storesManager:new mD(e,_),pollController:R,selfController:fe,metaController:U,chatController:x,stageController:G,pluginController:$,recordingController:se,internalsController:I,livestreamController:ne,participantController:Se};return{theme:s,permissions:o,controllers:C}})}static createRoomNodeClient(t,e){const{peerId:i,roomNodeOptions:r}=t.getAllValues(),{sfu:n}=r;return iy(t,n,{socket:e,peerId:i})}static createSocketService(t){const{peerId:e,meetingId:i,authToken:r}=t.getAllValues(),n=["PING"];return new Uo(t,{peerId:e,meetingId:i,authToken:r,capabilities:n})}};let Fo=$s;Tl([S.trace("Controller.init")],Fo,"init",1),Tl([S.trace("setupFlagsmith")],Fo,"setupFlagsmith",1),Tl([S.trace("Controller.createRoomNodeClient")],Fo,"createRoomNodeClient",1),Tl([S.trace("Controller.createSocketService")],Fo,"createSocketService",1);var OO=Object.defineProperty,NO=Object.getOwnPropertyDescriptor,LO=(t,e,i,r)=>{for(var n=r>1?void 0:r?NO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&OO(e,i,n),n},kl,pp;class Cy extends Wt{constructor(e,i){super(),f(this,kl,void 0),m(this,"meetings",[]),m(this,"parentMeeting",null),f(this,pp,void 0),v(this,pp,e),v(this,kl,i.self)}get supportsConnectedMeetings(){return a(this,kl).id!==""}get isActive(){return this.meetings.length!==0}get currentMeetingId(){return Le.currentMeetingId}validateConnectedMeetingsAction(){if(!this.supportsConnectedMeetings)throw new Error(`You are not allowed to perform this action.
20
+ Please connect with Dyte team to move you to V2 APIs & to enable connected meetings.`)}getConnectedMeetings(){return u(this,null,function*(){return this.validateConnectedMeetingsAction(),yield Le.getConnectedRoomsDump()})}createMeetings(e){return u(this,null,function*(){return this.validateConnectedMeetingsAction(),(yield Le.createConnectedRooms(e)).map(i=>({id:i.id,title:i.title}))})}updateMeetings(e){return u(this,null,function*(){this.validateConnectedMeetingsAction(),yield Le.updateConnectedRooms(e.map(i=>({meetingId:i.id,title:i.title})))})}deleteMeetings(e){return u(this,null,function*(){this.validateConnectedMeetingsAction();const i=this.meetings.map(r=>e.includes(r.id)&&r.participants.length!==0?this.moveParticipants(r.id,this.parentMeeting.id,r.participants.map(n=>n.id)):Promise.resolve());return yield Promise.all(i),yield Le.disableConnectedRooms(e)})}moveParticipants(e,i,r){return u(this,null,function*(){this.validateConnectedMeetingsAction();const n=yield Le.movePeersBetweenRooms({sourceMeetingId:e,destinationMeetingId:i,participants:r.map(s=>({id:s}))});return n.success&&this.moveSuccessHandler(e,i,r),n})}moveParticipantsWithCustomPreset(e,i,r){return u(this,null,function*(){this.validateConnectedMeetingsAction();const n=yield Le.movePeersBetweenRooms({sourceMeetingId:e,destinationMeetingId:i,participants:r});return n.success&&this.moveSuccessHandler(e,i,r.map(s=>s.id)),n})}moveSuccessHandler(e,i,r){const n=new Map;[...this.parentMeeting.participants,...this.meetings.flatMap(s=>s.participants)].forEach(s=>n.set(s.id,s)),i===this.parentMeeting.id&&(this.parentMeeting.participants=this.parentMeeting.participants.concat(r.map(s=>n.get(s)))),e===this.parentMeeting.id&&(this.parentMeeting.participants=this.parentMeeting.participants.filter(s=>!r.includes(s.id))),this.meetings=this.meetings.map(s=>{if(i===s.id){const o=s.participants.concat(r.map(c=>n.get(c)));return j(L({},s),{participants:o})}if(e===s.id){const o=s.participants.filter(c=>!r.includes(c.id));return j(L({},s),{participants:o})}return s})}}kl=new WeakMap,pp=new WeakMap,LO([At({maxInvocations:60,period:60})],Cy.prototype,"getConnectedMeetings",1);var VO=Object.defineProperty,xO=Object.getOwnPropertyDescriptor,mp=(t,e,i,r)=>{for(var n=r>1?void 0:r?xO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&VO(e,i,n),n},Bo,Mi,gp,fp;const qr=(gp=class{constructor(t,e,i){m(this,"connectedMeetings"),f(this,Bo,void 0),f(this,Mi,void 0),f(this,fp,void 0),v(this,fp,t),v(this,Bo,i),this.connectedMeetings=new Cy(t,e),this.setCurrentMeeting(e)}static init(t,e,i){return qr.instance||(qr.instance=new qr(t,e,i)),qr.instance.connectedMeetings.supportsConnectedMeetings&&(qr.instance.setupEvents(),e.self.once("roomJoined",()=>qr.instance.getConnectedMeetings())),qr.instance}setCurrentMeeting(t){v(this,Mi,t),Le.currentMeetingId=t.meta.meetingId}getConnectedMeetings(){this.connectedMeetings.getConnectedMeetings()}setupEvents(){Le.socketService&&(Le.socketService.on(B.getConnectedRoomsDump,this.handleConnectedRoomsDump.bind(this)),Le.socketService.on(B.transferPeer,this.handleTransferPeer.bind(this)),Le.socketService.on(B.movedPeer,this.handleMovedPeer.bind(this)),Le.socketService.on(B.connectedRoomsUpdated,this.handleConnectedRoomsUpdated.bind(this)),Le.socketService.on(B.connectedRoomsDeleted,this.handleConnectedRoomsDeleted.bind(this)))}handleTransferPeer(t){const e=Le.handleTransferPeerRaw(t);return this.switchMeeting(e)}switchMeeting(t){return u(this,arguments,function*({authToken:e,meetingId:i}){var r,n,s,o;if(!this.connectedMeetings.supportsConnectedMeetings)throw new Error(`You are not allowed to perform this action.
21
+ Please connect with Dyte team to move you to V2 APIs & to enable connected meetings.`);l.info("ConnectedMeetingsController::switchMeeting:: asking ui-kit to show switching breakout UI"),this.connectedMeetings.emit("changingMeeting",i);const c={video:a(this,Mi).self.videoEnabled,audio:a(this,Mi).self.audioEnabled};try{a(this,Mi).self.cleanupEvents(),yield a(this,Mi).leave("connected-meeting")}catch(h){l.error(`ConnectedMeetingsController:: switchMeeting:: issues in leaving previous meeting. Meeting Id: ${(n=(r=a(this,Mi))==null?void 0:r.meta)==null?void 0:n.meetingId}`,{error:h})}Le.socketService=void 0,l.info(`ConnectedMeetingsController::switchMeeting:: initializing new meeting. Meeting Id: ${i}`);const d=yield Dy.init(j(L({},a(this,Bo)),{cachedUserDetails:null,defaults:j(L(L({},a(this,Bo).defaults),c),{mediaHandler:a(this,Mi).self}),authToken:e}));l.info(`ConnectedMeetingsController::switchMeeting:: initialized new meeting. Meeting Id: ${(s=d==null?void 0:d.meta)==null?void 0:s.meetingId}`);try{const{hidden:h}=a(this,Mi).self;d.self.setName(a(this,Mi).self.name),yield d.join(),h&&d.self.hide()}catch(h){l.error("ConnectedMeetingsController.joinRoom",{error:h})}return l.info(`ConnectedMeetingsController::switchMeeting:: asking ui-kit to show in-meeting ui of newly joined meeting id: ${(o=d==null?void 0:d.meta)==null?void 0:o.meetingId}`),this.connectedMeetings.emit("meetingChanged",d),this.setCurrentMeeting(d),d})}handleConnectedRoomsDump(t){const e=Le.handleConnectedRoomsDumpRaw(t);this.connectedMeetings.meetings=e.meetings.map(i=>({id:i.id,title:i.title,participants:i.participants||[]})),this.connectedMeetings.parentMeeting={id:e.parentMeeting.id,title:e.parentMeeting.title,participants:e.parentMeeting.participants},this.emitStateUpdate()}handleMovedPeer(t){return Le.handleMovedPeerRaw(t)}handleConnectedRoomsUpdated(t){const e=Le.handleConnectedRoomsUpdatedRaw(t),i=new Map;this.connectedMeetings.meetings.forEach(r=>{i.set(r.id,r)}),e.forEach(r=>{i.has(r.id)?i.get(r.id).title=r.title:i.set(r.id,j(L({},r),{participants:[]}))}),this.connectedMeetings.meetings=Array.from(i.values()),this.emitStateUpdate()}handleConnectedRoomsDeleted(t){const e=Le.handleConnectedRoomsDeletedRaw(t).map(i=>i.id);this.connectedMeetings.meetings=this.connectedMeetings.meetings.filter(i=>!e.includes(i.id)),this.emitStateUpdate()}emitStateUpdate(){this.connectedMeetings.emit("stateUpdate",{meetings:this.connectedMeetings.meetings,parentMeeting:this.connectedMeetings.parentMeeting})}},Bo=new WeakMap,Mi=new WeakMap,fp=new WeakMap,m(gp,"instance"),gp);let bl=qr;mp([S.trace("ConnectedMeetingsController.getConnectedMeetings")],bl.prototype,"getConnectedMeetings",1),mp([S.trace("ConnectedMeetingsController.setupEvents")],bl.prototype,"setupEvents",1),mp([S.trace("ConnectedMeetingsController.switchMeeting")],bl.prototype,"switchMeeting",1);class UO{constructor(){m(this,"battery"),m(this,"init",()=>u(this,null,function*(){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){l.error("Error getting battery",e)}})),m(this,"updateChargeInfo",()=>{var e;l.log(`Battery charging? ${(e=this.battery)!=null&&e.charging?"Yes":"No"}`)}),m(this,"updateLevelInfo",()=>{if(!this.battery){l.log("Battery level: Not known");return}l.log(`Battery level: ${this.battery.level*100}%`)}),m(this,"cleanup",()=>{var e,i;"getBattery"in navigator&&((e=this.battery)==null||e.removeEventListener("chargingchange",this.updateChargeInfo),(i=this.battery)==null||i.removeEventListener("levelchange",this.updateLevelInfo))})}}const Py=new UO;function FO(t,e){t.startsWith("eyJ")||console.error("Invalid auth token provided. Ensure you are passing a %cparticipant `authToken`%c \u2014 not an Org API Key or an incorrectly formatted token.\nYou get the participant token from the Add Participant API: https://docs.dyte.io/api#/operations/add_participant","font-weight: bold","font-weight: normal");try{const{meetingId:i,orgId:r,participantId:n}=JSON.parse(atob(t.split(".")[1]));if(!i)throw Error(`Received V1 auth token ${t}`);let s="dyte.io";e&&(s=e);const o=`https://api.${s}`;return{meetingId:i,orgId:r,participantId:n,baseURI:s,apiBase:o}}catch(i){throw l.error("constants::decodeAuthToken",{error:i,debuggingHint:`Unable to decode auth token: ${t}`},!0),new w("Invalid auth token","0004")}}var Bn,Js,Ks,_l,vp,Ry;class BO{constructor(){f(this,vp),f(this,Bn,new Audio),f(this,Js,new MediaStream),f(this,Ks,new Map),f(this,_l,void 0),a(this,Bn).srcObject=a(this,Js),a(this,Bn).autoplay=!0}playTracks(e){return u(this,null,function*(){return e.forEach(i=>{a(this,Ks).has(i.id)||(a(this,Js).addTrack(i),a(this,Ks).set(i.id,i))}),this.play()})}setSpeakerDevice(e){typeof HTMLAudioElement.prototype.setSinkId=="function"&&a(this,Bn).setSinkId(e)}removeTrack(e){const i=a(this,Ks).get(e);i&&(a(this,Js).removeTrack(i),a(this,Ks).delete(e))}play(){return u(this,null,function*(){return a(this,Bn).srcObject=a(this,Js),a(this,Bn).play().catch(e=>{F(this,vp,Ry).call(this,e)})})}onError(e){v(this,_l,e)}}Bn=new WeakMap,Js=new WeakMap,Ks=new WeakMap,_l=new WeakMap,vp=new WeakSet,Ry=function(t){var e;(e=a(this,_l))==null||e.call(this,t)};var zs;class WO extends BO{constructor(){super(),f(this,zs,void 0),v(this,zs,new Map)}addParticipantTrack(e,i){a(this,zs).set(e,i.id),this.playTracks([i])}removeParticipantTrack(e){const i=a(this,zs).get(e);i&&this.removeTrack(i),a(this,zs).delete(e)}}zs=new WeakMap;var jO=Object.defineProperty,HO=Object.getOwnPropertyDescriptor,wl=(t,e,i,r)=>{for(var n=r>1?void 0:r?HO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(n=(r?o(e,i,n):o(n))||n);return r&&n&&jO(e,i,n),n},ct,Il,Wn,yp,My,Ay;let Gr=(Ay=class{constructor(t,e){f(this,yp),f(this,ct,void 0),f(this,Il,void 0),f(this,Wn,void 0),v(this,Wn,t),v(this,ct,e)}static init(t){return u(this,null,function*(){var e,i,r,n,s,o,c;nw(),Ie.init();const d=(i=(e=t==null?void 0:t.cachedUserDetails)==null?void 0:e.peerId)!=null?i:jn();Py.init();const{authToken:h,baseURI:p}=t,g=FO(h,p),{meetingId:y}=g,T=vc(g,["meetingId"]);window.__zone_symbol__DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION=!0;const b=Gr.setupContext(d,t,y,T);S.meetingMetadata.roomName=y,S.meetingMetadata.userId=T.participantId,S.meetingMetadata.organizationId=T.orgId,S.init(b,(n=(r=t.modules)==null?void 0:r.tracing)!=null?n:!0),l.info("DyteClient::init::options",{dyteClientInitOptions:j(L({},t),{authToken:`${(s=t.authToken)==null?void 0:s.slice(0,10)}...
22
+ ${(o=t.authToken)==null?void 0:o.slice(-10)}`})});const O=yield Fo.init(b),R=new Gr(b,O);return F(c=R,yp,My).call(c,t),R})}static setupContext(t,e,i,r){var n,s;const o=en.createContext(t,e),c=L(L({},Q_),e==null?void 0:e.modules);return o.setValue("peerId",t),o.setValue("modules",c),o.setValue("sdkName","web-core"),o.setValue("meetingId",i),o.setValue("apiBase",r.apiBase),o.setValue("baseURI",r.baseURI),o.setValue("userId",r.participantId),o.setValue("organizationId",r.orgId),o.setValue("authToken",e.authToken),o.setValue("overrides",(n=e.overrides)!=null?n:{}),o.setValue("env",X_({baseURI:r.baseURI})),o.setValue("defaults",e.defaults||{audio:!0,video:!0}),o.setValue("onError",e.onError||(()=>{})),o.setValue("cachedUserDetails",vi(e.cachedUserDetails)),o.setValue("sdkVersion","3.1.0-staging.5"),(s=e.modules)!=null&&s.experimentalAudioPlayback&&o.setValue("audioPlayback",new WO),o}join(){return u(this,null,function*(){const{selfController:t}=a(this,ct);return t.self.roomJoined?null:t.joinRoom()})}leave(t){return u(this,null,function*(){var e;Py.cleanup(),a(this,Wn).getValue("peerSessionStore").reset(),(e=a(this,Wn).getValue("roomSocketHandler"))==null||e.cleanup();const{selfController:i}=a(this,ct);return i.leaveRoom(t)})}get participants(){var t;return(t=a(this,ct).participantController)==null?void 0:t.participants}get self(){var t;return(t=a(this,ct).selfController)==null?void 0:t.self}get meta(){var t;return(t=a(this,ct).metaController)==null?void 0:t.meta}get ai(){var t;return(t=a(this,ct).metaController)==null?void 0:t.ai}get plugins(){var t;return(t=a(this,ct).pluginController)==null?void 0:t.plugins}get chat(){var t;return(t=a(this,ct).chatController)==null?void 0:t.chat}get polls(){var t;return(t=a(this,ct).pollController)==null?void 0:t.polls}get connectedMeetings(){var t;return(t=a(this,Il))==null?void 0:t.connectedMeetings}get recording(){var t;return(t=a(this,ct).recordingController)==null?void 0:t.recording}get livestream(){var t;return(t=a(this,ct).livestreamController)==null?void 0:t.livestream}get stage(){var t;return(t=a(this,ct).stageController)==null?void 0:t.stage}get stores(){return a(this,ct).storesManager}get audio(){return a(this,Wn).getValue("audioPlayback")}get __internals__(){var t;return(t=a(this,ct).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)})}},ct=new WeakMap,Il=new WeakMap,Wn=new WeakMap,yp=new WeakSet,My=function(t){v(this,Il,bl.init(a(this,Wn),this,t))},Ay);wl([ut("0002"),Pr.executeWithLock({methodName:"meeting.join",lockName:"DyteClient.join",timeout:3e3})],Gr.prototype,"join",1),wl([ut("0003")],Gr.prototype,"leave",1),wl([ut("0001"),Pr.executeWithLock({methodName:"DyteClient.init",lockName:"DyteClient.init",timeout:3e3})],Gr,"init",1),Gr=wl([ut("0000")],Gr);const Dy=Gr;return Dy}();