@cloudflare/realtimekit 1.1.0-staging.2 → 1.1.0-staging.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.js +15 -15
- package/dist/index.cjs.js +15 -15
- package/dist/index.es.js +6679 -6670
- package/dist/index.rn.js +15 -15
- package/package.json +1 -1
package/dist/browser.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
var RealtimeKitClient=function(){"use strict";var Xo,My=new Uint8Array(16);function Ay(){if(!Xo&&(Xo=typeof crypto!="undefined"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto!="undefined"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto),!Xo))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Xo(My)}var Dy=/^(?:[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 yl(t){return typeof t=="string"&&Dy.test(t)}for(var rt=[],Sl=0;Sl<256;++Sl)rt.push((Sl+256).toString(16).substr(1));function Oy(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=(rt[t[e+0]]+rt[t[e+1]]+rt[t[e+2]]+rt[t[e+3]]+"-"+rt[t[e+4]]+rt[t[e+5]]+"-"+rt[t[e+6]]+rt[t[e+7]]+"-"+rt[t[e+8]]+rt[t[e+9]]+"-"+rt[t[e+10]]+rt[t[e+11]]+rt[t[e+12]]+rt[t[e+13]]+rt[t[e+14]]+rt[t[e+15]]).toLowerCase();if(!yl(i))throw TypeError("Stringified UUID is invalid");return i}function xr(t,e,i){t=t||{};var n=t.random||(t.rng||Ay)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e){i=i||0;for(var r=0;r<16;++r)e[i+r]=n[r];return e}return Oy(n)}const Ny={"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"},vp={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"},ft={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"},sn={EdgeHTML:"EdgeHTML",Blink:"Blink",Trident:"Trident",Presto:"Presto",Gecko:"Gecko",WebKit:"WebKit"};class O{static getFirstMatch(e,i){const n=i.match(e);return n&&n.length>0&&n[1]||""}static getSecondMatch(e,i){const n=i.match(e);return n&&n.length>1&&n[2]||""}static matchAndReturnConst(e,i,n){if(e.test(i))return n}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(n=>parseInt(n,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(n=>parseInt(n,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,n=!1){const r=O.getVersionPrecision(e),s=O.getVersionPrecision(i);let o=Math.max(r,s),c=0;const d=O.map([e,i],h=>{const p=o-O.getVersionPrecision(h),g=h+new Array(p+1).join(".0");return O.map(g.split("."),y=>new Array(20-y.length).join("0")+y).reverse()});for(n&&(c=o-Math.min(r,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 n=[];let r;if(Array.prototype.map)return Array.prototype.map.call(e,i);for(r=0;r<e.length;r+=1)n.push(i(e[r]));return n}static find(e,i){let n,r;if(Array.prototype.find)return Array.prototype.find.call(e,i);for(n=0,r=e.length;n<r;n+=1){const s=e[n];if(i(s,n))return s}}static assign(e,...i){const n=e;let r,s;if(Object.assign)return Object.assign(e,...i);for(r=0,s=i.length;r<s;r+=1){const o=i[r];typeof o=="object"&&o!==null&&Object.keys(o).forEach(d=>{n[d]=o[d]})}return e}static getBrowserAlias(e){return Ny[e]}static getBrowserTypeByAlias(e){return vp[e]||""}}const ve=/version\/(\d+(\.?_?\d+)+)/i,Ly=[{test:[/googlebot/i],describe(t){const e={name:"Googlebot"},i=O.getFirstMatch(/googlebot\/(\d+(\.\d+))/i,t)||O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/opera/i],describe(t){const e={name:"Opera"},i=O.getFirstMatch(ve,t)||O.getFirstMatch(/(?:opera)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/opr\/|opios/i],describe(t){const e={name:"Opera"},i=O.getFirstMatch(/(?:opr|opios)[\s/](\S+)/i,t)||O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/SamsungBrowser/i],describe(t){const e={name:"Samsung Internet for Android"},i=O.getFirstMatch(ve,t)||O.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=O.getFirstMatch(ve,t)||O.getFirstMatch(/(?:whale)[\s/](\d+(?:\.\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/MZBrowser/i],describe(t){const e={name:"MZ Browser"},i=O.getFirstMatch(/(?:MZBrowser)[\s/](\d+(?:\.\d+)+)/i,t)||O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/focus/i],describe(t){const e={name:"Focus"},i=O.getFirstMatch(/(?:focus)[\s/](\d+(?:\.\d+)+)/i,t)||O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/swing/i],describe(t){const e={name:"Swing"},i=O.getFirstMatch(/(?:swing)[\s/](\d+(?:\.\d+)+)/i,t)||O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/coast/i],describe(t){const e={name:"Opera Coast"},i=O.getFirstMatch(ve,t)||O.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=O.getFirstMatch(/(?:opt)[\s/](\d+(\.?_?\d+)+)/i,t)||O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/yabrowser/i],describe(t){const e={name:"Yandex Browser"},i=O.getFirstMatch(/(?:yabrowser)[\s/](\d+(\.?_?\d+)+)/i,t)||O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/ucbrowser/i],describe(t){const e={name:"UC Browser"},i=O.getFirstMatch(ve,t)||O.getFirstMatch(/(?:ucbrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/Maxthon|mxios/i],describe(t){const e={name:"Maxthon"},i=O.getFirstMatch(ve,t)||O.getFirstMatch(/(?:Maxthon|mxios)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/epiphany/i],describe(t){const e={name:"Epiphany"},i=O.getFirstMatch(ve,t)||O.getFirstMatch(/(?:epiphany)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/puffin/i],describe(t){const e={name:"Puffin"},i=O.getFirstMatch(ve,t)||O.getFirstMatch(/(?:puffin)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/sleipnir/i],describe(t){const e={name:"Sleipnir"},i=O.getFirstMatch(ve,t)||O.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=O.getFirstMatch(ve,t)||O.getFirstMatch(/(?:k-meleon)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/micromessenger/i],describe(t){const e={name:"WeChat"},i=O.getFirstMatch(/(?:micromessenger)[\s/](\d+(\.?_?\d+)+)/i,t)||O.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=O.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\d+(\.?_?\d+)+)/i,t)||O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/msie|trident/i],describe(t){const e={name:"Internet Explorer"},i=O.getFirstMatch(/(?:msie |rv:)(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/\sedg\//i],describe(t){const e={name:"Microsoft Edge"},i=O.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=O.getSecondMatch(/edg([ea]|ios)\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/vivaldi/i],describe(t){const e={name:"Vivaldi"},i=O.getFirstMatch(/vivaldi\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/seamonkey/i],describe(t){const e={name:"SeaMonkey"},i=O.getFirstMatch(/seamonkey\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/sailfish/i],describe(t){const e={name:"Sailfish"},i=O.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=O.getFirstMatch(/silk\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/phantom/i],describe(t){const e={name:"PhantomJS"},i=O.getFirstMatch(/phantomjs\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/slimerjs/i],describe(t){const e={name:"SlimerJS"},i=O.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=O.getFirstMatch(ve,t)||O.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=O.getFirstMatch(ve,t)||O.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=O.getFirstMatch(/dolfin\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/tizen/i],describe(t){const e={name:"Tizen"},i=O.getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.?_?\d+)+)/i,t)||O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/qupzilla/i],describe(t){const e={name:"QupZilla"},i=O.getFirstMatch(/(?:qupzilla)[\s/](\d+(\.?_?\d+)+)/i,t)||O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/firefox|iceweasel|fxios/i],describe(t){const e={name:"Firefox"},i=O.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=O.getFirstMatch(/(?:electron)\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/MiuiBrowser/i],describe(t){const e={name:"Miui"},i=O.getFirstMatch(/(?:MiuiBrowser)[\s/](\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/chromium/i],describe(t){const e={name:"Chromium"},i=O.getFirstMatch(/(?:chromium)[\s/](\d+(\.?_?\d+)+)/i,t)||O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/chrome|crios|crmo/i],describe(t){const e={name:"Chrome"},i=O.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=O.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=O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/playstation 4/i],describe(t){const e={name:"PlayStation 4"},i=O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/safari|applewebkit/i],describe(t){const e={name:"Safari"},i=O.getFirstMatch(ve,t);return i&&(e.version=i),e}},{test:[/.*/i],describe(t){const e=/^(.*)\/(.*) /,i=/^(.*)\/(.*)[ \t]\((.*)/,r=t.search("\\(")!==-1?i:e;return{name:O.getFirstMatch(r,t),version:O.getSecondMatch(r,t)}}}];var xy=[{test:[/Roku\/DVP/],describe(t){const e=O.getFirstMatch(/Roku\/DVP-(\d+\.\d+)/i,t);return{name:ft.Roku,version:e}}},{test:[/windows phone/i],describe(t){const e=O.getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i,t);return{name:ft.WindowsPhone,version:e}}},{test:[/windows /i],describe(t){const e=O.getFirstMatch(/Windows ((NT|XP)( \d\d?.\d)?)/i,t),i=O.getWindowsVersionName(e);return{name:ft.Windows,version:e,versionName:i}}},{test:[/Macintosh(.*?) FxiOS(.*?)\//],describe(t){const e={name:ft.iOS},i=O.getSecondMatch(/(Version\/)(\d[\d.]+)/,t);return i&&(e.version=i),e}},{test:[/macintosh/i],describe(t){const e=O.getFirstMatch(/mac os x (\d+(\.?_?\d+)+)/i,t).replace(/[_\s]/g,"."),i=O.getMacOSVersionName(e),n={name:ft.MacOS,version:e};return i&&(n.versionName=i),n}},{test:[/(ipod|iphone|ipad)/i],describe(t){const e=O.getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i,t).replace(/[_\s]/g,".");return{name:ft.iOS,version:e}}},{test(t){const e=!t.test(/like android/i),i=t.test(/android/i);return e&&i},describe(t){const e=O.getFirstMatch(/android[\s/-](\d+(\.\d+)*)/i,t),i=O.getAndroidVersionName(e),n={name:ft.Android,version:e};return i&&(n.versionName=i),n}},{test:[/(web|hpw)[o0]s/i],describe(t){const e=O.getFirstMatch(/(?:web|hpw)[o0]s\/(\d+(\.\d+)*)/i,t),i={name:ft.WebOS};return e&&e.length&&(i.version=e),i}},{test:[/blackberry|\bbb\d+/i,/rim\stablet/i],describe(t){const e=O.getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i,t)||O.getFirstMatch(/blackberry\d+\/(\d+([_\s]\d+)*)/i,t)||O.getFirstMatch(/\bbb(\d+)/i,t);return{name:ft.BlackBerry,version:e}}},{test:[/bada/i],describe(t){const e=O.getFirstMatch(/bada\/(\d+(\.\d+)*)/i,t);return{name:ft.Bada,version:e}}},{test:[/tizen/i],describe(t){const e=O.getFirstMatch(/tizen[/\s](\d+(\.\d+)*)/i,t);return{name:ft.Tizen,version:e}}},{test:[/linux/i],describe(){return{name:ft.Linux}}},{test:[/CrOS/],describe(){return{name:ft.ChromeOS}}},{test:[/PlayStation 4/],describe(t){const e=O.getFirstMatch(/PlayStation 4[/\s](\d+(\.\d+)*)/i,t);return{name:ft.PlayStation4,version:e}}}],Vy=[{test:[/googlebot/i],describe(){return{type:"bot",vendor:"Google"}}},{test:[/huawei/i],describe(t){const e=O.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=O.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}}}],Uy=[{test(t){return t.getBrowserName(!0)==="microsoft edge"},describe(t){if(/\sedg\//i.test(t))return{name:sn.Blink};const i=O.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,t);return{name:sn.EdgeHTML,version:i}}},{test:[/trident/i],describe(t){const e={name:sn.Trident},i=O.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test(t){return t.test(/presto/i)},describe(t){const e={name:sn.Presto},i=O.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:sn.Gecko},i=O.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}},{test:[/(apple)?webkit\/537\.36/i],describe(){return{name:sn.Blink}}},{test:[/(apple)?webkit/i],describe(t){const e={name:sn.WebKit},i=O.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,t);return i&&(e.version=i),e}}];class yp{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=O.find(Ly,i=>{if(typeof i.test=="function")return i.test(this);if(i.test instanceof Array)return i.test.some(n=>this.test(n));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=O.find(xy,i=>{if(typeof i.test=="function")return i.test(this);if(i.test instanceof Array)return i.test.some(n=>this.test(n));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=O.find(Vy,i=>{if(typeof i.test=="function")return i.test(this);if(i.test instanceof Array)return i.test.some(n=>this.test(n));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=O.find(Uy,i=>{if(typeof i.test=="function")return i.test(this);if(i.test instanceof Array)return i.test.some(n=>this.test(n));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 O.assign({},this.parsedResult)}satisfies(e){const i={};let n=0;const r={};let s=0;if(Object.keys(e).forEach(c=>{const d=e[c];typeof d=="string"?(r[c]=d,s+=1):typeof d=="object"&&(i[c]=d,n+=1)}),n>0){const c=Object.keys(i),d=O.find(c,p=>this.isOS(p));if(d){const p=this.satisfies(i[d]);if(p!==void 0)return p}const h=O.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(r),d=O.find(c,h=>this.isBrowser(h,!0));if(d!==void 0)return this.compareVersion(r[d])}}isBrowser(e,i=!1){const n=this.getBrowserName().toLowerCase();let r=e.toLowerCase();const s=O.getBrowserTypeByAlias(r);return i&&s&&(r=s.toLowerCase()),r===n}compareVersion(e){let i=[0],n=e,r=!1;const s=this.getBrowserVersion();if(typeof s=="string")return e[0]===">"||e[0]==="<"?(n=e.substr(1),e[1]==="="?(r=!0,n=e.substr(2)):i=[],e[0]===">"?i.push(1):i.push(-1)):e[0]==="="?n=e.substr(1):e[0]==="~"&&(r=!0,n=e.substr(1)),i.indexOf(O.compareVersions(s,n,r))>-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"},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))}}/*!
|
|
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
|
|
7
|
-
`:case"\r":case" ":case" ":continue;default:throw Error("invalid base64 string.")}switch(r){case 0:o=s,r=1;break;case 1:i[n++]=o<<2|(s&48)>>4,o=s,r=2;break;case 2:i[n++]=(o&15)<<4|(s&60)>>2,o=s,r=3;break;case 3:i[n++]=(o&3)<<6|s,r=0;break}}if(r==1)throw Error("invalid base64 string.");return i.subarray(0,n)}function Wy(t){let e="",i=0,n,r=0;for(let s=0;s<t.length;s++)switch(n=t[s],i){case 0:e+=Bi[n>>2],r=(n&3)<<4,i=1;break;case 1:e+=Bi[r|n>>4],r=(n&15)<<2,i=2;break;case 2:e+=Bi[r|n>>6],e+=Bi[n&63],i=0;break}return i&&(e+=Bi[r],e+="=",i==1&&(e+="=")),e}var ec;(function(t){t.symbol=Symbol.for("protobuf-ts/unknown"),t.onRead=(i,n,r,s,o)=>{(e(n)?n[t.symbol]:n[t.symbol]=[]).push({no:r,wireType:s,data:o})},t.onWrite=(i,n,r)=>{for(let{no:s,wireType:o,data:c}of t.list(n))r.tag(s,o).raw(c)},t.list=(i,n)=>{if(e(i)){let r=i[t.symbol];return n?r.filter(s=>s.no==n):r}return[]},t.last=(i,n)=>t.list(i,n).slice(-1)[0];const e=i=>i&&Array.isArray(i[t.symbol])})(ec||(ec={}));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 jy(){let t=0,e=0;for(let n=0;n<28;n+=7){let r=this.buf[this.pos++];if(t|=(r&127)<<n,(r&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 n=3;n<=31;n+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<n,(r&128)==0)return this.assertBounds(),[t,e]}throw new Error("invalid varint")}function El(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 n=t>>>28&15|(e&7)<<4,r=e>>3!=0;if(i.push((r?n|128:n)&255),!!r){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 tc=(1<<16)*(1<<16);function Tp(t){let e=t[0]=="-";e&&(t=t.slice(1));const i=1e6;let n=0,r=0;function s(o,c){const d=Number(t.slice(o,c));r*=i,n=n*i+d,n>=tc&&(r=r+(n/tc|0),n=n%tc)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),[e,n,r]}function kl(t,e){if(e>>>0<=2097151)return""+(tc*e+(t>>>0));let i=t&16777215,n=(t>>>24|e<<8)>>>0&16777215,r=e>>16&65535,s=i+n*6777216+r*6710656,o=n+r*8147497,c=r*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 Ep(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 Hy(){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 Gy(){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}Gy();function kp(t){if(!t)throw new Error("BigInt unavailable, see https://github.com/timostamm/protobuf-ts/blob/v1.0.8/MANUAL.md#bigint-support")}const bp=/^-?[0-9]+$/,ic=4294967296,nc=2147483648;class _p{constructor(e,i){this.lo=e|0,this.hi=i|0}isZero(){return this.lo==0&&this.hi==0}toNumber(){let e=this.hi*ic+(this.lo>>>0);if(!Number.isSafeInteger(e))throw new Error("cannot convert to safe number");return e}}class ct extends _p{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 ct(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(),!bp.test(e))throw new Error("string is no integer");let[i,n,r]=Tp(e);if(i)throw new Error("signed value for ulong");return new ct(n,r);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 ct(e,e/ic)}throw new Error("unknown value "+typeof e)}toString(){return ye?this.toBigInt().toString():kl(this.lo,this.hi)}toBigInt(){return kp(ye),ye.V.setInt32(0,this.lo,!0),ye.V.setInt32(4,this.hi,!0),ye.V.getBigUint64(0,!0)}}ct.ZERO=new ct(0,0);class Ee extends _p{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 Ee(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(),!bp.test(e))throw new Error("string is no integer");let[i,n,r]=Tp(e);if(i){if(r>nc||r==nc&&n!=0)throw new Error("signed long too small")}else if(r>=nc)throw new Error("signed long too large");let s=new Ee(n,r);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 Ee(e,e/ic):new Ee(-e,-e/ic).negate()}throw new Error("unknown value "+typeof e)}isNegative(){return(this.hi&nc)!==0}negate(){let e=~this.hi,i=this.lo;return i?i=~i+1:e+=1,new Ee(i,e)}toString(){if(ye)return this.toBigInt().toString();if(this.isNegative()){let e=this.negate();return"-"+kl(e.lo,e.hi)}return kl(this.lo,this.hi)}toBigInt(){return kp(ye),ye.V.setInt32(0,this.lo,!0),ye.V.setInt32(4,this.hi,!0),ye.V.getBigInt64(0,!0)}}Ee.ZERO=new Ee(0,0);const wp={readUnknownField:!0,readerFactory:t=>new $y(t)};function qy(t){return t?Object.assign(Object.assign({},wp),t):wp}class $y{constructor(e,i){this.varint64=jy,this.uint32=Hy,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,n=e&7;if(i<=0||n<0||n>5)throw new Error("illegal tag: field no "+i+" wire type "+n);return[i,n]}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 n=this.uint32();this.pos+=n;break;case We.StartGroup:let r;for(;(r=this.tag()[1])!==We.EndGroup;)this.skip(r);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 Ee(...this.varint64())}uint64(){return new ct(...this.varint64())}sint64(){let[e,i]=this.varint64(),n=-(e&1);return e=(e>>>1|(i&1)<<31)^n,i=i>>>1^n,new Ee(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 ct(this.sfixed32(),this.sfixed32())}sfixed64(){return new Ee(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 de(t,e){if(!t)throw new Error(e)}const Jy=34028234663852886e22,Ky=-34028234663852886e22,zy=4294967295,Yy=2147483647,Qy=-2147483648;function Hs(t){if(typeof t!="number")throw new Error("invalid int 32: "+typeof t);if(!Number.isInteger(t)||t>Yy||t<Qy)throw new Error("invalid int 32: "+t)}function rc(t){if(typeof t!="number")throw new Error("invalid uint 32: "+typeof t);if(!Number.isInteger(t)||t>zy||t<0)throw new Error("invalid uint 32: "+t)}function bl(t){if(typeof t!="number")throw new Error("invalid float 32: "+typeof t);if(!!Number.isFinite(t)&&(t>Jy||t<Ky))throw new Error("invalid float 32: "+t)}const Ip={writeUnknownFields:!0,writerFactory:()=>new Zy};function Xy(t){return t?Object.assign(Object.assign({},Ip),t):Ip}class Zy{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 r=0;r<this.chunks.length;r++)e+=this.chunks[r].length;let i=new Uint8Array(e),n=0;for(let r=0;r<this.chunks.length;r++)i.set(this.chunks[r],n),n+=this.chunks[r].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(rc(e);e>127;)this.buf.push(e&127|128),e=e>>>7;return this.buf.push(e),this}int32(e){return Hs(e),Ep(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){bl(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){rc(e);let i=new Uint8Array(4);return new DataView(i.buffer).setUint32(0,e,!0),this.raw(i)}sfixed32(e){Hs(e);let i=new Uint8Array(4);return new DataView(i.buffer).setInt32(0,e,!0),this.raw(i)}sint32(e){return Hs(e),e=(e<<1^e>>31)>>>0,Ep(e,this.buf),this}sfixed64(e){let i=new Uint8Array(8),n=new DataView(i.buffer),r=Ee.from(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(i)}fixed64(e){let i=new Uint8Array(8),n=new DataView(i.buffer),r=ct.from(e);return n.setInt32(0,r.lo,!0),n.setInt32(4,r.hi,!0),this.raw(i)}int64(e){let i=Ee.from(e);return El(i.lo,i.hi,this.buf),this}sint64(e){let i=Ee.from(e),n=i.hi>>31,r=i.lo<<1^n,s=(i.hi<<1|i.lo>>>31)^n;return El(r,s,this.buf),this}uint64(e){let i=ct.from(e);return El(i.lo,i.hi,this.buf),this}}const Cp={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0},Pp={ignoreUnknownFields:!1};function eS(t){return t?Object.assign(Object.assign({},Pp),t):Pp}function tS(t){return t?Object.assign(Object.assign({},Cp),t):Cp}const Rp=Symbol.for("protobuf-ts/message-type");function Mp(t){let e=!1;const i=[];for(let n=0;n<t.length;n++){let r=t.charAt(n);r=="_"?e=!0:/\d/.test(r)?(i.push(r),e=!0):e?(i.push(r.toUpperCase()),e=!1):n==0?i.push(r.toLowerCase()):i.push(r)}return i.join("")}var D;(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"})(D||(D={}));var Ii;(function(t){t[t.BIGINT=0]="BIGINT",t[t.STRING=1]="STRING",t[t.NUMBER=2]="NUMBER"})(Ii||(Ii={}));var sc;(function(t){t[t.NO=0]="NO",t[t.PACKED=1]="PACKED",t[t.UNPACKED=2]="UNPACKED"})(sc||(sc={}));function iS(t){var e,i,n,r;return t.localName=(e=t.localName)!==null&&e!==void 0?e:Mp(t.name),t.jsonName=(i=t.jsonName)!==null&&i!==void 0?i:Mp(t.name),t.repeat=(n=t.repeat)!==null&&n!==void 0?n:sc.NO,t.opt=(r=t.opt)!==null&&r!==void 0?r:t.repeat||t.oneof?!1:t.kind=="message",t}function nS(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 rS{constructor(e){var i;this.fields=(i=e.fields)!==null&&i!==void 0?i:[]}prepare(){if(this.data)return;const e=[],i=[],n=[];for(let r of this.fields)if(r.oneof)n.includes(r.oneof)||(n.push(r.oneof),e.push(r.oneof),i.push(r.oneof));else switch(i.push(r.localName),r.kind){case"scalar":case"enum":(!r.opt||r.repeat)&&e.push(r.localName);break;case"message":r.repeat&&e.push(r.localName);break;case"map":e.push(r.localName);break}this.data={req:e,known:i,oneofs:Object.values(n)}}is(e,i,n=!1){if(i<0)return!0;if(e==null||typeof e!="object")return!1;this.prepare();let r=Object.keys(e),s=this.data;if(r.length<s.req.length||s.req.some(o=>!r.includes(o))||!n&&r.some(o=>!s.known.includes(o)))return!1;if(i<1)return!0;for(const o of s.oneofs){const c=e[o];if(!nS(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,n,i))return!1}for(const o of this.fields)if(o.oneof===void 0&&!this.field(e[o.localName],o,n,i))return!1;return!0}field(e,i,n,r){let s=i.repeat;switch(i.kind){case"scalar":return e===void 0?i.opt:s?this.scalars(e,i.T,r,i.L):this.scalar(e,i.T,i.L);case"enum":return e===void 0?i.opt:s?this.scalars(e,D.INT32,r):this.scalar(e,D.INT32);case"message":return e===void 0?!0:s?this.messages(e,i.T(),n,r):this.message(e,i.T(),n,r);case"map":if(typeof e!="object"||e===null)return!1;if(r<2)return!0;if(!this.mapKeys(e,i.K,r))return!1;switch(i.V.kind){case"scalar":return this.scalars(Object.values(e),i.V.T,r,i.V.L);case"enum":return this.scalars(Object.values(e),D.INT32,r);case"message":return this.messages(Object.values(e),i.V.T(),n,r)}break}return!0}message(e,i,n,r){return n?i.isAssignable(e,r):i.is(e,r)}messages(e,i,n,r){if(!Array.isArray(e))return!1;if(r<2)return!0;if(n){for(let s=0;s<e.length&&s<r;s++)if(!i.isAssignable(e[s],r-1))return!1}else for(let s=0;s<e.length&&s<r;s++)if(!i.is(e[s],r-1))return!1;return!0}scalar(e,i,n){let r=typeof e;switch(i){case D.UINT64:case D.FIXED64:case D.INT64:case D.SFIXED64:case D.SINT64:switch(n){case Ii.BIGINT:return r=="bigint";case Ii.NUMBER:return r=="number"&&!isNaN(e);default:return r=="string"}case D.BOOL:return r=="boolean";case D.STRING:return r=="string";case D.BYTES:return e instanceof Uint8Array;case D.DOUBLE:case D.FLOAT:return r=="number"&&!isNaN(e);default:return r=="number"&&Number.isInteger(e)}}scalars(e,i,n,r){if(!Array.isArray(e))return!1;if(n<2)return!0;if(Array.isArray(e)){for(let s=0;s<e.length&&s<n;s++)if(!this.scalar(e[s],i,r))return!1}return!0}mapKeys(e,i,n){let r=Object.keys(e);switch(i){case D.INT32:case D.FIXED32:case D.SFIXED32:case D.SINT32:case D.UINT32:return this.scalars(r.slice(0,n).map(s=>parseInt(s)),i,n);case D.BOOL:return this.scalars(r.slice(0,n).map(s=>s=="true"?!0:s=="false"?!1:s),i,n);default:return this.scalars(r,i,n,Ii.STRING)}}}function ai(t,e){switch(e){case Ii.BIGINT:return t.toBigInt();case Ii.NUMBER:return t.toNumber();default:return t.toString()}}class sS{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 n of i)this.fMap[n.name]=n,this.fMap[n.jsonName]=n,this.fMap[n.localName]=n}}assert(e,i,n){if(!e){let r=Tl(n);throw(r=="number"||r=="boolean")&&(r=n.toString()),new Error(`Cannot parse JSON ${r} for ${this.info.typeName}#${i}`)}}read(e,i,n){this.prepare();const r=[];for(const[s,o]of Object.entries(e)){const c=this.fMap[s];if(!c){if(!n.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(r.includes(c.oneof))throw new Error(`Multiple members of the oneof group "${c.oneof}" of ${this.info.typeName} are present in JSON.`);r.push(c.oneof),h=i[c.oneof]={oneofKind:d}}else h=i;if(c.kind=="map"){if(o===null)continue;this.assert(Fy(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 E;switch(c.V.kind){case"message":E=c.V.T().internalJsonRead(y,n);break;case"enum":if(E=this.enum(c.V.T(),y,c.name,n.ignoreUnknownFields),E===!1)continue;break;case"scalar":E=this.scalar(y,c.V.T,c.V.L,c.name);break}this.assert(E!==void 0,c.name+" map value",y);let b=g;c.K==D.BOOL&&(b=b=="true"?!0:b=="false"?!1:b),b=this.scalar(b,c.K,Ii.STRING,c.name).toString(),p[b]=E}}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,n);break;case"enum":if(y=this.enum(c.T(),g,c.name,n.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,n,h[d]);break;case"enum":if(o===null)continue;let p=this.enum(c.T(),o,c.name,n.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,n,r){if(e[0]=="google.protobuf.NullValue"&&de(i===null||i==="NULL_VALUE",`Unable to parse field ${this.info.typeName}#${n}, enum ${e[0]} only accepts null.`),i===null)return 0;switch(typeof i){case"number":return de(Number.isInteger(i),`Unable to parse field ${this.info.typeName}#${n}, 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"&&r?!1:(de(typeof o=="number",`Unable to parse field ${this.info.typeName}#${n}, enum ${e[0]} has no value for "${i}".`),o)}de(!1,`Unable to parse field ${this.info.typeName}#${n}, cannot parse enum value from ${typeof i}".`)}scalar(e,i,n,r){let s;try{switch(i){case D.DOUBLE:case D.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==D.FLOAT&&bl(o),o;case D.INT32:case D.FIXED32:case D.SFIXED32:case D.SINT32:case D.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==D.UINT32?rc(c):Hs(c),c;case D.INT64:case D.SFIXED64:case D.SINT64:if(e===null)return ai(Ee.ZERO,n);if(typeof e!="number"&&typeof e!="string")break;return ai(Ee.from(e),n);case D.FIXED64:case D.UINT64:if(e===null)return ai(ct.ZERO,n);if(typeof e!="number"&&typeof e!="string")break;return ai(ct.from(e),n);case D.BOOL:if(e===null)return!1;if(typeof e!="boolean")break;return e;case D.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 D.BYTES:if(e===null||e==="")return new Uint8Array(0);if(typeof e!="string")break;return By(e)}}catch(o){s=o.message}this.assert(!1,r+(s?" - "+s:""),e)}}class aS{constructor(e){var i;this.fields=(i=e.fields)!==null&&i!==void 0?i:[]}write(e,i){const n={},r=e;for(const s of this.fields){if(!s.oneof){let h=this.field(s,r[s.localName],i);h!==void 0&&(n[i.useProtoFieldName?s.name:s.jsonName]=h);continue}const o=r[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);de(d!==void 0),n[i.useProtoFieldName?s.name:s.jsonName]=d}return n}field(e,i,n){let r;if(e.kind=="map"){de(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);de(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,n);de(p!==void 0),s[d.toString()]=p}break;case"enum":const c=e.V.T();for(const[d,h]of Object.entries(i)){de(h===void 0||typeof h=="number");const p=this.enum(c,h,e.name,!1,!0,n.enumAsInteger);de(p!==void 0),s[d.toString()]=p}break}(n.emitDefaultValues||Object.keys(s).length>0)&&(r=s)}else if(e.repeat){de(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);de(h!==void 0),s.push(h)}break;case"enum":const o=e.T();for(let d=0;d<i.length;d++){de(i[d]===void 0||typeof i[d]=="number");const h=this.enum(o,i[d],e.name,e.opt,!0,n.enumAsInteger);de(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,n);de(h!==void 0),s.push(h)}break}(n.emitDefaultValues||s.length>0||n.emitDefaultValues)&&(r=s)}else switch(e.kind){case"scalar":r=this.scalar(e.T,i,e.name,e.opt,n.emitDefaultValues);break;case"enum":r=this.enum(e.T(),i,e.name,e.opt,n.emitDefaultValues,n.enumAsInteger);break;case"message":r=this.message(e.T(),i,e.name,n);break}return r}enum(e,i,n,r,s,o){if(e[0]=="google.protobuf.NullValue")return!s&&!r?void 0:null;if(i===void 0){de(r);return}if(!(i===0&&!s&&!r))return de(typeof i=="number"),de(Number.isInteger(i)),o||!e[1].hasOwnProperty(i)?i:e[2]?e[2]+e[1][i]:e[1][i]}message(e,i,n,r){return i===void 0?r.emitDefaultValues?null:void 0:e.internalJsonWrite(i,r)}scalar(e,i,n,r,s){if(i===void 0){de(r);return}const o=s||r;switch(e){case D.INT32:case D.SFIXED32:case D.SINT32:return i===0?o?0:void 0:(Hs(i),i);case D.FIXED32:case D.UINT32:return i===0?o?0:void 0:(rc(i),i);case D.FLOAT:bl(i);case D.DOUBLE:return i===0?o?0:void 0:(de(typeof i=="number"),Number.isNaN(i)?"NaN":i===Number.POSITIVE_INFINITY?"Infinity":i===Number.NEGATIVE_INFINITY?"-Infinity":i);case D.STRING:return i===""?o?"":void 0:(de(typeof i=="string"),i);case D.BOOL:return i===!1?o?!1:void 0:(de(typeof i=="boolean"),i);case D.UINT64:case D.FIXED64:de(typeof i=="number"||typeof i=="string"||typeof i=="bigint");let c=ct.from(i);return c.isZero()&&!o?void 0:c.toString();case D.INT64:case D.SFIXED64:case D.SINT64:de(typeof i=="number"||typeof i=="string"||typeof i=="bigint");let d=Ee.from(i);return d.isZero()&&!o?void 0:d.toString();case D.BYTES:return de(i instanceof Uint8Array),i.byteLength?Wy(i):o?"":void 0}}}function _l(t,e=Ii.STRING){switch(t){case D.BOOL:return!1;case D.UINT64:case D.FIXED64:return ai(ct.ZERO,e);case D.INT64:case D.SFIXED64:case D.SINT64:return ai(Ee.ZERO,e);case D.DOUBLE:case D.FLOAT:return 0;case D.BYTES:return new Uint8Array(0);case D.STRING:return"";default:return 0}}class oS{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(n=>[n.no,n]))}}read(e,i,n,r){this.prepare();const s=r===void 0?e.len:e.pos+r;for(;e.pos<s;){const[o,c]=e.tag(),d=this.fieldNoToField.get(o);if(!d){let y=n.readUnknownField;if(y=="throw")throw new Error(`Unknown field ${o} (wire type ${c}) for ${this.info.typeName}`);let E=e.skip(c);y!==!1&&(y===!0?ec.onRead:y)(this.info.typeName,i,o,c,E);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"?D.INT32:d.T,E=d.kind=="scalar"?d.L:void 0;if(p){let M=h[g];if(c==We.LengthDelimited&&y!=D.STRING&&y!=D.BYTES){let U=e.uint32()+e.pos;for(;e.pos<U;)M.push(this.scalar(e,y,E))}else M.push(this.scalar(e,y,E))}else h[g]=this.scalar(e,y,E);break;case"message":if(p){let M=h[g],U=d.T().internalBinaryRead(e,e.uint32(),n);M.push(U)}else h[g]=d.T().internalBinaryRead(e,e.uint32(),n,h[g]);break;case"map":let[b,N]=this.mapEntry(d,e,n);h[g][b]=N;break}}}mapEntry(e,i,n){let r=i.uint32(),s=i.pos+r,o,c;for(;i.pos<s;){let[d,h]=i.tag();switch(d){case 1:e.K==D.BOOL?o=i.bool().toString():o=this.scalar(i,e.K,Ii.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(),n);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=_l(e.K);o=e.K==D.BOOL?d.toString():d}if(c===void 0)switch(e.V.kind){case"scalar":c=_l(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,n){switch(i){case D.INT32:return e.int32();case D.STRING:return e.string();case D.BOOL:return e.bool();case D.DOUBLE:return e.double();case D.FLOAT:return e.float();case D.INT64:return ai(e.int64(),n);case D.UINT64:return ai(e.uint64(),n);case D.FIXED64:return ai(e.fixed64(),n);case D.FIXED32:return e.fixed32();case D.BYTES:return e.bytes();case D.UINT32:return e.uint32();case D.SFIXED32:return e.sfixed32();case D.SFIXED64:return ai(e.sfixed64(),n);case D.SINT32:return e.sint32();case D.SINT64:return ai(e.sint64(),n)}}}class cS{constructor(e){this.info=e}prepare(){if(!this.fields){const e=this.info.fields?this.info.fields.concat():[];this.fields=e.sort((i,n)=>i.no-n.no)}}write(e,i,n){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"?D.INT32:s.T;if(d)if(de(Array.isArray(o)),d==sc.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?de(s.opt):this.scalar(i,p,s.no,o,c||s.opt);break;case"message":if(d){de(Array.isArray(o));for(const g of o)this.message(i,n,s.T(),s.no,g)}else this.message(i,n,s.T(),s.no,o);break;case"map":de(typeof o=="object"&&o!==null);for(const[g,y]of Object.entries(o))this.mapEntry(i,n,s,g,y);break}}let r=n.writeUnknownFields;r!==!1&&(r===!0?ec.onWrite:r)(this.info.typeName,e,i)}mapEntry(e,i,n,r,s){e.tag(n.no,We.LengthDelimited),e.fork();let o=r;switch(n.K){case D.INT32:case D.FIXED32:case D.UINT32:case D.SFIXED32:case D.SINT32:o=Number.parseInt(r);break;case D.BOOL:de(r=="true"||r=="false"),o=r=="true";break}switch(this.scalar(e,n.K,1,o,!0),n.V.kind){case"scalar":this.scalar(e,n.V.T,2,s,!0);break;case"enum":this.scalar(e,D.INT32,2,s,!0);break;case"message":this.message(e,i,n.V.T(),2,s);break}e.join()}message(e,i,n,r,s){s!==void 0&&(n.internalBinaryWrite(s,e.tag(r,We.LengthDelimited).fork(),i),e.join())}scalar(e,i,n,r,s){let[o,c,d]=this.scalarInfo(i,r);(!d||s)&&(e.tag(n,o),e[c](r))}packed(e,i,n,r){if(!r.length)return;de(i!==D.BYTES&&i!==D.STRING),e.tag(n,We.LengthDelimited),e.fork();let[,s]=this.scalarInfo(i);for(let o=0;o<r.length;o++)e[s](r[o]);e.join()}scalarInfo(e,i){let n=We.Varint,r,s=i===void 0,o=i===0;switch(e){case D.INT32:r="int32";break;case D.STRING:o=s||!i.length,n=We.LengthDelimited,r="string";break;case D.BOOL:o=i===!1,r="bool";break;case D.UINT32:r="uint32";break;case D.DOUBLE:n=We.Bit64,r="double";break;case D.FLOAT:n=We.Bit32,r="float";break;case D.INT64:o=s||Ee.from(i).isZero(),r="int64";break;case D.UINT64:o=s||ct.from(i).isZero(),r="uint64";break;case D.FIXED64:o=s||ct.from(i).isZero(),n=We.Bit64,r="fixed64";break;case D.BYTES:o=s||!i.byteLength,n=We.LengthDelimited,r="bytes";break;case D.FIXED32:n=We.Bit32,r="fixed32";break;case D.SFIXED32:n=We.Bit32,r="sfixed32";break;case D.SFIXED64:o=s||Ee.from(i).isZero(),n=We.Bit64,r="sfixed64";break;case D.SINT32:r="sint32";break;case D.SINT64:o=s||Ee.from(i).isZero(),r="sint64";break}return[n,r,s||o]}}function dS(t){const e=t.messagePrototype?Object.create(t.messagePrototype):Object.defineProperty({},Rp,{value:t});for(let i of t.fields){let n=i.localName;if(!i.opt)if(i.oneof)e[i.oneof]={oneofKind:void 0};else if(i.repeat)e[n]=[];else switch(i.kind){case"scalar":e[n]=_l(i.T,i.L);break;case"enum":e[n]=0;break;case"map":e[n]={};break}}return e}function wl(t,e,i){let n,r=i,s;for(let o of t.fields){let c=o.localName;if(o.oneof){const d=r[o.oneof];if((d==null?void 0:d.oneofKind)==null)continue;if(n=d[c],s=e[o.oneof],s.oneofKind=d.oneofKind,n==null){delete s[c];continue}}else if(n=r[c],s=e,n==null)continue;switch(o.repeat&&(s[c].length=n.length),o.kind){case"scalar":case"enum":if(o.repeat)for(let h=0;h<n.length;h++)s[c][h]=n[h];else s[c]=n;break;case"message":let d=o.T();if(o.repeat)for(let h=0;h<n.length;h++)s[c][h]=d.create(n[h]);else s[c]===void 0?s[c]=d.create(n):d.mergePartial(s[c],n);break;case"map":switch(o.V.kind){case"scalar":case"enum":Object.assign(s[c],n);break;case"message":let h=o.V.T();for(let p of Object.keys(n))s[c][p]=h.create(n[p]);break}break}}}function lS(t,e,i){if(e===i)return!0;if(!e||!i)return!1;for(let n of t.fields){let r=n.localName,s=n.oneof?e[n.oneof][r]:e[r],o=n.oneof?i[n.oneof][r]:i[r];switch(n.kind){case"enum":case"scalar":let c=n.kind=="enum"?D.INT32:n.T;if(!(n.repeat?Dp(c,s,o):Ap(c,s,o)))return!1;break;case"map":if(!(n.V.kind=="message"?Op(n.V.T(),ac(s),ac(o)):Dp(n.V.kind=="enum"?D.INT32:n.V.T,ac(s),ac(o))))return!1;break;case"message":let d=n.T();if(!(n.repeat?Op(d,s,o):d.equals(s,o)))return!1;break}}return!0}const ac=Object.values;function Ap(t,e,i){if(e===i)return!0;if(t!==D.BYTES)return!1;let n=e,r=i;if(n.length!==r.length)return!1;for(let s=0;s<n.length;s++)if(n[s]!=r[s])return!1;return!0}function Dp(t,e,i){if(e.length!==i.length)return!1;for(let n=0;n<e.length;n++)if(!Ap(t,e[n],i[n]))return!1;return!0}function Op(t,e,i){if(e.length!==i.length)return!1;for(let n=0;n<e.length;n++)if(!t.equals(e[n],i[n]))return!1;return!0}const uS=Object.getOwnPropertyDescriptors(Object.getPrototypeOf({}));class T{constructor(e,i,n){this.defaultCheckDepth=16,this.typeName=e,this.fields=i.map(iS),this.options=n!=null?n:{},this.messagePrototype=Object.create(null,Object.assign(Object.assign({},uS),{[Rp]:{value:this}})),this.refTypeCheck=new rS(this),this.refJsonReader=new sS(this),this.refJsonWriter=new aS(this),this.refBinReader=new oS(this),this.refBinWriter=new cS(this)}create(e){let i=dS(this);return e!==void 0&&wl(this,i,e),i}clone(e){let i=this.create();return wl(this,i,e),i}equals(e,i){return lS(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){wl(this,e,i)}fromBinary(e,i){let n=qy(i);return this.internalBinaryRead(n.readerFactory(e),e.byteLength,n)}fromJson(e,i){return this.internalJsonRead(e,eS(i))}fromJsonString(e,i){let n=JSON.parse(e);return this.fromJson(n,i)}toJson(e,i){return this.internalJsonWrite(e,tS(i))}toJsonString(e,i){var n;let r=this.toJson(e,i);return JSON.stringify(r,null,(n=i==null?void 0:i.prettySpaces)!==null&&n!==void 0?n:0)}toBinary(e,i){let n=Xy(i);return this.internalBinaryWrite(e,n.writerFactory(),n).finish()}internalJsonRead(e,i,n){if(e!==null&&typeof e=="object"&&!Array.isArray(e)){let r=n!=null?n:this.create();return this.refJsonReader.read(e,r,i),r}throw new Error(`Unable to parse message ${this.typeName} from JSON ${Tl(e)}.`)}internalJsonWrite(e,i){return this.refJsonWriter.write(e,i)}internalBinaryWrite(e,i,n){return this.refBinWriter.write(e,i,n),i}internalBinaryRead(e,i,n,r){let s=r!=null?r:this.create();return this.refBinReader.read(e,s,n,i),s}}const hS=t=>(e,i)=>(t.set(e,i),i),Np=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,Lp=536870912,xp=Lp*2,pS=(t,e)=>i=>{const n=e.get(i);let r=n===void 0?i.size:n<xp?n+1:0;if(!i.has(r))return t(i,r);if(i.size<Lp){for(;i.has(r);)r=Math.floor(Math.random()*xp);return t(i,r)}if(i.size>Np)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;i.has(r);)r=Math.floor(Math.random()*Np);return t(i,r)},Vp=new WeakMap,mS=hS(Vp),oc=pS(mS,Vp),gS=t=>t.method!==void 0&&t.method==="call",fS=t=>t.error===null&&typeof t.id=="number",cc=((t,e)=>{let i=null;return()=>{if(i!==null)return i;const n=new Blob([e],{type:"application/javascript; charset=utf-8"}),r=URL.createObjectURL(n);return i=t(r),setTimeout(()=>URL.revokeObjectURL(r)),i}})(t=>{const e=new Map([[0,()=>{}]]),i=new Map([[0,()=>{}]]),n=new Map,r=new Worker(t);return r.addEventListener("message",({data:h})=>{if(gS(h)){const{params:{timerId:p,timerType:g}}=h;if(g==="interval"){const y=e.get(p);if(typeof y=="number"){const E=n.get(y);if(E===void 0||E.timerId!==p||E.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 E=n.get(y);if(E===void 0||E.timerId!==p||E.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(fS(h)){const{id:p}=h,g=n.get(p);if(g===void 0)throw new Error("The timer is in an undefined state.");const{timerId:y,timerType:E}=g;n.delete(p),E==="interval"?e.delete(y):i.delete(y)}else{const{error:{message:p}}=h;throw new Error(p)}}),{clearInterval:h=>{const p=oc(n);n.set(p,{timerId:h,timerType:"interval"}),e.set(h,p),r.postMessage({id:p,method:"clear",params:{timerId:h,timerType:"interval"}})},clearTimeout:h=>{const p=oc(n);n.set(p,{timerId:h,timerType:"timeout"}),i.set(h,p),r.postMessage({id:p,method:"clear",params:{timerId:h,timerType:"timeout"}})},setInterval:(h,p=0)=>{const g=oc(e);return e.set(g,()=>{h(),typeof e.get(g)=="function"&&r.postMessage({id:null,method:"set",params:{delay:p,now:performance.now(),timerId:g,timerType:"interval"}})}),r.postMessage({id:null,method:"set",params:{delay:p,now:performance.now(),timerId:g,timerType:"interval"}}),g},setTimeout:(h,p=0)=>{const g=oc(i);return i.set(g,h),r.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})}}))})();`),Vr=t=>cc().clearInterval(t),vS=t=>cc().clearTimeout(t),dc=(t,e)=>cc().setInterval(t,e);var yS=Object.freeze(Object.defineProperty({__proto__:null,clearInterval:Vr,clearTimeout:vS,setInterval:dc,setTimeout:(t,e)=>cc().setTimeout(t,e)},Symbol.toStringTag,{value:"Module"})),Up={},Il={exports:{}},Fp=Il.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(Fp).forEach(function(t){var e=Fp[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]))},n=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)},r=Il.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],E=g.slice(2);y==="m"&&(h.push({rtp:[],fmtp:[]}),p=h[h.length-1]);for(var b=0;b<(r[y]||[]).length;b+=1){var N=r[y][b];if(N.reg.test(E))return n(N,p,E)}}),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}})})}}(Up);var Cl=Il.exports,SS=/%[sdv%]/g,TS=function(t){var e=1,i=arguments,n=i.length;return t.replace(SS,function(r){if(e>=n)return r;var s=i[e];switch(e+=1,r){case"%%":return"%";case"%s":return String(s);case"%d":return Number(s);case"%v":return""}})},Gs=function(t,e,i){var n=e.format instanceof Function?e.format(e.push?i:i[e.name]):e.format,r=[t+"="+n];if(e.names)for(var s=0;s<e.names.length;s+=1){var o=e.names[s];e.name?r.push(i[e.name][o]):r.push(i[e.names[s]])}else r.push(i[e.name]);return TS.apply(null,r)},ES=["v","o","s","i","u","e","p","c","b","t","r","z","a"],kS=["i","c","b","a"],bS=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||ES,n=e.innerOrder||kS,r=[];return i.forEach(function(s){Cl[s].forEach(function(o){o.name in t&&t[o.name]!=null?r.push(Gs(s,o,t)):o.push in t&&t[o.push]!=null&&t[o.push].forEach(function(c){r.push(Gs(s,o,c))})})}),t.media.forEach(function(s){r.push(Gs("m",Cl.m[0],s)),n.forEach(function(o){Cl[o].forEach(function(c){c.name in s&&s[c.name]!=null?r.push(Gs(o,c,s)):c.push in s&&s[c.push]!=null&&s[c.push].forEach(function(d){r.push(Gs(o,c,d))})})})}),r.join(`\r
|
|
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
|
|
8
8
|
`)+`\r
|
|
9
|
-
`},Hn=Up,_S=bS,lc=_S,Gn=Hn.parse;Hn.parseParams,Hn.parseFmtpConfig,Hn.parsePayloads,Hn.parseRemoteCandidates,Hn.parseImageAttributes,Hn.parseSimulcastStreamList;var wS=Object.defineProperty,IS=Object.defineProperties,CS=Object.getOwnPropertyDescriptors,uc=Object.getOwnPropertySymbols,PS=Object.getPrototypeOf,Bp=Object.prototype.hasOwnProperty,Wp=Object.prototype.propertyIsEnumerable,RS=Reflect.get,MS=Math.pow,Pl=(t,e,i)=>e in t?wS(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,x=(t,e)=>{for(var i in e||(e={}))Bp.call(e,i)&&Pl(t,i,e[i]);if(uc)for(var i of uc(e))Wp.call(e,i)&&Pl(t,i,e[i]);return t},H=(t,e)=>IS(t,CS(e)),hc=(t,e)=>{var i={};for(var n in t)Bp.call(t,n)&&e.indexOf(n)<0&&(i[n]=t[n]);if(t!=null&&uc)for(var n of uc(t))e.indexOf(n)<0&&Wp.call(t,n)&&(i[n]=t[n]);return i},m=(t,e,i)=>(Pl(t,typeof e!="symbol"?e+"":e,i),i),Rl=(t,e,i)=>{if(!e.has(t))throw TypeError("Cannot "+i)},a=(t,e,i)=>(Rl(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,n)=>(Rl(t,e,"write to private field"),n?n.call(t,i):e.set(t,i),i),B=(t,e,i)=>(Rl(t,e,"access private method"),i),AS=(t,e,i)=>RS(PS(t),i,e),u=(t,e,i)=>new Promise((n,r)=>{var s=d=>{try{c(i.next(d))}catch(h){r(h)}},o=d=>{try{c(i.throw(d))}catch(h){r(h)}},c=d=>d.done?n(d.value):Promise.resolve(d.value).then(s,o);c((i=i.apply(t,e)).next())}),dt={},DS={get exports(){return dt},set exports(t){dt=t}},Ur=typeof Reflect=="object"?Reflect:null,jp=Ur&&typeof Ur.apply=="function"?Ur.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)},pc;Ur&&typeof Ur.ownKeys=="function"?pc=Ur.ownKeys:Object.getOwnPropertySymbols?pc=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:pc=function(t){return Object.getOwnPropertyNames(t)};function OS(t){console&&console.warn&&console.warn(t)}var Hp=Number.isNaN||function(t){return t!==t};function pe(){pe.init.call(this)}DS.exports=pe,dt.once=VS,pe.EventEmitter=pe,pe.prototype._events=void 0,pe.prototype._eventsCount=0,pe.prototype._maxListeners=void 0;var Gp=10;function mc(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 Gp},set:function(t){if(typeof t!="number"||t<0||Hp(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");Gp=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||Hp(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 qp(t){return t._maxListeners===void 0?pe.defaultMaxListeners:t._maxListeners}pe.prototype.getMaxListeners=function(){return qp(this)},pe.prototype.emit=function(t){for(var e=[],i=1;i<arguments.length;i++)e.push(arguments[i]);var n=t==="error",r=this._events;if(r!==void 0)n=n&&r.error===void 0;else if(!n)return!1;if(n){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=r[t];if(c===void 0)return!1;if(typeof c=="function")jp(c,this,e);else for(var d=c.length,h=Yp(c,d),i=0;i<d;++i)jp(h[i],this,e);return!0};function $p(t,e,i,n){var r,s,o;if(mc(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]=n?[i,o]:[o,i]:n?o.unshift(i):o.push(i),r=qp(t),r>0&&o.length>r&&!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,OS(c)}return t}pe.prototype.addListener=function(t,e){return $p(this,t,e,!1)},pe.prototype.on=pe.prototype.addListener,pe.prototype.prependListener=function(t,e){return $p(this,t,e,!0)};function NS(){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 Jp(t,e,i){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:i},r=NS.bind(n);return r.listener=i,n.wrapFn=r,r}pe.prototype.once=function(t,e){return mc(e),this.on(t,Jp(this,t,e)),this},pe.prototype.prependOnceListener=function(t,e){return mc(e),this.prependListener(t,Jp(this,t,e)),this},pe.prototype.removeListener=function(t,e){var i,n,r,s,o;if(mc(e),n=this._events,n===void 0)return this;if(i=n[t],i===void 0)return this;if(i===e||i.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete n[t],n.removeListener&&this.emit("removeListener",t,i.listener||e));else if(typeof i!="function"){for(r=-1,s=i.length-1;s>=0;s--)if(i[s]===e||i[s].listener===e){o=i[s].listener,r=s;break}if(r<0)return this;r===0?i.shift():LS(i,r),i.length===1&&(n[t]=i[0]),n.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,n;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 r=Object.keys(i),s;for(n=0;n<r.length;++n)s=r[n],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(n=e.length-1;n>=0;n--)this.removeListener(t,e[n]);return this};function Kp(t,e,i){var n=t._events;if(n===void 0)return[];var r=n[e];return r===void 0?[]:typeof r=="function"?i?[r.listener||r]:[r]:i?xS(r):Yp(r,r.length)}pe.prototype.listeners=function(t){return Kp(this,t,!0)},pe.prototype.rawListeners=function(t){return Kp(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?pc(this._events):[]};function Yp(t,e){for(var i=new Array(e),n=0;n<e;++n)i[n]=t[n];return i}function LS(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function xS(t){for(var e=new Array(t.length),i=0;i<e.length;++i)e[i]=t[i].listener||t[i];return e}function VS(t,e){return new Promise(function(i,n){function r(o){t.removeListener(e,s),n(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",r),i([].slice.call(arguments))}Qp(t,e,s,{once:!0}),e!=="error"&&US(t,r,{once:!0})})}function US(t,e,i){typeof t.on=="function"&&Qp(t,"error",e,i)}function Qp(t,e,i,n){if(typeof t.on=="function")n.once?t.once(e,i):t.on(e,i);else if(typeof t.addEventListener=="function")t.addEventListener(e,function r(s){n.once&&t.removeEventListener(e,r),i(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}var Z;(function(t){t[t.MAJOR_EVENT=0]="MAJOR_EVENT",t[t.MINOR_EVENT=1]="MINOR_EVENT"})(Z||(Z={}));var 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 FS=new Map([[V.PRECALL_TEST_BEGIN,Z.MINOR_EVENT],[V.PRECALL_TEST_COMPLETE,Z.MINOR_EVENT],[V.CALL_JOIN_BEGIN,Z.MAJOR_EVENT],[V.NET_QUALITY_TEST_BEGIN,Z.MINOR_EVENT],[V.NET_QUALITY_TEST_END,Z.MINOR_EVENT],[V.WEBSOCKET_CONNECTED,Z.MINOR_EVENT],[V.TRANSPORT_CONNECTED,Z.MAJOR_EVENT],[V.AUDIO_ON,Z.MINOR_EVENT],[V.AUDIO_OFF,Z.MINOR_EVENT],[V.VIDEO_ON,Z.MINOR_EVENT],[V.VIDEO_OFF,Z.MINOR_EVENT],[V.PARTICIPANT_ROLE,Z.MINOR_EVENT],[V.PING_STAT,Z.MAJOR_EVENT],[V.DISCONNECT,Z.MAJOR_EVENT],[V.RECONNECT_ATTEMPT,Z.MAJOR_EVENT],[V.SCREENSHARE_START_REQUESTED,Z.MINOR_EVENT],[V.SCREENSHARE_STARTED,Z.MINOR_EVENT],[V.SCREENSHARE_STOPPED,Z.MINOR_EVENT],[V.TAB_CHANGE,Z.MINOR_EVENT],[V.BROWSER_BACKGROUNDED,Z.MINOR_EVENT],[V.BROWSER_FOREGROUNDED,Z.MINOR_EVENT],[V.DOMINANT_SPEAKER,Z.MINOR_EVENT],[V.AUDIO_DEVICES_UPDATES,Z.MINOR_EVENT],[V.VIDEO_DEVICES_UPDATES,Z.MINOR_EVENT],[V.SPEAKER_DEVICES_UPDATES,Z.MINOR_EVENT],[V.SELECTED_MICROHPONE_UPDATE,Z.MINOR_EVENT],[V.SELECTED_CAMERA_UPDATE,Z.MINOR_EVENT],[V.SELECTED_SPEAKER_UPDATE,Z.MINOR_EVENT],[V.MEDIA_PERMISSION,Z.MINOR_EVENT],[V.LEGACY_SWITCH,Z.MINOR_EVENT],[V.AUDIO_PLAY_FAILED,Z.MINOR_EVENT],[V.VIDEO_PLAY_FAILED,Z.MINOR_EVENT],[V.AUDIO_TRACK_MUTED,Z.MINOR_EVENT],[V.VIDEO_TRACK_MUTED,Z.MINOR_EVENT],[V.IVS_PLAYER_REBUFFERING,Z.MAJOR_EVENT],[V.IVS_PLAYER_AUDIO_BLOCKED,Z.MAJOR_EVENT],[V.IVS_PLAYER_PLAYBACK_BLOCKED,Z.MAJOR_EVENT],[V.IVS_PLAYER_ERROR,Z.MAJOR_EVENT],[V.IVS_PLAYER_RECOVERABLE_ERROR,Z.MAJOR_EVENT],[V.IVS_PLAYER_WORKER_ERROR,Z.MAJOR_EVENT],[V.IVS_PLAYER_NETWORK_UNAVAILABLE,Z.MAJOR_EVENT],[V.LIVESTREAM_LATENCY,Z.MAJOR_EVENT],[V.IVS_PLAYER_ANALYTICS_EVENT,Z.MINOR_EVENT],[V.IVS_PLAYER_PLAYBACK_RATE_CHANGED,Z.MINOR_EVENT],[V.IVS_PLAYER_QUALITY_CHANGED,Z.MINOR_EVENT],[V.IVS_PLAYER_INITIALIZED,Z.MINOR_EVENT],[V.EXPECTED_VIDEO_RESOLUTION,Z.MINOR_EVENT],[V.EXPECTED_SCREENSHARE_RESOLUTION,Z.MINOR_EVENT]]);class BS{constructor(){m(this,"events"),this.events=[]}add(e){this.events.push(e)}flush(){return{entries:this.events.splice(0,25)}}}class WS extends dt{constructor({logger:e,peerId:i,apiHostnames:n}){super(),m(this,"logger"),m(this,"peerId"),m(this,"eventStore"),m(this,"apiEndpoint"),this.logger=e,this.peerId=i,this.apiEndpoint=`https://${n.daCollector}/api/v1/message`,this.eventStore=new BS}sendEventsChunkToServer(e){return u(this,null,function*(){var i;const n={payload:e,peerId:this.peerId};try{return yield fetch(this.apiEndpoint,{method:"POST",body:JSON.stringify(n)}),!0}catch(r){return this.logger.error("callStats::sendEventsChunkToServer::catch",{error:r}),(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),FS.get(e.event)===Z.MAJOR_EVENT&&this.flush()}flush(){return u(this,null,function*(){var e;const i=this.eventStore.flush();return(e=i==null?void 0:i.entries)!=null&&e.length?(yield this.sendEventsChunkToServer(i),!0):!1})}}var Xp;(function(t){t.CHROMIUM="chromum",t.FIREFOX="firefox",t.SAFARI="safari"})(Xp||(Xp={}));const qs={DEVEL:"devel",PREPROD:"preprod",PROD:"prod"};var Zt;(function(t){t.AUDIO="AUDIO",t.VIDEO="VIDEO",t.SPEAKER="SPEAKER",t.SCREENSHARE="SCREENSHARE"})(Zt||(Zt={}));var Zp;(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"})(Zp||(Zp={}));function an(t){return t?t.split(".").slice(0,2).concat(["0","0"]).join("."):""}function gc({packetsLost:t,packetsSent:e}){return e>0?t*100/e:0}function fc({packetsLost:t,packetsReceived:e}){return e+t>0?t*100/(e+t):0}const em=240,tm=720,im=8,nm=3,vc=10,yc=.02,Sc=.03;function Wi({stat:t,weight:e,rangeMin:i,rangeMax:n,rangeRankingDirection:r}){return t==null?e:i===n?r==="UP"?t<=i?e:0:t>=n?e:0:r==="UP"?(1-Math.max(Math.min(n,Math.abs(t))-i,0)/(n-i))*e:r==="DOWN"?Math.max(Math.min(n,Math.abs(t))-i,0)/(n-i)*e:e}function rm({isLowQualityVideo:t,isVideoStuck:e,isVideoLagging:i,jitterQuality:n,packetsLostQuality:r}){const s=.8*((t?.85:1)*(i?.7:1)*(e?.5:1))+.2*(n*r);return Math.round((s+Number.EPSILON)*100)/100}function sm({packetsLost:t,packetsSent:e}){return e>0?t*100/e:0}function am({packetsLost:t,packetsSent:e,jitter:i}){const n=Wi({stat:sm({packetsLost:t,packetsSent:e}),weight:.7,rangeMin:0,rangeMax:vc,rangeRankingDirection:"UP"}),r=Wi({stat:i,weight:.3,rangeMin:yc,rangeMax:Sc,rangeRankingDirection:"UP"});return n+r}function jS({frameWidth:t,isScreenShare:e}){return t<(e?tm:em)}function HS({framesPerSecond:t,isScreenShare:e}){return t<(e?nm:im)}function GS({framesEncoded:t}){return t===0}function om({frameWidth:t,framesPerSecond:e,packetsLost:i,packetsSent:n,jitter:r,isScreenShare:s,framesEncoded:o}){const c=Wi({stat:sm({packetsLost:i,packetsSent:n}),weight:1,rangeMin:0,rangeMax:vc,rangeRankingDirection:"UP"}),d=Wi({stat:r,weight:1,rangeMin:yc,rangeMax:Sc,rangeRankingDirection:"UP"}),h=jS({frameWidth:t,isScreenShare:s}),p=HS({framesPerSecond:e,isScreenShare:s}),g=GS({framesEncoded:o,isScreenShare:s});return rm({isLowQualityVideo:h,isVideoLagging:p,isVideoStuck:g,jitterQuality:d,packetsLostQuality:c})}function cm({packetsLost:t,packetsReceived:e}){return e+t>0?t*100/(e+t):0}function dm({concealmentEvents:t,packetsLost:e,packetsReceived:i,jitter:n}){const r=Wi({stat:t,weight:.2,rangeMin:0,rangeMax:3,rangeRankingDirection:"UP"}),s=.5,o=Wi({stat:cm({packetsLost:e,packetsReceived:i}),weight:s,rangeMin:0,rangeMax:vc,rangeRankingDirection:"UP"}),c=Wi({stat:n,weight:.3,rangeMin:yc,rangeMax:Sc,rangeRankingDirection:"UP"});return r+o+c}function qS({framesDecoded:t}){return t===0}function $S({framesPerSecond:t,isScreenShare:e}){return t<(e?nm:im)}function JS({frameWidth:t,isScreenShare:e}){return t<(e?tm:em)}function lm({frameWidth:t,framesPerSecond:e,packetsLost:i,packetsReceived:n,jitter:r,isScreenShare:s,framesDecoded:o}){const c=Wi({stat:cm({packetsLost:i,packetsReceived:n}),weight:1,rangeMin:0,rangeMax:vc,rangeRankingDirection:"UP"}),d=Wi({stat:r,weight:1,rangeMin:yc,rangeMax:Sc,rangeRankingDirection:"UP"}),h=JS({frameWidth:t,isScreenShare:s}),p=$S({framesPerSecond:e,isScreenShare:s}),g=qS({framesDecoded:o,isScreenShare:s});return rm({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),n=new RTCPeerConnection(e);this.pc1=i,this.pc2=n,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:",n=e.indexOf(i)+i.length,r=e.substr(n).split(" ");return{type:r[7],protocol:r[2],address:r[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 n=ji.parseCandidate(i.candidate.candidate);this.iceCandidateFilter(n)&&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=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
|
|
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 n,r;if(e.forEach(s=>{s.type==="candidate-pair"&&s.nominated===!0&&s.bytesSent>0&&(n=s)}),i.forEach(s=>{s.type==="candidate-pair"&&s.nominated===!0&&s.bytesReceived>0&&(r=s)}),n&&r)try{if(n.currentRoundTripTime&&r.currentRoundTripTime)return{rtt:n.currentRoundTripTime,backendRTT:r.currentRoundTripTime};const s=(r.lastPacketReceivedTimestamp-n.lastPacketSentTimestamp)/1e3;return{rtt:s,backendRTT:s}}catch(s){return}})}close(){this.pc1.close(),this.pc2.close()}}class um extends dt{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 KS=8,zS=1/1e3;class YS extends um{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 n=0;n!==this.maxNumberOfPacketsToSend&&!(this.senderChannel.bufferedAmount>=this.bytesToKeepBuffered);n+=1){this.sentPayloadBytes+=this.samplePacket.length;try{this.senderChannel.send(this.samplePacket)}catch(r){}}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,n=i.getTime()-this.lastBitrateMeasureTime.getTime();if(n>=1e3){const r=(this.recievedPayloadBytes-this.lastReceivedPayloadBytes)*KS/(n/1e3);this.finalBitrateSum+=r,this.bitRateSampels+=1,this.lastReceivedPayloadBytes=this.recievedPayloadBytes,this.lastBitrateMeasureTime=i}if(this.stopSending&&this.sentPayloadBytes===this.recievedPayloadBytes){const r=this.finalBitrateSum/this.bitRateSampels;this.testComplete({throughput:Math.round(r*zS)})}}testComplete(e){this.call.getRoundTripTime().then(({rtt:i,backendRTT:n})=>super.testComplete({RTT:i,backendRTT:n,throughput:e.throughput}))}onRecieverChannel(e){this.recieveChannel=e.channel,this.recieveChannel.addEventListener("message",this.onMessageRecieved.bind(this))}}class Ml extends um{constructor(e,i=ji.noFilter){super(e),m(this,"ch1"),m(this,"ch2"),this.call.setIceCandidateFilter(i);const n=this.call.pc1.createDataChannel(null);this.ch1=n,n.addEventListener("open",()=>{n.send("hello")}),n.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 QS extends Ml{constructor(e){super(e,ji.isHost)}}class XS extends Ml{constructor(e){super(e,ji.isRelay)}}class ZS extends Ml{constructor(e){super(e,ji.isReflexive)}}class eT{constructor(){m(this,"ipInformation",null)}getIPDetails(e){return u(this,arguments,function*({peerId:i,apiHostnames:n,logger:r}){var s,o,c;if(!this.ipInformation){try{const d=`https://${n.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=an(this.ipInformation.ip)),h;throw Error("Insufficient data")}catch(d){r.error("callstats::ipDetails:: failed to fetch ip using location service",{error:d})}try{const d=yield fetch(`https://${n.locationLegacy}/?token=3c493932b0624c&peerId=${i}`,{method:"POST"});this.ipInformation=yield d.json(),(c=this.ipInformation)!=null&&c.ip&&(this.ipInformation.ip=an(this.ipInformation.ip))}catch(d){r.error("callstats::ipDetails:: failed to fetch ip using legacy location service",{error:d})}}return this.ipInformation})}resetCache(){this.ipInformation=null}}const Al=new eT,hm=[{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 pm(t){const[e,i]=t.split(",");return{coords:{latitude:Number(e),longitude:Number(i)}}}class mm{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 gm extends dt{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 dt}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,n){var r,s;const o=((s=(r=this==null?void 0:this.callStatsInstance)==null?void 0:r.consumerSharedMediaStatesMap)==null?void 0:s.get(e))||{};i.totalVideoPacketsReceived===n.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=n.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,n){var r,s;const o=((s=(r=this==null?void 0:this.callStatsInstance)==null?void 0:r.consumerSharedMediaStatesMap)==null?void 0:s.get(e))||{};i.totalAudioPacketsReceived===n.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=n.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,n){var r;const s=((r=this==null?void 0:this.callStatsInstance)==null?void 0:r.currentUserMediaStates)||{};i.totalVideoPacketsSent===n.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=n.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,n){var r;const s=((r=this==null?void 0:this.callStatsInstance)==null?void 0:r.currentUserMediaStates)||{};i.totalAudioPacketsSent===n.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=n.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,n){var r;const s=((r=this==null?void 0:this.callStatsInstance)==null?void 0:r.currentUserMediaStates)||{},{audio:o,video:c,screen:d}=s,h=o||c||d;i.totalPacketsSent===n.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=n.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,n){var r,s;const o=!!Array.from(((s=(r=this==null?void 0:this.callStatsInstance)==null?void 0:r.consumerSharedMediaStatesMap)==null?void 0:s.values())||[]).reduce((c,d)=>c||d.audio||d.video||d.screen,!1);i.totalPacketsReceived===n.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=n.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 n=yield e.getStats(),r=i?this.getProducerStatsFromReport(this.parseRTCReport(n,["outbound-rtp","remote-inbound-rtp"],!1,e.id))[0]:void 0;for(const s of n.values())switch(s.type){case"outbound-rtp":{this.outboundProducerMap.set(s.id,e.id);break}}return r})}generateConsumerStreamMap(e,i=!1){return u(this,null,function*(){const n=yield e.getStats(),r=i?this.getConsumerStatsFromReport(this.parseRTCReport(n,["inbound-rtp"],!1,e.id))[0]:void 0;for(const s of n.values())switch(s.type){case"inbound-rtp":{this.inboundConsumerMap.set(s.id,e.id);break}}return r})}deregisterProducer(e){this.outboundProducerMap.forEach((i,n)=>{i===e.id&&this.outboundProducerMap.delete(n)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.inboundConsumerMap.forEach((i,n)=>{i===e.id&&this.inboundConsumerMap.delete(n)}),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 n=i.framesEncoded>0,r=i.packetsSent>0,s=i.frameWidth&&i.frameHeight;return n&&r&&!!s})||e[e.length-1]}parseRTCReport(e,i=[],n=!1,r=void 0,s=void 0){var o,c,d,h,p,g,y,E,b,N,M,U,$;const J=e,I=new mm,ae=i.length?new Set(i):void 0,se=[],Se=[],nt=[],gt=new Map,Ft=new Map;for(const A of J.values()){if(ae){if(ae.size===0)break;if(ae.has(A.type))n&&ae.delete(A.type);else continue}switch(A.type){case"local-candidate":{se.push(this.getIceCandidateStats(A));break}case"remote-candidate":{Se.push(this.getIceCandidateStats(A));break}case"candidate-pair":{const{nominated:k}=A,{selected:_}=A,j=A,Re={nominated:k!=null?k:_,currentRoundTripTime:j.currentRoundTripTime,totalRoundTripTime:j.totalRoundTripTime,bytesReceived:j.bytesReceived,bytesSent:j.bytesSent,availableOutgoingBitrate:j.availableOutgoingBitrate,availableIncomingBitrate:j.availableIncomingBitrate,lastPacketReceivedTimestamp:j.lastPacketReceivedTimestamp,lastPacketSentTimestamp:j.lastPacketSentTimestamp,localCandidateId:j.localCandidateId,remoteCandidateId:j.remoteCandidateId,bytesDiscardedOnSend:j.bytesDiscardedOnSend,packetsSent:j.packetsSent,packetsReceived:j.packetsReceived,packetsDiscardedOnSend:j.packetsDiscardedOnSend};nt.push(Re),(A.nominated===!0||A.selected===!0)&&(I.candidatePair=Re);break}case"transport":{const k=A;s&&(s.producing&&(this.overallProducingTransportsStatsMap[s.id]||(this.overallProducingTransportsStatsMap[s.id]={totalPacketsSent:0})),s.consuming&&(this.overallConsumingTransportsStatsMap[s.id]||(this.overallConsumingTransportsStatsMap[s.id]={totalPacketsReceived:0})));const _={bytesReceived: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 j=this.overallProducingTransportsStatsMap[s.id];this.processProducingTransportStats(s.id,j,_)}if(s.consuming){const j=this.overallConsumingTransportsStatsMap[s.id];this.processConsumingTransportStats(s.id,j,_)}}break}case"remote-inbound-rtp":{const k=A,_={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=A,_=r||this.outboundProducerMap.get(A.id),j=this.pausedProducerMap.get(_);if(j){if(j.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(A.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 F={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,qe=x({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},F);I.outboundVideoRtp.set(A.id,qe),I.producerStreamMap.get(_).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(_,Re,qe)}else if(k.mediaType==="audio"||k.kind==="audio"){const C=k,qe=x({retransmittedBytesSent:C.retransmittedBytesSent,retransmittedPacketsSent:C.retransmittedPacketsSent},F);I.outboundAudioRtp.set(A.id,qe),I.producerStreamMap.get(_).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(_,Re,qe)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${k.mediaType} kind: ${k.kind}`);break}case"inbound-rtp":{const k=A,_=r||this.inboundConsumerMap.get(A.id),j=this.pausedConsumerMap.get(_);if(j){if(j.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(A.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 F=k,C=x({frameHeight:F.frameHeight,frameWidth:F.frameWidth,framesDecoded:F.framesDecoded,framesDropped:F.framesDropped,framesPerSecond:F.framesPerSecond,framesReceived:F.framesReceived,keyFramesDecoded:F.keyFramesDecoded,firCount:F.firCount,decoderImplementation:F.decoderImplementation,pliCount:F.pliCount,totalProcessingDelay:F.totalProcessingDelay,qpSum:F.qpSum||0,totalAssemblyTime:F.totalAssemblyTime||0,totalDecodeTime:F.totalDecodeTime||0,totalFreezesDuration:F.totalFreezesDuration||0,totalInterFrameDelay:F.totalInterFrameDelay||0,totalPausesDuration:F.totalPausesDuration||0,totalSquaredInterFrameDelay:F.totalSquaredInterFrameDelay||0,freezeCount:F.freezeCount||0,pauseCount:F.pauseCount||0,powerEfficientDecoder:F.powerEfficientDecoder},fe);C.score=lm({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(_)}),Ft.set(_,{score:+(C.score*10).toFixed(),frameWidth:C.frameWidth||0,frameHeight:C.frameHeight||0,framesPerSecond:C.framesPerSecond||0,packetsLostPercentage:fc({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(A.id,C),I.consumerStreamMap.get(_).inboundVideoRtpId.push(A.id),this.processInboundConsumerVideoStats(_,Re,C)}else if(k.mediaType==="audio"||k.kind==="audio"){const F=k,C=x({audioLevel:F.audioLevel,concealedSamples:F.concealedSamples,concealmentEvents:F.concealmentEvents,totalAudioEnergy:F.totalAudioEnergy,totalSamplesDuration:F.totalSamplesDuration,totalSamplesReceived:F.totalSamplesReceived,fecPacketsDiscarded:F.fecPacketsDiscarded||0,fecPacketsReceived:F.fecPacketsReceived||0,insertedSamplesForDeceleration:F.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:F.removedSamplesForAcceleration||0,silentConcealedSamples:F.silentConcealedSamples||0,playoutId:F.playoutId},fe);C.score=dm({concealmentEvents:(C.concealmentEvents||0)-(((E=this.audioConsumerToStatsMap.get(_))==null?void 0:E.concealmentEvents)||0),packetsLost:(C.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((N=this.audioConsumerToStatsMap.get(_))==null?void 0:N.packetsReceived)||0),jitter:C.jitter||0}),Ft.set(_,{score:+(C.score*10).toFixed(),packetsLostPercentage:fc({packetsLost:(C.packetsLost||0)-(((M=this.audioConsumerToStatsMap.get(_))==null?void 0:M.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((U=this.audioConsumerToStatsMap.get(_))==null?void 0:U.packetsReceived)||0)}),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((C.bytesReceived||0)-((($=this.audioConsumerToStatsMap.get(_))==null?void 0:$.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(_,C),I.inboundAudioRtp.set(A.id,C),I.consumerStreamMap.get(_).inboundAudioRtpId.push(A.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((A,k)=>{var _,j,Re,fe,F,C,qe,xo,Vo,Uo,Fo,Bo,Wo,jo,Ho,Go,qo,$o,Jo,Ko,zo,Yo,Qo;if(A.outboundVideoRtpId.length>0){const Te=[];A.outboundVideoRtpId.forEach(fp=>{Te.push(I.outboundVideoRtp.get(fp))});const oe=this.getWorkingSimulcastVideoStats(Te);oe.score=om({frameWidth:oe.frameWidth||0,framesPerSecond:oe.framesPerSecond||0,jitter:((_=oe.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(k),packetsSent:(oe.packetsSent||0)-(((j=this.videoProducerToStatsMap.get(k))==null?void 0:j.packetsSent)||0),packetsLost:(((Re=oe.remoteData)==null?void 0:Re.packetsLost)||0)-(((F=(fe=this.videoProducerToStatsMap.get(k))==null?void 0:fe.remoteData)==null?void 0:F.packetsLost)||0),framesEncoded:(oe.framesEncoded||0)-(((C=this.videoProducerToStatsMap.get(k))==null?void 0:C.framesEncoded)||0)}),gt.set(k,{score:+(oe.score*10).toFixed(),frameWidth:oe.frameWidth||0,frameHeight:oe.frameHeight||0,framesPerSecond:oe.framesPerSecond||0,jitter:((qe=oe.remoteData)==null?void 0:qe.jitter)||0,isScreenShare:this.screenShareProducers.has(k),packetsLostPercentage:gc({packetsSent:(oe.packetsSent||0)-(((xo=this.videoProducerToStatsMap.get(k))==null?void 0:xo.packetsSent)||0),packetsLost:(((Vo=oe.remoteData)==null?void 0:Vo.packetsLost)||0)-(((Fo=(Uo=this.videoProducerToStatsMap.get(k))==null?void 0:Uo.remoteData)==null?void 0:Fo.packetsLost)||0)}),bitrate:((oe.bytesSent||0)-(((Bo=this.videoProducerToStatsMap.get(k))==null?void 0:Bo.bytesSent)||0))*8/7,cpuLimitations:oe.qualityLimitationReason==="cpu",bandwidthLimitations:oe.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(k,oe)}else if(A.outboundAudioRtpId.length>0){const Te=I.outboundAudioRtp.get(A.outboundAudioRtpId[0]);Te.score=am({packetsSent:(Te.packetsSent||0)-(((Wo=this.audioProducerToStatsMap.get(k))==null?void 0:Wo.packetsSent)||0),packetsLost:(((jo=Te.remoteData)==null?void 0:jo.packetsLost)||0)-(((Go=(Ho=this.audioProducerToStatsMap.get(k))==null?void 0:Ho.remoteData)==null?void 0:Go.packetsLost)||0),jitter:((qo=Te.remoteData)==null?void 0:qo.jitter)||0}),gt.set(k,{score:+(Te.score*10).toFixed(),bitrate:((Te.bytesSent||0)-((($o=this.audioProducerToStatsMap.get(k))==null?void 0:$o.bytesSent)||0))*8/7,packetsLostPercentage:gc({packetsSent:(Te.packetsSent||0)-(((Jo=this.audioProducerToStatsMap.get(k))==null?void 0:Jo.packetsSent)||0),packetsLost:(((Ko=Te.remoteData)==null?void 0:Ko.packetsLost)||0)-(((Yo=(zo=this.audioProducerToStatsMap.get(k))==null?void 0:zo.remoteData)==null?void 0:Yo.packetsLost)||0)}),jitter:((Qo=Te.remoteData)==null?void 0:Qo.jitter)||0,isScreenShare:this.screenShareProducers.has(k)}),this.audioProducerToStatsMap.set(k,Te)}}),nt.forEach(A=>{const k=se.find(j=>j.id===A.localCandidateId?(A.localCandidateId=j.id,j):null),_=Se.find(j=>j.id===A.remoteCandidateId?(A.remoteCandidateId=j.id,j):null);k&&(A.localCandidateType=k.type,A.localCandidateAddress=an(k.address),A.localCandidatePort=k.port,A.localCandidateProtocol=k.protocol,A.localCandidateUrl=k.url,A.localCandidateNetworkType=k.networkType,A.localCandidateRelatedAddress=an(k.relatedAddress),A.localCandidateRelatedPort=k.relatedPort),_&&(A.remoteCandidateType=_.type,A.remoteCandidateAddress=an(_.address),A.remoteCandidatePort=_.port,A.remoteCandidateProtocol=_.protocol,A.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 A=0,k=0;I.remoteInboundRtp.forEach((_,j)=>{_.roundTripTime&&_.roundTripTime>A&&(A=_.roundTripTime,k=_.totalRoundTripTime)}),I.transport.roundTripTime=A,I.transport.totalRoundTripTime=k}if(Ft.size>0)try{this.observer.emit("consumer_score",Ft)}catch(A){}if(gt.size>0)try{this.observer.emit("producer_score",gt)}catch(A){}return I}getProducersReport(e){return u(this,null,function*(){const i=e.map(n=>this.generateProducerStreamMap(n,!0));return i.length>0?Promise.all(i):void 0})}getConsumersReport(e){return u(this,null,function*(){const i=e.map(n=>this.generateConsumerStreamMap(n,!0));return i.length>0?Promise.all(i):void 0})}getTransportReport(e){return u(this,null,function*(){return e.getStats()})}getProcessedStats(e,i,n){return u(this,null,function*(){const r=yield this.getTransportReport(e),s={producing:n,consuming:i,id:e.id},o=r,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:n},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((n,r)=>{var s,o;i.push({producerId:r,videoStats:n.outboundVideoRtpId.map(c=>e.outboundVideoRtp.get(c)),audioStats:n.outboundAudioRtpId.map(c=>e.outboundAudioRtp.get(c)),appData:((o=(s=this.callStatsInstance.producers)==null?void 0:s.get(r))==null?void 0:o.appData)||null})})}catch(n){this.callStatsInstance.logger.error("callStats::measurements::getProducerStatsFromReport",{error:{reason:n.reason,message:n.message}})}return i}getConsumerStatsFromReport(e){const i=[];try{e.consumerStreamMap.forEach((n,r)=>{const{peerId:s,producerId:o,appData:c}=this.consumerPeerIdMap.get(r);i.push({consumerId:r,peerId:s,producerId:o,appData:c,videoStats:n.inboundVideoRtpId.map(d=>e.inboundVideoRtp.get(d)),audioStats:n.inboundAudioRtpId.map(d=>e.inboundAudioRtp.get(d))})})}catch(n){console.error("getConsumersReport: ",n,e)}return i}getUserLocation(){return u(this,null,function*(){return new Promise((e,i)=>{try{navigator.geolocation?navigator.geolocation.getCurrentPosition(n=>{e(n)}):i()}catch(n){i(n)}})})}getConnectivity(e){return u(this,null,function*(){try{const i={iceServers:e||hm},n=new Promise((h,p)=>{try{const g=new QS(i);g.addListener("done",h),g.addListener("failed",()=>{h({connectivity:!1})}),g.start(2e3)}catch(g){p(g)}}),r=new Promise((h,p)=>{try{const g=new XS(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 ZS(i);g.addListener("done",h),g.addListener("failed",()=>{h({connectivity:!1})}),g.start(2e3)}catch(g){p(g)}}),[o,c,d]=yield Promise.all([n,r,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((n,r)=>{try{const s={iceServers:e||hm},o=new YS(s);o.addListener("done",n),o.addListener("failed",r),o.start(1e4)}catch(s){r(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 Al.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(n){return}})}getNetworkQuality(e){return u(this,null,function*(){const[i,n]=yield Promise.all([this.getConnectivity(e),this.getThroughput(e)]);return{connectivity:i,throughput:n==null?void 0:n.throughput,fractionalLoss:n==null?void 0:n.fractionalLoss,RTT:n==null?void 0:n.RTT,jitter:n==null?void 0:n.jitter,backendRTT:n==null?void 0:n.backendRTT}})}getNetworkInfo(e,i=!1){return u(this,null,function*(){var n,r;if(i){const d=yield this.getIPDetails();return{ipDetails:d,effectiveNetworkType:(n=navigator.connection)==null?void 0:n.effectiveType,location:d!=null&&d.loc?pm(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:(r=navigator.connection)==null?void 0:r.effectiveType,location:c!=null&&c.loc?pm(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 tT extends gm{}class fm extends gm{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 n=yield e.getStats(),r=this.parseRTCReport(n,["inbound-rtp"],!1,e.id),s=[...r.consumerStreamMap.values()][0],o=i?this.getConsumerStatsFromParsedConsumerStats(r,s,e.id):void 0;for(const c of n.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,n)=>{i===e.id&&this.outboundProducerMap.delete(n)}),this.pausedProducerMap.delete(e.id),this.screenShareProducers.delete(e.id)}deregisterConsumer(e){this.consumerMap.delete(e.id),this.inboundConsumerMap.forEach((i,n)=>{i===e.id&&this.inboundConsumerMap.delete(n)}),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=[],n=!1,r=void 0,s=void 0){var o,c,d,h,p,g,y,E,b,N,M,U,$;const J=e,I=new mm,ae=i.length?new Set(i):void 0,se=[],Se=[],nt=[],gt=new Map,Ft=new Map;for(const A of J.values()){if(ae){if(ae.size===0)break;if(ae.has(A.type))n&&ae.delete(A.type);else continue}switch(A.type){case"local-candidate":{se.push(this.getIceCandidateStats(A));break}case"remote-candidate":{Se.push(this.getIceCandidateStats(A));break}case"candidate-pair":{const{nominated:k}=A,{selected:_}=A,j=A,Re={nominated:k!=null?k:_,currentRoundTripTime:j.currentRoundTripTime,totalRoundTripTime:j.totalRoundTripTime,bytesReceived:j.bytesReceived,bytesSent:j.bytesSent,availableOutgoingBitrate:j.availableOutgoingBitrate,availableIncomingBitrate:j.availableIncomingBitrate,lastPacketReceivedTimestamp:j.lastPacketReceivedTimestamp,lastPacketSentTimestamp:j.lastPacketSentTimestamp,localCandidateId:j.localCandidateId,remoteCandidateId:j.remoteCandidateId,bytesDiscardedOnSend:j.bytesDiscardedOnSend,packetsSent:j.packetsSent,packetsReceived:j.packetsReceived,packetsDiscardedOnSend:j.packetsDiscardedOnSend};nt.push(Re),(A.nominated===!0||A.selected===!0)&&(I.candidatePair=Re);break}case"transport":{const k=A;s&&(s.producing&&(this.overallProducingTransportsStatsMap[s.id]||(this.overallProducingTransportsStatsMap[s.id]={totalPacketsSent:0})),s.consuming&&(this.overallConsumingTransportsStatsMap[s.id]||(this.overallConsumingTransportsStatsMap[s.id]={totalPacketsReceived:0})));const _={bytesReceived: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 j=this.overallProducingTransportsStatsMap[s.id];this.processProducingTransportStats(s.id,j,_)}if(s.consuming){const j=this.overallConsumingTransportsStatsMap[s.id];this.processConsumingTransportStats(s.id,j,_)}}break}case"remote-inbound-rtp":{const k=A,_={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=A,_=r||this.outboundProducerMap.get(A.id),j=this.pausedProducerMap.get(_);if(j){if(j.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(A.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 F={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,qe=x({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},F);I.outboundVideoRtp.set(A.id,qe),I.producerStreamMap.get(_).outboundVideoRtpId.push(A.id),this.processOutboundProducerVideoStats(_,Re,qe)}else if(k.mediaType==="audio"||k.kind==="audio"){const C=k,qe=x({retransmittedBytesSent:C.retransmittedBytesSent,retransmittedPacketsSent:C.retransmittedPacketsSent},F);I.outboundAudioRtp.set(A.id,qe),I.producerStreamMap.get(_).outboundAudioRtpId.push(A.id),this.processOutboundProducerAudioStats(_,Re,qe)}}else this.callStatsInstance.logger.error(`Callstats: Unknown Outbound-rtp. mediatype: ${k.mediaType} kind: ${k.kind}`);break}case"inbound-rtp":{const k=A,_=r||this.inboundConsumerMap.get(A.id),j=this.pausedConsumerMap.get(_);if(j){if(j.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(A.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 F=k,C=x({frameHeight:F.frameHeight,frameWidth:F.frameWidth,framesDecoded:F.framesDecoded,framesDropped:F.framesDropped?F.framesDropped:F.droppedFrames,framesPerSecond:F.framesPerSecond?F.framesPerSecond:F.framerateMean,framesReceived:F.framesReceived,keyFramesDecoded:F.keyFramesDecoded,firCount:F.firCount,decoderImplementation:F.decoderImplementation,pliCount:F.pliCount,totalProcessingDelay:F.totalProcessingDelay,qpSum:F.qpSum||0,totalAssemblyTime:F.totalAssemblyTime||0,totalDecodeTime:F.totalDecodeTime||0,totalFreezesDuration:F.totalFreezesDuration||0,totalInterFrameDelay:F.totalInterFrameDelay||0,totalPausesDuration:F.totalPausesDuration||0,totalSquaredInterFrameDelay:F.totalSquaredInterFrameDelay||0,freezeCount:F.freezeCount||0,pauseCount:F.pauseCount||0,powerEfficientDecoder:F.powerEfficientDecoder},fe);C.score=lm({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(_)}),Ft.set(_,{score:+(C.score*10).toFixed(),frameWidth:C.frameWidth||0,frameHeight:C.frameHeight||0,framesPerSecond:C.framesPerSecond||0,packetsLostPercentage:fc({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(A.id,C),I.consumerStreamMap.get(_).inboundVideoRtpId.push(A.id),this.processInboundConsumerVideoStats(_,Re,C)}else if(k.mediaType==="audio"||k.kind==="audio"){const F=k,C=x({audioLevel:F.audioLevel,concealedSamples:F.concealedSamples,concealmentEvents:F.concealmentEvents,totalAudioEnergy:F.totalAudioEnergy,totalSamplesDuration:F.totalSamplesDuration,totalSamplesReceived:F.totalSamplesReceived,fecPacketsDiscarded:F.fecPacketsDiscarded||0,fecPacketsReceived:F.fecPacketsReceived||0,insertedSamplesForDeceleration:F.insertedSamplesForDeceleration||0,removedSamplesForAcceleration:F.removedSamplesForAcceleration||0,silentConcealedSamples:F.silentConcealedSamples||0,playoutId:F.playoutId},fe);C.score=dm({concealmentEvents:(C.concealmentEvents||0)-(((E=this.audioConsumerToStatsMap.get(_))==null?void 0:E.concealmentEvents)||0),packetsLost:(C.packetsLost||0)-(((b=this.audioConsumerToStatsMap.get(_))==null?void 0:b.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((N=this.audioConsumerToStatsMap.get(_))==null?void 0:N.packetsReceived)||0),jitter:C.jitter||0}),Ft.set(_,{score:+(C.score*10).toFixed(),packetsLostPercentage:fc({packetsLost:(C.packetsLost||0)-(((M=this.audioConsumerToStatsMap.get(_))==null?void 0:M.packetsLost)||0),packetsReceived:(C.packetsReceived||0)-(((U=this.audioConsumerToStatsMap.get(_))==null?void 0:U.packetsReceived)||0)}),jitter:C.jitter||0,isScreenShare:this.screenShareConsumers.has(_),bitrate:((C.bytesReceived||0)-((($=this.audioConsumerToStatsMap.get(_))==null?void 0:$.bytesReceived)||0))*8/7}),this.audioConsumerToStatsMap.set(_,C),I.inboundAudioRtp.set(A.id,C),I.consumerStreamMap.get(_).inboundAudioRtpId.push(A.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((A,k)=>{var _,j,Re,fe,F,C,qe,xo,Vo,Uo,Fo,Bo,Wo,jo,Ho,Go,qo,$o,Jo,Ko,zo,Yo,Qo;if(A.outboundVideoRtpId.length>0){const Te=[];A.outboundVideoRtpId.forEach(fp=>{Te.push(I.outboundVideoRtp.get(fp))});const oe=this.getWorkingSimulcastVideoStats(Te);oe.score=om({frameWidth:oe.frameWidth||0,framesPerSecond:oe.framesPerSecond||0,jitter:((_=oe.remoteData)==null?void 0:_.jitter)||0,isScreenShare:this.screenShareProducers.has(k),packetsSent:(oe.packetsSent||0)-(((j=this.videoProducerToStatsMap.get(k))==null?void 0:j.packetsSent)||0),packetsLost:(((Re=oe.remoteData)==null?void 0:Re.packetsLost)||0)-(((F=(fe=this.videoProducerToStatsMap.get(k))==null?void 0:fe.remoteData)==null?void 0:F.packetsLost)||0),framesEncoded:(oe.framesEncoded||0)-(((C=this.videoProducerToStatsMap.get(k))==null?void 0:C.framesEncoded)||0)}),gt.set(k,{score:+(oe.score*10).toFixed(),frameWidth:oe.frameWidth||0,frameHeight:oe.frameHeight||0,framesPerSecond:oe.framesPerSecond||0,jitter:((qe=oe.remoteData)==null?void 0:qe.jitter)||0,isScreenShare:this.screenShareProducers.has(k),packetsLostPercentage:gc({packetsSent:(oe.packetsSent||0)-(((xo=this.videoProducerToStatsMap.get(k))==null?void 0:xo.packetsSent)||0),packetsLost:(((Vo=oe.remoteData)==null?void 0:Vo.packetsLost)||0)-(((Fo=(Uo=this.videoProducerToStatsMap.get(k))==null?void 0:Uo.remoteData)==null?void 0:Fo.packetsLost)||0)}),bitrate:((oe.bytesSent||0)-(((Bo=this.videoProducerToStatsMap.get(k))==null?void 0:Bo.bytesSent)||0))*8/7,cpuLimitations:oe.qualityLimitationReason==="cpu",bandwidthLimitations:oe.qualityLimitationReason==="bandwidth"}),this.videoProducerToStatsMap.set(k,oe)}else if(A.outboundAudioRtpId.length>0){const Te=I.outboundAudioRtp.get(A.outboundAudioRtpId[0]);Te.score=am({packetsSent:(Te.packetsSent||0)-(((Wo=this.audioProducerToStatsMap.get(k))==null?void 0:Wo.packetsSent)||0),packetsLost:(((jo=Te.remoteData)==null?void 0:jo.packetsLost)||0)-(((Go=(Ho=this.audioProducerToStatsMap.get(k))==null?void 0:Ho.remoteData)==null?void 0:Go.packetsLost)||0),jitter:((qo=Te.remoteData)==null?void 0:qo.jitter)||0}),gt.set(k,{score:+(Te.score*10).toFixed(),bitrate:((Te.bytesSent||0)-((($o=this.audioProducerToStatsMap.get(k))==null?void 0:$o.bytesSent)||0))*8/7,packetsLostPercentage:gc({packetsSent:(Te.packetsSent||0)-(((Jo=this.audioProducerToStatsMap.get(k))==null?void 0:Jo.packetsSent)||0),packetsLost:(((Ko=Te.remoteData)==null?void 0:Ko.packetsLost)||0)-(((Yo=(zo=this.audioProducerToStatsMap.get(k))==null?void 0:zo.remoteData)==null?void 0:Yo.packetsLost)||0)}),jitter:((Qo=Te.remoteData)==null?void 0:Qo.jitter)||0,isScreenShare:this.screenShareProducers.has(k)}),this.audioProducerToStatsMap.set(k,Te)}}),nt.forEach(A=>{const k=se.find(j=>j.id===A.localCandidateId?(A.localCandidateId=j.id,j):null),_=Se.find(j=>j.id===A.remoteCandidateId?(A.remoteCandidateId=j.id,j):null);k&&(A.localCandidateType=k.type,A.localCandidateAddress=an(k.address),A.localCandidatePort=k.port,A.localCandidateProtocol=k.protocol,A.localCandidateUrl=k.url,A.localCandidateNetworkType=k.networkType,A.localCandidateRelatedAddress=an(k.relatedAddress),A.localCandidateRelatedPort=k.relatedPort),_&&(A.remoteCandidateType=_.type,A.remoteCandidateAddress=an(_.address),A.remoteCandidatePort=_.port,A.remoteCandidateProtocol=_.protocol,A.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 A=0,k=0;I.remoteInboundRtp.forEach((_,j)=>{_.roundTripTime&&_.roundTripTime>A&&(A=_.roundTripTime,k=_.totalRoundTripTime)}),I.transport.roundTripTime=A,I.transport.totalRoundTripTime=k}if(Ft.size>0)try{this.observer.emit("consumer_score",Ft)}catch(A){}if(gt.size>0)try{this.observer.emit("producer_score",gt)}catch(A){}return I}getProducerStatsFromReport(e){const i=[];try{e.producerStreamMap.forEach((n,r)=>{const s=this.producerMap.get(r),o=s.track.getSettings(),c=n.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:r,appData:s.appData,videoStats:c,audioStats:n.outboundAudioRtpId.map(h=>e.outboundAudioRtp.get(h))};i.push(d)})}catch(n){console.error("getProducersReport: ",n,e)}return i}getConsumerStatsFromParsedConsumerStats(e,i,n){let r;try{const{peerId:s,producerId:o,appData:c}=this.consumerPeerIdMap.get(n),d=i==null?void 0:i.inboundVideoRtpId.map(h=>{const p=this.consumerMap.get(n).track.getSettings(),g=e.inboundVideoRtp.get(h);return g.frameHeight||(g.frameHeight=p.height,g.frameWidth=p.width,g.framesPerSecond=p.frameRate),g});r={consumerId:n,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 r}getConsumerStatsFromReport(e){const i=[];try{e.consumerStreamMap.forEach((n,r)=>{i.push(this.getConsumerStatsFromParsedConsumerStats(e,n,r))})}catch(n){console.error("getConsumerStatsFromReport: ",n,e)}return i}}class iT extends fm{}function Tc(t,e,i,n){if(t!=null&&t.logger&&t.logger.error("Callstats::handleError",{error:n}),typeof i=="function"&&n instanceof e)i.call(null,n,t);else throw n}function vm(t,e,i){const n=t.value;return t.value=function(...r){try{const s=n.apply(this,r);return s&&s instanceof Promise?s.catch(o=>{Tc(this,e,i,o)}):s}catch(s){Tc(this,e,i,s)}return null},t}const ie=(t,e)=>(i,n,r)=>{const s=r.value;return r.value=function(...o){try{const c=s.apply(this,o);return c&&c instanceof Promise?c.catch(d=>{Tc(this,t,e,d)}):c}catch(c){Tc(this,t,e,c)}return null},r},nT=(t,e)=>(i,n,r)=>{if(r)return vm(r,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,vm(o,t,e))}};var ee=globalThis&&globalThis.__decorate||function(t,e,i,n){var r=arguments.length,s=r<3?e:n===null?n=Object.getOwnPropertyDescriptor(e,i):n,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")s=Reflect.decorate(t,e,i,n);else for(var c=t.length-1;c>=0;c--)(o=t[c])&&(s=(r<3?o(s):r>3?o(e,i,s):o(e,i))||s);return r>3&&s&&Object.defineProperty(e,i,s),s};const te=console;let X=class extends dt{constructor(t="https://api.testingv3.dyte.in",e="Blink",i=qs.PROD,n,r,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=r,this.peerId=s,this.eventHandler=new WS({logger:r,peerId:s,apiHostnames:o}),this.logger.debug("callStats::engineName: ",{engineName:e}),e){case"Blink":this.measurements=new tT;break;case"Gecko":this.measurements=new fm;break;case"WebKit":this.measurements=new iT;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 dt,this.measurements.observer.on("consumer_score",c=>{r.debug(`callStats::consumer_score ${[...c.entries()]}`),this.eventHandler.emit("consumer_score",c)}),this.measurements.observer.on("producer_score",c=>{r.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===Zt.AUDIO&&V.AUDIO_DEVICES_UPDATES||t===Zt.VIDEO&&V.VIDEO_DEVICES_UPDATES||t===Zt.SPEAKER&&V.SPEAKER_DEVICES_UPDATES,metaData:{deviceList:e},timestamp:i})}selectedDevice(t,e,i){this.eventHandler.callEvent({event:t===Zt.AUDIO&&V.SELECTED_MICROHPONE_UPDATE||t===Zt.VIDEO&&V.SELECTED_CAMERA_UPDATE||t===Zt.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===Zt.AUDIO&&V.AUDIO_PLAY_FAILED||t===Zt.VIDEO&&V.VIDEO_PLAY_FAILED,metaData:{deviceType:t},timestamp:e})}mediaTrackMuted(t,e){this.eventHandler.callEvent({event:t===Zt.AUDIO&&V.AUDIO_TRACK_MUTED||t===Zt.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=H(x({},t),{meetingEnv:this.env}),t.deviceInfo=H(x({},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,n)=>u(this,null,function*(){const r=[];try{for(const s of t)try{if(s.iceServers&&s.iceServers.length>0){const o=yield this.measurements.getNetworkQuality(s.iceServers);r.push(H(x({},s),{networkResults:o}))}}catch(o){console.warn("Error handling ",o)}i({regionData:r})}catch(s){console.warn("Error in callstats, ",s),n(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,n;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&&(n=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),!n||!n.consumerReport)){this.logger.debug("callStats::sendPingStatsEvent::staleConsumingTransport",{disclaimer:"Stale consumer? Regenerating Stream Maps!"});const s=yield this.measurements.getConsumersReport([...this.consumers.values()]);n&&s?n.consumerReport=s:(n=yield this.measurements.getProcessedStats(this.consumingTransport,!0,!1),(!n||!n.consumerReport)&&this.logger.debug("callStats::sendPingStatsEvent::noConsumingTransportReport",{disclaimer:"Stream maps invalid despite regenerating!"}))}const r={producingTransportStats:i?i==null?void 0:i.transportReport:void 0,consumingTransportStats:n?n==null?void 0:n.transportReport:void 0,producerStats:[].concat((i==null?void 0:i.producerReport)||[]).concat((n==null?void 0:n.producerReport)||[]),consumerStats:[].concat((n==null?void 0:n.consumerReport)||[]).concat((i==null?void 0:i.consumerReport)||[])};if(t&&r.producerStats.length===0&&r.consumerStats.length===0){yield this.eventHandler.flush();return}this.eventHandler.callEvent({event:V.PING_STAT,metaData:r,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}})}};ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"registerIceServers",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"registerConsumer",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"registerProducer",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendConsumerSharedMediaStateEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"registerProducingTransport",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"registerConsumingTransport",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"deRegisterConsumer",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"deRegisterProducer",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"disconnectConsumingTransport",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"disconnectProducingTransport",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendPreCallTestBeginEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendScreenShareToggleEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendScreenShareRequestedEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendActiveSpeakerEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"devices",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"selectedDevice",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"mediaPermission",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"mediaPlaybackFailed",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"mediaTrackMuted",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"tabChanged",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"browserBackgrounded",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"browserForegrounded",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"legacySwitch",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"getPreCallTestResults",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendCallJoinBeginEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendNetworkQualityTestBeginEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendWebSocketConnectedEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendTransportConnectedEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendAudioToggleEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendVideoToggleEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendParticipantRoleToggleEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"startPingStats",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"stopPingStats",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendPingStatsEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendIVSPlayerRebufferEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendIVSPlayerAudioBlockEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendIVSPlayerPlaybackBlockedEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendIVSPlayerNetworkUnavailableEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendIVSPlayerInitializedEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendIVSPlayerWorkerErrorEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendIVSPlayerErrorEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendIVSPlayerRecoverableErrorEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendIVSPlayerAnalyticsEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendIVSPlayerPlaybackRateChangedEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendIVSPlayerQualityChanged",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendPlayerLiveLatency",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendDisconnectEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"sendReconnectEvent",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"expectedVideoResolution",null),ee([ie(TypeError,(t,e)=>te.error(e,t))],X.prototype,"expectedScreenshareResolution",null),X=ee([nT(TypeError,(t,e)=>te.error(e,t))],X);const rT=X;class sT extends dt{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:n,env:r=qs.PROD,iceServers:s,apiBase:o="https://api.cluster.dyte.in",flags:c,logger:d=console,apiHostnames:h,skipConnectivityChecks:p=!1}){var g,y,E;try{this.peerId=i,this.logger=d,this.ipInformation=yield Al.getIPDetails({peerId:i,apiHostnames:h,logger:d}),this.backend=new rT(o,n,r,c,d,i,h),this.iceServers=s,(g=this.backend)==null||g.registerIceServers(this.iceServers),this.initialized=!0,(E=(y=this.backend)==null?void 0:y.eventHandler)==null||E.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 n;try{(n=this.backend)==null||n.sendNetworkQualityTestBeginEvent(e,i)}catch(r){this.logger.error("callStats::sendNetworkQualityTestBeginEvent",{error:{reason:r.reason}})}})})}roomJoined(e){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var n,r;(n=this.backend)==null||n.sendCallJoinBeginEvent(e,i),this.backend,(r=this.backend)==null||r.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,n;(i=this.backend)==null||i.stopPingStats(),(n=this.backend)==null||n.sendDisconnectEvent(e)})}screenShareStart(e){const i=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.sendScreenShareToggleEvent(!0,e,i)})}consumerSharedMediaState(e,i){this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.sendConsumerSharedMediaStateEvent(e,i)})}screenShareStop(e){const i=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.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 n;(n=this.backend)==null||n.sendActiveSpeakerEvent(e,i)})}devices(e,i){const n=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.devices(e,i,n)})}selectedDevice(e,i){const n=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.selectedDevice(e,i,n)})}mediaPermission(e,i){const n=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.mediaPermission(e,i,n)})}mediaPlaybackFailed(e){const i=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.mediaPlaybackFailed(e,i)})}mediaTrackMuted(e){const i=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.mediaTrackMuted(e,i)})}tabChanged(e=!1){const i=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.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 n;(n=this.backend)==null||n.legacySwitch(e,i)})}startPreCallTest(e=!1){return u(this,null,function*(){const i=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.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=n=>{e(n,!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 n=new Date;this.onSafeInitialization(()=>{var r,s,o,c,d,h,p,g,y,E,b;switch(e){case"PlayerRebuffering":(r=this.backend)==null||r.sendIVSPlayerRebufferEvent(n);break;case"PlayerAudioBlocked":(s=this.backend)==null||s.sendIVSPlayerAudioBlockEvent(n);break;case"PlayerPlaybackBlocked":(o=this.backend)==null||o.sendIVSPlayerPlaybackBlockedEvent(n);break;case"PlayerNetworkUnavailable":(c=this.backend)==null||c.sendIVSPlayerNetworkUnavailableEvent(n);break;case"PlayerInitialized":(d=this.backend)==null||d.sendIVSPlayerInitializedEvent(n);break;case"PlayerWorkerError":(h=this.backend)==null||h.sendIVSPlayerWorkerErrorEvent(n);break;case"PlayerError":(p=this.backend)==null||p.sendIVSPlayerErrorEvent(i,n);break;case"PlayerRecoverableError":(g=this.backend)==null||g.sendIVSPlayerRecoverableErrorEvent(i,n);break;case"PlayerAnalyticsEvent":(y=this.backend)==null||y.sendIVSPlayerAnalyticsEvent(i,n);break;case"PlayerPlaybackRateChanged":(E=this.backend)==null||E.sendIVSPlayerPlaybackRateChangedEvent(i,n);break;case"PlayerQualityChanged":(b=this.backend)==null||b.sendIVSPlayerQualityChanged(i,n);break}})}livestreamLatency(e){const i=new Date;this.onSafeInitialization(()=>{var n;(n=this.backend)==null||n.sendPlayerLiveLatency(e,i)})}expectedVideoResolution(e,i){const n=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.expectedVideoResolution(e,i,n)})}expectedScreenshareResolution(e,i){const n=new Date;this.onSafeInitialization(()=>{var r;(r=this.backend)==null||r.expectedScreenshareResolution(e,i,n)})}}const K=new sT;K.setMaxListeners(30);function aT(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:aT});function oT(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:oT});function cT(){this.__data__=[],this.size=0}function $s(t,e){return t===e||t!==t&&e!==e}function Ec(t,e){for(var i=t.length;i--;)if($s(t[i][0],e))return i;return-1}var dT=Array.prototype,lT=dT.splice;function uT(t){var e=this.__data__,i=Ec(e,t);if(i<0)return!1;var n=e.length-1;return i==n?e.pop():lT.call(e,i,1),--this.size,!0}function hT(t){var e=this.__data__,i=Ec(e,t);return i<0?void 0:e[i][1]}function pT(t){return Ec(this.__data__,t)>-1}function mT(t,e){var i=this.__data__,n=Ec(i,t);return n<0?(++this.size,i.push([t,e])):i[n][1]=e,this}function Hi(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var n=t[e];this.set(n[0],n[1])}}Hi.prototype.clear=cT,Hi.prototype.delete=uT,Hi.prototype.get=hT,Hi.prototype.has=pT,Hi.prototype.set=mT;function gT(){this.__data__=new Hi,this.size=0}function fT(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i}function vT(t){return this.__data__.get(t)}function yT(t){return this.__data__.has(t)}var ST=typeof global=="object"&&global&&global.Object===Object&&global;const ym=ST;var TT=typeof self=="object"&&self&&self.Object===Object&&self,ET=ym||TT||Function("return this")();const oi=ET;var kT=oi.Symbol;const on=kT;var Sm=Object.prototype,bT=Sm.hasOwnProperty,_T=Sm.toString,Js=on?on.toStringTag:void 0;function wT(t){var e=bT.call(t,Js),i=t[Js];try{t[Js]=void 0;var n=!0}catch(s){}var r=_T.call(t);return n&&(e?t[Js]=i:delete t[Js]),r}var IT=Object.prototype,CT=IT.toString;function PT(t){return CT.call(t)}var RT="[object Null]",MT="[object Undefined]",Tm=on?on.toStringTag:void 0;function qn(t){return t==null?t===void 0?MT:RT:Tm&&Tm in Object(t)?wT(t):PT(t)}function ci(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var AT="[object AsyncFunction]",DT="[object Function]",OT="[object GeneratorFunction]",NT="[object Proxy]";function Dl(t){if(!ci(t))return!1;var e=qn(t);return e==DT||e==OT||e==AT||e==NT}var LT=oi["__core-js_shared__"];const Ol=LT;var Em=function(){var t=/[^.]+$/.exec(Ol&&Ol.keys&&Ol.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function xT(t){return!!Em&&Em in t}var VT=Function.prototype,UT=VT.toString;function $n(t){if(t!=null){try{return UT.call(t)}catch(e){}try{return t+""}catch(e){}}return""}var FT=/[\\^$.*+?()[\]{}|]/g,BT=/^\[object .+?Constructor\]$/,WT=Function.prototype,jT=Object.prototype,HT=WT.toString,GT=jT.hasOwnProperty,qT=RegExp("^"+HT.call(GT).replace(FT,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function $T(t){if(!ci(t)||xT(t))return!1;var e=Dl(t)?qT:BT;return e.test($n(t))}function JT(t,e){return t==null?void 0:t[e]}function Jn(t,e){var i=JT(t,e);return $T(i)?i:void 0}var KT=Jn(oi,"Map");const Ks=KT;var zT=Jn(Object,"create");const zs=zT;function YT(){this.__data__=zs?zs(null):{},this.size=0}function QT(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var XT="__lodash_hash_undefined__",ZT=Object.prototype,eE=ZT.hasOwnProperty;function tE(t){var e=this.__data__;if(zs){var i=e[t];return i===XT?void 0:i}return eE.call(e,t)?e[t]:void 0}var iE=Object.prototype,nE=iE.hasOwnProperty;function rE(t){var e=this.__data__;return zs?e[t]!==void 0:nE.call(e,t)}var sE="__lodash_hash_undefined__";function aE(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=zs&&e===void 0?sE:e,this}function Kn(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var n=t[e];this.set(n[0],n[1])}}Kn.prototype.clear=YT,Kn.prototype.delete=QT,Kn.prototype.get=tE,Kn.prototype.has=rE,Kn.prototype.set=aE;function oE(){this.size=0,this.__data__={hash:new Kn,map:new(Ks||Hi),string:new Kn}}function cE(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function kc(t,e){var i=t.__data__;return cE(e)?i[typeof e=="string"?"string":"hash"]:i.map}function dE(t){var e=kc(this,t).delete(t);return this.size-=e?1:0,e}function lE(t){return kc(this,t).get(t)}function uE(t){return kc(this,t).has(t)}function hE(t,e){var i=kc(this,t),n=i.size;return i.set(t,e),this.size+=i.size==n?0:1,this}function zn(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var n=t[e];this.set(n[0],n[1])}}zn.prototype.clear=oE,zn.prototype.delete=dE,zn.prototype.get=lE,zn.prototype.has=uE,zn.prototype.set=hE;var pE=200;function mE(t,e){var i=this.__data__;if(i instanceof Hi){var n=i.__data__;if(!Ks||n.length<pE-1)return n.push([t,e]),this.size=++i.size,this;i=this.__data__=new zn(n)}return i.set(t,e),this.size=i.size,this}function Ci(t){var e=this.__data__=new Hi(t);this.size=e.size}Ci.prototype.clear=gT,Ci.prototype.delete=fT,Ci.prototype.get=vT,Ci.prototype.has=yT,Ci.prototype.set=mE;function gE(t,e){for(var i=-1,n=t==null?0:t.length;++i<n&&e(t[i],i,t)!==!1;);return t}var fE=function(){try{var t=Jn(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();const bc=fE;function Nl(t,e,i){e=="__proto__"&&bc?bc(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}var vE=Object.prototype,yE=vE.hasOwnProperty;function km(t,e,i){var n=t[e];(!(yE.call(t,e)&&$s(n,i))||i===void 0&&!(e in t))&&Nl(t,e,i)}function Ys(t,e,i,n){var r=!i;i||(i={});for(var s=-1,o=e.length;++s<o;){var c=e[s],d=n?n(i[c],t[c],c,i,t):void 0;d===void 0&&(d=t[c]),r?Nl(i,c,d):km(i,c,d)}return i}function SE(t,e){for(var i=-1,n=Array(t);++i<t;)n[i]=e(i);return n}function Pi(t){return t!=null&&typeof t=="object"}var TE="[object Arguments]";function bm(t){return Pi(t)&&qn(t)==TE}var _m=Object.prototype,EE=_m.hasOwnProperty,kE=_m.propertyIsEnumerable,bE=bm(function(){return arguments}())?bm:function(t){return Pi(t)&&EE.call(t,"callee")&&!kE.call(t,"callee")};const _c=bE;var _E=Array.isArray;const cn=_E;function wE(){return!1}var wm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Im=wm&&typeof module=="object"&&module&&!module.nodeType&&module,IE=Im&&Im.exports===wm,Cm=IE?oi.Buffer:void 0,CE=Cm?Cm.isBuffer:void 0,PE=CE||wE;const Fr=PE;var RE=9007199254740991,ME=/^(?:0|[1-9]\d*)$/;function Pm(t,e){var i=typeof t;return e=e==null?RE:e,!!e&&(i=="number"||i!="symbol"&&ME.test(t))&&t>-1&&t%1==0&&t<e}var AE=9007199254740991;function Rm(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=AE}var DE="[object Arguments]",OE="[object Array]",NE="[object Boolean]",LE="[object Date]",xE="[object Error]",VE="[object Function]",UE="[object Map]",FE="[object Number]",BE="[object Object]",WE="[object RegExp]",jE="[object Set]",HE="[object String]",GE="[object WeakMap]",qE="[object ArrayBuffer]",$E="[object DataView]",JE="[object Float32Array]",KE="[object Float64Array]",zE="[object Int8Array]",YE="[object Int16Array]",QE="[object Int32Array]",XE="[object Uint8Array]",ZE="[object Uint8ClampedArray]",ek="[object Uint16Array]",tk="[object Uint32Array]",we={};we[JE]=we[KE]=we[zE]=we[YE]=we[QE]=we[XE]=we[ZE]=we[ek]=we[tk]=!0,we[DE]=we[OE]=we[qE]=we[NE]=we[$E]=we[LE]=we[xE]=we[VE]=we[UE]=we[FE]=we[BE]=we[WE]=we[jE]=we[HE]=we[GE]=!1;function ik(t){return Pi(t)&&Rm(t.length)&&!!we[qn(t)]}function Ll(t){return function(e){return t(e)}}var Mm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Qs=Mm&&typeof module=="object"&&module&&!module.nodeType&&module,nk=Qs&&Qs.exports===Mm,xl=nk&&ym.process,rk=function(){try{var t=Qs&&Qs.require&&Qs.require("util").types;return t||xl&&xl.binding&&xl.binding("util")}catch(e){}}();const Br=rk;var Am=Br&&Br.isTypedArray,sk=Am?Ll(Am):ik;const wc=sk;var ak=Object.prototype,ok=ak.hasOwnProperty;function Dm(t,e){var i=cn(t),n=!i&&_c(t),r=!i&&!n&&Fr(t),s=!i&&!n&&!r&&wc(t),o=i||n||r||s,c=o?SE(t.length,String):[],d=c.length;for(var h in t)(e||ok.call(t,h))&&!(o&&(h=="length"||r&&(h=="offset"||h=="parent")||s&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||Pm(h,d)))&&c.push(h);return c}var ck=Object.prototype;function Ic(t){var e=t&&t.constructor,i=typeof e=="function"&&e.prototype||ck;return t===i}function Om(t,e){return function(i){return t(e(i))}}var dk=Om(Object.keys,Object);const lk=dk;var uk=Object.prototype,hk=uk.hasOwnProperty;function Nm(t){if(!Ic(t))return lk(t);var e=[];for(var i in Object(t))hk.call(t,i)&&i!="constructor"&&e.push(i);return e}function Xs(t){return t!=null&&Rm(t.length)&&!Dl(t)}function Vl(t){return Xs(t)?Dm(t):Nm(t)}function pk(t,e){return t&&Ys(e,Vl(e),t)}function mk(t){var e=[];if(t!=null)for(var i in Object(t))e.push(i);return e}var gk=Object.prototype,fk=gk.hasOwnProperty;function vk(t){if(!ci(t))return mk(t);var e=Ic(t),i=[];for(var n in t)n=="constructor"&&(e||!fk.call(t,n))||i.push(n);return i}function Zs(t){return Xs(t)?Dm(t,!0):vk(t)}function yk(t,e){return t&&Ys(e,Zs(e),t)}var Lm=typeof exports=="object"&&exports&&!exports.nodeType&&exports,xm=Lm&&typeof module=="object"&&module&&!module.nodeType&&module,Sk=xm&&xm.exports===Lm,Vm=Sk?oi.Buffer:void 0,Um=Vm?Vm.allocUnsafe:void 0;function Fm(t,e){if(e)return t.slice();var i=t.length,n=Um?Um(i):new t.constructor(i);return t.copy(n),n}function Bm(t,e){var i=-1,n=t.length;for(e||(e=Array(n));++i<n;)e[i]=t[i];return e}function Tk(t,e){for(var i=-1,n=t==null?0:t.length,r=0,s=[];++i<n;){var o=t[i];e(o,i,t)&&(s[r++]=o)}return s}function Wm(){return[]}var Ek=Object.prototype,kk=Ek.propertyIsEnumerable,jm=Object.getOwnPropertySymbols,bk=jm?function(t){return t==null?[]:(t=Object(t),Tk(jm(t),function(e){return kk.call(t,e)}))}:Wm;const Ul=bk;function _k(t,e){return Ys(t,Ul(t),e)}function Hm(t,e){for(var i=-1,n=e.length,r=t.length;++i<n;)t[r+i]=e[i];return t}var wk=Om(Object.getPrototypeOf,Object);const Fl=wk;var Ik=Object.getOwnPropertySymbols,Ck=Ik?function(t){for(var e=[];t;)Hm(e,Ul(t)),t=Fl(t);return e}:Wm;const Gm=Ck;function Pk(t,e){return Ys(t,Gm(t),e)}function qm(t,e,i){var n=e(t);return cn(t)?n:Hm(n,i(t))}function Bl(t){return qm(t,Vl,Ul)}function Rk(t){return qm(t,Zs,Gm)}var Mk=Jn(oi,"DataView");const Wl=Mk;var Ak=Jn(oi,"Promise");const jl=Ak;var Dk=Jn(oi,"Set");const Hl=Dk;var Ok=Jn(oi,"WeakMap");const Gl=Ok;var $m="[object Map]",Nk="[object Object]",Jm="[object Promise]",Km="[object Set]",zm="[object WeakMap]",Ym="[object DataView]",Lk=$n(Wl),xk=$n(Ks),Vk=$n(jl),Uk=$n(Hl),Fk=$n(Gl),Yn=qn;(Wl&&Yn(new Wl(new ArrayBuffer(1)))!=Ym||Ks&&Yn(new Ks)!=$m||jl&&Yn(jl.resolve())!=Jm||Hl&&Yn(new Hl)!=Km||Gl&&Yn(new Gl)!=zm)&&(Yn=function(t){var e=qn(t),i=e==Nk?t.constructor:void 0,n=i?$n(i):"";if(n)switch(n){case Lk:return Ym;case xk:return $m;case Vk:return Jm;case Uk:return Km;case Fk:return zm}return e});const Wr=Yn;var Bk=Object.prototype,Wk=Bk.hasOwnProperty;function jk(t){var e=t.length,i=new t.constructor(e);return e&&typeof t[0]=="string"&&Wk.call(t,"index")&&(i.index=t.index,i.input=t.input),i}var Hk=oi.Uint8Array;const Cc=Hk;function ql(t){var e=new t.constructor(t.byteLength);return new Cc(e).set(new Cc(t)),e}function Gk(t,e){var i=e?ql(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)}var qk=/\w*$/;function $k(t){var e=new t.constructor(t.source,qk.exec(t));return e.lastIndex=t.lastIndex,e}var Qm=on?on.prototype:void 0,Xm=Qm?Qm.valueOf:void 0;function Jk(t){return Xm?Object(Xm.call(t)):{}}function Zm(t,e){var i=e?ql(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}var Kk="[object Boolean]",zk="[object Date]",Yk="[object Map]",Qk="[object Number]",Xk="[object RegExp]",Zk="[object Set]",e0="[object String]",t0="[object Symbol]",i0="[object ArrayBuffer]",n0="[object DataView]",r0="[object Float32Array]",s0="[object Float64Array]",a0="[object Int8Array]",o0="[object Int16Array]",c0="[object Int32Array]",d0="[object Uint8Array]",l0="[object Uint8ClampedArray]",u0="[object Uint16Array]",h0="[object Uint32Array]";function p0(t,e,i){var n=t.constructor;switch(e){case i0:return ql(t);case Kk:case zk:return new n(+t);case n0:return Gk(t,i);case r0:case s0:case a0:case o0:case c0:case d0:case l0:case u0:case h0:return Zm(t,i);case Yk:return new n;case Qk:case e0:return new n(t);case Xk:return $k(t);case Zk:return new n;case t0:return Jk(t)}}var eg=Object.create,m0=function(){function t(){}return function(e){if(!ci(e))return{};if(eg)return eg(e);t.prototype=e;var i=new t;return t.prototype=void 0,i}}();const g0=m0;function tg(t){return typeof t.constructor=="function"&&!Ic(t)?g0(Fl(t)):{}}var f0="[object Map]";function v0(t){return Pi(t)&&Wr(t)==f0}var ig=Br&&Br.isMap,y0=ig?Ll(ig):v0;const S0=y0;var T0="[object Set]";function E0(t){return Pi(t)&&Wr(t)==T0}var ng=Br&&Br.isSet,k0=ng?Ll(ng):E0;const b0=k0;var _0=1,w0=2,I0=4,rg="[object Arguments]",C0="[object Array]",P0="[object Boolean]",R0="[object Date]",M0="[object Error]",sg="[object Function]",A0="[object GeneratorFunction]",D0="[object Map]",O0="[object Number]",ag="[object Object]",N0="[object RegExp]",L0="[object Set]",x0="[object String]",V0="[object Symbol]",U0="[object WeakMap]",F0="[object ArrayBuffer]",B0="[object DataView]",W0="[object Float32Array]",j0="[object Float64Array]",H0="[object Int8Array]",G0="[object Int16Array]",q0="[object Int32Array]",$0="[object Uint8Array]",J0="[object Uint8ClampedArray]",K0="[object Uint16Array]",z0="[object Uint32Array]",ke={};ke[rg]=ke[C0]=ke[F0]=ke[B0]=ke[P0]=ke[R0]=ke[W0]=ke[j0]=ke[H0]=ke[G0]=ke[q0]=ke[D0]=ke[O0]=ke[ag]=ke[N0]=ke[L0]=ke[x0]=ke[V0]=ke[$0]=ke[J0]=ke[K0]=ke[z0]=!0,ke[M0]=ke[sg]=ke[U0]=!1;function Pc(t,e,i,n,r,s){var o,c=e&_0,d=e&w0,h=e&I0;if(i&&(o=r?i(t,n,r,s):i(t)),o!==void 0)return o;if(!ci(t))return t;var p=cn(t);if(p){if(o=jk(t),!c)return Bm(t,o)}else{var g=Wr(t),y=g==sg||g==A0;if(Fr(t))return Fm(t,c);if(g==ag||g==rg||y&&!r){if(o=d||y?{}:tg(t),!c)return d?Pk(t,yk(o,t)):_k(t,pk(o,t))}else{if(!ke[g])return r?t:{};o=p0(t,g,c)}}s||(s=new Ci);var E=s.get(t);if(E)return E;s.set(t,o),b0(t)?t.forEach(function(M){o.add(Pc(M,e,i,M,t,s))}):S0(t)&&t.forEach(function(M,U){o.set(U,Pc(M,e,i,U,t,s))});var b=h?d?Rk:Bl:d?Zs:Vl,N=p?void 0:b(t);return gE(N||t,function(M,U){N&&(U=M,M=t[U]),km(o,U,Pc(M,e,i,U,t,s))}),o}var Y0=1,Q0=4;function $l(t){return Pc(t,Y0|Q0)}var X0="[object Symbol]";function Z0(t){return typeof t=="symbol"||Pi(t)&&qn(t)==X0}var eb=Object.defineProperty,tb=(t,e)=>{for(var i in e)eb(t,i,{get:e[i],enumerable:!0})},ib={};tb(ib,{permissions:()=>nb,theme:()=>rb});var Rt=(t=>(t.GroupCall="GROUP_CALL",t.Webinar="WEBINAR",t.AudioRoom="AUDIO_ROOM",t.Livestream="LIVESTREAM",t.Chat="CHAT",t))(Rt||{}),G=(t=>(t.Allowed="ALLOWED",t.NotAllowed="NOT_ALLOWED",t.CanRequest="CAN_REQUEST",t))(G||{}),nb={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},rb={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}},og="hXgU8Wc8pwuGNq9ms5q9Hh",cg;typeof process!="undefined"&&(cg=process==null?void 0:process.env)!=null&&cg.FLAGSMITH_ENVIRONMENT_KEY&&(og={}.FLAGSMITH_ENVIRONMENT_KEY);function sb(t=[]){const e={};return t.forEach(i=>{e[i.feature.name]={enabled:i.enabled,value:i.feature_state_value}}),e}var ab=class{constructor(t=og){m(this,"flags",{}),m(this,"environmentKey",null),this.environmentKey=t}identifyAndFetchFlagsWithRetry(t){return u(this,arguments,function*({primaryEndpoint:e,secondaryEndpoint:i,forceEvaluate:n,timeout:r,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,E=setTimeout(()=>y.abort(),r),b="_"+(Math.random()+1).toString(36).substring(2),N=yield fetch(`https://${g}/api/v1/identities/`,{method:"POST",headers:{"Content-Type":"application/json","X-Environment-Key":this.environmentKey},body:JSON.stringify({identifier:s+(n?b:""),traits:h}),signal:y.signal});if(clearTimeout(E),!N.ok)throw new Error(`Request failed with status ${N.status}`);const M=yield N.json();return sb(M.flags||[])}catch(y){c.error("Flagsmith identify failed!!",{error:y,url:g})}return{}})}identify(t){return u(this,arguments,function*(e,i={},n=!1,r=5e3,s="edge.api.flagsmith.com",o=console){return this.flags=yield this.identifyAndFetchFlagsWithRetry({traitsObj:i,uniqueIdentifier:e,forceEvaluate:n,timeout:r,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}},Y=new ab,dg=[-2,-1,0,1,2],ob=[0,1,2,3,4];function cb(t){t=t.trim();let e="0",i="0",n="0";return t.length==4?(e="0x"+t[1]+t[1],i="0x"+t[2]+t[2],n="0x"+t[3]+t[3]):t.length>6&&(e="0x"+t[1]+t[2],i="0x"+t[3]+t[4],n="0x"+t[5]+t[6]),[+e,+i,+n]}var db=(t,e,i)=>{let n,r,s;if(e==0)n=r=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;n=o(d,c,t+1/3),r=o(d,c,t),s=o(d,c,t-1/3)}return[Math.round(n*255),Math.round(r*255),Math.round(s*255)]},lb=(t,e,i)=>{t/=255,e/=255,i/=255;const n=Math.max(t,e,i),r=Math.min(t,e,i);let s,o;const c=(n+r)/2;if(n==r)s=o=0;else{const d=n-r;switch(o=c>.5?d/(2-n-r):d/(n+r),n){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]},ub=(t,e,i)=>{const n=r=>r.toString(16).padStart(2,"0");return`#${n(t)}${n(e)}${n(i)}`},lg=(t,e=dg,i=.4)=>{const n=[],[r,s,o]=cb(t),[c,d,h]=lb(r,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(M=>M===0);if(g===-1)throw new Error("Invalid reducer provided, it must contain atleast one zero");const y=5-g,E=g+1,b=(100-p)/y,N=p/E;for(const M of e){let U;M<0?U=p+M*N*i:M>0?U=p+M*b*i:U=p;const[$,J,I]=db(c,d,U/100);n.push(ub($,J,I))}return n},ug={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"}},hb=t=>{const[e,i,n,r,s]=lg(t,dg);return{300:e,400:i,500:n,600:r,700:s}},pb=t=>{if(t==="#FFFFFF")return ug.light.background;if(t==="#000000")return ug.dark.background;const[e,i,n,r,s]=lg(t,ob);return{1e3:e,900:i,800:n,700:r,600:s}},mb={border_radius:"rounded",border_width:"thin",spacing_base:4,theme:"dark",colors:{brand:hb("#2160FD"),background:pb("#141414"),danger:"#FF2D2D",text:"#EEEEEE",text_on_brand:"#EEEEEE",success:"#62A504",video_bg:"#191919",warning:"#FFCD07"}};function hg(){return $l(mb)}var gb={permissions:{can_accept_production_requests:!1,can_edit_display_name:!0,accept_waiting_requests:!1,disable_participant_audio:!1,disable_participant_screensharing:!1,disable_participant_video:!1,can_spotlight:!1,kick_participant:!1,pin_participant:!1,can_record:!1,can_livestream:!1,waiting_room_type:"SKIP",plugins:{can_close:!0,can_start:!0,can_edit_config:!1,config:{}},polls:{can_create:!0,can_vote:!0,can_view:!0},media:{video:{can_produce:"ALLOWED",can_consume:"ALLOWED"},audio:{can_produce:"ALLOWED"},screenshare:{can_produce:"ALLOWED",can_consume:"ALLOWED"}},chat:{public:{can_send:!0,text:!0,files:!0},private:{can_send:!1,can_receive:!1,text:!1,files:!1},channel:{can_create:"ALL",can_delete:"ALL",can_update:"ALL",can_read_all:!1},message:{can_delete:"ALL",can_edit:"ALL",delete_cutoff_time_seconds:0,edit_cutoff_time_seconds:0}},hidden_participant:!1,is_recorder:!1,recorder_type:"NONE",show_participant_list:!0,transcription_enabled:!1,can_change_participant_permissions:!1,connected_meetings:{can_alter_connected_meetings:!1,can_switch_connected_meetings:!1,can_switch_to_parent_meeting:!1},stage_enabled:!1,stage_access:void 0,accept_stage_requests:!1},ui:{oldTheme:{setup_screen:{is_enabled:!1},alone_here:{is_enabled:!1},waiting_room:{is_enabled:!1,enable_preview:!0},control_bar:{is_enabled:!0,elements:{plugins:!0,screenshare:!0,invite:!1,participants:!0,chat:!0,reactions:!1,polls:!0,fullscreen:!0,layout:!0}},header:{is_enabled:!0,elements:{timer:!0,title:!0,participant_count:!0,change_layout:!0}},pip_mode:!0,auto_tune:!0,colors:{primary:"#2160FD",secondary:"#1A1A1A",text:"#EEEEEE",background:"#1A1A1A",textPrimary:"#EEEEEE",videoBackground:"#1A1A1A"},dimensions:{mode:"fillParent"},grid:{multi:{maxVideoCount:6,videoFit:"cover"},single:{maxVideoCount:6,videoFit:"cover"},defaultView:"MULTI"},controls:{pip_toggle:!1},plugins:[]},design_tokens:hg(),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 fb(){return $l(gb)}var vb={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:hg(),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 Jl(){return $l(vb)}var yb=/\s/;function Sb(t){for(var e=t.length;e--&&yb.test(t.charAt(e)););return e}var Tb=/^\s+/;function Eb(t){return t&&t.slice(0,Sb(t)+1).replace(Tb,"")}var pg=0/0,kb=/^[-+]0x[0-9a-f]+$/i,bb=/^0b[01]+$/i,_b=/^0o[0-7]+$/i,wb=parseInt;function mg(t){if(typeof t=="number")return t;if(Z0(t))return pg;if(ci(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=ci(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Eb(t);var i=bb.test(t);return i||_b.test(t)?wb(t.slice(2),i?2:8):kb.test(t)?pg:+t}function gg(t){return t}function Ib(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 Cb=800,Pb=16,Rb=Date.now;function Mb(t){var e=0,i=0;return function(){var n=Rb(),r=Pb-(n-i);if(i=n,r>0){if(++e>=Cb)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}function Ab(t){return function(){return t}}var Db=bc?function(t,e){return bc(t,"toString",{configurable:!0,enumerable:!1,value:Ab(e),writable:!0})}:gg,Ob=Mb(Db);const Nb=Ob;var fg=Math.max;function Lb(t,e,i){return e=fg(e===void 0?t.length-1:e,0),function(){for(var n=arguments,r=-1,s=fg(n.length-e,0),o=Array(s);++r<s;)o[r]=n[e+r];r=-1;for(var c=Array(e+1);++r<e;)c[r]=n[r];return c[e]=i(o),Ib(t,this,c)}}function xb(t,e){return Nb(Lb(t,e,gg),t+"")}function Vb(t,e,i){if(!ci(i))return!1;var n=typeof e;return(n=="number"?Xs(i)&&Pm(e,i.length):n=="string"&&e in i)?$s(i[e],t):!1}function Ub(t){return xb(function(e,i){var n=-1,r=i.length,s=r>1?i[r-1]:void 0,o=r>2?i[2]:void 0;for(s=t.length>3&&typeof s=="function"?(r--,s):void 0,o&&Vb(i[0],i[1],o)&&(s=r<3?void 0:s,r=1),e=Object(e);++n<r;){var c=i[n];c&&t(e,c,n,s)}return e})}var Fb="[object Object]",Bb=Function.prototype,Wb=Object.prototype,vg=Bb.toString,jb=Wb.hasOwnProperty,Hb=vg.call(Object);function Gb(t){if(!Pi(t)||qn(t)!=Fb)return!1;var e=Fl(t);if(e===null)return!0;var i=jb.call(e,"constructor")&&e.constructor;return typeof i=="function"&&i instanceof i&&vg.call(i)==Hb}var qb="__lodash_hash_undefined__";function $b(t){return this.__data__.set(t,qb),this}function Jb(t){return this.__data__.has(t)}function Rc(t){var e=-1,i=t==null?0:t.length;for(this.__data__=new zn;++e<i;)this.add(t[e])}Rc.prototype.add=Rc.prototype.push=$b,Rc.prototype.has=Jb;function Kb(t,e){for(var i=-1,n=t==null?0:t.length;++i<n;)if(e(t[i],i,t))return!0;return!1}function zb(t,e){return t.has(e)}var Yb=1,Qb=2;function yg(t,e,i,n,r,s){var o=i&Yb,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,E=i&Qb?new Rc:void 0;for(s.set(t,e),s.set(e,t);++g<c;){var b=t[g],N=e[g];if(n)var M=o?n(N,b,g,e,t,s):n(b,N,g,t,e,s);if(M!==void 0){if(M)continue;y=!1;break}if(E){if(!Kb(e,function(U,$){if(!zb(E,$)&&(b===U||r(b,U,i,n,s)))return E.push($)})){y=!1;break}}else if(!(b===N||r(b,N,i,n,s))){y=!1;break}}return s.delete(t),s.delete(e),y}function Xb(t){var e=-1,i=Array(t.size);return t.forEach(function(n,r){i[++e]=[r,n]}),i}function Zb(t){var e=-1,i=Array(t.size);return t.forEach(function(n){i[++e]=n}),i}var e_=1,t_=2,i_="[object Boolean]",n_="[object Date]",r_="[object Error]",s_="[object Map]",a_="[object Number]",o_="[object RegExp]",c_="[object Set]",d_="[object String]",l_="[object Symbol]",u_="[object ArrayBuffer]",h_="[object DataView]",Sg=on?on.prototype:void 0,Kl=Sg?Sg.valueOf:void 0;function p_(t,e,i,n,r,s,o){switch(i){case h_:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case u_:return!(t.byteLength!=e.byteLength||!s(new Cc(t),new Cc(e)));case i_:case n_:case a_:return $s(+t,+e);case r_:return t.name==e.name&&t.message==e.message;case o_:case d_:return t==e+"";case s_:var c=Xb;case c_:var d=n&e_;if(c||(c=Zb),t.size!=e.size&&!d)return!1;var h=o.get(t);if(h)return h==e;n|=t_,o.set(t,e);var p=yg(c(t),c(e),n,r,s,o);return o.delete(t),p;case l_:if(Kl)return Kl.call(t)==Kl.call(e)}return!1}var m_=1,g_=Object.prototype,f_=g_.hasOwnProperty;function v_(t,e,i,n,r,s){var o=i&m_,c=Bl(t),d=c.length,h=Bl(e),p=h.length;if(d!=p&&!o)return!1;for(var g=d;g--;){var y=c[g];if(!(o?y in e:f_.call(e,y)))return!1}var E=s.get(t),b=s.get(e);if(E&&b)return E==e&&b==t;var N=!0;s.set(t,e),s.set(e,t);for(var M=o;++g<d;){y=c[g];var U=t[y],$=e[y];if(n)var J=o?n($,U,y,e,t,s):n(U,$,y,t,e,s);if(!(J===void 0?U===$||r(U,$,i,n,s):J)){N=!1;break}M||(M=y=="constructor")}if(N&&!M){var I=t.constructor,ae=e.constructor;I!=ae&&"constructor"in t&&"constructor"in e&&!(typeof I=="function"&&I instanceof I&&typeof ae=="function"&&ae instanceof ae)&&(N=!1)}return s.delete(t),s.delete(e),N}var y_=1,Tg="[object Arguments]",Eg="[object Array]",Mc="[object Object]",S_=Object.prototype,kg=S_.hasOwnProperty;function T_(t,e,i,n,r,s){var o=cn(t),c=cn(e),d=o?Eg:Wr(t),h=c?Eg:Wr(e);d=d==Tg?Mc:d,h=h==Tg?Mc:h;var p=d==Mc,g=h==Mc,y=d==h;if(y&&Fr(t)){if(!Fr(e))return!1;o=!0,p=!1}if(y&&!p)return s||(s=new Ci),o||wc(t)?yg(t,e,i,n,r,s):p_(t,e,d,i,n,r,s);if(!(i&y_)){var E=p&&kg.call(t,"__wrapped__"),b=g&&kg.call(e,"__wrapped__");if(E||b){var N=E?t.value():t,M=b?e.value():e;return s||(s=new Ci),r(N,M,i,n,s)}}return y?(s||(s=new Ci),v_(t,e,i,n,r,s)):!1}function bg(t,e,i,n,r){return t===e?!0:t==null||e==null||!Pi(t)&&!Pi(e)?t!==t&&e!==e:T_(t,e,i,n,bg,r)}function E_(t){return function(e,i,n){for(var r=-1,s=Object(e),o=n(e),c=o.length;c--;){var d=o[t?c:++r];if(i(s[d],d,s)===!1)break}return e}}var k_=E_();const b_=k_;var __=function(){return oi.Date.now()};const zl=__;var w_="Expected a function",I_=Math.max,C_=Math.min;function Yl(t,e,i){var n,r,s,o,c,d,h=0,p=!1,g=!1,y=!0;if(typeof t!="function")throw new TypeError(w_);e=mg(e)||0,ci(i)&&(p=!!i.leading,g="maxWait"in i,s=g?I_(mg(i.maxWait)||0,e):s,y="trailing"in i?!!i.trailing:y);function E(se){var Se=n,nt=r;return n=r=void 0,h=se,o=t.apply(nt,Se),o}function b(se){return h=se,c=setTimeout(U,e),p?E(se):o}function N(se){var Se=se-d,nt=se-h,gt=e-Se;return g?C_(gt,s-nt):gt}function M(se){var Se=se-d,nt=se-h;return d===void 0||Se>=e||Se<0||g&&nt>=s}function U(){var se=zl();if(M(se))return $(se);c=setTimeout(U,N(se))}function $(se){return c=void 0,y&&n?E(se):(n=r=void 0,o)}function J(){c!==void 0&&clearTimeout(c),h=0,n=d=r=c=void 0}function I(){return c===void 0?o:$(zl())}function ae(){var se=zl(),Se=M(se);if(n=arguments,r=this,d=se,Se){if(c===void 0)return b(d);if(g)return clearTimeout(c),c=setTimeout(U,e),E(d)}return c===void 0&&(c=setTimeout(U,e)),o}return ae.cancel=J,ae.flush=I,ae}function Ql(t,e,i){(i!==void 0&&!$s(t[e],i)||i===void 0&&!(e in t))&&Nl(t,e,i)}function P_(t){return Pi(t)&&Xs(t)}function Xl(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}function R_(t){return Ys(t,Zs(t))}function M_(t,e,i,n,r,s,o){var c=Xl(t,i),d=Xl(e,i),h=o.get(d);if(h){Ql(t,i,h);return}var p=s?s(c,d,i+"",t,e,o):void 0,g=p===void 0;if(g){var y=cn(d),E=!y&&Fr(d),b=!y&&!E&&wc(d);p=d,y||E||b?cn(c)?p=c:P_(c)?p=Bm(c):E?(g=!1,p=Fm(d,!0)):b?(g=!1,p=Zm(d,!0)):p=[]:Gb(d)||_c(d)?(p=c,_c(c)?p=R_(c):(!ci(c)||Dl(c))&&(p=tg(d))):g=!1}g&&(o.set(d,p),r(p,d,n,s,o),o.delete(d)),Ql(t,i,p)}function _g(t,e,i,n,r){t!==e&&b_(e,function(s,o){if(r||(r=new Ci),ci(s))M_(t,e,o,i,_g,n,r);else{var c=n?n(Xl(t,o),s,o+"",t,e,r):void 0;c===void 0&&(c=s),Ql(t,o,c)}},Zs)}var A_="[object Map]",D_="[object Set]",O_=Object.prototype,N_=O_.hasOwnProperty;function L_(t){if(t==null)return!0;if(Xs(t)&&(cn(t)||typeof t=="string"||typeof t.splice=="function"||Fr(t)||wc(t)||_c(t)))return!t.length;var e=Wr(t);if(e==A_||e==D_)return!t.size;if(Ic(t))return!Nm(t).length;for(var i in t)if(N_.call(t,i))return!1;return!0}function x_(t,e){return bg(t,e)}var V_=Ub(function(t,e,i){_g(t,e,i)});const dn=V_;var Zl=(t=>(t.PARTICIPANT="PARTICIPANT",t.PEER="PEER",t.CLIENT="CLIENT",t))(Zl||{});const ne={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 Ac(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 U_(t){var e,i,n,r;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=!!((r=(n=t==null?void 0:t.getValue("modules"))==null?void 0:n.devTools)!=null&&r.logs);return s||o}function F_(t){var e;if(Y.hasFeature(ne.LOG_LEVEL)){let i=((e=Y.getValue(ne.LOG_LEVEL))==null?void 0:e.toString())||"all";if(i=i.toLowerCase().trim(),i==="off")return!1;if(i!=="all"){const n=["debug","log","info","warn","error"],r=n.indexOf(t),s=n.indexOf(i);if(r<s)return!1}}return!0}function wg(t,e,i={}){return Object.getOwnPropertyNames(t).forEach(n=>{var r;if([null,void 0,NaN].includes(t[n])||e&&(((r=e.match(/\./g))==null?void 0:r.length)||0)>=10)return;const s=e?`${e}.${n}`:n;typeof t[n]=="object"?wg(t[n],s,i):["number","string","boolean"].includes(typeof t[n])&&(i[s]=t[n])}),i}function Ig(t,e,i={},n=""){const r={};try{const s=JSON.stringify(i),o=JSON.parse(s),c=wg(o,n),d=JSON.stringify(c);return JSON.parse(d)}catch(s){const o=Ac(s);r[`${n}.error.message`]=o.message||"",r[`${n}.error.stack`]=o.stack||"",r[`${n}.error.reason`]=o.reason||"",r[`${n}.error.source`]="safelyFlattenObjForOpenTelemetry"}return r}const ea="chrome",Cg="opera",Pg="firefox",Rg="iexplorer",Mg="safari",Ag="nwjs",Dg="electron",Og="react-native",eu="unknown",Dc={Chrome:ea,Chromium:ea,Opera:Cg,Firefox:Pg,"Internet Explorer":Rg,Safari:Mg};function B_(){const{userAgent:t}=navigator,e={name:eu,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=ea,e.version=i)}else e.name=ea,e.version=t.match(/Chrome\/([\d.]+)/)[1];return e}function W_(){const{userAgent:t}=navigator;if(t.match(/Electron/)){const e=t.match(/Electron\/([\d.]+)/)[1];return{name:Dg,version:e}}return null}function j_(){const{userAgent:t}=navigator;if(t.match(/JitsiMeetNW/)){const e=t.match(/JitsiMeetNW\/([\d.]+)/)[1];return{name:Ag,version:e}}}function H_(){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:Og,version:e}}function G_(t){let e;const i=[H_,W_,j_];for(let r=0;r<i.length;r+=1)if(e=i[r](),e)return e;const n=t.getBrowserName();return n in Dc?{name:Dc[n],version:t.getBrowserVersion()}:(e=B_(),e||{name:eu,version:void 0})}class q_{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,n;if(this._bowser=Sp.getParser(navigator.userAgent),typeof e=="undefined"){const r=G_(this._bowser);i=r.name,n=r.version}else e.name in Dc?(i=Dc[e.name],n=e.version):(i=eu,n=void 0);this._name=i,this._version=n}getName(){return this._name}isChrome(){return this._name===ea}isOpera(){return this._name===Cg}isFirefox(){return this._name===Pg}isIExplorer(){return this._name===Rg}isSafari(){return this._name===Mg}isNWJS(){return this._name===Ag}isElectron(){return this._name===Dg}isReactNative(){return this._name===Og||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 $_ extends q_{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 $_,J_={audio:!0,video:!0,screenshareAudio:!0,screenshareVideo:!0},ta={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"},K_={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 jr(t,e){const i=t.getValue("overrides");return i&&i[e]?i[e]:!1}function z_({baseURI:t}){return t!=null&&t.includes("preprod.dyte")?qs.PREPROD:t!=null&&t.includes("devel.dyte")?qs.DEVEL:qs.PROD}function Hr({servicePrefix:t,baseURI:e}){return`${t}.${e}`}function Ng(t){const e=t.getValue("baseURI");return{location:Hr({servicePrefix:"location",baseURI:e}),locationLegacy:Hr({servicePrefix:"location-legacy",baseURI:e}),daCollector:Hr({servicePrefix:"da-collector",baseURI:e})}}const Y_='<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>',Q_='<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>',Oc=t=>{if(!t)return;if(!t.startsWith("<svg"))return new Promise(r=>{r(t)});const e=new Blob([t],{type:"image/svg+xml"}),i=new Image,n=window.URL.createObjectURL(e);return new Promise((r,s)=>{i.onload=()=>{r(i),window.URL.revokeObjectURL(n)},i.onerror=()=>{s(),window.URL.revokeObjectURL(n)},i.src=n})};function X_(t){const e=x({},t),i=new Map,n=(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)}),r=(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:n,unsubscribe:r,notify:s,setValue:(o,c,d=!0)=>{e[o]=c,d&&s(o)},getValue:o=>e[o],getAllValues:()=>e}}class Z_{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,X_(i)),this.mostRecentPeerId=e,this.contexts.get(e))}remapContext(e,i){const n=i.getValue("peerId");n!==e&&(i.setValue("peerId",e),this.mostRecentPeerId=e,this.contexts.set(e,i),this.contexts.delete(n))}getContext(e){return this.contexts.get(e)}getMostRecentPeerId(){return this.mostRecentPeerId}}const Qn=new Z_,ce=class{static get logsEndpoint(){const t=Qn.getContext(ce.meetingMetadata.peerId);return`https://${Hr({servicePrefix:"api-silos",baseURI:t.getValue("baseURI")})}/otel/logs`}static resetPeerId(t){ce.meetingMetadata.peerId=t}static init(t,e){const i=t.getValue("peerId");ce.tracingEnabled=e,ce.meetingMetadata.peerId=i,ce.meetingMetadata.sdkVersion=t.getValue("sdkVersion"),ce.meetingMetadata.deviceInfo=Ie.getDeviceInfo(),ce.meetingMetadata.visitedUrl=!navigator.isReactNative&&typeof window!="undefined"&&window.location.href,navigator.isReactNative||document.addEventListener("visibilitychange",ce.processCachedLogs),ce.logsProcessorTimer=setInterval(ce.processCachedLogs,ce.logsProcessingInterval),e&&(ce.initialized=!0)}static trace(t,e=void 0){return(i,n,r)=>{const s=r.value;return r.value=function(...o){if(!ce.initialized||navigator.isReactNative||!ce.tracingEnabled||Y.hasFeature(ne.SKIP_OTEL_TRACES))return s.apply(this,o);ce.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&&ce.addLogInCurrentSpan("info",`${t}_timing`,{execTime:h-c,country:ce.location.country})}).catch(()=>{const h=performance.now();ce.addLogInCurrentSpan("info",`${t}_timing`,{execTime:h-c})}),d},r}}static injectContext(t){var e;const i=xr().replace(/-/g,"").substring(0,16),n=(e=ce.meetingMetadata.peerId)==null?void 0:e.replace(/-/g,"");t.TRACEPARENT=`00-${n}-${i}-01`}static addLogInCurrentSpan(t,e,i={},n=!1){i!=null&&i.error&&Object.assign(i,{error:Ac(i.error)});const r=Qn.getContext(ce.meetingMetadata.peerId);if(U_(r)&&(L_(i)?console[t]("DyteInternalLogs:: ",t,e):console[t]("DyteInternalLogs:: ",t,e,i)),!!F_(t))try{const s=Ig(r,e,i,"metadata"),o=new Date,c=H(x({message:e,level:t},s),{loggedAt:o.toISOString(),loggedAtTzOffset:o.getTimezoneOffset()});n?ce.sendOtelLogsToNewRelic([c]):ce.logsCache.push(c)}catch(s){ce.addLogInCurrentSpan("error","opentelemetry::addLogInCurrentSpan_failed",{error:Ac(s)})}}static sendOtelLogsToNewRelic(t){const e=Qn.getContext(ce.meetingMetadata.peerId);fetch(ce.logsEndpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({meetingMetadata:Ig(e,"sendOtelLogsToNewRelic",ce.meetingMetadata,"meetingMetadata"),serviceName:e.getValue("sdkName"),logs:t})}).catch(i=>{ce.addLogInCurrentSpan("error","opentelemetry::sendOtelLogToNewRelic_failed",{error:Ac(i)}),ce.logsCache.push(...t)})}static processCachedLogs(){const t=ce.logsCache.splice(0,25);t!=null&&t.length&&ce.sendOtelLogsToNewRelic(t)}static destruct(){clearInterval(ce.logsProcessorTimer),ce.processCachedLogs(),navigator.isReactNative||document.removeEventListener("visibilitychange",ce.processCachedLogs)}};let S=ce;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,n){S.addLogInCurrentSpan("info",e,i,n)}static error(e,i,n){S.addLogInCurrentSpan("error",e,i,n)}static debug(e,i,n){S.addLogInCurrentSpan("debug",e,i,n)}static log(e,i,n){S.addLogInCurrentSpan("log",e,i,n)}static warn(e,i,n){S.addLogInCurrentSpan("warn",e,i,n)}}const ew=()=>{!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,n,r,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:(r=(n=t==null?void 0:t.reason)==null?void 0:n.config)==null?void 0:r.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")}))},tw={"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"},Nc={"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(Nc).forEach(t=>{Nc[t]=`{${tw[t.slice(0,2)]}} ${Nc[t]}`});class w extends Error{constructor(e,i,n=!1){super(e),m(this,"code"),this.code=i,this.name="DyteError",this.message=`[ERR${this.code}]: ${Nc[this.code]}
|
|
13
|
-
${this.message}`;try{let r=n;i&&i.endsWith("00")&&(r=!0),r&&l.error("DyteError",{error:{message:this.message,name:this.name,code:i}});const s=Qn.getContext(Qn.getMostRecentPeerId());if(s){const o=s.getValue("onError");try{o(this)}catch(c){}}typeof window!="undefined"&&window.dispatchEvent(new CustomEvent("dyteError",{detail:this}))}catch(r){}}}function Lc(t,e,i,n){if(n instanceof w)throw n;if(n instanceof e){const r=new w(n.message,i);throw r.stack=n.stack,r}else throw n}function Lg(t,e,i){if(!t.value){const r=t.get,s=t.set;return r&&(t.get=function(){try{return r.apply(this)}catch(o){Lc(this,e,i,o)}}),s&&(t.set=function(o){try{return s.apply(this,[o])}catch(c){Lc(this,e,i,c)}}),t}const n=t.value;return t.value=function(...r){try{const s=n.apply(this,r);return s&&s instanceof Promise?s.catch(o=>{Lc(this,e,i,o)}):s}catch(s){Lc(this,e,i,s)}},t}function iw(t,e){return(i,n,r)=>{if(r)return Lg(r,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,Lg(o,t,e))}}}const lt=t=>iw(Error,t);function nw(t){let e=0,i,n;if(!t)return e;for(i=0;i<t.length;i+=1)n=t.charCodeAt(i),e=(e<<5)-e+n,e|=0;return Math.abs(e)%100+1}var ln,un;const xg=class extends dt.EventEmitter{constructor(){super(),f(this,ln,void 0),f(this,un,void 0),m(this,"asyncPromiseTimeout"),v(this,ln,new Map),v(this,un,new Map),this.asyncPromiseTimeout=8e3}emitAsync(t,...e){return u(this,null,function*(){a(this,ln).set(t,[]);const i=a(this,un).get(t).map(()=>new Promise(n=>{a(this,ln).get(t).push(n)}));AS(xg.prototype,this,"emit").call(this,t,...e),yield Promise.race([Promise.all(i),new Promise((n,r)=>setTimeout(()=>r(new Error(`emitAsync failed to resolve for event ${t}.`)),this.asyncPromiseTimeout))]),a(this,ln).delete(t)})}onAsync(t,e){const i=a(this,ln),n=(...r)=>u(this,null,function*(){var s;try{yield e(...r)}catch(c){l.error("[onAsync]",{error:c})}const o=(s=i.get(t))==null?void 0:s.shift();o==null||o()});return a(this,un).get(t)||a(this,un).set(t,[]),a(this,un).get(t).push(n),super.on(t,n)}reset(){v(this,ln,new Map),v(this,un,new Map),super.removeAllListeners()}};let rw=xg;ln=new WeakMap,un=new WeakMap;const P=new rw;function sw(){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(r=>{var s;return(s=r.id)==null?void 0:s.includes("screen")});i=i!=null?i:e[0];const n={audio:!1,video:{mandatory:{chromeMediaSource:"desktop",chromeMediaSourceId:i.id}}};return yield navigator.mediaDevices.getUserMedia(n)}))}var R=(t=>(t.NEW_PRODUCER="NEW_PRODUCER",t.PRODUCER_TRACK_ENDED="PRODUCER_TRACK_ENDED",t.ROOM_NODE_CONNECTION_ERROR="ROOM_NODE_CONNECTION_ERROR",t.SOCKET_SERVICE_ROOM_JOINED="SOCKET_SERVICE_ROOM_JOINED",t.SOCKET_SERVICE_RECONNECTED="SOCKET_SERVICE_RECONNECTED",t.SOCKET_SERVICE_DISCONNECTED="SOCKET_SERVICE_DISCONNECTED",t.SOCKET_SERVICE_FAILED="SOCKET_SERVICE_FAILED",t.SOCKET_STATE_UPDATE="SOCKET_STATE_UPDATE",t.ROOM_NODE_RECONNECTED="ROOM_NODE_RECONNECTED",t.ROOM_NODE_DISCONNECTED="ROOM_NODE_DISCONNECTED",t.ROOM_NODE_FAILED="ROOM_NODE_FAILED",t.TRANSPORT_STATE_UPDATE="TRANSPORT_STATE_UPDATE",t.PRODUCER_SCORE_UPDATE="PRODUCER_SCORE_UPDATE",t.CONSUMER_SCORE_UPDATE="CONSUMER_SCORE_UPDATE",t.PRODUCER_STATUS_UPDATE="PRODUCER_STATUS_UPDATE",t.CONSUMER_STATUS_UPDATE="CONSUMER_STATUS_UPDATE",t.LOW_PRODUCER_SCORE="LOW_PRODUCER_SCORE",t.LOW_CONSUMER_SCORE="LOW_CONSUMER_SCORE",t.MEDIA_PERMISSION_ERROR="MEDIA_PERMISSION_ERROR",t.MEDIA_PERMISSION_UPDATE="MEDIA_PERMISSION_UPDATE",t.WAITLISTED="WAIT_LISTED",t.MESSAGE="websocket/message",t.ROOM_MESSAGE="websocket/room-message",t.PEER_JOINED_INTERNAL="peer/joined-internal",t.PEER_CLOSED="websocket/peer-closed",t.CONSUMER_CLOSED="websocket/consumer-closed",t.CONSUMER_PAUSED="websocket/consumer-paused",t.CONSUMER_RESUMED="websocket/consumer-resumed",t.PRODUCER_CLOSED="websocket/producer-closed",t.NEW_CONSUMER="websocket/new-consumer",t.PRODUCER_SCORE="websocket/producer-score",t.CONSUMER_SCORE="websocket/consumer-score",t.PRODUCER_TOGGLE="hive/producer-toggle",t.CONSUMER_TOGGLE="hive/consumer-toggle",t.SELECTED_PEERS_DIFF="hive/selected-peers-diff",t.UPDATE_ACTIVE="media/update-active",t.RESET_PRODUCER_STATE="hive/reset-producer-state",t.CF_TRANSPORT_STATE_CHANGED="cf/transport-state-changed",t.CF_ROOM_REJOINING="cf/room-rejoining",t.CF_ROOM_REJOIN_FAILED="cf/room-rejoining-failed",t.CF_ROOM_REJOINED="cf/room-rejoined",t.CF_TRANPSORT_RECONNECTING="cf/transport-reconnecting",t.ROOM_STATE="sockethub/room-state",t.PEER_DISPLAY_NAME_CHANGED="hive/display-name-changed",t.GET_STAGE_REQUESTS="GET_STAGE_REQUESTS",t.UPDATE_STAGE_REQUESTS="UPDATE_STAGE_REQUESTS",t.KICK_PEER="KICK_PEER",t.UPDATE_PEER_STAGE_STATUS="UPDATE_PEER_STAGE_STATUS",t.JOIN_MEDIA_ROOM="JOIN_MEDIA_ROOM",t.LEAVE_MEDIA_ROOM="LEAVE_MEDIA_ROOM",t.PIP_HANGUP="PIP_HANGUP",t.E2EE_ACTIVE_PRODUCER="E2EE_ACTIVE_PRODUCER",t.E2EE_INACTIVE_PRODUCER="E2EE_INACTIVE_PRODUCER",t.E2EE_ACTIVE_CONSUMER="E2EE_ACTIVE_CONSUMER",t.E2EE_INACTIVE_CONSUMER="E2EE_INACTIVE_CONSUMER",t.SOCKET_PEERS="SOCKET_PEERS",t.UPDATE_PERMISSIONS="UPDATE_PERMISSIONS",t.MAX_SPATIAL_LAYER_CHANGE="MAX_SPATIAL_LAYER_CHANGE",t.MUTE_SELF="MUTE_SELF",t.MUTE_SELF_VIDEO="MUTE_SELF_VIDEO",t))(R||{});class Gr extends dt.EventEmitter{constructor(){super(),super.setMaxListeners(25)}emit(e,...i){return super.emit("*",e,...i),super.emit(e,...i)}on(e,i){try{const n=this.listenerCount(e);n>25&&n%25===0&&l.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}})}catch(n){}return super.on(e,i)}addListener(e,i){try{const n=this.listenerCount(e);n>25&&n%25===0&&l.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}})}catch(n){}return super.addListener(e,i)}off(e,i){return super.off(e,i)}once(e,i){return super.once(e,i)}prependListener(e,i){return super.prependListener(e,i)}prependOnceListener(e,i){return super.prependOnceListener(e,i)}removeListener(e,i){return super.removeListener(e,i)}removeAllListeners(e){return super.removeAllListeners(e)}listeners(e){return super.listeners(e)}listenerCount(e){return super.listenerCount(e)}}class Bt extends dt.EventEmitter{constructor(){super(),super.setMaxListeners(25)}emit(e,...i){return super.emit("*",e,...i),super.emit(e,...i)}on(e,i){try{const n=this.listenerCount(e);n>25&&n%25===0&&l.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}})}catch(n){}return super.on(e,i)}addListener(e,i){try{const n=this.listenerCount(e);n>25&&n%25===0&&l.warn("DyteEventEmitter::maxListenersExceeded",{eventListener:{eventName:e.toString(),listenerCount:this.listenerCount(e)}})}catch(n){}return super.addListener(e,i)}off(e,i){return super.off(e,i)}once(e,i){return super.once(e,i)}prependListener(e,i){return super.prependListener(e,i)}prependOnceListener(e,i){return super.prependOnceListener(e,i)}removeListener(e,i){return super.removeListener(e,i)}removeAllListeners(e){return super.removeAllListeners(e)}listeners(e){return super.listeners(e)}listenerCount(e){return super.listenerCount(e)}}function aw(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 Vg=1080,Ug=1920,ow=(t,e,i,n,r,s)=>{let o=.5,c=.5;const d=r,h=s,p=Math.min(i/d,n/h);let g=d*p,y=h*p,E,b,N,M,U=1;return g<i&&(U=i/g),Math.abs(U-1)<1e-14&&y<n&&(U=n/y),g*=U,y*=U,N=d/(g/i),M=h/(y/n),E=(d-N)*o,b=(h-M)*c,E<0&&(E=0),b<0&&(b=0),N>d&&(N=d),M>h&&(M=h),[E,b,N,M,t,e,i,n]};var di,ia,vt,li,je,Ri,hn,Mt,$e,na,ra,pn,sa;const Fg=class extends Bt{constructor(t,e,i,n){super(),f(this,di,void 0),f(this,ia,void 0),f(this,vt,void 0),f(this,li,void 0),f(this,je,{height:Vg,width:Ug}),f(this,Ri,{brand:"#2160FD",background:"#141414",text:"#000000",videoBackground:"#191919",textOnBrand:"#EEEEEE"}),f(this,hn,void 0),f(this,Mt,{}),f(this,$e,void 0),f(this,na,void 0),f(this,ra,void 0),f(this,pn,void 0),f(this,sa,!1),m(this,"cleanupEventListeners",()=>{a(this,ia).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:r})=>{this.updateMediaSession("CAMERA",r)}),m(this,"onSelfAudioUpdateListener",({audioEnabled:r})=>{this.updateMediaSession("MIC",r)}),m(this,"handlePipMediaControls",r=>{r==="ON_STAGE"?this.enablePipMediaControls():this.unmountEvents()}),m(this,"eventCallback",r=>{r==="CAMERA"&&(a(this,$e).videoEnabled?a(this,$e).disableVideo():a(this,$e).enableVideo(),this.emit("cameraToggled")),r==="MIC"&&(a(this,$e).audioEnabled?a(this,$e).disableAudio():a(this,$e).enableAudio(),this.emit("micToggled")),r==="END"&&(P.emit(R.PIP_HANGUP),this.cleanupEventListeners(),this.emit("hangup"),this.cleanup())}),m(this,"unmountEvents",()=>{navigator.mediaSession===void 0||navigator.mediaSession.setCameraActive===void 0||(navigator.mediaSession.setActionHandler("togglemicrophone",void 0),navigator.mediaSession.setActionHandler("togglecamera",void 0))}),m(this,"animate",()=>{if(!this.isActive&&a(this,pn)==="active"){this.disable(!0);return}a(this,Mt)!==void 0&&this.paintCanvas(),a(this,hn)!==void 0&&v(this,hn,requestAnimationFrame(()=>this.animate()))}),m(this,"disable",(r=!1)=>{v(this,pn,"idle"),this.cleanupEventListeners(),cancelAnimationFrame(a(this,hn)),r!==!0&&document.body.removeChild(a(this,vt)),v(this,hn,void 0),document.pictureInPictureElement&&document.exitPictureInPicture()}),v(this,ia,t),v(this,pn,"idle"),v(this,$e,e),v(this,Ri,{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),n&&this.setupIcon("handRaise",n)}static _init(t,e){return u(this,null,function*(){let i,n;try{i=yield Oc(Y_),n=yield Oc(Q_)}catch(r){}return new Fg(t,e,i,n)})}setupIcon(t,e){return u(this,null,function*(){switch(t){case"handRaise":v(this,ra,e);break;case"pin":v(this,na,e);break}})}overrideIcon(t,e){return u(this,null,function*(){switch(t){case"handRaise":v(this,ra,yield Oc(e));break;case"pin":v(this,na,yield Oc(e));break}})}constructImage(t){const e=new Image,i=new Blob([t],{type:"image/svg+xml"}),n=window.URL.createObjectURL(i);return new Promise(r=>{e.onload=()=>{r(e),window.URL.revokeObjectURL(n)},e.src=n})}createVideoContainer(){v(this,vt,document.createElement("div")),a(this,vt).style.width="0.1px",a(this,vt).style.height="0.1px",a(this,vt).style.overflow="hidden",a(this,vt).style.position="absolute",a(this,vt).style.bottom="0",a(this,vt).style.right="0",a(this,vt).style.opacity="0",a(this,vt).appendChild(a(this,li))}setupEventListeners(){a(this,ia).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,di,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,n){if(a(this,di)===void 0)return;const r=a(this,di).getContext("2d"),s=a(this,di).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,E=g*(h+o)+o,{displayText:b,image:N}=n!=null?n:{};r.fillStyle=b||N?a(this,Ri).videoBackground:a(this,Ri).background,r.strokeStyle=a(this,Ri).brand,r.beginPath(),r.moveTo(y+c,E),r.arcTo(y+d,E,y+d,E+c,c),r.arcTo(y+d,E+h,y+d-c,E+h,c),r.arcTo(y,E+h,y,E+h-c,c),r.arcTo(y,E,y+c,E,c),r.closePath(),r.fill(),r.stroke();const M=d/6,U=d/2+y,$=h/2+E;r.save(),(b||N)&&(r.beginPath(),r.arc(U,$,M,0,Math.PI*2),r.fillStyle=a(this,Ri).brand,r.fill(),N?(r.clip(),r.drawImage(N,U-M,$-M,M*2,M*2),r.restore()):b&&(r.fillStyle=a(this,Ri).textOnBrand,r.font=`${M/2}px sans-serif`,r.textAlign="center",r.textBaseline="middle",r.fillText(b,U,$)),this.drawIcons(n,y,E,Math.max(d,h)))}drawIcons(t,e,i,n){const r=Math.min(Math.max(n*.15,100),200),s=r*.2,o=r*.2;let c=e+s;const d=i+s,h=p=>{const g=a(this,di).getContext("2d");g.save(),g.fillStyle=a(this,Ri).background,g.beginPath(),g.moveTo(c+o,d),g.arcTo(c+r,d,c+r,d+o,o),g.arcTo(c+r,d+r,c+r-o,d+r,o),g.arcTo(c,d+r,c,d+r-o,o),g.arcTo(c,d,c+o,d,o),g.closePath(),g.fill(),typeof p=="string"?(g.font=`${r/1.5}px sans-serif`,g.fillStyle=a(this,Ri).text,g.textAlign="center",g.textBaseline="top",g.fillText(p,r/2+c,d+s)):g.drawImage(p,c+s,d+s,r-s*2,r-s*2),c+=r+s,g.restore()};t.pinned&&h(a(this,na)),t.handRaised&&h(a(this,ra))}drawTile(t,e,i){var n,r;if(a(this,di)===void 0)return;const s=a(this,di).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((n=o[d])!=null&&n.enabled){const p=o[d].element,[g,y,E,b,N,M,U,$]=ow(h,c,t,e,p.videoWidth,p.videoHeight);(r=p==null?void 0:p.classList)!=null&&r.contains("mirror")?(s.save(),s.scale(-1,1),s.drawImage(p,g,y,E,b,-1*N,M,-1*U,$),s.restore()):s.drawImage(p,g,y,E,b,N,M,U,$),this.drawIcons(o[d],N,M,Math.max(U,$))}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,sa,!1),this.isSupported()&&document.exitPictureInPicture!==void 0&&document.pictureInPictureElement!==null&&document.exitPictureInPicture(),a(this,vt))try{document.body.removeChild(a(this,vt))}catch(t){}this.removeAllSources(),v(this,di,void 0),v(this,li,void 0),v(this,hn,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,sa))return;v(this,sa,!0),this.createCanvas(),this.setupMediaSessionEvents();const i=document.createElement("video");v(this,je,{height:t!=null?t:Vg,width:e!=null?e:Ug}),i.height=a(this,je).height,i.width=a(this,je).width,i.autoplay=!0,i.muted=!0,i.srcObject=a(this,di).captureStream(24),v(this,li,i),a(this,li).onloadedmetadata=()=>{try{this.emit("pipStarted"),a(this,li).onleavepictureinpicture=()=>{this.emit("pipEnded")}}catch(n){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 n=yield(yield fetch(e)).blob(),r=window.URL.createObjectURL(n);i.onload=()=>{this.updateSource(t,{image:i}),window.URL.revokeObjectURL(r)},i.src=r}catch(n){l.error("DytePip::GenerateAvatar",{error:n})}})}addSource(t,e,i,n=!1,r=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:n,displayText:r?aw(r):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]=x(x({},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,pn,"activating"),this.setupEventListeners(),this.updateMediaSession("CAMERA",a(this,$e).videoEnabled),this.updateMediaSession("MIC",a(this,$e).audioEnabled),document.body.appendChild(a(this,vt)),v(this,hn,requestAnimationFrame(()=>this.animate())),a(this,li).onloadedmetadata=()=>{a(this,li).requestPictureInPicture().then(()=>{v(this,pn,"active")})},a(this,li).readyState===4&&a(this,li).requestPictureInPicture().then(()=>{v(this,pn,"active")})}};let cw=Fg;di=new WeakMap,ia=new WeakMap,vt=new WeakMap,li=new WeakMap,je=new WeakMap,Ri=new WeakMap,hn=new WeakMap,Mt=new WeakMap,$e=new WeakMap,na=new WeakMap,ra=new WeakMap,pn=new WeakMap,sa=new WeakMap;var Gi;(function(t){t[t.PUBLISHER=0]="PUBLISHER",t[t.SUBSCRIBER=1]="SUBSCRIBER"})(Gi||(Gi={}));var Mi;(function(t){t[t.AUDIO=0]="AUDIO",t[t.VIDEO=1]="VIDEO"})(Mi||(Mi={}));class dw extends T{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 Bg=new dw;class lw extends T{constructor(){super("media.HeaderExtension",[{no:1,name:"direction",kind:"scalar",opt:!0,T:9},{no:2,name:"uri",kind:"scalar",T:9}])}}const uw=new lw;class hw extends T{constructor(){super("media.Fingerprint",[{no:1,name:"algorithm",kind:"scalar",T:9},{no:2,name:"value",kind:"scalar",T:9}])}}new hw;class pw extends T{constructor(){super("media.SessionDescription",[{no:1,name:"target",kind:"enum",T:()=>["media.Target",Gi]},{no:2,name:"type",kind:"scalar",T:9},{no:3,name:"sdp",kind:"scalar",T:9}])}}const ui=new pw;class mw extends T{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 gw=new mw;class fw extends T{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:()=>ui},{no:4,name:"private_ice",kind:"scalar",opt:!0,T:8},{no:5,name:"producers",kind:"message",repeat:1,T:()=>gw}])}}const vw=new fw;class yw extends T{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 Sw=new yw;class Tw extends T{constructor(){super("media.CreateTransportResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>ui},{no:3,name:"transcription_enabled",kind:"scalar",opt:!0,T:8},{no:4,name:"producer_ids",kind:"scalar",repeat:2,T:9}])}}const Wg=new Tw;class Ew extends T{constructor(){super("media.RenegotiateRequest",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>ui}])}}const kw=new Ew;class bw extends T{constructor(){super("media.RenegotiateResponse",[{no:1,name:"transport_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>ui}])}}new bw;class _w extends T{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 ww=new _w;class Iw extends T{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 Cw=new Iw;class Pw extends T{constructor(){super("media.ProducerEntry",[{no:1,name:"producing_transport_id",kind:"scalar",T:9},{no:2,name:"producer_id",kind:"scalar",T:9}])}}new Pw;class Rw extends T{constructor(){super("media.ConsumerEntry",[{no:1,name:"consuming_transport_id",kind:"scalar",T:9},{no:2,name:"consumer_id",kind:"scalar",T:9}])}}new Rw;class Mw extends T{constructor(){super("media.ProducerState",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"kind",kind:"enum",T:()=>["media.ProducerKind",Mi]},{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:()=>Bg}])}}const aa=new Mw;class Aw extends T{constructor(){super("media.ConsumerState",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>aa},{no:3,name:"producer_track",kind:"message",T:()=>Cw},{no:4,name:"error_code",kind:"scalar",opt:!0,T:9}])}}const Dw=new Aw;class Ow extends T{constructor(){super("media.ProducerIdToConsumerMap",[{no:1,name:"map",kind:"map",K:9,V:{kind:"message",T:()=>Dw}}])}}const jg=new Ow;class Nw extends T{constructor(){super("media.PeerRtpCapabilitites",[{no:1,name:"sender",kind:"message",T:()=>qg},{no:2,name:"receiver",kind:"message",T:()=>qg}])}}const Hg=new Nw;class Lw extends T{constructor(){super("media.RtpCapability",[{no:1,name:"codecs",kind:"message",repeat:1,T:()=>Bg},{no:2,name:"header_extensions",kind:"message",repeat:1,T:()=>uw}])}}const Gg=new Lw;class xw extends T{constructor(){super("media.RtpCapabilitites",[{no:1,name:"audio",kind:"message",T:()=>Gg},{no:2,name:"video",kind:"message",T:()=>Gg}])}}const qg=new xw;class Vw extends T{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 Uw=new Vw;class Fw extends T{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 $g=new Fw;class Bw extends T{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 Ww=new Bw;class jw extends T{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:()=>Ww},{no:9,name:"capabilities",kind:"message",T:()=>Hg}])}}const Hw=new jw;class Gw extends T{constructor(){super("media.edge.PeerJoinCompleteRequest",[])}}const qw=new Gw;class $w extends T{constructor(){super("media.edge.PeerLeaveRequest",[{no:1,name:"close_room",kind:"scalar",T:8}])}}const Jw=new $w;class Kw extends T{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 Kw;class zw extends T{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:()=>Uw},{no:5,name:"producing_transport_id",kind:"scalar",opt:!0,T:9},{no:6,name:"simulcast",kind:"message",T:()=>$g}])}}const Yw=new zw;class Qw extends T{constructor(){super("media.edge.ConsumePeersRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>Yw},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const Xw=new Qw;class Zw extends T{constructor(){super("media.edge.UpdateConsumerSimulcastConfigRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"simulcast",kind:"message",T:()=>$g},{no:3,name:"producing_transport_id",kind:"scalar",T:9},{no:4,name:"mid",kind:"scalar",T:9}])}}const eI=new Zw;class tI extends T{constructor(){super("media.edge.UpdateConsumersSimulcastConfigRequest",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>eI},{no:2,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const iI=new tI;class nI extends T{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:()=>ui},{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 rI=new nI;class sI extends T{constructor(){super("media.edge.SelectedPeersRequest",[])}}new sI;class aI extends T{constructor(){super("media.edge.GlobalPeerPinningRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const oI=new aI;class cI extends T{constructor(){super("media.edge.ProducerToggleRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"pause",kind:"scalar",T:8}])}}const xc=new cI;class dI extends T{constructor(){super("media.edge.ConsumerToggleRequest",[{no:1,name:"consumer_id",kind:"scalar",T:9},{no:2,name:"pause",kind:"scalar",T:8}])}}new dI;class lI extends T{constructor(){super("media.edge.ProducerCloseRequest",[{no:1,name:"producer_id",kind:"scalar",T:9},{no:2,name:"description",kind:"message",T:()=>ui},{no:3,name:"producing_transport_id",kind:"scalar",opt:!0,T:9}])}}const uI=new lI;class hI extends T{constructor(){super("media.edge.ConsumerCloseRequest",[{no:1,name:"consumer_ids",kind:"scalar",repeat:2,T:9},{no:2,name:"description",kind:"message",T:()=>ui},{no:3,name:"consuming_transport_id",kind:"scalar",opt:!0,T:9}])}}const pI=new hI;class mI extends T{constructor(){super("media.edge.KickPeerRequest",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new mI;class gI extends T{constructor(){super("media.edge.KickAllPeersRequest",[{no:1,name:"propagate_kick_across_rooms",kind:"scalar",T:8}])}}const Jg=new gI;class fI extends T{constructor(){super("media.edge.PeerDisplayNameEditRequest",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",T:9}])}}const vI=new fI;class yI extends T{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 SI=new yI;class TI extends T{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 EI=new TI;class kI extends T{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 bI=new kI;class _I extends T{constructor(){super("media.edge.ErrorResponse",[{no:1,name:"error_message",kind:"scalar",T:9},{no:2,name:"event_id",kind:"scalar",T:5}])}}const wI=new _I;class II extends T{constructor(){super("media.edge.EmptyResponse",[])}}new II;class CI extends T{constructor(){super("media.edge.RoomParticipants",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"producer_states",kind:"message",repeat:1,T:()=>aa},{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:()=>Hg}])}}const Kg=new CI;class PI extends T{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 tu=new PI;class RI extends T{constructor(){super("media.edge.SelectedPeersDiffEntry",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"priority",kind:"scalar",T:5}])}}const MI=new RI;class AI extends T{constructor(){super("media.edge.SelectedPeersDiffResponse",[{no:1,name:"entries",kind:"message",repeat:1,T:()=>MI}])}}const zg=new AI;class DI extends T{constructor(){super("media.edge.PeerJoinResponse",[])}}new DI;class OI extends T{constructor(){super("media.edge.PeerJoinCompleteResponse",[{no:1,name:"room_state",kind:"message",T:()=>bI},{no:2,name:"participants",kind:"message",repeat:1,T:()=>Kg},{no:3,name:"selected_peers",kind:"message",T:()=>tu},{no:4,name:"max_preferred_streams",kind:"scalar",T:5}])}}const iu=new OI;class NI extends T{constructor(){super("media.edge.PeerLeaveResponse",[{no:1,name:"closed",kind:"scalar",T:8}])}}const LI=new NI;class xI extends T{constructor(){super("media.edge.ConsumeMultipleProducerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>jg}])}}new xI;class VI extends T{constructor(){super("media.edge.ConsumePeerResponse",[{no:1,name:"status",kind:"scalar",T:8},{no:2,name:"consumer_ids_map",kind:"message",T:()=>jg},{no:3,name:"description",kind:"message",T:()=>ui}])}}const UI=new VI;class FI extends T{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:()=>ui}])}}const BI=new FI;class WI extends T{constructor(){super("media.edge.ProducerScoreResponse",[{no:1,name:"responseid",kind:"scalar",T:9},{no:2,name:"score",kind:"message",T:()=>ww}])}}new WI;class jI extends T{constructor(){super("media.edge.ActiveSpeakerResponse",[{no:1,name:"responsepeer_id",kind:"scalar",T:9},{no:2,name:"volume",kind:"scalar",T:5}])}}new jI;class HI extends T{constructor(){super("media.edge.NoActiveSpeakerResponse",[])}}new HI;class GI extends T{constructor(){super("media.edge.ProducerToggleResponse",[])}}new GI;class qI extends T{constructor(){super("media.edge.ConsumerToggleResponse",[])}}new qI;class $I extends T{constructor(){super("media.edge.ProducerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>ui}])}}const JI=new $I;class KI extends T{constructor(){super("media.edge.ConsumerClosingResponse",[{no:1,name:"description",kind:"message",T:()=>ui}])}}const zI=new KI;class YI extends T{constructor(){super("media.edge.GlobalPeerPinningResponse",[])}}new YI;class QI extends T{constructor(){super("media.edge.KickPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new QI;class XI extends T{constructor(){super("media.edge.KickAllPeersResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}new XI;class ZI extends T{constructor(){super("media.edge.HostMediaControlForPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const eC=new ZI;class tC extends T{constructor(){super("media.edge.HostMediaControlForAllPeerResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const iC=new tC;class nC extends T{constructor(){super("media.edge.PeerDisplayNameEditResponse",[{no:1,name:"status",kind:"scalar",T:9}])}}const rC=new nC;class sC extends T{constructor(){super("media.edge.PeerJoinBroadcastResponse",[{no:1,name:"participant",kind:"message",T:()=>Kg}])}}const Yg=new sC;class aC extends T{constructor(){super("media.edge.TrackSubscriptionKind",[{no:1,name:"audio",kind:"scalar",T:8},{no:2,name:"video",kind:"scalar",T:8}])}}const Qg=new aC;class oC extends T{constructor(){super("media.edge.TrackSubscription",[{no:1,name:"label",kind:"scalar",T:9},{no:2,name:"webcam",kind:"message",T:()=>Qg},{no:3,name:"screenshare",kind:"message",T:()=>Qg}])}}const cC=new oC;class dC extends T{constructor(){super("media.edge.PeerProducingTransportCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"transport_details",kind:"message",T:()=>Wg},{no:3,name:"track_subscriptions",kind:"message",repeat:1,T:()=>cC}])}}new dC;class lC extends T{constructor(){super("media.edge.PeerProducerCreateBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>aa}])}}const uC=new lC;class hC extends T{constructor(){super("media.edge.PeerProducerToggleBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>aa},{no:3,name:"initiator_participant_id",kind:"scalar",opt:!0,T:9}])}}const Xg=new hC;class pC extends T{constructor(){super("media.edge.PeerProducerCloseBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"producer_state",kind:"message",T:()=>aa}])}}const mC=new pC;class gC extends T{constructor(){super("media.edge.PeerLeaveBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const nu=new gC;class fC extends T{constructor(){super("media.edge.GlobalPeerPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}const Zg=new fC;class vC extends T{constructor(){super("media.edge.GlobalPeerUnPinningBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new vC;class yC extends T{constructor(){super("media.edge.RecordingStartedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new yC;class SC extends T{constructor(){super("media.edge.RecordingStoppedBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9}])}}new SC;class TC extends T{constructor(){super("media.edge.PeerDisplayNameEditBroadcastResponse",[{no:1,name:"participant_id",kind:"scalar",T:9},{no:2,name:"display_name",kind:"scalar",T:9}])}}new TC;class EC extends T{constructor(){super("media.edge.PeerPingRequestBroadcastResponse",[{no:1,name:"password",kind:"scalar",T:9}])}}new EC;class kC extends T{constructor(){super("media.edge.MediaRoomTerminationBroadcastResponse",[{no:1,name:"reason",kind:"scalar",T:9}])}}new kC;class bC extends T{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 ru=new bC;class _C extends T{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 _C;class wC extends T{constructor(){super("socket.api.ErrorMessage",[{no:1,name:"code",kind:"scalar",opt:!0,T:5},{no:2,name:"message",kind:"scalar",T:9}])}}const IC=new wC;var Xn;(function(t){t[t.BROWSER=0]="BROWSER",t[t.TRACK=1]="TRACK",t[t.COMPOSITE=2]="COMPOSITE"})(Xn||(Xn={}));var qi;(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"})(qi||(qi={}));var su;(function(t){t[t.NONE=0]="NONE",t[t.RECORDER=1]="RECORDER",t[t.LIVESTREAMER=2]="LIVESTREAMER"})(su||(su={}));var au;(function(t){t[t.PEERS=0]="PEERS",t[t.ROOMS=1]="ROOMS"})(au||(au={}));var Vc;(function(t){t[t.HIVE=0]="HIVE",t[t.CHAT=1]="CHAT",t[t.PING=2]="PING"})(Vc||(Vc={}));class CC extends T{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 PC=new CC;class RC extends T{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",qi,"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:()=>PC}])}}const Uc=new RC;class MC extends T{constructor(){super("socket.room.PeerInfoResponse",[{no:1,name:"peer",kind:"message",T:()=>Uc}])}}const qr=new MC;class AC extends T{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",qi,"STAGE_TYPE_"]}])}}const ef=new AC;class DC extends T{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 OC=new DC;class NC extends T{constructor(){super("socket.room.RoomPeersInfoResponse",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>Uc}])}}const ou=new NC;class LC extends T{constructor(){super("socket.room.RoomPeerCountResponse",[{no:1,name:"count",kind:"scalar",T:4,L:2}])}}const tf=new LC;class xC extends T{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:()=>UC},{no:6,name:"room_uuid",kind:"scalar",opt:!0,T:9}])}}const nf=new xC;class VC extends T{constructor(){super("socket.room.ActiveRecording",[{no:1,name:"recording_id",kind:"scalar",T:9},{no:2,name:"recording_type",kind:"enum",T:()=>["common.RecordingType",Xn]},{no:3,name:"recording_status",kind:"scalar",T:9}])}}const UC=new VC;class FC extends T{constructor(){super("socket.room.RoomInfoResponse",[{no:1,name:"room",kind:"message",T:()=>nf}])}}const rf=new FC;class BC extends T{constructor(){super("socket.room.GetPeerInfoRequest",[{no:1,name:"peer_id",kind:"scalar",T:9}])}}const sf=new BC;class WC extends T{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 WC;class jC extends T{constructor(){super("socket.room.JoinRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>Uc},{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",Vc,"CAPABILITIES_"]},{no:8,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const HC=new jC;class GC extends T{constructor(){super("socket.room.LeaveRoomRequest",[{no:1,name:"peer",kind:"message",T:()=>Uc},{no:2,name:"timestamp",kind:"scalar",opt:!0,T:4,L:2}])}}const qC=new GC;class $C extends T{constructor(){super("socket.room.UpdateRoomInfoRequest",[{no:1,name:"room",kind:"message",T:()=>nf}])}}new $C;class JC extends T{constructor(){super("socket.room.GetConnectedRoomsDumpRequest",[])}}new JC;class KC extends T{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 cu=new KC;class zC extends T{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 YC=new zC;class QC extends T{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:()=>YC}])}}const af=new QC;class XC extends T{constructor(){super("socket.room.GetConnectedRoomsDumpResponse",[{no:1,name:"parent_meeting",kind:"message",T:()=>af},{no:2,name:"meetings",kind:"message",repeat:1,T:()=>af}])}}const ZC=new XC;class eP extends T{constructor(){super("socket.room.CreateRoomRequestPayload",[{no:1,name:"title",kind:"scalar",opt:!0,T:9}])}}const tP=new eP;class iP extends T{constructor(){super("socket.room.CreateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>tP}])}}const nP=new iP;class rP extends T{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:()=>cu}])}}const sP=new rP;class aP extends T{constructor(){super("socket.room.CreateConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>sP}])}}const of=new aP;class oP extends T{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 cP=new oP;class dP extends T{constructor(){super("socket.room.UpdateConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>cP}])}}new dP;class lP extends T{constructor(){super("socket.room.DisableRoomPayload",[{no:1,name:"id",kind:"scalar",opt:!0,T:9}])}}const uP=new lP;class hP extends T{constructor(){super("socket.room.DisableConnectedRoomsRequest",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>uP}])}}const pP=new hP;class mP extends T{constructor(){super("socket.room.DisableConnectedRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>vP}])}}const gP=new mP;class fP extends T{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:()=>cu}])}}const vP=new fP;class yP extends T{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 SP=new yP;class TP extends T{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:()=>SP}])}}const EP=new TP;class kP extends T{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:()=>cu}])}}const cf=new kP;class bP extends T{constructor(){super("socket.room.MovePeersBetweenRoomsResponse",[{no:1,name:"payloads",kind:"message",repeat:1,T:()=>cf}])}}new bP;class _P extends T{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 wP=new _P;class IP extends T{constructor(){super("socket.room.GetAllAddedParticipantsResponse",[{no:1,name:"participants",kind:"message",repeat:1,T:()=>RP}])}}const CP=new IP;class PP extends T{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 RP=new PP;class MP extends T{constructor(){super("socket.room.RemoveParticipantsRequest",[{no:1,name:"peer_ids",kind:"scalar",repeat:2,T:9}])}}const df=new MP;class AP extends T{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",au,"BROADCAST_TYPE_"]}])}}const oa=new AP;class DP extends T{constructor(){super("socket.room.AcceptWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const OP=new DP;class NP extends T{constructor(){super("socket.room.DenyWaitingRoomRequests",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const LP=new NP;class xP extends T{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 VP=new xP;class UP extends T{constructor(){super("socket.room.GetWaitingRoomRequests",[{no:1,name:"requests",kind:"message",repeat:1,T:()=>VP}])}}const lf=new UP;class FP extends T{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 uf=new FP;var du;(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"})(du||(du={}));var mn;(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"})(mn||(mn={}));class BP extends T{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 WP=new BP;class jP extends T{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 HP=new jP;class GP extends T{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 qP=new GP;class $P extends T{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 JP=new $P;class KP extends T{constructor(){super("socket.preset.ChatPermissionUpdate",[{no:1,name:"public",kind:"message",T:()=>qP},{no:2,name:"private",kind:"message",T:()=>JP}])}}const zP=new KP;class YP extends T{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 QP=new YP;class XP extends T{constructor(){super("socket.preset.StreamPermission",[{no:1,name:"can_produce",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",mn,"STREAM_PERMISSION_TYPE_"]},{no:2,name:"can_consume",kind:"enum",opt:!0,T:()=>["socket.preset.StreamPermissionType",mn,"STREAM_PERMISSION_TYPE_"]}])}}const lu=new XP;class ZP extends T{constructor(){super("socket.preset.MediaPermissionUpdate",[{no:1,name:"video",kind:"message",T:()=>lu},{no:2,name:"audio",kind:"message",T:()=>lu},{no:3,name:"screenshare",kind:"message",T:()=>lu}])}}const eR=new ZP;class tR extends T{constructor(){super("socket.preset.PresetUpdates",[{no:1,name:"polls",kind:"message",T:()=>WP},{no:2,name:"plugins",kind:"message",T:()=>HP},{no:3,name:"chat",kind:"message",T:()=>zP},{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",du,"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",su,"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:()=>QP},{no:23,name:"media",kind:"message",T:()=>eR}])}}const uu=new tR;class iR extends T{constructor(){super("socket.preset.ReadPeersPresetRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const nR=new iR;class rR extends T{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 sR=new rR;class aR extends T{constructor(){super("socket.preset.ReadPeersPresetResponse",[{no:1,name:"peer_presets",kind:"message",repeat:1,T:()=>sR}])}}const oR=new aR;class cR extends T{constructor(){super("socket.preset.UpdatePeerPreset",[{no:1,name:"user_ids",kind:"scalar",T:9},{no:2,name:"patch",kind:"message",T:()=>uu}])}}const hf=new cR;class dR extends T{constructor(){super("socket.preset.UpdatePeersPresetRequest",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>hf}])}}const lR=new dR;class uR extends T{constructor(){super("socket.preset.UpdatePeersPresetResponse",[{no:1,name:"update_peers_presets",kind:"message",repeat:1,T:()=>hf}])}}const pf=new uR;class hR extends T{constructor(){super("socket.preset.PeerUserIDMap",[{no:1,name:"peer_id",kind:"scalar",T:9},{no:2,name:"user_id",kind:"scalar",T:9}])}}const pR=new hR;class mR extends T{constructor(){super("socket.preset.BulkUpdatePeerPresetRequest",[{no:1,name:"peers",kind:"message",repeat:1,T:()=>pR},{no:2,name:"patch",kind:"message",T:()=>uu}])}}new mR;class gR extends T{constructor(){super("socket.preset.BulkUpdatePeerPresetResponse",[{no:2,name:"patch",kind:"message",T:()=>uu}])}}new gR;class fR extends T{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 Zn=new fR;class vR extends T{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 yR=new vR;class SR extends T{constructor(){super("socket.chat.GetPaginatedChatMessageRoomResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>Zn},{no:2,name:"next",kind:"scalar",T:8}])}}const TR=new SR;class ER extends T{constructor(){super("socket.chat.GetChatMessagesResponse",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>Zn}])}}const mf=new ER;class kR extends T{constructor(){super("socket.chat.SendChatMessageToRoomRequest",[{no:1,name:"payload_type",kind:"scalar",T:5},{no:2,name:"payload",kind:"scalar",T:9}])}}const bR=new kR;class _R extends T{constructor(){super("socket.chat.SendChatMessageToRoomResponse",[{no:1,name:"message",kind:"message",T:()=>Zn}])}}const hu=new _R;class wR extends T{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 IR=new wR;class CR extends T{constructor(){super("socket.chat.SendChatMessageToPeersResponse",[{no:1,name:"message",kind:"message",T:()=>Zn}])}}const pu=new CR;class PR extends T{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 RR=new PR;class MR extends T{constructor(){super("socket.chat.SendChatMessageToChannelResponse",[{no:1,name:"message",kind:"message",T:()=>Zn}])}}new MR;class AR extends T{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 DR=new AR;class OR extends T{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 NR=new OR;class LR extends T{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 Fc=new LR;class xR extends T{constructor(){super("socket.chat.EditChatMessageResponse",[{no:1,name:"message",kind:"message",T:()=>Zn}])}}const Bc=new xR;class VR extends T{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 UR=new VR;class FR extends T{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 Wc=new FR;class BR extends T{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 WR=new BR;class jR extends T{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 HR=new jR;class GR extends T{constructor(){super("socket.chat.MarkChannelIndexAsReadResponse",[{no:1,name:"channel_index",kind:"scalar",T:9}])}}const qR=new GR;class $R extends T{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 JR=new $R;class KR extends T{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 zR=new KR;class YR extends T{constructor(){super("socket.chat.CreateChatChannelResponse",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}new YR;class QR extends T{constructor(){super("socket.chat.GetChatChannelRequest",[{no:1,name:"chat_channel_id",kind:"scalar",T:9}])}}const XR=new QR;class ZR extends T{constructor(){super("socket.chat.LatestMessageAndUnreadCount",[{no:1,name:"message",kind:"message",T:()=>Zn},{no:2,name:"unread_count",kind:"scalar",T:4,L:2}])}}const eM=new ZR;class tM extends T{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:()=>eM},{no:7,name:"target_user_ids",kind:"scalar",repeat:2,T:9}])}}const iM=new tM;class nM extends T{constructor(){super("socket.chat.GetChatChannelResponse",[{no:1,name:"chat_channels",kind:"message",repeat:1,T:()=>iM}])}}const $i=new nM;class rM extends T{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 sM=new rM;class aM extends T{constructor(){super("socket.chat.GetChatChannelMembersResponse",[{no:1,name:"channel_members",kind:"message",repeat:1,T:()=>sM}])}}const oM=new aM;class cM extends T{constructor(){super("socket.plugin.AddPluginRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"staggered",kind:"scalar",T:8}])}}const dM=new cM;class lM extends T{constructor(){super("socket.plugin.RemovePluginRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"staggered",kind:"scalar",T:8}])}}const uM=new lM;class hM extends T{constructor(){super("socket.plugin.EnablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const pM=new hM;class mM extends T{constructor(){super("socket.plugin.DisablePluginForRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9}])}}const gM=new mM;class fM extends T{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 vM=new fM;class yM extends T{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 SM=new yM;class TM extends T{constructor(){super("socket.plugin.PluginEventToRoomRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"plugin_data",kind:"scalar",T:12}])}}const EM=new TM;class kM extends T{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 bM=new kM;class _M extends T{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 mu=new _M;class wM extends T{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:()=>mu}])}}const gf=new wM;class IM extends T{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:()=>mu}])}}const CM=new IM;class PM extends T{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:()=>mu}])}}const RM=new PM;class MM extends T{constructor(){super("socket.plugin.PluginStoreDeleteRequest",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"store_name",kind:"scalar",T:9}])}}const AM=new MM;class DM extends T{constructor(){super("socket.plugin.EnablePluginResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"enabled_by",kind:"scalar",T:9}])}}const gu=new DM;class OM extends T{constructor(){super("socket.plugin.EnablePluginsResponse",[{no:1,name:"plugins",kind:"message",repeat:1,T:()=>gu}])}}const NM=new OM;class LM extends T{constructor(){super("socket.plugin.DisablePluginResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"disabled_by",kind:"scalar",T:9}])}}const ff=new LM;class xM extends T{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 VM=new xM;class UM extends T{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:()=>VM}])}}const vf=new UM;class FM extends T{constructor(){super("socket.plugin.PluginEventResponse",[{no:1,name:"plugin_id",kind:"scalar",T:9},{no:2,name:"plugin_data",kind:"scalar",T:12}])}}const yf=new FM;class BM extends T{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 Sf=new BM;class WM extends T{constructor(){super("socket.livestreaming.GetStagePeersResponse",[{no:1,name:"stage_peers",kind:"scalar",repeat:2,T:9}])}}const Tf=new WM;class jM extends T{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 HM=new jM;class GM extends T{constructor(){super("socket.livestreaming.GetStageRequestsResponse",[{no:1,name:"stage_requests",kind:"message",repeat:1,T:()=>HM}])}}const fu=new GM;class qM extends T{constructor(){super("socket.livestreaming.GrantStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const $M=new qM;class JM extends T{constructor(){super("socket.livestreaming.DenyStageAccessRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const KM=new JM;class zM extends T{constructor(){super("socket.livestreaming.LeaveStageRequest",[{no:1,name:"user_ids",kind:"scalar",repeat:2,T:9}])}}const Ef=new zM;class YM extends T{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:()=>XM},{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 kf=new YM;class QM extends T{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:()=>eA}])}}const XM=new QM;class ZM extends T{constructor(){super("socket.polls.PollVote",[{no:1,name:"user_id",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9}])}}const eA=new ZM;class tA extends T{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 iA=new tA;class nA extends T{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 rA=new nA;class sA extends T{constructor(){super("socket.polls.UpdatePollResponse",[{no:1,name:"poll",kind:"message",T:()=>kf}])}}const vu=new sA;class aA extends T{constructor(){super("socket.polls.GetPollsResponse",[{no:1,name:"polls",kind:"message",repeat:1,T:()=>kf}])}}const oA=new aA;class cA extends T{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",Xn]}])}}const bf=new cA;class dA extends T{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=Ee.from(Math.floor(i/1e3)).toBigInt(),e.nanos=i%1e3*1e6,e}toDate(e){return new Date(Ee.from(e.seconds).toNumber()*1e3+Math.ceil(e.nanos/1e6))}fromDate(e){const i=this.create(),n=e.getTime();return i.seconds=Ee.from(Math.floor(n/1e3)).toBigInt(),i.nanos=n%1e3*1e6,i}internalJsonWrite(e,i){let n=Ee.from(e.seconds).toNumber()*1e3;if(n<Date.parse("0001-01-01T00:00:00Z")||n>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 r="Z";if(e.nanos>0){let s=(e.nanos+1e9).toString().substring(1);s.substring(3)==="000000"?r="."+s.substring(0,3)+"Z":s.substring(6)==="000"?r="."+s.substring(0,6)+"Z":r="."+s+"Z"}return new Date(n).toISOString().replace(".000Z",r)}internalJsonRead(e,i,n){if(typeof e!="string")throw new Error("Unable to parse Timestamp from JSON "+Tl(e)+".");let r=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(!r)throw new Error("Unable to parse Timestamp from JSON. Invalid format.");let s=Date.parse(r[1]+"-"+r[2]+"-"+r[3]+"T"+r[4]+":"+r[5]+":"+r[6]+(r[8]?r[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 n||(n=this.create()),n.seconds=Ee.from(s/1e3).toBigInt(),n.nanos=0,r[7]&&(n.nanos=parseInt("1"+r[7]+"0".repeat(9-r[7].length))-1e9),n}}new dA;class lA extends T{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 yu=new lA;class uA extends T{constructor(){super("common.BulkedHubMessage",[{no:1,name:"messages",kind:"message",repeat:1,T:()=>yu}])}}new uA;class hA extends T{constructor(){super("common.CFWorkersResponse",[{no:1,name:"responses",kind:"message",repeat:1,T:()=>yu},{no:2,name:"broadcast_responses",kind:"message",repeat:1,T:()=>yu}])}}new hA;const pA=0,mA=1,gA=2,fA=3,vA=4,yA=5,SA={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},TA={getMessages:0,sendMessageToRoom:1,sendMessageToPeers:2,editMessage:3,deleteMessage:4,getPaginatedMessages:5,sendMessageToChannel:6,searchChannelMessages:7,getAllChatChannels:8,markChannelIndexAsRead:9,pinMessage:10},EA={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},kA={createPoll:0,getPolls:1,votePoll:2,updatePoll:3},_f={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},bA={createChatChannel:0,getChatChannel:1,deprecatedGetAllChatChannels:2,getChannelMembers:3,updateChatChannel:4},_A={getUserPresets:0,updateUserPreset:1};function $r(t,e){return Object.keys(e).reduce((i,n)=>(i[n]=(t<<16)+e[n],i),{})}function wf(t,e){return Object.keys(t).reduce((i,n)=>(i[n]=e|t[n],i),{})}const W=$r(pA,SA),Oe=$r(mA,TA),z=$r(gA,EA),Ji=$r(fA,kA),er=$r(vA,bA),ei=wf(_f,16777216),hi=wf(_f,50331648),jc=$r(yA,_A);var wA=Object.defineProperty,IA=Object.getOwnPropertyDescriptor,Su=(t,e,i,n)=>{for(var r=n>1?void 0:n?IA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&wA(e,i,r),r},tr,If;const Tu=(If=class{constructor(t){f(this,tr,void 0),v(this,tr,t)}createChannel(t,e,i,n="public",r=!1){return u(this,null,function*(){const s={displayName:t,targetUserIds:e,displayPictureUrl:i,visibility:n,isDirectMessage:r};r&&(s.visibility="private");const o=yield a(this,tr).sendMessagePromise(er.createChatChannel,JR.toBinary(s)),c=$i.fromBinary(o.payload).chatChannels;return Tu.formatChannel(c[0])})}updateChannel(t,e){return u(this,null,function*(){const i=yield a(this,tr).sendMessagePromise(er.updateChatChannel,zR.toBinary({chatChannelId:t,targetUserIds:e.memberIds,displayName:e.displayName,displayPictureUrl:e.displayPictureUrl,visibility:e.visibility})),n=$i.fromBinary(i.payload).chatChannels;return Tu.formatChannel(n[0])})}static formatChannel(t){var e;const{latestMessageAndUnreadCount:i}=t,n=H(x({},t),{id:t.chatChannelId,memberIds:t.targetUserIds,unreadCount:(e=i==null?void 0:i.unreadCount)!=null?e:0});return i!=null&&i.message&&(n.latestMessage=Ki.formatSocketServiceMessage(i.message)),delete n.chatChannelId,delete n.targetUserIds,delete n.latestMessageAndUnreadCount,n}getChannelMembers(t){return u(this,null,function*(){try{const e=yield a(this,tr).sendMessagePromise(er.getChannelMembers,XR.toBinary({chatChannelId:t}));return oM.fromBinary(e.payload).channelMembers.map(i=>{var n=i,{id:r}=n,s=hc(n,["id"]);return H(x({},s),{userId:r})})}catch(e){return[]}})}on(t,e){let i,n;switch(t){case er.createChatChannel:{i=$i.fromBinary.bind($i),n=$i.create();break}case er.updateChatChannel:{i=$i.fromBinary.bind($i),n=$i.create();break}}if(!i){l.warn(`ChatChannelSocketHandler::Event ${t} is not recognized`);return}a(this,tr).on(t,({payload:r})=>{let s=n;try{s=i(r)}catch(o){l.error("ChatChannelSocketHandler::on::binary_decode_error",{error:o})}return e(s)})}},tr=new WeakMap,If);let ir=Tu;Su([S.trace("ChatChannelHandler.createChannel")],ir.prototype,"createChannel",1),Su([S.trace("ChatChannelHandler.updateChannel")],ir.prototype,"updateChannel",1),Su([S.trace("ChatChannelHandler.getChannelMembers")],ir.prototype,"getChannelMembers",1);var CA=Object.defineProperty,PA=Object.getOwnPropertyDescriptor,pi=(t,e,i,n)=>{for(var r=n>1?void 0:n?PA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&CA(e,i,r),r},yt=(t=>(t[t.TEXT=0]="TEXT",t[t.IMAGE=1]="IMAGE",t[t.FILE=2]="FILE",t[t.CUSTOM=3]="CUSTOM",t))(yt||{}),St;class ti{constructor(e){f(this,St,void 0),v(this,St,e)}getChatMessages(){return a(this,St).sendMessagePromise(Oe.getMessages)}getChatMessagesPaginated(e,i,n,r=0,s=""){return u(this,null,function*(){const o={timeStamp:e,size:i,from:r,reversed:n,channelId:s},c=yield a(this,St).sendMessagePromise(Oe.getPaginatedMessages,yR.toBinary(o));return c.payload?TR.fromBinary(c.payload):{messages:[],next:!1}})}sendMessageToRoom(e,i){const n={payloadType:i,payload:e};a(this,St).sendMessage(Oe.sendMessageToRoom,bR.toBinary(n))}sendMessageToPeers(e,i,n){const r={payloadType:i,peerIds:n,payload:e};a(this,St).sendMessage(Oe.sendMessageToPeers,IR.toBinary(r))}sendMessageToChannel(e,i,n){const r={payloadType:i,channelId:n,payload:e};a(this,St).sendMessage(Oe.sendMessageToChannel,RR.toBinary(r))}sendMessage(e,i,n,r){if(r&&this.sendMessageToChannel(e,i,r),n&&n.length>0){this.sendMessageToPeers(e,i,n);return}this.sendMessageToRoom(e,i)}editMessage(e,i,n,r,s){return u(this,null,function*(){const o={chatId:e,payloadType:n,payload:i};r&&(o.channelId=r),s!==void 0&&(o.pinned=s);const c=yield a(this,St).sendMessagePromise(Oe.editMessage,DR.toBinary(o));return Bc.fromBinary(c.payload).message})}deleteMessage(e,i){return u(this,null,function*(){const n={chatId:e};i&&(n.channelId=i);const r=yield a(this,St).sendMessagePromise(Oe.deleteMessage,UR.toBinary(n)),s=Wc.fromBinary(r.payload);return x({id:s.chatId},s.channelId?{channelId:s.channelId}:{})})}searchMessages(e,i){return u(this,null,function*(){var n,r,s;const o={searchTerm:e,timeStamp:(n=i.timestamp)!=null?n:Date.now(),size:(r=i.size)!=null?r:75,from:0,reversed:(s=i.reversed)!=null?s:!0};i.channelId&&(o.channelId=i.channelId);try{const c=yield a(this,St).sendMessagePromise(Oe.searchChannelMessages,WR.toBinary(o));return mf.fromBinary(c.payload).messages}catch(c){return[]}})}getAllChannels(){return u(this,null,function*(){try{const e=yield a(this,St).sendMessagePromise(Oe.getAllChatChannels);return $i.fromBinary(e.payload).chatChannels.map(ir.formatChannel)}catch(e){return[]}})}markLastReadMessage(e,i){return u(this,null,function*(){const n=yield a(this,St).sendMessagePromise(Oe.markChannelIndexAsRead,HR.toBinary({channelId:e,userId:i.userId,channelIndex:i.channelIndex}));return qR.fromBinary(n.payload).channelIndex})}setPinState(e,i){return u(this,null,function*(){const n={chatId:e.id,pinned:i,channelId:e.channelId},r=yield a(this,St).sendMessagePromise(Oe.pinMessage,NR.toBinary(n));return Fc.fromBinary(r.payload)})}on(e,i){let n,r;switch(e){case Oe.sendMessageToRoom:{n=hu.fromBinary.bind(hu),r=hu.create();break}case Oe.sendMessageToPeers:{n=pu.fromBinary.bind(pu),r=pu.create();break}case Oe.editMessage:{n=Bc.fromBinary.bind(Bc),r=Bc.create();break}case Oe.pinMessage:{n=Fc.fromBinary.bind(Fc),r=Fc.create();break}case Oe.deleteMessage:{n=Wc.fromBinary.bind(Wc),r=Wc.create();break}}if(!n){l.warn(`ChatSocketHandler::Event ${e} is not recognized`);return}a(this,St).on(e,({payload:s})=>{let o=r;try{o=n(s)}catch(c){l.error("chatSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}}St=new WeakMap,pi([S.trace("SocketService.getChatMessages")],ti.prototype,"getChatMessages",1),pi([S.trace("SocketService.getChatMessagesPaginated")],ti.prototype,"getChatMessagesPaginated",1),pi([S.trace("SocketService.sendMessageToRoom")],ti.prototype,"sendMessageToRoom",1),pi([S.trace("SocketService.sendMessageToPeers")],ti.prototype,"sendMessageToPeers",1),pi([S.trace("SocketService.sendMessageToChannel")],ti.prototype,"sendMessageToChannel",1),pi([S.trace("SocketService.sendMessage")],ti.prototype,"sendMessage",1),pi([S.trace("SocketService.editMessage")],ti.prototype,"editMessage",1),pi([S.trace("SocketService.deleteMessage")],ti.prototype,"deleteMessage",1),pi([S.trace("SocketService.searchMessages")],ti.prototype,"searchMessages",1),pi([S.trace("SocketService.getAllChannels")],ti.prototype,"getAllChannels",1),pi([S.trace("SocketService.markLastReadMessage")],ti.prototype,"markLastReadMessage",1);function RA(t){return t.replace(/([-_]\w)/g,e=>e[1].toUpperCase())}function mi(t){if(!t||typeof t!="object")return t;if(Array.isArray(t))return t.map(i=>mi(i));const e={};return Object.keys(t).forEach(i=>{const n=yl(i)?i:RA(i);e[n]=mi(t[i])}),e}function MA(t){return t.replace(/[A-Z]/g,e=>`_${e.toLowerCase()}`)}function Cf(t){if(!t||typeof t!="object")return t;if(Array.isArray(t))return t.map(i=>Cf(i));const e={};return Object.keys(t).forEach(i=>{const n=yl(i)?i:MA(i);e[n]=t[i]}),e}function Hc(t,e={}){return t==null?{}:(Object.getOwnPropertyNames(t).forEach(i=>{if(typeof t[i]!="function"){if(typeof t[i]=="object"){Hc(t[i],e[i]={});return}e[i]=t[i]}}),e)}class Pf{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:n}=this.defaults,r=e.startsWith("http")?e:`${n}${e.startsWith("/")?e:`/${e}`}`;if(i){const s=new URLSearchParams;return Object.entries(i).forEach(([o,c])=>{s.append(o,c)}),`${r}${r.includes("?")?"&":"?"}${s.toString()}`}return r}request(e){return u(this,null,function*(){var i;const n=((i=e.method)==null?void 0:i.toUpperCase())||"GET",r=this.buildURL(e.url||"",e.params),s=x(x({},this.defaults.headers.common),e.headers);n!=="GET"&&n!=="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:n,headers:s,body:n!=="GET"&&n!=="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 E=yield fetch(r,c);clearTimeout(y);let b=null;const N=E.headers.get("content-type");N&&N.includes("application/json")?b=yield E.json():b=yield E.text();const M={};E.headers.forEach(($,J)=>{M[J]=$});const U={data:b,status:E.status,statusText:E.statusText,headers:M,config:e};if(!E.ok)throw U;return U}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(H(x({},e),{retry:h-1}));throw g}})}get(e){return u(this,arguments,function*(i,n={}){return this.request(H(x({},n),{method:"GET",url:i}))})}post(e,i){return u(this,arguments,function*(n,r,s={}){return this.request(H(x({},s),{method:"POST",url:n,data:r}))})}put(e,i){return u(this,arguments,function*(n,r,s={}){return this.request(H(x({},s),{method:"PUT",url:n,data:r}))})}}const AA=3,DA=30,OA=8e3;class NA{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:n=OA,retry:r=AA,retryDelay:s=DA,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 Pf({baseURL:o,timeout:n,retry:r,retryDelay:s,responseType:"json"}),this.fetchClient=new Pf({baseURL:"",timeout:n,retry:r,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,E,b,N;try{S.injectContext(this.requests.defaults.headers.common);const M=yield h(p);return p.url!==S.logsEndpoint&&l.debug("xhr::fetch",{networkCall:{status:M.status,statusText:M.statusText,baseURL:p.baseURL||this.requests.defaults.baseURL,url:p.url,method:p.method}}),M}catch(M){throw M?(((g=M.config)==null?void 0:g.url)!==S.logsEndpoint&&l.error("xhr::fetch",{error:M,networkCall:{status:M.status,statusText:M.statusText,baseURL:((y=M.config)==null?void 0:y.baseURL)||this.requests.defaults.baseURL,url:(E=M.config)==null?void 0:E.url,retries:(b=M.config)==null?void 0:b.retry,method:(N=M.config)==null?void 0:N.method,isOnline:navigator.onLine?"online":"offline"}}),new w(M.message||"Network request failed","0011")):new w("Unknown network error occurred","0011")}})}get peerId(){return this.context.getValue("peerId")}setAuthToken(e,i){const{bearer:n}=i||{};this.authToken=e,this.requests.defaults.headers.common.Authorization=n?`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 LA=Object.defineProperty,xA=Object.getOwnPropertyDescriptor,ii=(t,e,i,n)=>{for(var r=n>1?void 0:n?xA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&LA(e,i,r),r};class Wt extends NA{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 n=yield Al.getIPDetails({peerId:i,apiHostnames:Ng(this.context),logger:l});if(l.log("ipInfo",{ipInfo:n}),((e=n==null?void 0:n.loc)==null?void 0:e.length)>5)return n;throw Error("Insufficient data")}catch(n){l.warn("ApiClient.getRoomNodeLinkAndTitleV1 Failed to get ip details",{error:{name:n.name,message:n.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,n,r,s,o,c;if(this.pluginInformation)return this.pluginInformation;const{plugins:d}=(yield this.requests.get("/v2/plugins/user")).data.data,h=((i=(e=Y.getValue(ne.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(H(x({},y),{name:y.name.replace("v2","")})),g),{v1:[],v2:[]});return(s=(r=(n=this.context.getValue("modules"))==null?void 0:n.devTools)==null?void 0:r.plugins)!=null&&s.length&&((c=(o=this.context.getValue("modules"))==null?void 0:o.devTools)==null||c.plugins.forEach(g=>{var y,E,b;const N=H(x({},ta),{tags:[...ta.tags],baseUrl:`http://localhost:${g.port}`,name:g.name,picture:(y=g.picture)!=null?y:ta.picture,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),id:g.id,organizationId:this.organizationId,description:(E=g.description)!=null?E:ta.description,staggered:(b=g.staggered)!=null?b:ta.staggered});p.v2.push(N)})),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:n}=(yield this.requests.post(`/v2/plugins/authorize/${e}`,i)).data.data;return n})}getPresignedUrls(e,i){return u(this,null,function*(){const n=jr(this.context,"chat_upload_expiry"),r={roomUUID:this.roomUUID,filename:e,expiry:typeof n=="number"?n:void 0};Y.hasFeature(ne.FEAT_CHAT_SDK)&&(r.viewType=i);const{getLocation:s,putLocation:o}=(yield this.requests.post("/v1/meetings/genPreSignedUploadUrl",r)).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(n){l.error(`sendFileMessage::${n}`)}else yield this.fetchClient.put(i,e,{headers:{"Content-Type":e.type}})})}startLivestreaming(e){return u(this,arguments,function*({manualIngestion:i}){const n=mi(yield this.requests.post(`/v2/meetings/${this.context.getValue("meetingId")}/livestreams`,{manual_ingest:!!i})).data.data;return{playbackUrl:n.playbackUrl,status:n.status,manualIngest:n.manualIngest,ingestionCredentials:n.streamKey?{ingestionServer:n.ingestServer,streamKey:n.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=mi((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 mi(e)})}startRecording(e,i){return u(this,null,function*(){return(yield this.requests.post("/v2/recordings",H(x({},Cf(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:n,useHiveMedia:r,sfu:s}=mi((yield this.requests.post("v2/internals/rooms",{ip_information:e})).data.data);return{roomNodeUrl:i,meetingTitle:n,useHiveMedia:r!=null?r:!1,sfu:s}})}}ii([S.trace("APIClient.getIPDetails")],Wt.prototype,"getIPDetails",1),ii([S.trace("APIClient.getICEServers")],Wt.prototype,"getICEServers",1),ii([S.trace("APIClient.getPlugins")],Wt.prototype,"getPlugins",1),ii([S.trace("APIClient.startLivestreaming")],Wt.prototype,"startLivestreaming",1),ii([S.trace("APIClient.stopLivestreaming")],Wt.prototype,"stopLivestreaming",1),ii([S.trace("APIClient.getActiveLivestream")],Wt.prototype,"getActiveLivestream",1),ii([S.trace("APIClient.getUserDetails")],Wt.prototype,"getUserDetails",1),ii([S.trace("APIClient.startRecording")],Wt.prototype,"startRecording",1),ii([S.trace("APIClient.stopRecording")],Wt.prototype,"updateRecording",1),ii([S.trace("APIClient.getActiveRecording")],Wt.prototype,"getActiveRecording",1),ii([S.trace("APIClient.getActiveTranscript")],Wt.prototype,"getActiveTranscript",1),ii([S.trace("APIClient.getRoomNodeData")],Wt.prototype,"getRoomNodeData",1);let Eu;function VA(t,e){return Eu=new Wt(t,e),Eu}function ut(){return Eu}function UA(t,e){return`<blockquote>${e.replace(/<blockquote>[.\s\S]*<\/blockquote>\n\n/m,"")}</blockquote>
|
|
14
|
-
${t}`}const Jr={maxInvocations:5,period:1};function At(t,e){return function(i,n,r){const s=r.value;let o=0,c=Date.now();return r.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)},r}}var FA=Object.defineProperty,BA=Object.getOwnPropertyDescriptor,ht=(t,e,i,n)=>{for(var r=n>1?void 0:n?BA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&FA(e,i,r),r};const WA=["text","image","file","custom","poll"],Gc={maxInvocations:180,period:60};var re,Kr,ze,zr,qc,ku,Rf,$c,bu,Mf;let Qe=(Mf=class extends Bt{constructor(t,e,i,n,r){super(),f(this,ku),f(this,$c),m(this,"messages"),m(this,"channels",[]),f(this,re,void 0),f(this,Kr,void 0),f(this,ze,void 0),f(this,zr,void 0),f(this,qc,void 0),m(this,"maxTextLimit",2e3),v(this,qc,t),v(this,ze,e),v(this,zr,i),v(this,re,n),v(this,Kr,r),this.messages=[]}setMaxTextLimit(t){this.maxTextLimit=t}sendMessageInternal(t,e,i){return u(this,arguments,function*(n,r,s,o={}){switch(n.type){case"text":{const c=o.replyTo&&o.replyTo.type==="text"?UA(n.message,o.replyTo.message):n.message;yield this.sendTextMessageInternal(c,r,s);break}case"image":yield this.sendImageMessageInternal(n.image,r,s);break;case"file":yield this.sendFileMessageInternal(n.file,r,s);break;default:l.error("sendMessage::message_type_not_supported",{dyteChat:{messageType:n.type}});break}})}sendTextMessageInternal(t,e,i){return u(this,null,function*(){var n,r,s,o,c,d;if(t.length>this.maxTextLimit)throw new w("Max character limit breached","0503");if(e&&e.length>0){if(!((n=a(this,re).permissions)!=null&&n.chatPrivate.canSend)||!((r=a(this,re).permissions)!=null&&r.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,yt.TEXT,i);return}let h=[];e&&e.length>0&&(e.push(a(this,re).id),h=a(this,Kr).joined.toArray().filter(p=>e.includes(p.id)).map(p=>p.userId),h.push(a(this,re).userId)),a(this,ze).sendMessage(t,yt.TEXT,e)})}sendImageMessageInternal(t,e,i){return u(this,null,function*(){var n,r,s,o,c,d;if(e&&e.length>0){if(!((n=a(this,re).permissions)!=null&&n.chatPrivate.canSend)||!((r=a(this,re).permissions)!=null&&r.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=ut(),{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,yt.IMAGE,i);return}let y=[];e&&e.length>0&&(e.push(a(this,re).id),y=a(this,Kr).joined.toArray().filter(E=>e.includes(E.id)).map(E=>E.userId),y.push(a(this,re).userId)),a(this,ze).sendMessage(p,yt.IMAGE,e)}catch(h){throw new w("Error sending image message.","0500")}})}sendFileMessageInternal(t,e,i){return u(this,null,function*(){var n,r,s,o,c,d;if(e&&e.length>0){if(!((n=a(this,re).permissions)!=null&&n.chatPrivate.canSend)||!((r=a(this,re).permissions)!=null&&r.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=ut(),{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}),yt.FILE,i);return}let y=[];e&&e.length>0&&(e.push(a(this,re).id),y=a(this,Kr).joined.toArray().filter(b=>e.includes(b.id)).map(b=>b.userId),y.push(a(this,re).userId));const E=JSON.stringify({link:p,name:t.name,size:"size"in t?t.size:0});a(this,ze).sendMessage(E,yt.FILE,e)}catch(h){throw new w("Error sending file message.","0500")}})}get rateLimits(){return Gc}updateRateLimits(t,e){Gc.maxInvocations=t,Gc.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,n,r,s,o,c,d,h,p,g,y,E,b,N,M;if(e&&e.length>0){if(!((i=a(this,re).permissions)!=null&&i.chatPrivate.canSend)||!((n=a(this,re).permissions)!=null&&n.chatPrivate.files)||!((r=a(this,re).permissions)!=null&&r.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 U=J=>u(this,null,function*(){try{if(typeof J=="string")return{link:J};const I=ut(),{getLocation:ae,putLocation:se}=yield I.getPresignedUrls(J.name,a(this,re).config.viewType);return yield I.uploadFile(J,se),{link:ae,type:J.type,name:J.name,size:J.size}}catch(I){throw new w("Error sending image message.","0500")}}),$=H(x({},t),{files:yield Promise.all((y=(g=t.files)!=null?g:[])==null?void 0:y.map(J=>u(this,null,function*(){return U(J)}))),images:yield Promise.all((b=(E=t.images)!=null?E:[])==null?void 0:b.map(J=>u(this,null,function*(){return U(J)}))),videos:yield Promise.all((M=(N=t.videos)!=null?N:[])==null?void 0:M.map(J=>u(this,null,function*(){return U(J)})))});a(this,ze).sendMessage(JSON.stringify($),yt.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 n,r,s,o,c,d;if(((r=(n=a(this,re).permissions)==null?void 0:n.chatMessage)==null?void 0:r.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,yt.TEXT,i)})}editImageMessage(t,e,i){return u(this,null,function*(){var n,r,s,o;if(!((r=(n=a(this,re).permissions)==null?void 0:n.chatPublic)!=null&&r.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=ut(),{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,yt.IMAGE,i)}catch(c){throw new w("Error editing image message.","0500")}})}editFileMessage(t,e,i){return u(this,null,function*(){var n,r,s,o;if(!((r=(n=a(this,re).permissions)==null?void 0:n.chatPublic)!=null&&r.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=ut(),{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}),yt.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,n;if(((n=(i=a(this,re).permissions)==null?void 0:i.chatMessage)==null?void 0:n.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,$c,bu))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,$c,bu))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,n=0,r=void 0){return u(this,null,function*(){const s=yield a(this,ze).getChatMessagesPaginated(t,e,i,n,r);return{messages:s.messages.map(o=>Ki.formatSocketServiceMessage(o)),next:s.next}})}createChannel(t,e){return u(this,arguments,function*(i,n,r={}){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(r.visibility==="public"&&!(o.canCreate==="PUBLIC"||o.canCreate==="ALL"))throw new w("Not permitted to create public channels","0501");if(r.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([...n,a(this,re).userId])];return yield a(this,zr).createChannel(i.trim(),c,r.displayPictureUrl,r.visibility,r.isDirectMessage)})}updateChannel(t,e){var i,n,r,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:(n=e.memberIds)!=null?n:c.memberIds,displayName:(r=e.displayName)!=null?r:c.displayName,displayPictureUrl:(s=e.displayPictureUrl)!=null?s:c.displayPictureUrl,visibility:(o=e.visibility)!=null?o:c.visibility};return a(this,zr).updateChannel(t,h)}sendMessageToChannel(t,e){return u(this,arguments,function*(i,n,r={}){return this.sendMessageInternal(i,null,n,r)})}getChannelMembers(t){return u(this,null,function*(){return a(this,zr).getChannelMembers(t)})}searchMessages(t){return u(this,arguments,function*(e,i={}){if(!Y.hasFeature(ne.FEAT_CHAT_SDK_SEARCH))throw new w("searchMessages is temporarily disabled!","0506");return(yield a(this,ze).searchMessages(e,i)).map(Ki.formatSocketServiceMessage)})}markLastReadMessage(t,e){return u(this,null,function*(){yield a(this,ze).markLastReadMessage(t,e);const i=this.channels.find(n=>n.id===t);if(i){const n=H(x({},i),{unreadCount:0});this.channels=this.channels.map(r=>r.id===t?n:r),this.emit("channelMessageUpdate",n)}})}get pinned(){return this.messages.filter(t=>t.pinned)}},re=new WeakMap,Kr=new WeakMap,ze=new WeakMap,zr=new WeakMap,qc=new WeakMap,ku=new WeakSet,Rf=function(){return a(this,qc).getValue("connectionHandler")},$c=new WeakSet,bu=function(){return a(this,ku,Rf).socketJoined===!0},Mf);ht([S.trace("DyteChat.sendTextMessage"),At(Gc)],Qe.prototype,"sendTextMessage",1),ht([S.trace("DyteChat.sendImageMessage"),At({maxInvocations:20,period:60})],Qe.prototype,"sendImageMessage",1),ht([S.trace("DyteChat.sendFileMessage"),At({maxInvocations:20,period:60})],Qe.prototype,"sendFileMessage",1),ht([S.trace("DyteChat.sendMessage"),At({maxInvocations:180,period:60})],Qe.prototype,"sendMessage",1),ht([S.trace("DyteChat.editTextMessage")],Qe.prototype,"editTextMessage",1),ht([S.trace("DyteChat.editImageMessage")],Qe.prototype,"editImageMessage",1),ht([S.trace("DyteChat.editFileMessage")],Qe.prototype,"editFileMessage",1),ht([S.trace("DyteChat.editMessage")],Qe.prototype,"editMessage",1),ht([S.trace("DyteChat.deleteMessage")],Qe.prototype,"deleteMessage",1),ht([S.trace("DyteChat.createChannel")],Qe.prototype,"createChannel",1),ht([S.trace("DyteChat.updateChannel")],Qe.prototype,"updateChannel",1),ht([S.trace("DyteChat.sendMessageToChannel")],Qe.prototype,"sendMessageToChannel",1),ht([S.trace("DyteChat.getChannelMembers")],Qe.prototype,"getChannelMembers",1),ht([S.trace("DyteChat.searchMessages")],Qe.prototype,"searchMessages",1),ht([S.trace("DyteChat.markLastReadMessage")],Qe.prototype,"markLastReadMessage",1),Qe=ht([lt("0500")],Qe);var jA=Object.defineProperty,HA=Object.getOwnPropertyDescriptor,GA=(t,e,i,n)=>{for(var r=n>1?void 0:n?HA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&jA(e,i,r),r},_u,Af;const nr=(Af=class{constructor(t,e,i,n,r){m(this,"chat"),m(this,"chatSocketHandler"),m(this,"chatChannelSocketHandler"),m(this,"self"),f(this,_u,void 0),v(this,_u,t),this.chatSocketHandler=e,this.chatChannelSocketHandler=i,this.chat=new Qe(t,e,i,n,r),this.self=n,this.setupEvents()}static init(t,e,i,n,r){return u(this,null,function*(){return new nr(t,e,i,n,r)})}static formatMessage(t){return H(x({},t),{time:new Date(t.time),type:WA[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 yt.TEXT:{i.message=t.payload;break}case yt.IMAGE:{i.link=t.payload;break}case yt.FILE:{const{link:n,name:r,size:s}=JSON.parse(t.payload);i.link=n,i.name=r,i.size=s;break}case yt.CUSTOM:{const{html:n,images:r,message:s,videos:o,files:c}=JSON.parse(t.payload);i.message=s,i.html=n,i.images=r,i.videos=o,i.files=c;break}}return nr.formatMessage(i)}getChatMessages(){return u(this,null,function*(){if(this.self.config.viewType==="LIVESTREAM"||this.self.config.viewType==="CHAT"||Y.hasFeature(ne.FEAT_PAGINATED_CHAT))return;const t=yield this.chatSocketHandler.getChatMessages();if(!(t!=null&&t.payload))return;const e=mf.fromBinary(t.payload).messages;this.chat.messages=e.map(i=>nr.formatSocketServiceMessage(i))})}setupEvents(){P.on(R.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){this.getChatMessages()})),this.chatSocketHandler.on(Oe.sendMessageToRoom,t=>{const e=nr.formatSocketServiceMessage(t.message);if(!e.channelId)this.chat.messages=[...this.chat.messages,e];else{const i=this.chat.channels.find(n=>n.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=nr.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=nr.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(n=>n.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(n=>n.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(er.createChatChannel,t=>{const[e]=t.chatChannels,i=ir.formatChannel(e);this.chat.channels.push(i),this.chat.emit("channelCreate",i)}),this.chatSocketHandler.on(Oe.pinMessage,t=>{const e=this.chat.messages.findIndex(n=>n.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(er.updateChatChannel,t=>{const[e]=t.chatChannels,i=ir.formatChannel(e);this.chat.channels=this.chat.channels.map(n=>n.id===i.id?i:n),this.chat.emit("channelUpdate",i)})}},_u=new WeakMap,Af);let Ki=nr;GA([S.trace("ChatController.setupEvents")],Ki.prototype,"setupEvents",1);var qA=Object.defineProperty,$A=Object.getOwnPropertyDescriptor,JA=(t,e,i,n)=>{for(var r=n>1?void 0:n?$A(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&qA(e,i,r),r},wu,Df,Iu,Of,ca,da,Jc,Nf;let Cu=(Nf=class extends Bt{constructor(t,e,i){super(),f(this,wu),f(this,Iu),m(this,"items"),f(this,ca,void 0),f(this,da,void 0),f(this,Jc,void 0),v(this,Jc,t),v(this,ca,e),v(this,da,i),this.items=[]}create(t,e,i=!1,n=!1){return u(this,null,function*(){if(!a(this,Iu,Of))throw new w("Can't create polls without joining room","0705");if(!a(this,ca).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,da).createPoll(t,e,i,n)})}vote(t,e){return u(this,null,function*(){if(!a(this,ca).permissions.polls.canVote){l.error("DytePolls::vote::permission_denied");return}yield a(this,da).votePoll(t,e)})}},wu=new WeakSet,Df=function(){return a(this,Jc).getValue("connectionHandler")},Iu=new WeakSet,Of=function(){var t;return((t=a(this,wu,Df))==null?void 0:t.socketJoined)===!0},ca=new WeakMap,da=new WeakMap,Jc=new WeakMap,Nf);Cu=JA([lt("0700")],Cu);var KA=Object.defineProperty,zA=Object.getOwnPropertyDescriptor,YA=(t,e,i,n)=>{for(var r=n>1?void 0:n?zA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&KA(e,i,r),r},la,Yr,Lf;const Qr=(Lf=class{constructor(t,e,i){m(this,"polls"),f(this,la,void 0),f(this,Yr,void 0),this.polls=new Cu(t,e,i),v(this,la,e),v(this,Yr,i),this.setupEvents()}static init(t,e,i){return u(this,null,function*(){return new Qr(t,e,i)})}canViewPolls(){return a(this,la).permissions.polls.canView}setupEvents(){const t={[Ji.createPoll]:n=>{n.poll&&this.updatePoll(Qr.formatSocketServicePoll(n.poll))},[Ji.updatePoll]:n=>{n.poll&&this.updatePoll(Qr.formatSocketServicePoll(n.poll))},[Ji.votePoll]:n=>{n.poll&&this.updatePoll(Qr.formatSocketServicePoll(n.poll))}},e=()=>{P.on(R.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(t).map(Number).forEach(n=>{a(this,Yr).on(n,t[n])})},i=()=>{P.on(R.SOCKET_SERVICE_ROOM_JOINED,()=>{this.getPolls()}),Object.keys(t).map(Number).forEach(n=>{a(this,Yr).removeListeners(n)})};a(this,la).permissions.on("permissionsUpdate",n=>u(this,null,function*(){var r;(r=n==null?void 0:n.polls)!=null&&r.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,Yr).getPolls();if(!(t!=null&&t.payload))return;const{polls:e}=oA.fromBinary(t.payload);this.polls.items=e.map(i=>Qr.formatSocketServicePoll(i))})}static formatSocketServicePoll(t){const e=t.options.map(i=>({count:i.count,text:i.text,votes:i.votes.map(n=>({id:n.userId,name:n.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}}},la=new WeakMap,Yr=new WeakMap,Lf);let xf=Qr;YA([S.trace("PollController.setupEvents")],xf.prototype,"setupEvents",1);var QA=Object.defineProperty,XA=Object.getOwnPropertyDescriptor,ZA=(t,e,i,n)=>{for(var r=n>1?void 0:n?XA(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&QA(e,i,r),r},Vf=(t=>(t[t.User=0]="User",t[t.Meeting=1]="Meeting",t))(Vf||{}),ua,Kc,Pu,Xr,zc,Uf;let Ru=(Uf=class extends Bt{constructor(t,e,i,n,r){super(),f(this,Kc),m(this,"selfActiveTab"),m(this,"broadcastTabChanges"),f(this,ua,void 0),f(this,Xr,void 0),f(this,zc,void 0),m(this,"viewType"),m(this,"meetingStartedTimestamp"),m(this,"meetingTitle"),m(this,"sessionId"),v(this,ua,t),v(this,Xr,e),this.viewType=i,v(this,zc,n),this.meetingTitle=r,this.broadcastTabChanges=e.permissions.canSpotlight}get socketState(){return a(this,Kc,Pu).socketState}get mediaState(){return a(this,Kc,Pu).mediaState}get meetingId(){return a(this,ua).getValue("meetingId")}setBroadcastTabChanges(t){if(!a(this,Xr).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,Xr).permissions)!=null&&i.canSpotlight&&this.broadcastTabChanges&&e===0&&this.assertActiveTabToRoom()}assertActiveTabToRoom(){a(this,zc).broadcastMessage("spotlight",{userId:a(this,Xr).userId,currentTab:this.selfActiveTab})}},ua=new WeakMap,Kc=new WeakSet,Pu=function(){return a(this,ua).getValue("connectionHandler")},Xr=new WeakMap,zc=new WeakMap,Uf);Ru=ZA([lt("0800")],Ru);function e1(t){let e="",i=[""];const n=[i];let r=0,s=0,o=!0,c;for(c of t)c==='"'?(o&&c===e&&(i[r]+=c),o=!o):c===","&&o?c=i[++r]="":c===`
|
|
15
|
-
`&&o?(e==="\r"&&(i[
|
|
16
|
-
`).map(e=>gn.parseTranscript(e,!1)).filter(Boolean):[]}getActiveTranscript(){return u(this,null,function*(){try{const t=ut(),{transcript:e}=yield t.getActiveTranscript();this.transcripts=gn.parseTranscripts(e)}catch(t){}})}onTranscript(t){return u(this,null,function*(){var e;const i=this.transcripts.filter(({peerId:n})=>n===t.peerId);if((e=i==null?void 0:i.at(-1))!=null&&e.isPartialTranscript){const n=i.at(-1);n.transcript=t.transcript,n.isPartialTranscript=t.isPartialTranscript,this.emit("transcript",n);return}this.transcripts=[...this.transcripts,t],this.emit("transcript",t)})}};Ff([S.trace("DyteAi.getActiveTranscript")],gn.prototype,"getActiveTranscript",1),gn=Ff([lt("0000")],gn);var n1=Object.defineProperty,r1=Object.getOwnPropertyDescriptor,s1=(t,e,i,n)=>{for(var r=n>1?void 0:n?r1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&n1(e,i,r),r},rr,ha,Mu,Bf;const Wf=(Bf=class{constructor(t,e,i,n,r,s){m(this,"meta"),m(this,"ai"),f(this,rr,void 0),f(this,ha,void 0),m(this,"aiSocketHandler"),f(this,Mu,void 0),v(this,Mu,t),this.meta=new Ru(t,e,e.config.viewType,i,s),this.ai=n,v(this,rr,e),v(this,ha,i),this.aiSocketHandler=r,e.config.viewType!==Rt.Chat&&this.setupEvents()}static init(t,e,i,n,r){return u(this,null,function*(){const s=yield gn.init(e.permissions.transcriptionEnabled);return new Wf(t,e,i,s,n,r)})}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,Vf.Meeting),this.meta.emit("activeTabUpdate",t.currentTab))}setupEvents(){P.on(R.TRANSPORT_STATE_UPDATE,t=>{this.meta.emit("mediaConnectionUpdate",t)}),P.on(R.SOCKET_STATE_UPDATE,t=>{this.meta.emit("socketConnectionUpdate",t)}),P.on(R.ROOM_STATE,({createdAt:t,roomUuid:e})=>{const i=this.meta.meetingStartedTimestamp;if(e&&(this.meta.sessionId=e),t&&!i){const n=new Date(t*1e3);this.meta.meetingStartedTimestamp=n,this.meta.emit("meetingStartTimeUpdate",{meetingStartedTimestamp:this.meta.meetingStartedTimestamp})}}),P.on(R.PRODUCER_SCORE_UPDATE,({score:t})=>{t<5&&this.meta.emit("poorConnection",{score:t})}),a(this,rr).permissions.canSpotlight&&(l.info("DyteMetaController::Asserting Spotlight"),this.meta.selfActiveTab&&a(this,ha).broadcastMessage("spotlight",{userId:a(this,rr).userId,currentTab:this.meta.selfActiveTab})),P.on(R.PEER_JOINED_INTERNAL,t=>u(this,null,function*(){a(this,rr).permissions.canSpotlight&&this.meta.selfActiveTab&&a(this,ha).broadcastToPeers("spotlight",[t.id],{userId:a(this,rr).userId,currentTab:this.meta.selfActiveTab})})),P.on(R.ROOM_MESSAGE,t=>{var e,i;let n;if("type"in t){if(t.type!=="spotlight")return;n=x(x({},t),t.payload)}else if("roomMessageType"in t){if(t.roomMessageType!=="spotlight")return;n=t}else return;l.info("Spotlight Assertion Received",{spotlight:{spotlighter:{id:n.userId},currentTab:{id:(e=n.currentTab)==null?void 0:e.id,type:(i=n.currentTab)==null?void 0:i.type}}}),this.conditionallySetActiveTab(n)}),P.on(R.MESSAGE,t=>{var e,i;let n;if("type"in t){if(t.type!=="spotlight")return;n=x(x({},t),t.payload)}else if("roomMessageType"in t){if(t.roomMessageType!=="spotlight")return;n=t}else return;l.info("Spotlight Assertion Received",{spotlight:{spotlighter:{id:n.userId},currentTab:{id:(e=n.currentTab)==null?void 0:e.id,type:(i=n.currentTab)==null?void 0:i.type}}}),this.conditionallySetActiveTab(n)}),this.aiSocketHandler.on(W.transcript,t=>{const{meetingId:e,transcript:i,isPartial:n}=t,r=gn.parseTranscript(i,n);if(!r){l.warn("Received empty transcript data");return}this.ai.onTranscript(r),this.meta.emit("transcript",r);const{peerId:s,name:o,transcript:c}=r;l.debug(`${e} Received transcript for peer ${s} - ${o}: ${c}`)})}},rr=new WeakMap,ha=new WeakMap,Mu=new WeakMap,Bf);let jf=Wf;s1([S.trace("MetaController.setupEvents")],jf.prototype,"setupEvents",1);var a1=Object.defineProperty,o1=Object.getOwnPropertyDescriptor,sr=(t,e,i,n)=>{for(var r=n>1?void 0:n?o1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&a1(e,i,r),r},gi,pa,le,Yc,zi,Ai,Qc,Au,ma,Xc;class fn extends Bt{constructor(e,i,n,r,s){super(),f(this,Qc),f(this,ma),f(this,gi,void 0),f(this,pa,void 0),f(this,le,void 0),f(this,Yc,void 0),f(this,zi,void 0),f(this,Ai,void 0),v(this,Ai,e),v(this,gi,r),v(this,pa,s),v(this,le,i),v(this,Yc,n),v(this,zi,[]),this.setupEvents()}get status(){return a(this,Ai).getValue("stageStatus")}setupEvents(){const e={[R.GET_STAGE_REQUESTS]:r=>u(this,null,function*(){v(this,zi,r)}),[R.UPDATE_STAGE_REQUESTS]:r=>u(this,[r],function*({add:s}){const o=a(this,zi).length,{stageRequests:c}=this.getAccessRequests();(s||c.length>o)&&this.emit("newStageRequest",{count:c.length}),this.emit("stageAccessRequestUpdate",c)})},i=()=>{Object.entries(e).forEach(([r,s])=>{P.onAsync(r,s)})},n=()=>{Object.entries(e).forEach(([r,s])=>{P.removeListener(r,s)})};a(this,le).permissions.on("permissionsUpdate",r=>{const{canAcceptProductionRequests:s}=r;s!==void 0&&(a(this,le).permissions.acceptStageRequests?(i(),a(this,gi).getStageRequests()):(n(),v(this,zi,[]),this.emit("stageAccessRequestUpdate",a(this,zi))))}),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,Yc).joined.toArray().filter(i=>i.stageStatus==="REQUESTED_TO_JOIN_STAGE").map(i=>({displayName:i.name,userId:i.userId,peerId:i.id}));return v(this,zi,e),{stageRequests:a(this,zi)}}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===G.Allowed){B(this,ma,Xc).call(this,"ACCEPTED_TO_JOIN_STAGE");return}a(this,gi).requestAccess(),B(this,ma,Xc).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,gi).cancelRequestAccess(),B(this,ma,Xc).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,gi).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,gi).denyAccess(e)}join(){return u(this,null,function*(){const e=a(this,Ai).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===G.NotAllowed)throw new w(`Unable to join stage you are currently ${this.status}`,"2006");if(yield a(this,gi).joinStage(),e===Rt.Livestream){yield a(this,pa).joinRoom(a(this,le));const{peers:i}=yield a(this,pa).getStagePeers();P.emit(R.SOCKET_PEERS,i)}a(this,Ai).setValue("stageStatus","ON_STAGE"),a(this,le).audioEnabled&&a(this,Qc,Au).shareMic(a(this,le).audioTrack),a(this,le).videoEnabled&&a(this,Qc,Au).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,gi).leaveStage(a(this,le).userId),a(this,Ai).setValue("stageStatus","OFF_STAGE",!1),yield P.emitAsync(R.LEAVE_MEDIA_ROOM,"stageLeft"),a(this,Ai).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,gi).kick(e)})}}gi=new WeakMap,pa=new WeakMap,le=new WeakMap,Yc=new WeakMap,zi=new WeakMap,Ai=new WeakMap,Qc=new WeakSet,Au=function(){return a(this,Ai).getValue("roomNodeClient")},ma=new WeakSet,Xc=function(t){return u(this,null,function*(){this.status!==t&&a(this,Ai).setValue("stageStatus",t)})},sr([S.trace("DyteStage.getStageRequests")],fn.prototype,"getAccessRequests",1),sr([S.trace("DyteStage.requestAccess")],fn.prototype,"requestAccess",1),sr([S.trace("DyteStage.cancelRequestAccess")],fn.prototype,"cancelRequestAccess",1),sr([S.trace("DyteStage.grantAccess")],fn.prototype,"grantAccess",1),sr([S.trace("DyteStage.denyAccess")],fn.prototype,"denyAccess",1),sr([S.trace("DyteStage.joinStage")],fn.prototype,"join",1),sr([S.trace("DyteStage.leaveStage")],fn.prototype,"leave",1);function c1(t){return!(t.viewType==="LIVESTREAM"||t.viewType==="CHAT")}function Du(t){switch(t){case qi.UNSPECIFIED:return"OFF_STAGE";case qi.REQUESTED_STAGE:return"REQUESTED_TO_JOIN_STAGE";case qi.APPROVED_STAGE:return"ACCEPTED_TO_JOIN_STAGE";case qi.OFF_STAGE:return"OFF_STAGE";case qi.ON_STAGE:return"ON_STAGE";default:return"OFF_STAGE"}}var d1=Object.defineProperty,l1=Object.getOwnPropertyDescriptor,u1=(t,e,i,n)=>{for(var r=n>1?void 0:n?l1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&d1(e,i,r),r},ar,Zr,or,Zc,vn;class Hf{constructor(e,i,n,r,s){m(this,"stage"),f(this,ar,void 0),f(this,Zr,void 0),f(this,or,void 0),f(this,Zc,0),f(this,vn,void 0),v(this,vn,e),this.stage=new fn(e,r,s,i,n),v(this,or,i),v(this,ar,r),v(this,Zr,s),this.setupEvents()}setupEvents(){a(this,vn).subscribe("stageStatus",e=>{this.stage.emit("stageStatusUpdate",e)}),a(this,or).on(W.grantStageAccess,()=>{a(this,ar).permissions.stageAccess!==G.Allowed&&(this.stage.emit("stageRequestApproved"),this.setStageStatus("ACCEPTED_TO_JOIN_STAGE"))}),a(this,or).on(W.peerStageStatusUpdate,e=>{e!==void 0&&(e.peerId===a(this,ar).id?this.selfStageStatusHandler(e):this.peerStageStatusHandler(e))}),a(this,or).on(W.denyStageAccess,()=>{a(this,ar).permissions.stageAccess!==G.Allowed&&(this.stage.emit("stageRequestRejected"),this.setStageStatus("OFF_STAGE"))}),a(this,or).on(W.getStageRequests,e=>u(this,null,function*(){var i;if(a(this,ar).permissions.stageAccess!==G.Allowed)return;const n=(i=e==null?void 0:e.stageRequests)!=null?i:[];yield P.emitAsync(R.GET_STAGE_REQUESTS,n),a(this,Zc)<n.length&&n.length>0&&this.stage.emit("newStageRequest",{count:n.length}),v(this,Zc,n.length),this.stage.emit("stageAccessRequestUpdate",n)}))}getCurrentStageRequests(){return a(this,Zr).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,vn).setValue("stageStatus",e)})}selfStageStatusHandler(e){const i=Du(e.stageType),n=a(this,vn).getValue("stageStatus");if(n!==i)switch(e.stageType){case 1:a(this,vn).setValue("stageStatus","ACCEPTED_TO_JOIN_STAGE",!1),this.stage.join();break;case 2:case 3:this.setStageStatus(n);break;case 0:case 4:default:a(this,vn).setValue("stageStatus","ACCEPTED_TO_JOIN_STAGE",!1),this.stage.leave();break}}peerStageStatusHandler(e){return u(this,null,function*(){const i=a(this,Zr).joined.get(e.peerId),n=a(this,Zr).viewMode==="ACTIVE_GRID";if(!i){l.warn("err::peerStageStatusUpdate: participant not found");return}switch(e.stageType){case 1:i.setStageStatus("ON_STAGE"),n&&P.emit(R.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"),n&&P.emit(R.UPDATE_ACTIVE);break}P.emit(R.UPDATE_PEER_STAGE_STATUS,{id:i.id,status:i.stageStatus})})}}ar=new WeakMap,Zr=new WeakMap,or=new WeakMap,Zc=new WeakMap,vn=new WeakMap,u1([S.trace("DyteStage.setupEvents")],Hf.prototype,"setupEvents",1);var h1=Object.defineProperty,p1=Object.getOwnPropertyDescriptor,ed=(t,e,i,n)=>{for(var r=n>1?void 0:n?p1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&h1(e,i,r),r};const xe={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,ni,ga,fa,yn,va,es,ya,Gf;let ts=(Gf=class extends Gr{constructor(t,{baseURL:e,createdAt:i,description:n,id:r,name:s,organizationId:o,picture:c,private:d,published:h,staggered:p,tags:g,type:y,updatedAt:E},b,N,M,U,$){super(),f(this,Tt,void 0),m(this,"baseURL"),m(this,"createdAt"),m(this,"description"),m(this,"id"),m(this,"name"),f(this,ni,void 0),f(this,ga,void 0),f(this,fa,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,yn,void 0),m(this,"config"),f(this,va,void 0),m(this,"active"),m(this,"iframes"),m(this,"enabledBy"),f(this,es,void 0),f(this,ya,void 0),v(this,es,t),this.baseURL=e,this.createdAt=new Date(i),this.description=n,this.id=r,this.name=s,v(this,ni,N),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(E),this.active=!1,this.iframes=new Map,v(this,Tt,b),v(this,ga,M),v(this,fa,U),this.enabledBy="",v(this,ya,$)}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:n,uuid:r,type:s}=i;switch(s){case z.customPluginEventToRoom:{a(this,Tt).customPluginEventToRoom(this.id,n,r);break}case z.customPluginEventToPeers:{a(this,Tt).customPluginEventToPeers(this.id,n.peerIds,n,r);break}case z.enablePluginForRoom:{a(this,Tt).enablePluginForRoom(this.id,r);break}case z.enablePluginForPeers:{a(this,Tt).enablePluginForPeers(this.id,n.peerIds,r);break}case z.disablePluginForRoom:{a(this,Tt).disablePluginForRoom(this.id,r);break}case z.disablePluginForPeers:{a(this,Tt).disablePluginForPeers(this.id,n.peerIds,r);break}case z.storeInsertKeys:{a(this,Tt).storeInsertKeys(this.id,n.store,n.insertKeys,r);break}case z.storeGetKeys:{a(this,Tt).storeGetKeys(this.id,n.store,n.getKeys,r);break}case z.storeDeleteKeys:{a(this,Tt).storeDeleteKeys(this.id,n.store,n.deleteKeys,r);break}case z.storeDelete:{a(this,Tt).storeDelete(this.id,n.store,r);break}case xe.chatMessage:{const{messagePayload:o,peerIds:c}=n;if(!a(this,fa)){this.sendIframeEvent({type:xe.chatMessage,uuid:i.uuid,payload:{error:"Chat is disabled for this room."}});return}try{yield a(this,fa).sendMessage(o,c),this.sendIframeEvent({type:xe.chatMessage,uuid:i.uuid,payload:{success:!0}})}catch(d){this.sendIframeEvent({type:xe.chatMessage,uuid:i.uuid,payload:{error:d}})}break}case xe.getPeer:{let o;const{peerId:c}=n,d=H(x({},a(this,ni)),{id:a(this,ni).id,isRecorder:(e=a(this,ni).permissions)==null?void 0:e.isRecorder,isHidden:a(this,ni).permissions.hiddenParticipant,stageStatus:a(this,ni).stageStatus});c?(o=a(this,ga).joined.get(n.peerId),a(this,ni).id===c&&(o=d)):o=d,this.sendIframeEvent({type:xe.getPeer,payload:{peer:o&&Hc(o)},uuid:i.uuid});break}case xe.getPeers:{const o=a(this,ga).joined.toArray().map(c=>Hc(c));this.sendIframeEvent({type:xe.getPeers,payload:{peers:o},uuid:i.uuid});break}case xe.getPluginInitiator:{this.sendIframeEvent({type:xe.getPluginInitiator,payload:{enabledBy:this.enabledBy},uuid:i.uuid});break}case xe.getDisplayTitle:{this.sendIframeEvent({type:xe.getDisplayTitle,payload:{displayTitle:a(this,ya)},uuid:i.uuid});break}case xe.getRoomName:{this.sendIframeEvent({type:xe.getRoomName,payload:{roomName:a(this,es).getValue("meetingId")},uuid:i.uuid});break}case xe.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:xe.sendData,uuid:"",payload:t}))}removePluginView(t="default"){var e;const{iframe:i,listener:n}=(e=this.iframes.get(t))!=null?e:{};(i||n)&&(navigator.isReactNative?i.props.onMessage=void 0:window.removeEventListener("message",n),this.iframes.delete(t))}addPluginView(t,e="default"){var i;if(!a(this,va))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 n=t,r=new URL(this.baseURL),s={auth:a(this,va),parent:navigator.isReactNative?this.baseURL:window.location.origin,backend:a(this,es).getValue("apiBase"),pluginId:this.id,roomName:(i=a(this,es).getValue("meetingId"))!=null?i:"",displayTitle:a(this,ya)};if(Object.keys(s).forEach(o=>{r.searchParams.set(o,s[o])}),n.src=r.href,n.allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",n.title=e,navigator.isReactNative)n.props.onMessage=o=>{this.handleIframeMessage(JSON.parse(o.nativeEvent.data))},this.iframes.set(e,{iframe:n});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:n,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=ut(),e=yield t.authorizePlugin(this.id);v(this,va,e),v(this,yn,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,yn,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,ni).permissions)==null?void 0:t.plugins)!=null&&e.canStart&&(a(this,Tt).addPlugin(this.id,this.staggered),v(this,yn,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,ni).permissions)==null?void 0:t.plugins)!=null&&e.canClose)&&this.enabledBy!==a(this,ni).id||(a(this,Tt).removePlugin(this.id),l.info("plugin::deactivated",{plugin:{id:this.id,name:this.name,duration:a(this,yn)?new Date().getTime()-a(this,yn).getTime():0}}),v(this,yn,void 0)))})}},Tt=new WeakMap,ni=new WeakMap,ga=new WeakMap,fa=new WeakMap,yn=new WeakMap,va=new WeakMap,es=new WeakMap,ya=new WeakMap,Gf);ed([At({maxInvocations:5,period:1})],ts.prototype,"sendData",1),ed([S.trace("DytePlugin.activatePlugin")],ts.prototype,"activate",1),ed([S.trace("DytePlugin.deactivatePlugin")],ts.prototype,"deactivate",1),ts=ed([lt("0600")],ts);var Je,is;class qf extends Map{constructor(e){const{onAddEvent:i,onDeleteEvent:n,onClearEvent:r}=e;super(),f(this,Je,void 0),f(this,is,void 0),m(this,"onAddEvent"),m(this,"onDeleteEvent"),m(this,"onClearEvent"),v(this,Je,new Gr),this.onAddEvent=i,this.onDeleteEvent=n,this.onClearEvent=r,v(this,is,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,n=!0){const r=super.set(e,i),s=(o,...c)=>{this.emit(o,i,...c)};return a(this,is).set(e,s),i.on("*",s),n&&a(this,Je).emit(this.onAddEvent,i),r}delete(e,i=!0,n=!1){const r=this.get(e);if(!r)return!1;r.removeListener("*",a(this,is).get(e));const s=super.delete(e);return n&&r.removeAllListeners(),i&&a(this,Je).emit(this.onDeleteEvent,r),s}clear(e=!0,i=!1){this.forEach(r=>{r.removeListener("*",a(this,is).get(r.id)),i&&r.removeAllListeners()});const n=super.clear();return e&&a(this,Je).emit(this.onClearEvent),n}toArray(){return Array.from(this.values())}}Je=new WeakMap,is=new WeakMap;class $f extends qf{constructor(){super({onAddEvent:"pluginAdded",onDeleteEvent:"pluginDeleted"})}add(e,i=!0){return super.add(e,i)}delete(e,i=!0,n=!1){return super.delete(e,i,n)}}var m1=Object.defineProperty,g1=Object.getOwnPropertyDescriptor,f1=(t,e,i,n)=>{for(var r=n>1?void 0:n?g1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&m1(e,i,r),r};let Ou=class{constructor(){m(this,"all"),m(this,"active"),this.all=new $f,this.active=new $f}};Ou=f1([lt("0600")],Ou);var v1=Object.defineProperty,y1=Object.getOwnPropertyDescriptor,td=(t,e,i,n)=>{for(var r=n>1?void 0:n?y1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&v1(e,i,r),r},fi,Sa,id,Jf;const Kf=(Jf=class{constructor(t,e,i,n){m(this,"plugins"),f(this,fi,void 0),f(this,Sa,void 0),f(this,id,void 0),v(this,fi,e),v(this,Sa,i),v(this,id,t),this.plugins=n,this.setupEvents()}static init(t,e,i,n,r,s,o,c){return u(this,null,function*(){const d=new Ou;return e.forEach(h=>{const p=new ts(t,h,i,s,o,r,c);d.all.add(p)}),new Kf(t,i,n,d)})}getRoomPlugins(){return u(this,null,function*(){var t;const{plugins:e}=yield a(this,fi).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 n=this.plugins.all.get(e);n&&(yield n.activateForSelf(),n.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,n){const r=this.plugins.all.get(e);r&&r.sendIframeEvent({type:t,uuid:i,payload:n})}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)}),P.onAsync(R.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){yield this.getRoomPlugins(),l.debug("[SOCKET_SERVICE_ROOM_JOINED] resolved request to fetch plugins.")})),a(this,fi).on(z.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,fi).on(z.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}))})),[z.enablePluginForPeers,z.enablePluginForRoom].forEach(t=>{a(this,fi).on(t,(e,i)=>u(this,null,function*(){this.sendIframeEvent(t,e.pluginId,i,{enabledBy:e.enabledBy})}))}),[z.disablePluginForPeers,z.disablePluginForRoom].forEach(t=>{a(this,fi).on(t,(e,i)=>u(this,null,function*(){this.sendIframeEvent(t,e.pluginId,i,{disabledBy:e.disabledBy})}))}),[z.customPluginEventToPeers,z.customPluginEventToRoom].forEach(t=>{a(this,fi).on(t,(e,i)=>u(this,null,function*(){this.sendIframeEvent(t,e.pluginId,i,{data:JSON.parse(new TextDecoder().decode(e.pluginData))})}))}),[z.storeInsertKeys,z.storeGetKeys,z.storeDeleteKeys].forEach(t=>{a(this,fi).on(t,(e,i)=>u(this,null,function*(){var n;const r=(n=e.storeItems)==null?void 0:n.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:r})}))}),a(this,fi).on(z.storeDelete,(t,e)=>u(this,null,function*(){this.sendIframeEvent(z.storeDelete,t.pluginId,e,{storeName:t.storeName})})),a(this,Sa).on(Oe.sendMessageToPeers,t=>{const e=Ki==null?void 0:Ki.formatSocketServiceMessage(t.message);this.broadcastIframeEvent(xe.chatMessage,{message:e})}),a(this,Sa).on(Oe.sendMessageToRoom,t=>{const e=Ki==null?void 0:Ki.formatSocketServiceMessage(t.message);this.broadcastIframeEvent(xe.chatMessage,{message:e})}),P.on(R.PEER_JOINED_INTERNAL,t=>{const e=Hc(t);this.broadcastIframeEvent(xe.peerJoined,e)}),P.on(R.PEER_CLOSED,t=>{this.broadcastIframeEvent(xe.peerLeft,t)}),P.on(R.UPDATE_PEER_STAGE_STATUS,t=>{this.broadcastIframeEvent(xe.peerStageStatusUpdate,t)}),a(this,id).subscribe("stageStatus",t=>{this.broadcastIframeEvent(xe.stageStatusUpdate,t)})}},fi=new WeakMap,Sa=new WeakMap,id=new WeakMap,Jf);let Ta=Kf;td([S.trace("PluginController.getRoomPlugins")],Ta.prototype,"getRoomPlugins",1),td([S.trace("PluginController.enableForSelf")],Ta.prototype,"enablePlugin",1),td([S.trace("PluginController.disableForSelf")],Ta.prototype,"disablePlugin",1),td([S.trace("PluginController.setupEvents")],Ta.prototype,"setupEvents",1);class S1{constructor(){m(this,"mediaJoined"),m(this,"socketJoined"),m(this,"socketJoinAttempted"),m(this,"mediaJoinAttempted"),m(this,"socketState"),m(this,"mediaState"),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}}get joinAttempted(){return this.mediaJoinAttempted||this.socketJoinAttempted}get roomJoined(){return this.mediaJoined&&this.socketJoined}updateSocketConnectionState(e,i){let n;const{reconnected:r}=this.socketState;switch(e){case"connected":n={state:"connected",reconnected:r,reconnectionAttempt:void 0};break;case"disconnected":n={state:"disconnected",reconnected:!1,reconnectionAttempt:0},this.socketJoined=!1;break;case"reconnected":n={state:"connected",reconnected:!0,reconnectionAttempt:void 0};break;case"reconnecting":n={state:"reconnecting",reconnected:r,reconnectionAttempt:0};break;case"reconnectAttempt":n={state:"reconnecting",reconnected:r,reconnectionAttempt:i};break;case"failed":n={state:"failed",reconnected:r,reconnectionAttempt:void 0},this.socketJoined=!1;break}n&&(P.emit(R.SOCKET_STATE_UPDATE,n),this.socketState=n)}}var T1=Object.defineProperty,E1=Object.getOwnPropertyDescriptor,Ea=(t,e,i,n)=>{for(var r=n>1?void 0:n?E1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&T1(e,i,r),r},ka,nd,ba,rd,zf;let cr=(zf=class extends Bt{constructor(t,e){super(),f(this,ba),f(this,ka,void 0),f(this,nd,void 0),m(this,"recordingPeerIds",[]),m(this,"recordings",[]),v(this,nd,t),v(this,ka,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,ka).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=ut(),{recording:i={}}=a(this,nd).getValue("defaults"),n=yield e.startRecording(i,t==null?void 0:t.allowMultiple);this.updateRecordings([...this.recordings,{id:n,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 B(this,ba,rd).call(this,"stop",["RECORDING","PAUSED"],t)})}pause(t){return u(this,null,function*(){yield B(this,ba,rd).call(this,"pause",["RECORDING"],t)})}resume(t){return u(this,null,function*(){yield B(this,ba,rd).call(this,"resume",["PAUSED"],t)})}},ka=new WeakMap,nd=new WeakMap,ba=new WeakSet,rd=function(t,e,i){return u(this,null,function*(){if(!a(this,ka).permissions.canRecord)throw l.error("DyteRecording::stop::permission_denied"),new w("User does not have permission to stop recording","1001");let n=[];if(i!==void 0){const r=this.recordings.find(s=>s.id===i);if(r===void 0)throw new w("Could not find the specified recording","1004");if(e.includes(r.state)){l.error("DyteRecording::stop::recording_not_in_expected_state",{recording:{state:r.state}});return}n.push(r)}else n=this.recordings.filter(r=>e.includes(r.state));n.forEach(r=>u(this,null,function*(){const s=r.state;t==="stop"&&(r.state="STOPPING",this.emit("recordingUpdate","STOPPING"));try{yield ut().updateRecording(r.id,t)}catch(o){throw l.error("DyteRecording::stop::recording_failed_to_stop",{error:o}),r.state!==s&&(r.state=s,this.emit("recordingUpdate",s)),new w("Error while stopping recording","1000")}}))})},zf);Ea([S.trace("DyteRecording.start")],cr.prototype,"start",1),Ea([S.trace("DyteRecording.stop")],cr.prototype,"stop",1),Ea([S.trace("DyteRecording.stop")],cr.prototype,"pause",1),Ea([S.trace("DyteRecording.stop")],cr.prototype,"resume",1),cr=Ea([lt("1000")],cr);var k1=Object.defineProperty,b1=Object.getOwnPropertyDescriptor,_1=(t,e,i,n)=>{for(var r=n>1?void 0:n?b1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&k1(e,i,r),r},Nu;class Yf{constructor(e,i,n){m(this,"recording"),m(this,"room"),f(this,Nu,void 0),v(this,Nu,e),this.recording=new cr(e,i),this.room=n,this.setupEvents()}getRecordingTypeFromProtoType(e){let i;switch(e){case Xn.BROWSER:i="BROWSER";break;case Xn.COMPOSITE:i="COMPOSITE";break;case Xn.TRACK:i="TRACK";break;default:i="BROWSER"}return i}setupEvents(){P.on(R.ROOM_STATE,e=>{e.activeRecordings.length!==0?this.recording.updateRecordings(e.activeRecordings.map(i=>{const n=this.getRecordingTypeFromProtoType(i.recordingType);return{id:i.recordingId,state:i.recordingStatus,type:n}})):this.recording.recordings.length&&this.recording.updateRecordings([])}),this.room.on(W.recordingStarted,e=>{let i=!1;const n=[...this.recording.recordings];if(n.forEach(r=>{r.id===e.recordingId&&(i=!0,r.state="RECORDING")}),i===!1){const r=this.getRecordingTypeFromProtoType(e.recordingType);n.push({id:e.recordingId,state:"RECORDING",type:r})}this.recording.updateRecordings(n)}),this.room.on(W.recordingPaused,e=>{const i=[...this.recording.recordings];i.forEach(n=>{n.id===e.recordingId&&(n.state="PAUSED")}),this.recording.updateRecordings(i)}),this.room.on(W.recordingStopped,e=>{const i=[...this.recording.recordings.filter(n=>n.id!==e.recordingId)];this.recording.updateRecordings(i)})}}Nu=new WeakMap,_1([S.trace("RecordingController.setupEvents")],Yf.prototype,"setupEvents",1);class w1{static hasFeature(e){var i;return(i=Y.hasFeature(e))!=null?i:!1}static getFeatureValue(e){return Y.getValue(e)}static getAllFeatures(){return Y.getAllFlags()}}class Lu{constructor(e,i,n){m(this,"logger"),m(this,"features"),m(this,"browserSpecs"),m(this,"callStats"),this.logger=e,this.features=i,this.browserSpecs=Ie,this.callStats=n}static init(e){return new Lu(l,w1,e)}}class xu{constructor(e){m(this,"internals"),this.internals=e}static init(){return u(this,null,function*(){const e=Lu.init(K);return new xu(e)})}}var I1=Object.defineProperty,C1=Object.getOwnPropertyDescriptor,jt=(t,e,i,n)=>{for(var r=n>1?void 0:n?C1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&I1(e,i,r),r},Xe,Me,Ce,Sn,vi,sd,Vu;class Dt extends Gr{constructor(e,i,n=Uu,r=!0){super(),f(this,Xe,void 0),f(this,Me,void 0),f(this,Ce,void 0),f(this,Sn,void 0),f(this,vi,void 0),f(this,sd,void 0),f(this,Vu,void 0),m(this,"audioUpdateInProgress"),m(this,"videoUpdateInProgress"),v(this,Vu,e),this.audioUpdateInProgress=!1,this.videoUpdateInProgress=!1,v(this,Xe,new Zf(e,i)),v(this,Me,new z1(a(this,Xe),void 0,n)),v(this,Ce,new iD(a(this,Xe),void 0,n)),v(this,vi,new Z1(a(this,Xe))),v(this,Sn,new Q1(a(this,Xe))),v(this,sd,r),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,vi).on("trackEnded",this.onScreenShareEnded.bind(this)),this.onVisibilityChange=this.onVisibilityChange.bind(this),document.addEventListener("visibilitychange",this.onVisibilityChange)}onVisibilityChange(){return u(this,null,function*(){K.tabChanged(document.visibilityState==="visible"),document.visibilityState!=="visible"?K.browserBackgrounded():(K.browserForegrounded(),yield this.setupSpeaker())})}repopulateAvailableDevices(){return u(this,null,function*(){return!0})}setupStreams(e){return u(this,arguments,function*({audio:i,video:n}){var r;i?K.audioOn():K.audioOff(),n?K.videoOn():K.videoOff();let s,o;if(i&&n)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&&n)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&&K.audioOff(),n&&!o&&K.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);K.selectedDevice("VIDEO",c)}if(s){const c=yield this.getDeviceById(s.getSettings().deviceId);K.selectedDevice("AUDIO",c)}(r=a(this,Sn).currentDevice)!=null&&r.deviceId&&K.selectedDevice("SPEAKER",a(this,Sn).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,Sn).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&&K.selectedDevice("AUDIO",e),this.emit("AUDIO_TRACK_CHANGE"),this.emit("DEVICE_CHANGE",{device:e})})}setupSpeaker(){return u(this,null,function*(){yield a(this,Sn).setupSpeaker();const{speaker:e}=this.getCurrentDevices();e&&this.emit("DEVICE_CHANGE",{device:e})})}setSpeakerDevice(e){return u(this,null,function*(){yield a(this,Sn).setupSpeaker(e),e!=null&&e.deviceId&&K.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&&K.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,vi).audioMediaTrack,video:a(this,vi).videoMediaTrack}}get screenShareEnabled(){return a(this,vi).trackEnabled}enableScreenShare(){return u(this,null,function*(){yield a(this,vi).enableScreenShare()})}disableScreenShare(){return u(this,null,function*(){a(this,vi).disableScreenShare()})}updateScreenshareConstraints(e){return u(this,null,function*(){yield a(this,vi).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,vi).disableScreenShare(),a(this,Xe).destruct()}onDeviceChange(e,i){return u(this,null,function*(){var n,r;this.emit("DEVICE_LIST_UPDATED",e),!(i||!a(this,sd))&&((n=e==null?void 0:e.added)==null||n.forEach(s=>u(this,null,function*(){var o;s&&!Uu(s)&&(s.kind==="audioinput"&&((o=this.audioTrack)==null?void 0:o.enabled)===!0?yield this.setAudioDevice(s):s.kind==="audiooutput"&&(yield this.setSpeakerDevice(s)))})),(r=e==null?void 0:e.removed)==null||r.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,Sn=new WeakMap,vi=new WeakMap,sd=new WeakMap,Vu=new WeakMap,jt([S.trace("MediaHandler.setupStreams")],Dt.prototype,"setupStreams",1),jt([S.trace("MediaHandler.enableAudio")],Dt.prototype,"enableAudio",1),jt([S.trace("MediaHandler.disableAudio")],Dt.prototype,"disableAudio",1),jt([S.trace("MediaHandler.setAudioDevice")],Dt.prototype,"setAudioDevice",1),jt([S.trace("MediaHandler.enableVideo")],Dt.prototype,"enableVideo",1),jt([S.trace("MediaHandler.disableVideo")],Dt.prototype,"disableVideo",1),jt([S.trace("MediaHandler.setVideoDevice")],Dt.prototype,"setVideoDevice",1),jt([S.trace("MediaHandler.updateVideoConstraints")],Dt.prototype,"updateVideoConstraints",1),jt([S.trace("MediaHandler.enableScreenShare")],Dt.prototype,"enableScreenShare",1),jt([S.trace("MediaHandler.disableScreenShare")],Dt.prototype,"disableScreenShare",1),jt([S.trace("MediaHandler.updateScreenshareConstraints")],Dt.prototype,"updateScreenshareConstraints",1),jt([S.trace("MediaHandler.destruct")],Dt.prototype,"destruct",1),jt([S.trace("MediaHandler.onDeviceChange")],Dt.prototype,"onDeviceChange",1);function ad(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 P1=["virtual","emulator","krisp","solstice conference","teams","loom","zoom","manycam","blackhole","displayport","xsplit","wirecast","vMix","elgato","epiphan","voice changer","voicemod","morphvoxx"];function Uu(t){var e,i;const n=(e=t.label)==null?void 0:e.toLowerCase();return((i=Ie._bowser)==null?void 0:i.getOSName())==="macOS"&&n.includes("iphone")?(l.log("isVirtualDevice::ignore_macos_continuity"),!0):P1.some(r=>n==null?void 0:n.includes(r))}function R1(t,e){return u(this,null,function*(){if(!(t!=null&&t.length))return e;const i=new AudioContext,n=yield Promise.all(t==null?void 0:t.map(o=>o(i))),r=i.createMediaStreamSource(new MediaStream([e])),s=i.createMediaStreamDestination();try{let o=r;for(let c=0;c<n.length;c+=1)o.connect(n[c]),o=n[c];o.connect(s)}catch(o){return l.error("getTransformedAudioTrack::middleware_execution_failed",{error:o}),e}return s.stream.getAudioTracks()[0]})}var ns;class M1{constructor(){f(this,ns,void 0)}terminateMiddlewareWebWorker(){if(a(this,ns))try{Vr(a(this,ns)),v(this,ns,void 0)}catch(e){l.debug("WorkerTimers::terminateMiddlewareWebWorker::failed")}}getTransformedVideoTrack(e,i,n){return u(this,null,function*(){if(!(e!=null&&e.length))return i;const r=document.createElement("canvas"),s=yield Promise.all(e==null?void 0:e.map(g=>g({canvas:r,WorkerTimers:yS})));if(n.disablePerFrameCanvasRendering){const g=r.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=r.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(),r.remove();return}try{d.drawImage(o,0,0);for(let g=0;g<s.length;g+=1)typeof s[g]=="function"&&(yield s[g](r,d))}catch(g){l.error("getTransformedVideoTrack::middleware_execution_failed",{error:g})}});try{o.play()}catch(g){}o.addEventListener("play",()=>{r.width=o.width||i.getSettings().width,r.height=o.width||i.getSettings().height,v(this,ns,dc(h,50))},!1);const p=r.captureStream().getVideoTracks()[0];return Object.defineProperty(p,"originalSettings",{value:i.getSettings()}),p})}}ns=new WeakMap;const Qf={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}}},A1=[[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"}]]],D1=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 n=A1;Y.hasFeature(ne.OVERRIDE_HIVE_SIMULCAST_DYNAMIC)&&(n=JSON.parse(Y.getValue(ne.OVERRIDE_HIVE_SIMULCAST_DYNAMIC)));const r=n.map(([c])=>c).sort((c,d)=>c-d);let s=Number.MAX_VALUE,o=0;return r.forEach((c,d)=>{Math.abs(c-i)<s&&(s=Math.abs(c-i),o=d)}),n[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 O1=fb(),rs=mi(O1.config.media);function N1(t){var e,i;const n={};return t.audio&&(n.audio={enableStereo:(e=t.audio.enableStereo)!=null?e:!1,enableHighBitrate:(i=t.audio.enableHighBitrate)!=null?i:!1}),n.video=t.video.quality,n}var ss,Fu;class L1{constructor(e,i){f(this,ss,void 0),f(this,Fu,void 0),m(this,"getScreenShareConstraints",()=>{var n,r,s,o,c,d,h,p,g,y,E;const b=(n=a(this,ss))==null?void 0:n.screenshare,N=(s=(r=b==null?void 0:b.width)==null?void 0:r.max)!=null?s:1920,M=(c=(o=b==null?void 0:b.height)==null?void 0:o.max)!=null?c:1080,U=(h=(d=b==null?void 0:b.frameRate)==null?void 0:d.max)!=null?h:5;let $=(g=(p=b==null?void 0:b.frameRate)==null?void 0:p.ideal)!=null?g:5;const J=b==null?void 0:b.displaySurface,I=b==null?void 0:b.selfBrowserSurface;Y.getValue(ne.VAL_MIN_FRAMERATE)&&($=parseInt((y=Y.getValue(ne.VAL_MIN_FRAMERATE))==null?void 0:y.toString(),10));let ae={width:{max:N},height:{max:M},frameRate:{ideal:$,max:U}};if(Y.hasFeature(ne.SCREENSHARE_CONSTRAINTS)){const se=(E=Y.getValue(ne.SCREENSHARE_CONSTRAINTS))==null?void 0:E.toString();ae=JSON.parse(se)}return J!==void 0&&["monitor","browser","window"].includes(J)&&(ae=H(x({},ae),{displaySurface:J})),I!==void 0&&(ae=H(x({},ae),{selfBrowserSurface:I})),{audio:!0,video:ae}}),m(this,"getAudioConstraints",n=>{var r,s,o,c,d,h,p,g;const y={},E=(r=a(this,ss))==null?void 0:r.audio,b=E!=null&&E.enableStereo?2:1;return Ie.isFirefox()||Ie.isWebKitBased()?(y.audio={deviceId:n,autoGainControl:(s=E==null?void 0:E.autoGainControl)!=null?s:!0,echoCancellation:(o=E==null?void 0:E.echoCancellation)!=null?o:!0,noiseSuppression:(c=E==null?void 0:E.noiseSupression)!=null?c:!0,channelCount:b},y):(y.audio={},y.audio.optional=[n?{sourceId:n}:{sourceId:"default"},{channelCount:b},{echoCancellation:(d=E==null?void 0:E.echoCancellation)!=null?d:!0},{googEchoCancellation:(h=E==null?void 0:E.echoCancellation)!=null?h:!0},{googAutoGainControl:(p=E==null?void 0:E.autoGainControl)!=null?p:!0},{googNoiseSuppression:(g=E==null?void 0:E.noiseSupression)!=null?g:!0},{googHighpassFilter:!0}],y)}),m(this,"getVideoConstraints",n=>{var r,s,o,c;const d={},h=(r=a(this,ss))==null?void 0:r.video;let p=Qf.vga;if(typeof h=="string"?p=Qf[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),Y.hasFeature(ne.VIDEO_CONSTRAINTS)){const g=(c=Y.getValue(ne.VIDEO_CONSTRAINTS))==null?void 0:c.toString();p=JSON.parse(g)}return d.video=p,typeof d.video=="boolean"||(n?d.video.deviceId={exact:n}:d.video.facingMode="user"),d}),v(this,Fu,e),v(this,ss,i)}getUpdatedVideoConstraints(e){return e}}ss=new WeakMap,Fu=new WeakMap;class Bu extends Error{constructor(e,i,n){super(i),m(this,"constraints"),m(this,"name"),this.name=e,this.constraints=n}}class x1{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(n=>n.kind==="audioinput")})}getVideoInputDevices(e){return u(this,null,function*(){let i=e;return e||(i=yield this.getAvailableDevices()),i.filter(n=>n.kind==="videoinput")})}getAudioOutputDevices(e){return u(this,null,function*(){let i=e;return e||(i=yield this.getAvailableDevices()),i.filter(n=>n.kind==="audiooutput")})}}var V1=Object.defineProperty,U1=Object.getOwnPropertyDescriptor,yi=(t,e,i,n)=>{for(var r=n>1?void 0:n?U1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&V1(e,i,r),r},_a,Si,Wu,Xf;let Ht=(Xf=class extends x1{constructor(t,e){super(),m(this,"availableDevices"),f(this,_a,void 0),f(this,Si,void 0),f(this,Wu,void 0),v(this,Wu,t),v(this,Si,new L1(t,e)),v(this,_a,new AbortController),this.availableDevices=[],this.getAvailableDevices()}get constraintsBuilder(){return a(this,Si)}destruct(){return u(this,null,function*(){var t;(t=a(this,_a))==null||t.abort()})}handlePermissionErrors(t,e){const i=ad(t,e.name,e.message);return this.permissions[t]=i,P.emit(R.MEDIA_PERMISSION_ERROR,{message:i,constraints:e.constraints,kind:t}),i}getAudioAndVideoTrack(t,e){return u(this,null,function*(){const i={audio:a(this,Si).getAudioConstraints(t).audio,video:a(this,Si).getVideoConstraints(e).video};try{l.info("getUserMediaWithoutTimeout::requesting_user_media",{constraints:JSON.stringify(i)});const n=yield navigator.mediaDevices.getUserMedia(i);l.info("getUserMediaWithoutTimeout::received_user_media",{constraints:JSON.stringify(i)});const r=n.getAudioTracks()[0];let s=n.getVideoTracks()[0];if(this.permissions.audio="ACCEPTED",this.permissions.video="ACCEPTED",Y.hasFeature(ne.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 P.emit(R.MEDIA_PERMISSION_UPDATE,{message:this.permissions.audio,kind:"audio"}),P.emit(R.MEDIA_PERMISSION_UPDATE,{message:this.permissions.video,kind:"video"}),{audioTrack:r,videoTrack:s}}catch(n){throw l.error("WebMediaInterface.getAudioAndVideoTrack",{error:n}),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",P.emit(R.MEDIA_PERMISSION_UPDATE,{message:this.permissions.audio,kind:"audio"}),new w("No audio devices available","1606");const n=r=>u(this,null,function*(){let s;try{i=i.filter(c=>c.deviceId!==r),s=a(this,Si).getAudioConstraints(r),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=ad("audio",o.name,o.message),d=new Bu(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,Si).getAudioConstraints(h.deviceId);return l.info("getAudioTrack::retrying_gum_for_next_device",{constraints:JSON.stringify(p)}),n(h.deviceId)}throw d}});try{const r=yield n(e);return r.enabled=!t,this.permissions.audio!=="ACCEPTED"&&(this.permissions.audio="ACCEPTED",P.emit(R.MEDIA_PERMISSION_UPDATE,{message:this.permissions.audio,kind:"audio"})),r}catch(r){throw r.constraints&&this.handlePermissionErrors("audio",r),new w(r.message,"1601")}})}getVideoTrack(t){return u(this,null,function*(){var e;const i=Y.hasFeature(ne.OBS_QUALITY),n=(e=yield this.getCurrentDeviceLabel(t))==null?void 0:e.includes("OBS Virtual"),r=i&&n,s=yield this.getVideoInputDevices();if(s.length===0)throw this.permissions.video="NO_DEVICES_AVAILABLE",P.emit(R.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;r&&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(r&&typeof h!="boolean"&&typeof h.width=="object"){const{width:g,height:y}=p.getSettings(),{ideal:E}=h.width;p.applyConstraints({width:{ideal:E},height:{ideal:Math.floor(y*E/g)},frameRate:h.frameRate})}return l.info("getUserMediaWithoutTimeout::received_user_media",{constraints:JSON.stringify(d)}),p}catch(d){const h=ad("video",d.name,d.message),p=new Bu(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,Si).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,Si).getVideoConstraints(t),d=yield o(c);return this.permissions.video!=="ACCEPTED"&&(this.permissions.video="ACCEPTED",P.emit(R.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)}),K.screenShareRequested();const i=yield navigator.mediaDevices.getDisplayMedia(e);return l.info("getDisplayMediaWithoutTimeout::received_display_media",{constraints:JSON.stringify(e)}),i}catch(i){const n=ad("video",i.name,i.message),r=new Bu(i.name,i.message,e),s={video:!0};if(x_(e,s)||!Y.hasFeature(ne.SCREEENSHARE_CONSTRAINTS_RETRY))throw r;if(n==="COULD_NOT_START")return t(s);throw r}});try{const e=a(this,Si).getScreenShareConstraints(),i=yield t(e);return this.permissions.screenshare!=="ACCEPTED"&&(this.permissions.screenshare="ACCEPTED",P.emit(R.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,n;const r=p=>`${p.kind}-${p.deviceId}-${p.groupId}`,s=this.availableDevices,o=new Set(s.map(p=>r(p))),c=yield this.getAvailableDevices(),d=new Set(c.map(p=>r(p))),h={added:c.filter(p=>!o.has(r(p))),removed:s.filter(p=>!d.has(r(p))),devices:c};if((i=h.added)!=null&&i.length||(n=h.removed)!=null&&n.length){l.info("repopulated_full_device_list",{devices:JSON.stringify(c)});const p=[...h.added,...h.removed];p.some(g=>g.kind==="audioinput")&&K.devices("AUDIO",c==null?void 0:c.filter(g=>g.kind==="audioinput")),p.some(g=>g.kind==="videoinput")&&K.devices("VIDEO",c==null?void 0:c.filter(g=>g.kind==="videoinput")),p.some(g=>g.kind==="audiooutput")&&K.devices("SPEAKER",c==null?void 0:c.filter(g=>g.kind==="audiooutput")),t(e,h,!1)}}),{signal:a(this,_a).signal})})}},_a=new WeakMap,Si=new WeakMap,Wu=new WeakMap,Xf);yi([S.trace("WebMediaInterface.destruct")],Ht.prototype,"destruct",1),yi([S.trace("WebMediaInterface.handlePermissionErrors")],Ht.prototype,"handlePermissionErrors",1),yi([S.trace("WebMediaInterface.getAudioAndVideoTrack")],Ht.prototype,"getAudioAndVideoTrack",1),yi([S.trace("WebMediaInterface.getAudioTrack")],Ht.prototype,"getAudioTrack",1),yi([S.trace("WebMediaInterface.getVideoTrack")],Ht.prototype,"getVideoTrack",1),yi([S.trace("WebMediaInterface.getScreenShareTracks")],Ht.prototype,"getScreenShareTracks",1),yi([S.trace("WebMediaInterface.getAvailableDevices")],Ht.prototype,"getAvailableDevices",1),yi([S.trace("WebMediaInterface.getAvailableDevicesByKind")],Ht.prototype,"getAvailableDevicesByKind",1),yi([S.trace("WebMediaInterface.getDevice")],Ht.prototype,"getDevice",1),yi([S.trace("WebMediaInterface.onDeviceChange")],Ht.prototype,"onDeviceChange",1),Ht=yi([lt("1600")],Ht);const Zf=Ht,wa={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}},F1=(t=0)=>new Promise(e=>setTimeout(e,t)),B1=(t,e,i)=>{const n=typeof i=="number"?i:250,r=t.createMediaStreamSource(e),s=t.createAnalyser();s.fftSize=2048,r.connect(s);const o=new Uint8Array(s.fftSize);let c=!1;setTimeout(()=>{c=!0},n);function d(){return c?Promise.resolve(!0):(s.getByteTimeDomainData(o),o.some(h=>h!==128&&h!==0)?Promise.resolve(!1):F1().then(d))}return d().then(h=>(r.disconnect(),h),h=>{throw r.disconnect(),h})},W1=typeof AudioContext!="undefined"?AudioContext:null;class ju{constructor(e){m(this,"_AudioContext"),m(this,"audioContext"),m(this,"_audioContextRefContainers");const i=x({AudioContext:W1},e);Object.defineProperties(this,{_AudioContext:{value:i.AudioContext},audioContext:{value:null,writable:!0},_audioContextRefContainers:{value:new Set},AudioContextProvider:{enumerable:!0,value:ju}})}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 ev=new ju,j1=3,H1=250;function G1(t){const e={},i=ev.getOrCreate(e);let n=j1;function r(){return n-=1,B1(i,t.srcObject,H1).then(s=>s?n>0?r():!0:!1).catch(()=>!0)}return r().finally(()=>{ev.release(e)})}function tv(t){return u(this,null,function*(){const e=new Audio,i=new MediaStream;i.addTrack(t),e.srcObject=i;let n=!1;try{const r=e.play();r&&(yield r),n=yield G1(e),n&&l.info("checkIfAudioTrackIsSilent::silence_detected")}catch(r){l.error("checkIfAudioTrackIsSilent::failed_to_detect_silence",{error:r})}finally{e.pause(),e.remove()}return n})}var q1=Object.defineProperty,$1=Object.getOwnPropertyDescriptor,iv=(t,e,i,n)=>{for(var r=n>1?void 0:n?$1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&q1(e,i,r),r};let od=class extends Gr{constructor(t,e,i){var n;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",r=>wa.setItem(this.userPreferredDeviceKey,r)),m(this,"getUserPreferredDevice",()=>wa.getItem(this.userPreferredDeviceKey)),m(this,"isCustomTrack",!1),this.mediaInterface=t,e&&this.setMediaTrack(e),this.userSelectedDevice=(n=this.getUserPreferredDevice())!=null?n: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 n=this.mediaTrack.getConstraints();return this.userSelectedDevice?(e=(t=n==null?void 0:n.deviceId)!=null?t:n==null?void 0:n.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()&&!Y.hasFeature(ne.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))}};iv([S.trace("BaseMediaHandler.unmuteTrack")],od.prototype,"unmuteTrack",1),od=iv([lt("1600")],od);const nv=od;var J1=Object.defineProperty,K1=Object.getOwnPropertyDescriptor,Hu=(t,e,i,n)=>{for(var r=n>1?void 0:n?K1(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&J1(e,i,r),r};const Gu="[Dyte]nonSilentDeviceLabels";class cd extends nv{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 n=yield this.mediaInterface.getAudioTrack(e,this.userSelectedDevice);yield this.setMediaTrack(n)})}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 R1(this.middlewares,this.mediaTrack),this.emit("trackChanged")}catch(n){l.error("AudioMediaHandler.setTransformedTrack",{error:n}),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 n=e;const r=yield this.mediaInterface.getAudioInputDevices(),s=this.isNonPreferredDevice?r.filter(d=>d&&!this.isNonPreferredDevice(d)):r;if(!(s!=null&&s.length))return n;s.find(d=>d.deviceId===e.getSettings().deviceId)||(n.stop(),l.info("localmediahandler::setupstreams::found_audio_non_preferred"),n=yield this.mediaInterface.getAudioTrack(!1,s[0].deviceId));const o=JSON.parse(wa.getItem(Gu));if(o!=null&&o.devices.some(d=>d.label===n.label))return n;if(!(yield tv(n))){const d=(i=o==null?void 0:o.devices.concat({label:n.label}))!=null?i:[{label:n.label}];return wa.setItem(Gu,JSON.stringify({devices:d})),n}l.info("AudioMediaHandler.conditionallyChangeTrack.DetectedSilentTrack");const c=n.getSettings().deviceId;return s.filter(d=>d.deviceId!==c).some(d=>u(this,null,function*(){if(n=yield this.mediaInterface.getAudioTrack(!1,d.deviceId),!(yield tv(n))){const h=o.devices.concat({label:n.label});return wa.setItem(Gu,JSON.stringify({devices:h})),l.info("AudioMediaHandler.conditionallyChangeTrack.SuccesfullyChangedTrack"),!0}return l.info("AudioMediaHandler.conditionallyChangeTrack.AnotherSilentTrackFound"),!1})),n})}}Hu([S.trace("AudioMediaHandler.setTransformedTrack")],cd.prototype,"setTransformedTrack",1),Hu([S.trace("AudioMediaHandler.onTrackEnded")],cd.prototype,"onTrackEnded",1),Hu([S.trace("AudioMediaHandler.conditionallyChangeTrack")],cd.prototype,"conditionallyChangeTrack",1);const z1=cd;var Ia;class Y1{constructor(e){f(this,Ia,void 0),m(this,"currentDevice"),v(this,Ia,e)}setupSpeaker(e){return u(this,null,function*(){var i,n;if(!(a(this,Ia)instanceof Zf))return;let r=e;if(e||([r]=(yield a(this,Ia).getAvailableDevicesByKind("audiooutput")).filter(o=>!Uu(o))),!r)throw new w("No speaker found","1608");if(((i=this.currentDevice)==null?void 0:i.deviceId)===r.deviceId)return;this.currentDevice=r;const s=document.querySelectorAll("audio");(n=s[0])!=null&&n.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){}}))})}}Ia=new WeakMap;const Q1=Y1;class X1 extends Gr{constructor(e){super(),m(this,"mediaInterface"),m(this,"audioMediaTrack"),m(this,"videoMediaTrack"),this.mediaInterface=e}get trackEnabled(){return!!this.videoMediaTrack}enableScreenShare(){return u(this,null,function*(){var e,i;try{const{audioTrack:n,videoTrack:r}=yield this.mediaInterface.getScreenShareTracks();if(this.audioMediaTrack=n,this.videoMediaTrack=r,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",P.emit(R.MEDIA_PERMISSION_UPDATE,{message:this.mediaInterface.permissions.screenshare,kind:"screenshare"}))}catch(n){}})}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(n){l.error("ScreenShareHandler.updateConstraints.error",{error:n})}})}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")}}const Z1=X1;var eD=Object.defineProperty,tD=Object.getOwnPropertyDescriptor,dd=(t,e,i,n)=>{for(var r=n>1?void 0:n?tD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&eD(e,i,r),r},Ca,ld;class Pa extends nv{constructor(e,i,n){super(e,i,n),f(this,Ca,void 0),f(this,ld,{disablePerFrameCanvasRendering:!1}),v(this,Ca,new M1)}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 n=yield this.mediaInterface.getVideoTrack(this.userSelectedDevice);yield this.setMediaTrack(n)})}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,Ca).getTransformedVideoTrack(this.middlewares,this.mediaTrack,a(this,ld)),this.emit("trackChanged")}catch(n){l.error("VideoMediaHandler.setTransformedTrack",{error:n}),this.transformedMediaTrack=this.mediaTrack}})}setVideoMiddlewareGlobalConfig(e){return u(this,null,function*(){v(this,ld,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(n){l.error("VideoMediaHandler.updateConstraints.error",{error:n})}})}terminateMiddlewareWebWorker(){a(this,Ca).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 n=yield this.mediaInterface.getVideoInputDevices(),r=this.isNonPreferredDevice?n.filter(s=>!this.isNonPreferredDevice(s)):n;return!(r!=null&&r.length)||window.FAST_DYTE||r.find(s=>s.deviceId===e.getSettings().deviceId)||(i.stop(),l.info("localmediahandler::setupstreams::found_video_non_preferred"),i=yield this.mediaInterface.getVideoTrack(r[0].deviceId)),i})}}Ca=new WeakMap,ld=new WeakMap,dd([S.trace("VideoMediaHandler.setTransformedTrack")],Pa.prototype,"setTransformedTrack",1),dd([S.trace("VideoMediaHandler.setVideoMiddlewareGlobalConfig")],Pa.prototype,"setVideoMiddlewareGlobalConfig",1),dd([S.trace("VideoMediaHandler.onTrackEnded")],Pa.prototype,"onTrackEnded",1),dd([S.trace("VideoMediaHandler.conditionallyChangeTrack")],Pa.prototype,"conditionallyChangeTrack",1);const iD=Pa,rv=mi(Jl());var Gt,as,ud,Ra;const Ma=class{constructor(t){if(f(this,Gt,void 0),f(this,as,void 0),f(this,ud,void 0),f(this,Ra,void 0),!t)throw new w("Could not load preset.","0904");v(this,Gt,t.config),v(this,ud,t.name),v(this,as,t.ui||mi(Jl().ui)),v(this,Ra,t.permissions.plugins.config)}static fromResponse(t){return new Ma(t)}static default(){return new Ma(rv)}static init(t,e=!0){return!t||e?new Ma(rv):new Ma(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,as).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,Ra)).filter(t=>a(this,Ra)[t].disabled)}get designTokens(){return a(this,as).designTokens}get configDiff(){return a(this,as).configDiff}get mediaConstraints(){var t,e,i,n,r,s,o,c,d,h,p,g,y,E,b,N,M,U,$,J,I,ae,se,Se;return{audio:{enableStereo:(n=(i=(e=(t=a(this,Gt))==null?void 0:t.media)==null?void 0:e.audio)==null?void 0:i.enableStereo)!=null?n:rs.audio.enableStereo,enableHighBitrate:(c=(o=(s=(r=a(this,Gt))==null?void 0:r.media)==null?void 0:s.audio)==null?void 0:o.enableHighBitrate)!=null?c:rs.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:rs.video.quality,frameRate:(N=(b=(E=(y=a(this,Gt))==null?void 0:y.media)==null?void 0:E.video)==null?void 0:b.frameRate)!=null?N:rs.video.frameRate},screenshare:{quality:(J=($=(U=(M=a(this,Gt))==null?void 0:M.media)==null?void 0:U.screenshare)==null?void 0:$.quality)!=null?J:rs.screenshare.quality,frameRate:(Se=(se=(ae=(I=a(this,Gt))==null?void 0:I.media)==null?void 0:ae.screenshare)==null?void 0:se.frameRate)!=null?Se:rs.screenshare.frameRate}}}get name(){return a(this,ud)}};let nD=Ma;Gt=new WeakMap,as=new WeakMap,ud=new WeakMap,Ra=new WeakMap;var rD=Object.defineProperty,sD=Object.getOwnPropertyDescriptor,sv=(t,e,i,n)=>{for(var r=n>1?void 0:n?sD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&rD(e,i,r),r},Aa;class qu extends Bt{constructor(e){super(),f(this,Aa,void 0),m(this,"state","IDLE"),m(this,"playbackUrl"),m(this,"ingestionCredentials"),m(this,"viewerCount"),v(this,Aa,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,Aa).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=ut(),{playbackUrl:n,ingestionCredentials:r}=yield i.startLivestreaming(e);this.playbackUrl=n,this.ingestionCredentials=r,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,Aa).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 ut().stopLivestreaming()}catch(e){throw l.error("DyteLivestream::stop::livestream_failed_to_stop",{error:e}),this.setLivestreamState("STOPPING"),new w("Error while stopping livestream","1900")}})}}Aa=new WeakMap,sv([S.trace("livestream.start")],qu.prototype,"start",1),sv([S.trace("livestream.stop")],qu.prototype,"stop",1);var aD=Object.defineProperty,oD=Object.getOwnPropertyDescriptor,cD=(t,e,i,n)=>{for(var r=n>1?void 0:n?oD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&aD(e,i,r),r},Da,Oa,Tn;class av{constructor(e,i){m(this,"livestream"),f(this,Da,void 0),f(this,Oa,void 0),f(this,Tn,void 0),v(this,Oa,e),this.livestream=new qu(e),v(this,Tn,i),this.setupEvents()}fetchInitialLivestreamingState(){return u(this,null,function*(){const e=ut(),{status:i,playbackUrl:n,manualIngest:r,ingestionCredentials:s}=yield e.getActiveLivestream();this.livestream.playbackUrl=n,this.livestream.ingestionCredentials=s,i==="LIVE"&&this.livestream.setLivestreamState("LIVESTREAMING"),i==="INVOKED"&&r&&this.livestream.setLivestreamState("WAITING_ON_MANUAL_INGESTION")})}setupEvents(){a(this,Tn).on(W.startedLivestream,e=>u(this,null,function*(){this.livestream.playbackUrl=e.playbackUrl,this.livestream.setLivestreamState("LIVESTREAMING");try{a(this,Oa).permissions.canLivestream&&(yield this.fetchInitialLivestreamingState())}catch(i){l.error("Error: LivestreamController.fetchLivestream during startedLivestream re-fetch")}})),a(this,Tn).on(W.livestreamingInvoked,e=>u(this,null,function*(){if(e.manualIngest){this.livestream.setLivestreamState("WAITING_ON_MANUAL_INGESTION");try{a(this,Oa).permissions.canLivestream&&(yield this.fetchInitialLivestreamingState())}catch(i){l.error("Error: LivestreamController.fetchLivestream during livestreamingInvoked re-fetch")}}})),a(this,Tn).on(W.stoppedLivestream,()=>{this.livestream.setLivestreamState("IDLE"),this.livestream.playbackUrl=void 0,this.livestream.ingestionCredentials=void 0}),a(this,Tn).on(W.erroredLivestream,()=>{this.livestream.setLivestreamState("IDLE"),this.livestream.playbackUrl=void 0}),a(this,Tn).on(W.roomPeerCount,e=>{this.livestream.viewerCount=e.count,this.livestream.emit("viewerCountUpdate",e.count)}),P.on(R.PEER_JOINED_INTERNAL,e=>u(this,null,function*(){var i;((i=e.flags)==null?void 0:i.hiddenParticipant)===!0&&e.recorderType==="LIVESTREAMER"&&(v(this,Da,e.id),this.livestream.setLivestreamState("LIVESTREAMING"))})),P.on(R.PEER_CLOSED,e=>{e.id===a(this,Da)&&(v(this,Da,void 0),this.livestream.setLivestreamState("IDLE"))}),P.onAsync(R.LEAVE_MEDIA_ROOM,()=>u(this,null,function*(){this.livestream.playbackUrl||(l.info("Fetching livestreaming state on leave stage"),yield this.fetchInitialLivestreamingState())})),P.on(R.SOCKET_SERVICE_ROOM_JOINED,()=>u(this,null,function*(){try{yield this.fetchInitialLivestreamingState()}catch(e){l.error("Error: LivestreamController.fetchLivestream")}}))}}Da=new WeakMap,Oa=new WeakMap,Tn=new WeakMap,cD([S.trace("LivestreamController.setupEvents")],av.prototype,"setupEvents",1);var dD=Object.defineProperty,lD=Object.getOwnPropertyDescriptor,Na=(t,e,i,n)=>{for(var r=n>1?void 0:n?lD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&dD(e,i,r),r},Et,dr,lr,$u,ov;class os{constructor({name:e,socketHandler:i,meetingId:n}){f(this,$u),m(this,"name",""),f(this,Et,{}),f(this,dr,""),f(this,lr,void 0),m(this,"rateLimitConfig",{maxInvocations:5,period:1}),m(this,"bulkRateLimitConfig",{maxInvocations:5,period:1}),m(this,"listeners",{}),this.name=e,v(this,lr,i),v(this,dr,n)}set(e,i,n=!0,r=!1){return u(this,null,function*(){a(this,Et)[e]=i,n&&this.remoteSet(e,i),r&&(this.listeners[e]&&this.listeners[e].forEach(s=>s({[e]:a(this,Et)[e]})),this.listeners["*"]&&this.listeners["*"].forEach(s=>s({[e]:a(this,Et)[e]})))})}remoteSet(e,i){a(this,lr).storeInsertKeys(a(this,dr),this.name,[{key:e,payload:i}])}bulkSet(e){return u(this,null,function*(){e.forEach(({key:i,payload:n})=>{a(this,Et)[i]=n}),a(this,lr).storeInsertKeys(a(this,dr),this.name,e)})}update(e,i,n=!0){return u(this,null,function*(){B(this,$u,ov).call(this,e,i,n)})}delete(e,i=!0,n=!1){return u(this,null,function*(){if(a(this,Et)[e]&&delete a(this,Et)[e],i)return a(this,lr).storeDeleteKeys(a(this,dr),this.name,[{key:e}]);n&&(this.listeners[e]&&(this.listeners[e].forEach(r=>r({[e]:void 0})),delete this.listeners[e]),this.listeners["*"]&&this.listeners["*"].forEach(r=>r({[e]:void 0})))})}bulkDelete(e){return u(this,null,function*(){return e.forEach(({key:i})=>{a(this,Et)[i]&&delete a(this,Et)[i]}),a(this,lr).storeDeleteKeys(a(this,dr),this.name,e)})}get(e){if(a(this,Et)[e])return a(this,Et)[e]}getAll(){return a(this,Et)}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 n;if(i){this.listeners[e]=((n=this.listeners[e])==null?void 0:n.filter(r=>r!==i))||[];return}this.listeners[e]&&delete this.listeners[e]}populate(e){v(this,Et,e)}}Et=new WeakMap,dr=new WeakMap,lr=new WeakMap,$u=new WeakSet,ov=function(t,e,i=!0){let n;const r=a(this,Et)[t],s=Object.prototype.toString.call(e),o=Object.prototype.toString.call(r);if(s!==o){this.set(t,e);return}switch(o){case"[object Array]":n=[...r,...e];break;case"[object Object]":n=x(x({},r),e);break;case"[object Map]":n=new Map([...r,...e]);break;case"[object Set]":n=new Set([...r,...e]);break;default:n=e;break}this.set(t,n,i)},Na([At(Jr,"rateLimitConfig")],os.prototype,"remoteSet",1),Na([At(Jr,"bulkRateLimitConfig")],os.prototype,"bulkSet",1),Na([At(Jr,"rateLimitConfig")],os.prototype,"update",1),Na([At(Jr,"rateLimitConfig")],os.prototype,"delete",1),Na([At(Jr,"bulkRateLimitConfig")],os.prototype,"bulkDelete",1);var cs,ds,hd,Ju,pd,ur,Ku,cv;class uD{constructor(e,i){f(this,hd),f(this,Ku),m(this,"stores",new Map),f(this,cs,void 0),f(this,ds,""),f(this,pd,void 0),f(this,ur,new Map),v(this,cs,i),v(this,ds,e.getValue("meetingId")),v(this,pd,e),B(this,Ku,cv).call(this)}create(e){const i=new os({name:e,socketHandler:a(this,cs),meetingId:a(this,ds)});return a(this,cs).storeGetKeys(a(this,ds),e,[]),new Promise((n,r)=>{const s=setTimeout(()=>r(Error("Failed")),3e3);a(this,ur).set(e,{rejectTimeout:s,resolve:n,store:i})})}}cs=new WeakMap,ds=new WeakMap,hd=new WeakSet,Ju=function(){return a(this,pd).getValue("peerId")},pd=new WeakMap,ur=new WeakMap,Ku=new WeakSet,cv=function(){[z.storeInsertKeys,z.storeGetKeys,z.storeDeleteKeys].forEach(t=>{a(this,cs).on(t,e=>u(this,null,function*(){var i,n;if(e.pluginId!==a(this,ds))return;const r=(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===z.storeGetKeys){const o=a(this,ur).get(e.storeName),c=this.stores.get(e.storeName)||(o==null?void 0:o.store);a(this,ur).get(e.storeName)&&(this.stores.set(e.storeName,o.store),o.resolve(c),clearTimeout(o.rejectTimeout),a(this,ur).delete(e.storeName)),r.forEach(d=>{c.set(d.key,d.payload,!1,!1)});return}const s=this.stores.get(e.storeName)||((n=a(this,ur).get(e.storeName))==null?void 0:n.store);s!==void 0&&(t===z.storeInsertKeys&&r.forEach(({key:o,peerId:c,payload:d})=>{c!==a(this,hd,Ju)&&s.set(o,d,!1,!0)}),t===z.storeDeleteKeys&&r.forEach(({key:o,peerId:c})=>{c!==a(this,hd,Ju)&&s.delete(o,!1,!0)}))}))})};function hr(t){var e,i,n,r,s,o,c,d,h,p,g,y,E;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:(n=t.videoTrack)==null?void 0:n.id,permission:"mediaPermissions"in t?(r=t.mediaPermissions)==null?void 0:r.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:(E=(y=t.screenShareTracks)==null?void 0:y.video)==null?void 0:E.id}}}}:{}}var hD=Object.defineProperty,pD=Object.getOwnPropertyDescriptor,ls=(t,e,i,n)=>{for(var r=n>1?void 0:n?pD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&hD(e,i,r),r};const mD=.8,gD=1.2;var La,xa,En,us,Va,pr,hs,ps,Ua,zu,dv,kn,md,mr,ms,Fa,bn,Yu,gd,Qu,Xu,lv,Zu,uv,hv;let Yi=(hv=class extends Bt{constructor(t,e,i,n){super(),f(this,us),f(this,pr),f(this,ps),f(this,zu),f(this,ms),f(this,gd),f(this,Xu),f(this,Zu),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,La,void 0),m(this,"supportsRemoteControl",!1),f(this,xa,void 0),m(this,"presetName"),f(this,En,void 0),f(this,kn,void 0),f(this,md,void 0),f(this,mr,new Map),f(this,bn,1),f(this,Yu,Yl(I=>{if(!this.videoTrack)return;const{clientWidth:ae,clientHeight:se}=I,{width:Se,height:nt}=this.videoTrack.getSettings();if(!Se||!nt)return;const gt=nt/se,Ft=Se/ae,A=Math.max(gt,Ft);A>gD&&a(this,bn)===1?(v(this,bn,0),P.emit(R.MAX_SPATIAL_LAYER_CHANGE,{peerId:this.id,maxSpatialLayer:a(this,bn)})):A<mD&&a(this,bn)===0&&(v(this,bn,1),P.emit(R.MAX_SPATIAL_LAYER_CHANGE,{peerId:this.id,maxSpatialLayer:a(this,bn)}))},2e3)),v(this,En,t);const{id:r,userId:s,displayName:o,device:c,picture:d,isHost:h,flags:p,clientSpecificId:g,stageStatus:y,customParticipantId:E,audioMuted:b,audioTrack:N,videoEnabled:M=!1,videoTrack:U,producers:$,metadata:J}=e;this.id=r,this.userId=s,this.name=o,this.device=c,this.picture=d,this.isHost=h,this.flags=p,this.manualProducerConfig=J_,v(this,xa,y!=null?y:"ON_STAGE"),this.customParticipantId=E!=null?E:g,this.audioEnabled=!b,this.audioTrack=N,this.videoEnabled=M,this.videoTrack=U,this.screenShareTracks={audio:void 0,video:void 0},this.producers=$!=null?$:[],this.presetName=J==null?void 0:J.preset_name,v(this,La,!1),v(this,kn,i),v(this,md,n),this.setupEvents(),this.updateVideo=this.updateVideo.bind(this),B(this,gd,Qu).call(this)}get clientSpecificId(){return this.customParticipantId}get stageStatus(){return a(this,xa)}setVideoEnabled(t,e=!0){this.videoEnabled=t,e&&(l.info("DyteParticipant::setVideoEnabled::videoUpdate",x({},hr(this))),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}))}setAudioEnabled(t,e=!0){this.audioEnabled=t,e&&(l.info("DyteParticipant::setAudioEnabled::audioUpdate",x({},hr(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",B(this,gd,Qu)),a(this,pr,hs)&&(this.on("audioUpdate",B(this,Xu,lv)),this.on("screenShareUpdate",B(this,Zu,uv)))}pin(){return u(this,null,function*(){if(!a(this,ps,Ua))throw new w("Can`t pin participant without joining room","1205");if(!a(this,kn).permissions.pinParticipant)throw new w("You do not have permission to pin participants.","1201");return a(this,us,Va).pinPeer(this.id)})}unpin(){return u(this,null,function*(){if(!a(this,ps,Ua))throw new w("Can`t unpin participant without joining room","1205");if(!a(this,kn).permissions.pinParticipant)throw new w("You do not have permission to unpin participants.","1201");return a(this,us,Va).pinPeer(null)})}setIsPinned(t,e=!0){var i;v(this,La,t);const n=t?"pinned":"unpinned";(i=a(this,ms,Fa))==null||i.updateSource(this.id,{pinned:t}),e&&this.emit(n,this)}disableAudio(){return u(this,null,function*(){const t=this.id;if(l.info("DyteParticipant::disable_audio",{dyteParticipant:{id:t}}),!a(this,ps,Ua))throw new w("Can`t disable participant audio without joining room","1205");if(a(this,kn).permissions.canDisableParticipantAudio)return a(this,us,Va).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,dv))throw new w("Can`t kick participant without joining room","1205");if(a(this,kn).permissions.kickParticipant){yield P.emitAsync(R.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,ps,Ua))throw new w("Can`t disable participant video without joining room","1205");if(a(this,kn).permissions.canDisableParticipantVideo)return a(this,us,Va).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,md).getUserPermissions(this.userId)})}setStageStatus(t){v(this,xa,t),this.emit("stageStatusUpdate",this)}get isPinned(){return a(this,La)}registerVideoElement(t){var e,i,n,r;if(!t)return;let s;(i=(e=a(this,mr).get(t))==null?void 0:e.observer)==null||i.disconnect(),"ResizeObserver"in window&&(s=new ResizeObserver(()=>a(this,Yu).call(this,t)),s.observe(t)),a(this,mr).set(t,{observer:s}),this.updateVideo(t),(r=a(this,ms,Fa))==null||r.addSource(this.id,t,this.videoEnabled,this.isPinned,this.name,this.picture,(n=this.raised)!=null?n:!1)}deregisterVideoElement(t){var e,i,n,r;if(!t){(e=a(this,ms,Fa))==null||e.removeSource(this.id);return}t.srcObject=void 0,(n=(i=a(this,mr).get(t))==null?void 0:i.observer)==null||n.disconnect(),a(this,mr).delete(t),(r=a(this,ms,Fa))==null||r.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 n=new MediaStream;n.addTrack(this.videoTrack),t.srcObject=n}else t.srcObject=void 0;t.style.display=this.videoEnabled?"block":"none"}},La=new WeakMap,xa=new WeakMap,En=new WeakMap,us=new WeakSet,Va=function(){return a(this,En).getValue("roomNodeClient")},pr=new WeakSet,hs=function(){return a(this,En).getValue("audioPlayback")},ps=new WeakSet,Ua=function(){return a(this,En).getValue("connectionHandler").mediaJoined},zu=new WeakSet,dv=function(){return a(this,En).getValue("connectionHandler").socketJoined},kn=new WeakMap,md=new WeakMap,mr=new WeakMap,ms=new WeakSet,Fa=function(){return a(this,En).getValue("pip")},bn=new WeakMap,Yu=new WeakMap,gd=new WeakSet,Qu=function(){Array.from(a(this,mr).keys()).forEach(this.updateVideo)},Xu=new WeakSet,lv=function(){var t,e;this.audioEnabled&&this.audioTrack?(t=a(this,pr,hs))==null||t.addParticipantTrack(this.id,this.audioTrack):(e=a(this,pr,hs))==null||e.removeParticipantTrack(this.id)},Zu=new WeakSet,uv=function(){var t,e;this.screenShareEnabled&&this.screenShareTracks.audio?(t=a(this,pr,hs))==null||t.addParticipantTrack(`screenshare-${this.id}`,this.screenShareTracks.audio):(e=a(this,pr,hs))==null||e.removeParticipantTrack(`screenshare-${this.id}`)},hv);ls([S.trace("DyteParticipant.disableAudio")],Yi.prototype,"disableAudio",1),ls([S.trace("DyteParticipant.kick")],Yi.prototype,"kick",1),ls([S.trace("DyteParticipant.disableVideo")],Yi.prototype,"disableVideo",1),ls([S.trace("DyteParticipant.getPermissions")],Yi.prototype,"getPermissions",1),ls([S.trace("DyteParticipant.setStageStatus")],Yi.prototype,"setStageStatus",1),Yi=ls([lt("1200")],Yi);class gr extends qf{constructor(e){const{onAddEvent:i="participantJoined",onDeleteEvent:n="participantLeft",onClearEvent:r="participantsCleared"}=e!=null?e:{};super({onAddEvent:i,onDeleteEvent:n,onClearEvent:r})}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,n=!1){return super.delete(e,i,n)}}var fr;class fD extends Gr{constructor(){super(),f(this,fr,void 0),v(this,fr,new Map)}__set(e,i){return a(this,fr).set(e,i)}__clear(){return a(this,fr).clear()}get(e){return a(this,fr).get(e)}toArray(){return Array.from(a(this,fr).values())}}fr=new WeakMap;class vD{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 n=this.index(e);this.delete(e);const r=this.add(e,i);return n!==r?r:-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 yD{constructor(){m(this,"_activeSpeakerPeers"),m(this,"_compulsoryPeers"),this._activeSpeakerPeers=new vD,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 pv=new yD;var SD=Object.defineProperty,TD=Object.getOwnPropertyDescriptor,qt=(t,e,i,n)=>{for(var r=n>1?void 0:n?TD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&SD(e,i,r),r};const ED=["ACTIVE_GRID","PAGINATED","MANUAL"];var ri,gs,Ba,fs,Wa,ja,fd,vs,$t,mv;let kt=(mv=class extends Bt{constructor(t,e,i){super(),f(this,gs),f(this,fs),f(this,ja),m(this,"waitlisted"),m(this,"joined"),m(this,"active"),m(this,"videoSubscribed"),m(this,"audioSubscribed"),m(this,"pinned"),m(this,"all"),f(this,ri,void 0),f(this,vs,void 0),f(this,$t,void 0),m(this,"rateLimitConfig",{maxInvocations:5,period:1}),m(this,"viewMode"),m(this,"currentPage"),m(this,"lastActiveSpeaker"),m(this,"selectedPeers",pv),v(this,ri,t),v(this,vs,e),v(this,$t,i),this.waitlisted=new gr,this.joined=new gr,this.videoSubscribed=new gr,this.audioSubscribed=new gr,this.active=this.videoSubscribed,this.pinned=new gr,this.all=new fD,this.viewMode="ACTIVE_GRID",this.currentPage=0,this.setupEvents()}get pip(){return a(this,ri).getValue("pip")}get rateLimits(){return this.rateLimitConfig}updateRateLimits(t,e){this.rateLimitConfig.maxInvocations=t,this.rateLimitConfig.period=e}setupEvents(){P.on(R.E2EE_ACTIVE_CONSUMER,({peerId:e})=>{var i;((i=a(this,ri).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,ri).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,ri))==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,ri).setValue("maxPreferredStreams",t),a(this,ja,fd)&&P.emit(R.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,fs,Wa))throw new w("Can`t accept waiting room request without joining room","1205");const n=(i=(e=this.waitlisted.get(t))==null?void 0:e.userId)!=null?i:t;return a(this,$t).acceptWaitingRoomRequest([n])}acceptAllWaitingRoomRequest(t){return u(this,null,function*(){const e=t.map(i=>{var n,r;return(r=(n=this.waitlisted.get(i))==null?void 0:n.userId)!=null?r:i});return a(this,$t).acceptWaitingRoomRequest(e)})}rejectWaitingRoomRequest(t){return u(this,null,function*(){var e,i;if(!a(this,fs,Wa))throw new w("Can`t reject waiting room request without joining room","1205");const n=(i=(e=this.waitlisted.get(t))==null?void 0:e.userId)!=null?i:t;a(this,$t).rejectWaitingRoomRequest([n])})}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=>ED.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,P.emit(R.UPDATE_ACTIVE,{page:this.currentPage})):t==="ACTIVE_GRID"&&(this.currentPage=0,P.emit(R.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 n=[];e.forEach(r=>{const s=this.joined.get(r);if(s){if(i.includes("audio")){s.manualProducerConfig=H(x({},s.manualProducerConfig),{audio:!0}),this.videoSubscribed.add(s);const o=s.producers.find(c=>c.kind==="audio"&&!c.screenShare);o&&n.push(o)}if(i.includes("video")){s.manualProducerConfig=H(x({},s.manualProducerConfig),{video:!0}),this.audioSubscribed.add(s);const o=s.producers.find(c=>c.kind==="video"&&!c.screenShare);o&&n.push(o)}if(i.includes("screenshareAudio")){s.manualProducerConfig=H(x({},s.manualProducerConfig),{screenshareAudio:!0});const o=s.producers.find(c=>c.kind==="audio"&&c.screenShare);n.push(o)}if(i.includes("screenshareVideo")){s.manualProducerConfig=H(x({},s.manualProducerConfig),{screenshareVideo:!0});const o=s.producers.find(c=>c.kind==="video"&&c.screenShare);n.push(o)}}}),yield a(this,gs,Ba).createConsumers(n)})}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 n=[];e.forEach(r=>{const s=this.joined.get(r);if(s){if(i.includes("audio")){s.manualProducerConfig=H(x({},s.manualProducerConfig),{audio:!1});const o=s.producers.find(c=>c.kind==="audio"&&!c.screenShare);o&&n.push(o)}if(i.includes("video")){s.manualProducerConfig=H(x({},s.manualProducerConfig),{video:!1});const o=s.producers.find(c=>c.kind==="video"&&!c.screenShare);o&&n.push(o)}if(i.includes("screenshareAudio")){s.manualProducerConfig=H(x({},s.manualProducerConfig),{screenshareAudio:!1});const o=s.producers.find(c=>c.kind==="audio"&&c.screenShare);n.push(o)}if(i.includes("screenshareVideo")){s.manualProducerConfig=H(x({},s.manualProducerConfig),{screenshareVideo:!1});const o=s.producers.find(c=>c.kind==="video"&&c.screenShare);n.push(o)}}}),yield a(this,gs,Ba).closeConsumers(n)})}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)),n=Array.from(this.joined.toArray().filter(o=>o.stageStatus==="ON_STAGE").map(o=>o.id)),r=Math.max((this.currentPage-1)*(this.maxActiveParticipantsCount-e.length-i.length)),s=this.currentPage*(this.maxActiveParticipantsCount-e.length-i.length);return e.concat(i,n.slice(r,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,P.emit(R.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,ja,fd))throw new w("Can`t disable all audio without joining room","1205");if(a(this,vs).permissions.canAllowParticipantAudio)return a(this,gs,Ba).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,ja,fd))throw new w("Can`t disable all video without joining room","1205");if(a(this,vs).permissions.canAllowParticipantVideo)return a(this,gs,Ba).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 P.emitAsync(R.KICK_PEER,{peerId:t})})}kickAll(){return u(this,null,function*(){if(l.info("DyteParticipants::kick_all"),a(this,ri).getValue("viewType")!=="LIVESTREAM"&&!a(this,fs,Wa))throw new w("Can`t kick all without joining room","1205");if(!a(this,vs).permissions.kickParticipant)throw l.error("DyteParticipants::unauthorized_kick_all"),new w("Unauthorized: User does not have permission to kick peers.","1201");const t=Y.hasFeature(ne.PROPAGATE_KICK_ALL);a(this,$t).kickAll(t)})}broadcastMessage(t,e,i){return u(this,null,function*(){if(l.info("DyteParticipants::broadcastMessage"),!a(this,fs,Wa))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,$t).broadcastToMeetings(t,i.meetingIds,e);else{let n=[];"participantIds"in i?n=i.participantIds:n=this.joined.toArray().filter(r=>{var s;return(s=i.presetNames)==null?void 0:s.includes(r.presetName)}).map(r=>r.id),yield a(this,$t).broadcastToPeers(t,n,e)}else yield a(this,$t).broadcastMessage(t,e)})}getAllJoinedPeers(t,e,i){return u(this,null,function*(){return(yield a(this,$t).getRoomPeers(t,e,i)).peers.map(Qi.formatSocketServiceMessage)})}updatePermissions(t,e){return u(this,null,function*(){const i=this.joined.toArray().filter(r=>t.includes(r.id)).map(r=>r.userId),n=[...new Set(i)];if(!n.length)throw new w("Cannot update permissions, no valid userIDs found","1204");a(this,$t).updatePermissions(n,e)})}getParticipantsInMeetingPreJoin(){return u(this,null,function*(){return a(this,$t).getRoomPeersNonPaginated()})}},ri=new WeakMap,gs=new WeakSet,Ba=function(){return a(this,ri).getValue("roomNodeClient")},fs=new WeakSet,Wa=function(){var t;return((t=a(this,ri).getValue("connectionHandler"))==null?void 0:t.socketJoined)===!0},ja=new WeakSet,fd=function(){var t;return((t=a(this,ri).getValue("connectionHandler"))==null?void 0:t.mediaJoined)===!0},vs=new WeakMap,$t=new WeakMap,mv);qt([S.trace("DyteParticipants.setViewMode")],kt.prototype,"setViewMode",1),qt([S.trace("DyteParticipants.setPage")],kt.prototype,"setPage",1),qt([S.trace("DyteParticipants.disableAllAudio")],kt.prototype,"disableAllAudio",1),qt([S.trace("DyteParticipants.disableAllVideo")],kt.prototype,"disableAllVideo",1),qt([S.trace("DyteParticipants.disablePeerAudio")],kt.prototype,"disableAudio",1),qt([S.trace("DyteParticipants.disablePeerVideo")],kt.prototype,"disableVideo",1),qt([S.trace("DyteParticipants.kickPeer")],kt.prototype,"kick",1),qt([S.trace("DyteParticipants.kickAll")],kt.prototype,"kickAll",1),qt([S.trace("DyteParticipants.broadcastMessage"),At(Jr,"rateLimitConfig")],kt.prototype,"broadcastMessage",1),qt([S.trace("DyteParticipants.getAllJoinedPeers"),At({maxInvocations:10,period:60})],kt.prototype,"getAllJoinedPeers",1),qt([S.trace("DyteParticipant.updatePermissions"),At({maxInvocations:1e3,period:60})],kt.prototype,"updatePermissions",1),qt([S.trace("DyteParticipants.getParticipantsInMeetingPreJoin")],kt.prototype,"getParticipantsInMeetingPreJoin",1),kt=qt([lt("1200")],kt);var ys=(t=>(t.NEW="new",t.CONNECTING="connecting",t.RECONNECTING="reconnecting",t.DISCONNECTED="disconnected",t.CONNECTED="connected",t.FAILED="failed",t.CLOSED="closed",t))(ys||{}),Ne=(t=>(t[t.HIVE=1]="HIVE",t[t.ROOM_NODE=2]="ROOM_NODE",t[t.CF=3]="CF",t))(Ne||{}),kD=Object.defineProperty,bD=Object.getOwnPropertyDescriptor,vr=(t,e,i,n)=>{for(var r=n>1?void 0:n?bD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&kD(e,i,r),r},_n,Ha,Ga,Ss,qa,gv;const vd=(gv=class{constructor(t,e,i,n){switch(m(this,"participants"),m(this,"self"),m(this,"selectedPeers",pv),m(this,"maxSpatialLayerUpdates",new Map),m(this,"consumerPeerMap"),m(this,"events"),m(this,"roomSocketHandler"),m(this,"context"),m(this,"videoPeerConsumerMap",new Map),f(this,_n,{mode:"ACTIVE_GRID",page:0}),f(this,Ha,new gr),f(this,Ga,new gr),f(this,Ss,!1),f(this,qa,!1),m(this,"updateConsumerSpatialLayers",Yl(()=>{const r={},s=new Map(this.maxSpatialLayerUpdates);this.maxSpatialLayerUpdates.clear(),Array.from(s.entries()).forEach(([o,c])=>{r[c]===void 0&&(r[c]={layer:c,consumerIds:[]}),r[c].consumerIds.push(o)}),Object.keys(r).forEach(o=>{const c=r[o];l.log(`Switching max spatial layer to ${c.layer}`,{consumerIds:c.consumerIds}),this.roomNodeClient.switchConsumersToLayer(c.consumerIds,c.layer)})},2e3)),m(this,"updateConsumers",(r,s)=>u(this,null,function*(){try{r.length!==0&&(l.info("Queueing create consumers for producers",{producers:r}),yield this.roomNodeClient.createConsumers(r))}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 kt(t,e,this.roomSocketHandler),this.self=e,this.consumerPeerMap=new Map,n){case Ne.HIVE:{this.events=ei;break}case Ne.CF:{this.events=hi;break}default:this.events=ei}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(W.getWaitingRoomRequests,this.waitingRoomRequestHandler.bind(this)),P.on(R.SOCKET_PEERS,t=>u(this,null,function*(){const e=Y.hasFeature(ne.DEBUG_SOCKET_JOIN);if(e){const i=t&&(t==null?void 0:t.length)<20?{peers:JSON.stringify(t.map(n=>n.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})=>{Y.hasFeature(ne.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(Y.hasFeature(ne.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:n,compulsoryPeers:r}=e!=null?e:{};i.pinnedPeerIds.length!==0&&this.onParticipantPinned(i.pinnedPeerIds[0]),this.computeActivateParticipants(n!=null?n:[],r),P.emit(R.UPDATE_ACTIVE,{createAllConsumers:!0})}),P.on(R.MAX_SPATIAL_LAYER_CHANGE,({peerId:t,maxSpatialLayer:e})=>{const i=this.videoPeerConsumerMap.get(t);i&&(this.maxSpatialLayerUpdates.set(i,e),this.updateConsumerSpatialLayers())}),P.on(R.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 n=!1;const r=e.kind==="audio",s=e.kind==="video",o=i.manualProducerConfig;(r&&(o.audio&&!e.screenShare||o.screenshareAudio&&e.screenShare)||s&&(o.video&&!e.screenShare||o.screenshareVideo&&e.screenShare))&&(n=!0),n?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(n=>{l.error("ParticipantController::createConsumer failed",{error:n})}):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}}})}),P.on(R.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(n=>n.producerId!==e)}),P.on(R.PRODUCER_TOGGLE,({peerId:t,producerId:e,paused:i,kind:n})=>{const r=this.participants.joined.get(t);if(r){n==="audio"&&r.setAudioEnabled(!i);const s=r.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 n=this.participants.joined.get(i);n&&this.roomNodeClient.activatePeers(n.producers).catch(r=>{l.error("unable to create consumers",{error:r})})}),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(n=>!this.participants.waitlisted.toArray().find(r=>r.userId===n.userId)),i=this.participants.waitlisted.toArray().filter(n=>!t.requests.find(r=>r.userId===n.userId));e.forEach(n=>this.participants.waitlisted.add(new Yi(this.context,{id:n.peerId,displayName:n.displayName,audioMuted:!0,videoEnabled:!1,audioTrack:void 0,videoTrack:void 0,stageStatus:"OFF_STAGE",userId:n.userId,flags:{},isHost:!1,customParticipantId:n.customParticipantId,picture:n.picture,metadata:{preset_name:n.presetName}},this.self,this.roomSocketHandler))),i.forEach(n=>this.participants.waitlisted.delete(n.id))}get maxPreferredStreams(){return this.participants.maxActiveParticipantsCount}selectPagePeers(t){const{compulsoryPeers:e}=this.selectedPeers,i=e.filter(c=>this.participants.joined.has(c)),n=Array.from(this.participants.pinned.keys()).filter(c=>!i.includes(c)),r=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-n.length)),o=t*(this.maxPreferredStreams-i.length-n.length);return i.concat(n,r.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))),n=this.selectedPeers.peers,r=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(n.concat(r).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:n}=e!=null?e:{};t&&a(this,_n).mode!==t&&(a(this,_n).mode=t),i&&a(this,_n).page!==i&&(a(this,_n).page=i);const{mode:r,page:s}=a(this,_n);switch(n&&(a(this,Ha).clear(),a(this,Ga).clear()),r){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,_n).mode==="PAGINATED"&&!a(this,Ss)?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,Ss)){v(this,qa,!0);return}v(this,Ss,!0),v(this,qa,!1);const[n,r]=vd.mapDiff(a(this,Ha),this.participants.videoSubscribed);this.updateParticipantsMap(a(this,Ha),this.participants.videoSubscribed.toArray().filter(({videoEnabled:h})=>!!h).map(({id:h})=>h));const[s,o]=vd.mapDiff(a(this,Ga),this.participants.audioSubscribed);this.updateParticipantsMap(a(this,Ga),this.participants.audioSubscribed.toArray().filter(({audioEnabled:h})=>!!h).map(({id:h})=>h));const c=[...this.mapPeerIdsToProducers(n,["video"]),...this.mapPeerIdsToProducers(s,["audio"])],d=[...this.mapPeerIdsToProducers(r,["video"]),...this.mapPeerIdsToProducers(o,["audio"])];try{(c.length>0||d.length>0)&&(yield this.updateConsumers(c,d))}finally{v(this,Ss,!1)}a(this,qa)&&this.syncConsumers()})}static mapDiff(t,e){const i=[],n=[],r=Array.from(t.keys()),s=Array.from(e.keys());return r.forEach(o=>{s.includes(o)||n.push(o)}),s.forEach(o=>{r.includes(o)||i.push(o)}),[i,n]}computeActivateParticipants(t,e){const i=t.map((r,s)=>({peerId:r,priority:s+1})),n=e==null?void 0:e.map((r,s)=>({peerId:r,priority:-(s+1)}));i.push(...n!=null?n:[]),i.length>0&&this.updateActiveParticipantsWithPriorities(i)}fromSocketService(t){const e=vd.formatSocketServiceMessage(t);return new Yi(this.context,H(x({},e),{isHost:!1,videoEnabled:!1,audioMuted:!0,videoTrack:void 0,audioTrack:void 0}),this.self,this.roomSocketHandler)}updatePipSource(t,e){var i,n;e?(i=this.pip)==null||i.enableSource(t):(n=this.pip)==null||n.disableSource(t)}onMediaJoined(t,e,i){if(!this.mediaJoined||t===this.self.id)return;const n=this.participants.joined.get(t);if(!n){l.warn(`Received media.peerJoinedBroadcast for non-existent peer ${t}`);return}e.forEach(r=>{r.kind===Mi.AUDIO&&!r.screenShare?n.setAudioEnabled(!r.pause):r.kind===Mi.VIDEO&&!r.screenShare&&(n.setVideoEnabled(!r.pause),this.updatePipSource(n.id,!r.pause)),n.producers.push(H(x({},r),{producingTransportId:r.producingTransportId,kind:r.kind===Mi.AUDIO?"audio":"video",producingPeerId:t,mimeType:r.mimeType}))}),this.roomNodeClient.handlePeerCapabilities(t,i),Y.hasFeature(ne.FORCE_VIDEO_CODEC)||this.roomNodeClient.shareWebcam(this.self.videoTrack),P.emit(R.UPDATE_ACTIVE)}updateParticipantsMapMinReplacement(t,e){const i=Array.from(t.keys()),n=new Map(t),r=new Set(e),s=[];i.forEach((o,c)=>{(!r.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,!r.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),!n.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(W.joinRoom,({peer:t})=>{if(!t.waitlisted){const e=Y.hasFeature(ne.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(W.leaveRoom,t=>{const{peerId:e}=t.peer;this.selectedPeers.delete(e),this.onParticipantLeave(e)}),P.on(R.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())}),P.on(R.SOCKET_SERVICE_DISCONNECTED,()=>{this.participants.joined.clear(),this.participants.videoSubscribed.clear(),this.participants.audioSubscribed.clear(),this.participants.pinned.clear(),this.participants.currentPage=0,this.participants.viewMode="ACTIVE_GRID",this.participants.emit("viewModeChanged",{viewMode:"ACTIVE_GRID",currentPage:this.participants.currentPage,pageCount:this.participants.pageCount})}),P.on(R.CONSUMER_PAUSED,({id:t})=>{this.processConsumerPaused(t)}),P.on(R.CONSUMER_RESUMED,({id:t})=>{this.processConsumerResumed(t)}),P.on(R.NEW_CONSUMER,({id:t})=>{this.processNewConsumer(t)}),P.on(R.CONSUMER_CLOSED,({id:t})=>{this.processConsumerClosed(t)}),P.on(R.ROOM_MESSAGE,t=>u(this,[t],function*({payload:e,type:i,timestamp:n}){this.participants.emit("broadcastedMessage",{type:i,payload:e,timestamp:n})})),P.on(R.MESSAGE,t=>u(this,[t],function*({payload:e,type:i,timestamp:n}){i!=="spotlight"&&this.participants.emit("broadcastedMessage",{type:i,payload:e,timestamp:n})})),P.on(R.LOW_CONSUMER_SCORE,({peerId:t,score:e,kind:i})=>{const n=this.participants.joined.get(t);n&&(n.emit("poorConnection",{score:e,kind:i}),this.participants.emit("poorConnection",{participantId:t,score:e,kind:i}))}),P.on(R.CONSUMER_SCORE_UPDATE,({score:t,kind:e,appData:i,peerId:n,scoreStats:r})=>{var s;const o=e==="video"&&((s=i==null?void 0:i.screenShare)!=null?s:!1),c=this.participants.joined.get(n);c&&(c.emit("mediaScoreUpdate",{kind:e,isScreenshare:o,score:t,participantId:n,scoreStats:r}),this.participants.emit("mediaScoreUpdate",{kind:e,isScreenshare:o,score:t,participantId:n,scoreStats:r}))}),P.onAsync(R.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})})),P.on(R.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,n;this.self.id!==t.id&&!((e=t.flags)!=null&&e.recorder)&&!((i=t.flags)!=null&&i.hidden_participant)&&!((n=t.flags)!=null&&n.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"&&P.emit(R.UPDATE_STAGE_REQUESTS,{request:{displayName:t.name,userId:t.userId,peerId:t.id},add:!0})),P.emit(R.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"&&P.emit(R.UPDATE_STAGE_REQUESTS,{request:{displayName:e.name,userId:e.userId,peerId:e.id},add:!1});const{currentPage:i}=this.participants,n=this.maxPreferredStreams*(i-1),r=this.participants.videoSubscribed.get(t);n===0?this.participants.setViewMode("ACTIVE_GRID"):this.participants.joined.size<=n?i===2?this.participants.setViewMode("ACTIVE_GRID"):this.participants.setPage(i-1):r&&this.updateSubscriptions(i?"PAGINATED":"ACTIVE_GRID",{page:i})})}processMedia(t){var e;const i=this.roomNodeClient.getConsumers(),{peerId:n,kind:r,appData:s,track:o,producerId:c,rtpReceiver:d,paused:h}=(e=i.get(t))!=null?e:{};if(!n)return l.warn("processMedia::Peer ID is undefined",{consumer:{id:t,kind:r,peerId:n,appData:{supportsRemoteControl:!!(s!=null&&s.supportsRemoteControl),screenShare:!!(s!=null&&s.screenShare)},remotelyPaused:h,producerId:c}}),{};const p=s;return r==="video"&&p.screenShare!==!0&&this.videoPeerConsumerMap.set(n,t),l.info("ParticipantController::processMedia",{consumer:{id:t,peerId:n,kind:r,appData:p,remotelyPaused:h,producerId:c}}),this.consumerPeerMap.set(t,{type:r,peerId:n,appData:p,remotelyPaused:h,producerId:c}),{peerId:n,kind:r,appData:p,remotelyPaused:h,track:o,producerId:c,rtpReceiver:d}}processConsumerClosed(t){const{peerId:e,type:i,appData:n,remotelyPaused:r,producerId:s}=this.consumerPeerMap.get(t)||{},o=this.participants.joined.get(e);if(l.info("ParticipantController::processConsumerClosed",{consumer:{id:t,peerId:e,appData:n,kind:i,remotelyPaused:r,producerId:s}}),this.consumerPeerMap.delete(t),i==="video"&&n.screenShare!==!0&&this.videoPeerConsumerMap.delete(e),!o)return;const c=[];n&&n.screenShare?(o.setScreenShareEnabled(!1),K.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),K.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),K.consumerSharedMediaState(t,{video:!1}),o.videoTrack=void 0),n.e2ee&&c.forEach(d=>{P.emit(R.E2EE_INACTIVE_CONSUMER,{peerId:e,trackId:d})})}processConsumerResumed(t){const{peerId:e,kind:i,appData:n,track:r,remotelyPaused:s,producerId:o,rtpReceiver:c}=this.processMedia(t);if(!e)return;l.info("ParticipantController::processConsumerResumed",{consumer:{id:t,peerId:e,kind:i,appData:n,remotelyPaused:s,producerId:o}});const d=this.participants.joined.get(e);if(d){if(n.e2ee&&P.emit(R.E2EE_ACTIVE_CONSUMER,{peerId:e,rtpReceiver:c,track:r}),n.screenShare){i==="video"?d.screenShareTracks.video=r:i==="audio"&&(d.screenShareTracks.audio=r),d.setScreenShareEnabled(!0),K.consumerSharedMediaState(t,{screen:!0});return}i==="video"?(d.videoTrack=r,d.setVideoEnabled(!0),this.updatePipSource(d.id,!0),K.consumerSharedMediaState(t,{video:!0})):i==="audio"&&(d.audioTrack=r,d.setAudioEnabled(d.audioEnabled),K.consumerSharedMediaState(t,{audio:d.audioEnabled}))}}processConsumerPaused(t){l.info(`ParticipantController::processConsumerPaused called for consumerId: ${t}`);const{peerId:e,kind:i,track:n,appData:r,remotelyPaused:s,producerId:o}=this.processMedia(t);if(!e)return;l.info("ParticipantController::processConsumerPaused",{consumer:{id:t,peerId:e,kind:i,appData:r,remotelyPaused:s,producerId:o}});const c=this.participants.joined.get(e);c&&(n&&r.e2ee&&P.emit(R.E2EE_INACTIVE_CONSUMER,{peerId:e,trackId:n.id}),i==="video"?(c.videoTrack=n,c.setVideoEnabled(!1),this.updatePipSource(c.id,!1),K.consumerSharedMediaState(t,{video:!1})):i==="audio"&&(c.audioTrack=n,c.setAudioEnabled(c.audioEnabled),K.consumerSharedMediaState(t,{audio:c.audioEnabled})))}processNewConsumer(t){const{peerId:e,kind:i,remotelyPaused:n,track:r,appData:s,producerId:o,rtpReceiver:c}=this.processMedia(t);if(!e)return;l.info("ParticipantController::processNewConsumer",{consumer:{id:t,peerId:e,kind:i,remotelyPaused:n,appData:s,producerId:o}});const d=this.participants.joined.get(e);if(d){if(s.screenShare){i==="video"?d.screenShareTracks.video=r:i==="audio"&&(d.screenShareTracks.audio=r),(!n||this.self.permissions.isRecorder||Y.hasFeature(ne.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:n,appData:s,producerId:o}});return}i==="video"?(d.videoTrack=r,n||(d.setVideoEnabled(!0),this.updatePipSource(d.id,!0)),K.consumerSharedMediaState(t,{video:!n})):i==="audio"&&(d.audioTrack=r,n||d.setAudioEnabled(!0),K.consumerSharedMediaState(t,{audio:!n})),!n&&s.e2ee&&P.emit(R.E2EE_ACTIVE_CONSUMER,{peerId:e,rtpReceiver:c,track:r})}}static formatSocketServiceMessage(t){var e,i,n,r,s,o;if(!t)return;const c=Du(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:(n=t.flags)==null?void 0:n.hiddenParticipant,hidden_participant:(r=t.flags)==null?void 0:r.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=(n,r)=>n.filter(({kind:s,screenShare:o})=>r.includes(s)||o&&r.includes("screenshare"));return t.flatMap(n=>{const r=this.participants.joined.get(n);if(r)return i(r.producers,e)}).filter(n=>!!n)}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(n=>{this.selectedPeers.add(n.peerId,n.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)}},_n=new WeakMap,Ha=new WeakMap,Ga=new WeakMap,Ss=new WeakMap,qa=new WeakMap,gv);let Qi=vd;vr([S.trace("ParticipantController.setupEvents")],Qi.prototype,"setupEvents",1),vr([S.trace("ParticipantController.setupEvents")],Qi.prototype,"setupEventsGlobal",1),vr([S.trace("ParticipantController.processMedia")],Qi.prototype,"processMedia",1),vr([S.trace("ParticipantController.processConsumerClosed")],Qi.prototype,"processConsumerClosed",1),vr([S.trace("ParticipantController.processConsumerResumed")],Qi.prototype,"processConsumerResumed",1),vr([S.trace("ParticipantController.processConsumerPaused")],Qi.prototype,"processConsumerPaused",1),vr([S.trace("ParticipantController.processNewConsumer")],Qi.prototype,"processNewConsumer",1);const _e=mi(Jl().permissions);var q,$a,Ja,eh,Ot,Jt;const Ka=class extends Bt{constructor(t,e,i,n=!1){if(super(),f(this,Ot),f(this,q,void 0),f(this,$a,void 0),f(this,Ja,void 0),f(this,eh,r=>{var s,o,c;const d=r,{chat:h,connectedMeetings:p,plugins:g,polls:y,media:E}=d,b=hc(d,["chat","connectedMeetings","plugins","polls","media"]);if(h&&(h.private&&dn(a(this,q).chat.private,h.private),h.public&&dn(a(this,q).chat.public,h.public),this.emit("chatUpdate")),p&&dn(a(this,q).connectedMeetings,p),E){const N=U=>{switch(U){case mn.NONE:return G.Allowed;case mn.ALLOWED:return G.Allowed;case mn.NOT_ALLOWED:return G.NotAllowed;case mn.CAN_REQUEST:return G.CanRequest;default:return}},M={audio:void 0,video:void 0,screenshare:void 0};(s=E.audio)!=null&&s.canProduce&&(M.audio={canProduce:N(E.audio.canProduce)}),(o=E.video)!=null&&o.canProduce&&(M.video={canProduce:N(E.video.canProduce)}),(c=E.screenshare)!=null&&c.canProduce&&(M.screenshare={canProduce:N(E.screenshare.canProduce)}),dn(a(this,q).media,M)}g&&(dn(a(this,q).plugins,g),this.emit("pluginsUpdate")),y&&(dn(a(this,q).polls,y),this.emit("pollsUpdate")),Object.keys(b).length!==0&&dn(a(this,q),b),this.emit("permissionsUpdate",r)}),!e)throw l.error("DytePermissionsPreset::load_preset_permissions_failed"),new w("Could not load preset permissions.","0904");v(this,Ja,t),v(this,$a,i),v(this,q,e),n&&this.setupEvents()}setupEvents(){P.on(R.UPDATE_PERMISSIONS,a(this,eh))}static fromResponse(t,e,i){return new Ka(i,t,e,!0)}static default(t,e){return new Ka(t,_e,e)}static init(t,e,i){let n;return i?n=new Ka(t,i,e,!0):n=new Ka(t,_e,e),n}get mediaRoomType(){const{sfu:t}=a(this,Ja).getValue("roomNodeOptions");return t===Ne.CF?"CF":"HIVE"}get stageEnabled(){var t;return((t=a(this,q))==null?void 0:t.stageEnabled)||a(this,$a)===Rt.Webinar||a(this,$a)===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)===G.NotAllowed?G.NotAllowed:((e=a(this,q))==null?void 0:e.stageAccess)===G.CanRequest?G.CanRequest:((i=a(this,q))==null?void 0:i.stageAccess)===G.Allowed||a(this,q).media.audio.canProduce===G.Allowed||a(this,q).media.video.canProduce===G.Allowed||a(this,q).media.screenshare.canProduce===G.Allowed?G.Allowed:a(this,q).media.audio.canProduce===G.CanRequest||a(this,q).media.video.canProduce===G.CanRequest||a(this,q).media.screenshare.canProduce===G.CanRequest?G.CanRequest:G.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)===G.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)===G.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)===G.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===G.CanRequest||a(this,q).media.video.canProduce===G.CanRequest||a(this,q).media.screenshare.canProduce===G.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,Ot,Jt)==="ACCEPTED_TO_JOIN_STAGE"||a(this,Ot,Jt)==="ON_STAGE")&&e===G.CanRequest?G.Allowed:this.stageEnabled&&(a(this,Ot,Jt)==="OFF_STAGE"||a(this,Ot,Jt)==="REQUESTED_TO_JOIN_STAGE")&&e===G.Allowed?G.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,Ot,Jt)==="ACCEPTED_TO_JOIN_STAGE"||a(this,Ot,Jt)==="ON_STAGE")&&e===G.CanRequest?G.Allowed:this.stageEnabled&&(a(this,Ot,Jt)==="OFF_STAGE"||a(this,Ot,Jt)==="REQUESTED_TO_JOIN_STAGE")&&e===G.Allowed?G.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,Ot,Jt)==="ACCEPTED_TO_JOIN_STAGE"||a(this,Ot,Jt)==="ON_STAGE")&&e===G.CanRequest?G.Allowed:this.stageEnabled&&(a(this,Ot,Jt)==="OFF_STAGE"||a(this,Ot,Jt)==="REQUESTED_TO_JOIN_STAGE")&&e===G.Allowed?G.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===G.Allowed||a(this,q).media.video.canProduce===G.Allowed||a(this,q).media.screenshare.canProduce===G.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 _D=Ka;q=new WeakMap,$a=new WeakMap,Ja=new WeakMap,eh=new WeakMap,Ot=new WeakSet,Jt=function(){return a(this,Ja).getValue("stageStatus")};var fv;class wD extends Bt{constructor(){super(...arguments),m(this,"localMediaHandler"),f(this,fv,void 0)}updatePermission(){return u(this,null,function*(){var e,i;const n=(h,p)=>{this.mediaPermissions[h]=p;const g={message:this.mediaPermissions[h],kind:h};p==="DENIED"?P.emit(R.MEDIA_PERMISSION_ERROR,g):P.emit(R.MEDIA_PERMISSION_UPDATE,g)};if(Ie.getName()==="firefox")return;const r="microphone",s="camera",o=yield(e=navigator==null?void 0:navigator.permissions)==null?void 0:e.query({name:r}),c=yield(i=navigator==null?void 0:navigator.permissions)==null?void 0:i.query({name:s}),d=(h,p)=>{switch(p){case"granted":n(h,"ACCEPTED");break;case"denied":n(h,"DENIED");break;case"prompt":n(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:n}){switch(n){case"audio":{K.mediaPermission("AUDIO",i),K.mediaPermission("SPEAKER",i);break}case"video":{K.mediaPermission("VIDEO",i);break}case"screenshare":{K.mediaPermission("SCREENSHARE",i);break}}})}init(){return u(this,arguments,function*(e={},i=!1,n=null){var r,s,o,c,d,h;if(Ie.init(),!this.localMediaHandler)try{let p=!0;if(n!=null&&n.getValue("defaults").mediaHandler)p=!1,this.localMediaHandler=n.getValue("defaults").mediaHandler.localMediaHandler;else if(navigator.RNLocalMediaHandlerImpl){const{RNLocalMediaHandlerImpl:g}=navigator;this.localMediaHandler=yield g.init(e)}else this.localMediaHandler=new Dt(n,e.constraints,(r=n==null?void 0:n.getValue("defaults"))==null?void 0:r.isNonPreferredDevice,(s=n==null?void 0:n.getValue("defaults"))==null?void 0:s.autoSwitchAudioDevice);if(P.on(R.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)})),P.on(R.MEDIA_PERMISSION_ERROR,g=>u(this,null,function*(){const{kind:y,message:E,constraints:b}=g;this.populateMediaPermissionsInCallstats({message:E,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:E},constraints:b,mediaPermissionsErrors:{kind:y,message:E}}),this.emit("mediaPermissionError",g),this.emit("mediaPermissionUpdate",{message:E,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 n;return i==="audio"?n="audioinput":i==="video"?n="videoinput":i==="speaker"&&(n="audiooutput"),this.localMediaHandler.getDeviceById(e,n)}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})})}}fv=new WeakMap;const za={},wn={executeWithLock({methodName:t,lockName:e,timeout:i}){return(n,r,s)=>{const o=s.value;return s.value=function(...c){if(za[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}za[e]=!0;const d=setTimeout(()=>delete za[e],i),h=o.apply(this,c);return Promise.resolve(h).then(()=>{delete za[e],clearTimeout(d)}).catch(()=>{delete za[e],clearTimeout(d)}),h},s}}};var ID=Object.defineProperty,CD=Object.getOwnPropertyDescriptor,bt=(t,e,i,n)=>{for(var r=n>1?void 0:n?CD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&ID(e,i,r),r},Ya,Nt,Qa,Di,In,yr,Ze,st,Xa,yd,Ke,Ye,Za,eo,Sd,th,vv;let et=(vv=class extends wD{constructor(t,e,i,n,r){var s;super(),f(this,In),f(this,Ze),f(this,Xa),f(this,Ke),f(this,Sd),m(this,"name"),m(this,"picture"),m(this,"customParticipantId"),m(this,"waitlistStatus"),f(this,Ya,void 0),f(this,Nt,void 0),f(this,Qa,void 0),m(this,"role"),m(this,"userId"),m(this,"organizationId"),m(this,"supportsRemoteControl",!1),m(this,"device"),f(this,Di,void 0),m(this,"hidden",!1),m(this,"presetName"),m(this,"roomState","init"),f(this,Za,new Set),f(this,eo,new Set),v(this,Di,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,Nt,i),v(this,Ya,n),this.hidden=!1,v(this,Qa,!1),this.organizationId=e.organizationId,this.supportsRemoteControl=Ie.isElectron(),this.device=Ie.getDeviceInfo(),this.presetName=r,n.viewType!==Rt.Chat&&this.updatePermission(),this.updateVideo=this.updateVideo.bind(this),B(this,Sd,th).call(this)}get stageStatus(){return a(this,Di).getValue("stageStatus")}get id(){return a(this,Di).getValue("peerId")}static __init__(t,e,i,n,r,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 E=new et(t,e,i,n,r);if(n.viewType===Rt.Chat)return E;const b=N1(n.mediaConstraints);return dn(b,(p=t.getValue("defaults"))==null?void 0:p.mediaConfiguration),yield E.init({audio:g,video:y,constraints:b},s,t),E.setupEvents(),E})}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,Nt).removeAllListeners("permissionsUpdate")}setupEvents(){this.on("videoUpdate",B(this,Sd,th));const t=a(this,Xa,yd);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",x({},hr(this))),a(this,Ke,Ye)&&this.audioEnabled)try{yield a(this,Ze,st).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",x({},hr(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,Ze,st).shareWebcam(this.videoTrack);e&&e.id!==this.videoTrack.id&&Y.hasFeature(ne.EXP_RESHARE)&&(yield a(this,Ze,st).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 n;this.emit("deviceUpdate",{device:i}),i.kind==="audiooutput"&&typeof HTMLAudioElement.prototype.setSinkId=="function"&&((n=a(this,Xa,yd))==null||n.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,Ze,st).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",x({},hr(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",x({},hr(this)))})),this.localMediaHandler.on("AUDIO_TRACK_SILENT",()=>{K.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,Ze,st).pauseWebcam()),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}),K.videoOff()})),a(this,Nt).on("permissionsUpdate",e=>{var i,n,r;(i=e==null?void 0:e.media)!=null&&i.audio&&a(this,Nt).canProduceAudio!==G.Allowed&&(this.disableAudio(),l.info(`Disabled audio due to dynamic preset change: canProduceAudio: ${this.permissions.canProduceAudio}`)),(n=e==null?void 0:e.media)!=null&&n.video&&a(this,Nt).canProduceVideo!==G.Allowed&&(this.disableVideo(),l.info(`Disabled video due to dynamic preset change: canProduceVideo: ${this.permissions.canProduceVideo}`)),(r=e==null?void 0:e.media)!=null&&r.screenshare&&a(this,Nt).canProduceScreenshare!==G.Allowed&&(this.disableScreenShare(),l.info(`Disabled screenshare due to dynamic preset change: canProduceScreenshare: ${this.permissions.canProduceScreenshare}`))})}get permissions(){return a(this,Nt)}get config(){return a(this,Ya)}get roomJoined(){var t;return a(this,Ya).viewType===Rt.Livestream&&this.stageStatus!=="ON_STAGE"?((t=a(this,Di).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!==G.NotAllowed&&!(a(this,Nt).canProduceAudio===G.CanRequest&&(this.stageStatus==="OFF_STAGE"||this.stageStatus==="REQUESTED_TO_JOIN_STAGE"))&&!this.audioEnabled){if(K.audioOn(),yield this.localMediaHandler.enableAudio(t),a(this,Ke,Ye)&&this.stageStatus==="ON_STAGE"){if(this.audioTrack)try{yield a(this,Ze,st).shareMic(this.audioTrack)}catch(e){l.error("DyteSelf::enableAudio::Error while sharing mic",{error:e}),this.localMediaHandler.disableAudio()}if(!this.audioEnabled)return;a(this,Ze,st).unmuteSelf()}this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack})}})}enableVideo(t){return u(this,null,function*(){if(a(this,Nt).canProduceVideo!==G.NotAllowed&&!(a(this,Nt).canProduceVideo===G.CanRequest&&(this.stageStatus==="OFF_STAGE"||this.stageStatus==="REQUESTED_TO_JOIN_STAGE"))&&!this.videoEnabled){if(K.videoOn(),yield this.localMediaHandler.enableVideo(t),a(this,Ke,Ye)&&this.stageStatus==="ON_STAGE")try{yield a(this,Ze,st).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",x({},hr(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,Nt).canProduceScreenshare!==G.NotAllowed&&!(a(this,Nt).canProduceScreenshare===G.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,Ze,st).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,Ze,st).muteSelf(),this.emit("audioUpdate",{audioEnabled:this.audioEnabled,audioTrack:this.audioTrack}),K.audioOff())})}disableVideo(){return u(this,null,function*(){this.videoEnabled&&(yield this.localMediaHandler.disableVideo(),a(this,Ke,Ye)&&(yield a(this,Ze,st).pauseWebcam()),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack}),K.videoOff())})}disableScreenShare(){return u(this,null,function*(){this.screenShareEnabled&&(yield this.localMediaHandler.disableScreenShare(),a(this,Ke,Ye)&&(yield a(this,Ze,st).disableScreenShare()),this.emit("screenShareUpdate",{screenShareEnabled:this.screenShareEnabled,screenShareTracks:this.screenShareTracks}))})}getAllDevices(){return this.localMediaHandler.getAllDevices()}setIsPinned(t,e=!0){var i;v(this,Qa,t);const n=t?"pinned":"unpinned";(i=a(this,In,yr))==null||i.updateSource(this.id,{pinned:t}),e&&this.emit(n,this)}get isPinned(){return a(this,Qa)}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,Ze,st).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,Ze,st).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,n;if(!t)throw new w("No device selected","1104");const r=this.getCurrentDevices();if(t.deviceId&&(((e=r==null?void 0:r.audio)==null?void 0:e.deviceId)===t.deviceId||((i=r==null?void 0:r.video)==null?void 0:i.deviceId)===t.deviceId||((n=r==null?void 0:r.speaker)==null?void 0:n.deviceId)===t.deviceId)&&(l.warn("DyteSelf.setDevice.setting_to_in_use_device",{devices:[t]}),Y.hasFeature(ne.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,Ze,st).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,Ze,st).pauseWebcam()),this.emit("videoUpdate",{videoEnabled:this.videoEnabled,videoTrack:this.videoTrack})}break}})}cleanUpTracks(){var t,e,i,n;(t=this.audioTrack)==null||t.stop(),(e=this.rawAudioTrack)==null||e.stop(),(i=this.videoTrack)==null||i.stop(),(n=this.rawVideoTrack)==null||n.stop()}playAudio(){var t;return(t=a(this,Xa,yd))==null?void 0:t.play()}registerVideoElement(t,e=!1){var i,n;t&&(e?a(this,Za).add(t):a(this,eo).add(t),this.updateVideo(t),e||(n=a(this,In,yr))==null||n.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,In,yr).removeSource(this.id);return}t.srcObject=void 0,e?a(this,Za).delete(t):(a(this,eo).delete(t),a(this,In,yr).removeSource(this.id))}updateVideo(t,e=!1){var i,n,r;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||(n=a(this,In,yr))==null||n.enableSource(this.id)}else t.srcObject=void 0,e||(r=a(this,In,yr))==null||r.disableSource(this.id);t.style.display=this.videoEnabled?"block":"none"}},Ya=new WeakMap,Nt=new WeakMap,Qa=new WeakMap,Di=new WeakMap,In=new WeakSet,yr=function(){return a(this,Di).getValue("pip")},Ze=new WeakSet,st=function(){return a(this,Di).getValue("roomNodeClient")},Xa=new WeakSet,yd=function(){return a(this,Di).getValue("audioPlayback")},Ke=new WeakSet,Ye=function(){var t;return((t=a(this,Di).getValue("connectionHandler"))==null?void 0:t.mediaJoined)===!0},Za=new WeakMap,eo=new WeakMap,Sd=new WeakSet,th=function(){Array.from(a(this,eo)).forEach(t=>this.updateVideo(t,!1)),Array.from(a(this,Za)).forEach(t=>this.updateVideo(t,!0))},vv);bt([S.trace("DyteSelf.cleanupEvents")],et.prototype,"cleanupEvents",1),bt([S.trace("DyteSelf.setupEvents")],et.prototype,"setupEvents",1),bt([S.trace("DyteSelf.setupTracks")],et.prototype,"setupTracks",1),bt([S.trace("DyteSelf.destructMediaHandler")],et.prototype,"destructMediaHandler",1),bt([S.trace("DyteSelf.removeDocumentEventListeners")],et.prototype,"removeDocumentEventListeners",1),bt([wn.executeWithLock({methodName:"meeting.self.enableAudio",lockName:"DyteSelf.toggleAudio",timeout:3e3}),S.trace("DyteSelf.enableAudio")],et.prototype,"enableAudio",1),bt([wn.executeWithLock({methodName:"meeting.self.enableVideo",lockName:"DyteSelf.toggleVideo",timeout:3e3}),S.trace("DyteSelf.enableVideo")],et.prototype,"enableVideo",1),bt([S.trace("DyteSelf.updateVideoConstraints")],et.prototype,"updateVideoConstraints",1),bt([S.trace("DyteSelf.enableScreenShare"),wn.executeWithLock({methodName:"meeting.self.enableScreenShare",lockName:"DyteSelf.toggleScreenShare",timeout:3e3})],et.prototype,"enableScreenShare",1),bt([S.trace("DyteSelf.updateScreenshareConstraints")],et.prototype,"updateScreenshareConstraints",1),bt([wn.executeWithLock({methodName:"meeting.self.disableAudio",lockName:"DyteSelf.toggleAudio",timeout:3e3}),S.trace("DyteSelf.disableAudio")],et.prototype,"disableAudio",1),bt([wn.executeWithLock({methodName:"meeting.self.disableVideo",lockName:"DyteSelf.toggleVideo",timeout:3e3}),S.trace("DyteSelf.disableVideo")],et.prototype,"disableVideo",1),bt([wn.executeWithLock({methodName:"meeting.self.disableScreenShare",lockName:"DyteSelf.toggleScreenShare",timeout:3e3}),S.trace("DyteSelf.disableScreenShare")],et.prototype,"disableScreenShare",1),bt([S.trace("DyteSelf.setDevice")],et.prototype,"setDevice",1),et=bt([lt("1100")],et);var PD=Object.defineProperty,RD=Object.getOwnPropertyDescriptor,MD=(t,e,i,n)=>{for(var r=n>1?void 0:n?RD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&PD(e,i,r),r},to;class ih{constructor(e,i){m(this,"socket"),f(this,to,void 0),v(this,to,e),this.socket=i,this.handleSocketEvents(),a(this,to).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 n={capabilities:[],peer:{displayName:(i=e.name)!=null?i:"Participant",customParticipantId:e.customParticipantId,peerId:e.id,userId:e.userId,displayPictureUrl:e.picture,waitlisted:!1},roomUuid:""},r=this.socket.sendMessagePromise(W.joinRoom,HC.toBinary(n));try{const{peer:s}=qr.fromBinary((yield r).payload);a(this,to).getValue("connectionHandler").socketJoined=!0,P.emit(R.SOCKET_SERVICE_ROOM_JOINED,{peer:s});const o=this.getRoomState(),c=this.getRoomPeersNonPaginated(),[{room:d},{peers:h}]=yield Promise.all([o,c]);return P.emit(R.ROOM_STATE,d),P.emit(R.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 CP.fromBinary((yield this.socket.sendMessagePromise(W.getAllAddedParticipants)).payload).participants.map(e=>{var i=e,{id:n}=i,r=hc(i,["id"]);return H(x({},r),{userId:n})})}catch(e){return[]}})}getRoomPeers(e,i,n){return u(this,null,function*(){let r;try{const s={seachQuery:e,limit:i,offset:n},o=yield this.socket.sendMessagePromise(W.getRoomPeersInfo,OC.toBinary(s));r=ou.fromBinary(o.payload)}catch(s){l.error("getRoomPeers::binary_decode_error",{error:s})}return r})}getRoomPeersNonPaginated(){return u(this,null,function*(){let e;try{const i=yield this.socket.sendMessagePromise(W.getRoomPeersInfo);e=ou.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(W.getRoomPeersInfo);e=ou.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 n=yield this.socket.sendMessagePromise(W.getPeerInfo,sf.toBinary({peerId:e}));i=qr.fromBinary(n.payload)}catch(n){l.error("getPeerInfo::binary_decode_error",{error:n})}return i})}getRoomState(){return u(this,null,function*(){let e=rf.create();try{const i=yield this.socket.sendMessagePromise(W.getRoomInfo);e=rf.fromBinary(i.payload)}catch(i){l.error("getRoomState::binary_decode_error",{error:i})}return e})}getRoomStageState(){return u(this,null,function*(){let e=uf.create();try{const i=yield this.socket.sendMessagePromise(W.getRoomStageState);e=uf.fromBinary(i.payload)}catch(i){l.error("getRoomStageState::binary_decode_error",{error:i})}return e})}broadcastMessage(e,i){return u(this,null,function*(){const n={type:e,payload:new TextEncoder().encode(JSON.stringify(i)),timestamp:Date.now(),ids:[]};return this.socket.sendMessagePromise(W.broadcastMessage,oa.toBinary(n))})}broadcastToMeetings(e,i,n){return u(this,null,function*(){const r={type:e,payload:new TextEncoder().encode(JSON.stringify(n)),timestamp:Date.now(),ids:i,broadcastType:1};return this.socket.sendMessagePromise(W.broadcastToEntity,oa.toBinary(r))})}broadcastToPeers(e,i,n){return u(this,null,function*(){const r={type:e,payload:new TextEncoder().encode(JSON.stringify(n)),timestamp:Date.now(),ids:i,broadcastType:0};return this.socket.sendMessage(W.broadcastToEntity,oa.toBinary(r))})}leaveRoom(){return u(this,null,function*(){this.socket.joinAttempted=!1,this.socket.sendMessagePromise(W.leaveRoom,qC.toBinary({}))})}kick(e){return u(this,null,function*(){const i={peerIds:[e]};this.socket.sendMessage(W.kick,df.toBinary(i))})}kickAll(e=!1){return u(this,null,function*(){const i={propagateKickAcrossRooms:e};this.socket.sendMessage(W.kickAll,Jg.toBinary(i))})}getWaitingRoomRequests(){this.socket.sendMessage(W.getWaitingRoomRequests)}acceptWaitingRoomRequest(e){const i={userIds:e};this.socket.sendMessage(W.acceptWaitingRoomRequests,OP.toBinary(i))}rejectWaitingRoomRequest(e){const i={userIds:e};this.socket.sendMessage(W.denyWaitingRoomRequests,LP.toBinary(i))}updatePermissions(e,i){return u(this,null,function*(){const n={updatePeersPresets:[]};return e.forEach(r=>{n.updatePeersPresets.push({userIds:r,patch:i})}),this.socket.sendMessagePromise(jc.updateUserPreset,lR.toBinary(n))})}handleSocketEvents(){this.socket.on(W.broadcastMessage,({payload:e})=>{try{const i=oa.fromBinary(e);P.emit(R.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(W.broadcastToEntity,({payload:e})=>{try{const i=oa.fromBinary(e);P.emit(R.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 n,r;switch(e){case W.joinRoom:case W.leaveRoom:case W.kick:case W.kickAll:{n=qr.fromBinary.bind(qr),r=qr.create();break}case W.getWaitingRoomRequests:{n=(s,o)=>s?lf.fromBinary(s,o):{requests:[]},r=lf.create();break}case W.recordingPaused:case W.recordingStarted:case W.recordingStopped:{n=bf.fromBinary.bind(bf);break}case jc.updateUserPreset:{n=pf.fromBinary.bind(pf);break}case hi.peerJoinedBroadcast:case ei.peerJoinedBroadcast:{n=Yg.fromBinary.bind(Yg);break}case hi.selfJoinComplete:case ei.selfJoinComplete:{n=iu.fromBinary.bind(iu);break}case hi.globalPeerPinBroadcast:case ei.globalPeerPinBroadcast:{n=Zg.fromBinary.bind(Zg);break}case hi.selectedPeer:case ei.selectedPeer:{n=tu.fromBinary.bind(tu);break}case hi.selectedPeerDiff:case ei.selectedPeerDiff:{n=zg.fromBinary.bind(zg);break}case hi.leaveRoom:case ei.leaveRoom:{n=nu.fromBinary.bind(nu);break}}this.socket.on(e,({payload:s})=>{let o=r;if(!n)return i(void 0);try{o=n(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 n=yield this.socket.sendMessagePromise(jc.getUserPresets,nR.toBinary(i)),r=oR.fromBinary(n.payload).peerPresets[0],s=new TextDecoder().decode(r.preset),o=JSON.parse(s).permissions;return{chat:o.chat,polls:o.polls,plugins:o.plugins}}catch(n){throw l.error("Error in getting user preset",{error:n}),n}})}}to=new WeakMap,MD([S.trace("RoomSocketHandler.joinRoom")],ih.prototype,"joinRoom",1);class nh extends Error{constructor(e){super(e!=null?e:"AwaitQueue stopped"),this.name="AwaitQueueStoppedError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,nh)}}class rh extends Error{constructor(e){super(e!=null?e:"AwaitQueue task removed"),this.name="AwaitQueueRemovedTaskError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,rh)}}var Td;class sh{constructor(e=!1){m(this,"pendingTasks",new Map),m(this,"nextTaskId",0),m(this,"stopping",!1),f(this,Td,void 0),this.log=e,v(this,Td,{info:e?l.info:()=>{}})}get size(){return this.pendingTasks.size}push(e,i,n){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(r){}return new Promise((r,s)=>{const o={id:this.nextTaskId++,task:e,metadata:n,name:i,enqueuedAt:Date.now(),executedAt:void 0,completed:!1,resolve:c=>{if(o.completed)return;o.completed=!0,this.pendingTasks.delete(o.id),r(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 nh);this.stopping=!1}remove(e){const i=Array.from(this.pendingTasks.values())[e];i&&i.reject(new rh)}get(e){return Array.from(this.pendingTasks.values())[e]}dump(){const e=Date.now();let i=0;return Array.from(this.pendingTasks.values()).map(n=>({idx:i++,task:n.task,name:n.name,enqueuedTime:n.executedAt?n.executedAt-n.enqueuedAt:e-n.enqueuedAt,executionTime:n.executedAt?e-n.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,n=yield e.task(),r=Date.now();a(this,Td).info(`AwaitQueue.push(${e.name})_timings`,{awaitQueueTask:{id:e.id,metadata:e.metadata,queueSizeAtStart:i,execTime:(r-e.executedAt)/1e3,taskStartTime:(e.executedAt-e.enqueuedAt)/1e3}}),e.resolve(n)}catch(i){e.reject(i)}})}}Td=new WeakMap;function AD(t,e){const i=new Error(e);return i.name=t,i}class io extends w{constructor(e){super(e),this.name="UnsupportedError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,io):this.stack=new Error(e).stack}}class Lt extends w{constructor(e){super(e),this.name="InvalidStateError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,Lt):this.stack=new Error(e).stack}}class Sr extends w{constructor(e){super(e),this.name="TransportConnectionError",Error.hasOwnProperty("captureStackTrace")?Error.captureStackTrace(this,Lt):this.stack=new Error(e).stack}}const yv=t=>new Promise(e=>setTimeout(e,t));function Sv(t,e){return u(this,null,function*(){return new Promise((i,n)=>u(this,null,function*(){const{strategy:r,maxRetryCount:s,delayTime:o}=x({strategy:"linear",maxRetryCount:3,delayTime:10},e);let c=0,d,h=!1;const p=g=>{h=!0,n(g)};for(;c<s;){try{const g=yield t(c,p);return i(g)}catch(g){if(d=g,h)break;if(c<s)r==="linear"?yield yv(o*(c+1)):r==="exponential"&&(yield yv(o*(c+Math.max(0,c-1))));else break}c+=1}return n(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 Ed(t){return{codecs:DD(t.codecs),headerExtensions:OD(t.headerExtensions?t.headerExtensions:[])}}function ND(t){const e=RTCRtpReceiver.getCapabilities("audio"),i=RTCRtpReceiver.getCapabilities("video"),n=RTCRtpSender.getCapabilities("audio"),r=RTCRtpSender.getCapabilities("video");t&&(i.codecs=i.codecs.filter(({mimeType:o})=>t===o),r.codecs=r.codecs.filter(({mimeType:o})=>t===o));const s={audio:Ed(e),video:Ed(i)};return{sender:{audio:Ed(n),video:Ed(r)},receiver:s}}var at;class LD{constructor(e,i){f(this,at,void 0),m(this,"events"),m(this,"sfuType"),v(this,at,e),this.sfuType=i,this.events=i===Ne.CF?hi:ei}joinRoom(e,i,n,r=!1,s=null){return u(this,null,function*(){const o={roomUuid:e,displayName:i,prejoined:r,capabilities:n};return s&&(o.location=s),(yield a(this,at).sendMessagePromiseWithTimeout({event:this.events.joinRoom,protobuf:Hw.toBinary(o),timeout:5e3})).payload})}connectTransport(e){return u(this,null,function*(){const i=(yield a(this,at).sendMessagePromise(this.events.createWebRTCTransport,vw.toBinary(e))).payload,{transportId:n,description:r,producerIds:s}=Wg.fromBinary(i),o={sdp:r==null?void 0:r.sdp,type:r.type};return{transportId:n,answer:o,producerIds:s}})}produce(e){return u(this,null,function*(){var i,n;const r=(yield a(this,at).sendMessagePromise(this.events.produce,rI.toBinary(e))).payload,s=BI.fromBinary(r);return{answer:{sdp:(i=s==null?void 0:s.description)==null?void 0:i.sdp,type:(n=s==null?void 0:s.description)==null?void 0:n.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,at).sendMessagePromise(this.events.consume,Xw.toBinary(e))).payload,{consumerIdsMap:{map:n},description:r}=UI.fromBinary(i);return{consumerStateMap:n,sessionDescription:r}})}closeProducer(e){return u(this,null,function*(){const i=(yield a(this,at).sendMessagePromise(this.events.closeProducer,uI.toBinary(e))).payload,{description:n}=JI.fromBinary(i);return n})}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,at).sendMessagePromise(this.events.closeConsumer,pI.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,at).sendMessagePromise(this.events.updateConsumersSimulcastConfig,iI.toBinary(e))).payload})}hostControlForPeer(e,i){return u(this,null,function*(){const n={audio:i==="audio",screeShare:!1,video:i==="video",participantId:e},r=(yield a(this,at).sendMessagePromise(this.events.hostControlPeer,SI.toBinary(n))).payload;if(!r)return!1;const{status:s}=eC.fromBinary(r);return s==="success"})}hostControlForAll(e){return u(this,null,function*(){const i={audio:e==="audio",screenShare:!1,video:e==="video"},n=(yield a(this,at).sendMessagePromise(this.events.hostControlAllPeers,EI.toBinary(i))).payload;if(!n)return!1;const{status:r}=iC.fromBinary(n);return r==="success"})}kickAll(){return u(this,null,function*(){const e={propagateKickAcrossRooms:!1};a(this,at).sendMessagePromise(W.kickAll,Jg.toBinary(e))})}kickPeer(e){return u(this,null,function*(){a(this,at).sendMessagePromise(W.kick,df.toBinary(e))})}changeDisplayName(e){return u(this,null,function*(){const i=(yield a(this,at).sendMessagePromise(this.events.changeDisplayName,vI.toBinary(e))).payload;if(!i)return!1;const{status:n}=rC.fromBinary(i);return n==="success"})}notifySelfJoinComplete(){return u(this,null,function*(){const e={},i=(yield a(this,at).sendMessagePromise(this.events.selfJoinComplete,qw.toBinary(e))).payload;return iu.fromBinary(i)})}audioActivity(e){return u(this,null,function*(){a(this,at).sendMessage(this.events.audioActivity,Sw.toBinary(e))})}}at=new WeakMap;class kd extends dt.EventEmitter{constructor(){super(),this.setMaxListeners(1/0)}safeEmit(e,...i){const n=this.listenerCount(e);try{return this.emit(e,...i)}catch(r){return l.error(`EnhancedEventEmitter:: safeEmit() | event listener ${e} threw an error`,{error:r}),Boolean(n)}}safeEmitAsPromise(e,...i){return u(this,null,function*(){const n={}.EVENT_PROMISE_TIMEOUT?parseInt({}.EVENT_PROMISE_TIMEOUT,10):1e4;return this.safeEmitAsPromiseWithTimeout(e,n,...i)})}safeEmitAsPromiseWithTimeout(e,i,...n){return u(this,null,function*(){return new Promise((r,s)=>{setTimeout(s,i,"event request timeout");try{this.emit(e.toString(),...n,r,s)}catch(o){l.error(`EnhancedEventEmitter:: safeEmitAsPromise() | event listener for event ${e.toString()} threw an error [event:%s]:%o`,{error:o}),s(o)}})})}}class ah extends kd{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:n,additionalSettings:r,proprietaryConstraints:s,onTrackHandler:o}){l.debug("HandlerInterface::init()"),this._direction=e,this.pc=new RTCPeerConnection(x({iceServers:i||[],iceTransportPolicy:n||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require"},r),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:n=>u(this,null,function*(){l.debug(`${this.name}::connect() | calling pc.setRemoteDescription() [answer:${JSON.stringify(n)}]`),yield this.pc.setRemoteDescription(n),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 n=yield this.pc.createOffer();return l.debug(`stopSending() | calling pc.setLocalDescription() [offer:${JSON.stringify(n)}]`),yield this.pc.setLocalDescription(n),{offerSdp:n,callback:r=>u(this,null,function*(){l.debug(`stopSending() | calling pc.setRemoteDescription() [answer:${JSON.stringify(r)}]`),yield this.pc.setRemoteDescription(r),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 n=this.midTransceiverMap.get(e);if(!n)throw new Error("associated RTCRtpTransceiver not found");yield n.sender.replaceTrack(i)})}setMaxSpatialLayer(e,i){return u(this,null,function*(){this._assertSendDirection(),l.debug(`setMaxSpatialLayer() [localId:${e}, spatialLayer:${i}]`);const n=this.midTransceiverMap.get(e);if(!n)throw new Error("associated RTCRtpTransceiver not found");const r=n.sender.getParameters();r.encodings.forEach((s,o)=>{o<=i?s.active=!0:s.active=!1}),yield n.sender.setParameters(r)})}setRtpEncodingParameters(e,i){return u(this,null,function*(){this._assertSendDirection(),l.debug(`setRtpEncodingParameters() [localId:${e}, params:${JSON.stringify(i)}]`);const n=this.midTransceiverMap.get(e);if(!n)throw new Error("associated RTCRtpTransceiver not found");const r=n.sender.getParameters();r.encodings.forEach((s,o)=>{r.encodings[o]=x(x({},s),i)}),yield n.sender.setParameters(r)})}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 oh extends ah{static createFactory(){return()=>new oh}get name(){return"Chrome74"}init({direction:e,iceServers:i,iceTransportPolicy:n,additionalSettings:r,proprietaryConstraints:s,onTrackHandler:o}){this._direction=e,this.pc=new RTCPeerConnection(x({iceServers:i||[],iceTransportPolicy:n||"all",bundlePolicy:"max-bundle",rtcpMuxPolicy:"require",sdpSemantics:"unified-plan"},r),s),o&&this.pc.addEventListener("track",c=>{o(c)}),this._addEventListeners()}send(e){return u(this,arguments,function*({track:i,encodings:n,codecOptions:r,screenShare:s}){this._assertSendDirection();const o=this.pc.addTransceiver(i,{direction:"sendonly",streams:[s?this._sendScreenShareStream:this._sendWebStream],sendEncodings:n});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=[];r&&r.length&&r.forEach(g=>{var y;const E=h.codecs.find(b=>b.mimeType.includes(g.name));if(g.parameters){l.debug(`codecOption.parameters:${JSON.stringify(g.parameters)}`);const b=((y=E.sdpFmtpLine)==null?void 0:y.split(";"))||[];b.push(...g.parameters);const N=Array.from(new Set(b).values());E.sdpFmtpLine=N.join(";")}p.push(E)}),l.info(`selected codecs: ${JSON.stringify(p)}`),o.setCodecPreferences(p)}const c=yield this.pc.createOffer();if(yield this.pc.setLocalDescription(c),r&&r.findIndex(({name: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=n=>{this.safeEmit("datachannel",e.channel,String.fromCharCode(...new Uint8Array(n.data)))}})}}class bd extends ah{constructor(e){super(),m(this,"supportsSendEncodings",!1),this.supportsSendEncodings=e.supportsSendEncodings}static createFactory(e){return()=>new bd(e)}get name(){return"Firefox60"}send(e){return u(this,arguments,function*({track:i,encodings:n,codecOptions:r,screenShare:s}){this._assertSendDirection();const o=this.supportsSendEncodings&&n!==void 0?{sendEncodings:n}:{},c=this.pc.addTransceiver(i,x({direction:"sendonly",streams:[s?this._sendScreenShareStream:this._sendWebStream]},o));if(!this.supportsSendEncodings&&n){n.reverse();const p=c.sender.getParameters();p.encodings=n,yield c.sender.setParameters(p)}const d=(p,g)=>{var y;const E=Gn(p),b=E.media[E.media.length-1],N=b.rtp.filter(J=>g.some(I=>I.name===J.codec)),M=b.fmtp.filter(J=>N.some(I=>I.payload===J.payload)),U=(y=b.rtcpFb)==null?void 0:y.filter(J=>N.some(I=>I.payload===J.payload)),$=N.map(J=>J.payload);return E.media[E.media.length-1].rtp=N,E.media[E.media.length-1].fmtp=M,E.media[E.media.length-1].rtcpFb=U,E.media[E.media.length-1].payloads=$.join(" "),lc(E)},h=yield this.pc.createOffer();if(h.sdp=d(h.sdp,r),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 n=this.midTransceiverMap.get(e);if(!n)throw new Error("associated RTCRtpTransceiver not found");const r=n.sender.getParameters(),s=r.encodings.length-1-i;r.encodings.forEach((o,c)=>{c>=s?o.active=!0:o.active=!1}),yield n.sender.setParameters(r)})}addCustomEventListeners(){this.pc.addEventListener("datachannel",e=>{const{channel:i}=e;i.onmessage=n=>u(this,null,function*(){const r=yield n.data.arrayBuffer();this.safeEmit("datachannel",e.channel,String.fromCharCode(...new Uint8Array(r)))})})}}class ch extends ah{static createFactory(){return()=>new ch}get name(){return"Safari12"}send(e){return u(this,arguments,function*({track:i,encodings:n,codecOptions:r,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:n}),c=RTCRtpSender.getCapabilities(typeof i=="string"?i:i.kind);l.info(`Safari12::senders available params: ${JSON.stringify(c)}`);const d=[];r&&r.length>0&&r.forEach(p=>{var g;const y=c.codecs.find(E=>E.mimeType.includes(p.name));if(p.parameters){l.info(`Safari12::codecOption.parameters:, ${JSON.stringify(p.parameters)}`);const E=((g=y.sdpFmtpLine)==null?void 0:g.split(";"))||[];E.push(...p.parameters);const b=[...new Set(E).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=n=>u(this,null,function*(){const r=String.fromCharCode(...new Uint8Array(n.data));this.safeEmit("datachannel",e.channel,r)})}}}function xD(t,e){return typeof t=="undefined"?e:typeof window!="undefined"&&Object.getOwnPropertyDescriptor(window,"structuredClone")?structuredClone(t):JSON.parse(JSON.stringify(t))}var _d,Ts,Xi,Zi,Cn,wd,dh,lh,Tv,uh,Ev;class VD extends kd{constructor(e){var i;super(),f(this,Zi),f(this,wd),f(this,lh),f(this,uh),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,_d,void 0),f(this,Ts,void 0),f(this,Xi,void 0),this.id=e.id,this.localId=e.localId,v(this,_d,e.handler),this.appData=e.appData,this.peerId=e.producingPeerId,this.producingTransportId=e.producingTransportId,v(this,Xi,!1),this.producerId=e.producerId,this.track=e.track,v(this,Ts,(i=e.paused)!=null?i:!1),this.mimeType=e.mimeType,this.transceiver=e.transceiver,this.rtpReceiver=e.rtpReceiver,B(this,lh,Tv).call(this)}get closed(){return a(this,Xi)}get kind(){return this.track.kind}get paused(){return a(this,Ts)}close(e,i){a(this,Xi)||(l.debug(`Consumer::close() ${e?`with reason ${e}`:""}`,a(this,Zi,Cn)),v(this,Xi,!0),i&&(B(this,uh,Ev).call(this),this.transceiver.stop()),this.safeEmit("close",e))}getStats(){return u(this,null,function*(){if(a(this,Xi))throw new Lt("closed");return a(this,_d).getReceiverStats(this.localId)})}pause(){if(l.debug("consumer::pause()",a(this,Zi,Cn)),a(this,Xi)){l.error("consumer::pause() | Consumer closed",a(this,Zi,Cn));return}v(this,Ts,!0),this.track.enabled=!1,this.safeEmit("pause")}resume(){if(l.debug("consumer::resume()",a(this,Zi,Cn)),a(this,Xi)){l.error("Consumer::resume() | Consumer closed",a(this,Zi,Cn));return}v(this,Ts,!1),this.track.enabled=!0,this.safeEmit("resume")}}_d=new WeakMap,Ts=new WeakMap,Xi=new WeakMap,Zi=new WeakSet,Cn=function(){return{consumer:{id:this.id,appData:this.appData,peerId:this.peerId,kind:this.kind}}},wd=new WeakSet,dh=function(){l.debug('Consumer::track "ended" event',a(this,Zi,Cn)),this.safeEmit("trackended")},lh=new WeakSet,Tv=function(){this.track.addEventListener("ended",B(this,wd,dh).bind(this))},uh=new WeakSet,Ev=function(){try{this.track.removeEventListener("ended",B(this,wd,dh)),this.track.stop()}catch(t){l.error("Consumer::destroyTrack()",H(x({},a(this,Zi,Cn)),{error:t}))}};var Oi,no,ro,Es,Ti,pt,Tr,so,si,Ei;class UD extends kd{constructor(e){var i,n;super(),f(this,si),m(this,"id"),m(this,"localId"),f(this,Oi,void 0),m(this,"kind"),m(this,"appData"),m(this,"rtpSender"),f(this,no,void 0),f(this,ro,void 0),f(this,Es,void 0),f(this,Ti,!1),f(this,pt,void 0),f(this,Tr,void 0),f(this,so,void 0),this.id=e.id,this.localId=e.localId,v(this,pt,e.track),this.kind=(i=e.track)==null?void 0:i.kind,v(this,Tr,e.disableTrackOnPause?!((n=e.track)!=null&&n.enabled):!1),v(this,so,void 0),v(this,no,e.stopTracks),v(this,ro,e.disableTrackOnPause),v(this,Es,e.zeroRtpOnPause),this.appData=e.appData||{},this._onTrackEnded=this._onTrackEnded.bind(this),v(this,Oi,e.handler),this.rtpSender=e.rtpSender,this._handleTrack()}get closed(){return a(this,Ti)}get track(){return a(this,pt)}get paused(){return a(this,Tr)}get maxSpatialLayer(){return a(this,so)}close(e){return u(this,null,function*(){if(a(this,Ti))return;if(l.debug(`Producer::close() ${e?`with reason ${e}`:""}`,a(this,si,Ei)),v(this,Ti,!0),this._destroyTrack(),e===Cd){this.safeEmit("close",{reason:e});return}const{offerSdp:i,callback:n}=yield a(this,Oi).stopSending(this.localId),{answer:r}=yield this.safeEmitAsPromise("close",{offer:i,reason:e});n(r)})}getStats(){return u(this,null,function*(){if(a(this,Ti))throw new Lt("closed");return a(this,Oi).getSenderStats(this.localId)})}pause(){l.debug("Producer::pause()",a(this,si,Ei)),a(this,Ti)&&l.error("Producer::pause() | Producer closed",a(this,si,Ei)),v(this,Tr,!0),a(this,pt)&&a(this,ro)&&(a(this,pt).enabled=!1),a(this,Es)&&a(this,Oi).replaceTrack(this.localId,null),this.emit("pause")}resume(){if(l.debug("Producer::resume()",a(this,si,Ei)),a(this,Ti)){l.error("Producer::resume() | Producer closed",a(this,si,Ei));return}v(this,Tr,!1),a(this,pt)&&a(this,ro)&&(a(this,pt).enabled=!0),a(this,Es)&&a(this,Oi).replaceTrack(this.localId,a(this,pt)),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,si,Ei)),a(this,Ti)){if(i&&a(this,no))try{i.stop()}catch(n){l.error("Producer::replaceTrack",H(x({},a(this,si,Ei)),{error:n}))}throw new Lt("closed")}else if(i&&i.readyState==="ended")throw new Lt("track ended");if(i===a(this,pt)){l.debug(`replaceTrack() | same track, ignored trackId: ${i.id}`,a(this,si,Ei));return}(!a(this,Es)||!a(this,Tr))&&(yield a(this,Oi).replaceTrack(this.localId,i)),this._destroyTrack(),v(this,pt,i),this._handleTrack()})}setMaxSpatialLayer(e){return u(this,null,function*(){if(a(this,Ti))throw new Lt("closed");if(this.kind!=="video")throw new io("not a video Producer");if(typeof e!="number")throw new TypeError("invalid spatialLayer");yield a(this,Oi).setMaxSpatialLayer(this.localId,e),v(this,so,e)})}setRtpEncodingParameters(e){return u(this,null,function*(){if(a(this,Ti))throw new Lt("closed");if(typeof e!="object")throw new TypeError("invalid params");yield a(this,Oi).setRtpEncodingParameters(this.localId,e)})}_onTrackEnded(){l.debug(`Producer::track "ended" event trackId: ${this.track.id}`,a(this,si,Ei)),this.safeEmit("trackended",this.track.id)}_handleTrack(){a(this,pt)&&a(this,pt).addEventListener("ended",this._onTrackEnded)}_destroyTrack(){var e;if(a(this,pt))try{a(this,pt).removeEventListener("ended",this._onTrackEnded),a(this,no)&&a(this,pt).stop()}catch(i){l.error(`Producer::_destroyTrack trackId: ${(e=this.track)==null?void 0:e.id}`,H(x({},a(this,si,Ei)),{error:i}))}}}Oi=new WeakMap,no=new WeakMap,ro=new WeakMap,Es=new WeakMap,Ti=new WeakMap,pt=new WeakMap,Tr=new WeakMap,so=new WeakMap,si=new WeakSet,Ei=function(){return{producer:{id:this.id,appData:this.appData,kind:this.kind}}};function kv(t){return typeof t=="object"&&!Array.isArray(t)&&t!==null}function hh(t){return Math.random().toString(36).substring(2,2+t)}const Id=1;function bv(t){const e=t;return delete e.payload._bolt,e}function FD(t){return t.payload&&kv(t.payload)}function _v(t){var e,i;return FD(t)&&(i=(e=t.payload._bolt)==null?void 0:e.id)!=null?i:""}var Er;const ao=class extends dt.EventEmitter{constructor(t,e,i){super(),m(this,"channel"),m(this,"queue"),m(this,"serverProtocolVersion"),f(this,Er,new Map),m(this,"respond",(n,r,s=!1)=>{let o;s?o=ao.createErrorResponse(n,r):o=ao.createResponse(n,r),this.channel.send(JSON.stringify(o))}),m(this,"notify",n=>{const r=ao.createNotification(n);this.channel.send(JSON.stringify(r))}),m(this,"request",n=>u(this,null,function*(){const r=ao.createRequest(n),s=new Promise((o,c)=>{const{id:d}=r.payload._bolt,h={id:d,method:r.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(r)),s})),m(this,"send",n=>{const r=JSON.stringify(n),s=16384;if(r.length>s){const o=s-200,c=Math.ceil(r.length/o),d=[];for(let p=0;p<c;p+=1){const g=p*o,y=(p+1)*o;d.push(r.slice(g,y))}const h=xr();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: ${r}`),this.channel.send(r)}),m(this,"processMessage",n=>{var r;a(this,Er).has(n.id)||a(this,Er).set(n.id,[]);const s=a(this,Er).get(n.id);if(s[n.chunkIndex]=n,(s==null?void 0:s.length)===n.count&&!s.some(o=>o===void 0)){const o=a(this,Er).get(n.id),c=o==null?void 0:o.reduce((h,p)=>h+p.chunk,"");a(this,Er).delete(n.id);const d=JSON.parse(c);if(!d.payload||!kv(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=(r=d.payload._bolt)==null?void 0:r.version,!this.processResponseMsg(d))return d}}),m(this,"processResponseMsg",n=>{const{id:r}=n.payload._bolt,s=this.queue.get(r);return s?(l.debug(`resolving pending request with id: ${r}, complete response: ${JSON.stringify(n)}`),n.type==="error"?s.cancel(bv(n)):s.resolve(bv(n)),!0):!1}),m(this,"processBoltHandshake",n=>{var r,s;return n.type==="_bolt"||n.type==="handshake"?(this.respond((s=(r=n.payload._bolt)==null?void 0:r.id)!=null?s:hh(8),{type:"_bolt",payload:{message:"pong"}}),!0):!1}),this.label=e,this.transportId=i,this.channel=t,this.queue=new Map}};let oo=ao;Er=new WeakMap,m(oo,"createRequest",t=>{var e;if((e=t.payload)!=null&&e._bolt)throw new Error("rpc fields are internal values");return{type:t.type,payload:H(x({},t.payload),{_bolt:{id:hh(8),type:"REQUEST",version:Id}})}}),m(oo,"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:H(x({},e.payload),{_bolt:{id:t,type:"RESPONSE",version:Id}})}}),m(oo,"createNotification",t=>{var e;if((e=t.payload)!=null&&e._bolt)throw new Error("rpc fields are internal values");return{type:t.type,payload:H(x({},t.payload),{bolt:{id:hh(8),type:"NOTIFY",version:Id}})}}),m(oo,"createErrorResponse",(t,e)=>({type:"error",payload:{error:e.message,_bolt:{id:t,type:"RESPONSE",version:Id}}}));const Cd="transport closed";var ks;const co=class extends kd{constructor(t,{id:e,direction:i,handlerFactory:n,iceServers:r,iceTransportPolicy:s,proprietaryConstraints:o,additionalSettings:c,appData:d,config:h}){var p,g,y;super(),m(this,"awaitQueue"),m(this,"observer"),f(this,ks,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,ks,t),this.id=e,this.direction=i;const E=xD(c,{});delete E.iceServers,delete E.iceTransportPolicy,delete E.bundlePolicy,delete E.rtcpMuxPolicy,delete E.sdpSemantics,this.producers=new Map,this.consumers=new Map,this.datachannels=new Map,this.consumerTrackEvents=new Map,this.unknownTracksMap=new Map,this.awaitQueue=new sh(!0),this.handler=n(),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,ks),this.handler.init({onTrackHandler:this._ontrack.bind(this),direction:i,iceServers:r,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 N=this.datachannels.get(b.label);N||(N||(N=new oo(b,b.label,this.serverId),this.datachannels.set(b.label,N)),this.eventsDCFailureTimer=setTimeout(()=>{b.label==="events"&&(this.eventsDCReadyPromiseResolver(!1),this.safeEmit("dc_error",b.label))},5e3))}),this.handler.on("datachannel",(b,N)=>{b.label==="events"&&(this.eventsDCReadyPromiseResolver(!0),this.eventsDCFailureTimer&&clearTimeout(this.eventsDCFailureTimer));const M=this.datachannels.get(b.label);if(!M){l.error("unregistered datachannel for message",{rtcChannel:{label:b.label,message:N}});return}try{const U=JSON.parse(N);l.debug("datachannel message chunk recieved",{dataChannelMessageChunk:{id:U.id,count:U.count,chunkIndex:U.chunkIndex,chunk:U.chunk,transprtId:this.serverId}});const $=M.processMessage(U);if(!$)return;l.debug(`datachannel message with id:${U.id} on transport:${this.serverId}complete - ${JSON.stringify($)}`),this.emit(`datachannel:${b.label}`,M.label,$)}catch(U){l.error("error parsing message",{error:U})}})}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(Cd).catch(()=>{})}),this.producers.clear(),Array.from(this.consumers.values()).forEach(t=>{t.close(Cd)}),this.consumers.clear(),this.consumerTrackEvents.clear(),this.emit("close"))}getStats(){return u(this,null,function*(){if(this.closed)throw new Lt("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:n,answer:r}=yield t(e);this.setServerId(n),yield i(r)})),!(yield this.transportConnectionPromise))throw new Error("ice connection failed");if(a(this,ks)===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 Lt("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 io("not a sending Transport");if(e.readyState==="ended")throw new Lt("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 Sr("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:n,codecOptions:r,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:E,sender:b,mid:N}=yield this.handler.send({track:i,encodings:n,codecOptions:r,screenShare:d==null?void 0:d.screenShare}),{answer:M,producerId:U}=yield e({offer:y,kind:i.kind,paused:o?!i.enabled||Object.hasOwn(i,"fakeTracks"):!1,appData:H(x({},d||{}),{mid:N}),codecOptions:r,producingTransportId:this.serverId}),$=yield E(M);return{producerId:U,localId:$,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 Lt("closed");if(this.direction!=="recv")throw new io("not a receiving transport");if(!(yield this.transportConnectionPromise))throw new Sr("transport not connected");return!0})}consume(t,e,i){return u(this,null,function*(){return this.awaitQueue.push(()=>u(this,null,function*(){const n={},{consumerStates:r,sessionDescription:s,failedProducers:o}=yield e(t);r.forEach((d,h)=>{n[h]=this.createConsumerObjectAndWaitForTrack(H(x({},d),{producerId:h}))}),s&&(l.info("Session description found, sending negotiation request"),yield i(s));const c=[];return yield Promise.all(Object.entries(n).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=Gn(t.sdp),n={};return i.media.forEach(r=>{e.includes(r.mid.toString())&&(n[r.mid.toString()]={rtp:r.rtp,fmtp:r.fmtp,payloads:r.payloads,rtcpFb:r.rtcpFb})}),n}static setCodecAndFmtpMappings(t,e,i){const n=Gn(t.sdp);return n.media=n.media.map(r=>{if(e.includes(r.mid.toString())){const s=x({},r);return s.rtp=i[r.mid.toString()].rtp,s.fmtp=i[r.mid.toString()].fmtp,s.payloads=i[r.mid.toString()].payloads,s.rtcpFb=i[r.mid.toString()].rtcpFb,s}return r}),H(x({},t),{sdp:lc(n)})}static parseHeaderExtensionMappings(t){const e=Gn(t.sdp),i={};return e.media.forEach(n=>{i[n.mid]=n.ext}),i}static setHeaderExtensionMappings(t,e){const i=Gn(t.sdp);return i.media=i.media.map(n=>{const r=x({},n);return r.ext=e[n.mid],r}),H(x({},t),{sdp:lc(i)})}closeConsumers(t,e){return u(this,null,function*(){try{const i=t.map(c=>c.transceiver.mid),n=co.parseCodecAndFmtpMappings(this.handler.pc.remoteDescription,i),r=co.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=co.setCodecAndFmtpMappings(s,i,n),s=co.setHeaderExtensionMappings(s,r),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=Gn(e.sdp);return i.media=i.media.map(n=>{if(n.type==="audio"){const r=x({},n),s=r.fmtp.find(o=>o.payload===111);return s&&(s.config+=";stereo=1;sprop-stereo=1"),r.rtcpFb||(r.rtcpFb=[]),r.rtcpFb.some(o=>o.type==="nack")||r.rtcpFb.push({payload:parseInt(r.payloads,10),type:"nack"}),r}return n}),e.sdp=lc(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:n}=t;l.info(`track event received [trackId: ${e.id}] [mid: ${i.mid}]`);let r;a(this,ks)===Ne.HIVE?r=`${n[0].id}:${e.kind}`:r=`${i.mid}:${e.kind}`,e.addEventListener("ended",()=>{l.info(`rtc consumer track ended [trackId: ${e.id}]`),this.unknownTracksMap.delete(r)});const s=this.consumerTrackEvents.get(r);s?(s(e,i),this.consumerTrackEvents.delete(r)):(l.warn(`track event handler not found ${r}`),this.unknownTracksMap.set(r,t))}sendErrorOverDC(t,e,i){const n=this.getDatachannel(t);if(!n)throw new Error("datachannel not found",{cause:{code:"DC_NOT_FOUND",values:{label:t}}});n.respond(e,i,!0)}sendResponseOverDC(t,e,i){const n=this.getDatachannel(t);if(!n)throw new Error("datachannel not found",{cause:{code:"DC_NOT_FOUND",values:{label:t}}});n.respond(e,i)}createConsumerObjectAndWaitForTrack(t){return u(this,null,function*(){const{consumerId:e,producerId:i,producingPeerId:n,producingTransportId:r,streamId:s,paused:o,screenShare:c,appData:d,kind:h,mimeType:p}=t,g=`${s}:${h}`,y=H(x({},t),{name:"consumer creation task error",message:"consumer creation failed"});return new Promise((E,b)=>u(this,null,function*(){const N=setTimeout(()=>{l.warn(`Timed out waiting for track event ${g} producingPeerId: ${n}`),this.consumerTrackEvents.delete(g),y.isTimedout=!0,b(y)},5e3),M=($,J)=>{try{if($.readyState==="ended")clearTimeout(N),b(y);else{const I=$;I.enabled=!0,this.handler.midTransceiverMap.set(J.mid,J);const ae=new VD({id:e,localId:J.mid,transceiver:J,track:I,paused:o,producerId:i,producingPeerId:n,producingTransportId:r,handler:this.handler,appData:H(x({},d),{screenShare:c,peerId:n}),rtpReceiver:J.receiver,mimeType:p});this.consumers.set(e,ae),ae.once("close",()=>{this.consumers.delete(ae.id),this.handler.midTransceiverMap.delete(J.mid)}),l.info("consumer created for ",{consumer:{id:e,kind:h,appData:{screenShare:c},peerId:n,producerId:i}}),this.emit("newconsumer",ae),clearTimeout(N),E(ae)}}catch(I){l.warn("error while creating consumer:",I),clearTimeout(N),b(y)}},U=this.unknownTracksMap.get(g);U?(l.info(`track event already received [trackId: ${U.track.id}] [mid: ${U.transceiver.mid}]`),this.unknownTracksMap.delete(g),M(U.track,U.transceiver)):(l.info(`Registering onTrack handler for key ${g} [producingPeerId: ${n}]`),this.consumerTrackEvents.set(g,M))}))})}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 n=(yield i.request(e)).payload;return l.info(`sendDataChannelMessage::response ${JSON.stringify(n)}`),n})}};let BD=co;ks=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=Sp.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 n=t.match(/(?:(?:Chrome|Chromium))[ /](\w+)/i);return n?Number(n[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 Pd;class jD{constructor(e,{handlerName:i,handlerFactory:n}={}){if(m(this,"handlerFactory"),f(this,Pd,void 0),l.debug("constructor()"),v(this,Pd,e),i&&n)throw new TypeError("just one of handlerName or handlerInterface can be given");if(n)this.handlerFactory=n;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=oh.createFactory();break;case"Safari12":this.handlerFactory=ch.createFactory();break;case"Firefox60":this.handlerFactory=bd.createFactory({supportsSendEncodings:!1});break;case"Firefox110":this.handlerFactory=bd.createFactory({supportsSendEncodings:!0});break;default:throw new TypeError(`unknown handlerName "${i}"`)}}}createTransport(e){const i=xr();return new BD(a(this,Pd),H(x({id:i},e),{handlerFactory:this.handlerFactory}))}}Pd=new WeakMap;const HD=2e3;var Ni,lo,_t,wt,Rd,Md,bs,uo,ho,po,_s,en,mo,go,Ad,Dd,ph,mh,wv,Od,gh,fh,Iv,vh,Cv,yh,Pv,Sh,Rv,Th,Mv,Nd,Eh,Ld,kh;class GD extends dt.EventEmitter{constructor(e,i,n){switch(super(),f(this,go),f(this,Dd),f(this,mh),f(this,Od),f(this,fh),f(this,vh),f(this,yh),f(this,Sh),f(this,Th),f(this,Nd),f(this,Ld),f(this,Ni,void 0),f(this,lo,void 0),f(this,_t,void 0),f(this,wt,void 0),f(this,Rd,void 0),f(this,Md,void 0),f(this,bs,void 0),f(this,uo,void 0),f(this,ho,void 0),f(this,po,{transportFailureCount:{send:0,recv:0},lastConnectionTime:0}),f(this,_s,void 0),f(this,en,"all"),f(this,mo,void 0),v(this,Ni,e),v(this,bs,i),v(this,mo,n),v(this,lo,new jD(n)),v(this,uo,new LD(i,n)),n){case Ne.CF:{v(this,ho,hi);break}case Ne.HIVE:default:{v(this,ho,ei);break}}a(this,go,Ad).mediaState={send:{state:ys.NEW},recv:{state:ys.NEW}},(jr(a(this,Ni),"forceRelay")||Y.hasFeature(ne.FORCE_RELAY))&&v(this,en,"relay"),l.info(`ICE Transport Policy initially set to ${a(this,en)}`),B(this,Dd,ph).call(this)}get socket(){return a(this,bs)}get socketHandler(){return a(this,uo)}get sendTransport(){return a(this,_t)}get recvTransport(){return a(this,wt)}get events(){return a(this,ho)}get nodeType(){return a(this,mo)}set sendTransportConnectedCallback(e){v(this,Rd,e)}set recvTransportConnectedCallback(e){v(this,Md,e)}setupTransports(e){return u(this,null,function*(){yield B(this,mh,wv).call(this,e);let i,n;e.send&&(i=B(this,Od,gh).call(this,a(this,_t)).then(r=>{try{a(this,Rd).call(this,r)}catch(s){l.error("Failed to run send transport callback")}})),e.recv&&(n=B(this,Od,gh).call(this,a(this,wt)).then(r=>{try{a(this,Md).call(this,r)}catch(s){l.error("Failed to run recv transport callback")}})),yield Promise.all([i,n])})}stopTransports(e){var i,n;if(e.send&&this.sendTransport!==void 0){const{id:r,serverId:s,direction:o}=a(this,_t);l.info("Closing send transport",{transport:{id:r,serverId:s,type:o}}),a(this,_t).close(),a(this,_t).removeAllListeners(),v(this,_t,void 0)}if(e.recv&&this.recvTransport!==void 0){const{id:r,serverId:s,direction:o}=a(this,wt);l.info("Closing recv transport",{transport:{id:r,serverId:s,type:o}}),(i=a(this,wt))==null||i.close(),(n=a(this,wt))==null||n.removeAllListeners(),v(this,wt,void 0)}B(this,Dd,ph).call(this)}stopAllTransports(){l.info("Closing all transports"),this.stopTransports({send:!0,recv:!0})}handleErrors(e){throw new Error("Method not implemented.")}}Ni=new WeakMap,lo=new WeakMap,_t=new WeakMap,wt=new WeakMap,Rd=new WeakMap,Md=new WeakMap,bs=new WeakMap,uo=new WeakMap,ho=new WeakMap,po=new WeakMap,_s=new WeakMap,en=new WeakMap,mo=new WeakMap,go=new WeakSet,Ad=function(){return a(this,Ni).getValue("connectionHandler")},Dd=new WeakSet,ph=function(){v(this,_s,{send:void 0,recv:void 0})},mh=new WeakSet,wv=function(t){return u(this,null,function*(){var e,i,n,r,s,o,c,d;(jr(a(this,Ni),"forceRelay")||Y.hasFeature(ne.FORCE_RELAY))&&v(this,en,"relay"),l.info(`ICE Transport Policy set to ${a(this,en)}`);const h=yield ut().getICEServers().catch(p=>(l.warn(`failed to get iceservers from server: ${p.message}`),[]));if(t.send){const p=Y.hasFeature(ne.DISABLE_OPUS_DTX_CF);B(this,vh,Cv).call(this,{iceServers:h,additionalSettings:{encodedInsertableStreams:(e=a(this,Ni).getValue("modules").e2ee)==null?void 0:e.enabled},config:{enableHighBitrate:(r=(n=(i=a(this,Ni).getValue("defaults").mediaConfiguration)==null?void 0:i.audio)==null?void 0:n.enableHighBitrate)!=null?r:!1,enableStereo:(c=(o=(s=a(this,Ni).getValue("defaults").mediaConfiguration)==null?void 0:s.audio)==null?void 0:o.enableStereo)!=null?c:!1,enableDtx:a(this,mo)===Ne.HIVE?!0:!!p},iceTransportPolicy:a(this,en)})}t.recv&&B(this,yh,Pv).call(this,{iceServers:h,additionalSettings:{encodedInsertableStreams:(d=a(this,Ni).getValue("modules").e2ee)==null?void 0:d.enabled},iceTransportPolicy:a(this,en)})})},Od=new WeakSet,gh=function(t){return u(this,null,function*(){const{id:e,serverId:i,direction:n}=t;B(this,Sh,Rv).call(this,t);try{const r=Y.hasFeature(ne.ENABLE_HIVE_INFINITE_RETRIES)?1/0:3;return yield Sv((s,o)=>u(this,null,function*(){s>0&&l.debug(`Retrying transport connect, count: ${s}`,{transport:{id:e,serverId:i,type:n}});try{if(t.closed)throw new Sr("Cannot reconnect closed transport");yield B(this,fh,Iv).call(this,t)}catch(c){if(c instanceof Sr){o(c);return}throw l.error("Failed to connect transport, retrying",{transport:t,error:c}),c}}),{delayTime:100,strategy:"exponential",maxRetryCount:r}),t}catch(r){throw l.error(`Failed to connect send transport after retry: ${t.id}`,{error:r,transport:{id:e,serverId:i,type:n}}),t.close(),t.removeAllListeners(),r}})},fh=new WeakSet,Iv=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,bs).isConnected)throw new Sr("Socket is not connected");if(t.connectionState==="closed")throw new Sr("Transport is closed");try{yield t.connect(n=>B(this,Th,Mv).call(this,i,n)),l.info(`Connected ${i} transport`,{transport:{id:e,serverId:t.serverId,type:i}})}catch(n){throw a(this,po).transportFailureCount[i]+=1,n.message==="ice connection failed"?new Sr(n.message):n}})},vh=new WeakSet,Cv=function(t){var e,i;if(a(this,_t)&&a(this,_t).connected){l.info("Transport send is already connected",{transport:{id:(e=a(this,_t))==null?void 0:e.id,serverId:(i=a(this,_t))==null?void 0:i.serverId,type:"send"}});return}v(this,_t,a(this,lo).createTransport(H(x({},t),{direction:"send"}))),K.configureSendTransport(a(this,_t))},yh=new WeakSet,Pv=function(t){var e,i;if(a(this,wt)&&a(this,wt).connected){l.info("Transport recv 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:"recv"}});return}v(this,wt,a(this,lo).createTransport(H(x({},t),{direction:"recv"}))),K.configureRecvTransport(a(this,wt))},Sh=new WeakSet,Rv=function(t){const{direction:e,id:i}=t;t.on("connectionstatechange",n=>u(this,null,function*(){B(this,Ld,kh).call(this,{state:n,direction:e}),l.info(`Transport connection state changed for ${e} transport`,{transport:{id:i,serverId:t.serverId,type:e,status:n}});const r=()=>{const s=a(this,_s)[e];s!==void 0&&(clearTimeout(s),a(this,_s)[e]=void 0)};switch(n){case"connected":r(),a(this,po).lastConnectionTime=performance.now();break;case"disconnected":a(this,_s)[e]=setTimeout(()=>u(this,null,function*(){yield B(this,Nd,Eh).call(this,t.direction)}),HD);break;case"failed":if(t.closed)return;r(),yield B(this,Nd,Eh).call(this,t.direction);break}})),t.on("icecandidate",n=>u(this,null,function*(){l.debug("Sending iceCandidate:",{iceCandidate:n})})),t.on("datachannel:events",(n,r)=>u(this,null,function*(){var s,o;l.debug("Got data channel message on event:",{rtcChannel:{label:n,message:r}});try{switch(r.type){case"handshake":{const c={type:"handshake",payload:{message:"pong"}};t.sendResponseOverDC(n,_v(r),c);break}case"hub-disconnect":{l.debug(`media hub disconnected, full_reconnect: ${(s=r.payload)==null?void 0:s.full_reconnect}`),((o=r.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 ${n}`)}})),t.on("dc_error",()=>{t.direction==="recv"&&(l.warn("Events datachannel did not open in 5s",{country:S.location.country}),this.handleErrors("reconnectRecvTransport"))})},Th=new WeakSet,Mv=function(t,e){return u(this,null,function*(){const i=t==="recv";try{const{sdp:n,type:r}=e,s={consuming:i,description:{sdp:n,type:r,target:i?Gi.SUBSCRIBER:Gi.PUBLISHER},producers:[]};return a(this,uo).connectTransport(s)}catch(n){throw l.error(`Error in ${t} transport connection:`,{error:n,country:S.location.country}),n}})},Nd=new WeakSet,Eh=function(t){return u(this,null,function*(){switch(l.info("Called reconnect transport",{transport:{type:t}}),this.stopTransports({[t]:!0}),Y.hasFeature(ne.HIVE_TRANSPORT_FORCE_RELAY_ON_ICE_FAILED)&&a(this,bs).isConnected&&a(this,po).transportFailureCount[t]>2&&(l.warn(`Multiple disconnections in ${t} transport, forcing relay`),v(this,en,"relay")),yield this.setupTransports({[t]:!0}),t){case"send":{l.info("Transport reconnected",{transport:a(this,_t)}),P.emit(R.RESET_PRODUCER_STATE);break}case"recv":{l.info("Transport reconnected",{transport:a(this,wt)}),P.emit(R.UPDATE_ACTIVE,{createAllConsumers:!0});break}default:l.warn("Unknown transport direction",{transport:{type:t}})}B(this,Ld,kh).call(this,{state:ys.CONNECTED,direction:t})})},Ld=new WeakSet,kh=function(t){const{state:e,direction:i}=t;a(this,go,Ad).mediaState[i]={state:e},P.emit(R.TRANSPORT_STATE_UPDATE,x({transport:i},a(this,go,Ad).mediaState[i]))};var bh,Av;class qD{constructor(e){f(this,bh),this.recvTransport=e,B(this,bh,Av).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:x(x({},d==="video"&&h?{video:h}:{}),d==="audio"&&h?{audio:h}:{})}))}},n=yield this.recvTransport.sendDataChannelMessage("events",i),r=new Map;e.forEach(o=>r.set(o.producerId,o));const s=new Map;return Object.entries(n).forEach(([o,c])=>{const d=r.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,n){return u(this,null,function*(){try{l.debug(`Received offer over dc: ${e.sdp} for transport`);const r=yield this.recvTransport.setRemoteOffer(e),s={type:"answer",payload:{type:r.type,sdp:r.sdp}};return l.debug(`datachannel answer: ${JSON.stringify(s)}`),this.recvTransport.sendResponseOverDC(n,i,s),r}catch(r){throw l.error("datachannel:events::Error:",r),r.code!=="DC_NOT_FOUND"&&this.recvTransport.sendErrorOverDC(n,i,r),r}})}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 n={type:"close_consumers",payload:{consumers:i}},r=yield this.recvTransport.sendDataChannelMessage("events",n),{failedConsumers:s}=r;return{failedConsumers:s}})}switchConsumersToLayer(e,i){return u(this,null,function*(){var n;const r=this.recvTransport.getDatachannel("events");if(!r){l.warn("events datachannel not found");return}const s=(n=e==null?void 0:e.map(({id:c})=>c))!=null?n:[],o={type:"switch_consumer_layer",payload:{consumerIds:s,layer:i}};yield r.request(o),l.info(`Consumers switched layers to ${i}`,{consumerIds:s})})}}bh=new WeakSet,Av=function(){this.recvTransport.on("datachannel:events",(t,e)=>u(this,null,function*(){try{switch(e.type){case"negotiation":{const{sdp:i}=e.payload,n={sdp:i,type:"offer"};this.negotiate(n,_v(e),t);break}default:break}}catch(i){l.error(`Unable to handle the incoming datachannel message on channel ${t}`)}}))};class $D{constructor(e,i,n,r){this.events=e,this.recvTransport=i,this.socket=n,this.socketHandler=r}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,n=[];e.forEach(d=>{const{producingPeerId:h,producerId:p,producingTransportId:g}=d,y=Y.hasFeature(ne.ENABLE_CF_SIMULCAST)?{simulcast:{preferredRid:"h",priorityOrdering:"asciibetical",ridNotAvailable:"asciibetical"}}:{};i.set(p,h),n.push(x({producingPeerId:h,producerId:p,producingTransportId:g},y))});const r=yield this.socketHandler.consume({requests:n,consumingTransportId:this.recvTransport.serverId}),s=new Map;e.forEach(d=>s.set(d.producerId,d));const o=new Map,c=[];return Object.entries(r.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(H(x({},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:r.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),n={transportId:this.recvTransport.serverId,description:{sdp:i.sdp,type:i.type,target:Gi.SUBSCRIBER}};return l.debug(`sending renegotiate request: ${JSON.stringify(n)} on recvTransport`,{transport:this.recvTransport}),yield this.socket.sendMessagePromise(this.events.renegotiateSessionDescription,kw.toBinary(n)),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=(n,r)=>u(this,null,function*(){const s=n.map(h=>h.localId);l.info(`Closing consumers: ${JSON.stringify(s)}`);const o={description:{sdp:r.sdp,type:r.type,target:Gi.SUBSCRIBER},consumerIds:s,consumingTransportId:this.recvTransport.serverId},c=yield this.socketHandler.closeConsumer(o),d=zI.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 n={requests:[],consumingTransportId:this.recvTransport.serverId};e.forEach(({id:r,producingTransportId:s,localId:o})=>{n.requests.push({producerId:r,producingTransportId:s,mid:o,simulcast:{preferredRid:i===0?"q":"h",priorityOrdering:"asciibetical",ridNotAvailable:"asciibetical"}})}),yield this.socketHandler.updateConsumersSimulcastConfig(n),l.info(`Consumers switched layers to ${i}`,{consumerIds:e==null?void 0:e.map(({id:r})=>r)})})}}class _h{constructor(e){this.socketHandler=e}static getMSIDFromSDP(e,i){return Gn(e).media.filter(n=>i==="video"?n.type==="video":n.type==="audio").at(-1).msid}create(e){return u(this,arguments,function*({offer:i,kind:n,paused:r,appData:s,codecOptions:o,producingTransportId:c}){var d,h;const p=_h.getMSIDFromSDP(i.sdp,n),g={description:{sdp:i.sdp,type:i.type,target:Gi.PUBLISHER},paused:r,kind:n,msid:p,appData:JSON.stringify(s),screenShare:(d=s.screenShare)!=null?d:!1,mimeType:`${n}/${(h=o[0])==null?void 0:h.name}`,producingTransportId:c},{answer:y,producerId:E}=yield this.socketHandler.produce(g);return{answer:y,producerId:E}})}}var xd,ws,kr,fo,Vd,Li,wh,Pn,vo,Ud,Ih,Ch,Dv,Ph,Ov,Rh,Nv,Mh,Lv;class JD extends GD{constructor(e,i,n){super(e,i,n),f(this,Ud),f(this,Ch),f(this,Ph),f(this,Rh),f(this,Mh),f(this,xd,void 0),f(this,ws,void 0),f(this,kr,void 0),f(this,fo,void 0),f(this,Vd,void 0),f(this,Li,void 0),f(this,wh,{producerCreationFailureCount:0,consumerCreationFailureCount:0,producerNotReadyFailureCount:0}),f(this,Pn,[]),f(this,vo,void 0),v(this,xd,e),this.sendTransportConnectedCallback=()=>u(this,null,function*(){v(this,Vd,new _h(this.socketHandler))}),this.recvTransportConnectedCallback=r=>u(this,null,function*(){switch(a(this,fo).clear(),this.nodeType){case Ne.CF:{v(this,Li,new $D(this.events,r,this.socket,this.socketHandler));break}case Ne.HIVE:default:v(this,Li,new qD(r))}}),this.reset()}get socketHandler(){return super.socketHandler}get producers(){return a(this,ws)}get consumers(){return a(this,kr)}get producerIdToConsumerIdMap(){return a(this,fo)}reset(){v(this,ws,new Map),v(this,kr,new Map),v(this,fo,new Map)}createProducer(e,i){return u(this,null,function*(){var n;if(!this.sendTransport||this.sendTransport.closed)throw new Error("Send transport is closed");try{const r=yield this.sendTransport.produce(e,B(this,Ch,Dv).bind(this));return(n=e.appData)!=null&&n.e2ee&&P.emit(R.E2EE_ACTIVE_PRODUCER,r),B(this,Ph,Ov).call(this,r,i),r}catch(r){throw l.error("Failed to create producer",{error:r}),a(this,wh).producerCreationFailureCount+=1,r}})}closeProducer(e,i){return u(this,null,function*(){var n;const r=this.producers.get(e);if(!r){l.warn(`Producer with ID ${e} was not found`);return}i!=null&&i.stopTrack&&r.track.stop();try{yield this.sendTransport.closeProducer(r),(n=a(this,xd).getValue("modules").e2ee)!=null&&n.enabled&&P.emit(R.E2EE_INACTIVE_PRODUCER,r)}catch(s){l.error("Failed to close producer on server",{error:s,producer:r})}})}closeAllProducers(){return Promise.all(Array.from(a(this,ws).entries()).map(([,e])=>e.close()))}createConsumer(e){return this.createConsumers([e])}createConsumers(e){return u(this,null,function*(){a(this,vo)||clearTimeout(a(this,vo)),v(this,Pn,a(this,Pn).concat(e)),yield B(this,Ud,Ih).call(this)})}closeConsumer(e){return this.closeConsumers([e])}closeConsumers(e){return u(this,null,function*(){if(!a(this,Li))return;const i=e.map(r=>this.consumers.get(r)).filter(r=>r!==void 0);if(i.length===0)return;const{failedConsumers:n}=yield a(this,Li).close(i);n!=null&&n.length&&l.warn("Failed to close some consumers",{consumerIds:n})})}closeAllConsumers(){return this.closeConsumers(Array.from(a(this,kr).keys()))}switchConsumersToLayer(e,i){return u(this,null,function*(){a(this,Li).switchConsumersToLayer(e,i)})}}xd=new WeakMap,ws=new WeakMap,kr=new WeakMap,fo=new WeakMap,Vd=new WeakMap,Li=new WeakMap,wh=new WeakMap,Pn=new WeakMap,vo=new WeakMap,Ud=new WeakSet,Ih=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,Pn).splice(0,a(this,Pn).length);try{const i=e.filter(({producerId:s})=>!this.producers.get(s));if(i.length===0)return;const{consumers:n,failedProducers:r}=yield this.recvTransport.consume(i,B(this,Rh,Nv).bind(this),a(this,Li).negotiate.bind(a(this,Li)));if(n.forEach(B(this,Mh,Lv).bind(this)),r!=null&&r.length){l.error("Failed to create consumers for producers",{producers:r});const s=r.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,Pn,a(this,Pn).concat(s)),v(this,vo,setTimeout(B(this,Ud,Ih).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(n){}yield this.setupTransports({recv:!0})}}})},Ch=new WeakSet,Dv=function(t){return a(this,Vd).create(t)},Ph=new WeakSet,Ov=function(t,e){t.on("close",(i,n)=>u(this,null,function*(){const{offer:r,reason:s}=i;if(l.info("producer::closing",{debuggingHint:s,producer:H(x({},t),{status:"closing"})}),s!==Cd){const o={producerId:t.id,description:{sdp:r.sdp,type:r.type,target:Gi.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:H(x({},t),{status:"closed"})}),n({answer:d})}catch(c){l.error("producer close error",c)}}this.producers.delete(t.id),e()})),t.on("trackended",()=>{l.info("producer::trackended",{producer:H(x({},t),{status:"UNKNOWN"})})}),a(this,ws).set(t.id,t)},Rh=new WeakSet,Nv=function(t){return u(this,null,function*(){try{return yield this.recvTransport.canConsume(),yield a(this,Li).create(t)}catch(e){throw l.error("Error in consume request",{error:e}),e}})},Mh=new WeakSet,Lv=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,kr).delete(t.id),P.emit(R.CONSUMER_CLOSED,{id:t.id})})),a(this,kr).set(t.id,t),this.producerIdToConsumerIdMap.set(t.producerId,t.id),P.emit(R.NEW_CONSUMER,{id:t.id,appData:t.appData,peerId:t.peerId})};var Fd,Bd,Wd,yo,So,To,jd,Hd,Eo,Kt,xi,Vi,br,_r,Rn,Gd,Ah,xv,Dh,Vv,Oh,Uv,Nh,Fv;const Lh=class{constructor({initialEnergyThreshold:t=.015,zeroCrossingThreshold:e=20,minVoiceDuration:i=3,hangoverFrames:n=5,noiseAdaptationRate:r=.95,voiceAdaptationRate:s=.99,minEnergyThreshold:o=.005,maxEnergyThreshold:c=.2,energyRatioThreshold:d=1.5,noiseHistorySize:h=50}={}){f(this,Ah),f(this,Dh),f(this,Fd,void 0),f(this,Bd,void 0),f(this,Wd,void 0),f(this,yo,void 0),f(this,So,void 0),f(this,To,void 0),f(this,jd,void 0),f(this,Hd,void 0),f(this,Eo,void 0),f(this,Kt,void 0),f(this,xi,void 0),f(this,Vi,!1),f(this,br,0),f(this,_r,0),f(this,Rn,[]),f(this,Gd,void 0),v(this,yo,t),v(this,Kt,t),v(this,Fd,e),v(this,Bd,i),v(this,Wd,n),v(this,So,r),v(this,To,s),v(this,jd,o),v(this,Hd,c),v(this,Eo,d),v(this,Gd,h),v(this,xi,t/2)}get voiceDetected(){return a(this,Vi)}processAudioChunk(t){var e,i;const n=B(e=Lh,Oh,Uv).call(e,t),r=B(i=Lh,Nh,Fv).call(i,t);return B(this,Ah,xv).call(this,n),n/a(this,xi)>a(this,Eo)&&n>a(this,Kt)&&r>a(this,Fd)?(v(this,br,a(this,br)+1),v(this,_r,a(this,Wd)),a(this,br)>=a(this,Bd)&&v(this,Vi,!0)):(v(this,br,0),a(this,_r)>0?v(this,_r,a(this,_r)-1):a(this,Vi)&&v(this,Vi,!1),a(this,Vi)||B(this,Dh,Vv).call(this,n)),{energy:n,isVoice:a(this,Vi)}}reset(){v(this,Vi,!1),v(this,br,0),v(this,_r,0),v(this,Kt,a(this,yo)),v(this,xi,a(this,yo)/2),v(this,Rn,[])}getThresholdInfo(){return{currentEnergyThreshold:a(this,Kt),backgroundNoiseEnergy:a(this,xi),energyRatioThreshold:a(this,Eo)}}};let xh=Lh;Fd=new WeakMap,Bd=new WeakMap,Wd=new WeakMap,yo=new WeakMap,So=new WeakMap,To=new WeakMap,jd=new WeakMap,Hd=new WeakMap,Eo=new WeakMap,Kt=new WeakMap,xi=new WeakMap,Vi=new WeakMap,br=new WeakMap,_r=new WeakMap,Rn=new WeakMap,Gd=new WeakMap,Ah=new WeakSet,xv=function(t){a(this,Vi)?v(this,Kt,a(this,To)*a(this,Kt)+(1-a(this,To))*t):v(this,Kt,a(this,So)*a(this,Kt)+(1-a(this,So))*a(this,xi)),v(this,Kt,Math.max(a(this,jd),Math.min(a(this,Hd),a(this,Kt))))},Dh=new WeakSet,Vv=function(t){if(t<a(this,Kt)*1.2)if(a(this,Rn).push(t),a(this,Rn).length>a(this,Gd)&&a(this,Rn).shift(),a(this,Rn).length>=10){const e=[...a(this,Rn)].sort((n,r)=>n-r),i=Math.floor(e.length/2);v(this,xi,e[i])}else v(this,xi,.95*a(this,xi)+.05*t)},Oh=new WeakSet,Uv=function(t){return Math.sqrt(t.map(e=>e*e).reduce((e,i)=>e+i)/t.length)},Nh=new WeakSet,Fv=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(xh,Oh),f(xh,Nh);const KD=60,zD=400;var Mn,An,Ui,wr,Ir,ko,Is,bo,Dn,Cr,_o,Vh,Bv,qd,Uh,Fh,Wv,Bh,jv;const $d=class{constructor(t){f(this,Vh),f(this,Fh),f(this,Mn,void 0),f(this,An,void 0),f(this,Ui,void 0),f(this,wr,void 0),f(this,Ir,void 0),f(this,ko,void 0),f(this,Is,void 0),f(this,bo,void 0),f(this,Dn,void 0),f(this,Cr,void 0),f(this,_o,void 0),this.reportRequest=t,v(this,wr,new AudioContext),v(this,Ir,a(this,wr).createAnalyser()),a(this,Ir).fftSize=2048,v(this,bo,new xh)}set producerId(t){v(this,Ui,t)}set audioTrack(t){v(this,ko,t);const e=new MediaStream;e.addTrack(a(this,ko)),a(this,wr).createMediaStreamSource(e).connect(a(this,Ir))}start(){l.debug(`AudioActivityReporter: Starting audio activity reporter: ${a(this,Ui)}`),a(this,Mn)&&Vr(a(this,Mn)),v(this,Mn,dc(()=>u(this,null,function*(){var t;if(!a(this,ko)||!a(this,Ui))return;const{energy:e}=B(this,Vh,Bv).call(this),i=B(t=$d,qd,Uh).call(t,e);let n=.9;a(this,_o)!==i&&a(this,_o)?n=.9:i?n=.3:n=.5,v(this,Is,(a(this,Is)||0)*(1-n)+e*n)}),KD)),a(this,An)&&Vr(a(this,An)),v(this,An,dc(B(this,Fh,Wv).bind(this),zD))}stop(){try{l.debug(`AudioActivityReporter: Stopping audio activity reporter: ${a(this,Ui)}`),a(this,Mn)&&(Vr(a(this,Mn)),v(this,Mn,void 0)),a(this,An)&&(Vr(a(this,An)),v(this,An,void 0))}catch(t){}a(this,bo).reset()}};let Wh=$d;Mn=new WeakMap,An=new WeakMap,Ui=new WeakMap,wr=new WeakMap,Ir=new WeakMap,ko=new WeakMap,Is=new WeakMap,bo=new WeakMap,Dn=new WeakMap,Cr=new WeakMap,_o=new WeakMap,Vh=new WeakSet,Bv=function(){var t;a(this,wr).state==="suspended"&&a(this,wr).resume().then(()=>{l.debug("AudioActivityReporter: AudioContext forced resumed")}).catch(s=>{l.error("AudioActivityReporter: Error resuming AudioContext",s)});const e=new Float32Array(a(this,Ir).frequencyBinCount);a(this,Ir).getFloatTimeDomainData(e);const{energy:i,isVoice:n}=a(this,bo).processAudioChunk(e),r=B(t=$d,Bh,jv).call(t,i);return Y.hasFeature(ne.ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS)&&l.debug(`AudioActivityReporter: producer: ${a(this,Ui)}, energy: ${a(this,Is)},
|
|
18
|
-
slogScale: ${
|
|
19
|
-
maxEnergy: ${a(this,Cr)}`),r===-1/0||i<1e-6?{energy:0,isVoice:!1}:((!a(this,Dn)||r<a(this,Dn))&&v(this,Dn,r),(!a(this,Cr)||r>a(this,Cr))&&v(this,Cr,r),{energy:(r-a(this,Dn))/(a(this,Cr)-a(this,Dn))*10||0,isVoice:n})},qd=new WeakSet,Uh=function(t){return t<5},Fh=new WeakSet,Wv=function(t=a(this,Is)){var e;if(!a(this,Ui)||!t){Y.hasFeature(ne.ENABLE_AUDIO_ACTIVITY_DEBUG_LOGS)&&l.debug(`AudioActivityReporter: No producerId or energy to report: ${a(this,Ui)}`);return}const i={producerId:a(this,Ui),energy:Math.round(t),silent:B(e=$d,qd,Uh).call(e,t)};v(this,_o,i.silent),this.reportRequest(i)},Bh=new WeakSet,jv=function(t){const e=Math.log10(t);return Math.round(e)},f(Wh,qd),f(Wh,Bh);const YD=(t=!1)=>{if("MediaStreamTrackGenerator"in window&&"AudioData"in window)try{const i=new window.MediaStreamTrackGenerator({kind:"audio"}),n=i.writable.getWriter(),r=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:r,numberOfFrames:s,numberOfChannels:o,timestamp:c,data:g});c+=s/r*1e6,yield n.ready,yield n.write(y)}catch(g){d&&clearInterval(d),n.releaseLock(),i.writable.abort()}});d=window.setInterval(h,100);const p=new MediaStream([i]).getAudioTracks()[0];return p.addEventListener("ended",()=>{d&&clearInterval(d),n.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 n=i.createOscillator();n.frequency.value=0,n.type="sine";const r=i.createGain();r.gain.value=0,n.connect(r);const s=i.createMediaStreamDestination();r.connect(s),n.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 n=new MediaStream().getVideoTracks()[0],r=document.createElement("canvas");r.height=(e=n==null?void 0:n.getSettings().height)!=null?e:720,r.width=(i=n==null?void 0:n.getSettings().width)!=null?i:1280;const s=r.getContext("2d");s.fillStyle="black",s.fillRect(0,0,r.width,r.height),setInterval(()=>{s.fillStyle="black",s.fillRect(0,0,r.width,r.height)},1e3);const o=r.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,n)=>{for(var r=n>1?void 0:n?ZD(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&XD(e,i,r),r};const zt=["video/VP9","video/VP8"];var Jd,Kd,It,Q,wo,tn,xt,Cs,Ps,Rs,zd,ki,On,Io,Ms,As,Vt,Yt,Pr,Ds,jh,Hv,Hh,Gv,Gh,qv,Yd,qh,$h,Jh,$v,Kh,Jv,zh,Kv,Yh,zv,mt,Ct,Os,Co,Qh,Yv,Xh,Qv,Zh,Xv;const Zv=(Jh=class{constructor(t,e,i){f(this,Pr),f(this,jh),f(this,Hh),f(this,Gh),f(this,Yd),f(this,Kh),f(this,zh),f(this,Yh),f(this,mt),f(this,Os),f(this,Qh),f(this,Xh),f(this,Zh),m(this,"context"),m(this,"authToken"),m(this,"e2ee"),f(this,Jd,void 0),f(this,Kd,void 0),f(this,It,void 0),f(this,Q,void 0),f(this,wo,void 0),f(this,tn,void 0),f(this,xt,void 0),f(this,Cs,void 0),f(this,Ps,void 0),f(this,Rs,void 0),f(this,zd,void 0),f(this,ki,null),f(this,On,void 0),f(this,Io,void 0),f(this,Ms,void 0),f(this,As,void 0),f(this,Vt,void 0),f(this,Yt,void 0);var n,r;this.context=t;const{socket:s}=i;this.mediaJoined=!1,v(this,Ms,new Map([["video/VP9",new Set],["video/VP8",new Set]])),v(this,As,new Map([["video/VP9",new Set],["video/VP8",new Set]])),v(this,tn,e),v(this,It,s),v(this,Cs,!1),v(this,Q,new JD(t,s,e)),v(this,xt,a(this,Q).events),v(this,On,new Set),v(this,Vt,new Map),v(this,Ps,!1),v(this,Rs,new sh),e===Ne.CF&&!navigator.isReactNative&&v(this,Yt,new Wh(a(this,Q).socketHandler.audioActivity.bind(a(this,Q).socketHandler))),this.e2ee=(r=(n=t.getValue("modules").e2ee)==null?void 0:n.enabled)!=null?r:!1,this.handleSocketEvents(),this.handleCallstatsEvents(),v(this,zd,Yl(()=>u(this,null,function*(){if(!a(this,Pr,Ds).mediaJoinAttempted)return;const{roomJoined:o}=yield this.joinRoom(a(this,Kd),a(this,Jd),!0,!0);o&&(P.emit(R.RESET_PRODUCER_STATE),P.emit(R.ROOM_NODE_RECONNECTED))}),5e3,{leading:!0,maxWait:1e3}))}get peerId(){return this.context.getValue("peerId")}get mediaJoined(){return a(this,Pr,Ds).mediaJoined}set mediaJoined(t){a(this,Pr,Ds).mediaJoined=t}reset(){a(this,Q).closeAllProducers(),a(this,Q).closeAllConsumers(),a(this,Vt).clear(),a(this,On).clear(),v(this,ki,null),a(this,Rs).stop(),a(this,Q).stopAllTransports(),a(this,Q).reset(),v(this,Rs,new sh)}joinRoom(t,e){return u(this,arguments,function*(i,n,r=!1,s=!1,o={}){a(this,Pr,Ds).mediaJoinAttempted=!0,v(this,Cs,!0),r&&this.reset();try{return yield a(this,Rs).push(()=>B(this,jh,Hv).call(this,i,n,s,o),"joinRoom")}catch(c){return l.error("Error in room joining process",{error:c}),P.emit(R.ROOM_NODE_FAILED),{roomJoined:!1}}})}initializeConnection(t,e){return u(this,arguments,function*(i,n,r=!1,s={}){return a(this,ki)?a(this,ki):(v(this,ki,(()=>u(this,null,function*(){try{yield B(this,Yd,qh).call(this,i,n,r,s)}catch(o){throw v(this,ki,null),o}}))()),a(this,ki))})}getConsumers(){return a(this,Q).consumers}leaveRoom(){return u(this,null,function*(){var t;a(this,Q).stopAllTransports(),v(this,Ps,!1),a(this,Pr,Ds).mediaJoinAttempted=!1;const e={closeRoom:!1};try{const i=yield a(this,It).sendMessagePromise(a(this,xt).leaveRoom,Jw.toBinary(e));(t=LI.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})}K.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,Q).createConsumers(t)})}closeConsumers(t){return u(this,null,function*(){if(!t.length)return;const e=t.reduce((i,n)=>{const r=a(this,Q).producerIdToConsumerIdMap.get(n.producerId);return r?(i.push(r),i):(l.warn(`consumer not found in close consumers: ${n.producerId}`),i)},[]);yield a(this,Q).closeConsumers(e)})}_shareWebcam(t,e){return u(this,null,function*(){const i=e==="video/VP9"?be.WEBCAM:be.WEBCAM_BACKUP,n=B(this,mt,Ct).call(this,i);if(n){const p=yield n;if(a(this,Q).producers.has(p)){const g=a(this,Q).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 r=[e].concat(zt.filter(p=>p!==e)),s=B(this,Zh,Xv).call(this,t,r),o=jr(this.context,"disableSimulcast"),c=a(this,tn)===Ne.CF?ne.ENABLE_CF_SIMULCAST:ne.ENABLE_HIVE_SIMULCAST;!o&&Y.hasFeature(c)?(l.info(`Simulcast enabled for SFU: ${a(this,tn)}`),s.encodings=D1(t)):l.info(`Simulcast disabled for webcam producer, SFU: ${a(this,tn)}`),Y.hasFeature(ne.TRACK_HINT)&&(s.track.contentHint=Y.getValue(ne.TRACK_HINT));const d=()=>{l.info("Disabling video due to the producer closure"),a(this,Vt).delete(i)},h=a(this,Q).createProducer(s,d);return B(this,Os,Co).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=Y.getValue(ne.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 n=zt.filter(r=>{var s,o;return((o=(s=a(this,wo).sender)==null?void 0:s.video)==null?void 0:o.codecs.findIndex(c=>c.mimeType===r))>=0&&a(this,As).get(r).size>0});return n.length===0&&n.push(zt[0]),yield Promise.all(n.map(r=>(l.debug(`Calling _shareWebcam with video codec: ${r}`),this._shareWebcam(t,r)))),t})}shareScreen(t){return u(this,null,function*(){const{video:e,audio:i}=t;if(e===void 0)return;const n={track:e,codecOptions:[{name:"VP8"}],appData:{screenShare:!0,e2ee:this.e2ee,supportsRemoteControl:Ie.isElectron()},stopTracks:!1},r=()=>{l.info("Disabling screenShare due to the producer closure"),a(this,Vt).delete(be.SCREENSHARE_VIDEO),a(this,Vt).delete(be.SCREENSHARE_AUDIO)},s=a(this,Q).createProducer(n,r);B(this,Os,Co).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,tn)!==Ne.CF},d=()=>{};o=a(this,Q).createProducer(c,d),B(this,Os,Co).call(this,be.SCREENSHARE_AUDIO,o.then(h=>h.id))}yield Promise.all([s,o||Promise.resolve()]),K.screenShareStart()})}shareMic(t){return u(this,null,function*(){try{if(t===void 0)throw new Lt("track undefined");const e=B(this,mt,Ct).call(this,be.MIC);if(e){const s=yield e;if(a(this,Q).producers.has(s)){const o=a(this,Q).producers.get(s);if(!o.closed){yield o.replaceTrack({track:t}),yield this.resumeMic(),a(this,Yt)&&(a(this,Yt).audioTrack=t,a(this,Yt).producerId=s,a(this,Yt).start());return}yield a(this,Q).closeProducer(s,{stopTrack:!1})}yield this.shareMic(t);return}const i=B(this,Xh,Qv).call(this,t),n=()=>{a(this,Vt).delete(be.MIC)},r=a(this,Q).createProducer(i,n);B(this,Os,Co).call(this,be.MIC,r.then(s=>s.id)),yield r.then(s=>{a(this,Yt)&&(a(this,Yt).audioTrack=s.track,a(this,Yt).producerId=s.id,a(this,Yt).start())})}catch(e){throw new w(e)}})}pauseMic(){return u(this,null,function*(){var t;const e=yield B(this,mt,Ct).call(this,be.MIC),i=a(this,Q).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,Yt))==null||t.stop();const n={producerId:i.id,pause:!0};a(this,It).sendMessage(a(this,xt).toggleProducer,xc.toBinary(n))})}pauseWebcam(){return u(this,null,function*(){const t=yield B(this,mt,Ct).call(this,be.WEBCAM),e=yield B(this,mt,Ct).call(this,be.WEBCAM_BACKUP),i=a(this,Q).producers.get(t),n=a(this,Q).producers.get(e);if(!i&&!n){l.error("pauseWebcam::could_not_find_webcam_producer");return}const r=s=>{const o={producerId:s.id,pause:!0};a(this,It).sendMessage(a(this,xt).toggleProducer,xc.toBinary(o))};i&&(i.pause(),r(i)),n&&(n.pause(),r(n))})}resumeMic(){return u(this,null,function*(){const t=yield B(this,mt,Ct).call(this,be.MIC),e=a(this,Q).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&&P.emit(R.E2EE_ACTIVE_PRODUCER,e);const i={producerId:e.id,pause:!1};a(this,It).sendMessage(a(this,xt).toggleProducer,xc.toBinary(i))})}resumeWebcam(){return u(this,arguments,function*(t=be.WEBCAM){const e=yield B(this,mt,Ct).call(this,t),i=a(this,Q).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&&P.emit(R.E2EE_ACTIVE_PRODUCER,i);const n={producerId:i.id,pause:!1};a(this,It).sendMessage(a(this,xt).toggleProducer,xc.toBinary(n))})}disableWebcam(t){return u(this,null,function*(){const e=t==="video/VP9"?be.WEBCAM:be.WEBCAM_BACKUP,i=yield B(this,mt,Ct).call(this,e);B(this,Qh,Yv).call(this,e),i&&(yield a(this,Q).closeProducer(i))})}disableMic(){return u(this,null,function*(){var t;const e=yield B(this,mt,Ct).call(this,be.MIC);e&&(yield a(this,Q).closeProducer(e)),(t=a(this,Yt))==null||t.stop(),a(this,Vt).delete(be.MIC)})}disableScreenShare(){return u(this,null,function*(){l.info("screen_sharing_stopped"),K.screenShareStop();const t=yield B(this,mt,Ct).call(this,be.SCREENSHARE_VIDEO),e=yield B(this,mt,Ct).call(this,be.SCREENSHARE_AUDIO);t&&(yield a(this,Q).closeProducer(t)),e&&(yield a(this,Q).closeProducer(e)),a(this,On).clear(),a(this,Vt).delete(be.SCREENSHARE_VIDEO),a(this,Vt).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 B(this,mt,Ct).call(this,be.WEBCAM),n=yield B(this,mt,Ct).call(this,be.WEBCAM_BACKUP);yield a(this,Q).closeProducer(i,{stopTrack:!1}),yield a(this,Q).closeProducer(n,{stopTrack:!1}),this.shareWebcam(t)}if(e){const i=yield B(this,mt,Ct).call(this,be.SCREENSHARE_VIDEO);yield a(this,Q).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,Q).socketHandler.changeDisplayName(i)))throw new Error("failed to change display name!")})}kick(t){const e={peerIds:[t]};a(this,Q).socketHandler.kickPeer(e)}kickAll(){a(this,Q).socketHandler.kickAll()}muteAll(t){return u(this,null,function*(){if(!(yield a(this,Q).socketHandler.hostControlForAll("audio")))throw new Error("failed to mute all participant")})}muteAllVideo(){return u(this,null,function*(){if(!(yield a(this,Q).socketHandler.hostControlForAll("video")))throw new Error("failed to mute all video participant")})}disableAudio(t){return u(this,null,function*(){if(!(yield a(this,Q).socketHandler.hostControlForPeer(t,"audio")))throw new Error("failed to mute given participant")})}disableVideo(t){return u(this,null,function*(){if(!(yield a(this,Q).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,It).sendMessagePromise(a(this,xt).globalPinPeer,oI.toBinary(e))}catch(i){l.error("Error in pinning peer:",{error:i})}})}validateScreenShare(t){return this.peerId===t.peerId&&a(this,Q).producers.get(t.producerId)&&a(this,On).add(t.consumerPeerId),a(this,On).size}switchConsumersToLayer(t,e){return u(this,null,function*(){const i=t.map(n=>this.getConsumers().get(n));a(this,Q).switchConsumersToLayer(i,e)})}handleSocketEvents(){return u(this,null,function*(){a(this,It).on(a(this,xt).peerProducerCreateBroadcast,({payload:t})=>{var e,i;if(this.mediaJoined)try{const{participantId:n,producerState:r}=uC.fromBinary(t);if(n===this.peerId)return;if(r!=null&&r.mimeType||(r.mimeType=r.kind===Mi.AUDIO?"audio/opus":"video/VP8"),r.kind===Mi.VIDEO&&!r.screenShare&&((i=(e=a(this,wo).receiver)==null?void 0:e.video)==null?void 0:i.codecs.findIndex(s=>s.mimeType===zt[0]))>=0&&a(this,Ms).get(zt[0]).has(n)&&r.mimeType!==zt[0]){l.warn(`Ignoring producer: ${r.producerId}`);return}l.info(`producer created broadcast: ${n}, producer state: ${r}`),P.emit(R.NEW_PRODUCER,{peerId:n,producer:H(x({},r),{kind:r.kind===Mi.AUDIO?"audio":"video",producingPeerId:n})})}catch(n){l.error("error in peer-producer-create-broadcast",{error:n})}}),a(this,It).on(a(this,xt).peerProducerToggleBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e,initiatorParticipantId:i,producerState:{kind:n,pause:r,producerId:s}}=Xg.fromBinary(t),o=n===Mi.AUDIO?"audio":"video";if(l.info(`producer toggle broadcast: ${e}, producerId: ${s}, kind:${o}, paused:${r} payload: ${JSON.stringify(Xg.fromBinary(t))}`),e===this.peerId&&i!==this.peerId&&r&&P.emit(o==="audio"?R.MUTE_SELF:R.MUTE_SELF_VIDEO),e===this.peerId)return;P.emit(R.PRODUCER_TOGGLE,{peerId:e,producerId:s,paused:r,kind:o}),Array.from(this.getConsumers().values()).filter(c=>c.producerId===s).forEach(c=>{c.paused!==r&&(l.debug(`consumer state mismatched for ${c.id}. updating consumer pause state ${c.paused} to ${r}`),r?(c.pause(),P.emit(R.CONSUMER_PAUSED,{id:c.id})):(c.resume(),P.emit(R.CONSUMER_RESUMED,{id:c.id})))})}catch(e){l.error("error in producer toggle broadcast handler",{error:e})}}),a(this,It).on(a(this,xt).peerLeaveBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e}=nu.fromBinary(t);if(e===this.peerId)return;l.info(`peer left broadcast:${e}`),a(this,On).delete(e),a(this,Q).consumers.forEach(i=>{i.peerId===e&&i.close()}),P.emit(R.PEER_CLOSED,{id:e})}catch(e){l.error("error in peer left broadcast",{error:e})}}),a(this,It).on(a(this,xt).peerProducerCloseBroadcast,({payload:t})=>{if(this.mediaJoined)try{const{participantId:e,producerState:{producerId:i}}=mC.fromBinary(t);if(e===this.peerId)return;l.info(`producer closed broadcast:${e}`),P.emit(R.PRODUCER_CLOSED,{peerId:e,producerId:i});const n=a(this,Q).producerIdToConsumerIdMap.get(i);if(!n){l.warn(`no consumer found for producer:${i}`);return}l.info(`closing consumer ${n}, producer id: ${i}`),a(this,Q).closeConsumer(n).then(()=>{l.info(`closed consumer: ${n}`),a(this,Q).producerIdToConsumerIdMap.delete(i),P.emit(R.CONSUMER_CLOSED,{id:n})}).catch(r=>{l.error("error closing consumer",{error:r})})}catch(e){l.error("error on producer close broadcast",{error:e})}}),a(this,It).on(a(this,xt).mediaRoomTerminationBroadcastResponse,()=>{!this.mediaJoined&&!a(this,Cs)&&!a(this,Ps)||(l.warn("media hub termination broadcast received, rejoining room"),P.emit(R.ROOM_NODE_DISCONNECTED),a(this,zd).call(this))})})}handleCallstatsEvents(){K.onConsumerScore(t=>{t.forEach((e,i)=>{const n=a(this,Q).consumers.get(i);n&&P.emit(R.CONSUMER_SCORE_UPDATE,{id:i,kind:n.kind,peerId:n.peerId,score:e.score,scoreStats:e})})}),K.onProducerScore(t=>{t.forEach((e,i)=>{const n=Array.from(a(this,Q).producers.values()).find(r=>r.id===i);n&&P.emit(R.PRODUCER_SCORE_UPDATE,{id:i,kind:n.kind,appData:n.appData,score:e.score,scoreStats:e})})})}handlePeerCapabilities(t,e){var i,n,r,s;for(let o=0;o<=zt.length;o+=1){const c=zt[o];if(((n=(i=e==null?void 0:e.receiver)==null?void 0:i.video)==null?void 0:n.codecs.findIndex(d=>d.mimeType===c))>=0||o===zt.length-1){a(this,As).get(c).add(t);break}}for(let o=0;o<=zt.length;o+=1){const c=zt[o];if(((s=(r=e==null?void 0:e.sender)==null?void 0:r.video)==null?void 0:s.codecs.findIndex(d=>d.mimeType===c))>=0||o===zt.length-1){a(this,Ms).get(c).add(t);break}}}handlePeerLeaving(t){Y.hasFeature(ne.FORCE_VIDEO_CODEC)||(a(this,Ms).forEach(e=>e.delete(t)),a(this,As).forEach((e,i)=>{e.delete(t),!(e.size!==0||i===zt[0])&&this.disableWebcam(i)}))}},Jd=new WeakMap,Kd=new WeakMap,It=new WeakMap,Q=new WeakMap,wo=new WeakMap,tn=new WeakMap,xt=new WeakMap,Cs=new WeakMap,Ps=new WeakMap,Rs=new WeakMap,zd=new WeakMap,ki=new WeakMap,On=new WeakMap,Io=new WeakMap,Ms=new WeakMap,As=new WeakMap,Vt=new WeakMap,Yt=new WeakMap,Pr=new WeakSet,Ds=function(){return this.context.getValue("connectionHandler")},jh=new WeakSet,Hv=function(t,e,i,n){return u(this,null,function*(){v(this,Kd,t);try{return a(this,ki)?yield a(this,ki):yield B(this,Yd,qh).call(this,t,e,i,n),B(this,Gh,qv).call(this,e),{roomJoined:yield B(this,Hh,Gv).call(this)}}catch(r){return l.error("Failed to complete room join",{error:r}),{roomJoined:!1}}finally{v(this,ki,null)}})},Hh=new WeakSet,Gv=function(){return u(this,null,function*(){try{this.mediaJoined=!0;const{roomState:t}=yield a(this,Q).socketHandler.notifySelfJoinComplete();return v(this,Jd,t.roomUuid),v(this,Ps,!0),v(this,Cs,!1),!0}catch(t){return l.error("Error completing room join",{error:t}),this.mediaJoined=!1,!1}})},Gh=new WeakSet,qv=function(t){navigator.product!=="ReactNative"&&setTimeout(()=>{try{const e={userId:this.context.getValue("userId"),peerId:this.peerId,roomUUID:t,roomViewType:"groupCall",deviceInfo:H(x({},Ie.getDeviceInfo()),{userAgent:navigator.userAgent,memory:navigator.deviceMemory,cpus:navigator.hardwareConcurrency}),sdkName:this.context.getValue("sdkName"),sdkVersion:this.context.getValue("sdkVersion"),metaData:{},permissions:{}};K.roomJoined(e)}catch(e){l.error("Error reporting room joined analytics",{error:e})}},0)},Yd=new WeakSet,qh=function(t,e,i,n){return u(this,null,function*(){var r,s;try{(s=a(this,Io))!=null||v(this,Io,B(r=Zv,$h,$v).call(r));const o=B(this,Kh,Jv).call(this);yield B(this,zh,Kv).call(this,t,e,i,o),yield a(this,Q).setupTransports({send:!0,recv:!0}),yield B(this,Yh,zv).call(this,n)}catch(o){throw l.error("Failed to initialize connection",{error:o}),o}})},$h=new WeakSet,$v=function(){const{ipInfo:t}=ut();if(!(t!=null&&t.loc))return;const[e,i]=t.loc.split(",").map(parseFloat);return{latitude:e,longitude:i}},Kh=new WeakSet,Jv=function(){var t;const e=(t=Y.getValue(ne.FORCE_VIDEO_CODEC))==null?void 0:t.toString(),i=ND(e);return v(this,wo,i),i},zh=new WeakSet,Kv=function(t,e,i,n){return u(this,null,function*(){yield Sv((r,s)=>u(this,null,function*(){if(!a(this,It).isConnected){s(new Error("Socket is not connected"));return}r>0&&l.warn("Retry: send joinRoom message",{debuggingHint:`Retry attempt ${r}`});try{yield a(this,Q).socketHandler.joinRoom(e,t,n,i,a(this,Io))}catch(o){throw l.error("Failed to send joinRoom message after retries",{error:o}),o}}),{delayTime:1e3,strategy:"exponential",maxRetryCount:Y.hasFeature(ne.ENABLE_HIVE_INFINITE_RETRIES)?1/0:3})})},Yh=new WeakSet,zv=function(t){return u(this,null,function*(){if(!(a(this,tn)===Ne.HIVE||!Y.hasFeature(ne.PRECREATE_PRODUCERS)||!t))try{const e=[];if(t.canProduceVideo===G.Allowed&&e.push(this.shareWebcam(QD(!0))),t.canProduceAudio===G.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})}})},mt=new WeakSet,Ct=function(t){return a(this,Vt).get(t)},Os=new WeakSet,Co=function(t,e){return a(this,Vt).set(t,e)},Qh=new WeakSet,Yv=function(t){return a(this,Vt).delete(t)},Xh=new WeakSet,Qv=function(t){return{track:t,encodings:[{priority:"high"}],codecOptions:[{name:"opus"}],appData:{e2ee:this.e2ee},stopTracks:!1,zeroRtpOnPause:a(this,tn)!==Ne.CF}},Zh=new WeakSet,Xv=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(Jh,$h),Jh);let ue=Zv;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 ey(t,e,i){const n=t.getValue("roomNodeClient");if(n){if(n)return n;throw new Error("Room node client already set up.")}const r=new ue(t,e,i);return t.setValue("roomNodeClient",r),r}function ty(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,Rr=(t,e,i,n)=>{for(var r=n>1?void 0:n?tO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&eO(e,i,r),r},Mr,Fi,Pt,Ut,Qt,iy;const ny=(iy=class{constructor(t,e,i,n){f(this,Ut),m(this,"self"),m(this,"authToken"),f(this,Mr,void 0),m(this,"viewType"),f(this,Fi,void 0),f(this,Pt,void 0);const{socket:r}=i,s=t.getValue("authToken");this.self=e,v(this,Pt,t),this.viewType=n,this.authToken=s,v(this,Mr,r),v(this,Fi,i),e.config.viewType!==Rt.Chat&&this.setupEvents()}get peerId(){return a(this,Pt).getValue("peerId")}get mediaJoined(){return a(this,Pt).getValue("connectionHandler").mediaJoined}static init(t,e,i,n,r){return u(this,null,function*(){const s=ut(),o=t.getValue("peerId"),c=!!t.getValue("cachedUserDetails"),d=yield et.__init__(t,i,n,r,r.name,c);if(navigator.product!=="ReactNative"){const h=!Y.hasFeature(ne.PRECALL_BANDWIDTH_TEST);setTimeout(()=>u(this,null,function*(){const p=yield d.getAllDevices();l.info("populated_full_device_list",{devices:JSON.stringify(p)}),K.devices("AUDIO",p==null?void 0:p.filter(g=>g.kind==="audioinput")),K.devices("VIDEO",p==null?void 0:p.filter(g=>g.kind==="videoinput")),K.devices("SPEAKER",p==null?void 0:p.filter(g=>g.kind==="audiooutput")),l.info("Callstats:: initializing");try{yield K.initialize({peerId:o,engineName:Ie.getDeviceInfo().engineName,env:t.getValue("env"),iceServers:yield s.getICEServers(),apiBase:t.getValue("apiBase"),flags:Y.getAllFlags(),logger:l,apiHostnames:Ng(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 ny(t,d,e,r.viewType)})}shareMediaTracks(){return u(this,null,function*(){var t;const{audioTrack:e,videoTrack:i,permissions:n,audioEnabled:r,videoEnabled:s,screenShareEnabled:o,screenShareTracks:c}=this.self;if(n.canProduceAudio===G.Allowed&&r)try{yield a(this,Ut,Qt).shareMic(e),this.self.audioEnabled||a(this,Ut,Qt).pauseMic()}catch(d){this.self.disableAudio()}if(n.canProduceVideo===G.Allowed&&s)try{const d=yield a(this,Ut,Qt).shareWebcam(i);d&&d.id!==i.id&&Y.hasFeature(ne.EXP_RESHARE)&&(yield a(this,Ut,Qt).shareWebcam(d)),this.self.videoEnabled||a(this,Ut,Qt).pauseWebcam()}catch(d){this.self.disableVideo()}if(n.canProduceScreenshare===G.Allowed&&o)try{yield(t=a(this,Ut,Qt))==null?void 0:t.shareScreen({video:c.video,audio:c.audio})}catch(d){this.self.disableScreenShare()}})}kickHandler(t){return u(this,null,function*(){let e="kicked";(t==null?void 0:t.kickType)==="kickAll"&&(e="ended"),this.leaveRoom(e)})}waitlistedHandler(){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*(){K.callEnded(),a(this,Ut,Qt).reset(),t&&(yield this.joinRoom(t))})}setupEvents(){P.on(R.RESET_PRODUCER_STATE,()=>u(this,null,function*(){this.mediaJoined&&this.shareMediaTracks()})),P.on(R.ROOM_NODE_RECONNECTED,()=>{this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:!0})}),P.on(R.ROOM_NODE_DISCONNECTED,()=>{this.self.roomState!=="disconnected"&&(this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"}))}),P.on(R.ROOM_NODE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),P.on(R.SOCKET_SERVICE_RECONNECTED,({wasJoinAttempted:t})=>{t===!1&&(this.self.roomState="init"),this.resetSelf(t)}),P.on(R.SOCKET_SERVICE_DISCONNECTED,({joinAttempted:t})=>{if(this.self.roomState==="disconnected")return;let{peerId:e}=this;t&&Y.hasFeature(ne.REFRESH_ID_ON_DISCONNECTION)&&(e=xr()),a(this,Mr).updateURL(e),S.resetPeerId(e),ut().setHeader("dyte-tracing-id",e),Qn.remapContext(e,a(this,Pt)),this.self.roomState="disconnected",this.self.emit("roomLeft",{state:"disconnected"})}),P.on(R.SOCKET_SERVICE_FAILED,()=>{this.self.roomState="failed",this.self.emit("roomLeft",{state:"failed"})}),a(this,Fi).on(W.waitingRoomRequestAccepted,()=>{this.waitlistAcceptHandler()}),a(this,Fi).on(jc.updateUserPreset,t=>{t.updatePeersPresets.forEach(e=>{e.userIds===this.self.userId&&P.emit(R.UPDATE_PERMISSIONS,e.patch)})}),a(this,Fi).on(W.waitingRoomRequestDenied,()=>{this.waitlistRejectedHandler()}),a(this,Fi).on(W.kick,()=>{this.kickHandler({kickType:"kick"})}),a(this,Fi).on(W.kickAll,()=>{this.kickHandler({kickType:"kickAll"})}),P.onAsync(R.JOIN_MEDIA_ROOM,this.joinMediaRoom.bind(this)),P.on(R.PRODUCER_SCORE_UPDATE,({score:t,kind:e,appData:i,scoreStats:n})=>{var r;const s=(r=i==null?void 0:i.screenShare)!=null?r:!1;this.self.emit("mediaScoreUpdate",{kind:e,isScreenshare:s,score:t,participantId:this.self.id,scoreStats:n})}),P.on(R.MUTE_SELF,()=>u(this,null,function*(){this.self.audioEnabled&&(yield this.self.disableAudio(),K.audioOff())})),P.on(R.MUTE_SELF_VIDEO,()=>u(this,null,function*(){this.self.videoEnabled&&(yield this.self.disableVideo(),K.videoOff())})),P.onAsync(R.LEAVE_MEDIA_ROOM,this.leaveMediaRoom.bind(this)),P.on(R.PIP_HANGUP,this.leaveRoom.bind(this))}joinRoom(t=!1){return u(this,null,function*(){try{const{peer:e}=yield a(this,Fi).joinRoom(this.self);a(this,Fi).socket.flush();const i=Du(e.stageType);if(a(this,Pt).setValue("stageStatus",i,!1),e.waitlisted){this.waitlistedHandler();return}yield this.joinMediaRoom(t),a(this,Pt).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,Mr))==null||e.disconnect()}catch(n){l.error("SelfController::leaveRoom::socketDisconnect")}this.self.roomState=t,this.self.emit("roomLeft",{state:t});return}this.self.setIsPinned(!1),a(this,Pt).setValue("stageStatus","OFF_STAGE",!1),yield this.leaveMediaRoom(t),a(this,Pt).notify("stageStatus");try{(i=a(this,Mr))==null||i.disconnect()}catch(n){l.error("SelfController::leaveRoom::socketDisconnect")}ty(a(this,Pt)),ih.cleanup(),this.self.roomState=t,this.self.emit("roomLeft",{state:t})})}joinMediaRoom(t=!1){return u(this,null,function*(){var e,i;const{peerId:n,viewType:r,meetingId:s,stageStatus:o,roomNodeOptions:c}=a(this,Pt).getAllValues(),{sfu:d}=c;try{if(r===Rt.Livestream){if(o!=="ON_STAGE"){this.self.roomState="joined",this.self.emit("roomJoined",{reconnected:t});return}ey(a(this,Pt),d,{socket:a(this,Mr),peerId:n})}const{canProduceAudio:h,canProduceVideo:p,canProduceScreenshare:g}=this.self.permissions,{roomJoined:y}=(i=yield(e=a(this,Ut,Qt))==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,Pt).getValue("viewType");t!=="connected-meeting"&&(yield this.cleanupSelf()),!(t==="stageLeft"&&e===Rt.Webinar)&&a(this,Ut,Qt)&&(a(this,Ut,Qt).mediaJoined&&t!=="disconnected"&&(yield a(this,Ut,Qt).leaveRoom()),!(t==="stageLeft"&&e===Rt.Livestream)&&(a(this,Ut,Qt).mediaJoined=!1))})}cleanupSelf(){return u(this,null,function*(){yield this.self.disableAudio(),yield this.self.disableVideo(),yield this.self.disableScreenShare(),this.self.cleanUpTracks(),this.self.destructMediaHandler(),navigator.isReactNative||this.self.removeDocumentEventListeners()})}},Mr=new WeakMap,Fi=new WeakMap,Pt=new WeakMap,Ut=new WeakSet,Qt=function(){return a(this,Pt).getValue("roomNodeClient")},iy);let Nn=ny;Rr([S.trace("SelfController.resetSelf")],Nn.prototype,"resetSelf",1),Rr([S.trace("SelfController.setupEvents")],Nn.prototype,"setupEvents",1),Rr([S.trace("SelfController.joinRoom")],Nn.prototype,"joinRoom",1),Rr([S.trace("SelfController.leaveRoom")],Nn.prototype,"leaveRoom",1),Rr([S.trace("SelfController.joinMediaRoom")],Nn.prototype,"joinMediaRoom",1),Rr([S.trace("SelfController.leaveMediaRoom")],Nn.prototype,"leaveMediaRoom",1),Rr([S.trace("SelfController.init")],Nn,"init",1);var Qd;class iO{constructor(e){f(this,Qd,void 0),v(this,Qd,e)}on(e,i){let n;e===W.roomPeerCount?n=tf.fromBinary.bind(tf):n=Sf.fromBinary.bind(Sf),a(this,Qd).on(e,({payload:r})=>{const s=n(r);return i(s)})}}Qd=new WeakMap;var Xd;class nO{constructor(e){f(this,Xd,void 0),v(this,Xd,e)}on(e,i){let n,r;switch(e){case W.transcript:{n=ru.fromBinary.bind(ru),r=ru.create();break}default:{l.debug("AISocketHandler switch case hit default, event not accounted for.");break}}a(this,Xd).on(e,({payload:s})=>{let o=r;try{o=n(s)}catch(c){l.error("chatSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}}Xd=new WeakMap;var rO=Object.defineProperty,sO=Object.getOwnPropertyDescriptor,ep=(t,e,i,n)=>{for(var r=n>1?void 0:n?sO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&rO(e,i,r),r},Ln;class Zd{constructor(e){f(this,Ln,void 0),v(this,Ln,e)}getPolls(){return a(this,Ln).sendMessagePromise(Ji.getPolls)}createPoll(e,i,n=!1,r=!1){const s={anonymous:n,hideVotes:r,question:e,options:i};return a(this,Ln).sendMessage(Ji.createPoll,iA.toBinary(s))}votePoll(e,i){const n={index:i,pollId:e};return a(this,Ln).sendMessage(Ji.votePoll,rA.toBinary(n))}on(e,i){let n,r;switch(e){case Ji.updatePoll:case Ji.createPoll:case Ji.votePoll:{n=vu.fromBinary.bind(vu),r=vu.create();break}}a(this,Ln).on(e,({payload:s})=>{let o=r;try{o=n(s)}catch(c){l.error("pollSocketHandler::on::binary_decode_error",{error:c})}return i(o)})}removeListeners(e){a(this,Ln).removeListeners(e)}}Ln=new WeakMap,ep([S.trace("PollSocketHandler.getPolls")],Zd.prototype,"getPolls",1),ep([S.trace("PollSocketHandler.createPoll")],Zd.prototype,"createPoll",1),ep([S.trace("PollSocketHandler.votePoll")],Zd.prototype,"votePoll",1);var Xt;class aO{constructor(e){f(this,Xt,void 0),v(this,Xt,e)}getStageRequests(){return u(this,null,function*(){const{payload:e}=yield a(this,Xt).sendMessagePromise(W.getStageRequests);return e?fu.fromBinary(e):{stageRequests:[]}})}requestAccess(){a(this,Xt).sendMessage(W.requestStageAccess)}cancelRequestAccess(){a(this,Xt).sendMessage(W.cancelStageRequest)}grantAccess(e){return u(this,null,function*(){const i={userIds:e};a(this,Xt).sendMessage(W.grantStageAccess,$M.toBinary(i))})}denyAccess(e){return u(this,null,function*(){const i={userIds:e};a(this,Xt).sendMessage(W.denyStageAccess,KM.toBinary(i))})}joinStage(){return a(this,Xt).sendMessagePromise(W.joinStage,void 0,void 0,W.peerStageStatusUpdate)}leaveStage(e){const i={userIds:[e]};return a(this,Xt).sendMessagePromise(W.leaveStage,Ef.toBinary(i),void 0,W.peerStageStatusUpdate)}kick(e){const i={userIds:e};return a(this,Xt).sendMessagePromise(W.leaveStage,Ef.toBinary(i))}on(e,i){let n;switch(e){case W.grantStageAccess:case W.denyStageAccess:{n=void 0;break}case W.getStagePeers:{n=Tf.fromBinary.bind(Tf);break}case W.getStageRequests:case W.requestStageAccess:case W.cancelStageRequest:{n=fu.fromBinary.bind(fu);break}case W.peerStageStatusUpdate:{n=ef.fromBinary.bind(ef);break}}a(this,Xt).on(e,({payload:r,id:s})=>{if(!r||!n)return i(void 0,s);const o=n(r);return i(o,s)})}getPeerInfo(e){return u(this,null,function*(){const i=yield a(this,Xt).sendMessagePromise(W.getPeerInfo,sf.toBinary({peerId:e}));return qr.fromBinary(i.payload)})}}Xt=new WeakMap;var tt;class oO{constructor(e){f(this,tt,void 0),v(this,tt,e)}addPlugin(e,i){a(this,tt).sendMessage(z.addPlugin,dM.toBinary({pluginId:e,staggered:i}))}removePlugin(e){a(this,tt).sendMessage(z.removePlugin,uM.toBinary({pluginId:e,staggered:!1}))}getActivePlugins(){return u(this,null,function*(){const{payload:e}=yield a(this,tt).sendMessagePromise(z.getPlugins);return e?NM.fromBinary(e):{plugins:[]}})}customPluginEventToRoom(e,i,n){const r={pluginId:e,pluginData:new TextEncoder().encode(JSON.stringify(i))};a(this,tt).sendMessage(z.customPluginEventToRoom,EM.toBinary(r),n)}customPluginEventToPeers(e,i,n,r){const s={pluginId:e,peerIds:i,pluginData:new TextEncoder().encode(JSON.stringify(n))};a(this,tt).sendMessage(z.customPluginEventToPeers,bM.toBinary(s),r)}enablePluginForRoom(e,i){a(this,tt).sendMessage(z.enablePluginForRoom,pM.toBinary({pluginId:e}),i)}enablePluginForPeers(e,i,n){a(this,tt).sendMessage(z.enablePluginForPeers,vM.toBinary({pluginId:e,peerIds:i}),n)}disablePluginForRoom(e,i){a(this,tt).sendMessage(z.disablePluginForRoom,gM.toBinary({pluginId:e}),i)}disablePluginForPeers(e,i,n){a(this,tt).sendMessage(z.disablePluginForPeers,SM.toBinary({pluginId:e,peerIds:i}),n)}storeInsertKeys(e,i,n,r){const s={pluginId:e,storeName:i,insertKeys:n.map(o=>({storeKey:o.key,payload:new TextEncoder().encode(JSON.stringify(o.payload))}))};a(this,tt).sendMessage(z.storeInsertKeys,gf.toBinary(s),r)}storeGetKeys(e,i,n,r){const s={pluginId:e,storeName:i,getKeys:n.map(o=>({storeKey:o.key}))};a(this,tt).sendMessage(z.storeGetKeys,CM.toBinary(s),r)}storeDeleteKeys(e,i,n,r){const s={pluginId:e,storeName:i,deleteKeys:n.map(o=>({storeKey:o.key}))};a(this,tt).sendMessage(z.storeDeleteKeys,RM.toBinary(s),r)}storeDelete(e,i,n){a(this,tt).sendMessage(z.storeDelete,AM.toBinary({pluginId:e,storeName:i}),n)}getPluginDataOld(e,i){l.info("getPluginDataOld",{plugin:{id:e,storeName:i}})}storePluginDataOld(e,i,n){const r={pluginId:e,storeName:i,insertKeys:[{storeKey:n.key,payload:new TextEncoder().encode(JSON.stringify(n))}]};a(this,tt).sendMessage(z.storeInsertKeys,gf.toBinary(r))}on(e,i){let n;switch(e){case z.addPlugin:case z.enablePluginForPeers:case z.enablePluginForRoom:{n=gu.fromBinary.bind(gu);break}case z.removePlugin:case z.disablePluginForPeers:case z.disablePluginForRoom:{n=ff.fromBinary.bind(ff);break}case z.customPluginEventToPeers:case z.customPluginEventToRoom:{n=yf.fromBinary.bind(yf);break}case z.storeInsertKeys:case z.storeGetKeys:case z.storeDeleteKeys:case z.storeDelete:{n=vf.fromBinary.bind(vf);break}}a(this,tt).on(e,({payload:r,id:s})=>{const o=n(r);return i(o,s)})}}tt=new WeakMap;var cO=Object.defineProperty,dO=(t,e,i)=>e in t?cO(t,e,{enumerable:!0,configurable:!0,writable:!0,value:i}):t[e]=i,lO=(t,e,i)=>(dO(t,typeof e!="symbol"?e+"":e,i),i),tp=(t,e,i)=>{if(!e.has(t))throw TypeError("Cannot "+i)},L=(t,e,i)=>(tp(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,n)=>(tp(t,e,"write to private field"),n?n.call(t,i):e.set(t,i),i),Ae=(t,e,i)=>(tp(t,e,"access private method"),i),el={},uO={get exports(){return el},set exports(t){el=t}},Ns=typeof Reflect=="object"?Reflect:null,ry=Ns&&typeof Ns.apply=="function"?Ns.apply:function(t,e,i){return Function.prototype.apply.call(t,e,i)},tl;Ns&&typeof Ns.ownKeys=="function"?tl=Ns.ownKeys:Object.getOwnPropertySymbols?tl=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:tl=function(t){return Object.getOwnPropertyNames(t)};function hO(t){console&&console.warn&&console.warn(t)}var sy=Number.isNaN||function(t){return t!==t};function ge(){ge.init.call(this)}uO.exports=ge,el.once=fO,ge.EventEmitter=ge,ge.prototype._events=void 0,ge.prototype._eventsCount=0,ge.prototype._maxListeners=void 0;var ay=10;function il(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 ay},set:function(t){if(typeof t!="number"||t<0||sy(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");ay=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||sy(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 oy(t){return t._maxListeners===void 0?ge.defaultMaxListeners:t._maxListeners}ge.prototype.getMaxListeners=function(){return oy(this)},ge.prototype.emit=function(t){for(var e=[],i=1;i<arguments.length;i++)e.push(arguments[i]);var n=t==="error",r=this._events;if(r!==void 0)n=n&&r.error===void 0;else if(!n)return!1;if(n){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=r[t];if(c===void 0)return!1;if(typeof c=="function")ry(c,this,e);else for(var d=c.length,h=hy(c,d),i=0;i<d;++i)ry(h[i],this,e);return!0};function cy(t,e,i,n){var r,s,o;if(il(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]=n?[i,o]:[o,i]:n?o.unshift(i):o.push(i),r=oy(t),r>0&&o.length>r&&!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,hO(c)}return t}ge.prototype.addListener=function(t,e){return cy(this,t,e,!1)},ge.prototype.on=ge.prototype.addListener,ge.prototype.prependListener=function(t,e){return cy(this,t,e,!0)};function pO(){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 dy(t,e,i){var n={fired:!1,wrapFn:void 0,target:t,type:e,listener:i},r=pO.bind(n);return r.listener=i,n.wrapFn=r,r}ge.prototype.once=function(t,e){return il(e),this.on(t,dy(this,t,e)),this},ge.prototype.prependOnceListener=function(t,e){return il(e),this.prependListener(t,dy(this,t,e)),this},ge.prototype.removeListener=function(t,e){var i,n,r,s,o;if(il(e),n=this._events,n===void 0)return this;if(i=n[t],i===void 0)return this;if(i===e||i.listener===e)--this._eventsCount===0?this._events=Object.create(null):(delete n[t],n.removeListener&&this.emit("removeListener",t,i.listener||e));else if(typeof i!="function"){for(r=-1,s=i.length-1;s>=0;s--)if(i[s]===e||i[s].listener===e){o=i[s].listener,r=s;break}if(r<0)return this;r===0?i.shift():mO(i,r),i.length===1&&(n[t]=i[0]),n.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,n;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 r=Object.keys(i),s;for(n=0;n<r.length;++n)s=r[n],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(n=e.length-1;n>=0;n--)this.removeListener(t,e[n]);return this};function ly(t,e,i){var n=t._events;if(n===void 0)return[];var r=n[e];return r===void 0?[]:typeof r=="function"?i?[r.listener||r]:[r]:i?gO(r):hy(r,r.length)}ge.prototype.listeners=function(t){return ly(this,t,!0)},ge.prototype.rawListeners=function(t){return ly(this,t,!1)},ge.listenerCount=function(t,e){return typeof t.listenerCount=="function"?t.listenerCount(e):uy.call(t,e)},ge.prototype.listenerCount=uy;function uy(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?tl(this._events):[]};function hy(t,e){for(var i=new Array(e),n=0;n<e;++n)i[n]=t[n];return i}function mO(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}function gO(t){for(var e=new Array(t.length),i=0;i<e.length;++i)e[i]=t[i].listener||t[i];return e}function fO(t,e){return new Promise(function(i,n){function r(o){t.removeListener(e,s),n(o)}function s(){typeof t.removeListener=="function"&&t.removeListener("error",r),i([].slice.call(arguments))}py(t,e,s,{once:!0}),e!=="error"&&vO(t,r,{once:!0})})}function vO(t,e,i){typeof t.on=="function"&&py(t,"error",e,i)}function py(t,e,i,n){if(typeof t.on=="function")n.once?t.once(e,i):t.on(e,i);else if(typeof t.addEventListener=="function")t.addEventListener(e,function r(s){n.once&&t.removeEventListener(e,r),i(s)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t)}class yO extends T{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 my=new yO;class gy{static encode(e){return my.toBinary(e)}static decode(e){return my.fromBinary(new Uint8Array(e))}}function SO(t,e){return Math.floor(Math.random()*(e-t+1)+t)}var xn;class TO{constructor(e={}){lO(this,"opts"),Pe(this,xn,void 0),this.opts={initialTimeout:e.initialTimeout||1e3,maxTimeout:e.maxTimeout||1e4,factor:e.factor||2},he(this,xn,0)}wait(){return u(this,null,function*(){he(this,xn,L(this,xn)+1);const e=SO(0,Math.min(this.opts.maxTimeout,this.opts.initialTimeout*MS(2,L(this,xn))));yield new Promise(i=>{setTimeout(i,e)})})}getAttempts(){return L(this,xn)}reset(){he(this,xn,0)}}xn=new WeakMap;const Vn={debug:0,info:1,warn:2,error:3};var Ar,Dr;class EO{constructor(e){Pe(this,Ar,void 0),Pe(this,Dr,void 0),he(this,Ar,console),he(this,Dr,e)}debug(...e){Vn[L(this,Dr)]>Vn.debug||L(this,Ar).debug("[Sockrates]:",...e)}info(...e){Vn[L(this,Dr)]>Vn.info||L(this,Ar).info("[Sockrates]:",...e)}warn(...e){Vn[L(this,Dr)]>Vn.warn||L(this,Ar).warn("[Sockrates]:",...e)}error(...e){Vn[L(this,Dr)]>Vn.error||L(this,Ar).error("[Sockrates]:",...e)}}Ar=new WeakMap,Dr=new WeakMap;var fy=(t=>(t[t.CONNECTING=0]="CONNECTING",t[t.OPEN=1]="OPEN",t[t.CLOSING=2]="CLOSING",t[t.CLOSED=3]="CLOSED",t))(fy||{});const kO="2",bO="3";var Ve,Ls,De,He,Un,it,nn,Fn,bi,xs,rn,ip,vy,Po,nl,np,yy,rp,Sy,rl,sp,ap,Ty,Ro,sl,Mo,al,ol,op,Vs,Ao,Do,cl;class _O{constructor(e,i){var n;Pe(this,ip),Pe(this,Po),Pe(this,np),Pe(this,rp),Pe(this,rl),Pe(this,ap),Pe(this,Ro),Pe(this,Mo),Pe(this,ol),Pe(this,Vs),Pe(this,Do),Pe(this,Ve,void 0),Pe(this,Ls,void 0),Pe(this,De,void 0),Pe(this,He,void 0),Pe(this,Un,void 0),Pe(this,it,void 0),Pe(this,nn,void 0),Pe(this,Fn,void 0),Pe(this,bi,void 0),Pe(this,xs,void 0),Pe(this,rn,void 0);var r,s,o,c,d,h,p,g,y;he(this,Ls,e),he(this,Un,[]),he(this,it,new el),he(this,nn,!0),he(this,bi,!1),he(this,De,i!=null?i:{}),(r=L(this,De)).autoReconnect!=null||(r.autoReconnect=!0),(s=L(this,De)).retryConnectionInterval!=null||(s.retryConnectionInterval=1e3),(o=L(this,De)).pingTimeout!=null||(o.pingTimeout=3e4),(c=L(this,De)).connectionTimeout!=null||(c.connectionTimeout=5e3),(d=L(this,De)).debug!=null||(d.debug=!0),(h=L(this,De)).maxReconnectionAttempts!=null||(h.maxReconnectionAttempts=10),(p=L(this,De)).disconnectOnPingTimeout!=null||(p.disconnectOnPingTimeout=!0),(g=L(this,De)).queueOnDisconnect!=null||(g.queueOnDisconnect=!1),(y=L(this,De)).flushOnReconnect!=null||(y.flushOnReconnect=!1),he(this,Fn,{code:void 0,reason:void 0}),he(this,He,(n=L(this,De).logger)!=null?n:new EO(L(this,De).debug?"debug":"info")),he(this,rn,new TO)}get readyState(){var e;return(e=L(this,Ve))==null?void 0:e.readyState}get url(){return L(this,Ls)}updateURL(e){he(this,Ls,e),Ae(this,ap,Ty).call(this)}get config(){return L(this,De)}get sendQueue(){return L(this,Un)}flush(){if(!L(this,De).queueOnDisconnect)return!1;const e=[];return L(this,Un).forEach(i=>{this.send(i.event,i.id,i.payload,i.metadata)||e.push(i)}),he(this,Un,e),L(this,Un)}connect(e=!1){return u(this,null,function*(){if(!e&&[0,1].includes(this.readyState)){L(this,He).debug("Websocket was already connecting or connected.");return}if(L(this,nn)!==!1)return new Promise((i,n)=>{Ae(this,Vs,Ao).call(this),Ae(this,Do,cl).call(this);try{he(this,Ve,new WebSocket(Ae(this,ip,vy).call(this,L(this,Ls)))),L(this,Ve).binaryType="arraybuffer",L(this,He).debug("Connecting");const r=setTimeout(()=>{L(this,He).debug("Connection timeout. Closing socket"),he(this,nn,!0),Ae(this,Do,cl).call(this),L(this,Ve).close(3001,"Connection Timeout"),L(this,De).autoReconnect&&!L(this,bi)&&(L(this,it).emit("reconnecting"),Ae(this,Ro,sl).call(this)),n(new Error("Connection timed out!"))},L(this,De).connectionTimeout);L(this,Ve).onopen=()=>{L(this,He).debug(`Ready State: ${fy[L(this,Ve).readyState]}`),r&&clearTimeout(r),Ae(this,ol,op).call(this),he(this,Fn,{code:void 0,reason:void 0}),L(this,it).emit("connected"),L(this,De).flushOnReconnect&&this.flush(),i()},L(this,Ve).onclose=s=>{try{r&&clearTimeout(r);const{code:o,reason:c}=s;n(c),L(this,He).debug("Socket closed. Close event:",{event:s}),L(this,He).debug(`Connection closed code: ${o}`),L(this,He).debug(`Connection closed reason: ${c}`),L(this,bi)||Ae(this,rl,sp).call(this,o,c)}catch(o){Ae(this,Po,nl).call(this,o)}},L(this,Ve).onerror=s=>{Ae(this,Po,nl).call(this,s)},L(this,Ve).onmessage=s=>Ae(this,np,yy).call(this,s)}catch(r){Ae(this,Po,nl).call(this,r,n)}})})}send(e,i,n,r){const s={event:e,id:i,payload:n,metadata:r};if(L(this,De).queueOnDisconnect&&(!L(this,Ve)||L(this,Ve).readyState!==1))return L(this,He).debug("Queuing message since socket is not connected!",s),L(this,Un).push(s),!1;const o=gy.encode(s);return Ae(this,Mo,al).call(this,o)}emit(e,i,n,r){return this.send(e,i,n,r)}sendRaw(e){return Ae(this,Mo,al).call(this,e)}receive(e,i){return L(this,it).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")){L(this,it).on(e,i);return}this.receive(e,i)}removeAllListeners(){L(this,it).removeAllListeners()}removeReceiver(e,i){this.removeListener(e,i)}removeListener(e,i){L(this,it).removeListener(e.toString(),i)}removeReceivers(e){this.removeListeners(e)}removeListeners(e){L(this,it).listeners(e.toString()).map(i=>this.removeListener(e,i))}disconnect(){he(this,nn,!1),Ae(this,Vs,Ao).call(this),this.removeAllListeners(),he(this,Fn,{code:1e3,reason:"Sockrates disconnect method called"}),L(this,Ve).close(1e3,"Sockrates disconnect method called.")}}Ve=new WeakMap,Ls=new WeakMap,De=new WeakMap,He=new WeakMap,Un=new WeakMap,it=new WeakMap,nn=new WeakMap,Fn=new WeakMap,bi=new WeakMap,xs=new WeakMap,rn=new WeakMap,ip=new WeakSet,vy=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)://.")},Po=new WeakSet,nl=function(t,e){L(this,He).error("Error:",{error:t}),L(this,it).emit("errored",{error:t}),e==null||e(t)},np=new WeakSet,yy=function(t){if(Ae(this,ol,op).call(this),t.data===kO){L(this,He).debug("Received ping from server"),Ae(this,Mo,al).call(this,bO);return}const e=gy.decode(t.data),{id:i,payload:n}=e;L(this,He).debug("Received message",{event:e.event,messageID:i}),L(this,it).emit(e.event.toString(),{id:i,payload:n})},rp=new WeakSet,Sy=function(){return L(this,Ve).readyState===1},rl=new WeakSet,sp=function(t,e){he(this,Fn,{reason:e,code:t}),L(this,it).emit("disconnected",{code:t,reason:e})},ap=new WeakSet,Ty=function(){const{reason:t,code:e}=L(this,Fn);e&&e!==1e3&&L(this,nn)&&L(this,De).autoReconnect&&!L(this,bi)&&(L(this,He).debug(`Triggering reconnection due to ${t}.`),L(this,it).emit("reconnecting"),Ae(this,Ro,sl).call(this))},Ro=new WeakSet,sl=function(t=!0){return u(this,null,function*(){if(t&&L(this,bi)){L(this,He).debug("Reconnect called when already in a reconnect loop. Ignoring.");return}if(L(this,bi)||L(this,rn).reset(),L(this,De).maxReconnectionAttempts!==null&&L(this,rn).getAttempts()>=L(this,De).maxReconnectionAttempts){L(this,it).emit("failed"),he(this,bi,!1);return}he(this,bi,!0),Ae(this,Do,cl).call(this),Ae(this,Vs,Ao).call(this);try{if(yield L(this,rn).wait(),L(this,nn)===!1)return;if(L(this,He).debug(`Reconnection attempt ${L(this,rn).getAttempts()}`),L(this,it).emit("reconnectAttempt",{attempt:L(this,rn).getAttempts()}),yield this.connect(),!Ae(this,rp,Sy).call(this))throw Error("Reconnect Failed");he(this,bi,!1),he(this,Fn,{code:void 0,reason:void 0}),L(this,it).emit("reconnected")}catch(e){L(this,He).debug("Failed to reconnect."),L(this,it).emit("reconnectFailure",{attempt:L(this,rn).getAttempts()}),Ae(this,Ro,sl).call(this,!1)}})},Mo=new WeakSet,al=function(t){try{return L(this,Ve).send(t),!0}catch(e){return L(this,He).error(e.message),!1}},ol=new WeakSet,op=function(){this.config.disconnectOnPingTimeout&&(L(this,He).debug("Resetting ping timeout"),Ae(this,Vs,Ao).call(this),he(this,xs,setTimeout(()=>{var t;L(this,He).debug("Disconnecting the socket due to ping timeout"),he(this,nn,!0);const e=3002,i="Ping timeout";(t=L(this,Ve))==null||t.close(e,i),Ae(this,rl,sp).call(this,e,i)},L(this,De).pingTimeout)))},Vs=new WeakSet,Ao=function(){L(this,xs)&&(clearTimeout(L(this,xs)),he(this,xs,void 0))},Do=new WeakSet,cl=function(){L(this,Ve)&&(L(this,Ve).onopen=void 0,L(this,Ve).onerror=void 0,L(this,Ve).onmessage=void 0,L(this,Ve).onclose=void 0)};var wO=Object.defineProperty,IO=Object.getOwnPropertyDescriptor,dl=(t,e,i,n)=>{for(var r=n>1?void 0:n?IO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&wO(e,i,r),r};const Ey=65535,CO=3e3;var Or,Ue,Fe,Ge,_i,Bn,ll,cp,ul,dp,ky;const by=(ky=class{constructor(t,{peerId:e,meetingId:i,authToken:n,capabilities:r}){f(this,Fe),f(this,ll),f(this,ul),f(this,Or,void 0),f(this,Ue,void 0),m(this,"roomName"),m(this,"authToken"),m(this,"capabilities"),f(this,_i,void 0),f(this,Bn,void 0);var s;if(!e||!i||!n)throw new w("peerId, meetingId, or authToken can not be empty","0404");v(this,_i,void 0),v(this,Bn,t),this.capabilities=r,this.roomName=i,this.authToken=n,v(this,Or,B(this,ll,cp).call(this,e)),v(this,Ue,new _O(a(this,Or),{autoReconnect:!0,disconnectOnPingTimeout:(s=r.includes("PING"))!=null?s:!1,queueOnDisconnect:!0,flushOnReconnect:!1,logger:l})),this.handleSocketConnectionEvents()}get joinAttempted(){return a(this,Fe,Ge).socketJoinAttempted}set joinAttempted(t){a(this,Fe,Ge).socketJoinAttempted=t}get peerId(){return a(this,Bn).getValue("peerId")}updateURL(t){t!==this.peerId&&(v(this,Or,B(this,ll,cp).call(this,t)),l.debug("SocketService:: Connection URL updated.")),a(this,Ue).updateURL(a(this,Or))}static getSocketEdgeDomain(t){return Hr({servicePrefix:"socket-edge",baseURI:t})}get url(){return a(this,Or)}connect(){return u(this,null,function*(){a(this,Fe,Ge).socketJoinAttempted=!0,yield a(this,Ue).connect(),a(this,Fe,Ge).socketJoinAttempted=!0,a(this,Fe,Ge).socketState={state:"connected",reconnected:!1,reconnectionAttempt:void 0}})}disconnect(){return u(this,null,function*(){a(this,Fe,Ge).socketJoinAttempted=!1,a(this,Ue).disconnect(),a(this,Fe,Ge).socketJoinAttempted=!0,a(this,Fe,Ge).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 n={};return S.injectContext(n),a(this,Ue).send(t,i!=null?i:B(this,ul,dp).call(this),e,new TextEncoder().encode(JSON.stringify(n)))}sendMessagePromise(t,e,i,n){const r=parseInt({}.SOCKET_SERVICE_MESSAGE_REQUEST_TIMEOUT,10)||2e4;return this.sendMessagePromiseWithTimeout({event:t,timeout:r,protobuf:e,messageId:i,resp:n})}sendMessagePromiseWithTimeout({event:t,timeout:e,protobuf:i,messageId:n,resp:r}){const s=r!=null?r:t;return new Promise((o,c)=>{const d=(E,b)=>{a(this,Ue).removeListener(s,E),a(this,Ue).removeListener(Ey,b),a(this,Ue).removeListener(ei.errorResponse,b),a(this,Ue).removeListener(hi.errorResponse,b)},h=n!=null?n:B(this,ul,dp).call(this),p={};S.injectContext(p);const g=({id:E,payload:b})=>{if(h===E){let N;try{const M=wI.fromBinary(b);N=new Error(M.errorMessage)}catch(M){N=new Error("failed to parse error message",{cause:M});try{const U=IC.fromBinary(b);N=new Error(U.message)}catch(U){N=new Error("failed to parse error message",{cause:U})}}c(N),d(y,g)}},y=({id:E,payload:b})=>{h===E&&(o({id:E,payload:b}),d(y,g))};a(this,Ue).on(s,y),a(this,Ue).on(Ey,g),a(this,Ue).on(ei.errorResponse,g),a(this,Ue).on(hi.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,_i)&&(clearTimeout(a(this,_i)),v(this,_i,void 0)),a(this,Fe,Ge).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:n,send:r}=(i=a(this,Fe,Ge).mediaState)!=null?i:{};n!=null&&n.state&&(n==null?void 0:n.state)!==ys.CONNECTED||r!=null&&r.state&&(r==null?void 0:r.state)!==ys.CONNECTED?P.emit(R.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:a(this,Fe,Ge).joinAttempted}):v(this,_i,setTimeout(()=>{P.emit(R.SOCKET_SERVICE_DISCONNECTED,{joinAttempted:a(this,Fe,Ge).joinAttempted}),v(this,_i,void 0)},CO)),a(this,Fe,Ge).updateSocketConnectionState("disconnected")}),this.onStateEvent("reconnecting",()=>u(this,null,function*(){l.info("SocketService::Reconnecting to socket-edge",{country:S.location.country}),a(this,Fe,Ge).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,Ge).updateSocketConnectionState("reconnectAttempt",e)})),this.onStateEvent("reconnectFailure",({attempt:t})=>{l.info("SocketService::Reconnect attempt to socket-edge failed",{socket:{retryAttempt:t}}),a(this,Fe,Ge).updateSocketConnectionState("reconnectFailure",t)}),this.onStateEvent("reconnected",()=>u(this,null,function*(){l.info("SocketService::Reconnected to socket-edge",{connectionState:{joinAttempted:a(this,Fe,Ge).mediaJoinAttempted}}),a(this,_i)&&(clearTimeout(a(this,_i)),v(this,_i,void 0)),P.emit(R.SOCKET_SERVICE_RECONNECTED,{wasJoinAttempted:a(this,Fe,Ge).mediaJoinAttempted}),a(this,Fe,Ge).updateSocketConnectionState("reconnected")})),this.onStateEvent("failed",()=>u(this,null,function*(){l.info("SocketService::Failed to connect to socket-edge",{country:S.location.country}),P.emit(R.SOCKET_SERVICE_FAILED),a(this,Fe,Ge).updateSocketConnectionState("failed")}))}},Or=new WeakMap,Ue=new WeakMap,Fe=new WeakSet,Ge=function(){return a(this,Bn).getValue("connectionHandler")},_i=new WeakMap,Bn=new WeakMap,ll=new WeakSet,cp=function(t){let e=by.getSocketEdgeDomain(a(this,Bn).getValue("baseURI"));typeof jr(a(this,Bn),"socket_server_base")=="string"&&(e=jr(a(this,Bn),"socket_server_base"));const i=`wss://${e}`,n=new URL(`${i}/ws`),r=this.peerId,s=H(x({roomID:this.roomName,peerID:t,authToken:this.authToken,useMediaV2:!0},r!==t&&{oldPeerID:r}),{ping:this.capabilities.includes("PING"),capabilities:this.capabilities.map(o=>Vc[o]).join(" "),joinWithDetails:!0,useCfWorker:!0,useStartSession:!0});return Object.entries(s).forEach(([o,c])=>{n.searchParams.append(o,c.toString())}),n.href},ul=new WeakSet,dp=function(){return`${this.peerId}-${(Math.random()+1).toString(36).substring(7)}`},ky);let Oo=by;dl([S.trace("SocketService.connect")],Oo.prototype,"connect",1),dl([S.trace("SocketService.disconnect")],Oo.prototype,"disconnect",1),dl([S.trace("SocketService.sendMessagePromise")],Oo.prototype,"sendMessagePromise",1),dl([S.trace("SocketService.sendMessagePromiseWithTimeout")],Oo.prototype,"sendMessagePromiseWithTimeout",1);const Nr=class{static handleConnectedRoomsDumpRaw({payload:t}){var e;const i=ZC.fromBinary(t),n=i.meetings.map(r=>{var s;return{id:r.id,title:r.title,participants:(s=r.participants)!=null?s:[]}});return{parentMeeting:{id:i.parentMeeting.id,title:i.parentMeeting.title,participants:(e=i.parentMeeting.participants)!=null?e:[]},meetings:n}}static handleTransferPeerRaw({payload:t}){const e=wP.fromBinary(t);return{authToken:e.authToken,meetingId:e.meetingId}}static handleMovedPeerRaw({payload:t}){const e=cf.fromBinary(t);return{meetingId:e.meetingId,customParticipantId:e.customParticipantId}}static handleConnectedRoomsUpdatedRaw({payload:t}){return of.fromBinary(t).payloads.map(e=>({id:e.id,title:e.title}))}static handleConnectedRoomsDeletedRaw({payload:t}){return gP.fromBinary(t).payloads}static getConnectedRoomsDump(){return u(this,null,function*(){const t=yield Nr.socketService.sendMessagePromise(W.getConnectedRoomsDump);return Nr.handleConnectedRoomsDumpRaw(t)})}static createConnectedRooms(t){return u(this,null,function*(){const{payload:e}=yield Nr.socketService.sendMessagePromise(W.createConnectedRooms,nP.toBinary({payloads:t}));return of.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(n=>({id:n})),i=yield Nr.socketService.sendMessagePromise(W.deleteConnectedRooms,pP.toBinary({payloads:e}));return Nr.handleConnectedRoomsDeletedRaw(i)})}static movePeersBetweenRooms(t){return u(this,null,function*(){try{const e=yield Nr.socketService.sendMessagePromise(W.movePeers,EP.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=Nr;m(Le,"socketService"),m(Le,"currentMeetingId");var PO=Object.defineProperty,RO=Object.getOwnPropertyDescriptor,hl=(t,e,i,n)=>{for(var r=n>1?void 0:n?RO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&PO(e,i,r),r};const Us=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:n,apiBase:r,authToken:s,meetingId:o,organizationId:c,cachedUserDetails:d}=t.getAllValues();if(P.reset(),ty(t),Ie.isSupported()===!1)throw new w("Browser not supported","0010",!0);const h=VA(t,{authToken:s,baseURL:r,cachedUserDetails:d});h.setRoomName(o),h.setRoomUUID(o),h.setOrganizationId(c),h.setHeader("dyte-tracing-id",n),t.setValue("apiClient",h);const p=new S1;t.setValue("connectionHandler",p);const g=Us.createSocketService(t),y=g.connect(),E=h.getUserDetails(),b=h.getPlugins();let N=Ne.HIVE,M,U="";try{yield Us.setupFlagsmith(t)}catch(se){l.error("Failed to setup flagsmith",{error:se})}try{yield y}catch(se){l.error("[Controller]: Failed to connect to socket server:",{error:se})}try{({sfu:N,meetingTitle:U}=yield h.getRoomNodeData()),M=yield E,l.info(`SFU ${N} is being used.`),t.setValue("presetName",M.preset.name),t.setValue("roomNodeOptions",{sfu:N})}catch(se){l.error("Failed to get room metadata",{error:se})}const $=nD.init(M.preset,!t.getValue("modules").theme),J=_D.init(t,$.viewType,M.preset.permissions),I=Us.setupControllers(g,t,M,b,U,$,J);c1($)&&((e=Us.createRoomNodeClient(t,g).initializeConnection(M.participant.name,o,!1,J))==null||e.catch(se=>{l.error("[Controller]: Failed to queue partial media room promise:",{error:se})})),S.location.country=(i=h.ipInfo)==null?void 0:i.country;const{controllers:ae}=yield I;return sw(),new Us(r,ae)})}static setupFlagsmith(t){return u(this,null,function*(){var e;const{peerId:i,baseURI:n,overrides:r,meetingId:s,organizationId:o}=t.getAllValues(),c=nw(s),d=H(x({entity:Zl.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=r==null?void 0:r.whitelabelled_flags_endpoint)==null||e?Hr({servicePrefix:"flags",baseURI:n}):"edge.api.flagsmith.com";yield Y.identify(`${Zl.PEER}_${i}`,JSON.parse(JSON.stringify(d)),!1,5e3,h,l),l.info("flagsmith::allFlags",{flags:JSON.stringify(Y.getAllFlags())},!0)}catch(h){l.error("Failed to fetch flagsmith flags")}})}static setupControllers(t,e,i,n,r,s,o){return u(this,null,function*(){var c,d,h;const p=e.getValue("modules"),{participant:g}=i,y=e.getValue("defaults"),{sfu:E}=e.getValue("roomNodeOptions"),{viewType:b,mediaConstraints:{audio:N}}=s;e.setValue("viewType",b),e.setValue("defaults",x({mediaConfiguration:{audio:{enableHighBitrate:(c=N.enableHighBitrate)!=null?c:!1,enableStereo:(d=N.enableStereo)!=null?d:!1}}},y)),e.setValue("maxPreferredStreams",Ie.isMobile()?s.maxVideoStreams.mobile:s.maxVideoStreams.desktop);let M,U,$,J,I,ae,se,Se;const nt=new nO(t);Le.socketService=t;const gt=new Zd(t),Ft=new ti(t),A=new aO(t),k=new ih(e,t),_=new oO(t),j=new iO(t),Re=new ir(t),fe=yield Nn.init(e,k,g,o,s),F=yield jf.init(e,fe.self,k,nt,r);if(p.participant&&(Se=new Qi(e,fe.self,k,E)),(h=p.e2ee)!=null&&h.enabled&&p.e2ee.manager.init(l,P),p.chat&&(U=yield Ki.init(e,Ft,Re,fe.self,Se.participants)),p.internals&&(I=yield xu.init()),p.livestream&&s.viewType===Rt.Livestream&&Y.hasFeature(ne.LIVESTREAM)&&(se=new av(fe.self,j)),s.viewType!==Rt.Chat){if(p.poll&&(M=yield xf.init(e,fe.self,gt)),p.recording&&(ae=new Yf(e,fe.self,k)),p.stage&&($=new Hf(e,A,k,fe.self,Se.participants)),p.plugin){if(!Se)throw new w("The plugin module cannot be initialized without the `participant` module","0102");const qe=yield n;J=yield Ta.init(e,qe,_,Ft,U==null?void 0:U.chat,fe.self,Se.participants,r)}if(p.pip){const qe=yield cw._init(e,fe.self);e.setValue("pip",qe)}}const C={storesManager:new uD(e,_),pollController:M,selfController:fe,metaController:F,chatController:U,stageController:$,pluginController:J,recordingController:ae,internalsController:I,livestreamController:se,participantController:Se};return{theme:s,permissions:o,controllers:C}})}static createRoomNodeClient(t,e){const{peerId:i,roomNodeOptions:n}=t.getAllValues(),{sfu:r}=n;return ey(t,r,{socket:e,peerId:i})}static createSocketService(t){const{peerId:e,meetingId:i,authToken:n}=t.getAllValues(),r=["PING"];return new Oo(t,{peerId:e,meetingId:i,authToken:n,capabilities:r})}};let No=Us;hl([S.trace("Controller.init")],No,"init",1),hl([S.trace("setupFlagsmith")],No,"setupFlagsmith",1),hl([S.trace("Controller.createRoomNodeClient")],No,"createRoomNodeClient",1),hl([S.trace("Controller.createSocketService")],No,"createSocketService",1);var MO=Object.defineProperty,AO=Object.getOwnPropertyDescriptor,DO=(t,e,i,n)=>{for(var r=n>1?void 0:n?AO(e,i):e,s=t.length-1,o;s>=0;s--)(o=t[s])&&(r=(n?o(e,i,r):o(r))||r);return n&&r&&MO(e,i,r),r},pl,lp;class _y extends Bt{constructor(e,i){super(),f(this,pl,void 0),m(this,"meetings",[]),m(this,"parentMeeting",null),f(this,lp,void 0),v(this,lp,e),v(this,pl,i.self)}get supportsConnectedMeetings(){return a(this,pl).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(
|
|
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,
|
|
22
|
-
${(o=t.authToken)==null?void 0:o.slice(-10)}`})});const
|
|
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)},
|
|
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}();
|