1"use strict";(self.webpackChunkmy_webpack_project=self.webpackChunkmy_webpack_project||[]).push([[543],{18228(e,t,n){var i=n(88569);t.A=void 0;var r=i(n(89987)),s=n(47671);t.A=(0,r.default)((0,s.jsx)("path",{d:"M8 6.82v10.36c0 .79.87 1.27 1.54.84l8.14-5.18c.62-.39.62-1.29 0-1.69L9.54 5.98C8.87 5.55 8 6.03 8 6.82"}),"PlayArrowRounded")},28780(e,t,n){var i=n(88569);t.A=void 0;var r=i(n(89987)),s=n(47671);t.A=(0,r.default)((0,s.jsx)("path",{d:"M15.55 13c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.37-.66-.11-1.48-.87-1.48H5.21l-.94-2H1v2h2l3.6 7.59-1.35 2.44C4.52 15.37 5.48 17 7 17h12v-2H7l1.1-2zM6.16 6h12.15l-2.76 5H8.53zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2m10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2"}),"ShoppingCartOutlined")},28923(e,t,n){n.d(t,{Mf:()=>yc,ry:()=>ks});var i=n(39471),r=n(54258);const s=Symbol(),o=e=>!!e[s],a=e=>{var t;const{b:n,c:i}=e[s];i&&(i(),null==(t=l.get(n))||t())},c=(e,t)=>{const n=e[s].o,i=t[s].o;return n===i||e===i||o(n)&&c(n,t)},d=(e,t)=>{const n={b:e,o:t,c:null},i=new Promise(e=>{n.c=()=>{n.c=null,e()},t.finally(n.c)});return i[s]=n,i},l=new WeakMap,u=e=>"init"in e,h="r",p="w",m="c",g="s",f="h",v="n",b="l",_="a",y="m",k=e=>{const t=new WeakMap,n=new WeakMap,i=new Map;let r,l;if(r=new Set,l=new Set,e)for(const[n,i]of e){const e={v:i,r:0,y:!0,d:new Map};Object.freeze(e),u(n)||console.warn("Found initial value for derived atom which can cause unexpected behavior",n),t.set(n,e)}const k=new WeakMap,S=new WeakMap,T=e=>{let t=S.get(e);return t||(t=new Map,S.set(e,t)),t},C=(e,n)=>{if(e){const t=T(e);let i=t.get(n);return i||(i=C(e.p,n),i&&t.set(n,i)),i}return t.get(n)},w=(e,n,r)=>{if(Object.freeze(r),e)T(e).set(n,r);else{const e=t.get(n);t.set(n,r),i.has(n)||i.set(n,e)}},E=(e,t=new Map,n)=>{if(!n)return t;const i=new Map;let r=!1;return n.forEach(n=>{var s;const o=(null==(s=C(e,n))?void 0:s.r)||0;i.set(n,o),t.get(n)!==o&&(r=!0)}),t.size!==i.size||r?i:t},P=(e,t,n,i,r)=>{const s=C(e,t);if(s){if(r&&(!("p"in s)||!c(s.p,r)))return s;"p"in s&&a(s.p)}const o={v:n,r:(null==s?void 0:s.r)||0,y:!0,d:E(e,null==s?void 0:s.d,i)};let d=!(null==s?void 0:s.y);return s&&"v"in s&&Object.is(s.v,n)?o.d===s.d||o.d.size===s.d.size&&Array.from(o.d.keys()).every(e=>s.d.has(e))||(d=!0,Promise.resolve().then(()=>{F(e)})):(d=!0,++o.r,o.d.has(t)&&(o.d=new Map(o.d).set(t,o.r))),s&&!d?s:(w(e,t,o),o)},R=(e,t,n,i,r)=>{const s=C(e,t);if(s){if(r&&(!("p"in s)||!c(s.p,r)))return s;"p"in s&&a(s.p)}const o={e:n,r:((null==s?void 0:s.r)||0)+1,y:!0,d:E(e,null==s?void 0:s.d,i)};return w(e,t,o),o},I=(e,t,n,i)=>{const r=C(e,t);if(r&&"p"in r){if(c(r.p,n))return r.y?r:{...r,y:!0};a(r.p)}((e,t,n)=>{let i=k.get(t);i||(i=new Map,k.set(t,i)),n.then(()=>{i.get(e)===n&&(i.delete(e),i.size||k.delete(t))}),i.set(e,n)})(e,t,n);const s={p:n,r:((null==r?void 0:r.r)||0)+1,y:!0,d:E(e,null==r?void 0:r.d,i)};return w(e,t,s),s},O=(e,t,n,i)=>{if(n instanceof Promise){const r=d(n,n.then(n=>{P(e,t,n,i,r)}).catch(n=>{if(n instanceof Promise)return o(n)?n.then(()=>{x(e,t,!0)}):n;R(e,t,n,i,r)}));return I(e,t,r,i)}return P(e,t,n,i)},x=(e,t,i)=>{if(!i){const i=C(e,t);if(i){if(i.y&&"p"in i&&i.p[s].c)return i;if(i.d.forEach((i,r)=>{if(r!==t)if(n.has(r)){const t=C(e,r);t&&!t.y&&x(e,r)}else x(e,r)}),Array.from(i.d).every(([t,n])=>{const i=C(e,t);return i&&!("p"in i)&&i.r===n}))return i.y?i:{...i,y:!0}}}const r=new Set;try{const n=t.read(n=>{r.add(n);const i=n===t?C(e,n):x(e,n);if(i){if("e"in i)throw i.e;if("p"in i)throw i.p;return i.v}if(u(n))return n.init;throw new Error("no atom init")});return O(e,t,n,r)}catch(n){if(n instanceof Promise){const i=d(n,n);return I(e,t,i,r)}return R(e,t,n,r)}},A=(e,t)=>!t.l.size&&(!t.t.size||1===t.t.size&&t.t.has(e)),D=(e,t)=>{const i=n.get(t);null==i||i.t.forEach(n=>{n!==t&&(((e,t)=>{const n=C(e,t);if(n){const i={...n,y:!1};w(e,t,i)}else console.warn("[Bug] could not invalidate non existing atom",t)})(e,n),D(e,n))})},N=(e,t,n)=>{let i=!0;const r=(t,n)=>{const i=x(e,t);if("e"in i)throw i.e;if("p"in i){if(null==n?void 0:n.unstable_promise)return i.p.then(()=>{const s=C(e,t);return s&&"p"in s&&s.p===i.p?new Promise(e=>setTimeout(e)).then(()=>r(t,n)):r(t,n)});throw console.info("Reading pending atom state in write operation. We throw a promise for now.",t),i.p}if("v"in i)return i.v;throw console.warn("[Bug] no value found while reading atom in write operation. This is probably a bug.",t),new Error("no value found")}
1,s=t.write(r,(n,r)=>{let s;if(n===t){if(!u(n))throw new Error("atom not writable");const t=(e=>{const t=new Set,n=k.get(e);return n&&(k.delete(e),n.forEach((e,n)=>{a(e),t.add(n)})),t})(n);t.forEach(t=>{t!==e&&O(t,n,r)}),C(e,n)!==O(e,n,r)&&D(e,n)}else s=N(e,n,r);return i||F(e),s},n);return i=!1,s},M=(e,t,n)=>{const i=N(n,e,t);return F(n),i},L=(e,t,i)=>{const r={t:new Set(i&&[i]),l:new Set};if(n.set(t,r),l.add(t),x(void 0,t).d.forEach((i,r)=>{const s=n.get(r);s?s.t.add(t):r!==t&&L(e,r,t)}),(e=>!!e.write)(t)&&t.onMount){const n=n=>M(t,n,e),i=t.onMount(n);e=void 0,i&&(r.u=i)}return r},j=(e,t)=>{var i;const r=null==(i=n.get(t))?void 0:i.u;r&&r(),n.delete(t),l.delete(t);const s=C(e,t);s?("p"in s&&a(s.p),s.d.forEach((i,r)=>{if(r!==t){const i=n.get(r);i&&(i.t.delete(t),A(r,i)&&j(e,r))}})):console.warn("[Bug] could not find atom state to unmount",t)},U=(e,t,i,r)=>{const s=new Set(i.d.keys());null==r||r.forEach((i,r)=>{if(s.has(r))return void s.delete(r);const o=n.get(r);o&&(o.t.delete(t),A(r,o)&&j(e,r))}),s.forEach(i=>{const r=n.get(i);r?r.t.add(t):n.has(t)&&L(e,i,t)})},F=e=>{if(e)T(e).forEach((i,r)=>{if(i!==t.get(r)){const t=n.get(r);null==t||t.l.forEach(t=>t(e))}});else{for(;i.size;){const e=Array.from(i);i.clear(),e.forEach(([e,t])=>{const i=C(void 0,e);if(i&&i.d!==(null==t?void 0:t.d)&&U(void 0,e,i,null==t?void 0:t.d),t&&!t.y&&(null==i?void 0:i.y))return;const r=n.get(e);null==r||r.l.forEach(e=>e())})}r.forEach(e=>e())}};return{[h]:(e,t)=>x(t,e),[p]:M,[m]:(e,n)=>{n&&(e=>{T(e).forEach((n,i)=>{const r=t.get(i);(!r||n.r>r.r||n.y!==r.y||n.r===r.r&&n.d!==r.d)&&(t.set(i,n),n.d!==(null==r?void 0:r.d)&&U(e,i,n,null==r?void 0:r.d))})})(n),F(void 0)},[g]:(e,t,i)=>{const r=((e,t)=>{let i=n.get(t);return i||(i=L(e,t)),i})(i,e),s=r.l;return s.add(t),()=>{s.delete(t),((e,t)=>{const i=n.get(t);i&&A(t,i)&&j(e,t)})(i,e)}},[f]:(e,t)=>{for(const[n,i]of e)u(n)&&(O(t,n,i),D(t,n));F(t)},[v]:e=>(r.add(e),()=>{r.delete(e)}),[b]:()=>l.values(),[_]:e=>t.get(e),[y]:e=>n.get(e)}},S=(e,t)=>({s:t?t(e).SECRET_INTERNAL_store:k(e)}),T=new Map,C=e=>(T.has(e)||T.set(e,(0,i.createContext)(S())),T.get(e)),w=({children:e,initialValues:t,scope:n,unstable_createStore:r,unstable_enableVersionedWrite:s})=>{const[o,a]=(0,i.useState)({});(0,i.useEffect)(()=>{const e=c.current;e.w&&(e.s[m](null,o),delete o.p,e.v=o)},[o]);const c=(0,i.useRef)();if(!c.current){const e=S(t,r);if(s){let t=0;e.w=e=>{a(n=>{const i=t?n:{p:n};return e(i),i})},e.v=o,e.r=e=>{++t,e(),--t}}c.current=e}const d=C(n);return(0,i.createElement)(d.Provider,{value:c.current},e)};let E=0;function P(e,t){const n="atom"+ ++E,i={toString:()=>n};return"function"==typeof e?i.read=e:(i.init=e,i.read=e=>e(i),i.write=(e,t,n)=>t(i,"function"==typeof n?n(e(i)):n)),t&&(i.write=t),i}function R(e,t){const n=C(t),r=(0,i.useContext)(n),{s,v:o}=r,a=t=>{const n=s.r(e,t);if(!n.y)throw new Error("should not be invalidated");if("e"in n)throw n.e;if("p"in n)throw n.p;if("v"in n)return n.v;throw new Error("no atom value")},[[c,d,l],u]=(0,i.useReducer)((t,n)=>{const i=a(n);return Object.is(t[1],i)&&t[2]===e?t:[n,i,e]},o,t=>[t,a(t),e]);let h=d;return l!==e&&(u(c),h=a(c)),(0,i.useEffect)(()=>{const{v:t}=r;t&&s[m](e,t);const n=s.s(e,u,t);return u(t),n},[s,e,r]),(0,i.useEffect)(()=>{s[m](e,c)}),(0,i.useDebugValue)(h),h}function I(e,t){const n=C(t),{s:r,w:s}=(0,i.useContext)(n);return(0,i.useCallback)(t=>{if(!("write"in e))throw new Error("not writable atom");const n=n=>r.w(e,t,n);return s?s(n):n()},[r,s,e])}function O(e,t){return"scope"in e&&(console.warn("atom.scope is deprecated. Please do useAtom(atom, scope) instead."),t=e.scope),[R(e,t),I(e,t)]}var x=function(e,t){return x=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},x(e,t)},A=function(){return A=Object.assign||function(e){for(var t,n=1,i=arguments.length;n<i;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},A.apply(this,arguments)};function D(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}
1function N(e,t,n,i){return new(n||(n=Promise))(function(r,s){function o(e){try{c(i.next(e))}catch(e){s(e)}}function a(e){try{c(i.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}c((i=i.apply(e,t||[])).next())})}function M(e,t){var n,i,r,s,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]};return s={next:a(0),throw:a(1),return:a(2)},"function"==typeof Symbol&&(s[Symbol.iterator]=function(){return this}),s;function a(a){return function(c){return function(a){if(n)throw new TypeError("Generator is already executing.");for(;s&&(s=0,a[0]&&(o=0)),o;)try{if(n=1,i&&(r=2&a[0]?i.return:a[0]?i.throw||((r=i.return)&&r.call(i),0):i.next)&&!(r=r.call(i,a[1])).done)return r;switch(i=0,r&&(a=[2&a[0],r.value]),a[0]){case 0:case 1:r=a;break;case 4:return o.label++,{value:a[1],done:!1};case 5:o.label++,i=a[1],a=[0];continue;case 7:a=o.ops.pop(),o.trys.pop();continue;default:if(!((r=(r=o.trys).length>0&&r[r.length-1])||6!==a[0]&&2!==a[0])){o=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]<r[3])){o.label=a[1];break}if(6===a[0]&&o.label<r[1]){o.label=r[1],r=a;break}if(r&&o.label<r[2]){o.label=r[2],o.ops.push(a);break}r[2]&&o.ops.pop(),o.trys.pop();continue}a=t.call(e,o)}catch(e){a=[6,e],i=0}finally{n=r=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}function L(e,t,n){if(n||2===arguments.length)for(var i,r=0,s=t.length;r<s;r++)!i&&r in t||(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}var j=P("light"),U=P(""),F=P([]),B=P([]),V=P([]),q=P({}),z=P({}),W=P({}),H=P(10),G=P({function:function(){return null}}),K=P({function:function(){return null}}),J=P({function:void 0}),Q=P(null,function(e,t,n){return N(void 0,void 0,void 0,function(){var i,r;return M(this,function(s){switch(s.label){case 0:return(i=e(J).function)?[4,i(n)]:[2];case 1:return r=s.sent(),t(V,L(L([],e(V),!0),[r],!1)),[2]}})})}),Y=P(function(e){return e(q)&&e(q)[e(U)]||[]},function(e,t,n){var i;return t(q,Object.assign({},e(q),((i={})[e(U)]=n,i)))}),X=P(function(e){return e(z)[e(U)]||!1},function(e,t,n){var i;return t(z,Object.assign({},e(z),((i={})[e(U)]=n,i)))}),$=(P(function(e){return e(W)[e(U)]||{}},function(e,t,n){var i;return t(W,Object.assign({},e(W),((i={})[e(U)]=n,i)))}),"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:"undefined"!=typeof self?self:{}),Z=function(e,t){return e===t||e!=e&&t!=t},ee=Z,te=function(e,t){for(var n=e.length;n--;)if(ee(e[n][0],t))return n;return-1},ne=te,ie=Array.prototype.splice,re=te,se=te,oe=te,ae=function(){this.__data__=[],this.size=0};function ce(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}ce.prototype.clear=ae,ce.prototype.delete=function(e){var t=this.__data__,n=ne(t,e);return!(n<0||(n==t.length-1?t.pop():ie.call(t,n,1),--this.size,0))},ce.prototype.get=function(e){var t=this.__data__,n=re(t,e);return n<0?void 0:t[n][1]},ce.prototype.has=function(e){return se(this.__data__,e)>-1},ce.prototype.set=function(e,t){var n=this.__data__,i=oe(n,e);return i<0?(++this.size,n.push([e,t])):n[i][1]=t,this};var de,le=ce,ue=le,he="object"==typeof $&&$&&$.Object===Object&&$,pe=he,me="object"==typeof self&&self&&self.Object===Object&&self,ge=pe||me||Function("return this")(),fe=ge.Symbol,ve=fe,be=Object.prototype,_e=be.hasOwnProperty,ye=be.toString,ke=ve?ve.toStringTag:void 0,Se=Object.prototype.toString,Te=function(e){var t=_e.call(e,ke),n=e[ke];try{e[ke]=void 0;var i=!0}catch(e){}var r=ye.call(e);return i&&(t?e[ke]=n:delete e[ke]),r},Ce=fe?fe.toStringTag:void 0,we=function(e){return null==e?void 0===e?"[object Undefined]":"[object Null]":Ce&&Ce in Object(e)?Te(e):function(e){return Se.call(e)}(e)},Ee=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)},Pe=we,Re=Ee,Ie=function(e){if(!Re(e))return!1;var t=Pe(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t},Oe=ge["__core-js_shared__"],xe=(de=/[^.]+$/.exec(Oe&&Oe.keys&&Oe.keys.IE_PROTO||""))?"Symbol(sr
1c)_1."+de:"",Ae=Function.prototype.toString,De=function(e){if(null!=e){try{return Ae.call(e)}catch(e){}try{return e+""}catch(e){}}return""},Ne=Ie,Me=function(e){return!!xe&&xe in e},Le=Ee,je=De,Ue=/^\[object .+?Constructor\]$/,Fe=Function.prototype,Be=Object.prototype,Ve=Fe.toString,qe=Be.hasOwnProperty,ze=RegExp("^"+Ve.call(qe).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),We=function(e,t){var n=function(e,t){return null==e?void 0:e[t]}(e,t);return function(e){return!(!Le(e)||Me(e))&&(Ne(e)?ze:Ue).test(je(e))}(n)?n:void 0},He=We(ge,"Map"),Ge=We(Object,"create"),Ke=Ge,Je=Ge,Qe=Object.prototype.hasOwnProperty,Ye=Ge,Xe=Object.prototype.hasOwnProperty,$e=Ge,Ze=function(){this.__data__=Ke?Ke(null):{},this.size=0},et=function(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t},tt=function(e){var t=this.__data__;if(Je){var n=t[e];return"__lodash_hash_undefined__"===n?void 0:n}return Qe.call(t,e)?t[e]:void 0};function nt(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}nt.prototype.clear=Ze,nt.prototype.delete=et,nt.prototype.get=tt,nt.prototype.has=function(e){var t=this.__data__;return Ye?void 0!==t[e]:Xe.call(t,e)},nt.prototype.set=function(e,t){var n=this.__data__;return this.size+=this.has(e)?0:1,n[e]=$e&&void 0===t?"__lodash_hash_undefined__":t,this};var it=nt,rt=le,st=He,ot=function(e,t){var n,i,r=e.__data__;return("string"==(i=typeof(n=t))||"number"==i||"symbol"==i||"boolean"==i?"__proto__"!==n:null===n)?r["string"==typeof t?"string":"hash"]:r.map},at=ot,ct=ot,dt=ot,lt=ot;function ut(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t<n;){var i=e[t];this.set(i[0],i[1])}}ut.prototype.clear=function(){this.size=0,this.__data__={hash:new it,map:new(st||rt),string:new it}},ut.prototype.delete=function(e){var t=at(this,e).delete(e);return this.size-=t?1:0,t},ut.prototype.get=function(e){return ct(this,e).get(e)},ut.prototype.has=function(e){return dt(this,e).has(e)},ut.prototype.set=function(e,t){var n=lt(this,e),i=n.size;return n.set(e,t),this.size+=n.size==i?0:1,this};var ht=ut,pt=le,mt=He,gt=ht,ft=le,vt=function(){this.__data__=new ue,this.size=0},bt=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n},_t=function(e){return this.__data__.get(e)},yt=function(e){return this.__data__.has(e)};function kt(e){var t=this.__data__=new ft(e);this.size=t.size}kt.prototype.clear=vt,kt.prototype.delete=bt,kt.prototype.get=_t,kt.prototype.has=yt,kt.prototype.set=function(e,t){var n=this.__data__;if(n instanceof pt){var i=n.__data__;if(!mt||i.length<199)return i.push([e,t]),this.size=++n.size,this;n=this.__data__=new gt(i)}return n.set(e,t),this.size=n.size,this};var St=kt,Tt=We,Ct=function(){try{var e=Tt(Object,"defineProperty");return e({},"",{}),e}catch(e){}}(),wt=Ct,Et=function(e,t,n){"__proto__"==t&&wt?wt(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n},Pt=Et,Rt=Z,It=Object.prototype.hasOwnProperty,Ot=function(e,t,n){var i=e[t];It.call(e,t)&&Rt(i,n)&&(void 0!==n||t in e)||Pt(e,t,n)},xt=Ot,At=Et,Dt=function(e,t,n,i){var r=!n;n||(n={});for(var s=-1,o=t.length;++s<o;){var a=t[s],c=i?i(n[a],e[a],a,n,e):void 0;void 0===c&&(c=e[a]),r?At(n,a,c):xt(n,a,c)}return n},Nt=function(e){return null!=e&&"object"==typeof e},Mt=we,Lt=Nt,jt=function(e){return Lt(e)&&"[object Arguments]"==Mt(e)},Ut=Nt,Ft=Object.prototype,Bt=Ft.hasOwnProperty,Vt=Ft.propertyIsEnumerable,qt=jt(function(){return arguments}())?jt:function(e){return Ut(e)&&Bt.call(e,"callee")&&!Vt.call(e,"callee")},zt=qt,Wt=Array.isArray,Ht={exports:{}},Gt=function(){return!1};!function(e,t){var n=ge,i=Gt,r=t&&!t.nodeType&&t,s=r&&e&&!e.nodeType&&e,o=s&&s.exports===r?n.Buffer:void 0,a=(o?o.isBuffer:void 0)||i;e.exports=a}(Ht,Ht.exports);var Kt=/^(?:0|[1-9]\d*)$/,Jt=function(e,t){var n=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==n||"symbol"!=n&&Kt.test(e))&&e>-1&&e%1==0&&e<t},Qt=function(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=9007199254740991},Yt=we,Xt=Qt,$t=Nt,Zt={};
1Zt["[object Float32Array]"]=Zt["[object Float64Array]"]=Zt["[object Int8Array]"]=Zt["[object Int16Array]"]=Zt["[object Int32Array]"]=Zt["[object Uint8Array]"]=Zt["[object Uint8ClampedArray]"]=Zt["[object Uint16Array]"]=Zt["[object Uint32Array]"]=!0,Zt["[object Arguments]"]=Zt["[object Array]"]=Zt["[object ArrayBuffer]"]=Zt["[object Boolean]"]=Zt["[object DataView]"]=Zt["[object Date]"]=Zt["[object Error]"]=Zt["[object Function]"]=Zt["[object Map]"]=Zt["[object Number]"]=Zt["[object Object]"]=Zt["[object RegExp]"]=Zt["[object Set]"]=Zt["[object String]"]=Zt["[object WeakMap]"]=!1;var en=function(e){return function(t){return e(t)}},tn={exports:{}};!function(e,t){var n=he,i=t&&!t.nodeType&&t,r=i&&e&&!e.nodeType&&e,s=r&&r.exports===i&&n.process,o=function(){try{return r&&r.require&&r.require("util").types||s&&s.binding&&s.binding("util")}catch(e){}}();e.exports=o}(tn,tn.exports);var nn,rn,sn,on,an,cn,dn,ln=function(e){return $t(e)&&Xt(e.length)&&!!Zt[Yt(e)]},un=en,hn=tn.exports,pn=hn&&hn.isTypedArray,mn=pn?un(pn):ln,gn=function(e,t){for(var n=-1,i=Array(e);++n<e;)i[n]=t(n);return i},fn=zt,vn=Wt,bn=Ht.exports,_n=Jt,yn=mn,kn=Object.prototype.hasOwnProperty,Sn=function(e,t){var n=vn(e),i=!n&&fn(e),r=!n&&!i&&bn(e),s=!n&&!i&&!r&&yn(e),o=n||i||r||s,a=o?gn(e.length,String):[],c=a.length;for(var d in e)!t&&!kn.call(e,d)||o&&("length"==d||r&&("offset"==d||"parent"==d)||s&&("buffer"==d||"byteLength"==d||"byteOffset"==d)||_n(d,c))||a.push(d);return a},Tn=Object.prototype,Cn=function(e){var t=e&&e.constructor;return e===("function"==typeof t&&t.prototype||Tn)},wn=function(e,t){return function(n){return e(t(n))}},En=wn(Object.keys,Object),Pn=Cn,Rn=En,In=Object.prototype.hasOwnProperty,On=Ie,xn=Qt,An=function(e){return null!=e&&xn(e.length)&&!On(e)},Dn=Sn,Nn=An,Mn=function(e){return Nn(e)?Dn(e):function(e){if(!Pn(e))return Rn(e);var t=[];for(var n in Object(e))In.call(e,n)&&"constructor"!=n&&t.push(n);return t}(e)},Ln=Dt,jn=Mn,Un=Ee,Fn=Cn,Bn=Object.prototype.hasOwnProperty,Vn=Sn,qn=function(e){if(!Un(e))return function(e){var t=[];if(null!=e)for(var n in Object(e))t.push(n);return t}(e);var t=Fn(e),n=[];for(var i in e)("constructor"!=i||!t&&Bn.call(e,i))&&n.push(i);return n},zn=An,Wn=function(e){return zn(e)?Vn(e,!0):qn(e)},Hn=Dt,Gn=Wn,Kn={exports:{}};nn=Kn,sn=ge,on=(rn=Kn.exports)&&!rn.nodeType&&rn,an=on&&nn&&!nn.nodeType&&nn,cn=an&&an.exports===on?sn.Buffer:void 0,dn=cn?cn.allocUnsafe:void 0,nn.exports=function(e,t){if(t)return e.slice();var n=e.length,i=dn?dn(n):new e.constructor(n);return e.copy(i),i};var Jn=function(e,t){var n=-1,i=e.length;for(t||(t=Array(i));++n<i;)t[n]=e[n];return t},Qn=function(){return[]},Yn=Qn,Xn=Object.prototype.propertyIsEnumerable,$n=Object.getOwnPropertySymbols,Zn=$n?function(e){return null==e?[]:(e=Object(e),function(e,t){for(var n=-1,i=null==e?0:e.length,r=0,s=[];++n<i;){var o=e[n];t(o,n,e)&&(s[r++]=o)}return s}($n(e),function(t){return Xn.call(e,t)}))}:Yn,ei=Dt,ti=Zn,ni=function(e,t){for(var n=-1,i=t.length,r=e.length;++n<i;)e[r+n]=t[n];return e},ii=wn(Object.getPrototypeOf,Object),ri=ni,si=ii,oi=Zn,ai=Qn,ci=Object.getOwnPropertySymbols?function(e){for(var t=[];e;)ri(t,oi(e)),e=si(e);return t}:ai,di=Dt,li=ci,ui=ni,hi=Wt,pi=function(e,t,n){var i=t(e);return hi(e)?i:ui(i,n(e))},mi=pi,gi=Zn,fi=Mn,vi=function(e){return mi(e,fi,gi)},bi=pi,_i=ci,yi=Wn,ki=We(ge,"DataView"),Si=He,Ti=We(ge,"Promise"),Ci=We(ge,"Set"),wi=We(ge,"WeakMap"),Ei=we,Pi=De,Ri="[object Map]",Ii="[object Promise]",Oi="[object Set]",xi="[object WeakMap]",Ai="[object DataView]",Di=Pi(ki),Ni=Pi(Si),Mi=Pi(Ti),Li=Pi(Ci),ji=Pi(wi),Ui=Ei;(ki&&Ui(new ki(new ArrayBuffer(1)))!=Ai||Si&&Ui(new Si)!=Ri||Ti&&Ui(Ti.resolve())!=Ii||Ci&&Ui(new Ci)!=Oi||wi&&Ui(new wi)!=xi)&&(Ui=function(e){var t=Ei(e),n="[object Object]"==t?e.constructor:void 0,i=n?Pi(n):"";if(i)switch(i){case Di:return Ai;case Ni:return Ri;case Mi:return Ii;case Li:return Oi;case ji:return xi}return t});var Fi=Ui,Bi=Object.prototype.hasOwnProperty,Vi=ge.Uint8Array,qi=Vi,zi=function(e){var t=new e.constructor(e.byteLength);return new qi(t).set(new qi(e)),t}
1,Wi=zi,Hi=/\w*$/,Gi=fe?fe.prototype:void 0,Ki=Gi?Gi.valueOf:void 0,Ji=zi,Qi=function(e,t){var n=t?Ji(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.length)},Yi=zi,Xi=function(e,t){var n=t?Wi(e.buffer):e.buffer;return new e.constructor(n,e.byteOffset,e.byteLength)},$i=function(e){var t=new e.constructor(e.source,Hi.exec(e));return t.lastIndex=e.lastIndex,t},Zi=Qi,er=Ee,tr=Object.create,nr=function(){function e(){}return function(t){if(!er(t))return{};if(tr)return tr(t);e.prototype=t;var n=new e;return e.prototype=void 0,n}}(),ir=ii,rr=Cn,sr=function(e){return"function"!=typeof e.constructor||rr(e)?{}:nr(ir(e))},or=Fi,ar=Nt,cr=en,dr=tn.exports,lr=dr&&dr.isMap,ur=lr?cr(lr):function(e){return ar(e)&&"[object Map]"==or(e)},hr=Fi,pr=Nt,mr=en,gr=tn.exports,fr=gr&&gr.isSet,vr=fr?mr(fr):function(e){return pr(e)&&"[object Set]"==hr(e)},br=St,_r=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i&&!1!==t(e[n],n,e););return e},yr=Ot,kr=function(e,t){return e&&Ln(t,jn(t),e)},Sr=function(e,t){return e&&Hn(t,Gn(t),e)},Tr=Kn.exports,Cr=Jn,wr=function(e,t){return ei(e,ti(e),t)},Er=function(e,t){return di(e,li(e),t)},Pr=vi,Rr=function(e){return bi(e,yi,_i)},Ir=Fi,Or=function(e){var t=e.length,n=new e.constructor(t);return t&&"string"==typeof e[0]&&Bi.call(e,"index")&&(n.index=e.index,n.input=e.input),n},xr=function(e,t,n){var i,r=e.constructor;switch(t){case"[object ArrayBuffer]":return Yi(e);case"[object Boolean]":case"[object Date]":return new r(+e);case"[object DataView]":return Xi(e,n);case"[object Float32Array]":case"[object Float64Array]":case"[object Int8Array]":case"[object Int16Array]":case"[object Int32Array]":case"[object Uint8Array]":case"[object Uint8ClampedArray]":case"[object Uint16Array]":case"[object Uint32Array]":return Zi(e,n);case"[object Map]":case"[object Set]":return new r;case"[object Number]":case"[object String]":return new r(e);case"[object RegExp]":return $i(e);case"[object Symbol]":return i=e,Ki?Object(Ki.call(i)):{}}},Ar=sr,Dr=Wt,Nr=Ht.exports,Mr=ur,Lr=Ee,jr=vr,Ur=Mn,Fr=Wn,Br="[object Arguments]",Vr="[object Function]",qr="[object Object]",zr={};zr[Br]=zr["[object Array]"]=zr["[object ArrayBuffer]"]=zr["[object DataView]"]=zr["[object Boolean]"]=zr["[object Date]"]=zr["[object Float32Array]"]=zr["[object Float64Array]"]=zr["[object Int8Array]"]=zr["[object Int16Array]"]=zr["[object Int32Array]"]=zr["[object Map]"]=zr["[object Number]"]=zr[qr]=zr["[object RegExp]"]=zr["[object Set]"]=zr["[object String]"]=zr["[object Symbol]"]=zr["[object Uint8Array]"]=zr["[object Uint8ClampedArray]"]=zr["[object Uint16Array]"]=zr["[object Uint32Array]"]=!0,zr["[object Error]"]=zr[Vr]=zr["[object WeakMap]"]=!1;var Wr=function e(t,n,i,r,s,o){var a,c=1&n,d=2&n,l=4&n;if(i&&(a=s?i(t,r,s,o):i(t)),void 0!==a)return a;if(!Lr(t))return t;var u=Dr(t);if(u){if(a=Or(t),!c)return Cr(t,a)}else{var h=Ir(t),p=h==Vr||"[object GeneratorFunction]"==h;if(Nr(t))return Tr(t,c);if(h==qr||h==Br||p&&!s){if(a=d||p?{}:Ar(t),!c)return d?Er(t,Sr(a,t)):wr(t,kr(a,t))}else{if(!zr[h])return s?t:{};a=xr(t,h,c)}}o||(o=new br);var m=o.get(t);if(m)return m;o.set(t,a),jr(t)?t.forEach(function(r){a.add(e(r,n,i,r,t,o))}):Mr(t)&&t.forEach(function(r,s){a.set(s,e(r,n,i,s,t,o))});var g=u?void 0:(l?d?Rr:Pr:d?Fr:Ur)(t);return _r(g||t,function(r,s){g&&(r=t[s=r]),yr(a,s,e(r,n,i,s,t,o))}),a},Hr=function(e){return Wr(e,5)},Gr=we,Kr=Nt,Jr=function(e){return"symbol"==typeof e||Kr(e)&&"[object Symbol]"==Gr(e)},Qr=Wt,Yr=Jr,Xr=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,$r=/^\w*$/,Zr=ht;function es(e,t){if("function"!=typeof e||null!=t&&"function"!=typeof t)throw new TypeError("Expected a function");var n=function(){var i=arguments,r=t?t.apply(this,i):i[0],s=n.cache;if(s.has(r))return s.get(r);var o=e.apply(this,i);return n.cache=s.set(r,o)||s,o};return n.cache=new(es.Cache||Zr),n}es.Cache=Zr;var ts,ns,is=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rs=/\\(\\)?/g,ss=(ts=es(function(e){var t=[];return 46===e.charCodeAt(0)&&t.push(""),e.replace(is,function(e,n,i,r){t.push(i?r.replace(rs,"$1"):n||e)}),t},function(e){return 500===ns.size&&ns.clear(),e}
1),ns=ts.cache,ts),os=Wt,as=Jr,cs=fe?fe.prototype:void 0,ds=cs?cs.toString:void 0,ls=function e(t){if("string"==typeof t)return t;if(os(t))return function(e,t){for(var n=-1,i=null==e?0:e.length,r=Array(i);++n<i;)r[n]=t(e[n],n,e);return r}(t,e)+"";if(as(t))return ds?ds.call(t):"";var n=t+"";return"0"==n&&1/t==-1/0?"-0":n},us=Wt,hs=function(e,t){if(Qr(e))return!1;var n=typeof e;return!("number"!=n&&"symbol"!=n&&"boolean"!=n&&null!=e&&!Yr(e))||$r.test(e)||!Xr.test(e)||null!=t&&e in Object(t)},ps=ss,ms=Jr,gs=Ot,fs=function(e,t){return us(e)?e:hs(e,t)?[e]:ps(function(e){return null==e?"":ls(e)}(e))},vs=Jt,bs=Ee,_s=function(e){if("string"==typeof e||ms(e))return e;var t=e+"";return"0"==t&&1/e==-1/0?"-0":t},ys=function(e,t,n){return null==e?e:function(e,t,n,i){if(!bs(e))return e;for(var r=-1,s=(t=fs(t,e)).length,o=s-1,a=e;null!=a&&++r<s;){var c=_s(t[r]),d=n;if("__proto__"===c||"constructor"===c||"prototype"===c)return e;if(r!=o){var l=a[c];void 0===(d=i?i(l,c,a):void 0)&&(d=bs(l)?l:vs(t[r+1])?[]:{})}gs(a,c,d),a=a[c]}return e}(e,t,n)},ks=function(e){function t(t){var n=e.call(this,t)||this;return n.state={error:null},n}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}x(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(t,e),t.getDerivedStateFromError=function(e){return{error:e}},t.prototype.componentDidCatch=function(e){this.props.onError&&this.props.onError(e)},t.prototype.render=function(){return i.createElement(w,null,i.createElement(Ss,A({},this.props)))},t.defaultProps={channels:[],channelGroups:[],theme:"light",enablePresence:!0,typingIndicatorTimeout:10,users:[],retryOptions:{maxRetries:1,timeout:0,exponentialFactor:1},onError:function(){}},t}(i.Component),Ss=function(e){var t=(0,r.wP)(),n=O(q)[1],s=O(j)[1],o=O(K)[1],a=O(G)[1],c=O(J)[1],d=O(Q)[1],l=O(W)[1],u=O(H)[1],h=O(V),p=h[0],m=h[1],g=O(U),f=g[0],v=g[1],b=O(F),_=b[0],y=b[1],k=O(B),S=k[0],T=k[1],C=e.children,w=e.theme,E=void 0===w?"light":w,P=e.currentChannel,R=e.channels,I=void 0===R?[]:R,x=e.channelGroups,z=void 0===x?[]:x,Y=e.enablePresence,X=e.users,$=void 0===X?[]:X,Z=e.getUser,ee=e.typingIndicatorTimeout,te=void 0===ee?10:ee,ne=e.retryOptions,ie=e.onMessage,re=e.onSignal,se=e.onMessageAction,oe=e.onPresence,ae=e.onUser,ce=e.onChannel,de=e.onMembership,le=e.onFile,ue=e.onStatus,he=e.onError,pe=void 0===he?function(){return null}:he,me=(0,i.useCallback)(function(e){return N(void 0,void 0,void 0,function(){var t,n,i,r,s,o,a;return M(this,function(c){switch(c.label){case 0:n=(t=ne).maxRetries,i=t.timeout,r=t.exponentialFactor,s=function(t){var s,o;return M(this,function(a){switch(a.label){case 0:return a.trys.push([0,2,,4]),s={},[4,e()];case 1:return[2,(s.value=a.sent(),s)];case 2:if(o=a.sent(),n===t+1)throw o;return[4,new Promise(function(e){return setTimeout(e,i*Math.pow(r,t))})];case 3:return a.sent(),[3,4];case 4:return[2]}})},o=0,c.label=1;case 1:return o<n?[5,s(o)]:[3,4];case 2:if("object"==typeof(a=c.sent()))return[2,a.value];c.label=3;case 3:return o++,[3,1];case 4:return[2]}})})},[ne]),ge=(0,i.useCallback)(function(e){try{p.find(function(t){return t.id===e.publisher})||d(e.publisher),n(function(t){var n=Hr(t)||{};return n[e.channel]=n[e.channel]||[],n[e.channel].push(e),n}),ie&&ie(e)}catch(e){pe(e)}},[pe,ie,d,n,p]),fe=(0,i.useCallback)(function(e){try{["typing_on","typing_off"].includes(e.message.type)&&(p.find(function(t){return t.id===e.publisher})||d(e.publisher),l(function(t){var n=Hr(t),i="typing_on"===e.message.type?e.timetoken:null;return ys(n,[e.channel,e.publisher],i),n})),re&&re(e)}catch(e){pe(e)}},[pe,re,d,l,p]),ve=(0,i.useCallback)(function(e){try{oe&&oe(e)}catch(e){pe(e)}},[oe,pe]),be=(0,i.useCallback)(function(e){try{"membership"===e.message.type&&de&&de(e),"channel"===e.message.type&&ce&&ce(e),"uuid"===e.message.type&&ae&&ae(e)}catch(e){pe(e)}},[de,ce,ae,pe]),_e=(0,i.useCallback)(function(e){try{p.find(function(t){return t.id===e.publisher})||d(e.publisher),n(function(t){var n,i,r,s;if(!t||!t[e.channel])return t;var o=e.channel,a=e.event,c=e.data,d=c.type,l=c.value,u=c.actionTimetoken,h=c.messageTimetoken,p=c.uuid,m=Hr(t),g=m[o].find(function(e){return e.timetoken===h}),f=(null===(i=null===(n=null==g?void 0:g.actions)||void 0===n?void 0:n[d])||void 0===i?void 0:i[l])||[];if(g&&"added"===a){var v=L(L([],f,!0),[{uuid:p,actionTimetoken:u}],!1);ys(g,["actions",d,l],v)}return g&&"removed"===a&&((v=f.filter(function(e){return e.actionTimetoken!==u})).length?ys(g,["actions",d,l],v):null===(s=null===(r=g.actions)||void 0===r?void 0:r[d])||void 0===s||delete s[l]),m}),se&&se(e)}catch(e){pe(e)}},[pe,se,d,n,p]),ye=(0,i.useCallback)(function(e){try{p.find(function(t){return t.id===e.publisher})||d(e.publisher),n(function(t){var n=e.file,i=e.message,r=D(e,["file","message"]),s=A(A({},r),{message:{file:n,message:i},messageType:4}),o=Hr(t)||{};return o[s.channel]=o[s.channel]||[],o[s.channel].push(s),o}),le&&le(e)}catch(e){pe(e)}},[pe,le,d,n,p]),ke=(0,i.useCallback)(function(e){try{ue&&ue(e)}catch(e){pe(e)}},[ue,pe]);return(0,i.useEffect)(function(){m($)},[$,m]),(0,i.useEffect)(function(){s(E)},[E,s]),(0,i.useEffect)(function(){v(P)},[P,v]),(0,i.useEffect)(function(){y(I)},[I,y]),(0,i.useEffect)(function(){T(z)},[z,T]),(0,i.useEffect)(function(){u(te)},[te,u]),(0,i.useEffect)(function(){o({function:function(e){return pe(e)}})},[pe,o]),(0,i.useEffect)(function(){a({function:function(e){return me(e)}})},[me,a]),(0,i.useEffect)(function(){Z&&c({function:function(e){return Z(e)}})},[Z,c]),(0,i.useEffect)(function(){f&&(_.includes(f)||I.length||z.length||y(L(L([],_,!0),[f],!1)))},[f,_,I.length,z.length,y]),(0,i.useEffect)(function(){if(_.length||S.length){var e=t.getSubscribedChannels(),n=t.getSubscribedChannelGroups();try{var i=_.filter(function(t){return!e.includes(t)}),r=e.filter(function(e){return!_.includes(e)}),s=S.filter(function(e){return!n.includes(e)}),o=n.filter(function(e){return!S.includes(e)});(i.length||s.length)&&t.subscribe({channels:i,channelGroups:s,withPresence:Y}),(r.length||o.length)&&t.unsubscribe({channels:r,channelGroups:o})}catch(e){pe(e)}}},[_,S,Y,pe,t]),(0,i.useEffect)(function(){if(t){var e={message:function(e){return ge(e)},messageAction:function(e){return _e(e)},presence:function(e){return ve(e)},objects:function(e){return be(e)},signal:function(e){return fe(e)},file:function(e){return ye(e)},status:function(e){return ke(e)}};try{t.addListener(e)}catch(e){pe(e)}return function(){t&&t.removeListener&&t.removeListener(e)}}},[t,ge,_e,ve,be,fe,ye,ke,pe]),(0,i.useEffect)(function(){t&&t._config._addPnsdkSuffix("chat-components","RCC/0.33.0")},[t]),i.createElement(i.Fragment,null,C)},Ts=function(e){if(!e||!e.length)return"";var t=e.split(" ");return(1==t.length?t[0].substring(0,2):t[0][0]+t[1][0]).toUpperCase()}
1,Cs=function(e){if(e&&e.length){var t=["#80deea","#9fa7df","#aed581","#ce93d8","#ef9a9a","#ffab91","#ffe082"];return t[e.split("").map(function(e){return e.charCodeAt(0)}).reduce(function(e,t){return e+t})%t.length]}},ws=function(e){var t=(0,i.useRef)(e);return(0,i.useEffect)(function(){t.current=e},[e]),t.current};function Es(e){return void 0!==e.file}var Ps,Rs,Is,Os=Et,xs=Z,As=function(e,t,n){(void 0!==n&&!xs(e[t],n)||void 0===n&&!(t in e))&&Os(e,t,n)},Ds=function(e,t,n){for(var i=-1,r=Object(e),s=n(e),o=s.length;o--;){var a=s[++i];if(!1===t(r[a],a,r))break}return e},Ns=An,Ms=Nt,Ls=we,js=ii,Us=Nt,Fs=Function.prototype,Bs=Object.prototype,Vs=Fs.toString,qs=Bs.hasOwnProperty,zs=Vs.call(Object),Ws=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]},Hs=Dt,Gs=Wn,Ks=As,Js=Kn.exports,Qs=Qi,Ys=Jn,Xs=sr,$s=zt,Zs=Wt,eo=function(e){return Ms(e)&&Ns(e)},to=Ht.exports,no=Ie,io=Ee,ro=mn,so=Ws,oo=St,ao=As,co=Ds,lo=function(e,t,n,i,r,s,o){var a,c=so(e,n),d=so(t,n),l=o.get(d);if(l)Ks(e,n,l);else{var u=s?s(c,d,n+"",e,t,o):void 0,h=void 0===u;if(h){var p=Zs(d),m=!p&&to(d),g=!p&&!m&&ro(d);u=d,p||m||g?Zs(c)?u=c:eo(c)?u=Ys(c):m?(h=!1,u=Js(d,!0)):g?(h=!1,u=Qs(d,!0)):u=[]:function(e){if(!Us(e)||"[object Object]"!=Ls(e))return!1;var t=js(e);if(null===t)return!0;var n=qs.call(t,"constructor")&&t.constructor;return"function"==typeof n&&n instanceof n&&Vs.call(n)==zs}(d)||$s(d)?(u=c,$s(c)?u=Hs(a=c,Gs(a)):io(c)&&!no(c)||(u=Xs(d))):h=!1}h&&(o.set(d,u),r(u,d,i,s,o),o.delete(d)),Ks(e,n,u)}},uo=Ee,ho=Wn,po=Ws,mo=function e(t,n,i,r,s){t!==n&&co(n,function(o,a){if(s||(s=new oo),uo(o))lo(t,n,a,i,e,r,s);else{var c=r?r(po(t,a),o,a+"",t,n,s):void 0;void 0===c&&(c=o),ao(t,a,c)}},ho)},go=function(e){return e},fo=Math.max,vo=Ct,bo=vo?function(e,t){return vo(e,"toString",{configurable:!0,enumerable:!1,value:(n=t,function(){return n}),writable:!0});var n}:go,_o=Date.now,yo=(Ps=bo,Rs=0,Is=0,function(){var e=_o(),t=16-(e-Is);if(Is=e,t>0){if(++Rs>=800)return arguments[0]}else Rs=0;return Ps.apply(void 0,arguments)}),ko=go,So=function(e,t,n){return t=fo(void 0===t?e.length-1:t,0),function(){for(var i=arguments,r=-1,s=fo(i.length-t,0),o=Array(s);++r<s;)o[r]=i[t+r];r=-1;for(var a=Array(t+1);++r<t;)a[r]=i[r];return a[t]=n(o),function(e,t,n){switch(n.length){case 0:return e.call(t);case 1:return e.call(t,n[0]);case 2:return e.call(t,n[0],n[1]);case 3:return e.call(t,n[0],n[1],n[2])}return e.apply(t,n)}(e,this,a)}},To=yo,Co=Z,wo=An,Eo=Jt,Po=Ee,Ro=function(e){return function(e,t){return To(So(e,t,ko),e+"")}(function(t,n){var i=-1,r=n.length,s=r>1?n[r-1]:void 0,o=r>2?n[2]:void 0;for(s=e.length>3&&"function"==typeof s?(r--,s):void 0,o&&function(e,t,n){if(!Po(n))return!1;var i=typeof t;return!!("number"==i?wo(n)&&Eo(t,n.length):"string"==i&&t in n)&&Co(n[t],e)}(n[0],n[1],o)&&(s=r<3?void 0:s,r=1),t=Object(t);++i<r;){var a=n[i];a&&e(t,a,i,s)}return t})},Io=mo,Oo=(Ro(function(e,t,n){Io(e,t,n)}),mo),xo=(Ro(function(e,t,n,i){Oo(e,t,n,i)}),{}),Ao={},Do={};Object.defineProperty(Do,"__esModule",{value:!0}),Do.bytesToString=Do.stringToBytes=Do.NIL=Do.X500=Do.OID=Do.URL=Do.DNS=Do.hexToByte=Do.byteToHex=void 0;let No=[],Mo={};for(var Lo=0;Lo<256;Lo++)No[Lo]=(Lo+256).toString(16).substr(1),Mo[No[Lo]]=Lo;Do.byteToHex=No,Do.hexToByte=Mo,Do.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Do.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",Do.OID="6ba7b812-9dad-11d1-80b4-00c04fd430c8",Do.X500="6ba7b814-9dad-11d1-80b4-00c04fd430c8",Do.NIL="00000000-0000-0000-0000-000000000000",Do.stringToBytes=e=>{e=unescape(encodeURIComponent(e));const t=new Uint8Array(e.length);for(let n=0;n<e.length;++n)t[n]=e.charCodeAt(n);return t},Do.bytesToString=e=>{const t=new Uint8Array(e,0,e.byteLength);return String.fromCharCode.apply(null,Array.from(t))},Object.defineProperty(Ao,"__esModule",{value:!0}),Ao.parse=void 0;const jo=Do;Ao.parse=(e,t,n)=>{let i=t&&n||0,r=0;for(t=t||[],e.toLowerCase().replace(/[0-9a-f]{2}/g,e=>(r<16&&t&&(t[i+r++]=jo.hexToByte[e]),""));r<16;)t[i+r++]=0;return t};var Uo={};Object.defineProperty(Uo,"__esModule",{value:!0}),Uo.unparse=void 0;const Fo=Do;Uo.unparse=(e,t)=>{let n=t||0,i=Fo.byteToHex;return i[e[n++]]+i[e[n++]]+i[e[n++]]+i[e[n++]]+"-"+i[e[n++]]+i[e[n++]]+"-"+i[e[n++]]+i[e[n++]]+"-"+i[e[n++]]+i[e[n++]]+"-"+i[e[n++]]+i[e[n++]]+i[e[n++]]+i[e[n++]]+i[e[n++]]+i[e[n++]]};var Bo={},Vo={};Object.defineProperty(Vo,"__esModule",{value:!0}),Vo.default=/^(?:[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;
1var qo=$&&$.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Bo,"__esModule",{value:!0}),Bo.validate=void 0;const zo=qo(Vo);Bo.validate=e=>"string"==typeof e&&zo.default.test(e);var Wo={};Object.defineProperty(Wo,"__esModule",{value:!0}),Wo.version=void 0;const Ho=Bo;Wo.version=e=>{if(!Ho.validate(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)};var Go={},Ko={};Object.defineProperty(Ko,"__esModule",{value:!0}),Ko.stringify=void 0;const Jo=Bo,Qo=[];for(let e=0;e<256;++e)Qo.push((e+256).toString(16).substr(1));Ko.stringify=(e,t=0)=>{const n=(Qo[e[t+0]]+Qo[e[t+1]]+Qo[e[t+2]]+Qo[e[t+3]]+"-"+Qo[e[t+4]]+Qo[e[t+5]]+"-"+Qo[e[t+6]]+Qo[e[t+7]]+"-"+Qo[e[t+8]]+Qo[e[t+9]]+"-"+Qo[e[t+10]]+Qo[e[t+11]]+Qo[e[t+12]]+Qo[e[t+13]]+Qo[e[t+14]]+Qo[e[t+15]]).toLowerCase();if(!Jo.validate(n))throw TypeError("Stringified UUID is invalid");return n};var Yo={};Object.defineProperty(Yo,"__esModule",{value:!0}),Yo.rng=void 0,Yo.rng=()=>{let e=new Array(16);for(let t=0;t<16;t++)e[t]=255&256*Math.random()+0;return e},Object.defineProperty(Go,"__esModule",{value:!0}),Go.v1=void 0;const Xo=Ko,$o=Yo;let Zo,ea,ta=0,na=0;Go.v1=(e,t,n=0)=>{let i=t&&n||0;const r=t||new Uint8Array(16);let s=e&&e.node?e.node:Zo,o=e&&e.clockseq?e.clockseq:ea;if(null==s||null==o){const t=e&&e.random?e.random:e&&e.rng?e.rng():$o.rng();null==s&&(s=Zo=[1|t[0],t[1],t[2],t[3],t[4],t[5]]),null==o&&(o=ea=16383&(t[6]<<8|t[7]))}let a=e&&e.msecs?e.msecs:Date.now(),c=e&&e.nsecs?e.nsecs:na+1;const d=a-ta+(c-na)/1e4;if(d<0&&e&&!e.clockseq&&(o=o+1&16383),(d<0||a>ta)&&e&&!e.nsecs&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");ta=a,na=c,ea=o,a+=122192928e5;const l=(1e4*(268435455&a)+c)%4294967296;r[i++]=l>>>24&255,r[i++]=l>>>16&255,r[i++]=l>>>8&255,r[i++]=255&l;const u=a/4294967296*1e4&268435455;r[i++]=u>>>8&255,r[i++]=255&u,r[i++]=u>>>24&15|16,r[i++]=u>>>16&255,r[i++]=o>>>8|128,r[i++]=255&o;for(let e=0;e<6;++e)r[i+e]=s[e];return t||Xo.stringify(r)};var ia={};Object.defineProperty(ia,"__esModule",{value:!0}),ia.v4=void 0;const ra=Uo,sa=Yo;ia.v4=(e,t,n)=>{let i=t&&n||0,r=sa.rng();if(!e||e instanceof String||(e.random&&(r=e.random),e.rng&&(r=e.rng())),r[6]=15&r[6]|64,r[8]=63&r[8]|128,t)for(var s=0;s<16;s++)t[i+s]=r[s];return t||ra.unparse(r)};var oa={},aa={};Object.defineProperty(aa,"__esModule",{value:!0}),aa.v35=void 0;const ca=Ko,da=Ao,la=Do;aa.v35=(e,t,n)=>(e,i,r,s=0)=>
1{if("string"==typeof e&&(e=la.stringToBytes(e)),"string"==typeof i&&(i=da.parse(i)),i&&16!==i.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let o=new Uint8Array(16+e.length);if(o.set(i),o.set(e,i.length),o=la.stringToBytes(n(la.bytesToString(o))),o[6]=15&o[6]|t,o[8]=63&o[8]|128,r)for(let e=0;e<16;++e)r[s+e]=o[e];return r||ca.stringify(o)};var ua={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.any_hmac_sha1=e.b64_hmac_sha1=e.hex_hmac_sha1=e.any_sha1=e.b64_sha1=e.hex_sha1=void 0;e.hex_sha1=e=>i(t(o(e))),e.default=e.hex_sha1,e.b64_sha1=e=>r(t(o(e))),e.any_sha1=(e,n)=>s(t(o(e)),n),e.hex_hmac_sha1=(e,t)=>i(n(o(e),o(t))),e.b64_hmac_sha1=(e,t)=>r(n(o(e),o(t))),e.any_hmac_sha1=(e,t,i)=>s(n(o(e),o(t)),i);const t=e=>c(d(a(e),8*e.length)),n=(e,t)=>{let n=a(e);n.length>16&&(n=d(n,8*e.length));let i=Array(16),r=Array(16);for(var s=0;s<16;s++)i[s]=909522486^n[s],r[s]=1549556828^n[s];var o=d(i.concat(a(t)),512+8*t.length);return c(d(r.concat(o),672))},i=e=>{for(var t,n="0123456789abcdef",i="",r=0;r<e.length;r++)t=e.charCodeAt(r),i+=n.charAt(t>>>4&15)+n.charAt(15&t);return i},r=e=>{for(var t="",n=e.length,i=0;i<n;i+=3)for(var r=e.charCodeAt(i)<<16|(i+1<n?e.charCodeAt(i+1)<<8:0)|(i+2<n?e.charCodeAt(i+2):0),s=0;s<4;s++)8*i+6*s>8*e.length?t+="":t+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(r>>>6*(3-s)&63);return t},s=(e,t)=>{var n,i,r,s,o=t.length,a=[],c=Array(Math.ceil(e.length/2));for(n=0;n<c.length;n++)c[n]=e.charCodeAt(2*n)<<8|e.charCodeAt(2*n+1);for(;c.length>0;){for(s=[],r=0,n=0;n<c.length;n++)r=(r<<16)+c[n],r-=(i=Math.floor(r/o))*o,(s.length>0||i>0)&&(s[s.length]=i);a[a.length]=r,c=s}var d="";for(n=a.length-1;n>=0;n--)d+=t.charAt(a[n]);var l=Math.ceil(8*e.length/(Math.log(t.length)/Math.log(2)));for(n=d.length;n<l;n++)d=t[0]+d;return d},o=e=>{for(var t,n,i="",r=-1;++r<e.length;)t=e.charCodeAt(r),n=r+1<e.length?e.charCodeAt(r+1):0,t>=55296&&t<=56319&&n>=56320&&n<=57343&&(t=65536+((1023&t)<<10)+(1023&n),r++),t<=127?i+=String.fromCharCode(t):t<=2047?i+=String.fromCharCode(192|t>>>6&31,128|63&t):t<=65535?i+=String.fromCharCode(224|t>>>12&15,128|t>>>6&63,128|63&t):t<=2097151&&(i+=String.fromCharCode(240|t>>>18&7,128|t>>>12&63,128|t>>>6&63,128|63&t));return i},a=e=>{for(var t=Array(e.length>>2),n=0;n<t.length;n++)t[n]=0;for(n=0;n<8*e.length;n+=8)t[n>>5]|=(255&e.charCodeAt(n/8))<<24-n%32;return t},c=e=>{for(var t="",n=0;n<32*e.length;n+=8)t+=String.fromCharCode(e[n>>5]>>>24-n%32&255);return t},d=(e,t)=>{e[t>>5]|=128<<24-t%32,e[15+(t+64>>9<<4)]=t;for(var n=Array(80),i=1732584193,r=-271733879,s=-1732584194,o=271733878,a=-1009589776,c=0;c<e.length;c+=16){for(var d=i,m=r,g=s,f=o,v=a,b=0;b<80;b++){n[b]=b<16?e[c+b]:p(n[b-3]^n[b-8]^n[b-14]^n[b-16],1);let t=h(h(p(i,5),l(b,r,s,o)),h(h(a,n[b]),u(b)));a=o,o=s,s=p(r,30),r=i,i=t}i=h(i,d),r=h(r,m),s=h(s,g),o=h(o,f),a=h(a,v)}return[i,r,s,o,a]},l=(e,t,n,i)=>e<20?t&n|~t&i:e<40?t^n^i:e<60?t&n|t&i|n&i:t^n^i,u=e=>e<20?1518500249:e<40?1859775393:e<60?-1894007588:-899497514,h=(e,t)=>{var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n},p=(e,t)=>e<<t|e>>>32-t}(ua);var ha=$&&$.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(oa,"__esModule",{value:!0}),oa.v5=void 0;const pa=aa,ma=ha(ua);oa.v5=pa.v35("v5",80,ma.default),Object.defineProperty(xo,"__esModule",{value:!0});const ga=Ao,fa=Uo,va=Bo,ba=Wo,_a=Go,ya=ia,ka=oa,Sa=Do;xo.default={parse:ga.parse,unparse:fa.unparse,validate:va.validate,version:ba.version,v1:_a.v1,v4:ya.v4,v5:ka.v5,NIL:Sa.NIL,DNS:Sa.DNS,URL:Sa.URL,OID:Sa.OID,X500:Sa.X500};var Ta=ht;function Ca(e){var t=-1,n=null==e?0:e.length;for(this.__data__=new Ta;++t<n;)this.add(e[t])}Ca.prototype.add=Ca.prototype.push=function(e){return this.__data__.set(e,"__lodash_hash_undefined__"),this},Ca.prototype.has=function(e){return this.__data__.has(e)};var wa=Ca,Ea=function(e,t){for(var n=-1,i=null==e?0:e.length;++n<i;)if(t(e[n],n,e))return!0;return!1},Pa=function(e,t){return e.has(t)},Ra=function(e,t,n,i,r,s){var o=1&n,a=e.length,c=t.length;if(a!=c&&!(o&&c>a))return!1;var d=s.get(e),l=s.get(t);if(d&&l)return d==t&&l==e;var u=-1,h=!0,p=2&n?new wa:void 0;for(s.set(e,t),s.set(t,e);++u<a;){var m=e[u],g=t[u];if(i)var f=o?i(g,m,u,t,e,s):i(m,g,u,e,t,s);if(void 0!==f){if(f)continue;h=!1;break}
1if(p){if(!Ea(t,function(e,t){if(!Pa(p,t)&&(m===e||r(m,e,n,i,s)))return p.push(t)})){h=!1;break}}else if(m!==g&&!r(m,g,n,i,s)){h=!1;break}}return s.delete(e),s.delete(t),h},Ia=Vi,Oa=Z,xa=Ra,Aa=function(e){var t=-1,n=Array(e.size);return e.forEach(function(e,i){n[++t]=[i,e]}),n},Da=function(e){var t=-1,n=Array(e.size);return e.forEach(function(e){n[++t]=e}),n},Na=fe?fe.prototype:void 0,Ma=Na?Na.valueOf:void 0,La=vi,ja=Object.prototype.hasOwnProperty,Ua=St,Fa=Ra,Ba=function(e,t,n,i,r,s,o){switch(n){case"[object DataView]":if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case"[object ArrayBuffer]":return!(e.byteLength!=t.byteLength||!s(new Ia(e),new Ia(t)));case"[object Boolean]":case"[object Date]":case"[object Number]":return Oa(+e,+t);case"[object Error]":return e.name==t.name&&e.message==t.message;case"[object RegExp]":case"[object String]":return e==t+"";case"[object Map]":var a=Aa;case"[object Set]":var c=1&i;if(a||(a=Da),e.size!=t.size&&!c)return!1;var d=o.get(e);if(d)return d==t;i|=2,o.set(e,t);var l=xa(a(e),a(t),i,r,s,o);return o.delete(e),l;case"[object Symbol]":if(Ma)return Ma.call(e)==Ma.call(t)}return!1},Va=Fi,qa=Wt,za=Ht.exports,Wa=mn,Ha="[object Arguments]",Ga="[object Array]",Ka="[object Object]",Ja=Object.prototype.hasOwnProperty,Qa=function(e,t,n,i,r,s){var o=qa(e),a=qa(t),c=o?Ga:Va(e),d=a?Ga:Va(t),l=(c=c==Ha?Ka:c)==Ka,u=(d=d==Ha?Ka:d)==Ka,h=c==d;if(h&&za(e)){if(!za(t))return!1;o=!0,l=!1}if(h&&!l)return s||(s=new Ua),o||Wa(e)?Fa(e,t,n,i,r,s):Ba(e,t,c,n,i,r,s);if(!(1&n)){var p=l&&Ja.call(e,"__wrapped__"),m=u&&Ja.call(t,"__wrapped__");
vendor: 7,439 bytes, line 1
1if(p||m){var g=p?e.value():e,f=m?t.value():t;return s||(s=new Ua),r(g,f,n,i,s)}}return!!h&&(s||(s=new Ua),function(e,t,n,i,r,s){var o=1&n,a=La(e),c=a.length;if(c!=La(t).length&&!o)return!1;for(var d=c;d--;){var l=a[d];if(!(o?l in t:ja.call(t,l)))return!1}var u=s.get(e),h=s.get(t);if(u&&h)return u==t&&h==e;var p=!0;s.set(e,t),s.set(t,e);for(var m=o;++d<c;){var g=e[l=a[d]],f=t[l];if(i)var v=o?i(f,g,l,t,e,s):i(g,f,l,e,t,s);if(!(void 0===v?g===f||r(g,f,n,i,s):v)){p=!1;break}m||(m="constructor"==l)}if(p&&!m){var b=e.constructor,_=t.constructor;b==_||!("constructor"in e)||!("constructor"in t)||"function"==typeof b&&b instanceof b&&"function"==typeof _&&_ instanceof _||(p=!1)}return s.delete(e),s.delete(t),p}(e,t,n,i,r,s))},Ya=Nt,Xa=function e(t,n,i,r,s){return t===n||(null==t||null==n||!Ya(t)&&!Ya(n)?t!=t&&n!=n:Qa(t,n,i,r,e,s))},$a=function(e,t){return Xa(e,t)};function Za(e,t){void 0===t&&(t={});var n=t.insertAt;if(e&&"undefined"!=typeof document){var i=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css","top"===n&&i.firstChild?i.insertBefore(r,i.firstChild):i.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}}Za("/* ************************\n** Variables\n** ********************* */\n:root {\n --channel-list__background: var(--chat--light__background--2);\n --channel__alignItems: center;\n --channel__padding: 8px 16px;\n --channel__justifyContent: flex-start;\n --channel__background: transparent;\n --channel--hover__background: var(--chat--light__hover--2);\n --channel--active__background: var(--chat--light__background--1);\n --channel__thumb__display: block;\n --channel__thumb__margin: 0 18px 0 0;\n --channel__thumb__size: 36px;\n --channel__thumb__borderRadius: 36px;\n --channel__name__color: var(--chat--light__color--1);\n --channel--hover__name__color: var(--chat--light__color--1);\n --channel--active__name__color: var(--chat--light__color--1);\n --channel__name__fontSize: 13px;\n --channel__name__fontWeight: 400;\n --channel__name__margin: 0;\n --channel__name__overflow: hidden;\n --channel__name__padding: 0;\n --channel__name__textOverflow: ellipsis;\n --channel__name__whiteSpace: nowrap;\n --channel__description__color: var(--chat--light__color--2);\n --channel--hover__description__color: var(--chat--light__color--2);\n --channel--active__description__color: var(--chat--light__color--2);\n --channel__description__display: block;\n --channel__description__fontSize: 11px;\n --channel__description__fontWeight: 400;\n --channel__description__margin: 0;\n --channel__description__overflow: hidden;\n --channel__description__padding: 7px 0 0;\n --channel__description__textOverflow: ellipsis;\n --channel__description__whiteSpace: nowrap;\n --channel__actions--hover__background: transparent;\n --channel__actions__background: transparent;\n --channel__actions__borderRadius: 5px;\n --channel__actions__color: var(--chat--light__color--2);\n --channel__actions--hover__color: var(--chat--light__hover--1);\n --channel__actions__fontSize: 18px;\n --channel__actions__margin: 0 0 0 4px;\n --channel__actions__padding: 3px 5px;\n --channel__actions__visibility: hidden;\n}\n\n/* ************************\n** Styles\n** ********************* */\n.pn-channel-list {\n height: 100%;\n overflow-y: auto;\n width: 100%;\n background: var(--channel-list__background);\n}\n\n.pn-channel {\n align-items: var(--channel__alignItems);\n background: var(--channel__background);\n cursor: pointer;\n display: flex;\n justify-content: var(--channel__justifyContent);\n padding: var(--channel__padding);\n position: relative;\n}\n.pn-channel:hover {\n background: var(--channel--hover__background);\n}\n.pn-channel:hover .pn-channel__leave {\n display: inline;\n}\n.pn-channel:hover .pn-channel__name {\n color: var(--channel--hover__name__color);\n}\n.pn-channel:hover .pn-channel__description {\n color: var(--channel--hover__description__color);\n}\n.pn-channel:hover .pn-channel__actions {\n visibility: visible;\n}\n.pn-channel--active {\n background: var(--channel--active__background);\n}\n.pn-channel--active .pn-channel__name {\n color: var(--channel--active__name__color);\n}\n.pn-channel--active .pn-channel__description {\n color: var(--channel--active__description__color);\n}\n.pn-channel__thumb {\n border-radius: var(--channel__thumb__borderRadius);\n display: var(--channel__thumb__display);\n flex: none;\n margin: var(--channel__thumb__margin);\n width: var(--channel__thumb__size);\n}\n.pn-channel__title {\n flex: 1;\n min-width: 0;\n}\n.pn-channel__name {\n color: var(--channel__name__color);\n font-size: var(--channel__name__fontSize);\n font-weight: var(--channel__name__fontWeight);\n margin: var(--channel__name__margin);\n overflow: var(--channel__name__overflow);\n padding: var(--channel__name__padding);\n text-align: left;\n text-overflow: var(--channel__name__textOverflow);\n white-space: var(--channel__name__whiteSpace);\n}\n.pn-channel__description {\n color: var(--channel__description__color);\n display: var(--channel__description__display);\n font-size: var(--channel__description__fontSize);\n font-weight: var(--channel__description__fontWeight);\n margin: var(--channel__description__margin);\n overflow: var(--channel__description__overflow);\n padding: var(--channel__description__padding);\n text-align: left;\n text-overflow: var(--channel__description__textOverflow);\n white-space: var(--channel__description__whiteSpace);\n}\n.pn-channel__actions {\n color: var(--channel__actions__color);\n cursor: pointer;\n display: flex;\n visibility: var(--channel__actions__visibility);\n font-size: var(--channel__actions__fontSize);\n}\n.pn-channel__actions > * {\n background: var(--channel__actions__background);\n border-radius: var(--channel__actions__borderRadius);\n display: flex;\n margin: var(--channel__actions__margin);\n padding: var(--channel__actions__padding);\n}\n.pn-channel__actions > *:hover {\n background: var(--channel__actions--hover__background);\n color: var(--channel__actions--hover__color);\n}\n.pn-channel__leave {\n color: var(--channel__leave__color);\n display: none;\n height: var(--channel__leave__size);\n position: absolute;\n right: var(--channel__leave__right);\n top: var(--channel__leave__top);\n width: var(--channel__leave__size);\n}\n\n/* ************************\n** Themes\n** ********************* */\n.pn-channel-list--dark,\n.pn-channel-list--event-dark,\n.pn-channel-list--support-dark {\n --channel-list__background: var(--chat--dark__background--2);\n --channel--hover__background: var(--chat--dark__hover--2);\n --channel--active__background: var(--chat--dark__background--1);\n --channel__name__color: var(--chat--dark__color--1);\n --channel--hover__name__color: var(--chat--dark__color--1);\n --channel--active__name__color: var(--chat--dark__color--1);\n --channel__description__color: var(--chat--dark__color--2);\n --channel--hover__description__color: var(--chat--dark__color--2);\n --channel--active__description__color: var(--chat--dark__color--2);\n --channel__actions__color: var(--chat--dark__color--2);\n --channel__actions--hover__color: var(--chat--dark__hover--1);\n}"),Za('/*\n* Global color variables for light and dark theme\n* Warning! When hexToRGB is used on a color, the variable c
1an only be used with rgba color function\n* inside of the actual CSS. To goal of this is to introduce alpha channels on some of the colors\n*/\n:root {\n --chat--light__background--1: #f0f3f7;\n --chat--light__background--2: #ffffff;\n --chat--light__background--3: #eaeef3;\n --chat--light__background--4: #01bd4c;\n --chat--light__background--5-rgb: 239, 58, 67;\n --chat--light__background--6: rgba(28, 28, 28, 0.8);\n --chat--light__color--1: #585858;\n --chat--light__color--2: #999999;\n --chat--light__color--2-rgb: 153, 153, 153;\n --chat--light__color--3: #eeeeee;\n --chat--light__border--1: #ced6e0;\n --chat--light__border--2: #bcc6d1;\n --chat--light__hover--1: #de2440;\n --chat--light__hover--2: #e4e9f0;\n --chat--light__hover--3: #e9eef4;\n --chat--light__hover--4: #e1e8f0;\n --chat--dark__background--1: #1c1c28;\n --chat--dark__background--2: #2a2a39;\n --chat--dark__background--2-rgb: 42, 42, 57;\n --chat--dark__background--4: #01bd4c;\n --chat--dark__background--5: 239, 58, 67;\n --chat--dark__background--6: rgba(240, 243, 247, 0.8);\n --chat--dark__color--1: rgba(228, 228, 235, 0.8);\n --chat--dark__color--2: #999999;\n --chat--dark__color--3: #111111;\n --chat--dark__border--1: #28293d;\n --chat--dark__hover--1: #de2440;\n --chat--dark__hover--2: #232333;\n --chat--dark__hover--4: #555770;\n --chat--dark__hover--4-rgb: 85, 87, 112;\n}\n\n/*\n* Style elements common to all components\n*/\n:root {\n --tooltip__transition: all 0.3s ease;\n --tooltip__background: var(--chat--light__background--6);\n --tooltip__borderRadius: 5px;\n --tooltip__color: var(--chat--light__color--3);\n --tooltip__margin: 8px;\n --tooltip__padding: 5px;\n --tooltip__minWidth: 100px;\n --tooltip__arrow__size: 4px;\n --tooltip__arrow__margin: 0px;\n}\n\n.pn-tooltip {\n position: relative;\n}\n.pn-tooltip:before, .pn-tooltip:after {\n bottom: 100%;\n left: 50%;\n opacity: 0;\n position: absolute;\n transform: translateX(-50%);\n transition: var(--tooltip__transition);\n visibility: hidden;\n}\n.pn-tooltip:before {\n background: var(--tooltip__background);\n border-radius: var(--tooltip__borderRadius);\n color: var(--tooltip__color);\n content: attr(data-tooltip);\n margin-bottom: var(--tooltip__margin);\n padding: var(--tooltip__padding);\n text-align: center;\n min-width: var(--tooltip__minWidth);\n z-index: 5;\n}\n.pn-tooltip:after {\n border: var(--tooltip__arrow__size) solid;\n margin-bottom: var(--tooltip__arrow__margin);\n border-color: var(--tooltip__background) transparent transparent transparent;\n content: "";\n}\n.pn-tooltip:hover:before, .pn-tooltip:hover:after {\n visibility: visible;\n opacity: 1;\n}\n\n.pn-msg-list--dark .pn-tooltip,\n.pn-msg-list--support-dark .pn-tooltip,\n.pn-msg-list--event-dark .pn-tooltip,\n.pn-msg-input--dark .pn-tooltip,\n.pn-msg-input--event-dark .pn-tooltip,\n.pn-msg-input--support-dark .pn-tooltip,\n.pn-member-list--dark .pn-tooltip,\n.pn-member-list--event-dark .pn-tooltip,\n.pn-member-list--support-dark .pn-tooltip,\n.pn-channel-list--dark .pn-tooltip,\n.pn-channel-list--event-dark .pn-tooltip,\n.pn-channel-list--support-dark .pn-tooltip,\n.pn-typing-indicator--dark .pn-tooltip,\n.pn-typing-indicator--event-dark .pn-tooltip,\n.pn-typing-indicator--support-dark .pn-tooltip {\n --tooltip__background: var(--chat--dark__background--6);\n --tooltip__color: var(--chat--dark__color--3);\n}');var ec,tc=function(e){var t=(0,i.useRef)(),n=(0,i.useRef)();return(0,i.useEffect)(function(){t.current=e}),(0,i.useEffect)(function(){var e=function(e){n.current&&t.current&&!n.current.contains(e.target)&&t.current(e)};return document.addEventListener("click",e),function(){document.removeEventListener("click",e)}},[]),n},nc=function(e,t){var n=(0,i.useState)(null),r=n[0],s=n[1],o=function(e){var t=e[0];s(t)};return(0,i.useEffect)(function(){var n=new IntersectionObserver(o,t);return(null==e?void 0:e.current)&&n.observe(e.current),function(){return n.disconnect()}},[e,JSON.stringify(t)]),r},ic=function(e){var t=(0,i.useState)(),n=t[0],r=t[1],s=function(e){var t=e[0];r(t)};return(0,i.useEffect)(function(){var t=new ResizeObserver(s);return(null==e?void 0:e.current)&&t.observe(e.current),function(){return t.disconnect()}},[e]),n};function rc(){return rc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},rc.apply(this,arguments)}Za("/* ************************\n** Variables\n** ********************* */\n:root {\n --member-list__background: transparent;\n --member__alignItems: center;\n --member__cursor: auto;\n --member__padding: 8px 16px;\n --member__background: transparent;\n --member--hover__background: transparent;\n --member__avatar__color: var(--chat--light__background--2);\n --member__avatar__display: flex;\n --member__avatar__fontSize: 10px;\n --member__avatar__margin: 0 18px 0 0;\n --member__avatar__size: 36px;\n --member__avatar__borderRadius: 36px;\n --member__name__color: var(--chat--light__color--1);\n --member__name__fontSize: 13px;\n --member__name__fontWeight: 400;\n --member__name__margin: 0;\n --member__name__overflow: hidden;\n --member__name__padding: 0;\n --member__name__textOverflow: ellipsis;\n --member__name__whiteSpace: nowrap;\n --member__title__color: var(--chat--light__color--2);\n --member__title__display: block;\n --member__title__fontSize: 11px;\n --member__title__fontWeight: 400;\n --member__title__margin: 0;\n --member__title__overflow: hidden;\n --member__title__padding: 7px 0 0;\n --member__title__textOverflow: ellipsis;\n --member__title__whiteSpace: nowrap;\n --member__presence__border: 3px solid var(--chat--light__background--2);\n --member__presence__borderRadius: 100%;
1\n --member__presence__color: var(--chat--light__background--4);\n --member__presence__left: 48px;\n --member__presence__position: absolute;\n --member__presence__size: 8px;\n --member__presence__top: 34px;\n --member__actions--hover__background: transparent;\n --member__actions__background: transparent;\n --member__actions__borderRadius: 5px;\n --member__actions__color: var(--chat--light__color--2);\n --member__actions--hover__color: var(--chat--light__hover--1);\n --member__actions__fontSize: 18px;\n --member__actions__margin: 0 0 0 4px;\n --member__actions__padding: 3px 5px;\n --member__actions__visibility: hidden;\n}\n\n/* ************************\n** Styles\n** ********************* */\n.pn-member-list {\n height: 100%;\n overflow-y: auto;\n width: 100%;\n background: var(--member-list__background);\n}\n\n.pn-member {\n align-items: var(--member__alignItems);\n background: var(--member__background);\n cursor: var(--member__cursor);\n display: flex;\n padding: var(--member__padding);\n position: relative;\n}\n.pn-member:hover {\n background: var(--member--hover__background);\n}\n.pn-member:hover .pn-member__actions {\n visibility: visible;\n}\n.pn-member__avatar {\n align-items: center;\n border-radius: var(--member__avatar__borderRadius);\n color: var(--member__avatar__color);\n display: var(--member__avatar__display);\n font-size: var(--member__avatar__fontSize);\n flex: none;\n height: var(--member__avatar__size);\n justify-content: center;\n margin: var(--member__avatar__margin);\n width: var(--member__avatar__size);\n}\n.pn-member__avatar img {\n border-radius: var(--member__avatar__borderRadius);\n height: 100%;\n width: 100%;\n}\n.pn-member__main {\n flex: 1;\n min-width: 0;\n}\n.pn-member__name {\n color: var(--member__name__color);\n font-size: var(--member__name__fontSize);\n font-weight: var(--member__name__fontWeight);\n margin: var(--member__name__margin);\n overflow: var(--member__name__overflow);\n padding: var(--member__name__padding);\n text-align: left;\n text-overflow: var(--member__name__textOverflow);\n white-space: var(--member__name__whiteSpace);\n}\n.pn-member__title {\n color: var(--member__title__color);\n display: var(--member__title__display);\n font-size: var(--member__title__fontSize);\n font-weight: var(--member__title__fontWeight);\n margin: var(--member__title__margin);\n overflow: var(--member__title__overflow);\n padding: var(--member__title__padding);\n text-align: left;\n text-overflow: var(--member__title__textOverflow);\n white-space: var(--member__title__whiteSpace);\n}\n.pn-member__presence {\n background: var(--member__presence__c
1olor);\n border: var(--member__presence__border);\n border-radius: var(--member__presence__borderRadius);\n height: var(--member__presence__size);\n left: var(--member__presence__left);\n position: var(--member__presence__position);\n top: var(--member__presence__top);\n width: var(--member__presence__size);\n}\n.pn-member__actions {\n color: var(--member__actions__color);\n cursor: pointer;\n display: flex;\n visibility: var(--member__actions__visibility);\n font-size: var(--member__actions__fontSize);\n}\n.pn-member__actions > * {\n background: var(--member__actions__background);\n border-radius: var(--member__actions__borderRadius);\n display: flex;\n margin: var(--member__actions__margin);\n padding: var(--member__actions__padding);\n}\n.pn-member__actions > *:hover {\n background: var(--member__actions--hover__background);\n color: var(--member__actions--hover__color);\n}\n\n/* ************************\n** Themes\n** ********************* */\n.pn-member-list--dark,\n.pn-member-list--event-dark,\n.pn-member-list--support-dark {\n --member-list__background: var(--chat--dark__background--2);\n --member__avatar__color: var(--chat--dark__background--2);\n --member__name__color: var(--chat--dark__color--1);\n --member__title__color: var(--chat--dark__color--2);\n --member__presence__border: 3px solid var(--chat--dark__background--2);
1\n --member__presence__color: var(--chat--dark__background--4);\n --member__actions__color: var(--chat--dark__color--2);\n --member__actions--hover__color: var(--chat--dark__hover--1);\n}");var sc,oc=function(e){return i.createElement("svg",rc({xmlns:"http://www.w3.org/2000/svg",overflow:"visible",preserveAspectRatio:"none",viewBox:"0 0 24 24",width:20,height:20},e),ec||(ec=i.createElement("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z",fill:"currentColor",vectorEffect:"non-scaling-stroke"})))};function ac(){return ac=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},ac.apply(this,arguments)}var cc,dc=function(e){return i.createElement("svg",ac({xmlns:"http://www.w3.org/2000/svg",width:20,height:20,viewBox:"0 0 100 100",preserveAspectRatio:"xMidYMid"},e),sc||(sc=i.createElement("circle",{cx:50,cy:50,fill:"none",stroke:"currentColor",strokeWidth:15,r:43,strokeDasharray:"117.80972450961724 41.269908169872416"},i.createElement("animateTransform",{attributeName:"transform",type:"rotate",repeatCount:"indefinite",dur:"0.641025641025641s",values:"0 50 50;360 50 50",keyTimes:"0;1"}))))};function lc(){return lc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},lc.apply(this,arguments)}var uc,hc;function pc(){return pc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},pc.apply(this,arguments)}Za("/* ************************\n** Variables\n** ********************* */\n:root {\n --msg-input__background: var(--chat--light__background--1);\n --msg-input__padding: 10px 9px;\n --msg-input__emoji-picker__bottom: 16px;\n --msg-input__emoji-picker__left: 16px;\n --msg-input__emoji-picker__right: 95px;\n --msg-input__icon__background: none;\n --msg-input__icon__border: none;\n --msg-input__icon__color: var(--chat--light__color--2);\n --msg-input__icon__fontSize: 13px;
1\n --msg-input__icon__margin: 0 9px;\n --msg-input__icon__padding: 0;\n --msg-input__send__background: transparent;\n --msg-input__send__border: none;\n --msg-input__send__borderRadius: 5px;\n --msg-input__send__color: var(--chat--light__color--2);\n --msg-input__send--active__color: var(--chat--light__hover--1);\n --msg-input__send__fontFamily: inherit;\n --msg-input__send__fontSize: 13px;\n --msg-input__send__fontWeight: bold;\n --msg-input__send__margin: 0 9px;\n --msg-input__send__minWidth: 0;\n --msg-input__send__padding: 0;\n --msg-input__file-preview-container__margin: 0 0 8px 10px;\n --msg-input--disabled__placeholder__color: rgba(var(--chat--light__color--2-rgb), 0.5);\n --msg-input__placeholder__color: var(--chat--light__color--2);\n --msg-input__textarea--focus__border: 1px solid transparent;\n --msg-input__textarea--focus__outline: none;\n --msg-input__textarea__background: var(--chat--light__hover--2);\n --msg-input--disabled__textarea__background: var(--chat--light__background--3);\n --msg-input__textarea__border: 1px solid transparent;\n --msg-input--disabled__textarea__border: 1px solid transparent;\n --msg-input__textarea__borderRadius: 20px;\n --msg-input__textarea__boxShadow: none;\n --msg-input__textarea__color: var(--chat--light__color--1);\n --msg-input__textarea__fontFamily: inherit;\n --msg-input__textarea__fontSize: 13px;
1\n --msg-input__textarea__height: 32px;\n --msg-input__textarea__lineHeight: 18px;\n --msg-input__textarea__outline: none;\n --msg-input__textarea__padding: 6px 14px 8px;\n --msg-input__textarea__margin: 0 9px;\n --msg-input__textarea__resize: none;\n --msg-input__textarea__width: 100%;\n --msg-input__textarea__overflow: hidden;\n --msg__preview__color: var(--chat--light__color--1);\n --msg__preview__fontSize: 14px;\n}\n\n/* ************************\n** Styles\n** ********************* */\n.pn-msg-input {\n background: var(--msg-input__background);\n padding: var(--msg-input__padding);\n}\n.pn-msg-input__wrapper {\n align-items: center;\n display: flex;\n position: relative;\n}\n.pn-msg-input__textarea {\n background: var(--msg-input__textarea__background);\n border-radius: var(--msg-input__textarea__borderRadius);\n border: var(--msg-input__textarea__border);\n box-shadow: var(--msg-input__textarea__boxShadow);\n box-sizing: border-box;\n color: var(--msg-input__textarea__color);\n font-family: var(--msg-input__textarea__fontFamily);\n font-size: var(--msg-input__textarea__fontSize);\n height: var(--msg-input__textarea__height);\n line-height: var(--msg-input__textarea__lineHeight);\n margin: var(--msg-input__textarea__margin);\n outline: var(--msg-input__textarea__outline);\n overflow: var(--msg-input__textarea__overflow);\n padding: var(--msg-input__textarea__padding);\n resize: var(--msg-input__textarea__resize);\n width: var(--msg-input__textarea__width);\n}\n.pn-msg-input__textarea:focus-within {\n outline: var(--msg-input__textarea--focus__outline);\n border: var(--msg-input__textarea--focus__border);\n}\n.pn-msg-input__textarea::placeholder {\n color: var(--msg-input__placeholder__color);\n}\n.pn-msg-input__send {\n background: var(--msg-input__send__background);\n border-radius: var(--msg-input__send__borderRadius);\n border: var(--msg-input__send__border);\n color: var(--msg-input__send__color);\n cursor: pointer;\n flex-shrink: 0;\n font-family: var(--msg-input__send__fontFamily);\n font-size: var(--msg-input__send__fontSize);\n font-weight: var(--msg-input__send__fontWeight);\n margin: var(--msg-input__send__margin);\n min-width: var(--msg-input__send__minWidth);\n padding: var(--msg-input__send__padding);\n white-space: nowrap;\n}\n.pn-msg-input__send--active {\n color: var(--msg-input__send--active__color);\n}\n.pn-msg-input__file-preview-container {\n margin: var(--msg-input__file-preview-container__margin);\n color: var(--msg__preview__color);\n font-size: var(--msg__preview__fontSize);\n}\n.pn-msg-input__emoji-picker {\n bottom: var(--msg-input__emoji-picker__bottom);\n left: var(--msg-input__emoji-picker__left);\n right: var(--msg-input__emoji-picker__right);\n position: absolute;\n}\n.pn-msg-input__icons {\n align-items: center;\n display: flex;\n}\n.pn-msg-input__icons button {\n background: var(--msg-input__icon__background);\n border: var(--msg-input__icon__border);\n color: var(--msg-input__icon__color);\n cursor: pointer;\n font-size: var(--msg-input__icon__fontSize);\n margin: var(--msg-input__icon__margin);\n padding: var(--msg-input__icon__padding);\n}\n.pn-msg-input__fileLabel {\n cursor: pointer;\n}\n.pn-msg-input__fileInput {\n display: none;\n}\n\n.pn-msg-input--disabled .pn-msg-input__textarea {\n background: var(--msg-input--disabled__textarea__background);\n border: var(--msg-input--disabled__textarea__border);\n cursor: not-allowed;\n}\n.pn-msg-input--disabled .pn-msg-input__textarea::placeholder {\n color: var(--msg-input--disabled__placeholder__color);\n}\n\n/* ************************\n** Themes\n** ********************* */\n.pn-msg-input--dark,\n.pn-msg-input--event-dark,\n.pn-msg-input--support-dark {\n --msg-input__background: var(--chat--dark__background--1);\n --msg-input__icon__color: var(--chat--dark__color--2);\n --msg-input__send__color: var(--chat--dark__color--2);\n --msg-input__send--active__color: var(--chat--dark__hover--1);\n --msg-input--disabled__placeholder__color: rgba(var(--chat--dark__hover--4-rgb), 0.5);
1\n --msg-input__placeholder__color: var(--chat--dark__hover--4);\n --msg-input__textarea__background: var(--chat--dark__background--2);\n --msg-input--disabled__textarea__background: rgba(var(--chat--dark__background--2-rgb), 0.5);\n --msg-input__textarea__color: var(--chat--dark__color--1);\n --msg__preview__color: var(--chat--dark__color--1);\n}"),i.createElement(function(e){return i.createElement("svg",lc({xmlns:"http://www.w3.org/2000/svg",overflow:"visible",preserveAspectRatio:"none",viewBox:"0 0 24 24",width:20,height:20},e),cc||(cc=i.createElement("path",{fill:"currentColor",vectorEffect:"non-scaling-stroke",d:"m2 21 21-9L2 3v7l15 2-15 2z"})))},null);var mc,gc,fc=function(e){return i.createElement("svg",pc({xmlns:"http://www.w3.org/2000/svg",height:16,viewBox:"0 0 24 24",width:16,fill:"currentColor"},e),uc||(uc=i.createElement("path",{d:"M0 0h24v24H0V0z",fill:"none"})),hc||(hc=i.createElement("path",{d:"m20 12-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z"})))};function vc(){return vc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},vc.apply(this,arguments)}var bc=function(e){return i.createElement("svg",vc({xmlns:"http://www.w3.org/2000/svg",height:20,viewBox:"0 0 24 24",width:20,fill:"currentColor"},e),mc||(mc=i.createElement("path",{fill:"none",d:"M0 0h24v24H0z"})),gc||(gc=i.createElement("path",{d:"M18 15v3H6v-3H4v3c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-3h-2zm-1-4-1.41-1.41L13 12.17V4h-2v8.17L8.41 9.59 7 11l5 5 5-5z"})))},_c=i.memo(function(e){var t,n=e.addReaction,r=e.emojiPickerShown,s=e.envelope,o=e.getTime,a=e.getUser,c=e.handleOpenReactions,d=e.isOwnMessage,l=e.listProps,u=e.pubnub,h=e.reactingToMessage,p=e.removeReaction,m=e.scrollToBottom,g=e.scrolledBottom,f=e.setEmojiPickerShown,v=e.users,b=l.bubbleRenderer,_=l.enableReactions,y=l.extraActionsRenderer,k=l.fileRenderer,S=l.filter,T=l.messageRenderer,C=l.reactionsPicker,w=s.actions;if(!Object.keys((null==w?void 0:w.deleted)||{}).length){var E=s.uuid||s.publisher||"",P=d(E)?"pn-msg--own":"",R=Es(s.message)?s.message.message:s.message,I=o(s.timetoken),O=d(E),x=(null==R?void 0:R.sender)||a(E),A=Es(s.message)&&s.message.file,D=(Object.entries((null==w?void 0:w.updated)||{}).pop()||[]).shift(),N=null===(t=s.actions)||void 0===t?void 0:t.reaction;return i.createElement("div",{className:"pn-msg ".concat(P),key:s.timetoken},!T||S&&!S(s)?i.createElement(i.Fragment,null,i.createElement("div",{className:"pn-msg__avatar",style:{backgroundColor:Cs(E)}},(null==x?void 0:x.profileUrl)?i.createElement("img",{src:x.profileUrl,alt:"User avatar"}):Ts((null==x?void 0:x.name)||E)),i.createElement("div",{className:"pn-msg__main"},i.createElement("div",{className:"pn-msg__content"},i.createElement("div",{className:"pn-msg__title"},i.createElement("span",{className:"pn-msg__author"},(null==x?void 0:x.name)||E),i.createElement("span",{className:"pn-msg__time"},I)),(null==R?void 0:R.text)&&(!b||S&&!S(s)?i.createElement("div",{className:"pn-msg__bubble"},D||(null==R?void 0:R.text)):b({message:s,user:x,time:I,isOwn:O,editedText:D}))),i.createElement("div",{className:"pn-msg__extras"},A&&A.name?k?k(A):i.createElement("div",{className:"pn-msg__file"},/\.(svg|gif|jpe?g|tiff?|png|webp|bmp)$/i.test(A.name)?i.createElement("img",{alt:A.name,className:"pn-msg__image",src:A.url,onLoad:function(){g&&m()}}):i.createElement("div",{className:"pn-msg__bubble"},i.createElement("a",{className:"pn-msg__nonImage",href:A.url,target:"_blank",rel:"noopener noreferrer",download:!0},A.name,i.createElement(bc,{className:"pn-msg__downloadIcon"})))):null,_&&N?i.createElement("div",{className:"pn-msg__reactions"},Object.entries(N).sort(function(e,t){var n=e[1];return t[1].length-n.length}).map(function(e){var t=e[0],r=e[1],o=r.slice(0,99),a=r.length-o.length,c=null==r?void 0:r.find(function(e){return e.uuid===u.getUUID()}),d=o.map(function(e){var t=v.find(function(t){return t.id===e.uuid});return t?t.name:e.uuid}),l="\n ".concat(d.join(", "),"\n ").concat(a?"and ".concat(a," more"):"","\n ");return i.createElement("div",{className:"pn-tooltip pn-msg__reaction ".concat(c?"pn-msg__reaction--active":""),key:t,"data-tooltip":l,onClick:function(){c?p(t,s.timetoken,c.actionTimetoken):n(t,s.timetoken)}},t," ",o.length,a?"+":"")})):null))):T({message:s,user:x,time:I,isOwn:O,editedText:D}),i.createElement("div",{className:"pn-msg__actions"},y&&y(s),C&&"welcome"!==(null==R?void 0:R.type)?i.createElement("div",{className:"pn-msg__reactions-toggle",title:"Add a reaction",onClick:function(e){r&&h===s.timetoken?f(!1):c(e,s.timetoken)}},i.createElement(oc,null)):null))}},function(e,t){return e.envelope.timetoken===t.envelope.timetoken&&!!$a(e.envelope.actions,t.envelope.actions)&&!!$a(e.users,t.users)});Za('/* ************************\n** Variables\n** ********************* */\n:root {\n --msg-list__background: var(--chat--light__background--1);
1\n --msg-list__padding: 0;\n --msg-list__unread__background: var(--chat--light__color--2);\n --msg-list__unread__borderRadius: 20px;\n --msg-list__unread__color: var(--chat--light__background--2);\n --msg-list__unread__fontSize: 13px;\n --msg-list__unread__fontWeight: 400;\n --msg-list__unread__padding: 8px 16px;\n --msg-list__unread__offset: 20px;\n --msg-list__spinner__color: var(--chat--light__color--2);\n --msg-list__spinner__margin: 10px auto;\n --msg--hover__background: var(--chat--light__hover--3);\n --msg__alignItems: flex-start;\n --msg__flexDirection: row;\n --msg__height: auto;\n --msg__padding: 10px 16px;\n --msg__actions--hover__background: transparent;\n --msg__actions--hover__color: var(--chat--light__hover--1);\n --msg__actions--hover__border: 1px solid var(--chat--light__border--1);\n --msg__actions__background: transparent;\n --msg__actions__border: 1px solid var(--chat--light__border--1);\n --msg__actions__borderRadius: 15px;\n --msg__actions__color: var(--chat--light__color--2);\n --msg__actions__fontSize: 22px;\n --msg__actions__margin: 0 0 0 4px;
1\n --msg__actions__padding: 0 7px;\n --msg__actions__right: 10px;\n --msg__actions__top: 10px;\n --msg__author__color: var(--chat--light__color--1);\n --msg__author__fontSize: 15px;\n --msg__author__fontWeight: 500;\n --msg__author__padding: 0;\n --msg__avatar__display: flex;\n --msg__avatar__fontSize: 10px;\n --msg__avatar__margin: 2px 18px 0 0;\n --msg__avatar__size: 36px;\n --msg__avatar__borderRadius: 36px;\n --msg__bubble__background: transparent;\n --msg__bubble__boxShadow: none;\n --msg__bubble__borderRadius: 0;\n --msg__bubble__color: var(--chat--light__color--1);\n --msg__bubble__fontSize: 13px;\n --msg__bubble__fontWeight: 400;\n --msg__bubble__margin: 0;\n --msg__bubble__padding: 0;\n --msg__content__alignItems: flex-start;\n --msg__content__flexDirection: column;\n --msg__content__margin: 0;\n --msg__image__borderRadius: 10px;\n --msg__image__margin: 15px 0 0;\n --msg__link__margin: 10px 0 0;\n --msg__link__padding: 20px;\n --msg__link-description__color: var(--chat--light__color--2);\n --msg__link-thumb__maxWidth: 210px;\n --msg__link-title__color: var(--chat--light__color--1);\n --msg__main__alignItems: flex-start;\n --msg__main__flexDirection: column;
1\n --msg__main__margin: 0;\n --msg__main__maxWidth: 60%;\n --msg__time__display: block;\n --msg__time__color: var(--chat--light__color--1);\n --msg__time__fontSize: 11px;\n --msg__time__fontWeight: 300;\n --msg__time__padding: 0 10px;\n --msg__title__alignItems: baseline;\n --msg__title__display: flex;\n --msg__title__flexDirection: row;\n --msg__title__margin: 0 0 10px;\n --msg__reaction--hover__background: var(--chat--light__hover--4);\n --msg__reaction--hover__border: 1px solid var(--chat--light__border--2);\n --msg__reaction--active__background: rgba(var(--chat--light__background--5-rgb), 0.2);\n --msg__reaction--active__border: 1px solid transparent;\n --msg__reaction--active--hover__background: rgba(var(--chat--light__background--5-rgb), 0.24);\n --msg__reaction--active--hover__border: 1px solid rgba(var(--chat--light__background--5-rgb), 0.4);\n --msg__reaction__background: transparent;\n --msg__reaction__border: 1px solid var(--chat--light__border--1);\n --msg__reaction__borderRadius: 15px;\n --msg__reaction__margin: 10px 5px 0 0;\n --msg__reaction__padding: 0 7px 0 3px;\n --msg__reaction__wordSpacing: 2px;\n}\n\n/* ************************\n** Styles\n** ********************* */\n.pn-msg-list {\n background: var(--msg-list__background);\n height: 100%;\n overflow: hidden;\n padding: var(--msg-list__padding);\n position: relative;\n width: 100%;\n}\n.pn-msg-list-scroller {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: auto;\n overscroll-behavior-y: contain;\n position: relative;\n transform: translateZ(0);\n width: 100%;\n}\n.pn-msg-list__spinner {\n text-align: center;\n}\n.pn-msg-list__spinner svg {\n color: var(--msg-list__spinner__color);\n margin: var(--msg-list__spinner__margin);\n}\n.pn-msg-list__unread {\n background: var(--msg-list__unread__background);\n border-radius: var(--msg-list__unread__borderRadius);\n color: var(--msg-list__unread__color);\n cursor: pointer;\n font-size: var(--msg-list__unread__fontSize);\n font-weight: var(--msg-list__unread__fontWeight);\n left: 50%;\n padding: var(--msg-list__unread__padding);\n position: absolute;\n top: var(--msg-list__unread__offset);\n transform: translateX(-50%);\n z-index: 5;\n}\n.pn-msg-list__unread svg {\n vertical-align: bottom;\n}\n.pn-msg-list__bottom-ref {\n position: relative;\n height: auto;\n}\n.pn-msg-list__bottom-ref > div {\n position: absolute;\n bottom: 0;\n height: 30px;\n width: 100%;\n z-index: -1;\n}\n.pn-msg-list__spacer {\n flex: 1 1 auto;\n}\n.pn-msg-list__emoji-picker {\n position: absolute;\n right: 50px;\n z-index: 10;\n}\n.pn-msg-list__emoji-picker-hidden {\n pointer-events: none;\n visibility: hidden;\n}\n\n.pn-msg {\n align-items: var(--msg__alignItems);\n display: flex;\n flex-direction: var(--msg__flexDirection);\n height: var(--msg__height);\n padding: var(--msg__padding);\n position: relative;\n}\n.pn-msg:hover {\n background: var(--msg--hover__background);\n}\n.pn-msg:hover .pn-msg__actions {\n display: flex;\n}\n.pn-msg__actions {\n color: var(--msg__actions__color);\n cursor: pointer;\n display: none;\n font-size: var(--msg__actions__fontSize);\n position: absolute;\n right: var(--msg__actions__right);\n top: var(--msg__actions__top);\n}\n.pn-msg__actions > * {\n background: var(--msg__actions__background);\n border: var(--msg__actions__border);\n border-radius: var(--msg__actions__borderRadius);\n display: flex;\n margin: var(--msg__actions__margin);\n padding: var(--msg__actions__padding);\n}\n.pn-msg__actions > *:hover {\n background: var(--msg__actions--hover__background);\n border: var(--msg__actions--hover__border);\n color: var(--msg__actions--hover__color);\n}\n.pn-msg__main {\n align-items: var(--msg__main__alignItems);\n display: flex;\n flex-direction: var(--msg__main__flexDirection);\n padding: var(--msg__main__margin);\n max-width: var(--msg__main__maxWidth);\n}\n.pn-msg__content {\n align-items: var(--msg__content__alignItems);\n display: flex;\n flex-direction: var(--msg__content__flexDirection);\n padding: var(--msg__content__margin);\n}\n.pn-msg__title {\n align-items: var(--msg__title__alignItems);\n display: var(--msg__title__display);\n flex-direction: var(--msg__title__flexDirection);\n margin: var(--msg__title__margin);\n}\n.pn-msg__bubble {\n background: var(--msg__bubble__background);\n box-shadow: var(--msg__bubble__boxShadow);\n border-radius: var(--msg__bubble__borderRadius);\n color: var(--msg__bubble__color);\n display: inline-block;\n font-size: var(--msg__bubble__fontSize);\n font-weight: var(--msg__bubble__fontWeight);\n margin: var(--msg__bubble__margin);\n padding: var(--msg__bubble__padding);\n word-break: break-word;\n}\n.pn-msg__author {\n color: var(--msg__author__color);\n font-size: var(--msg__author__fontSize);\n font-weight: var(--msg__author__fontWeight);\n padding: var(--msg__author__padding);\n}\n.pn-msg__time {\n display: var(--msg__time__display);\n color: var(--msg__time__color);\n font-size: var(--msg__time__fontSize);\n font-weight: var(--msg__time__fontWeight);\n padding: var(--msg__time__padding);\n}\n.pn-msg__avatar {\n align-items: center;\n border-radius: var(--msg__avatar__borderRadius);\n color: var(--msg-list__background);\n display: var(--msg__avatar__display);\n flex: none;\n font-size: var(--msg__avatar__fontSize);\n height: var(--msg__avatar__size);\n justify-content: center;\n margin: var(--msg__avatar__margin);\n width: var(--msg__avatar__size);\n}\n.pn-msg__avatar img {\n border-radius: var(--msg__avatar__borderRadius);\n height: 100%;\n width: 100%;\n}\n.pn-msg__reaction {\n background: var(--msg__reaction__background);\n border: var(--msg__reaction__border);\n border-radius: var(--msg__reaction__borderRadius);\n color: var(--msg__bubble__color);\n cursor: pointer;\n display: inline-block;\n font-size: var(--msg__bubble__fontSize);\n font-weight: var(--msg__bubble__fontWeight);\n margin: var(--msg__reaction__margin);\n padding: var(--msg__reaction__padding);\n word-spacing: var(--msg__reaction__wordSpacing);\n}\n.pn-msg__reaction:hover {\n background: var(--msg__reaction--hover__background);\n border: var(--msg__reaction--hover__border);\n}\n.pn-msg__reaction--active {\n background: var(--msg__reaction--active__background);\n border: var(--msg__reaction--active__border);\n}\n.pn-msg__reaction--active:hover {\n background: var(--msg__reaction--active--hover__background);\n border: var(--msg__reaction--active--hover__border);\n}\n.pn-msg__image {\n border-radius: var(--msg__image__borderRadius);\n box-shadow: var(--msg__bubble__boxShadow);\n margin: var(--msg__image__margin);\n max-width: 100%;\n}\n.pn-msg__link {\n background: var(--msg__bubble__background);\n border-radius: var(--msg__bubble__borderRadius);\n box-shadow: var(--msg__bubble__boxShadow);\n color: var(--msg__bubble__color);\n display: flex;\n font-size: var(--msg__bubble__fontSize);\n font-weight: var(--msg__bubble__fontWeight);\n margin: var(--msg__link__margin);\n overflow: hidden;\n text-decoration: none;\n}\n.pn-msg__link img {\n max-width: var(--msg__link-thumb__maxWidth);\n}\n.pn-msg__link > div {\n padding: var(--msg__link__padding);\n}\n.pn-msg__link-name {\n font-size: 15px;\n font-weight: 500;\n margin: 0;\n}\n.pn-msg__link-name img {\n margin-right: 10px;\n max-height: 16px;\n max-width: 16px;\n vertical-align: bottom;\n}\n.pn-msg__link-title {\n color: var(--msg__link-title__color);\n font-weight: 500;\n margin: 2px 0;\n}\n.pn-msg__link-description {\n color: var(--msg__link-description__color);\n margin: 0;\n}\n.pn-msg__nonImage {\n color: var(--msg__bubble__color);\n}\n.pn-msg__downloadIcon {\n color: var(--msg__bubble__color);\n margin: 0 0 0 8px;\n vertical-align: middle;\n}\n\n/* ************************\n** Themes\n** ********************* */\n.pn-msg-list--dark,\n.pn-msg-list--support-dark,\n.pn-msg-list--event-dark {\n --msg-list__background: var(--chat--dark__background--1);
1\n --msg-list__unread__background: var(--chat--dark__color--2);\n --msg-list__unread__color: var(--chat--dark__background--2);\n --msg-list__spinner__color: var(--chat--dark__color--2);\n --msg--hover__background: var(--chat--dark__border--1);\n --msg__actions--hover__color: var(--chat--dark__hover--1);\n --msg__actions--hover__border: 1px solid var(--chat--dark__background--1);\n --msg__actions--hover__background: var(--chat--dark__background--1);\n --msg__actions__background: var(--chat--dark__background--1);\n --msg__actions__border: 1px solid var(--chat--dark__background--1);\n --msg__actions__color: var(--chat--dark__color--2);\n --msg__author__color: var(--chat--dark__color--1);\n --msg__bubble__color: var(--chat--dark__color--1);\n --msg__link-description__color: var(--chat--dark__color--2);\n --msg__link-title__color: var(--chat--dark__color--1);\n --msg__time__color: var(--chat--dark__color--1);\n --msg__reaction--hover__background: rgba(var(--chat--dark__hover--4-rgb), 0.3);\n --msg__reaction--hover__border: 1px solid var(--chat--dark__hover--4);\n --msg__reaction--active__background: rgba(var(--chat--dark__background--5), 0.3);\n --msg__reaction--active--hover__background: rgba(var(--chat--dark__background--5), 0.4);\n --msg__reaction--active--hover__border: 1px solid rgba(var(--chat--dark__background--5), 0.4);\n --msg__reaction__background: var(--chat--dark__background--1);\n --msg__reaction__border: 1px solid var(--chat--dark__border--1);\n}\n\n.pn-msg-list--support,\n.pn-msg-list--support-dark {\n --msg__title__display: none;\n}\n.pn-msg-list--support .pn-msg--own,\n.pn-msg-list--support-dark .pn-msg--own {\n --msg__flexDirection: row-reverse;\n --msg__avatar__display: none;\n}\n\n.pn-msg-list--event,\n.pn-msg-list--event-dark {\n --msg__alignItems: flex-start;\n --msg__actions__top: 0;
1\n --msg__author__fontSize: 13px;\n --msg__avatar__display: none;\n --msg__bubble__background: transparent;\n --msg__bubble__padding: 0;\n --msg__content__alignItems: center;\n --msg__content__flexDirection: row;\n --msg__main__alignItems: baseline;\n --msg__main__flexDirection: column;\n --msg__main__maxWidth: 100%;\n --msg__padding: 7px 12px;\n --msg__time__display: none;\n --msg__title__margin: 0 6px 0 0;\n}\n.pn-msg-list--event .pn-msg__author:after,\n.pn-msg-list--event-dark .pn-msg__author:after {\n content: ":";\n}');var yc=function(e){var t,n,s,o,a=function(e){var t=(0,r.wP)(),n=O(U)[0],s=ws(n),o=O(V)[0],a=I(Q),c=O(j)[0],d=O(G)[0],l=O(K)[0],u=O(Y),h=u[0],p=u[1],m=ws(h),g=O(X),f=g[0],v=g[1],b=d.function,_=l.function,y=(0,i.useState)(!0),k=y[0],S=y[1],T=(0,i.useState)(0),C=T[0],w=T[1],E=(0,i.useState)(!1),P=E[0],R=E[1],x=(0,i.useState)(null),D=x[0],F=x[1],B=(0,i.useState)(!1),q=B[0],z=B[1],W=(0,i.useState)({}),H=W[0],J=W[1],$=(0,i.useCallback)(function(e){if(!Es(e.message))return e;try{var n=t.getFileUrl({channel:e.channel,id:e.message.file.id,name:e.message.file.name});e.message.file.url=n}catch(e){_(e)}finally{return e}},[t,_]),Z=(0,i.useCallback)(function(){return N(void 0,void 0,void 0,function(){var i,r,s,c,d,l;return M(this,function(u){switch(u.label){case 0:if(!e.fetchMessages||f)return[2];R(!0),u.label=1;case 1:return u.trys.push([1,3,4,5]),i={channels:[n],count:e.fetchMessages,start:(null===(l=null==h?void 0:h[0])||void 0===l?void 0:l.timetoken)||void 0,includeMessageActions:!0,includeMeta:!0},[4,b(function(){return t.fetchMessages(i)})];case 2:return r=u.sent(),s=((null==r?void 0:r.channels[n])||[]).map(function(e){var t;o.find(function(t){return t.id===e.uuid})||a(e.uuid);var n=null===(t=e.actions)||void 0===t?void 0:t.reaction;return n&&Object.values(n).flat().forEach(function(e){o.find(function(t){return t.id===e.uuid})||a(e.uuid)}),4===e.messageType?$(e):e}),c=L(L([],h,!0),s,!0).sort(function(e,t){return e.timetoken-t.timetoken}),p(c),v(!(r.more||c.length&&s.length===e.fetchMessages)),[3,5];case 3:return d=u.sent(),_(d),[3,5];case 4:return R(!1),[7];case 5:return[2]}})})},[n,$,h,_,f,e.fetchMessages,t,a,b,p,v,o]);return(0,i.useEffect)(function(){t&&n&&n!==s&&(H[n]||Z().then(function(){J(function(e){var t;return A(A({},e),((t={})[n]=!0,t))})}))},[n,Z,H,h.length,s,t]),(0,i.useEffect)(function(){var e,t;(null==h?void 0:h.length)&&!k&&h.length-m.length===1&&Number(null===(e=h.slice(-1)[0])||void 0===e?void 0:e.timetoken)>Number(null===(t=m.slice(-1)[0])||void 0===t?void 0:t.timetoken)&&w(function(e){return e+1})},[h,m,k]),{addReaction:function(e,i){return N(void 0,void 0,void 0,function(){var r;return M(this,function(s){switch(s.label){case 0:return s.trys.push([0,2,,3]),[4,t.addMessageAction({channel:n,messageTimetoken:String(i),action:{type:"reaction",value:e}})];case 1:return s.sent(),[3,3];case 2:return r=s.sent(),_(r),[3,3];case 3:return[2]}})})},channel:n,emojiPickerShown:q,fetchHistory:Z,fetchingMessages:P,getTime:function(e){var t=String(e);return new Date(parseInt(t)/1e4).toLocaleTimeString([],{timeStyle:"short"})},getUser:function(e){return o.find(function(t){return t.id===e})},isOwnMessage:function(e){return t.getUUID()===e},messages:h,onError:_,paginationEnd:f,prevChannel:s,prevMessages:m,pubnub:t,reactingToMessage:D,removeReaction:function(e,i,r){return N(void 0,void 0,void 0,function(){var e;return M(this,function(s){switch(s.label){case 0:return s.trys.push([0,2,,3]),[4,t.removeMessageAction({channel:n,messageTimetoken:i,actionTimetoken:r})];case 1:return s.sent(),[3,3];case 2:return e=s.sent(),_(e),[3,3];case 3:return[2]}})})},scrolledBottom:k,setEmojiPickerShown:z,setReactingToMessage:F,setScrolledBottom:S,setUnreadMessages:w,theme:c,unreadMessages:C,users:o,initMessagesLoaded:H}}(e),c=a.addReaction,d=a.channel,l=a.emojiPickerShown,u=a.fetchHistory,h=a.fetchingMessages,p=a.getTime,m=a.getUser,g=a.isOwnMessage,f=a.messages,v=a.onError,b=a.paginationEnd,_=a.prevChannel,y=a.prevMessages,k=a.pubnub,S=a.reactingToMessage,T=a.removeReaction,C=a.scrolledBottom,w=a.setEmojiPickerShown,E=a.setReactingToMessage,P=a.setScrolledBottom,R=a.setUnreadMessages,x=a.theme,D=a.unreadMessages,F=a.users,B=a.initMessagesLoaded,q=Object.keys((null===(n=null===(t=f.slice(-1)[0])||void 0===t?void 0:t.actions)||void 0===n?void 0:n.reaction)||{}),z=ws(q),W=(0,i.useRef)(null),H=(0,i.useRef)(null),J=(0,i.useRef)(null),$=tc(function(e){e.target.closest(".pn-msg__reactions-toggle")||($.current&&($.current.style.top="0px"),w(!1))}),Z=null===(s=nc(J))||void 0===s?void 0:s.isIntersecting,ee=ws(Z),te=null===(o=nc(W))||void 0===o?void 0:o.isIntersecting,ne=function(e,t){var n=(0,i.useState)(),r=n[0],s=n[1],o=function(e){var t=e[0];s(t)};return(0,i.useEffect)(function(){var n=new MutationObserver(o);return(null==e?void 0:e.current)&&n.observe(e.current,t),function(){return n.disconnect()}},[e,JSON.stringify(t)]),r}
1(H,{childList:!0}),ie=ic(H),re=e.welcomeMessages&&(Array.isArray(e.welcomeMessages)?e.welcomeMessages:[e.welcomeMessages]),se=(0,i.useCallback)(function(){H.current&&H.current.scroll&&(P(!0),H.current.scroll({top:H.current.scrollHeight}))},[P]);(0,i.useEffect)(function(){Z&&!ee&&B[d]&&!h&&function(){var e,t,n;N(this,void 0,void 0,function(){var i;return M(this,function(r){switch(r.label){case 0:return i=null===(e=H.current)||void 0===e?void 0:e.querySelector(".pn-msg"),[4,u()];case 1:return r.sent(),i&&(null===(t=H.current)||void 0===t?void 0:t.scroll)&&(null===(n=H.current)||void 0===n||n.scroll({top:i.offsetTop})),[2]}})})}()},[u,Z,ee,B,d,h]),(0,i.useEffect)(function(){te&&R(0),P(te)},[te,P,R]),(0,i.useEffect)(function(){var e;C&&(null===(e=null==ne?void 0:ne.addedNodes)||void 0===e?void 0:e.length)&&se()},[ne,se,C]),(0,i.useEffect)(function(){C&&ie&&se()},[ie,se,C]),(0,i.useEffect)(function(){C&&(y.length!==f.length&&se(),_!==d&&se(),q.length!==z.length&&se())},[d,q.length,f.length,_,z.length,y.length,se,C]);var oe={addReaction:c,emojiPickerShown:l,getTime:p,getUser:m,handleOpenReactions:function(e,t){try{var n=$.current,i=H.current,r=i.getBoundingClientRect(),s=e.target.getBoundingClientRect(),o=i.scrollTop-r.top+s.y;o+n.offsetHeight>i.scrollHeight&&(o+=s.height,o-=n.offsetHeight),n.style.top="".concat(o,"px"),E(t),w(!0)}catch(e){v(e)}},isOwnMessage:g,listProps:{bubbleRenderer:e.bubbleRenderer,enableReactions:e.enableReactions,extraActionsRenderer:e.extraActionsRenderer,fileRenderer:e.fileRenderer,filter:e.filter,messageRenderer:e.messageRenderer,reactionsPicker:e.reactionsPicker},pubnub:k,reactingToMessage:S,removeReaction:T,scrollToBottom:se,scrolledBottom:C,setEmojiPickerShown:w,users:F};return i.createElement("div",{className:"pn-msg-list pn-msg-list--".concat(x)},D>0&&i.createElement("div",{className:"pn-msg-list__unread",onClick:function(){return se()}},D," new message",D>1?"s":""," ",i.createElement(fc,null)),i.createElement("div",{className:"pn-msg-list-scroller",onScroll:e.onScroll,ref:H},i.createElement("span",{ref:J,className:"pn-msg-list__spinner"},!!e.fetchMessages&&!b&&i.createElement(dc,null)),i.createElement("div",{className:"pn-msg-list__spacer"}),(!e.fetchMessages||!h&&!f.length)&&re&&re.map(function(e){return i.createElement(_c,A({key:e.timetoken,envelope:e},oe))}),f&&f.map(function(e){return i.createElement(_c,A({key:e.timetoken,envelope:e},oe))}),e.children,i.createElement("div",{className:"pn-msg-list__bottom-ref"},i.createElement("div",{ref:W})),e.reactionsPicker&&i.createElement("div",{className:"pn-msg-list__emoji-picker ".concat(!l&&"pn-msg-list__emoji-picker-hidden"),ref:$},(0,i.cloneElement)(e.reactionsPicker,{onEmojiSelect:function(e){try{if(!("native"in e))return;c(e.native,S),w(!1)}catch(e){v(e)}}}))))};yc.defaultProps={enableReactions:!1,fetchMessages:0},Za("/* ************************\n** Variables\n** ********************* */\n:root {\n --typing-indicator__background: var(--chat--light__background--1);\n --typing-indicator__color: var(--chat--light__color--1);\n --typing-indicator__display: inline-block;\n --typing-indicator__fontSize: 11px;\n --typing-indicator__fontWeight: 300;\n --typing-indicator__padding: 8px 24px;\n --typing-indicator__dot__fontSize: 8px;\n --typing-indicator__dot__margin: 0 3px 0 0;\n --typing-indicator__dot__animationTravel: -12px;\n --typing-indicator__dot__animationDuration: 1.3s;\n --typing-indicator__dot__animationTimeout1: -1.1s;\n --typing-indicator__dot__animationTimeout2: -0.9s;\n}\n\n/* ************************\n** Styles\n** ********************* */\n.pn-typing-indicator {\n background: var(--typing-indicator__background);\n color: var(--typing-indicator__color);\n display: var(--typing-indicator__display);\n font-size: var(--typing-indicator__fontSize);\n font-weight: var(--typing-indicator__fontWeight);\n padding: var(--typing-indicator__padding);\n}\n\n.pn-typing-indicator-dot {\n display: inline-block;\n font-size: var(--typing-indicator__dot__fontSize);\n margin: var(--typing-indicator__dot__margin);\n animation: wave var(--typing-indicator__dot__animationDuration) linear infinite;\n}\n.pn-typing-indicator-dot:nth-child(2) {\n animation-delay: var(--typing-indicator__dot__animationTimeout1);\n}\n.pn-typing-indicator-dot:nth-child(3) {\n animation-delay: var(--typing-indicator__dot__animationTimeout2);\n}\n\n@keyframes wave {\n 0%, 60%, 100% {\n transform: initial;\n }\n 30% {\n transform: translateY(var(--typing-indicator__dot__animationTravel));\n }\n}\n.pn-typing-indicator--dark,\n.pn-typing-indicator--event-dark,\n.pn-typing-indicator--support-dark {\n --typing-indicator__background: var(--chat--dark__background--1);\n --typing-indicator__color: var(--chat--dark__color--1);\n}")},39032(e){var t,n="object"==typeof Reflect?Reflect:null,i=n&&"function"==typeof n.apply?n.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};t=n&&"function"==typeof n.ownKeys?n.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var r=Number.isNaN||function(e){return e!=e};function s(){s.init.call(this)}e.exports=s,e.exports.once=function(e,t){return new Promise(function(n,i){function r(n){e.removeListener(t,s),i(n)}function s(){"function"==typeof e.removeListener&&e.removeListener("error",r),n([].slice.call(arguments))}g(e,t,s,{once:!0}),"error"!==t&&function(e,t){"function"==typeof e.on&&g(e,"error",t,{once:!0})}(e,r)})},s.EventEmitter=s,s.prototype._events=void 0,s.prototype._eventsCount=0,s.prototype._maxListeners=void 0;var o=10;function a(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function c(e){return void 0===e._maxListeners?s.defaultMaxListeners:e._maxListeners}function d(e,t,n,i){var r,s,o,d;if(a(n),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),s=e._events),o=s[t]),void 0===o)o=s[t]=n,++e._eventsCount;else if("function"==typeof o?o=s[t]=i?[n,o]:[o,n]:i?o.unshift(n):o.push(n),(r=c(e))>0&&o.length>r&&!o.warned){o.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=o.length,d=l,console&&console.warn&&console.warn(d)}return e}function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function u(e,t,n){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=l.bind(i);return r.listener=n,i.wrapFn=r,r}function h(e,t,n){var i=e._events;if(void 0===i)return[];var r=i[t];return void 0===r?[]:"function"==typeof r?n?[r.listener||r]:[r]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(r):m(r,r.length)}function p(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function m(e,t){for(var n=new Array(t),i=0;i<t;++i)n[i]=e[i];return n}function g(e,t,n,i){if("function"==typeof e.on)i.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,function r(s){i.once&&e.removeEventListener(t,r),n(s)})}}Object.defineProperty(s,"defaultMaxListeners",{enumerable:!0,get:function(){return o}
vendor: 5,623 bytes, line 1
1,set:function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");o=e}}),s.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},s.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||r(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},s.prototype.getMaxListeners=function(){return c(this)},s.prototype.emit=function(e){for(var t=[],n=1;n<arguments.length;n++)t.push(arguments[n]);var r="error"===e,s=this._events;if(void 0!==s)r=r&&void 0===s.error;else if(!r)return!1;if(r){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=s[e];if(void 0===c)return!1;if("function"==typeof c)i(c,this,t);else{var d=c.length,l=m(c,d);for(n=0;n<d;++n)i(l[n],this,t)}return!0},s.prototype.addListener=function(e,t){return d(this,e,t,!1)},s.prototype.on=s.prototype.addListener,s.prototype.prependListener=function(e,t){return d(this,e,t,!0)},s.prototype.once=function(e,t){return a(t),this.on(e,u(this,e,t)),this},s.prototype.prependOnceListener=function(e,t){return a(t),this.prependListener(e,u(this,e,t)),this},s.prototype.removeListener=function(e,t){var n,i,r,s,o;if(a(t),void 0===(i=this._events))return this;if(void 0===(n=i[e]))return this;if(n===t||n.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit("removeListener",e,n.listener||t));else if("function"!=typeof n){for(r=-1,s=n.length-1;s>=0;s--)if(n[s]===t||n[s].listener===t){o=n[s].listener,r=s;break}if(r<0)return this;0===r?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,r),1===n.length&&(i[e]=n[0]),void 0!==i.removeListener&&this.emit("removeListener",e,o||t)}return this},s.prototype.off=s.prototype.removeListener,s.prototype.removeAllListeners=function(e){var t,n,i;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var r,s=Object.keys(n);for(i=0;i<s.length;++i)"removeListener"!==(r=s[i])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(i=t.length-1;i>=0;i--)this.removeListener(e,t[i]);return this},s.prototype.listeners=function(e){return h(this,e,!0)},s.prototype.rawListeners=function(e){return h(this,e,!1)},s.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):p.call(e,t)},s.prototype.listenerCount=p,s.prototype.eventNames=function(){return this._eventsCount>0?t(this._events):[]}},78061(e,t,n){function i(e,t){return t.forEach(function(t){t&&"string"!=typeof t&&!Array.isArray(t)&&Object.keys(t).forEach(function(n){if("default"!==n&&!(n in e)){var i=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,i.get?i:{enumerable:!0,get:function(){return t[n]}})}})}),Object.freeze(e)}n.d(t,{Oz:()=>yc,i5:()=>Nc,b9:()=>_c});var r=Object.defineProperty,s=(e,t,n)=>((e,t,n)=>t in e?r(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n);class o{constructor(){s(this,"_locking"),s(this,"_locks"),this._locking=Promise.resolve(),this._locks=0}isLocked(){return this._locks>0}lock(){let e;this._locks+=1;const t=new Promise(t=>e=()=>{this._locks-=1,t()}),n=this._locking.then(()=>e);return this._locking=this._locking.then(()=>t),n}}function a(e,t){if(!e)throw new Error(t)}function c(e){if("number"!=typeof e)throw new Error("invalid int 32: "+typeof e);if(!Number.isInteger(e)||e>2147483647||e<-2147483648)throw new Error("invalid int 32: "+e)}function d(e){if("number"!=typeof e)throw new Error("invalid uint 32: "+typeof e);if(!Number.isInteger(e)||e>4294967295||e<0)throw new Error("invalid uint 32: "+e)}function l(e){if("number"!=typeof e)throw new Error("invalid float 32: "+typeof e);if(Number.isFinite(e)&&(e>34028234663852886e22||e<-34028234663852886e22))throw new Error("invalid float 32: "+e)}const u=Symbol("@bufbuild/protobuf/enum-type");function h(e,t,n,i){e[u]=p(t,n.map(t=>({no:t.no,name:t.name,localName:e[t.no]})))}function p(e,t,n){const i=Object.create(null),r=Object.create(null),s=[];for(const e of t){const t=m(e);s.push(t),i[e.name]=t,r[e.no]=t}return{typeName:e,values:s,findName:e=>i[e],findNumber:e=>r[e]}}function m(e){return"localName"in e?e:Object.assign(Object.assign({},e),{localName:e.name})}class g{equals(e){return this.getType().runtime.util.equals(this.getType(),this,e)}clone(){return this.getType().runtime.util.clone(this)}fromBinary(e,t){const n=this.getType().runtime.bin,i=n.makeReadOptions(t);return n.readMessage(this,i.readerFactory(e),e.byteLength,i),this}fromJson(e,t){const n=this.getType(),i=n.runtime.json,r=i.makeReadOptions(t);return i.readMessage(n,e,r,this),this}fromJsonString(e,t){let n;try{n=JSON.parse(e)}catch(e){throw new Error("cannot decode ".concat(this.getType().typeName," from JSON: ").concat(e instanceof Error?e.message:String(e)))}return this.fromJson(n,t)}toBinary(e){const t=this.getType().runtime.bin,n=t.makeWriteOptions(e),i=n.writerFactory();return t.writeMessage(this,i,n),i.finish()}
vendor: 7,457 bytes, line 1
1toJson(e){const t=this.getType().runtime.json,n=t.makeWriteOptions(e);return t.writeMessage(this,n)}toJsonString(e){var t;const n=this.toJson(e);return JSON.stringify(n,null,null!==(t=null==e?void 0:e.prettySpaces)&&void 0!==t?t:0)}toJSON(){return this.toJson({emitDefaultValues:!0})}getType(){return Object.getPrototypeOf(this).constructor}}function f(){let e=0,t=0;for(let n=0;n<28;n+=7){let i=this.buf[this.pos++];if(e|=(127&i)<<n,!(128&i))return this.assertBounds(),[e,t]}let n=this.buf[this.pos++];if(e|=(15&n)<<28,t=(112&n)>>4,!(128&n))return this.assertBounds(),[e,t];for(let n=3;n<=31;n+=7){let i=this.buf[this.pos++];if(t|=(127&i)<<n,!(128&i))return this.assertBounds(),[e,t]}throw new Error("invalid varint")}function v(e,t,n){for(let i=0;i<28;i+=7){const r=e>>>i,s=!(r>>>7==0&&0==t),o=255&(s?128|r:r);if(n.push(o),!s)return}const i=e>>>28&15|(7&t)<<4,r=!!(t>>3);if(n.push(255&(r?128|i:i)),r){for(let e=3;e<31;e+=7){const i=t>>>e,r=!(i>>>7==0),s=255&(r?128|i:i);if(n.push(s),!r)return}n.push(t>>>31&1)}}const b=4294967296;function _(e){const t="-"===e[0];t&&(e=e.slice(1));const n=1e6;let i=0,r=0;function s(t,s){const o=Number(e.slice(t,s));r*=n,i=i*n+o,i>=b&&(r+=i/b|0,i%=b)}return s(-24,-18),s(-18,-12),s(-12,-6),s(-6),t?S(i,r):k(i,r)}function y(e,t){if(({lo:e,hi:t}=function(e,t){return{lo:e>>>0,hi:t>>>0}}(e,t)),t<=2097151)return String(b*t+e);const n=16777215&(e>>>24|t<<8),i=t>>16&65535;let r=(16777215&e)+6777216*n+6710656*i,s=n+8147497*i,o=2*i;const a=1e7;return r>=a&&(s+=Math.floor(r/a),r%=a),s>=a&&(o+=Math.floor(s/a),s%=a),o.toString()+T(s)+T(r)}function k(e,t){return{lo:0|e,hi:0|t}}function S(e,t){return t=~t,e?e=1+~e:t+=1,k(e,t)}const T=e=>{const t=String(e);return"0000000".slice(t.length)+t};function C(e,t){if(e>=0){for(;e>127;)t.push(127&e|128),e>>>=7;t.push(e)}else{for(let n=0;n<9;n++)t.push(127&e|128),e>>=7;t.push(1)}}function w(){let e=this.buf[this.pos++],t=127&e;if(!(128&e))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(127&e)<<7,!(128&e))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(127&e)<<14,!(128&e))return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(127&e)<<21,!(128&e))return this.assertBounds(),t;e=this.buf[this.pos++],t|=(15&e)<<28;for(let t=5;128&e&&t<10;t++)e=this.buf[this.pos++];if(128&e)throw new Error("invalid varint");return this.assertBounds(),t>>>0}const E=function(){const e=new DataView(new ArrayBuffer(8));if("function"==typeof BigInt&&"function"==typeof e.getBigInt64&&"function"==typeof e.getBigUint64&&"function"==typeof e.setBigInt64&&"function"==typeof e.setBigUint64){const t=BigInt("-9223372036854775808"),n=BigInt("9223372036854775807"),i=BigInt("0"),r=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(e){const i="bigint"==typeof e?e:BigInt(e);if(i>n||i<t)throw new Error("int64 invalid: ".concat(e));return i},uParse(e){const t="bigint"==typeof e?e:BigInt(e);if(t>r||t<i)throw new Error("uint64 invalid: ".concat(e));return t},enc(t){return e.setBigInt64(0,this.parse(t),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(t){return e.setBigInt64(0,this.uParse(t),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec:(t,n)=>(e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigInt64(0,!0)),uDec:(t,n)=>(e.setInt32(0,t,!0),e.setInt32(4,n,!0),e.getBigUint64(0,!0))}}const t=e=>a(/^-?[0-9]+$/.test(e),"int64 invalid: ".concat(e)),n=e=>a(/^[0-9]+$/.test(e),"uint64 invalid: ".concat(e));return{zero:"0",supported:!1,parse:e=>("string"!=typeof e&&(e=e.toString()),t(e),e),uParse:e=>("string"!=typeof e&&(e=e.toString()),n(e),e),enc:e=>("string"!=typeof e&&(e=e.toString()),t(e),_(e)),uEnc:e=>("string"!=typeof e&&(e=e.toString()),n(e),_(e)),dec:(e,t)=>function(e,t){let n=k(e,t);const i=2147483648&n.hi;i&&(n=S(n.lo,n.hi));const r=y(n.lo,n.hi);return i?"-"+r:r}(e,t),uDec:(e,t)=>y(e,t)}}();var P,R,I;function O(e,t,n){if(t===n)return!0;if(e==P.BYTES){if(!(t instanceof Uint8Array&&n instanceof Uint8Array))return!1;if(t.length!==n.length)return!1;for(let e=0;e<t.length;e++)if(t[e]!==n[e])return!1;return!0}switch(e){case P.UINT64:case P.FIXED64:case P.INT64:case P.SFIXED64:case P.SINT64:return t==n}return!1}function x(e,t){switch(e){case P.BOOL:return!1;case P.UINT64:case P.FIXED64:case P.INT64:case P.SFIXED64:case P.SINT64:return 0==t?E.zero:"0";case P.DOUBLE:case P.FLOAT:return 0;case P.BYTES:return new Uint8Array(0);case P.STRING:return"";default:return 0}}function A(e,t){switch(e){case P.BOOL:return!1===t;case P.STRING:return""===t;case P.BYTES:return t instanceof Uint8Array&&!t.byteLength;default:return 0==t}}!function(e){e[e.DOUBLE=1]="DOUBLE",e[e.FLOAT=2]="FLOAT",e[e.INT64=3]="INT64",e[e.UINT64=4]="UINT64",e[e.INT32=5]="INT32",e[e.FIXED64=6]="FIXED64",e[e.FIXED32=7]="FIXED32",e[e.BOOL=8]="BOOL",e[e.STRING=9]="STRING",e[e.BYTES=12]="BYTES",e[e.UINT32=13]="UINT32",e[e.SFIXED32=15]="SFIXED32",e[e.SFIXED64=16]="SFIXED64",e[e.SINT32=17]="SINT32",e[e.SINT64=18]="SINT64"}(P||(P={})),function(e){e[e.BIGINT=0]="BIGINT",e[e.STRING=1]="STRING"}(R||(R={})),function(e){e[e.Varint=0]="Varint",e[e.Bit64=1]="Bit64",e[e.LengthDelimited=2]="LengthDelimited",e[e.StartGroup=3]="StartGroup",e[e.EndGroup=4]="EndGroup",e[e.Bit32=5]="Bit32"}(I||(I={}));class D{constructor(e){this.stack=[],this.textEncoder=null!=e?e:new TextEncoder,this.chunks=[],this.buf=[]}finish(){this.chunks.push(new Uint8Array(this.buf));let e=0;for(let t=0;t<this.chunks.length;t++)e+=this.chunks[t].length;let t=new Uint8Array(e),n=0;for(let e=0;e<this.chunks.length;e++)t.set(this.chunks[e],n),n+=this.chunks[e].length;return this.chunks=[],t}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let e=this.finish(),t=this.stack.pop();if(!t)throw new Error("invalid state, fork stack empty");return this.chunks=t.chunks,this.buf=t.buf,this.uint32(e.byteLength),this.raw(e)}tag(e,t){return this.uint32((e<<3|t)>>>0)}raw(e){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(e),this}uint32(e){for(d(e);e>127;)this.buf.push(127&e|128),e>>>=7;return this.buf.push(e),this}int32(e){return c(e),C(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 t=this.textEncoder.encode(e);return this.uint32(t.byteLength),this.raw(t)}float(e){l(e);let t=new Uint8Array(4);return new DataView(t.buffer).setFloat32(0,e,!0),this.raw(t)}double(e){let t=new Uint8Array(8);return new DataView(t.buffer).setFloat64(0,e,!0),this.raw(t)}fixed32(e){d(e);let t=new Uint8Array(4);return new DataView(t.buffer).setUint32(0,e,!0),this.raw(t)}sfixed32(e){c(e);let t=new Uint8Array(4);return new DataView(t.buffer).setInt32(0,e,!0),this.raw(t)}sint32(e){return c(e),C(e=(e<<1^e>>31)>>>0,this.buf),this}sfixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),i=E.enc(e);return n.setInt32(0,i.lo,!0),n.setInt32(4,i.hi,!0),this.raw(t)}fixed64(e){let t=new Uint8Array(8),n=new DataView(t.buffer),i=E.uEnc(e);return n.setInt32(0,i.lo,!0),n.setInt32(4,i.hi,!0),this.raw(t)}int64(e){let t=E.enc(e);return v(t.lo,t.hi,this.buf),this}sint64(e){let t=E.enc(e),n=t.hi>>31;return v(t.lo<<1^n,(t.hi<<1|t.lo>>>31)^n,this.buf),this}uint64(e){let t=E.uEnc(e);return v(t.lo,t.hi,this.buf),this}}class N{constructor(e,t){this.varint64=f,this.uint32=w,this.buf=e,this.len=e.length,this.pos=0,this.view=new DataView(e.buffer,e.byteOffset,e.byteLength),this.textDecoder=null!=t?t:new TextDecoder}tag(){let e=this.uint32(),t=e>>>3,n=7&e;
vendor: 40,363 bytes, line 1
1if(t<=0||n<0||n>5)throw new Error("illegal tag: field no "+t+" wire type "+n);return[t,n]}skip(e,t){let n=this.pos;switch(e){case I.Varint:for(;128&this.buf[this.pos++];);break;case I.Bit64:this.pos+=4;case I.Bit32:this.pos+=4;break;case I.LengthDelimited:let n=this.uint32();this.pos+=n;break;case I.StartGroup:for(;;){const[e,n]=this.tag();if(n===I.EndGroup){if(void 0!==t&&e!==t)throw new Error("invalid end group tag");break}this.skip(n,e)}break;default:throw new Error("cant skip wire type "+e)}return this.assertBounds(),this.buf.subarray(n,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return 0|this.uint32()}sint32(){let e=this.uint32();return e>>>1^-(1&e)}int64(){return E.dec(...this.varint64())}uint64(){return E.uDec(...this.varint64())}sint64(){let[e,t]=this.varint64(),n=-(1&e);return e=(e>>>1|(1&t)<<31)^n,t=t>>>1^n,E.dec(e,t)}bool(){let[e,t]=this.varint64();return 0!==e||0!==t}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return E.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return E.dec(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(),t=this.pos;return this.pos+=e,this.assertBounds(),this.buf.subarray(t,t+e)}string(){return this.textDecoder.decode(this.bytes())}}function M(e){const t=e.field.localName,n=Object.create(null);return n[t]=function(e){const t=e.field;if(t.repeated)return[];if(void 0!==t.default)return t.default;switch(t.kind){case"enum":return t.T.values[0].no;case"scalar":return x(t.T,t.L);case"message":const e=t.T,n=new e;return e.fieldWrapper?e.fieldWrapper.unwrapField(n):n;case"map":throw"map fields are not allowed to be extensions"}}(e),[n,()=>n[t]]}let L="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),j=[];for(let e=0;e<L.length;e++)j[L[e].charCodeAt(0)]=e;j["-".charCodeAt(0)]=L.indexOf("+"),j["_".charCodeAt(0)]=L.indexOf("/");const U={dec(e){let t=3*e.length/4;"="==e[e.length-2]?t-=2:"="==e[e.length-1]&&(t-=1);let n,i=new Uint8Array(t),r=0,s=0,o=0;for(let t=0;t<e.length;t++){if(n=j[e.charCodeAt(t)],void 0===n)switch(e[t]){case"=":s=0;case"\n":case"\r":case"\t":case" ":continue;default:throw Error("invalid base64 string.")}switch(s){case 0:o=n,s=1;break;case 1:i[r++]=o<<2|(48&n)>>4,o=n,s=2;break;case 2:i[r++]=(15&o)<<4|(60&n)>>2,o=n,s=3;break;case 3:i[r++]=(3&o)<<6|n,s=0}}if(1==s)throw Error("invalid base64 string.");return i.subarray(0,r)},enc(e){let t,n="",i=0,r=0;for(let s=0;s<e.length;s++)switch(t=e[s],i){case 0:n+=L[t>>2],r=(3&t)<<4,i=1;break;case 1:n+=L[r|t>>4],r=(15&t)<<2,i=2;break;case 2:n+=L[r|t>>6],n+=L[63&t],i=0}return i&&(n+=L[r],n+="=",1==i&&(n+="=")),n}};function F(e,t,n){q(t,e);const i=t.runtime.bin.makeReadOptions(n),r=function(e,t){if(!t.repeated&&("enum"==t.kind||"scalar"==t.kind)){for(let n=e.length-1;n>=0;--n)if(e[n].no==t.no)return[e[n]];return[]}return e.filter(e=>e.no===t.no)}(e.getType().runtime.bin.listUnknownFields(e),t.field),[s,o]=M(t);for(const e of r)t.runtime.bin.readField(s,i.readerFactory(e.data),t.field,e.wireType,i);return o()}function B(e,t,n,i){q(t,e);const r=t.runtime.bin.makeReadOptions(i),s=t.runtime.bin.makeWriteOptions(i);if(V(e,t)){const n=e.getType().runtime.bin.listUnknownFields(e).filter(e=>e.no!=t.field.no);e.getType().runtime.bin.discardUnknownFields(e);for(const t of n)e.getType().runtime.bin.onUnknownField(e,t.no,t.wireType,t.data)}const o=s.writerFactory();let a=t.field;a.opt||a.repeated||"enum"!=a.kind&&"scalar"!=a.kind||(a=Object.assign(Object.assign({},t.field),{opt:!0})),t.runtime.bin.writeField(a,n,o,s);const c=r.readerFactory(o.finish());for(;c.pos<c.len;){const[t,n]=c.tag(),i=c.skip(n,t);e.getType().runtime.bin.onUnknownField(e,t,n,i)}}function V(e,t){const n=e.getType();return t.extendee.typeName===n.typeName&&!!n.runtime.bin.listUnknownFields(e).find(e=>e.no==t.field.no)}function q(e,t){a(e.extendee.typeName==t.getType().typeName,"extension ".concat(e.typeName," can only be applied to message ").concat(e.extendee.typeName))}function z(e,t){const n=e.localName;if(e.repeated)return t[n].length>0;if(e.oneof)return t[e.oneof.localName].case===n;switch(e.kind){case"enum":case"scalar":return e.opt||e.req?void 0!==t[n]:"enum"==e.kind?t[n]!==e.T.values[0].no:!A(e.T,t[n]);case"message":return void 0!==t[n];case"map":return Object.keys(t[n]).length>0}}function W(e,t){const n=e.localName,i=!e.opt&&!e.req;if(e.repeated)t[n]=[];else if(e.oneof)t[e.oneof.localName]={case:void 0};else switch(e.kind){case"map":t[n]={};break;case"enum":t[n]=i?e.T.values[0].no:void 0;break;case"scalar":t[n]=i?x(e.T,e.L):void 0;break;case"message":t[n]=void 0}}function H(e,t){if(null===e||"object"!=typeof e)return!1;if(!Object.getOwnPropertyNames(g.prototype).every(t=>t in e&&"function"==typeof e[t]))return!1;const n=e.getType();return null!==n&&"function"==typeof n&&"typeName"in n&&"string"==typeof n.typeName&&(void 0===t||n.typeName==t.typeName)}function G(e,t){return H(t)||!e.fieldWrapper?t:e.fieldWrapper.wrapField(t)}P.DOUBLE,P.FLOAT,P.INT64,P.UINT64,P.INT32,P.UINT32,P.BOOL,P.STRING,P.BYTES;const K={ignoreUnknownFields:!1},J={emitDefaultValues:!1,enumAsInteger:!1,useProtoFieldName:!1,prettySpaces:0};const Q=Symbol(),Y=Symbol();function X(e){if(null===e)return"null";switch(typeof e){case"object":return Array.isArray(e)?"array":"object";case"string":return e.length>100?"string":'"'.concat(e.split('"').join('\\"'),'"');default:return String(e)}}function $(e,t,n,i,r){let s=n.localName;if(n.repeated){if(a("map"!=n.kind),null===t)return;if(!Array.isArray(t))throw new Error("cannot decode field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(X(t)));const o=e[s];for(const e of t){if(null===e)throw new Error("cannot decode field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(X(e)));switch(n.kind){case"message":o.push(n.T.fromJson(e,i));break;case"enum":const t=te(n.T,e,i.ignoreUnknownFields,!0);t!==Y&&o.push(t);break;case"scalar":try{o.push(ee(n.T,e,n.L,!0))}catch(t){let i="cannot decode field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(X(e));throw t instanceof Error&&t.message.length>0&&(i+=": ".concat(t.message)),new Error(i)}}}}else if("map"==n.kind){if(null===t)return;if("object"!=typeof t||Array.isArray(t))throw new Error("cannot decode field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(X(t)));const o=e[s];for(const[e,s]of Object.entries(t)){if(null===s)throw new Error("cannot decode field ".concat(r.typeName,".").concat(n.name," from JSON: map value null"));let a;try{a=Z(n.K,e)}catch(e){let i="cannot decode map key for field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(X(t));throw e instanceof Error&&e.message.length>0&&(i+=": ".concat(e.message)),new Error(i)}switch(n.V.kind){case"message":o[a]=n.V.T.fromJson(s,i);break;case"enum":const e=te(n.V.T,s,i.ignoreUnknownFields,!0);e!==Y&&(o[a]=e);break;case"scalar":try{o[a]=ee(n.V.T,s,R.BIGINT,!0)}catch(e){let i="cannot decode map value for field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(X(t));throw e instanceof Error&&e.message.length>0&&(i+=": ".concat(e.message)),new Error(i)}}}}else switch(n.oneof&&(e=e[n.oneof.localName]={case:s},s="value"),n.kind){case"message":const o=n.T;if(null===t&&"google.protobuf.Value"!=o.typeName)return;let a=e[s];H(a)?a.fromJson(t,i):(e[s]=a=o.fromJson(t,i),o.fieldWrapper&&!n.oneof&&(e[s]=o.fieldWrapper.unwrapField(a)));break;case"enum":const c=te(n.T,t,i.ignoreUnknownFields,!1);switch(c){case Q:W(n,e);break;case Y:break;default:e[s]=c}break;case"scalar":try{const i=ee(n.T,t,n.L,!1);i===Q?W(n,e):e[s]=i}catch(e){let i="cannot decode field ".concat(r.typeName,".").concat(n.name," from JSON: ").concat(X(t));throw e instanceof Error&&e.message.length>0&&(i+=": ".concat(e.message)),new Error(i)}}}function Z(e,t){if(e===P.BOOL)switch(t){case"true":t=!0;break;case"false":t=!1}return ee(e,t,R.BIGINT,!0).toString()}function ee(e,t,n,i){if(null===t)return i?x(e,n):Q;switch(e){case P.DOUBLE:case P.FLOAT:if("NaN"===t)return Number.NaN;if("Infinity"===t)return Number.POSITIVE_INFINITY;if("-Infinity"===t)return Number.NEGATIVE_INFINITY;if(""===t)break;if("string"==typeof t&&t.trim().length!==t.length)break;if("string"!=typeof t&&"number"!=typeof t)break;const i=Number(t);if(Number.isNaN(i))break;if(!Number.isFinite(i))break;return e==P.FLOAT&&l(i),i;case P.INT32:case P.FIXED32:case P.SFIXED32:case P.SINT32:case P.UINT32:let r;if("number"==typeof t?r=t:"string"==typeof t&&t.length>0&&t.trim().length===t.length&&(r=Number(t)),void 0===r)break;return e==P.UINT32||e==P.FIXED32?d(r):c(r),r;case P.INT64:case P.SFIXED64:case P.SINT64:if("number"!=typeof t&&"string"!=typeof t)break;const s=E.parse(t);return n?s.toString():s;case P.FIXED64:case P.UINT64:if("number"!=typeof t&&"string"!=typeof t)break;const o=E.uParse(t);return n?o.toString():o;case P.BOOL:if("boolean"!=typeof t)break;return t;case P.STRING:if("string"!=typeof t)break;try{encodeURIComponent(t)}catch(e){throw new Error("invalid UTF8")}return t;case P.BYTES:if(""===t)return new Uint8Array(0);if("string"!=typeof t)break;return U.dec(t)}throw new Error}function te(e,t,n,i){if(null===t)return"google.protobuf.NullValue"==e.typeName?0:i?e.values[0].no:Q;switch(typeof t){case"number":if(Number.isInteger(t))return t;break;case"string":const i=e.findName(t);if(void 0!==i)return i.no;if(n)return Y}throw new Error("cannot decode enum ".concat(e.typeName," from JSON: ").concat(X(t)))}function ne(e){return!(!e.repeated&&"map"!=e.kind&&(e.oneof||"message"==e.kind||e.opt||e.req))}function ie(e,t,n){if("map"==e.kind){a("object"==typeof t&&null!=t);const i={},r=Object.entries(t);switch(e.V.kind){case"scalar":for(const[t,n]of r)i[t.toString()]=se(e.V.T,n);break;case"message":for(const[e,t]of r)i[e.toString()]=t.toJson(n);break;case"enum":const t=e.V.T;for(const[e,s]of r)i[e.toString()]=re(t,s,n.enumAsInteger)}return n.emitDefaultValues||r.length>0?i:void 0}if(e.repeated){a(Array.isArray(t));const i=[];switch(e.kind){case"scalar":for(let n=0;n<t.length;n++)i.push(se(e.T,t[n]));break;case"enum":for(let r=0;r<t.length;r++)i.push(re(e.T,t[r],n.enumAsInteger));break;case"message":for(let e=0;e<t.length;e++)i.push(t[e].toJson(n))}return n.emitDefaultValues||i.length>0?i:void 0}switch(e.kind){case"scalar":return se(e.T,t);case"enum":return re(e.T,t,n.enumAsInteger);case"message":return G(e.T,t).toJson(n)}}function re(e,t,n){var i;if(a("number"==typeof t),"google.protobuf.NullValue"==e.typeName)return null;if(n)return t;const r=e.findNumber(t);return null!==(i=null==r?void 0:r.name)&&void 0!==i?i:t}function se(e,t){switch(e){case P.INT32:case P.SFIXED32:case P.SINT32:case P.FIXED32:case P.UINT32:return a("number"==typeof t),t;case P.FLOAT:case P.DOUBLE:return a("number"==typeof t),Number.isNaN(t)?"NaN":t===Number.POSITIVE_INFINITY?"Infinity":t===Number.NEGATIVE_INFINITY?"-Infinity":t;case P.STRING:return a("string"==typeof t),t;case P.BOOL:return a("boolean"==typeof t),t;case P.UINT64:case P.FIXED64:case P.INT64:case P.SFIXED64:case P.SINT64:return a("bigint"==typeof t||"string"==typeof t||"number"==typeof t),t.toString();case P.BYTES:return a(t instanceof Uint8Array),U.enc(t)}}const oe=Symbol("@bufbuild/protobuf/unknown-fields"),ae={readUnknownFields:!0,readerFactory:e=>new N(e)},ce={writeUnknownFields:!0,writerFactory:()=>new D};function de(e,t,n,i,r){let{repeated:s,localName:o}=n;switch(n.oneof&&((e=e[n.oneof.localName]).case!=o&&delete e.value,e.case=o,o="value"),n.kind){case"scalar":case"enum":const a="enum"==n.kind?P.INT32:n.T;let c=he;if("scalar"==n.kind&&n.L>0&&(c=ue),s){let n=e[o];if(i==I.LengthDelimited&&a!=P.STRING&&a!=P.BYTES){let e=t.uint32()+t.pos;for(;t.pos<e;)n.push(c(t,a))}else n.push(c(t,a))}else e[o]=c(t,a);break;case"message":const d=n.T;s?e[o].push(le(t,new d,r,n)):H(e[o])?le(t,e[o],r,n):(e[o]=le(t,new d,r,n),!d.fieldWrapper||n.oneof||n.repeated||(e[o]=d.fieldWrapper.unwrapField(e[o])));break;case"map":let[l,u]=function(e,t,n){const i=t.uint32(),r=t.pos+i;let s,o;for(;t.pos<r;){const[i]=t.tag();switch(i){case 1:s=he(t,e.K);break;case 2:switch(e.V.kind){case"scalar":o=he(t,e.V.T);break;case"enum":o=t.int32();break;case"message":o=le(t,new e.V.T,n,void 0)}}}if(void 0===s&&(s=x(e.K,R.BIGINT)),"string"!=typeof s&&"number"!=typeof s&&(s=s.toString()),void 0===o)switch(e.V.kind){case"scalar":o=x(e.V.T,R.BIGINT);break;case"enum":o=e.V.T.values[0].no;break;case"message":o=new e.V.T}return[s,o]}(n,t,r);e[o][l]=u}}function le(e,t,n,i){const r=t.getType().runtime.bin,s=null==i?void 0:i.delimited;return r.readMessage(t,e,s?i.no:e.uint32(),n,s),t}function ue(e,t){const n=he(e,t);return"bigint"==typeof n?n.toString():n}function he(e,t){switch(t){case P.STRING:return e.string();case P.BOOL:return e.bool();case P.DOUBLE:return e.double();case P.FLOAT:return e.float();case P.INT32:return e.int32();case P.INT64:return e.int64();case P.UINT64:return e.uint64();case P.FIXED64:return e.fixed64();case P.BYTES:return e.bytes();case P.FIXED32:return e.fixed32();case P.SFIXED32:return e.sfixed32();case P.SFIXED64:return e.sfixed64();case P.SINT64:return e.sint64();case P.UINT32:return e.uint32();case P.SINT32:return e.sint32()}}function pe(e,t,n,i){a(void 0!==t);const r=e.repeated;switch(e.kind){case"scalar":case"enum":let s="enum"==e.kind?P.INT32:e.T;if(r)if(a(Array.isArray(t)),e.packed)!function(e,t,n,i){if(!i.length)return;e.tag(n,I.LengthDelimited).fork();let[,r]=ve(t);for(let t=0;t<i.length;t++)e[r](i[t]);e.join()}(n,s,e.no,t);else for(const i of t)fe(n,s,e.no,i);else fe(n,s,e.no,t);break;case"message":if(r){a(Array.isArray(t));for(const r of t)ge(n,i,e,r)}else ge(n,i,e,t);break;case"map":a("object"==typeof t&&null!=t);for(const[r,s]of Object.entries(t))me(n,i,e,r,s)}}function me(e,t,n,i,r){e.tag(n.no,I.LengthDelimited),e.fork();let s=i;switch(n.K){case P.INT32:case P.FIXED32:case P.UINT32:case P.SFIXED32:case P.SINT32:s=Number.parseInt(i);break;case P.BOOL:a("true"==i||"false"==i),s="true"==i}switch(fe(e,n.K,1,s),n.V.kind){case"scalar":fe(e,n.V.T,2,r);break;case"enum":fe(e,P.INT32,2,r);break;case"message":a(void 0!==r),e.tag(2,I.LengthDelimited).bytes(r.toBinary(t))}e.join()}function ge(e,t,n,i){const r=G(n.T,i);n.delimited?e.tag(n.no,I.StartGroup).raw(r.toBinary(t)).tag(n.no,I.EndGroup):e.tag(n.no,I.LengthDelimited).bytes(r.toBinary(t))}function fe(e,t,n,i){a(void 0!==i);let[r,s]=ve(t);e.tag(n,r)[s](i)}function ve(e){let t=I.Varint;switch(e){case P.BYTES:case P.STRING:t=I.LengthDelimited;break;case P.DOUBLE:case P.FIXED64:case P.SFIXED64:t=I.Bit64;break;case P.FIXED32:case P.SFIXED32:case P.FLOAT:t=I.Bit32}return[t,P[e].toLowerCase()]}function be(e){if(void 0===e)return e;if(H(e))return e.clone();if(e instanceof Uint8Array){const t=new Uint8Array(e.byteLength);return t.set(e),t}return e}function _e(e){return e instanceof Uint8Array?e:new Uint8Array(e)}class ye{constructor(e,t){this._fields=e,this._normalizer=t}findJsonName(e){if(!this.jsonNames){const e={};for(const t of this.list())e[t.jsonName]=e[t.name]=t;this.jsonNames=e}return this.jsonNames[e]}find(e){if(!this.numbers){const e={};for(const t of this.list())e[t.no]=t;this.numbers=e}return this.numbers[e]}list(){return this.all||(this.all=this._normalizer(this._fields)),this.all}byNumber(){return this.numbersAsc||(this.numbersAsc=this.list().concat().sort((e,t)=>e.no-t.no)),this.numbersAsc}byMember(){if(!this.members){this.members=[];const e=this.members;let t;for(const n of this.list())n.oneof?n.oneof!==t&&(t=n.oneof,e.push(t)):e.push(n)}return this.members}}function ke(e,t){const n=Te(e);return t?n:Re(Pe(n))}const Se=Te;function Te(e){let t=!1;const n=[];for(let i=0;i<e.length;i++){let r=e.charAt(i);switch(r){case"_":t=!0;break;case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":n.push(r),t=!1;break;default:t&&(t=!1,r=r.toUpperCase()),n.push(r)}}return n.join("")}const Ce=new Set(["constructor","toString","toJSON","valueOf"]),we=new Set(["getType","clone","equals","fromBinary","fromJson","fromJsonString","toBinary","toJson","toJsonString","toObject"]),Ee=e=>"".concat(e,"$"),Pe=e=>we.has(e)?Ee(e):e,Re=e=>Ce.has(e)?Ee(e):e;class Ie{constructor(e){this.kind="oneof",this.repeated=!1,this.packed=!1,this.opt=!1,this.req=!1,this.default=void 0,this.fields=[],this.name=e,this.localName=ke(e,!1)}addField(e){a(e.oneof===this,"field ".concat(e.name," not one of ").concat(this.name)),this.fields.push(e)}findField(e){if(!this._lookup){this._lookup=Object.create(null);for(let e=0;e<this.fields.length;e++)this._lookup[this.fields[e].localName]=this.fields[e]}return this._lookup[e]}}const Oe=(xe=e=>new ye(e,e=>function(e){var t,n,i,r,s,o;const a=[];let c;for(const d of"function"==typeof e?e():e){const e=d;if(e.localName=ke(d.name,void 0!==d.oneof),e.jsonName=null!==(t=d.jsonName)&&void 0!==t?t:Se(d.name),e.repeated=null!==(n=d.repeated)&&void 0!==n&&n,"scalar"==d.kind&&(e.L=null!==(i=d.L)&&void 0!==i?i:R.BIGINT),e.delimited=null!==(r=d.delimited)&&void 0!==r&&r,e.req=null!==(s=d.req)&&void 0!==s&&s,e.opt=null!==(o=d.opt)&&void 0!==o&&o,void 0===d.packed&&(e.packed="enum"==d.kind||"scalar"==d.kind&&d.T!=P.BYTES&&d.T!=P.STRING),void 0!==d.oneof){const t="string"==typeof d.oneof?d.oneof:d.oneof.name;c&&c.name==t||(c=new Ie(t)),e.oneof=c,c.addField(e)}a.push(e)}return a}(e)),Ae=e=>{for(const t of e.getType().fields.byMember()){if(t.opt)continue;const n=t.localName,i=e;if(t.repeated)i[n]=[];else switch(t.kind){case"oneof":i[n]={case:void 0};break;case"enum":i[n]=0;break;case"map":i[n]={};break;case"scalar":i[n]=x(t.T,t.L)}}},{syntax:"proto3",json:{makeReadOptions:function(e){return e?Object.assign(Object.assign({},K),e):K},makeWriteOptions:function(e){return e?Object.assign(Object.assign({},J),e):J},readMessage(e,t,n,i){if(null==t||Array.isArray(t)||"object"!=typeof t)throw new Error("cannot decode message ".concat(e.typeName," from JSON: ").concat(X(t)));i=null!=i?i:new e;const r=new Map,s=n.typeRegistry;for(const[o,a]of Object.entries(t)){const t=e.fields.findJsonName(o);if(t){if(t.oneof){if(null===a&&"scalar"==t.kind)continue;const n=r.get(t.oneof);if(void 0!==n)throw new Error("cannot decode message ".concat(e.typeName,' from JSON: multiple keys for oneof "').concat(t.oneof.name,'" present: "').concat(n,'", "').concat(o,'"'));r.set(t.oneof,o)}$(i,a,t,n,e)}else{let t=!1;if((null==s?void 0:s.findExtension)&&o.startsWith("[")&&o.endsWith("]")){const r=s.findExtension(o.substring(1,o.length-1));if(r&&r.extendee.typeName==e.typeName){t=!0;const[e,s]=M(r);$(e,a,r.field,n,r),B(i,r,s(),n)}}if(!t&&!n.ignoreUnknownFields)throw new Error("cannot decode message ".concat(e.typeName,' from JSON: key "').concat(o,'" is unknown'))}}return i},writeMessage(e,t){const n=e.getType(),i={};let r;try{for(r of n.fields.byNumber()){if(!z(r,e)){if(r.req)throw"required field not set";if(!t.emitDefaultValues)continue;if(!ne(r))continue}const n=ie(r,r.oneof?e[r.oneof.localName].value:e[r.localName],t);void 0!==n&&(i[t.useProtoFieldName?r.name:r.jsonName]=n)}const s=t.typeRegistry;if(null==s?void 0:s.findExtensionFor)for(const r of n.runtime.bin.listUnknownFields(e)){const o=s.findExtensionFor(n.typeName,r.no);if(o&&V(e,o)){const n=F(e,o,t),r=ie(o.field,n,t);void 0!==r&&(i[o.field.jsonName]=r)}}}catch(e){const t=r?"cannot encode field ".concat(n.typeName,".").concat(r.name," to JSON"):"cannot encode message ".concat(n.typeName," to JSON"),i=e instanceof Error?e.message:String(e);throw new Error(t+(i.length>0?": ".concat(i):""))}return i},readScalar:(e,t,n)=>ee(e,t,null!=n?n:R.BIGINT,!0),writeScalar(e,t,n){if(void 0!==t)return n||A(e,t)?se(e,t):void 0},debug:X},bin:{makeReadOptions:function(e){return e?Object.assign(Object.assign({},ae),e):ae},makeWriteOptions:function(e){return e?Object.assign(Object.assign({},ce),e):ce},listUnknownFields(e){var t;return null!==(t=e[oe])&&void 0!==t?t:[]},discardUnknownFields(e){delete e[oe]},writeUnknownFields(e,t){const n=e[oe];if(n)for(const e of n)t.tag(e.no,e.wireType).raw(e.data)},onUnknownField(e,t,n,i){const r=e;Array.isArray(r[oe])||(r[oe]=[]),r[oe].push({no:t,wireType:n,data:i})},readMessage(e,t,n,i,r){const s=e.getType(),o=r?t.len:t.pos+n;let a,c;for(;t.pos<o&&([a,c]=t.tag(),!0!==r||c!=I.EndGroup);){const n=s.fields.find(a);if(!n){const n=t.skip(c,a);i.readUnknownFields&&this.onUnknownField(e,a,c,n);continue}de(e,t,n,c,i)}if(r&&(c!=I.EndGroup||a!==n))throw new Error("invalid end group tag")},readField:de,writeMessage(e,t,n){const i=e.getType();for(const r of i.fields.byNumber())if(z(r,e))pe(r,r.oneof?e[r.oneof.localName].value:e[r.localName],t,n);else if(r.req)throw new Error("cannot encode field ".concat(i.typeName,".").concat(r.name," to binary: required field not set"));return n.writeUnknownFields&&this.writeUnknownFields(e,t),t},writeField(e,t,n,i){void 0!==t&&pe(e,t,n,i)}},util:Object.assign(Object.assign({},{setEnumType:h,initPartial(e,t){if(void 0===e)return;const n=t.getType();for(const i of n.fields.byMember()){const n=i.localName,r=t,s=e;if(null!=s[n])switch(i.kind){case"oneof":const e=s[n].case;if(void 0===e)continue;const t=i.findField(e);let o=s[n].value;t&&"message"==t.kind&&!H(o,t.T)?o=new t.T(o):t&&"scalar"===t.kind&&t.T===P.BYTES&&(o=_e(o)),r[n]={case:e,value:o};break;case"scalar":case"enum":let a=s[n];i.T===P.BYTES&&(a=i.repeated?a.map(_e):_e(a)),r[n]=a;break;case"map":switch(i.V.kind){case"scalar":case"enum":if(i.V.T===P.BYTES)for(const[e,t]of Object.entries(s[n]))r[n][e]=_e(t);else Object.assign(r[n],s[n]);break;case"message":const e=i.V.T;for(const t of Object.keys(s[n])){let i=s[n][t];e.fieldWrapper||(i=new e(i)),r[n][t]=i}}break;case"message":const c=i.T;if(i.repeated)r[n]=s[n].map(e=>H(e,c)?e:new c(e));else{const e=s[n];c.fieldWrapper?"google.protobuf.BytesValue"===c.typeName?r[n]=_e(e):r[n]=e:r[n]=H(e,c)?e:new c(e)}}}},equals:(e,t,n)=>t===n||!(!t||!n)&&e.fields.byMember().every(e=>{const i=t[e.localName],r=n[e.localName];if(e.repeated){if(i.length!==r.length)return!1;switch(e.kind){case"message":return i.every((t,n)=>e.T.equals(t,r[n]));case"scalar":return i.every((t,n)=>O(e.T,t,r[n]));case"enum":return i.every((e,t)=>O(P.INT32,e,r[t]))}throw new Error("repeated cannot contain ".concat(e.kind))}switch(e.kind){case"message":let t=i,n=r;return e.T.fieldWrapper&&(void 0===t||H(t)||(t=e.T.fieldWrapper.wrapField(t)),void 0===n||H(n)||(n=e.T.fieldWrapper.wrapField(n))),e.T.equals(t,n);case"enum":return O(P.INT32,i,r);case"scalar":return O(e.T,i,r);case"oneof":if(i.case!==r.case)return!1;const s=e.findField(i.case);if(void 0===s)return!0;switch(s.kind){case"message":return s.T.equals(i.value,r.value);case"enum":return O(P.INT32,i.value,r.value);case"scalar":return O(s.T,i.value,r.value)}throw new Error("oneof cannot contain ".concat(s.kind));case"map":const o=Object.keys(i).concat(Object.keys(r));switch(e.V.kind){case"message":const t=e.V.T;return o.every(e=>t.equals(i[e],r[e]));case"enum":return o.every(e=>O(P.INT32,i[e],r[e]));case"scalar":const n=e.V.T;return o.every(e=>O(n,i[e],r[e]))}}}),clone(e){const t=e.getType(),n=new t,i=n;for(const n of t.fields.byMember()){const t=e[n.localName];let r;if(n.repeated)r=t.map(be);else if("map"==n.kind){r=i[n.localName];for(const[e,n]of Object.entries(t))r[e]=be(n)}else r="oneof"==n.kind?n.findField(t.case)?{case:t.case,value:be(t.value)}:{case:void 0}:be(t);i[n.localName]=r}for(const n of t.runtime.bin.listUnknownFields(e))t.runtime.bin.onUnknownField(i,n.no,n.wireType,n.data);return n}}),{newFieldList:xe,initFields:Ae}),makeMessageType(e,t,n){return function(e,t,n,i){var r;const s=null!==(r=null==i?void 0:i.localName)&&void 0!==r?r:t.substring(t.lastIndexOf(".")+1),o={[s]:function(t){e.util.initFields(this),e.util.initPartial(t,this)}}[s];return Object.setPrototypeOf(o.prototype,new g),Object.assign(o,{runtime:e,typeName:t,fields:e.util.newFieldList(n),fromBinary:(e,t)=>(new o).fromBinary(e,t),fromJson:(e,t)=>(new o).fromJson(e,t),fromJsonString:(e,t)=>(new o).fromJsonString(e,t),equals:(t,n)=>e.util.equals(o,t,n)}),o}(this,e,t,n)},makeEnum:function(e,t,n){const i={};for(const e of t){const t=m(e);i[t.localName]=t.no,i[t.no]=t.localName}return h(i,e,t),i},makeEnumType:p,getEnumType:function(e){const t=e[u];return a(t,"missing enum type on enum object"),t},makeExtension(e,t,n){return function(e,t,n,i){let r;return{typeName:t,extendee:n,get field(){if(!r){const n="function"==typeof i?i():i;n.name=t.split(".").pop(),n.jsonName="[".concat(t,"]"),r=e.util.newFieldList([n]).list()[0]}return r},runtime:e}}(this,e,t,n)}});var xe,Ae;class De extends g{constructor(e){super(),this.seconds=E.zero,this.nanos=0,Oe.util.initPartial(e,this)}fromJson(e,t){if("string"!=typeof e)throw new Error("cannot decode google.protobuf.Timestamp from JSON: ".concat(Oe.json.debug(e)));const 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("cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string");const i=Date.parse(n[1]+"-"+n[2]+"-"+n[3]+"T"+n[4]+":"+n[5]+":"+n[6]+(n[8]?n[8]:"Z"));if(Number.isNaN(i))throw new Error("cannot decode google.protobuf.Timestamp from JSON: invalid RFC 3339 string");if(i<Date.parse("0001-01-01T00:00:00Z")||i>Date.parse("9999-12-31T23:59:59Z"))throw new Error("cannot decode message google.protobuf.Timestamp from JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive");return this.seconds=E.parse(i/1e3),this.nanos=0,n[7]&&(this.nanos=parseInt("1"+n[7]+"0".repeat(9-n[7].length))-1e9),this}toJson(e){const t=1e3*Number(this.seconds);if(t<Date.parse("0001-01-01T00:00:00Z")||t>Date.parse("9999-12-31T23:59:59Z"))throw new Error("cannot encode google.protobuf.Timestamp to JSON: must be from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z inclusive");if(this.nanos<0)throw new Error("cannot encode google.protobuf.Timestamp to JSON: nanos must not be negative");let n="Z";if(this.nanos>0){const e=(this.nanos+1e9).toString().substring(1);n="000000"===e.substring(3)?"."+e.substring(0,3)+"Z":"000"===e.substring(6)?"."+e.substring(0,6)+"Z":"."+e+"Z"}return new Date(t).toISOString().replace(".000Z",n)}toDate(){return new Date(1e3*Number(this.seconds)+Math.ceil(this.nanos/1e6))}static now(){return De.fromDate(new Date)}static fromDate(e){const t=e.getTime();return new De({seconds:E.parse(Math.floor(t/1e3)),nanos:t%1e3*1e6})}static fromBinary(e,t){return(new De).fromBinary(e,t)}static fromJson(e,t){return(new De).fromJson(e,t)}static fromJsonString(e,t){return(new De).fromJsonString(e,t)}static equals(e,t){return Oe.util.equals(De,e,t)}}De.runtime=Oe,De.typeName="google.protobuf.Timestamp",De.fields=Oe.util.newFieldList(()=>[{no:1,name:"seconds",kind:"scalar",T:3},{no:2,name:"nanos",kind:"scalar",T:5}]);const Ne=Oe.makeMessageType("livekit.MetricsBatch",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:De},{no:3,name:"str_data",kind:"scalar",T:9,repeated:!0},{no:4,name:"time_series",kind:"message",T:Me,repeated:!0},{no:5,name:"events",kind:"message",T:je,repeated:!0}]),Me=Oe.makeMessageType("livekit.TimeSeriesMetric",()=>[{no:1,name:"label",kind:"scalar",T:13},{no:2,name:"participant_identity",kind:"scalar",T:13},{no:3,name:"track_sid",kind:"scalar",T:13},{no:4,name:"samples",kind:"message",T:Le,repeated:!0},{no:5,name:"rid",kind:"scalar",T:13}]),Le=Oe.makeMessageType("livekit.MetricSample",()=>[{no:1,name:"timestamp_ms",kind:"scalar",T:3},{no:2,name:"normalized_timestamp",kind:"message",T:De},{no:3,name:"value",kind:"scalar",T:2}]),je=Oe.makeMessageType("livekit.EventMetric",()=>[{no:1,name:"label",kind:"scalar",T:13},{no:2,name:"participant_identity",kind:"scalar",T:13},{no:3,name:"track_sid",kind:"scalar",T:13},{no:4,name:"start_timestamp_ms",kind:"scalar",T:3},{no:5,name:"end_timestamp_ms",kind:"scalar",T:3,opt:!0},{no:6,name:"normalized_start_timestamp",kind:"message",T:De},{no:7,name:"normalized_end_timestamp",kind:"message",T:De,opt:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"rid",kind:"scalar",T:13}]),Ue=Oe.makeEnum("livekit.BackupCodecPolicy",[{no:0,name:"PREFER_REGRESSION"},{no:1,name:"SIMULCAST"},{no:2,name:"REGRESSION"}]),Fe=Oe.makeEnum("livekit.TrackType",[{no:0,name:"AUDIO"},{no:1,name:"VIDEO"},{no:2,name:"DATA"}]),Be=Oe.makeEnum("livekit.TrackSource",[{no:0,name:"UNKNOWN"},{no:1,name:"CAMERA"},{no:2,name:"MICROPHONE"},{no:3,name:"SCREEN_SHARE"},{no:4,name:"SCREEN_SHARE_AUDIO"}]),Ve=Oe.makeEnum("livekit.VideoQuality",[{no:0,name:"LOW"},{no:1,name:"MEDIUM"},{no:2,name:"HIGH"},{no:3,name:"OFF"}]),qe=Oe.makeEnum("livekit.ConnectionQuality",[{no:0,name:"POOR"},{no:1,name:"GOOD"},{no:2,name:"EXCELLENT"},{no:3,name:"LOST"}]),ze=Oe.makeEnum("livekit.ClientConfigSetting",[{no:0,name:"UNSET"},{no:1,name:"DISABLED"},{no:2,name:"ENABLED"}]),We=Oe.makeEnum("livekit.DisconnectReason",[{no:0,name:"UNKNOWN_REASON"},{no:1,name:"CLIENT_INITIATED"},{no:2,name:"DUPLICATE_IDENTITY"},{no:3,name:"SERVER_SHUTDOWN"},{no:4,name:"PARTICIPANT_REMOVED"},{no:5,name:"ROOM_DELETED"},{no:6,name:"STATE_MISMATCH"},{no:7,name:"JOIN_FAILURE"},{no:8,name:"MIGRATION"},{no:9,name:"SIGNAL_CLOSE"},{no:10,name:"ROOM_CLOSED"},{no:11,name:"USER_UNAVAILABLE"},{no:12,name:"USER_REJECTED"},{no:13,name:"SIP_TRUNK_FAILURE"},{no:14,name:"CONNECTION_TIMEOUT"},{no:15,name:"MEDIA_FAILURE"}]),He=Oe.makeEnum("livekit.ReconnectReason",[{no:0,name:"RR_UNKNOWN"},{no:1,name:"RR_SIGNAL_DISCONNECTED"},{no:2,name:"RR_PUBLISHER_FAILED"},{no:3,name:"RR_SUBSCRIBER_FAILED"},{no:4,name:"RR_SWITCH_CANDIDATE"}]),Ge=Oe.makeEnum("livekit.SubscriptionError",[{no:0,name:"SE_UNKNOWN"},{no:1,name:"SE_CODEC_UNSUPPORTED"},{no:2,name:"SE_TRACK_NOTFOUND"}]),Ke=Oe.makeEnum("livekit.AudioTrackFeature",[{no:0,name:"TF_STEREO"},{no:1,name:"TF_NO_DTX"},{no:2,name:"TF_AUTO_GAIN_CONTROL"},{no:3,name:"TF_ECHO_CANCELLATION"},{no:4,name:"TF_NOISE_SUPPRESSION"},{no:5,name:"TF_ENHANCED_NOISE_CANCELLATION"},{no:6,name:"TF_PRECONNECT_BUFFER"}]),Je=Oe.makeMessageType("livekit.Room",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"empty_timeout",kind:"scalar",T:13},{no:14,name:"departure_timeout",kind:"scalar",T:13},{no:4,name:"max_participants",kind:"scalar",T:13},{no:5,name:"creation_time",kind:"scalar",T:3},{no:15,name:"creation_time_ms",kind:"scalar",T:3},{no:6,name:"turn_password",kind:"scalar",T:9},{no:7,name:"enabled_codecs",kind:"message",T:Qe,repeated:!0},{no:8,name:"metadata",kind:"scalar",T:9},{no:9,name:"num_participants",kind:"scalar",T:13},{no:11,name:"num_publishers",kind:"scalar",T:13},{no:10,name:"active_recording",kind:"scalar",T:8},{no:13,name:"version",kind:"message",T:Et}]),Qe=Oe.makeMessageType("livekit.Codec",()=>[{no:1,name:"mime",kind:"scalar",T:9},{no:2,name:"fmtp_line",kind:"scalar",T:9}]),Ye=Oe.makeMessageType("livekit.ParticipantPermission",()=>[{no:1,name:"can_subscribe",kind:"scalar",T:8},{no:2,name:"can_publish",kind:"scalar",T:8},{no:3,name:"can_publish_data",kind:"scalar",T:8},{no:9,name:"can_publish_sources",kind:"enum",T:Oe.getEnumType(Be),repeated:!0},{no:7,name:"hidden",kind:"scalar",T:8},{no:8,name:"recorder",kind:"scalar",T:8},{no:10,name:"can_update_metadata",kind:"scalar",T:8},{no:11,name:"agent",kind:"scalar",T:8},{no:12,name:"can_subscribe_metrics",kind:"scalar",T:8}]),Xe=Oe.makeMessageType("livekit.ParticipantInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"identity",kind:"scalar",T:9},{no:3,name:"state",kind:"enum",T:Oe.getEnumType($e)},{no:4,name:"tracks",kind:"message",T:it,repeated:!0},{no:5,name:"metadata",kind:"scalar",T:9},{no:6,name:"joined_at",kind:"scalar",T:3},{no:17,name:"joined_at_ms",kind:"scalar",T:3},{no:9,name:"name",kind:"scalar",T:9},{no:10,name:"version",kind:"scalar",T:13},{no:11,name:"permission",kind:"message",T:Ye},{no:12,name:"region",kind:"scalar",T:9},{no:13,name:"is_publisher",kind:"scalar",T:8},{no:14,name:"kind",kind:"enum",T:Oe.getEnumType(Ze)},{no:15,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:16,name:"disconnect_reason",kind:"enum",T:Oe.getEnumType(We)},{no:18,name:"kind_details",kind:"enum",T:Oe.getEnumType(et),repeated:!0}]),$e=Oe.makeEnum("livekit.ParticipantInfo.State",[{no:0,name:"JOINING"},{no:1,name:"JOINED"},{no:2,name:"ACTIVE"},{no:3,name:"DISCONNECTED"}]),Ze=Oe.makeEnum("livekit.ParticipantInfo.Kind",[{no:0,name:"STANDARD"},{no:1,name:"INGRESS"},{no:2,name:"EGRESS"},{no:3,name:"SIP"},{no:4,name:"AGENT"}]),et=Oe.makeEnum("livekit.ParticipantInfo.KindDetail",[{no:0,name:"CLOUD_AGENT"},{no:1,name:"FORWARDED"}]),tt=Oe.makeEnum("livekit.Encryption.Type",[{no:0,name:"NONE"},{no:1,name:"GCM"},{no:2,name:"CUSTOM"}]),nt=Oe.makeMessageType("livekit.SimulcastCodecInfo",()=>[{no:1,name:"mime_type",kind:"scalar",T:9},{no:2,name:"mid",kind:"scalar",T:9},{no:3,name:"cid",kind:"scalar",T:9},{no:4,name:"layers",kind:"message",T:rt,repeated:!0}]),it=Oe.makeMessageType("livekit.TrackInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"type",kind:"enum",T:Oe.getEnumType(Fe)},{no:3,name:"name",kind:"scalar",T:9},{no:4,name:"muted",kind:"scalar",T:8},{no:5,name:"width",kind:"scalar",T:13},{no:6,name:"height",kind:"scalar",T:13},{no:7,name:"simulcast",kind:"scalar",T:8},{no:8,name:"disable_dtx",kind:"scalar",T:8},{no:9,name:"source",kind:"enum",T:Oe.getEnumType(Be)},{no:10,name:"layers",kind:"message",T:rt,repeated:!0},{no:11,name:"mime_type",kind:"scalar",T:9},{no:12,name:"mid",kind:"scalar",T:9},{no:13,name:"codecs",kind:"message",T:nt,repeated:!0},{no:14,name:"stereo",kind:"scalar",T:8},{no:15,name:"disable_red",kind:"scalar",T:8},{no:16,name:"encryption",kind:"enum",T:Oe.getEnumType(tt)},{no:17,name:"stream",kind:"scalar",T:9},{no:18,name:"version",kind:"message",T:Et},{no:19,name:"audio_features",kind:"enum",T:Oe.getEnumType(Ke),repeated:!0},{no:20,name:"backup_codec_policy",kind:"enum",T:Oe.getEnumType(Ue)}]),rt=Oe.makeMessageType("livekit.VideoLayer",()=>[{no:1,name:"quality",kind:"enum",T:Oe.getEnumType(Ve)},{no:2,name:"width",kind:"scalar",T:13},{no:3,name:"height",kind:"scalar",T:13},{no:4,name:"bitrate",kind:"scalar",T:13},{no:5,name:"ssrc",kind:"scalar",T:13},{no:6,name:"spatial_layer",kind:"scalar",T:5},{no:7,name:"rid",kind:"scalar",T:9}]),st=Oe.makeMessageType("livekit.DataPacket",()=>[{no:1,name:"kind",kind:"enum",T:Oe.getEnumType(ot)},{no:4,name:"participant_identity",kind:"scalar",T:9},{no:5,name:"destination_identities",kind:"scalar",T:9,repeated:!0},{no:2,name:"user",kind:"message",T:dt,oneof:"value"},{no:3,name:"speaker",kind:"message",T:at,oneof:"value"},{no:6,name:"sip_dtmf",kind:"message",T:lt,oneof:"value"},{no:7,name:"transcription",kind:"message",T:ut,oneof:"value"},{no:8,name:"metrics",kind:"message",T:Ne,oneof:"value"},{no:9,name:"chat_message",kind:"message",T:pt,oneof:"value"},{no:10,name:"rpc_request",kind:"message",T:mt,oneof:"value"},{no:11,name:"rpc_ack",kind:"message",T:gt,oneof:"value"},{no:12,name:"rpc_response",kind:"message",T:ft,oneof:"value"},{no:13,name:"stream_header",kind:"message",T:Ot,oneof:"value"},{no:14,name:"stream_chunk",kind:"message",T:xt,oneof:"value"},{no:15,name:"stream_trailer",kind:"message",T:At,oneof:"value"},{no:16,name:"sequence",kind:"scalar",T:13},{no:17,name:"participant_sid",kind:"scalar",T:9}]),ot=Oe.makeEnum("livekit.DataPacket.Kind",[{no:0,name:"RELIABLE"},{no:1,name:"LOSSY"}]),at=Oe.makeMessageType("livekit.ActiveSpeakerUpdate",()=>[{no:1,name:"speakers",kind:"message",T:ct,repeated:!0}]),ct=Oe.makeMessageType("livekit.SpeakerInfo",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"level",kind:"scalar",T:2},{no:3,name:"active",kind:"scalar",T:8}]),dt=Oe.makeMessageType("livekit.UserPacket",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:5,name:"participant_identity",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:12},{no:3,name:"destination_sids",kind:"scalar",T:9,repeated:!0},{no:6,name:"destination_identities",kind:"scalar",T:9,repeated:!0},{no:4,name:"topic",kind:"scalar",T:9,opt:!0},{no:8,name:"id",kind:"scalar",T:9,opt:!0},{no:9,name:"start_time",kind:"scalar",T:4,opt:!0},{no:10,name:"end_time",kind:"scalar",T:4,opt:!0},{no:11,name:"nonce",kind:"scalar",T:12}]),lt=Oe.makeMessageType("livekit.SipDTMF",()=>[{no:3,name:"code",kind:"scalar",T:13},{no:4,name:"digit",kind:"scalar",T:9}]),ut=Oe.makeMessageType("livekit.Transcription",()=>[{no:2,name:"transcribed_participant_identity",kind:"scalar",T:9},{no:3,name:"track_id",kind:"scalar",T:9},{no:4,name:"segments",kind:"message",T:ht,repeated:!0}]),ht=Oe.makeMessageType("livekit.TranscriptionSegment",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"text",kind:"scalar",T:9},{no:3,name:"start_time",kind:"scalar",T:4},{no:4,name:"end_time",kind:"scalar",T:4},{no:5,name:"final",kind:"scalar",T:8},{no:6,name:"language",kind:"scalar",T:9}]),pt=Oe.makeMessageType("livekit.ChatMessage",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"timestamp",kind:"scalar",T:3},{no:3,name:"edit_timestamp",kind:"scalar",T:3,opt:!0},{no:4,name:"message",kind:"scalar",T:9},{no:5,name:"deleted",kind:"scalar",T:8},{no:6,name:"generated",kind:"scalar",T:8}]),mt=Oe.makeMessageType("livekit.RpcRequest",()=>[{no:1,name:"id",kind:"scalar",T:9},{no:2,name:"method",kind:"scalar",T:9},{no:3,name:"payload",kind:"scalar",T:9},{no:4,name:"response_timeout_ms",kind:"scalar",T:13},{no:5,name:"version",kind:"scalar",T:13}]),gt=Oe.makeMessageType("livekit.RpcAck",()=>[{no:1,name:"request_id",kind:"scalar",T:9}]),ft=Oe.makeMessageType("livekit.RpcResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:9},{no:2,name:"payload",kind:"scalar",T:9,oneof:"value"},{no:3,name:"error",kind:"message",T:vt,oneof:"value"}]),vt=Oe.makeMessageType("livekit.RpcError",()=>[{no:1,name:"code",kind:"scalar",T:13},{no:2,name:"message",kind:"scalar",T:9},{no:3,name:"data",kind:"scalar",T:9}]),bt=Oe.makeMessageType("livekit.ParticipantTracks",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sids",kind:"scalar",T:9,repeated:!0}]),_t=Oe.makeMessageType("livekit.ServerInfo",()=>[{no:1,name:"edition",kind:"enum",T:Oe.getEnumType(yt)},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"protocol",kind:"scalar",T:5},{no:4,name:"region",kind:"scalar",T:9},{no:5,name:"node_id",kind:"scalar",T:9},{no:6,name:"debug_info",kind:"scalar",T:9},{no:7,name:"agent_protocol",kind:"scalar",T:5}]),yt=Oe.makeEnum("livekit.ServerInfo.Edition",[{no:0,name:"Standard"},{no:1,name:"Cloud"}]),kt=Oe.makeMessageType("livekit.ClientInfo",()=>[{no:1,name:"sdk",kind:"enum",T:Oe.getEnumType(St)},{no:2,name:"version",kind:"scalar",T:9},{no:3,name:"protocol",kind:"scalar",T:5},{no:4,name:"os",kind:"scalar",T:9},{no:5,name:"os_version",kind:"scalar",T:9},{no:6,name:"device_model",kind:"scalar",T:9},{no:7,name:"browser",kind:"scalar",T:9},{no:8,name:"browser_version",kind:"scalar",T:9},{no:9,name:"address",kind:"scalar",T:9},{no:10,name:"network",kind:"scalar",T:9},{no:11,name:"other_sdks",kind:"scalar",T:9}]),St=Oe.makeEnum("livekit.ClientInfo.SDK",[{no:0,name:"UNKNOWN"},{no:1,name:"JS"},{no:2,name:"SWIFT"},{no:3,name:"ANDROID"},{no:4,name:"FLUTTER"},{no:5,name:"GO"},{no:6,name:"UNITY"},{no:7,name:"REACT_NATIVE"},{no:8,name:"RUST"},{no:9,name:"PYTHON"},{no:10,name:"CPP"},{no:11,name:"UNITY_WEB"},{no:12,name:"NODE"},{no:13,name:"UNREAL"},{no:14,name:"ESP32"}]),Tt=Oe.makeMessageType("livekit.ClientConfiguration",()=>[{no:1,name:"video",kind:"message",T:Ct},{no:2,name:"screen",kind:"message",T:Ct},{no:3,name:"resume_connection",kind:"enum",T:Oe.getEnumType(ze)},{no:4,name:"disabled_codecs",kind:"message",T:wt},{no:5,name:"force_relay",kind:"enum",T:Oe.getEnumType(ze)}]),Ct=Oe.makeMessageType("livekit.VideoConfiguration",()=>[{no:1,name:"hardware_encoder",kind:"enum",T:Oe.getEnumType(ze)}]),wt=Oe.makeMessageType("livekit.DisabledCodecs",()=>[{no:1,name:"codecs",kind:"message",T:Qe,repeated:!0},{no:2,name:"publish",kind:"message",T:Qe,repeated:!0}]),Et=Oe.makeMessageType("livekit.TimedVersion",()=>[{no:1,name:"unix_micro",kind:"scalar",T:3},{no:2,name:"ticks",kind:"scalar",T:5}]),Pt=Oe.makeEnum("livekit.DataStream.OperationType",[{no:0,name:"CREATE"},{no:1,name:"UPDATE"},{no:2,name:"DELETE"},{no:3,name:"REACTION"}]),Rt=Oe.makeMessageType("livekit.DataStream.TextHeader",()=>[{no:1,name:"operation_type",kind:"enum",T:Oe.getEnumType(Pt)},{no:2,name:"version",kind:"scalar",T:5},{no:3,name:"reply_to_stream_id",kind:"scalar",T:9},{no:4
vendor: 13,934 bytes, line 1
1,name:"attached_stream_ids",kind:"scalar",T:9,repeated:!0},{no:5,name:"generated",kind:"scalar",T:8}],{localName:"DataStream_TextHeader"}),It=Oe.makeMessageType("livekit.DataStream.ByteHeader",()=>[{no:1,name:"name",kind:"scalar",T:9}],{localName:"DataStream_ByteHeader"}),Ot=Oe.makeMessageType("livekit.DataStream.Header",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"timestamp",kind:"scalar",T:3},{no:3,name:"topic",kind:"scalar",T:9},{no:4,name:"mime_type",kind:"scalar",T:9},{no:5,name:"total_length",kind:"scalar",T:4,opt:!0},{no:7,name:"encryption_type",kind:"enum",T:Oe.getEnumType(tt)},{no:8,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:9,name:"text_header",kind:"message",T:Rt,oneof:"content_header"},{no:10,name:"byte_header",kind:"message",T:It,oneof:"content_header"}],{localName:"DataStream_Header"}),xt=Oe.makeMessageType("livekit.DataStream.Chunk",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"chunk_index",kind:"scalar",T:4},{no:3,name:"content",kind:"scalar",T:12},{no:4,name:"version",kind:"scalar",T:5},{no:5,name:"iv",kind:"scalar",T:12,opt:!0}],{localName:"DataStream_Chunk"}),At=Oe.makeMessageType("livekit.DataStream.Trailer",()=>[{no:1,name:"stream_id",kind:"scalar",T:9},{no:2,name:"reason",kind:"scalar",T:9},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}}],{localName:"DataStream_Trailer"}),Dt=Oe.makeEnum("livekit.SignalTarget",[{no:0,name:"PUBLISHER"},{no:1,name:"SUBSCRIBER"}]),Nt=Oe.makeEnum("livekit.StreamState",[{no:0,name:"ACTIVE"},{no:1,name:"PAUSED"}]),Mt=Oe.makeEnum("livekit.CandidateProtocol",[{no:0,name:"UDP"},{no:1,name:"TCP"},{no:2,name:"TLS"}]),Lt=Oe.makeMessageType("livekit.SignalRequest",()=>[{no:1,name:"offer",kind:"message",T:Gt,oneof:"message"},{no:2,name:"answer",kind:"message",T:Gt,oneof:"message"},{no:3,name:"trickle",kind:"message",T:Bt,oneof:"message"},{no:4,name:"add_track",kind:"message",T:Ft,oneof:"message"},{no:5,name:"mute",kind:"message",T:Vt,oneof:"message"},{no:6,name:"subscription",kind:"message",T:Jt,oneof:"message"},{no:7,name:"track_setting",kind:"message",T:Qt,oneof:"message"},{no:8,name:"leave",kind:"message",T:$t,oneof:"message"},{no:10,name:"update_layers",kind:"message",T:en,oneof:"message"},{no:11,name:"subscription_permission",kind:"message",T:mn,oneof:"message"},{no:12,name:"sync_state",kind:"message",T:vn,oneof:"message"},{no:13,name:"simulate",kind:"message",T:yn,oneof:"message"},{no:14,name:"ping",kind:"scalar",T:3,oneof:"message"},{no:15,name:"update_metadata",kind:"message",T:tn,oneof:"message"},{no:16,name:"ping_req",kind:"message",T:kn,oneof:"message"},{no:17,name:"update_audio_track",kind:"message",T:Yt,oneof:"message"},{no:18,name:"update_video_track",kind:"message",T:Xt,oneof:"message"}]),jt=Oe.makeMessageType("livekit.SignalResponse",()=>[{no:1,name:"join",kind:"message",T:qt,oneof:"message"},{no:2,name:"answer",kind:"message",T:Gt,oneof:"message"},{no:3,name:"offer",kind:"message",T:Gt,oneof:"message"},{no:4,name:"trickle",kind:"message",T:Bt,oneof:"message"},{no:5,name:"update",kind:"message",T:Kt,oneof:"message"},{no:6,name:"track_published",kind:"message",T:Wt,oneof:"message"},{no:8,name:"leave",kind:"message",T:$t,oneof:"message"},{no:9,name:"mute",kind:"message",T:Vt,oneof:"message"},{no:10,name:"speakers_changed",kind:"message",T:rn,oneof:"message"},{no:11,name:"room_update",kind:"message",T:sn,oneof:"message"},{no:12,name:"connection_quality",kind:"message",T:an,oneof:"message"},{no:13,name:"stream_state_update",kind:"message",T:dn,oneof:"message"},{no:14,name:"subscribed_quality_update",kind:"message",T:hn,oneof:"message"},{no:15,name:"subscription_permission_update",kind:"message",T:gn,oneof:"message"},{no:16,name:"refresh_token",kind:"scalar",T:9,oneof:"message"},{no:17,name:"track_unpublished",kind:"message",T:Ht,oneof:"message"},{no:18,name:"pong",kind:"scalar",T:3,oneof:"message"},{no:19,name:"reconnect",kind:"message",T:zt,oneof:"message"},{no:20,name:"pong_resp",kind:"message",T:Sn,oneof:"message"},{no:21,name:"subscription_response",kind:"message",T:wn,oneof:"message"},{no:22,name:"request_response",kind:"message",T:En,oneof:"message"},{no:23,name:"track_subscribed",kind:"message",T:Rn,oneof:"message"},{no:24,name:"room_moved",kind:"message",T:fn,oneof:"message"}]),Ut=Oe.makeMessageType("livekit.SimulcastCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"cid",kind:"scalar",T:9}]),Ft=Oe.makeMessageType("livekit.AddTrackRequest",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"type",kind:"enum",T:Oe.getEnumType(Fe)},{no:4,name:"width",kind:"scalar",T:13},{no:5,name:"height",kind:"scalar",T:13},{no:6,name:"muted",kind:"scalar",T:8},{no:7,name:"disable_dtx",kind:"scalar",T:8},{no:8,name:"source",kind:"enum",T:Oe.getEnumType(Be)},{no:9,name:"layers",kind:"message",T:rt,repeated:!0},{no:10,name:"simulcast_codecs",kind:"message",T:Ut,repeated:!0},{no:11,name:"sid",kind:"scalar",T:9},{no:12,name:"stereo",kind:"scalar",T:8},{no:13,name:"disable_red",kind:"scalar",T:8},{no:14,name:"encryption",kind:"enum",T:Oe.getEnumType(tt)},{no:15,name:"stream",kind:"scalar",T:9},{no:16,name:"backup_codec_policy",kind:"enum",T:Oe.getEnumType(Ue)},{no:17,name:"audio_features",kind:"enum",T:Oe.getEnumType(Ke),repeated:!0}]),Bt=Oe.makeMessageType("livekit.TrickleRequest",()=>[{no:1,name:"candidateInit",kind:"scalar",T:9},{no:2,name:"target",kind:"enum",T:Oe.getEnumType(Dt)},{no:3,name:"final",kind:"scalar",T:8}]),Vt=Oe.makeMessageType("livekit.MuteTrackRequest",()=>[{no:1,name:"sid",kind:"scalar",T:9},{no:2,name:"muted",kind:"scalar",T:8}]),qt=Oe.makeMessageType("livekit.JoinResponse",()=>[{no:1,name:"room",kind:"message",T:Je},{no:2,name:"participant",kind:"message",T:Xe},{no:3,name:"other_participants",kind:"message",T:Xe,repeated:!0},{no:4,name:"server_version",kind:"scalar",T:9},{no:5,name:"ice_servers",kind:"message",T:nn,repeated:!0},{no:6,name:"subscriber_primary",kind:"scalar",T:8},{no:7,name:"alternative_url",kind:"scalar",T:9},{no:8,name:"client_configuration",kind:"message",T:Tt},{no:9,name:"server_region",kind:"scalar",T:9},{no:10,name:"ping_timeout",kind:"scalar",T:5},{no:11,name:"ping_interval",kind:"scalar",T:5},{no:12,name:"server_info",kind:"message",T:_t},{no:13,name:"sif_trailer",kind:"scalar",T:12},{no:14,name:"enabled_publish_codecs",kind:"message",T:Qe,repeated:!0},{no:15,name:"fast_publish",kind:"scalar",T:8}]),zt=Oe.makeMessageType("livekit.ReconnectResponse",()=>[{no:1,name:"ice_servers",kind:"message",T:nn,repeated:!0},{no:2,name:"client_configuration",kind:"message",T:Tt},{no:3,name:"server_info",kind:"message",T:_t},{no:4,name:"last_message_seq",kind:"scalar",T:13}]),Wt=Oe.makeMessageType("livekit.TrackPublishedResponse",()=>[{no:1,name:"cid",kind:"scalar",T:9},{no:2,name:"track",kind:"message",T:it}]),Ht=Oe.makeMessageType("livekit.TrackUnpublishedResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]),Gt=Oe.makeMessageType("livekit.SessionDescription",()=>[{no:1,name:"type",kind:"scalar",T:9},{no:2,name:"sdp",kind:"scalar",T:9},{no:3,name:"id",kind:"scalar",T:13}]),Kt=Oe.makeMessageType("livekit.ParticipantUpdate",()=>[{no:1,name:"participants",kind:"message",T:Xe,repeated:!0}]),Jt=Oe.makeMessageType("livekit.UpdateSubscription",()=>[{no:1,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:2,name:"subscribe",kind:"scalar",T:8},{no:3,name:"participant_tracks",kind:"message",T:bt,repeated:!0}]),Qt=Oe.makeMessageType("livekit.UpdateTrackSettings",()=>[{no:1,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:3,name:"disabled",kind:"scalar",T:8},{no:4,name:"quality",kind:"enum",T:Oe.getEnumType(Ve)},{no:5,name:"width",kind:"scalar",T:13},{no:6,name:"height",kind:"scalar",T:13},{no:7,name:"fps",kind:"scalar",T:13},{no:8,name:"priority",kind:"scalar",T:13}]),Yt=Oe.makeMessageType("livekit.UpdateLocalAudioTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"features",kind:"enum",T:Oe.getEnumType(Ke),repeated:!0}]),Xt=Oe.makeMessageType("livekit.UpdateLocalVideoTrack",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"width",kind:"scalar",T:13},{no:3,name:"height",kind:"scalar",T:13}]),$t=Oe.makeMessageType("livekit.LeaveRequest",()=>[{no:1,name:"can_reconnect",kind:"scalar",T:8},{no:2,name:"reason",kind:"enum",T:Oe.getEnumType(We)},{no:3,name:"action",kind:"enum",T:Oe.getEnumType(Zt)},{no:4,name:"regions",kind:"message",T:Tn}]),Zt=Oe.makeEnum("livekit.LeaveRequest.Action",[{no:0,name:"DISCONNECT"},{no:1,name:"RESUME"},{no:2,name:"RECONNECT"}]),en=Oe.makeMessageType("livekit.UpdateVideoLayers",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"layers",kind:"message",T:rt,repeated:!0}]),tn=Oe.makeMessageType("livekit.UpdateParticipantMetadata",()=>[{no:1,name:"metadata",kind:"scalar",T:9},{no:2,name:"name",kind:"scalar",T:9},{no:3,name:"attributes",kind:"map",K:9,V:{kind:"scalar",T:9}},{no:4,name:"request_id",kind:"scalar",T:13}]),nn=Oe.makeMessageType("livekit.ICEServer",()=>[{no:1,name:"urls",kind:"scalar",T:9,repeated:!0},{no:2,name:"username",kind:"scalar",T:9},{no:3,name:"credential",kind:"scalar",T:9}]),rn=Oe.makeMessageType("livekit.SpeakersChanged",()=>[{no:1,name:"speakers",kind:"message",T:ct,repeated:!0}]),sn=Oe.makeMessageType("livekit.RoomUpdate",()=>[{no:1,name:"room",kind:"message",T:Je}]),on=Oe.makeMessageType("livekit.ConnectionQualityInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"quality",kind:"enum",T:Oe.getEnumType(qe)},{no:3,name:"score",kind:"scalar",T:2}]),an=Oe.makeMessageType("livekit.ConnectionQualityUpdate",()=>[{no:1,name:"updates",kind:"message",T:on,repeated:!0}]),cn=Oe.makeMessageType("livekit.StreamStateInfo",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sid",kind:"scalar",T:9},{no:3,name:"state",kind:"enum",T:Oe.getEnumType(Nt)}]),dn=Oe.makeMessageType("livekit.StreamStateUpdate",()=>[{no:1,name:"stream_states",kind:"message",T:cn,repeated:!0}]),ln=Oe.makeMessageType("livekit.SubscribedQuality",()=>[{no:1,name:"quality",kind:"enum",T:Oe.getEnumType(Ve)},{no:2,name:"enabled",kind:"scalar",T:8}]),un=Oe.makeMessageType("livekit.SubscribedCodec",()=>[{no:1,name:"codec",kind:"scalar",T:9},{no:2,name:"qualities",kind:"message",T:ln,repeated:!0}]),hn=Oe.makeMessageType("livekit.SubscribedQualityUpdate",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"subscribed_qualities",kind:"message",T:ln,repeated:!0},{no:3,name:"subscribed_codecs",kind:"message",T:un,repeated:!0}]),pn=Oe.makeMessageType("livekit.TrackPermission",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"all_tracks",kind:"scalar",T:8},{no:3,name:"track_sids",kind:"scalar",T:9,repeated:!0},{no:4,name:"participant_identity",kind:"scalar",T:9}]),mn=Oe.makeMessageType("livekit.SubscriptionPermission",()=>[{no:1,name:"all_participants",kind:"scalar",T:8},{no:2,name:"track_permissions",kind:"message",T:pn,repeated:!0}]),gn=Oe.makeMessageType("livekit.SubscriptionPermissionUpdate",()=>[{no:1,name:"participant_sid",kind:"scalar",T:9},{no:2,name:"track_sid",kind:"scalar",T:9},{no:3,name:"allowed",kind:"scalar",T:8}]),fn=Oe.makeMessageType("livekit.RoomMovedResponse",()=>[{no:1,name:"room",kind:"message",T:Je},{no:2,name:"token",kind:"scalar",T:9},{no:3,name:"participant",kind:"message",T:Xe},{no:4,name:"other_participants",kind:"message",T:Xe,repeated:!0}]),vn=Oe.makeMessageType("livekit.SyncState",()=>[{no:1,name:"answer",kind:"message",T:Gt},{no:2,name:"subscription",kind:"message",T:Jt},{no:3,name:"publish_tracks",kind:"message",T:Wt,repeated:!0},{no:4,name:"data_channels",kind:"message",T:_n,repeated:!0},{no:5,name:"offer",kind:"message",T:Gt},{no:6,name:"track_sids_disabled",kind:"scalar",T:9,repeated:!0},{no:7,name:"datachannel_receive_states",kind:"message",T:bn,repeated:!0}]),bn=Oe.makeMessageType("livekit.DataChannelReceiveState",()=>[{no:1,name:"publisher_sid",kind:"scalar",T:9},{no:2,name:"last_seq",kind:"scalar",T:13}]),_n=Oe.makeMessageType("livekit.DataChannelInfo",()=>[{no:1,name:"label",kind:"scalar",T:9},{no:2,name:"id",kind:"scalar",T:13},{no:3,name:"target",kind:"enum",T:Oe.getEnumType(Dt)}]),yn=Oe.makeMessageType("livekit.SimulateScenario",()=>[{no:1,name:"speaker_update",kind:"scalar",T:5,oneof:"scenario"},{no:2,name:"node_failure",kind:"scalar",T:8,oneof:"scenario"},{no:3,name:"migration",kind:"scalar",T:8,oneof:"scenario"},{no:4,name:"server_leave",kind:"scalar",T:8,oneof:"scenario"},{no:5,name:"switch_candidate_protocol",kind:"enum",T:Oe.getEnumType(Mt),oneof:"scenario"},{no:6,name:"subscriber_bandwidth",kind:"scalar",T:3,oneof:"scenario"},{no:7,name:"disconnect_signal_on_resume",kind:"scalar",T:8,oneof:"scenario"},{no:8,name:"disconnect_signal_on_resume_no_messages",kind:"scalar",T:8,oneof:"scenario"},{no:9,name:"leave_request_full_reconnect",kind:"scalar",T:8,oneof:"scenario"}]),kn=Oe.makeMessageType("livekit.Ping",()=>[{no:1,name:"timestamp",kind:"scalar",T:3},{no:2,name:"rtt",kind:"scalar",T:3}]),Sn=Oe.makeMessageType("livekit.Pong",()=>[{no:1,name:"last_ping_timestamp",kind:"scalar",T:3},{no:2,name:"timestamp",kind:"scalar",T:3}]),Tn=Oe.makeMessageType("livekit.RegionSettings",()=>[{no:1,name:"regions",kind:"message",T:Cn,repeated:!0}]),Cn=Oe.makeMessageType("livekit.RegionInfo",()=>[{no:1,name:"region",kind:"scalar",T:9},{no:2,name:"url",kind:"scalar",T:9},{no:3,name:"distance",kind:"scalar",T:3}]),wn=Oe.makeMessageType("livekit.SubscriptionResponse",()=>[{no:1,name:"track_sid",kind:"scalar",T:9},{no:2,name:"err",kind:"enum",T:Oe.getEnumType(Ge)}]),En=Oe.makeMessageType("livekit.RequestResponse",()=>[{no:1,name:"request_id",kind:"scalar",T:13},{no:2,name:"reason",kind:"enum",T:Oe.getEnumType(Pn)},{no:3,name:"message",kind:"scalar",T:9}]),Pn=Oe.makeEnum("livekit.RequestResponse.Reason",[{no:0,name:"OK"},{no:1,name:"NOT_FOUND"},{no:2,name:"NOT_ALLOWED"},{no:3,name:"LIMIT_EXCEEDED"}]),Rn=Oe.makeMessageType("livekit.TrackSubscribed",()=>[{no:1,name:"track_sid",kind:"scalar",T:9}]);
vendor: 4,575 bytes, line 1
1function In(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var On,xn,An,Dn,Nn,Mn,Ln={exports:{}},jn=(On||(On=1,An=Ln.exports,Dn=function(){var e=function(){},t="undefined",n=typeof window!==t&&typeof window.navigator!==t&&/Trident\/|MSIE /.test(window.navigator.userAgent),i=["trace","debug","info","warn","error"],r={},s=null;function o(e,t){var n=e[t];if("function"==typeof n.bind)return n.bind(e);try{return Function.prototype.bind.call(n,e)}catch(t){return function(){return Function.prototype.apply.apply(n,[e,arguments])}}}function a(){console.log&&(console.log.apply?console.log.apply(console,arguments):Function.prototype.apply.apply(console.log,[console,arguments])),console.trace&&console.trace()}function c(){for(var n=this.getLevel(),r=0;r<i.length;r++){var s=i[r];this[s]=r<n?e:this.methodFactory(s,n,this.name)}if(this.log=this.debug,typeof console===t&&n<this.levels.SILENT)return"No console available for logging"}function d(e){return function(){typeof console!==t&&(c.call(this),this[e].apply(this,arguments))}}function l(i,r,s){return function(i){return"debug"===i&&(i="log"),typeof console!==t&&("trace"===i&&n?a:void 0!==console[i]?o(console,i):void 0!==console.log?o(console,"log"):e)}(i)||d.apply(this,arguments)}function u(e,n){var o,a,d,u=this,h="loglevel";function p(){var e;if(typeof window!==t&&h){try{e=window.localStorage[h]}catch(e){}if(typeof e===t)try{var n=window.document.cookie,i=encodeURIComponent(h),r=n.indexOf(i+"=");-1!==r&&(e=/^([^;]+)/.exec(n.slice(r+i.length+1))[1])}catch(e){}return void 0===u.levels[e]&&(e=void 0),e}}function m(e){var t=e;if("string"==typeof t&&void 0!==u.levels[t.toUpperCase()]&&(t=u.levels[t.toUpperCase()]),"number"==typeof t&&t>=0&&t<=u.levels.SILENT)return t;throw new TypeError("log.setLevel() called with invalid level: "+e)}"string"==typeof e?h+=":"+e:"symbol"==typeof e&&(h=void 0),u.name=e,u.levels={TRACE:0,DEBUG:1,INFO:2,WARN:3,ERROR:4,SILENT:5},u.methodFactory=n||l,u.getLevel=function(){return null!=d?d:null!=a?a:o},u.setLevel=function(e,n){return d=m(e),!1!==n&&function(e){var n=(i[e]||"silent").toUpperCase();if(typeof window!==t&&h){try{return void(window.localStorage[h]=n)}catch(e){}try{window.document.cookie=encodeURIComponent(h)+"="+n+";"}catch(e){}}}(d),c.call(u)},u.setDefaultLevel=function(e){a=m(e),p()||u.setLevel(e,!1)},u.resetLevel=function(){d=null,function(){if(typeof window!==t&&h){try{window.localStorage.removeItem(h)}catch(e){}try{window.document.cookie=encodeURIComponent(h)+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC"}catch(e){}}}(),c.call(u)},u.enableAll=function(e){u.setLevel(u.levels.TRACE,e)},u.disableAll=function(e){u.setLevel(u.levels.SILENT,e)},u.rebuild=function(){if(s!==u&&(o=m(s.getLevel())),c.call(u),s===u)for(var e in r)r[e].rebuild()},o=m(s?s.getLevel():"WARN");var g=p();null!=g&&(d=m(g)),c.call(u)}(s=new u).getLogger=function(e){if("symbol"!=typeof e&&"string"!=typeof e||""===e)throw new TypeError("You must supply a name when creating a logger.");var t=r[e];return t||(t=r[e]=new u(e,s.methodFactory)),t};var h=typeof window!==t?window.log:void 0;return s.noConflict=function(){return typeof window!==t&&window.log===s&&(window.log=h),s},s.getLoggers=function(){return r},s.default=s,s},(xn=Ln).exports?xn.exports=Dn():An.log=Dn()),Ln.exports);!function(e){e[e.trace=0]="trace",e[e.debug=1]="debug",e[e.info=2]="info",e[e.warn=3]="warn",e[e.error=4]="error",e[e.silent=5]="silent"}(Nn||(Nn={})),function(e){e.Default="livekit",e.Room="livekit-room",e.Participant="livekit-participant",e.Track="livekit-track",e.Publication="livekit-track-publication",e.Engine="livekit-engine",e.Signal="livekit-signal",e.PCManager="livekit-pc-manager",e.PCTransport="livekit-pc-transport",e.E2EE="lk-e2ee"}(Mn||(Mn={}));let Un=jn.getLogger("livekit");function Fn(e){const t=jn.getLogger(e);return t.setDefaultLevel(Un.getLevel()),t}Object.values(Mn).map(e=>jn.getLogger(e)),Un.setDefaultLevel(Nn.info);const Bn=jn.getLogger("lk-e2ee"),Vn=7e3,qn=[0,300,1200,2700,4800,Vn,Vn,Vn,Vn,Vn];function zn(e,t,n,i){return new(n||(n=Promise))(function(r,s){function o(e){try{c(i.next(e))}catch(e){s(e)}}function a(e){try{c(i.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}c((i=i.apply(e,t||[])).next())})}function Wn(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=function(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);
vendor: 5,202 bytes, line 1
1if(e&&"number"==typeof e.length)return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(e),t={},i("next"),i("throw"),i("return"),t[Symbol.asyncIterator]=function(){return this},t);function i(n){t[n]=e[n]&&function(t){return new Promise(function(i,r){!function(e,t,n,i){Promise.resolve(i).then(function(t){e({value:t,done:n})},t)}(i,r,(t=e[n](t)).done,t.value)})}}}"function"==typeof SuppressedError&&SuppressedError;var Hn,Gn={exports:{}},Kn=function(){if(Hn)return Gn.exports;Hn=1;var e,t="object"==typeof Reflect?Reflect:null,n=t&&"function"==typeof t.apply?t.apply:function(e,t,n){return Function.prototype.apply.call(e,t,n)};e=t&&"function"==typeof t.ownKeys?t.ownKeys:Object.getOwnPropertySymbols?function(e){return Object.getOwnPropertyNames(e).concat(Object.getOwnPropertySymbols(e))}:function(e){return Object.getOwnPropertyNames(e)};var i=Number.isNaN||function(e){return e!=e};function r(){r.init.call(this)}Gn.exports=r,Gn.exports.once=function(e,t){return new Promise(function(n,i){function r(n){e.removeListener(t,s),i(n)}function s(){"function"==typeof e.removeListener&&e.removeListener("error",r),n([].slice.call(arguments))}m(e,t,s,{once:!0}),"error"!==t&&function(e,t){"function"==typeof e.on&&m(e,"error",t,{once:!0})}(e,r)})},r.EventEmitter=r,r.prototype._events=void 0,r.prototype._eventsCount=0,r.prototype._maxListeners=void 0;var s=10;function o(e){if("function"!=typeof e)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}function a(e){return void 0===e._maxListeners?r.defaultMaxListeners:e._maxListeners}function c(e,t,n,i){var r,s,c,d;if(o(n),void 0===(s=e._events)?(s=e._events=Object.create(null),e._eventsCount=0):(void 0!==s.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),s=e._events),c=s[t]),void 0===c)c=s[t]=n,++e._eventsCount;else if("function"==typeof c?c=s[t]=i?[n,c]:[c,n]:i?c.unshift(n):c.push(n),(r=a(e))>0&&c.length>r&&!c.warned){c.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+c.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=e,l.type=t,l.count=c.length,d=l,console&&console.warn&&console.warn(d)}return e}function d(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function l(e,t,n){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=d.bind(i);return r.listener=n,i.wrapFn=r,r}function u(e,t,n){var i=e._events;if(void 0===i)return[];var r=i[t];return void 0===r?[]:"function"==typeof r?n?[r.listener||r]:[r]:n?function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(r):p(r,r.length)}function h(e){var t=this._events;if(void 0!==t){var n=t[e];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function p(e,t){for(var n=new Array(t),i=0;i<t;++i)n[i]=e[i];return n}function m(e,t,n,i){if("function"==typeof e.on)i.once?e.once(t,n):e.on(t,n);else{if("function"!=typeof e.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e);e.addEventListener(t,function r(s){i.once&&e.removeEventListener(t,r),n(s)})}}return Object.defineProperty(r,"defaultMaxListeners",{enumerable:!0,get:function(){return s},set:function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");s=e}}),r.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},r.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||i(e))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+e+".");return this._maxListeners=e,this},r.prototype.getMaxListeners=function(){return a(this)},r.prototype.emit=function(e){for(var t=[],i=1;i<arguments.length;i++)t.push(arguments[i]);var r="error"===e,s=this._events;if(void 0!==s)r=r&&void 0===s.error;else if(!r)return!1;if(r){var o;if(t.length>0&&(o=t[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var c=s[e];if(void 0===c)return!1;if("function"==typeof c)n(c,this,t);else{var d=c.length,l=p(c,d);for(i=0;i<d;++i)n(l[i],this,t)}return!0},r.prototype.addListener=function(e,t){return c(this,e,t,!1)},r.prototype.on=r.prototype.addListener,r.prototype.prependListener=function(e,t){return c(this,e,t,!0)},r.prototype.once=function(e,t){return o(t),this.on(e,l(this,e,t)),this},r.prototype.prependOnceListener=function(e,t){return o(t),this.prependListener(e,l(this,e,t)),this},r.prototype.removeListener=function(e,t){var n,i,r,s,a;if(o(t),void 0===(i=this._events))return this;if(void 0===(n=i[e]))return this;if(n===t||n.listener===t)0===--this._eventsCount?this._events=Object.create(null):(delete i[e],i.removeListener&&this.emit
vendor: 2,295 bytes, line 1
1("removeListener",e,n.listener||t));else if("function"!=typeof n){for(r=-1,s=n.length-1;s>=0;s--)if(n[s]===t||n[s].listener===t){a=n[s].listener,r=s;break}if(r<0)return this;0===r?n.shift():function(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}(n,r),1===n.length&&(i[e]=n[0]),void 0!==i.removeListener&&this.emit("removeListener",e,a||t)}return this},r.prototype.off=r.prototype.removeListener,r.prototype.removeAllListeners=function(e){var t,n,i;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[e]&&(0===--this._eventsCount?this._events=Object.create(null):delete n[e]),this;if(0===arguments.length){var r,s=Object.keys(n);for(i=0;i<s.length;++i)"removeListener"!==(r=s[i])&&this.removeAllListeners(r);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(void 0!==t)for(i=t.length-1;i>=0;i--)this.removeListener(e,t[i]);return this},r.prototype.listeners=function(e){return u(this,e,!0)},r.prototype.rawListeners=function(e){return u(this,e,!1)},r.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):h.call(e,t)},r.prototype.listenerCount=h,r.prototype.eventNames=function(){return this._eventsCount>0?e(this._events):[]},Gn.exports}();let Jn=!0,Qn=!0;function Yn(e,t,n){const i=e.match(t);return i&&i.length>=n&&parseFloat(i[n],10)}function Xn(e,t,n){if(!e.RTCPeerConnection)return;const i=e.RTCPeerConnection.prototype,r=i.addEventListener;i.addEventListener=function(e,i){if(e!==t)return r.apply(this,arguments);const s=e=>{const t=n(e);t&&(i.handleEvent?i.handleEvent(t):i(t))};return this._eventMap=this._eventMap||{},this._eventMap[t]||(this._eventMap[t]=new Map),this._eventMap[t].set(i,s),r.apply(this,[e,s])};const s=i.removeEventListener;i.removeEventListener=function(e,n){if(e!==t||!this._eventMap||!this._eventMap[t])return s.apply(this,arguments);if(!this._eventMap[t].has(n))return s.apply(this,arguments);const i=this._eventMap[t].get(n);return this._eventMap[t].delete(n),0===this._eventMap[t].size&&delete this._eventMap[t],0===Object.keys(this._eventMap).length&&delete this._eventMap,s.apply(this,[e,i])}
vendor: 4,592 bytes, line 1
1,Object.defineProperty(i,"on"+t,{get(){return this["_on"+t]},set(e){this["_on"+t]&&(this.removeEventListener(t,this["_on"+t]),delete this["_on"+t]),e&&this.addEventListener(t,this["_on"+t]=e)},enumerable:!0,configurable:!0})}function $n(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(Jn=e,e?"adapter.js logging disabled":"adapter.js logging enabled")}function Zn(e){return"boolean"!=typeof e?new Error("Argument type: "+typeof e+". Please use a boolean."):(Qn=!e,"adapter.js deprecation warnings "+(e?"disabled":"enabled"))}function ei(){if("object"==typeof window){if(Jn)return;"undefined"!=typeof console&&"function"==typeof console.log&&console.log.apply(console,arguments)}}function ti(e,t){Qn&&console.warn(e+" is deprecated, please use "+t+" instead.")}function ni(e){return"[object Object]"===Object.prototype.toString.call(e)}function ii(e){return ni(e)?Object.keys(e).reduce(function(t,n){const i=ni(e[n]),r=i?ii(e[n]):e[n],s=i&&!Object.keys(r).length;return void 0===r||s?t:Object.assign(t,{[n]:r})},{}):e}function ri(e,t,n){t&&!n.has(t.id)&&(n.set(t.id,t),Object.keys(t).forEach(i=>{i.endsWith("Id")?ri(e,e.get(t[i]),n):i.endsWith("Ids")&&t[i].forEach(t=>{ri(e,e.get(t),n)})}))}function si(e,t,n){const i=n?"outbound-rtp":"inbound-rtp",r=new Map;if(null===t)return r;const s=[];return e.forEach(e=>{"track"===e.type&&e.trackIdentifier===t.id&&s.push(e)}),s.forEach(t=>{e.forEach(n=>{n.type===i&&n.trackId===t.id&&ri(e,n,r)})}),r}const oi=ei;function ai(e,t){const n=e&&e.navigator;if(!n.mediaDevices)return;const i=function(e){if("object"!=typeof e||e.mandatory||e.optional)return e;const t={};return Object.keys(e).forEach(n=>{if("require"===n||"advanced"===n||"mediaSource"===n)return;const i="object"==typeof e[n]?e[n]:{ideal:e[n]};void 0!==i.exact&&"number"==typeof i.exact&&(i.min=i.max=i.exact);const r=function(e,t){return e?e+t.charAt(0).toUpperCase()+t.slice(1):"deviceId"===t?"sourceId":t};if(void 0!==i.ideal){t.optional=t.optional||[];let e={};"number"==typeof i.ideal?(e[r("min",n)]=i.ideal,t.optional.push(e),e={},e[r("max",n)]=i.ideal,t.optional.push(e)):(e[r("",n)]=i.ideal,t.optional.push(e))}void 0!==i.exact&&"number"!=typeof i.exact?(t.mandatory=t.mandatory||{},t.mandatory[r("",n)]=i.exact):["min","max"].forEach(e=>{void 0!==i[e]&&(t.mandatory=t.mandatory||{},t.mandatory[r(e,n)]=i[e])})}),e.advanced&&(t.optional=(t.optional||[]).concat(e.advanced)),t},r=function(e,r){if(t.version>=61)return r(e);if((e=JSON.parse(JSON.stringify(e)))&&"object"==typeof e.audio){const t=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])};t((e=JSON.parse(JSON.stringify(e))).audio,"autoGainControl","googAutoGainControl"),t(e.audio,"noiseSuppression","googNoiseSuppression"),e.audio=i(e.audio)}if(e&&"object"==typeof e.video){let s=e.video.facingMode;s=s&&("object"==typeof s?s:{ideal:s});const o=t.version<66;if(s&&("user"===s.exact||"environment"===s.exact||"user"===s.ideal||"environment"===s.ideal)&&(!n.mediaDevices.getSupportedConstraints||!n.mediaDevices.getSupportedConstraints().facingMode||o)){let t;if(delete e.video.facingMode,"environment"===s.exact||"environment"===s.ideal?t=["back","rear"]:"user"!==s.exact&&"user"!==s.ideal||(t=["front"]),t)return n.mediaDevices.enumerateDevices().then(n=>{n=n.filter(e=>"videoinput"===e.kind);let o=n.find(e=>t.some(t=>e.label.toLowerCase().includes(t)));return!o&&n.length&&t.includes("back")&&(o=n[n.length-1]),o&&(e.video.deviceId=s.exact?{exact:o.deviceId}:{ideal:o.deviceId}),e.video=i(e.video),oi("chrome: "+JSON.stringify(e)),r(e)})}e.video=i(e.video)}return oi("chrome: "+JSON.stringify(e)),r(e)},s=function(e){return t.version>=64?e:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[e.name]||e.name,message:e.message,constraint:e.constraint||e.constraintName,toString(){return this.name+(this.message&&": ")+this.message}}};if(n.getUserMedia=function(e,t,i){r(e,e=>{n.webkitGetUserMedia(e,t,e=>{i&&i(s(e))})})}.bind(n),n.mediaDevices.getUserMedia){const e=n.mediaDevices.getUserMedia.bind(n.mediaDevices);n.mediaDevices.getUserMedia=function(t){return r(t,t=>e(t).then(e=>{if(t.audio&&!e.getAudioTracks().length||t.video&&!e.getVideoTracks().length)throw e.getTracks().forEac
vendor: 4,100 bytes, line 1
1h(e=>{e.stop()}),new DOMException("","NotFoundError");return e},e=>Promise.reject(s(e))))}}}function ci(e){e.MediaStream=e.MediaStream||e.webkitMediaStream}function di(e){if("object"==typeof e&&e.RTCPeerConnection&&!("ontrack"in e.RTCPeerConnection.prototype)){Object.defineProperty(e.RTCPeerConnection.prototype,"ontrack",{get(){return this._ontrack},set(e){this._ontrack&&this.removeEventListener("track",this._ontrack),this.addEventListener("track",this._ontrack=e)},enumerable:!0,configurable:!0});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){return this._ontrackpoly||(this._ontrackpoly=t=>{t.stream.addEventListener("addtrack",n=>{let i;i=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===n.track.id):{track:n.track};const r=new Event("track");r.track=n.track,r.receiver=i,r.transceiver={receiver:i},r.streams=[t.stream],this.dispatchEvent(r)}),t.stream.getTracks().forEach(n=>{let i;i=e.RTCPeerConnection.prototype.getReceivers?this.getReceivers().find(e=>e.track&&e.track.id===n.id):{track:n};const r=new Event("track");r.track=n,r.receiver=i,r.transceiver={receiver:i},r.streams=[t.stream],this.dispatchEvent(r)})},this.addEventListener("addstream",this._ontrackpoly)),t.apply(this,arguments)}}else Xn(e,"track",e=>(e.transceiver||Object.defineProperty(e,"transceiver",{value:{receiver:e.receiver}}),e))}function li(e){if("object"==typeof e&&e.RTCPeerConnection&&!("getSenders"in e.RTCPeerConnection.prototype)&&"createDTMFSender"in e.RTCPeerConnection.prototype){const t=function(e,t){return{track:t,get dtmf(){return void 0===this._dtmf&&("audio"===t.kind?this._dtmf=e.createDTMFSender(t):this._dtmf=null),this._dtmf},_pc:e}};if(!e.RTCPeerConnection.prototype.getSenders){e.RTCPeerConnection.prototype.getSenders=function(){return this._senders=this._senders||[],this._senders.slice()};const n=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,i){let r=n.apply(this,arguments);return r||(r=t(this,e),this._senders.push(r)),r};const i=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){i.apply(this,arguments);const t=this._senders.indexOf(e);-1!==t&&this._senders.splice(t,1)}}const n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._senders=this._senders||[],n.apply(this,[e]),e.getTracks().forEach(e=>{this._senders.push(t(this,e))})};const i=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){this._senders=this._senders||[],i.apply(this,[e]),e.getTracks().forEach(e=>{const t=this._senders.find(t=>t.track===e);t&&this._senders.splice(this._senders.indexOf(t),1)})}}else if("object"==typeof e&&e.RTCPeerConnection&&"getSenders"in e.RTCPeerConnection.prototype&&"createDTMFSender"in e.RTCPeerConnection.prototype&&e.RTCRtpSender&&!("dtmf"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e},Object.defineProperty(e.RTCRtpSender.prototype,"dtmf",{get(){return void 0===this._dtmf&&("audio"===this.track.kind?this._dtmf=this._pc.createDTMFSender(this.track):this._dtmf=null),this._dtmf}})}}function ui(e){if(!("object"==typeof e&&e.RTCPeerConnection&&e.RTCRtpSender&&e.RTCRtpReceiver))return;if(!("getStats"in e.RTCRtpSender.prototype)){const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});const n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){const e=this;return this._pc.getStats().then(t=>si(t,e.track,!0))}}if(!("getStats"in e.RTCRtpReceiver.prototype)){const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);
vendor: 4,181 bytes, line 1
1return e.forEach(e=>e._pc=this),e}),Xn(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){const e=this;return this._pc.getStats().then(t=>si(t,e.track,!1))}}if(!("getStats"in e.RTCRtpSender.prototype)||!("getStats"in e.RTCRtpReceiver.prototype))return;const t=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){if(arguments.length>0&&arguments[0]instanceof e.MediaStreamTrack){const e=arguments[0];let t,n,i;return this.getSenders().forEach(n=>{n.track===e&&(t?i=!0:t=n)}),this.getReceivers().forEach(t=>(t.track===e&&(n?i=!0:n=t),t.track===e)),i||t&&n?Promise.reject(new DOMException("There are more than one sender or receiver for the track.","InvalidAccessError")):t?t.getStats():n?n.getStats():Promise.reject(new DOMException("There is no sender or receiver for the track.","InvalidAccessError"))}return t.apply(this,arguments)}}function hi(e){e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},Object.keys(this._shimmedLocalStreams).map(e=>this._shimmedLocalStreams[e][0])};const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addTrack=function(e,n){if(!n)return t.apply(this,arguments);this._shimmedLocalStreams=this._shimmedLocalStreams||{};const i=t.apply(this,arguments);return this._shimmedLocalStreams[n.id]?-1===this._shimmedLocalStreams[n.id].indexOf(i)&&this._shimmedLocalStreams[n.id].push(i):this._shimmedLocalStreams[n.id]=[n,i],i};const n=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(e){this._shimmedLocalStreams=this._shimmedLocalStreams||{},e.getTracks().forEach(e=>{const t=this.getSenders().find(t=>t.track===e);if(t)throw new DOMException("Track already exists.","InvalidAccessError")});const t=this.getSenders();n.apply(this,arguments);const i=this.getSenders().filter(e=>-1===t.indexOf(e));this._shimmedLocalStreams[e.id]=[e].concat(i)};const i=e.RTCPeerConnection.prototype.removeStream;e.RTCPeerConnection.prototype.removeStream=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},delete this._shimmedLocalStreams[e.id],i.apply(this,arguments)};const r=e.RTCPeerConnection.prototype.removeTrack;e.RTCPeerConnection.prototype.removeTrack=function(e){return this._shimmedLocalStreams=this._shimmedLocalStreams||{},e&&Object.keys(this._shimmedLocalStreams).forEach(t=>{const n=this._shimmedLocalStreams[t].indexOf(e);-1!==n&&this._shimmedLocalStreams[t].splice(n,1),1===this._shimmedLocalStreams[t].length&&delete this._shimmedLocalStreams[t]}),r.apply(this,arguments)}}function pi(e,t){if(!e.RTCPeerConnection)return;if(e.RTCPeerConnection.prototype.addTrack&&t.version>=65)return hi(e);const n=e.RTCPeerConnection.prototype.getLocalStreams;e.RTCPeerConnection.prototype.getLocalStreams=function(){const e=n.apply(this);return this._reverseStreams=this._reverseStreams||{},e.map(e=>this._reverseStreams[e.id])};const i=e.RTCPeerConnection.prototype.addStream;e.RTCPeerConnection.prototype.addStream=function(t){if(this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},t.getTracks().forEach(e=>{const t=this.getSenders().find(t=>t.track===e);if(t)throw new DOMException("Track already exists.","InvalidAccessError")}),!this._reverseStreams[t.id]){const n=new e.MediaStream(t.getTracks());this._streams[t.id]=n,this._reverseStreams[n.id]=t,t=n}i.apply(this,[t])};const r=e.RTCPeerConnection.prototype.removeStream;function s(e,t){let n=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(t=>{const i=e._reverseStreams[t],r=e._streams[i.id];n=n.replace(new RegExp(r.id,"g"),i.id)}),new RTCSessionDescription({type:t.type,sdp:n})}e.RTCPeerConnection.prototype.removeStream=function(e){this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{},r.apply(this,[this._streams[e.id]||e]),delete this._reverseStreams[this._streams[e.id]?this._streams[e.id].id:e.id],delete this._streams[e.id]},e.RTCPeerConnection.prototype.addTrack=function(t,n){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");
vendor: 5,452 bytes, line 1
1const i=[].slice.call(arguments,1);if(1!==i.length||!i[0].getTracks().find(e=>e===t))throw new DOMException("The adapter.js addTrack polyfill only supports a single stream which is associated with the specified track.","NotSupportedError");const r=this.getSenders().find(e=>e.track===t);if(r)throw new DOMException("Track already exists.","InvalidAccessError");this._streams=this._streams||{},this._reverseStreams=this._reverseStreams||{};const s=this._streams[n.id];if(s)s.addTrack(t),Promise.resolve().then(()=>{this.dispatchEvent(new Event("negotiationneeded"))});else{const i=new e.MediaStream([t]);this._streams[n.id]=i,this._reverseStreams[i.id]=n,this.addStream(i)}return this.getSenders().find(e=>e.track===t)},["createOffer","createAnswer"].forEach(function(t){const n=e.RTCPeerConnection.prototype[t],i={[t](){const e=arguments;return arguments.length&&"function"==typeof arguments[0]?n.apply(this,[t=>{const n=s(this,t);e[0].apply(null,[n])},t=>{e[1]&&e[1].apply(null,t)},arguments[2]]):n.apply(this,arguments).then(e=>s(this,e))}};e.RTCPeerConnection.prototype[t]=i[t]});const o=e.RTCPeerConnection.prototype.setLocalDescription;e.RTCPeerConnection.prototype.setLocalDescription=function(){return arguments.length&&arguments[0].type?(arguments[0]=function(e,t){let n=t.sdp;return Object.keys(e._reverseStreams||[]).forEach(t=>{const i=e._reverseStreams[t],r=e._streams[i.id];n=n.replace(new RegExp(i.id,"g"),r.id)}),new RTCSessionDescription({type:t.type,sdp:n})}(this,arguments[0]),o.apply(this,arguments)):o.apply(this,arguments)};const a=Object.getOwnPropertyDescriptor(e.RTCPeerConnection.prototype,"localDescription");Object.defineProperty(e.RTCPeerConnection.prototype,"localDescription",{get(){const e=a.get.apply(this);return""===e.type?e:s(this,e)}}),e.RTCPeerConnection.prototype.removeTrack=function(e){if("closed"===this.signalingState)throw new DOMException("The RTCPeerConnection's signalingState is 'closed'.","InvalidStateError");if(!e._pc)throw new DOMException("Argument 1 of RTCPeerConnection.removeTrack does not implement interface RTCRtpSender.","TypeError");if(e._pc!==this)throw new DOMException("Sender was not created by this connection.","InvalidAccessError");let t;this._streams=this._streams||{},Object.keys(this._streams).forEach(n=>{this._streams[n].getTracks().find(t=>e.track===t)&&(t=this._streams[n])}),t&&(1===t.getTracks().length?this.removeStream(this._reverseStreams[t.id]):t.removeTrack(e.track),this.dispatchEvent(new Event("negotiationneeded")))}}function mi(e,t){!e.RTCPeerConnection&&e.webkitRTCPeerConnection&&(e.RTCPeerConnection=e.webkitRTCPeerConnection),e.RTCPeerConnection&&t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){const n=e.RTCPeerConnection.prototype[t],i={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=i[t]})}function gi(e,t){Xn(e,"negotiationneeded",e=>{const n=e.target;if(!(t.version<72||n.getConfiguration&&"plan-b"===n.getConfiguration().sdpSemantics)||"stable"===n.signalingState)return e})}var fi=Object.freeze({__proto__:null,fixNegotiationNeeded:gi,shimAddTrackRemoveTrack:pi,shimAddTrackRemoveTrackWithNative:hi,shimGetSendersWithDtmf:li,shimGetUserMedia:ai,shimMediaStream:ci,shimOnTrack:di,shimPeerConnection:mi,shimSenderReceiverGetStats:ui});function vi(e,t){const n=e&&e.navigator,i=e&&e.MediaStreamTrack;if(n.getUserMedia=function(e,t,i){ti("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),n.mediaDevices.getUserMedia(e).then(t,i)},!(t.version>55&&"autoGainControl"in n.mediaDevices.getSupportedConstraints())){const e=function(e,t,n){t in e&&!(n in e)&&(e[n]=e[t],delete e[t])},t=n.mediaDevices.getUserMedia.bind(n.mediaDevices);if(n.mediaDevices.getUserMedia=function(n){return"object"==typeof n&&"object"==typeof n.audio&&(n=JSON.parse(JSON.stringify(n)),e(n.audio,"autoGainControl","mozAutoGainControl"),e(n.audio,"noiseSuppression","mozNoiseSuppression")),t(n)},i&&i.prototype.getSettings){const t=i.prototype.getSettings;i.prototype.getSettings=function(){const n=t.apply(this,arguments);return e(n,"mozAutoGainControl","autoGainControl"),e(n,"mozNoiseSuppression","noiseSuppression"),n}}if(i&&i.prototype.applyConstraints){const t=i.prototype.applyConstraints;i.prototype.applyConstraints=function(n){return"audio"===this.kind&&"object"==typeof n&&(n=JSON.parse(JSON.stringify(n)),e(n,"autoGainControl","mozAutoGainControl"),e(n,"noiseSuppression","mozNoiseSuppression")),t.apply(this,[n])}}}}function bi(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function _i(e,t){if("object"!=typeof e||!e.RTCPeerConnection&&!e.mozRTCPeerConnection)return;!e.RTCPeerConnection&&e.mozRTCPeerConnection&&(e.RTCPeerConnection=e.mozRTCPeerConnection),t.version<53&&["setLocalDescription","setRemoteDescription","addIceCandidate"].forEach(function(t){const n=e.RTCPeerConnection.prototype[t],i={[t](){return arguments[0]=new("addIceCandidate"===t?e.RTCIceCandidate:e.RTCSessionDescription)(arguments[0]),n.apply(this,arguments)}};e.RTCPeerConnection.prototype[t]=i[t]});const n={inboundrtp:"inbound-rtp",outboundrtp:"outbound-rtp",candidatepair:"candidate-pair",localcandidate:"local-candidate",remotec
vendor: 4,598 bytes, line 1
1andidate:"remote-candidate"},i=e.RTCPeerConnection.prototype.getStats;e.RTCPeerConnection.prototype.getStats=function(){const[e,r,s]=arguments;return i.apply(this,[e||null]).then(e=>{if(t.version<53&&!r)try{e.forEach(e=>{e.type=n[e.type]||e.type})}catch(t){if("TypeError"!==t.name)throw t;e.forEach((t,i)=>{e.set(i,Object.assign({},t,{type:n[t.type]||t.type}))})}return e}).then(r,s)}}function yi(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpSender.prototype)return;const t=e.RTCPeerConnection.prototype.getSenders;t&&(e.RTCPeerConnection.prototype.getSenders=function(){const e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e});const n=e.RTCPeerConnection.prototype.addTrack;n&&(e.RTCPeerConnection.prototype.addTrack=function(){const e=n.apply(this,arguments);return e._pc=this,e}),e.RTCRtpSender.prototype.getStats=function(){return this.track?this._pc.getStats(this.track):Promise.resolve(new Map)}}function ki(e){if("object"!=typeof e||!e.RTCPeerConnection||!e.RTCRtpSender)return;if(e.RTCRtpSender&&"getStats"in e.RTCRtpReceiver.prototype)return;const t=e.RTCPeerConnection.prototype.getReceivers;t&&(e.RTCPeerConnection.prototype.getReceivers=function(){const e=t.apply(this,[]);return e.forEach(e=>e._pc=this),e}),Xn(e,"track",e=>(e.receiver._pc=e.srcElement,e)),e.RTCRtpReceiver.prototype.getStats=function(){return this._pc.getStats(this.track)}}function Si(e){e.RTCPeerConnection&&!("removeStream"in e.RTCPeerConnection.prototype)&&(e.RTCPeerConnection.prototype.removeStream=function(e){ti("removeStream","removeTrack"),this.getSenders().forEach(t=>{t.track&&e.getTracks().includes(t.track)&&this.removeTrack(t)})})}function Ti(e){e.DataChannel&&!e.RTCDataChannel&&(e.RTCDataChannel=e.DataChannel)}function Ci(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.addTransceiver;t&&(e.RTCPeerConnection.prototype.addTransceiver=function(){this.setParametersPromises=[];let e=arguments[1]&&arguments[1].sendEncodings;void 0===e&&(e=[]),e=[...e];const n=e.length>0;n&&e.forEach(e=>{if("rid"in e&&!/^[a-z0-9]{0,16}$/i.test(e.rid))throw new TypeError("Invalid RID value provided.");if("scaleResolutionDownBy"in e&&!(parseFloat(e.scaleResolutionDownBy)>=1))throw new RangeError("scale_resolution_down_by must be >= 1.0");if("maxFramerate"in e&&!(parseFloat(e.maxFramerate)>=0))throw new RangeError("max_framerate must be >= 0.0")});const i=t.apply(this,arguments);if(n){const{sender:t}=i,n=t.getParameters();(!("encodings"in n)||1===n.encodings.length&&0===Object.keys(n.encodings[0]).length)&&(n.encodings=e,t.sendEncodings=e,this.setParametersPromises.push(t.setParameters(n).then(()=>{delete t.sendEncodings}).catch(()=>{delete t.sendEncodings})))}return i})}function wi(e){if("object"!=typeof e||!e.RTCRtpSender)return;const t=e.RTCRtpSender.prototype.getParameters;t&&(e.RTCRtpSender.prototype.getParameters=function(){const e=t.apply(this,arguments);return"encodings"in e||(e.encodings=[].concat(this.sendEncodings||[{}])),e})}function Ei(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}function Pi(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype.createAnswer;e.RTCPeerConnection.prototype.createAnswer=function(){return this.setParametersPromises&&this.setParametersPromises.length?Promise.all(this.setParametersPromises).then(()=>t.apply(this,arguments)).finally(()=>{this.setParametersPromises=[]}):t.apply(this,arguments)}}var Ri=Object.freeze({__proto__:null,shimAddTransceiver:Ci,shimCreateAnswer:Pi,shimCreateOffer:Ei,shimGetDisplayMedia:function(e,t){e.navigator.mediaDevices&&"getDisplayMedia"in e.navigator.mediaDevices||e.navigator.mediaDevices&&(e.navigator.mediaDevices.getDisplayMedia=function(n){if(!n||!n.video){const e=new DOMException("getDisplayMedia without video constraints is undefined");return e.name="NotFoundError",e.code=8,Promise.reject(e)}return!0===n.video?n.video={mediaSource:t}:n.video.mediaSource=t,e.navigator.mediaDevices.getUserMedia(n)})},shimGetParameters:wi,shimGetUserMedia:vi,shimOnTrack:bi,shimPeerConnection:_i,shimRTCDataChannel:Ti,shimReceiverGetStats:ki,shimRemoveStream:Si,shimSenderGetStats:yi});function Ii(e){if("object"==typeof e&&e.RTCPeerConnection){if("getL
1ocalStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in e.RTCPeerConnection.prototype)){const t=e.RTCPeerConnection.prototype.addTrack;e.RTCPeerConnection.prototype.addStream=function(e){this._localStreams||(this._localStreams=[]),this._localStreams.includes(e)||this._localStreams.push(e),e.getAudioTracks().forEach(n=>t.call(this,n,e)),e.getVideoTracks().forEach(n=>t.call(this,n,e))},e.RTCPeerConnection.prototype.addTrack=function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return i&&i.forEach(e=>{this._localStreams?this._localStreams.includes(e)||this._localStreams.push(e):this._localStreams=[e]}),t.apply(this,arguments)}}"removeStream"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.removeStream=function(e){this._localStreams||(this._localStreams=[]);const t=this._localStreams.indexOf(e);if(-1===t)return;this._localStreams.splice(t,1);const n=e.getTracks();this.getSenders().forEach(e=>{n.includes(e.track)&&this.removeTrack(e)})})}}function Oi(e){if("object"==typeof e&&e.RTCPeerConnection&&("getRemoteStreams"in e.RTCPeerConnection.prototype||(e.RTCPeerConnection.prototype.getRemoteStreams=function(){return this._remoteStreams?this._remoteStreams:[]}),!("onaddstream"in e.RTCPeerConnection.prototype))){Object.defineProperty(e.RTCPeerConnection.prototype,"onaddstream",{get(){return this._onaddstream},set(e){this._onaddstream&&(this.removeEventListener("addstream",this._onaddstream),this.removeEventListener("track",this._onaddstreampoly)),this.addEventListener("addstream",this._onaddstream=e),this.addEventListener("track",this._onaddstreampoly=e=>{e.streams.forEach(e=>{if(this._remoteStreams||(this._remoteStreams=[]),this._remoteStreams.includes(e))return;this._remoteStreams.push(e);const t=new Event("addstream");t.stream=e,this.dispatchEvent(t)})})}});const t=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){const e=this;return this._onaddstreampoly||this.addEventListener("track",this._onaddstreampoly=function(t){t.streams.forEach(t=>{if(e._remoteStreams||(e._remoteStreams=[]),e._remoteStreams.indexOf(t)>=0)return;e._remoteStreams.push(t);const n=new Event("addstream");n.stream=t,e.dispatchEvent(n)})}),t.apply(e,arguments)}}}function xi(e){if("object"!=typeof e||!e.RTCPeerConnection)return;const t=e.RTCPeerConnection.prototype,n=t.createOffer,i=t.createAnswer,r=t.setLocalDescription,s=t.setRemoteDescription,o=t.addIceCandidate;t.createOffer=function(e,t){const i=arguments.length>=2?arguments[2]:arguments[0],r=n.apply(this,[i]);return t?(r.then(e,t),Promise.resolve()):r},t.createAnswer=function(e,t){const n=arguments.length>=2?arguments[2]:arguments[0],r=i.apply(this,[n]);return t?(r.then(e,t),Promise.resolve()):r};let a=function(e,t,n){const i=r.apply(this,[e]);return n?(i.then(t,n),Promise.resolve()):i};t.setLocalDescription=a,a=function(e,t,n){const i=s.apply(this,[e]);return n?(i.then(t,n),Promise.resolve()):i},t.setRemoteDescription=a,a=function(e,t,n){const i=o.apply(this,[e]);return n?(i.then(t,n),Promise.resolve()):i},t.addIceCandidate=a}function Ai(e){const t=e&&e.navigator;if(t.mediaDevices&&t.mediaDevices.getUserMedia){const e=t.mediaDevices,n=e.getUserMedia.bind(e);t.mediaDevices.getUserMedia=e=>n(Di(e))}!t.getUserMedia&&t.mediaDevices&&t.mediaDevices.getUserMedia&&(t.getUserMedia=function(e,n,i){t.mediaDevices.getUserMedia(e).then(n,i)}.bind(t))}function Di(e){return e&&void 0!==e.video?Object.assign({},e,{video:ii(e.video)}):e}function Ni(e){if(!e.RTCPeerConnection)return;const t=e.RTCPeerConnection;e.RTCPeerConnection=function(e,n){if(e&&e.iceServers){const t=[];for(let n=0;n<e.iceServers.length;n++){let i=e.iceServers[n];void 0===i.urls&&i.url?(ti("RTCIceServer.url","RTCIceServer.urls"),i=JSON.parse(JSON.stringify(i)),i.urls=i.url,delete i.url,t.push(i)):t.push(e.iceServers[n])}e.iceServers=t}return new t(e,n)},e.RTCPeerConnection.prototype=t.prototype,"generateCertificate"in t&&Object.defineProperty(e.RTCPeerConnection,"generateCertificate",{get:()=>t.generateCertificate})}function Mi(e){"object"==typeof e&&e.RTCTrackEvent&&"receiver"in e.RTCTrackEvent.prototype&&!("transceiver"in e.RTCTrackEvent.prototype)&&Object.defineProperty(e.RTCTrackEvent.prototype,"transceiver",{get(){return{receiver:this.receiver}}})}function Li(e){const t=e.RTCPeerConnection.prototype.createOffer;e.RTCPeerConnection.prototype.createOffer=function(e){if(e){void 0!==e.offerToReceiveAudio&&(e.offerToReceiveAudio=!!e.offerToReceiveAudio);const t=this.getTransceivers().find(e=>"audio"===e.receiver.track.kind);!1===e.offerToReceiveAudio&&t?"sendrecv"===t.direction?t.setDirection?t.setDirection("sendonly"):t.direction="sendonly":"recvonly"===t.direction&&(t.setDirection?t.setDirection("inactive"):t.direction="inactive"):!0!==e.offerToReceiveAudio||t||this.addTransceiver("audio",{direction:"recvonly"}),void 0!==e.offerToReceiveVideo&&(e.offerToReceiveVideo=!!e.offerToReceiveVideo);const n=this.getTransceivers().find(e=>"video"===e.receiver.track.kind);!1===e.offerToReceiveVideo&&n?"sendrecv"===n.direction?n.setDirection?n.setDirection("sendonly"):n.direction="sendonly":"recvonly"===n.direction&&(n.setDirection?n.setDirection("inactive"):n.direction="inactive"):!0!==e.offerToReceiveVideo||n||this.addTransceiver("video",{direction:"recvonly"})}return t.apply(this,arguments)}}function ji(e){"object"!=typeof e||e.AudioContext||(e.AudioContext=e.webkitAudioContext)}var Ui,Fi=Object.freeze({__proto__:null,shimAudioContext:ji,shimCallbacksAPI:xi,shimConstraints:Di,shimCreateOfferLegacy:Li,shimGetUserMedia:Ai,shimLocalStreamsAPI:Ii,shimRTCIceServerUrls:Ni,shimRemoteStreamsAPI:Oi,shimTrackEventTransceiver:Mi}),Bi={exports:{}},Vi=(Ui||(Ui=1,function(e){const t={generateIdentifier:function(){return Math.random().toString(36).substring(2,12)}};t.localCName=t.generateIdentifier(),t.splitLines=function(e){return e.trim().split("\n").map(e=>e.trim())},t.splitSections=function(e){return e.split("\nm=").map((e,t)=>(t>0?"m="+e:e).trim()+"\r\n")},t.getDescription=function(e){const n=t.splitSections(e);return n&&n[0]},t.getMediaSections=function(e){const n=t.splitSections(e);return n.shift(),n},t.matchPrefix=function(e,n){return t.splitLines(e).filter(e=>0===e.indexOf(n))},t.parseCandidate=function(e){let t;t=0===e.indexOf("a=candidate:")?e.substring(12).split(" "):e.substring(10).split(" ");const n={foundation:t[0],component:{1:"rtp",2:"rtcp"}[t[1]]||t[1],protocol:t[2].toLowerCase(),priority:parseInt(t[3],10),ip:t[4],address:t[4],port:parseInt(t[5],10),type:t[7]};for(let e=8;e<t.length;e+=2)switch(t[e]){case"raddr":n.relatedAddress=t[e+1];break;case"rport":n.relatedPort=parseInt(t[e+1],10);break;case"tcptype":n.tcpType=t[e+1];break;case"ufrag":n.ufrag=t[e+1],n.usernameFragment=t[e+1];break;default:void 0===n[t[e]]&&(n[t[e]]=t[e+1])}return n},t.writeCandidate=function(e){const t=[];t.push(e.foundation);const n=e.component;"rtp"===n?t.push(1):"rtcp"===n?t.push(2):t.push(n),t.push(e.protocol.toUpperCase()),t.push(e.priority),t.push(e.address||e.ip),t.push(e.port);const i=e.type;return t.push("typ"),t.push(i),"host"!==i&&e.relatedAddress&&e.relatedPort&&(t.push("raddr"),t.pu
vendor: 9,256 bytes, line 1
1sh(e.relatedAddress),t.push("rport"),t.push(e.relatedPort)),e.tcpType&&"tcp"===e.protocol.toLowerCase()&&(t.push("tcptype"),t.push(e.tcpType)),(e.usernameFragment||e.ufrag)&&(t.push("ufrag"),t.push(e.usernameFragment||e.ufrag)),"candidate:"+t.join(" ")},t.parseIceOptions=function(e){return e.substring(14).split(" ")},t.parseRtpMap=function(e){let t=e.substring(9).split(" ");const n={payloadType:parseInt(t.shift(),10)};return t=t[0].split("/"),n.name=t[0],n.clockRate=parseInt(t[1],10),n.channels=3===t.length?parseInt(t[2],10):1,n.numChannels=n.channels,n},t.writeRtpMap=function(e){let t=e.payloadType;void 0!==e.preferredPayloadType&&(t=e.preferredPayloadType);const n=e.channels||e.numChannels||1;return"a=rtpmap:"+t+" "+e.name+"/"+e.clockRate+(1!==n?"/"+n:"")+"\r\n"},t.parseExtmap=function(e){const t=e.substring(9).split(" ");return{id:parseInt(t[0],10),direction:t[0].indexOf("/")>0?t[0].split("/")[1]:"sendrecv",uri:t[1],attributes:t.slice(2).join(" ")}},t.writeExtmap=function(e){return"a=extmap:"+(e.id||e.preferredId)+(e.direction&&"sendrecv"!==e.direction?"/"+e.direction:"")+" "+e.uri+(e.attributes?" "+e.attributes:"")+"\r\n"},t.parseFmtp=function(e){const t={};let n;const i=e.substring(e.indexOf(" ")+1).split(";");for(let e=0;e<i.length;e++)n=i[e].trim().split("="),t[n[0].trim()]=n[1];return t},t.writeFmtp=function(e){let t="",n=e.payloadType;if(void 0!==e.preferredPayloadType&&(n=e.preferredPayloadType),e.parameters&&Object.keys(e.parameters).length){const i=[];Object.keys(e.parameters).forEach(t=>{void 0!==e.parameters[t]?i.push(t+"="+e.parameters[t]):i.push(t)}),t+="a=fmtp:"+n+" "+i.join(";")+"\r\n"}return t},t.parseRtcpFb=function(e){const t=e.substring(e.indexOf(" ")+1).split(" ");return{type:t.shift(),parameter:t.join(" ")}},t.writeRtcpFb=function(e){let t="",n=e.payloadType;return void 0!==e.preferredPayloadType&&(n=e.preferredPayloadType),e.rtcpFeedback&&e.rtcpFeedback.length&&e.rtcpFeedback.forEach(e=>{t+="a=rtcp-fb:"+n+" "+e.type+(e.parameter&&e.parameter.length?" "+e.parameter:"")+"\r\n"}),t},t.parseSsrcMedia=function(e){const t=e.indexOf(" "),n={ssrc:parseInt(e.substring(7,t),10)},i=e.indexOf(":",t);return i>-1?(n.attribute=e.substring(t+1,i),n.value=e.substring(i+1)):n.attribute=e.substring(t+1),n},t.parseSsrcGroup=function(e){const t=e.substring(13).split(" ");return{semantics:t.shift(),ssrcs:t.map(e=>parseInt(e,10))}},t.getMid=function(e){const n=t.matchPrefix(e,"a=mid:")[0];if(n)return n.substring(6)},t.parseFingerprint=function(e){const t=e.substring(14).split(" ");return{algorithm:t[0].toLowerCase(),value:t[1].toUpperCase()}},t.getDtlsParameters=function(e,n){return{role:"auto",fingerprints:t.matchPrefix(e+n,"a=fingerprint:").map(t.parseFingerprint)}},t.writeDtlsParameters=function(e,t){let n="a=setup:"+t+"\r\n";return e.fingerprints.forEach(e=>{n+="a=fingerprint:"+e.algorithm+" "+e.value+"\r\n"}),n},t.parseCryptoLine=function(e){const t=e.substring(9).split(" ");return{tag:parseInt(t[0],10),cryptoSuite:t[1],keyParams:t[2],sessionParams:t.slice(3)}},t.writeCryptoLine=function(e){return"a=crypto:"+e.tag+" "+e.cryptoSuite+" "+("object"==typeof e.keyParams?t.writeCryptoKeyParams(e.keyParams):e.keyParams)+(e.sessionParams?" "+e.sessionParams.join(" "):"")+"\r\n"},t.parseCryptoKeyParams=function(e){if(0!==e.indexOf("inline:"))return null;const t=e.substring(7).split("|");return{keyMethod:"inline",keySalt:t[0],lifeTime:t[1],mkiValue:t[2]?t[2].split(":")[0]:void 0,mkiLength:t[2]?t[2].split(":")[1]:void 0}},t.writeCryptoKeyParams=function(e){return e.keyMethod+":"+e.keySalt+(e.lifeTime?"|"+e.lifeTime:"")+(e.mkiValue&&e.mkiLength?"|"+e.mkiValue+":"+e.mkiLength:"")},t.getCryptoParameters=function(e,n){return t.matchPrefix(e+n,"a=crypto:").map(t.parseCryptoLine)},t.getIceParameters=function(e,n){const i=t.matchPrefix(e+n,"a=ice-ufrag:")[0],r=t.matchPrefix(e+n,"a=ice-pwd:")[0];return i&&r?{usernameFragment:i.substring(12),password:r.substring(10)}:null},t.writeIceParameters=function(e){let t="a=ice-ufrag:"+e.usernameFragment+"\r\na=ice-pwd:"+e.password+"\r\n";return e.iceLite&&(t+="a=ice-lite\r\n"),t},t.parseRtpParameters=function(e){const n={codecs:[],headerExtensions:[],fecMechanisms:[],rtcp:[]},i=t.splitLines(e)[0].split(" ");n.profile=i[2];for(let r=3;r<i.length;r++){const s=i[r],o=t.matchPrefix(e,"a=rtpmap:"+s+" ")[0];if(o){const i=t.parseRtpMap(o),r=t.matchPrefix(e,"a=fmtp:"+s+" ");switch(i.parameters=r.length?t.parseFmtp(r[0]):{},i.rtcpFeedback=t.matchPrefix(e,"a=rtcp-fb:"+s+" ").map(t.parseRtcpFb),n.codecs.push(i),i.name.toUpperCase()){case"RED":case"ULPFEC":n.fecMechanisms.push(i.name.toUpperCase())}}}t.matchPrefix(e,"a=extmap:").forEach(e=>{n.headerExtensions.push(t.parseExtmap(e))});const r=t.matchPrefix(e,"a=rtcp-fb:* ").map(t.parseRtcpFb);return n.codecs.forEach(e=>{r.forEach(t=>{e.rtcpFeedback.find(e=>e.type===t.type&&e.parameter===t.parameter)||e.rtcpFeedback.push(t)})}),n},t.writeRtpDescription=function(e,n){let i="";i+="m="+e+" ",i+=n.codecs.length>0?"9":"0",i+=" "+(n.profile||"UDP/TLS/RTP/SAVPF")+" ",i+=n.codecs.map(e=>void 0!==e.preferredPayloadType?e.preferredPayloadType:e.payloadType).join(" ")+"\r\n",i+="c=IN IP4 0.0.0.0\r\n",i+="a=rtcp:9 IN IP4 0.0.0.0\r\n",n.codecs.forEach(e=>{i+=t.writeRtpMap(e),i+=t.writeFmtp(e),i+=t.writeRtcpFb(e)});let r=0;return n.codecs.forEach(e=>{e.maxptime>r&&(r=e.maxptime)}),r>0&&(i+="a=maxptime:"+r+"\r\n"),n.headerExtensions&&n.headerExtensions.forEach(e=>{i+=t.writeExtmap(e)}),i},t.parseRtpEncodingParameters=function(e){const n=[],i=t.parseRtpParameters(e),r=-1!==i.fecMechanisms.indexOf("RED"),s=-1!==i.fecMechanisms.indexOf("ULPFEC"),o=t.matchPrefix(e,"a=ssrc:").map(e=>t.parseSsrcMedia(e)).filter(e=>"cname"===e.attribute),a=o.length>0&&o[0].ssrc;let c;const d=t.matchPrefix(e,"a=ssrc-group:FID").map(e=>e.substring(17).split(" ").map(e=>parseInt(e,10)));d.length>0&&d[0].length>1&&d[0][0]===a&&(c=d[0][1]),i.codecs.forEach(e=>{if("RTX"===e.name.toUpperCase()&&e.parameters.apt){let t={ssrc:a,codecPayloadType:parseInt(e.parameters.apt,10)};a&&c&&(t.rtx={ssrc:c}),n.push(t),r&&(t=JSON.parse(JSON.stringify(t)),t.fec={ssrc:a,mechanism:s?"red+ulpfec":"red"},n.push(t))}}),0===n.length&&a&&n.push({ssrc:a});let l=t.matchPrefix(e,"b=");return l.length&&(l=0===l[0].indexOf("b=TIAS:")?parseInt(l[0].substring(7),10):0===l[0].indexOf("b=AS:")?1e3*parseInt(l[0].substring(5),10)*.95-16e3:void 0,n.forEach(e=>{e.maxBitrate=l})),n},t.parseRtcpParameters=function(e){const n={},i=t.matchPrefix(e,"a=ssrc:").map(e=>t.parseSsrcMedia(e)).filter(e=>"cname"===e.attribute)[0];i&&(n.cname=i.value,n.ssrc=i.ssrc);const r=t.matchPrefix(e,"a=rtcp-rsize");n.reducedSize=r.length>0,n.compound=0===r.length;const s=t.matchPrefix(e,"a=rtcp-mux");return n.mux=s.length>0,n},t.writeRtcpParameters=function(e){let t="";return e.reducedSize&&(t+="a=rtcp-rsize\r\n"),e.mux&&(t+="a=rtcp-mux\r\n"),void 0!==e.ssrc&&e.cname&&(t+="a=ssrc:"+e.ssrc+" cname:"+e.cname+"\r\n"),t},t.parseMsid=function(e){let n;const i=t.matchPrefix(e,"a=msid:");if(1===i.length)return n=i[0].substring(7).split(" "),{stream:n[0],track:n[1]};const r=t.matchPrefix(e,"a=ssrc:").map(e=>t.parseSsrcMedia(e)).filter(e=>"msid"===e.attribute);return r.length>0?(n=r[0].value.split(" "),{stream:n[0],track:n[1]}):void 0},t.parseSctpDescription=function(e){const n=t.parseMLine(e),i=t.matchPrefix(e,"a=max-message-size:");let r;i.length>0&&(r=parseInt(i[0].substring(19),10)),isNaN(r)&&(r=65536);const s=t.matchPrefix(e,"a=sctp-port:");if(s.length>0)return{port:parseInt(s[0].substring(12),10),protocol:n.fmt,maxMessageSize:r};const o=t.matchPrefix(e,"a=sctpmap:");if(o.length>0){const e=o[0].substring(10).split(" ");return{port:parseInt(e[0],10),protocol:e[1],maxMessageSize:r}}},t.writeSctpDescription=function(e,t){let n=[];return n="DTLS/SCTP"!==e.protocol?["m="+e.kind+" 9 "+e.protocol+" "+t.protocol+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctp-port:"+t.port+"\r\n"]:["m="+e.kind+" 9 "+e.protocol+" "+t.port+"\r\n","c=IN IP4 0.0.0.0\r\n","a=sctpmap:"+t.port+" "+t.protocol+" 65535\r\n"],void 0!==t.maxMessageSize&&n.push("a=max-message-size:"+t.maxMessageSize+"\r\n"),n.join("")},t.generateSessionId=function(){return Math.random().toString().substr(2,22)},t.writeSessionBoilerplate=function(e,n,i){let r;const s=void 0!==n?n:2;return r=e||t.generateSessionId(),"v=0\r\no="+(i||"thisisadapterortc")+" "+r+" "+s+" IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\n"},t.getDirection=function(e,n){const i=t.splitLines(e);for(let e=0;e<i.length;e++)switch(i[e]){case"a=sendrecv":case"a=sendonly":case"a=recvonly":case"a=inactive":return i[e].substring(2)}return n?t.getDirection(n):"sendrecv"},t.getKind=function(e){return t.splitLines(e)[0].split(" ")[0].substring(2)},t.isRejected=function(e){return"0"===e.split(" ",2)[1]},t.parseMLine=function(e){const n=t.splitLines(e)[0].substring(2).split(" ");return{kind:n[0],port:parseInt(n[1],10),protocol:n[2],fmt:n.slice(3).join(" ")}},t.parseOLine=function(e){const n=t.matchPrefix(e,"o=")[0].substring(2).split(" ");return{username:n[0],sessionId:n[1],sessionVersion:parseInt(n[2],10),netType:n[3],addressType:n[4],address:n[5]}},t.isValidSDP=function(e){if("string"!=typeof e||0===e.length)return!1;const n=t.splitLines(e);for(let e=0;e<n.length;e++)if(n[e].length<2||"="!==n[e].charAt(1))return!1;return!0},e.exports=t}
vendor: 4,708 bytes, line 1
1(Bi)),Bi.exports),qi=In(Vi),zi=i({__proto__:null,default:qi},[Vi]);function Wi(e){if(!e.RTCIceCandidate||e.RTCIceCandidate&&"foundation"in e.RTCIceCandidate.prototype)return;const t=e.RTCIceCandidate;e.RTCIceCandidate=function(e){if("object"==typeof e&&e.candidate&&0===e.candidate.indexOf("a=")&&((e=JSON.parse(JSON.stringify(e))).candidate=e.candidate.substring(2)),e.candidate&&e.candidate.length){const n=new t(e),i=qi.parseCandidate(e.candidate);for(const e in i)e in n||Object.defineProperty(n,e,{value:i[e]});return n.toJSON=function(){return{candidate:n.candidate,sdpMid:n.sdpMid,sdpMLineIndex:n.sdpMLineIndex,usernameFragment:n.usernameFragment}},n}return new t(e)},e.RTCIceCandidate.prototype=t.prototype,Xn(e,"icecandidate",t=>(t.candidate&&Object.defineProperty(t,"candidate",{value:new e.RTCIceCandidate(t.candidate),writable:"false"}),t))}function Hi(e){!e.RTCIceCandidate||e.RTCIceCandidate&&"relayProtocol"in e.RTCIceCandidate.prototype||Xn(e,"icecandidate",e=>{if(e.candidate){const t=qi.parseCandidate(e.candidate.candidate);"relay"===t.type&&(e.candidate.relayProtocol={0:"tls",1:"tcp",2:"udp"}[t.priority>>24])}return e})}function Gi(e,t){if(!e.RTCPeerConnection)return;"sctp"in e.RTCPeerConnection.prototype||Object.defineProperty(e.RTCPeerConnection.prototype,"sctp",{get(){return void 0===this._sctp?null:this._sctp}});const n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(){if(this._sctp=null,"chrome"===t.browser&&t.version>=76){const{sdpSemantics:e}=this.getConfiguration();"plan-b"===e&&Object.defineProperty(this,"sctp",{get(){return void 0===this._sctp?null:this._sctp},enumerable:!0,configurable:!0})}if(function(e){if(!e||!e.sdp)return!1;const t=qi.splitSections(e.sdp);return t.shift(),t.some(e=>{const t=qi.parseMLine(e);return t&&"application"===t.kind&&-1!==t.protocol.indexOf("SCTP")})}(arguments[0])){const e=function(e){const t=e.sdp.match(/mozilla...THIS_IS_SDPARTA-(\d+)/);if(null===t||t.length<2)return-1;const n=parseInt(t[1],10);return n!=n?-1:n}(arguments[0]),n=function(e){let n=65536;return"firefox"===t.browser&&(n=t.version<57?-1===e?16384:2147483637:t.version<60?57===t.version?65535:65536:2147483637),n}(e),i=function(e,n){let i=65536;"firefox"===t.browser&&57===t.version&&(i=65535);const r=qi.matchPrefix(e.sdp,"a=max-message-size:");return r.length>0?i=parseInt(r[0].substring(19),10):"firefox"===t.browser&&-1!==n&&(i=2147483637),i}(arguments[0],e);let r;r=0===n&&0===i?Number.POSITIVE_INFINITY:0===n||0===i?Math.max(n,i):Math.min(n,i);const s={};Object.defineProperty(s,"maxMessageSize",{get:()=>r}),this._sctp=s}return n.apply(this,arguments)}}function Ki(e){if(!e.RTCPeerConnection||!("createDataChannel"in e.RTCPeerConnection.prototype))return;function t(e,t){const n=e.send;e.send=function(){const i=arguments[0],r=i.length||i.size||i.byteLength;if("open"===e.readyState&&t.sctp&&r>t.sctp.maxMessageSize)throw new TypeError("Message too large (can send a maximum of "+t.sctp.maxMessageSize+" bytes)");return n.apply(e,arguments)}}const n=e.RTCPeerConnection.prototype.createDataChannel;e.RTCPeerConnection.prototype.createDataChannel=function(){const e=n.apply(this,arguments);return t(e,this),e},Xn(e,"datachannel",e=>(t(e.channel,e.target),e))}function Ji(e){if(!e.RTCPeerConnection||"connectionState"in e.RTCPeerConnection.prototype)return;const t=e.RTCPeerConnection.prototype;Object.defineProperty(t,"connectionState",{get(){return{completed:"connected",checking:"connecting"}[this.iceConnectionState]||this.iceConnectionState},enumerable:!0,configurable:!0}),Object.defineProperty(t,"onconnectionstatechange",{get(){return this._onconnectionstatechange||null},set(e){this._onconnectionstatechange&&(this.removeEventListener("connectionstatechange",this._onconnectionstatechange),delete this._onconnectionstatechange),e&&this.addEventListener("connectionstatechange",this._onconnectionstatechange=e)},enumerable:!0,configurable:!0}),["setLocalDescription","setRemoteDescription"].forEach(e=>{const n=t[e];t[e]=function(){return this._connectionstatechangepoly||(this._connectionstatechangepoly=e=>{const t=e.target;if(t._lastConnectionState!==t.connectionState){t._lastConnectionState=t.connectionState;const n=new Event("connectionstatechange",e);t.dispatchEvent(n)}return e},this.addEventListener("iceconnectionstatechange",this._connectionstatechangepoly)),n.apply(this,arguments)}})}function Qi(e,t){if(!e.RTCPeerConnection)return;if("chrome"===t.browser&&t.version>=71)return;if("safari"===t.browser&&t._safariVersion>=13.1)return;const n=e.RTCPeerConnection.prototype.setRemoteDescription;e.RTCPeerConnection.prototype.setRemoteDescription=function(t){if(t&&t.sdp&&-1!==t.s
vendor: 4,388 bytes, line 1
1dp.indexOf("\na=extmap-allow-mixed")){const n=t.sdp.split("\n").filter(e=>"a=extmap-allow-mixed"!==e.trim()).join("\n");e.RTCSessionDescription&&t instanceof e.RTCSessionDescription?arguments[0]=new e.RTCSessionDescription({type:t.type,sdp:n}):t.sdp=n}return n.apply(this,arguments)}}function Yi(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const n=e.RTCPeerConnection.prototype.addIceCandidate;n&&0!==n.length&&(e.RTCPeerConnection.prototype.addIceCandidate=function(){return arguments[0]?("chrome"===t.browser&&t.version<78||"firefox"===t.browser&&t.version<68||"safari"===t.browser)&&arguments[0]&&""===arguments[0].candidate?Promise.resolve():n.apply(this,arguments):(arguments[1]&&arguments[1].apply(null),Promise.resolve())})}function Xi(e,t){if(!e.RTCPeerConnection||!e.RTCPeerConnection.prototype)return;const n=e.RTCPeerConnection.prototype.setLocalDescription;n&&0!==n.length&&(e.RTCPeerConnection.prototype.setLocalDescription=function(){let e=arguments[0]||{};if("object"!=typeof e||e.type&&e.sdp)return n.apply(this,arguments);if(e={type:e.type,sdp:e.sdp},!e.type)switch(this.signalingState){case"stable":case"have-local-offer":case"have-remote-pranswer":e.type="offer";break;default:e.type="answer"}return e.sdp||"offer"!==e.type&&"answer"!==e.type?n.apply(this,[e]):("offer"===e.type?this.createOffer:this.createAnswer).apply(this).then(e=>n.apply(this,[e]))})}var $i=Object.freeze({__proto__:null,removeExtmapAllowMixed:Qi,shimAddIceCandidateNullOrEmpty:Yi,shimConnectionState:Ji,shimMaxMessageSize:Gi,shimParameterlessSetLocalDescription:Xi,shimRTCIceCandidate:Wi,shimRTCIceCandidateRelayProtocol:Hi,shimSendThrowTypeError:Ki});!function(){let{window:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{shimChrome:!0,shimFirefox:!0,shimSafari:!0};const n=ei,i=function(e){const t={browser:null,version:null};if(void 0===e||!e.navigator||!e.navigator.userAgent)return t.browser="Not a browser.",t;const{navigator:n}=e;if(n.userAgentData&&n.userAgentData.brands){const e=n.userAgentData.brands.find(e=>"Chromium"===e.brand);if(e)return{browser:"chrome",version:parseInt(e.version,10)}}if(n.mozGetUserMedia)t.browser="firefox",t.version=parseInt(Yn(n.userAgent,/Firefox\/(\d+)\./,1));else if(n.webkitGetUserMedia||!1===e.isSecureContext&&e.webkitRTCPeerConnection)t.browser="chrome",t.version=parseInt(Yn(n.userAgent,/Chrom(e|ium)\/(\d+)\./,2));else{if(!e.RTCPeerConnection||!n.userAgent.match(/AppleWebKit\/(\d+)\./))return t.browser="Not a supported browser.",t;t.browser="safari",t.version=parseInt(Yn(n.userAgent,/AppleWebKit\/(\d+)\./,1)),t.supportsUnifiedPlan=e.RTCRtpTransceiver&&"currentDirection"in e.RTCRtpTransceiver.prototype,t._safariVersion=Yn(n.userAgent,/Version\/(\d+(\.?\d+))/,1)}return t}(e),r={browserDetails:i,commonShim:$i,extractVersion:Yn,disableLog:$n,disableWarnings:Zn,sdp:zi};switch(i.browser){case"chrome":if(!fi||!mi||!t.shimChrome)return n("Chrome shim is not included in this adapter release."),r;if(null===i.version)return n("Chrome shim can not determine version, not shimming."),r;n("adapter.js shimming chrome."),r.browserShim=fi,Yi(e,i),Xi(e),ai(e,i),ci(e),mi(e,i),di(e),pi(e,i),li(e),ui(e),gi(e,i),Wi(e),Hi(e),Ji(e),Gi(e,i),Ki(e),Qi(e,i);break;case"firefox":if(!Ri||!_i||!t.shimFirefox)return n("Firefox shim is not included in this adapter release."),r;n("adapter.js shimming firefox."),r.browserShim=Ri,Yi(e,i),Xi(e),vi(e,i),_i(e,i),bi(e),Si(e),yi(e),ki(e),Ti(e),Ci(e),wi(e),Ei(e),Pi(e),Wi(e),Ji(e),Gi(e,i),Ki(e);break;case"safari":if(!Fi||!t.shimSafari)return n("Safari shim is not included in this adapter release."),r;n("adapter.js shimming safari."),r.browserShim=Fi,Yi(e,i),Xi(e),Ni(e),Li(e),xi(e),Ii(e),Oi(e),Mi(e),Ai(e),ji(e),Wi(e),Hi(e),Gi(e,i),Ki(e),Qi(e,i);break;default:n("Unsupported browser!")}}({window:"undefined"==typeof window?void 0:window});const Zi="lk_e2ee";var er,tr,nr,ir,rr,sr,or,ar,cr,dr,lr,ur;function hr(){return void 0!==window.RTCRtpScriptTransform}!function(e){e.SetKey="setKey",e.RatchetRequest="ratchetRequest",e.KeyRatcheted="keyRatcheted"}(er||(er={})),function(e){e.KeyRatcheted="keyRatcheted"}(tr||(tr={})),function(e){e.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",e.EncryptionError="encryptionError"}(nr||(nr={})),function(e){e.Error="cryptorError"}(ir||(ir={})),Kn.EventEmitter;
1class pr extends Error{constructor(e,t){super(t||"an error has occured"),this.name="LiveKitError",this.code=e}}!function(e){e[e.NotAllowed=0]="NotAllowed",e[e.ServerUnreachable=1]="ServerUnreachable",e[e.InternalError=2]="InternalError",e[e.Cancelled=3]="Cancelled",e[e.LeaveRequest=4]="LeaveRequest",e[e.Timeout=5]="Timeout"}(rr||(rr={}));class mr extends pr{constructor(e,t,n,i){super(1,e),this.name="ConnectionError",this.status=n,this.reason=t,this.context=i,this.reasonName=rr[t]}}class gr extends pr{constructor(e){super(21,null!=e?e:"device is unsupported"),this.name="DeviceUnsupportedError"}}class fr extends pr{constructor(e){super(20,null!=e?e:"track is invalid"),this.name="TrackInvalidError"}}class vr extends pr{constructor(e){super(10,null!=e?e:"unsupported server"),this.name="UnsupportedServer"}}class br extends pr{constructor(e){super(12,null!=e?e:"unexpected connection state"),this.name="UnexpectedConnectionState"}}class _r extends pr{constructor(e){super(13,null!=e?e:"unable to negotiate"),this.name="NegotiationError"}}class yr extends pr{constructor(e,t){super(15,e),this.name="PublishTrackError",this.status=t}}class kr extends pr{constructor(e,t){super(15,e),this.reason=t,this.reasonName="string"==typeof t?t:Pn[t]}}!function(e){e[e.AlreadyOpened=0]="AlreadyOpened",e[e.AbnormalEnd=1]="AbnormalEnd",e[e.DecodeFailed=2]="DecodeFailed",e[e.LengthExceeded=3]="LengthExceeded",e[e.Incomplete=4]="Incomplete",e[e.HandlerAlreadyRegistered=7]="HandlerAlreadyRegistered"}(sr||(sr={}));class Sr extends pr{constructor(e,t){super(16,e),this.name="DataStreamError",this.reason=t,this.reasonName=sr[t]}}!function(e){e.PermissionDenied="PermissionDenied",e.NotFound="NotFound",e.DeviceInUse="DeviceInUse",e.Other="Other"}(or||(or={})),function(e){e.getFailure=function(t){if(t&&"name"in t)return"NotFoundError"===t.name||"DevicesNotFoundError"===t.name?e.NotFound:"NotAllowedError"===t.name||"PermissionDeniedError"===t.name?e.PermissionDenied:"NotReadableError"===t.name||"TrackStartError"===t.name?e.DeviceInUse:e.Other}}(or||(or={})),function(e){e[e.InvalidKey=0]="InvalidKey",e[e.MissingKey=1]="MissingKey",e[e.InternalError=2]="InternalError"}
1(ar||(ar={})),function(e){e.Connected="connected",e.Reconnecting="reconnecting",e.SignalReconnecting="signalReconnecting",e.Reconnected="reconnected",e.Disconnected="disconnected",e.ConnectionStateChanged="connectionStateChanged",e.Moved="moved",e.MediaDevicesChanged="mediaDevicesChanged",e.ParticipantConnected="participantConnected",e.ParticipantDisconnected="participantDisconnected",e.TrackPublished="trackPublished",e.TrackSubscribed="trackSubscribed",e.TrackSubscriptionFailed="trackSubscriptionFailed",e.TrackUnpublished="trackUnpublished",e.TrackUnsubscribed="trackUnsubscribed",e.TrackMuted="trackMuted",e.TrackUnmuted="trackUnmuted",e.LocalTrackPublished="localTrackPublished",e.LocalTrackUnpublished="localTrackUnpublished",e.LocalAudioSilenceDetected="localAudioSilenceDetected",e.ActiveSpeakersChanged="activeSpeakersChanged",e.ParticipantMetadataChanged="participantMetadataChanged",e.ParticipantNameChanged="participantNameChanged",e.ParticipantAttributesChanged="participantAttributesChanged",e.ParticipantActive="participantActive",e.RoomMetadataChanged="roomMetadataChanged",e.DataReceived="dataReceived",e.SipDTMFReceived="sipDTMFReceived",e.TranscriptionReceived="transcriptionReceived",e.ConnectionQualityChanged="connectionQualityChanged",e.TrackStreamStateChanged="trackStreamStateChanged",e.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",e.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",e.AudioPlaybackStatusChanged="audioPlaybackChanged",e.VideoPlaybackStatusChanged="videoPlaybackChanged",e.MediaDevicesError="mediaDevicesError",e.ParticipantPermissionsChanged="participantPermissionsChanged",e.SignalConnected="signalConnected",e.RecordingStatusChanged="recordingStatusChanged",e.ParticipantEncryptionStatusChanged="participantEncryptionStatusChanged",e.EncryptionError="encryptionError",e.DCBufferStatusChanged="dcBufferStatusChanged",e.ActiveDeviceChanged="activeDeviceChanged",e.ChatMessage="chatMessage",e.LocalTrackSubscribed="localTrackSubscribed",e.MetricsReceived="metricsReceived"}(cr||(cr={})),function(e){e.TrackPublished="trackPublished",e.TrackSubscribed="trackSubscribed",e.TrackSubscriptionFailed="trackSubscriptionFailed",e.TrackUnpublished="trackUnpublished",e.TrackUnsubscribed="trackUnsubscribed",e.TrackMuted="trackMuted",e.TrackUnmuted="trackUnmuted",e.LocalTrackPublished="localTrackPublished",e.LocalTrackUnpublished="localTrackUnpublished",e.LocalTrackCpuConstrained="localTrackCpuConstrained",e.LocalSenderCreated="localSenderCreated",e.ParticipantMetadataChanged="participantMetadataChanged",e.ParticipantNameChanged="participantNameChanged",e.DataReceived="dataReceived",e.SipDTMFReceived="sipDTMFReceived",e.TranscriptionReceived="transcriptionReceived",e.IsSpeakingChanged="isSpeakingChanged",e.ConnectionQualityChanged="connectionQualityChanged",e.TrackStreamStateChanged="trackStreamStateChanged",e.TrackSubscriptionPermissionChanged="trackSubscriptionPermissionChanged",e.TrackSubscriptionStatusChanged="trackSubscriptionStatusChanged",e.TrackCpuConstrained="trackCpuConstrained",e.MediaDevicesError="mediaDevicesError",e.AudioStreamAcquired="audioStreamAcquired",e.ParticipantPermissionsChanged="participantPermissionsChanged",e.PCTrackAdded="pcTrackAdded",e.AttributesChanged="attributesChanged",e.LocalTrackSubscribed="localTrackSubscribed",e.ChatMessage="chatMessage",e.Active="active"}(dr||(dr={})),function(e){e.TransportsCreated="transportsCreated",e.Connected="connected",e.Disconnected="disconnected",e.Resuming="resuming",e.Resumed="resumed",e.Restarting="restarting",e.Restarted="restarted",e.SignalResumed="signalResumed",e.SignalRestarted="signalRestarted",e.Closing="closing",e.MediaTrackAdded="mediaTrackAdded",e.ActiveSpeakersUpdate="activeSpeakersUpdate",e.DataPacketReceived="dataPacketReceived",e.RTPVideoMapUpdate="rtpVideoMapUpdate",e.DCBufferStatusChanged="dcBufferStatusChanged",e.ParticipantUpdate="participantUpdate",e.RoomUpdate="roomUpdate",e.SpeakersChanged="speakersChanged",e.StreamStateChanged="streamStateChanged",e.ConnectionQualityUpdate="connectionQualityUpdate",e.SubscriptionError="subscriptionError",e.SubscriptionPermissionUpdate="subscriptionPermissionUpdate",e.RemoteMute="remoteMute",e.SubscribedQualityUpdate="subscribedQualityUpdate",e.LocalTrackUnpublished="localTrackUnpublished",e.LocalTrackSubscribed="localTrackSubscribed",e.Offline="offline",e.SignalRequestResponse="signalRequestResponse",e.SignalConnected="signalConnected",e.RoomMoved="roomMoved"}(lr||(lr={})),function(e){e.Message="message",e.Muted="muted",e.Unmuted="unmuted",e.Restarted="restarted",e.Ended="ended",e.Subscribed="subscribed",e.Unsubscribed="unsubscribed",e.CpuConstrained="cpuConstrained",e.UpdateSettings="updateSettings",e.UpdateSubscription="updateSubscription",e.AudioPlaybackStarted="audioPlaybackStarted",e.AudioPlaybackFailed="audioPlaybackFailed",e.AudioSilenceDetected="audioSilenceDetected",e.VisibilityChanged="visibilityChanged",e.VideoDimensionsChanged="videoDimensionsChanged",e.VideoPlaybackStarted="videoPlaybackStarted",e.VideoPlaybackFailed="videoPlaybackFailed",e.ElementAttached="elementAttached",e.ElementDetached="elementDetached",e.UpstreamPaused="upstreamPaused",e.UpstreamResumed="upstreamResumed",e.SubscriptionPermissionChanged="subscriptionPermissionChanged",e.SubscriptionStatusChanged="subscriptionStatusChanged",e.SubscriptionFailed="subscriptionFailed",e.TrackProcessorUpdate="trackProcessorUpdate",e.AudioTrackFeatureUpdate="audioTrackFeatureUpdate",e.TranscriptionReceived="transcriptionReceived",e.TimeSyncUpdate="timeSyncUpdate",e.PreConnectBufferFlushed="preConnectBufferFlushed"}(ur||(ur={}));const Tr=/version\/(\d+(\.?_?\d+)+)/i;let Cr;function wr(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(void 0===e&&"undefined"==typeof navigator)return;const n=(null!=e?e:navigator.userAgent).toLowerCase();if(void 0===Cr||t){const e=Er.find(e=>{let{test:t}=e;return t.test(n)});Cr=null==e?void 0:e.describe(n)}return Cr}const Er=[{test:/firefox|iceweasel|fxios/i,describe:e=>({name:"Firefox",version:Pr(/(?:firefox|iceweasel|fxios)[\s/](\d+(\.?_?\d+)+)/i,e),os:e.toLowerCase().includes("fxios")?"iOS":void 0,osVersion:Rr(e)}
vendor: 14,345 bytes, line 1
1)},{test:/chrom|crios|crmo/i,describe:e=>({name:"Chrome",version:Pr(/(?:chrome|chromium|crios|crmo)\/(\d+(\.?_?\d+)+)/i,e),os:e.toLowerCase().includes("crios")?"iOS":void 0,osVersion:Rr(e)})},{test:/safari|applewebkit/i,describe:e=>({name:"Safari",version:Pr(Tr,e),os:e.includes("mobile/")?"iOS":"macOS",osVersion:Rr(e)})}];function Pr(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;const i=t.match(e);return i&&i.length>=n&&i[n]||""}function Rr(e){return e.includes("mac os")?Pr(/\(.+?(\d+_\d+(:?_\d+)?)/,e,1).replace(/_/g,"."):void 0}class Ir{}Ir.setTimeout=function(){return setTimeout(...arguments)},Ir.setInterval=function(){return setInterval(...arguments)},Ir.clearTimeout=function(){return clearTimeout(...arguments)},Ir.clearInterval=function(){return clearInterval(...arguments)};const Or=[];var xr;!function(e){e[e.LOW=0]="LOW",e[e.MEDIUM=1]="MEDIUM",e[e.HIGH=2]="HIGH"}(xr||(xr={}));class Ar extends Kn.EventEmitter{get streamState(){return this._streamState}setStreamState(e){this._streamState=e}constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};var i;super(),this.attachedElements=[],this.isMuted=!1,this._streamState=Ar.StreamState.Active,this.isInBackground=!1,this._currentBitrate=0,this.log=Un,this.appVisibilityChangedListener=()=>{this.backgroundTimeout&&clearTimeout(this.backgroundTimeout),"hidden"===document.visibilityState?this.backgroundTimeout=setTimeout(()=>this.handleAppVisibilityChanged(),5e3):this.handleAppVisibilityChanged()},this.log=Fn(null!==(i=n.loggerName)&&void 0!==i?i:Mn.Track),this.loggerContextCb=n.loggerContextCb,this.setMaxListeners(100),this.kind=t,this._mediaStreamTrack=e,this._mediaStreamID=e.id,this.source=Ar.Source.Unknown}get logContext(){var e;return Object.assign(Object.assign({},null===(e=this.loggerContextCb)||void 0===e?void 0:e.call(this)),Us(this))}get currentBitrate(){return this._currentBitrate}get mediaStreamTrack(){return this._mediaStreamTrack}get mediaStreamID(){return this._mediaStreamID}attach(e){let t="audio";this.kind===Ar.Kind.Video&&(t="video"),0===this.attachedElements.length&&this.kind===Ar.Kind.Video&&this.addAppVisibilityListener(),e||("audio"===t&&(Or.forEach(t=>{null!==t.parentElement||e||(e=t)}),e&&Or.splice(Or.indexOf(e),1)),e||(e=document.createElement(t))),this.attachedElements.includes(e)||this.attachedElements.push(e),Dr(this.mediaStreamTrack,e);const n=e.srcObject.getTracks(),i=n.some(e=>"audio"===e.kind);return e.play().then(()=>{this.emit(i?ur.AudioPlaybackStarted:ur.VideoPlaybackStarted)}).catch(t=>{"NotAllowedError"===t.name?this.emit(i?ur.AudioPlaybackFailed:ur.VideoPlaybackFailed,t):"AbortError"===t.name?Un.debug("".concat(i?"audio":"video"," playback aborted, likely due to new play request")):Un.warn("could not playback ".concat(i?"audio":"video"),t),i&&e&&n.some(e=>"video"===e.kind)&&"NotAllowedError"===t.name&&(e.muted=!0,e.play().catch(()=>{}))}),this.emit(ur.ElementAttached,e),e}detach(e){try{if(e){Nr(this.mediaStreamTrack,e);const t=this.attachedElements.indexOf(e);return t>=0&&(this.attachedElements.splice(t,1),this.recycleElement(e),this.emit(ur.ElementDetached,e)),e}const t=[];return this.attachedElements.forEach(e=>{Nr(this.mediaStreamTrack,e),t.push(e),this.recycleElement(e),this.emit(ur.ElementDetached,e)}),this.attachedElements=[],t}finally{0===this.attachedElements.length&&this.removeAppVisibilityListener()}}stop(){this.stopMonitor(),this._mediaStreamTrack.stop()}enable(){this._mediaStreamTrack.enabled=!0}disable(){this._mediaStreamTrack.enabled=!1}stopMonitor(){this.monitorInterval&&clearInterval(this.monitorInterval),this.timeSyncHandle&&cancelAnimationFrame(this.timeSyncHandle)}updateLoggerOptions(e){e.loggerName&&(this.log=Fn(e.loggerName)),e.loggerContextCb&&(this.loggerContextCb=e.loggerContextCb)}recycleElement(e){if(e instanceof HTMLAudioElement){let t=!0;e.pause(),Or.forEach(e=>{e.parentElement||(t=!1)}),t&&Or.push(e)}}handleAppVisibilityChanged(){return zn(this,void 0,void 0,function*(){this.isInBackground="hidden"===document.visibilityState,this.isInBackground||this.kind!==Ar.Kind.Video||setTimeout(()=>this.attachedElements.forEach(e=>e.play().catch(()=>{})),0)})}addAppVisibilityListener(){es()?(this.isInBackground="hidden"===document.visibilityState,document.addEventListener("visibilitychange",this.appVisibilityChangedListener)):this.isInBackground=!1}removeAppVisibilityListener(){es()&&document.removeEventListener("visibilitychange",this.appVisibilityChangedListener)}}function Dr(e,t){let n,i;n=t.srcObject instanceof MediaStream?t.srcObject:new MediaStream,i="audio"===e.kind?n.getAudioTracks():n.getVideoTracks(),i.includes(e)||(i.forEach(e=>{n.removeTrack(e)}),n.addTrack(e)),Xr()&&t instanceof HTMLVideoElement||(t.autoplay=!0),t.muted=0===n.getAudioTracks().length,t instanceof HTMLVideoElement&&(t.playsInline=!0),t.srcObject!==n&&(t.srcObject=n,(Xr()||Yr())&&t instanceof HTMLVideoElement&&setTimeout(()=>{t.srcObject=n,t.play().catch(()=>{})},0))}function Nr(e,t){if(t.srcObject instanceof MediaStream){const n=t.srcObject;n.removeTrack(e),n.getTracks().length>0?t.srcObject=n:t.srcObject=null}}!function(e){let t,n,i;!function(e){e.Audio="audio",e.Video="video",e.Unknown="unknown"}(t=e.Kind||(e.Kind={})),function(e){e.Camera="camera",e.Microphone="microphone",e.ScreenShare="screen_share",e.ScreenShareAudio="screen_share_audio",e.Unknown="unknown"}(n=e.Source||(e.Source={})),function(e){e.Active="active",e.Paused="paused",e.Unknown="unknown"}(i=e.StreamState||(e.StreamState={})),e.kindToProto=function(e){switch(e){case t.Audio:return Fe.AUDIO;case t.Video:return Fe.VIDEO;default:return Fe.DATA}},e.kindFromProto=function(e){switch(e){case Fe.AUDIO:return t.Audio;case Fe.VIDEO:return t.Video;default:return t.Unknown}},e.sourceToProto=function(e){switch(e){case n.Camera:return Be.CAMERA;case n.Microphone:return Be.MICROPHONE;case n.ScreenShare:return Be.SCREEN_SHARE;case n.ScreenShareAudio:return Be.SCREEN_SHARE_AUDIO;default:return Be.UNKNOWN}},e.sourceFromProto=function(e){switch(e){case Be.CAMERA:return n.Camera;case Be.MICROPHONE:return n.Microphone;case Be.SCREEN_SHARE:return n.ScreenShare;case Be.SCREEN_SHARE_AUDIO:return n.ScreenShareAudio;default:return n.Unknown}},e.streamStateFromProto=function(e){switch(e){case Nt.ACTIVE:return i.Active;case Nt.PAUSED:return i.Paused;default:return i.Unknown}}}(Ar||(Ar={}));class Mr{constructor(e,t,n,i,r){if("object"==typeof e)this.width=e.width,this.height=e.height,this.aspectRatio=e.aspectRatio,this.encoding={maxBitrate:e.maxBitrate,maxFramerate:e.maxFramerate,priority:e.priority};else{if(void 0===t||void 0===n)throw new TypeError("Unsupported options: provide at least width, height and maxBitrate");this.width=e,this.height=t,this.aspectRatio=e/t,this.encoding={maxBitrate:n,maxFramerate:i,priority:r}}}get resolution(){return{width:this.width,height:this.height,frameRate:this.encoding.maxFramerate,aspectRatio:this.aspectRatio}}}const Lr=["vp8","h264"],jr=["vp8","h264","vp9","av1","h265"];function Ur(e){return!!Lr.find(t=>t===e)}var Fr,Br;!function(e){e[e.PREFER_REGRESSION=0]="PREFER_REGRESSION",e[e.SIMULCAST=1]="SIMULCAST",e[e.REGRESSION=2]="REGRESSION"}(Fr||(Fr={})),function(e){e.telephone={maxBitrate:12e3},e.speech={maxBitrate:24e3},e.music={maxBitrate:48e3},e.musicStereo={maxBitrate:64e3},e.musicHighQuality={maxBitrate:96e3},e.musicHighQualityStereo={maxBitrate:128e3}}(Br||(Br={}));const Vr={h90:new Mr(160,90,9e4,20),h180:new Mr(320,180,16e4,20),h216:new Mr(384,216,18e4,20),h360:new Mr(640,360,45e4,20),h540:new Mr(960,540,8e5,25),h720:new Mr(1280,720,17e5,30),h1080:new Mr(1920,1080,3e6,30),h1440:new Mr(2560,1440,5e6,30),h2160:new Mr(3840,2160,8e6,30)},qr={h120:new Mr(160,120,7e4,20),h180:new Mr(240,180,125e3,20),h240:new Mr(320,240,14e4,20),h360:new Mr(480,360,33e4,20),h480:new Mr(640,480,5e5,20),h540:new Mr(720,540,6e5,25),h720:new Mr(960,720,13e5,30),h1080:new Mr(1440,1080,23e5,30),h1440:new Mr(1920,1440,38e5,30)},zr={h360fps3:new Mr(640,360,2e5,3,"medium"),h360fps15:new Mr(640,360,4e5,15,"medium"),h720fps5:new Mr(1280,720,8e5,5,"medium"),h720fps15:new Mr(1280,720,15e5,15,"medium"),h720fps30:new Mr(1280,720,2e6,30,"medium"),h1080fps15:new Mr(1920,1080,25e5,15,"medium"),h1080fps30:new Mr(1920,1080,5e6,30,"medium"),original:new Mr(0,0,7e6,30,"medium")},Wr="https://aomediacodec.github.io/av1-rtp-spec/#dependency-descriptor-rtp-header-extension";function Hr(e){return zn(this,void 0,void 0,function*(){return new Promise(t=>Ir.setTimeout(t,e))})}function Gr(){return"addTransceiver"in RTCPeerConnection.prototype}function Kr(){return"addTrack"in RTCPeerConnection.prototype}function Jr(e){return"av1"===e||"vp9"===e}function Qr(e){return!(!document||$r())&&(e||(e=document.createElement("audio")),"setSinkId"in e)}function Yr(){var e;return"Firefox"===(null===(e=wr())||void 0===e?void 0:e.name)}function Xr(){var e;return"Safari"===(null===(e=wr())||void 0===e?void 0:e.name)}function $r(){const e=wr();return"Safari"===(null==e?void 0:e.name)||"iOS"===(null==e?void 0:e.os)}function Zr(){var e,t;return!!es()&&(null!==(t=null===(e=navigator.userAgentData)||void 0===e?void 0:e.mobile)&&void 0!==t?t:/Tablet|iPad|Mobile|Android|BlackBerry/.test(navigator.userAgent))}function es(){return"undefined"!=typeof document}function ts(){return"ReactNative"==navigator.product}function ns(e){return e.hostname.endsWith(".livekit.cloud")||e.hostname.endsWith(".livekit.run")}function is(){if(n.g&&n.g.LiveKitReactNativeGlobal)return n.g.LiveKitReactNativeGlobal}function rs(){if(!ts())return;let e=is();return e?e.platform:void 0}function ss(){if(es())return window.devicePixelRatio;if(ts()){let e=is();if(e)return e.devicePixelRatio}return 1}function os(e,t){const n=e.split("."),i=t.split("."),r=Math.min(n.length,i.length);for(let e=0;e<r;++e){const t=parseInt(n[e],10),s=parseInt(i[e],10);if(t>s)return 1;if(t<s)return-1;if(e===r-1&&t===s)return 0}return""===e&&""!==t?-1:""===t?1:n.length==i.length?0:n.length<i.length?-1:1}function as(e){for(const t of e)t.target.handleResize(t)}function cs(e){for(const t of e)t.target.handleVisibilityChanged(t)}let ds=null;const ls=()=>(ds||(ds=new ResizeObserver(as)),ds);let us=null;const hs=()=>(us||(us=new IntersectionObserver(cs,{root:null,rootMargin:"0px"})),us);let ps;function ms(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:16,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:16,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const r=document.createElement("canvas");r.width=e,r.height=t;const s=r.getContext("2d");null==s||s.fillRect(0,0,r.width,r.height),i&&s&&(s.beginPath(),s.arc(e/2,t/2,50,0,2*Math.PI,!0),s.closePath(),s.fillStyle="grey",s.fill());const o=r.captureStream(),[a]=o.getTracks();if(!a)throw Error("Could not get empty media stream video track");return a.enabled=n,a}function gs(){if(!ps){const e=new AudioContext,t=e.createOscillator(),n=e.createGain();n.gain.setValueAtTime(0,0);const i=e.createMediaStreamDestination();if(t.connect(n),n.connect(i),t.start(),[ps]=i.stream.getAudioTracks(),!ps)throw Error("Could not get empty media stream audio track");ps.enabled=!1}return ps.clone()}class fs{get isResolved(){return this._isResolved}constructor(e,t){this._isResolved=!1,this.onFinally=t,this.promise=new Promise((t,n)=>zn(this,void 0,void 0,function*(){this.resolve=t,this.reject=n,e&&(yield e(t,n))})).finally(()=>{var e;this._isResolved=!0,null===(e=this.onFinally)||void 0===e||e.call(this)})}}function vs(e){if("string"==typeof e||"number"==typeof e)return e;if(Array.isArray(e))return e[0];if(void 0!==e.exact)return Array.isArray(e.exact)?e.exact[0]:e.exact;if(void 0!==e.ideal)return Array.isArray(e.ideal)?e.ideal[0]:e.ideal;throw Error("could not unwrap constraint")}function bs(e){return e.startsWith("ws")?e.replace(/^(ws)/,"http"):e}function _s(e){switch(e.reason){case rr.LeaveRequest:return e.context;case rr.Cancelled:return We.CLIENT_INITIATED;case rr.NotAllowed:return We.USER_REJECTED;case rr.ServerUnreachable:return We.JOIN_FAILURE;default:return We.UNKNOWN_REASON}}function ys(e){return void 0!==e?Number(e):void 0}function ks(e){return void 0!==e?BigInt(e):void 0}function Ss(e){return!!e&&!(e instanceof MediaStreamTrack)&&e.isLocal}function Ts(e){return!!e&&e.kind==Ar.Kind.Audio}function Cs(e){return!!e&&e.kind==Ar.Kind.Video}function ws(e){return Ss(e)&&Cs(e)}function Es(e){return Ss(e)&&Ts(e)}function Ps(e){return!!e&&!e.isLocal}function Rs(e){return!!e&&!e.isLocal}function Is(e){return Ps(e)&&Cs(e)}function Os(e,t,n){var i,r,s,o;const{optionsWithoutProcessor:a,audioProcessor:c,videoProcessor:d}=Fs(null!=e?e:{}),l=null==t?void 0:t.processor,u=null==n?void 0:n.processor,h=null!=a?a:{};return!0===h.audio&&(h.audio={}),!0===h.video&&(h.video={}),h.audio&&(xs(h.audio,t),null!==(i=(s=h.audio).deviceId)&&void 0!==i||(s.deviceId={ideal:"default"}),(c||l)&&(h.audio.processor=null!=c?c:l)),h.video&&(xs(h.video,n),null!==(r=(o=h.video).deviceId)&&void 0!==r||(o.deviceId={ideal:"default"}),(d||u)&&(h.video.processor=null!=d?d:u)),h}function xs(e,t){return Object.keys(t).forEach(n=>{void 0===e[n]&&(e[n]=t[n])}),e}function As(e){var t,n,i,r;const s={};if(e.video)if("object"==typeof e.video){const n={},r=n,o=e.video;Object.keys(o).forEach(e=>{"resolution"===e?xs(r,o.resolution):r[e]=o[e]}),s.video=n,null!==(t=(i=s.video).deviceId)&&void 0!==t||(i.deviceId={ideal:"default"})}else s.video=!!e.video&&{deviceId:{ideal:"default"}};else s.video=!1;return e.audio?"object"==typeof e.audio?(s.audio=e.audio,null!==(n=(r=s.audio).deviceId)&&void 0!==n||(r.deviceId={ideal:"default"})):s.audio={deviceId:{ideal:"default"}}:s.audio=!1,s}function Ds(){var e;const t="undefined"!=typeof window&&(window.AudioContext||window.webkitAudioContext);if(t){const n=new t({latencyHint:"interactive"});if("suspended"===n.state&&"undefined"!=typeof window&&(null===(e=window.document)||void 0===e?void 0:e.body)){const e=()=>zn(this,void 0,void 0,function*(){var t;try{"suspended"===n.state&&(yield n.resume())}catch(e){console.warn("Error trying to auto-resume audio context",e)}null===(t=window.document.body)||void 0===t||t.removeEventListener("click",e)});window.document.body.addEventListener("click",e)}return n}}function Ns(e){return"audioinput"===e?Ar.Source.Microphone:"videoinput"===e?Ar.Source.Camera:Ar.Source.Unknown}
1function Ms(e){return e===Ar.Source.Microphone?"audioinput":e===Ar.Source.Camera?"videoinput":void 0}function Ls(e){return e.split("/")[1].toLowerCase()}function js(e){const t=[];return e.forEach(e=>{void 0!==e.track&&t.push(new Wt({cid:e.track.mediaStreamID,track:e.trackInfo}))}),t}function Us(e){return"mediaStreamTrack"in e?{trackID:e.sid,source:e.source,muted:e.isMuted,enabled:e.mediaStreamTrack.enabled,kind:e.kind,streamID:e.mediaStreamID,streamTrackID:e.mediaStreamTrack.id}:{trackID:e.trackSid,enabled:e.isEnabled,muted:e.isMuted,trackInfo:Object.assign({mimeType:e.mimeType,name:e.trackName,encrypted:e.isEncrypted,kind:e.kind,source:e.source},e.track?Us(e.track):{})}}function Fs(e){const t=Object.assign({},e);let n,i;return"object"==typeof t.audio&&t.audio.processor&&(n=t.audio.processor,t.audio=Object.assign(Object.assign({},t.audio),{processor:void 0})),"object"==typeof t.video&&t.video.processor&&(i=t.video.processor,t.video=Object.assign(Object.assign({},t.video),{processor:void 0})),{audioProcessor:n,videoProcessor:i,optionsWithoutProcessor:(r=t,void 0===r?r:"function"==typeof structuredClone?"object"==typeof r&&null!==r?structuredClone(Object.assign({},r)):structuredClone(r):JSON.parse(JSON.stringify(r)))};var r}function Bs(e,t){return e.width*e.height<t.width*t.height}class Vs extends Kn.EventEmitter{constructor(e){super(),this.onWorkerMessage=e=>{var t,n;const{kind:i,data:r}=e.data;switch(i){case"error":Un.error(r.error.message),this.emit(nr.EncryptionError,r.error);break;case"initAck":r.enabled&&this.keyProvider.getKeys().forEach(e=>{this.postKey(e)});break;case"enable":if(r.enabled&&this.keyProvider.getKeys().forEach(e=>{this.postKey(e)}),this.encryptionEnabled!==r.enabled&&r.participantIdentity===(null===(t=this.room)||void 0===t?void 0:t.localParticipant.identity))this.emit(nr.ParticipantEncryptionStatusChanged,r.enabled,this.room.localParticipant),this.encryptionEnabled=r.enabled;else if(r.participantIdentity){const e=null===(n=this.room)||void 0===n?void 0:n.getParticipantByIdentity(r.participantIdentity);if(!e)throw TypeError("couldn't set encryption status, participant not found".concat(r.participantIdentity));this.emit(nr.ParticipantEncryptionStatusChanged,r.enabled,e)}break;case"ratchetKey":this.keyProvider.emit(er.KeyRatcheted,r.ratchetResult,r.participantIdentity,r.keyIndex)}},this.onWorkerError=e=>{Un.error("e2ee worker encountered an error:",{error:e.error}),this.emit(nr.EncryptionError,e.error)},this.keyProvider=e.keyProvider,this.worker=e.worker,this.encryptionEnabled=!1}setup(e){if(!(void 0!==window.RTCRtpSender&&void 0!==window.RTCRtpSender.prototype.createEncodedStreams||hr()))throw new gr("tried to setup end-to-e
1nd encryption on an unsupported browser");if(Un.info("setting up e2ee"),e!==this.room){this.room=e,this.setupEventListeners(e,this.keyProvider);const t={kind:"init",data:{keyProviderOptions:this.keyProvider.getOptions(),loglevel:Bn.getLevel()}};this.worker&&(Un.info("initializing worker",{worker:this.worker}),this.worker.onmessage=this.onWorkerMessage,this.worker.onerror=this.onWorkerError,this.worker.postMessage(t))}}setParticipantCryptorEnabled(e,t){Un.debug("set e2ee to ".concat(e," for participant ").concat(t)),this.postEnable(e,t)}setSifTrailer(e){e&&0!==e.length?this.postSifTrailer(e):Un.warn("ignoring server sent trailer as it's empty")}setupEngine(e){e.on(lr.RTPVideoMapUpdate,e=>{this.postRTPMap(e)})}setupEventListeners(e,t){e.on(cr.TrackPublished,(e,t)=>this.setParticipantCryptorEnabled(e.trackInfo.encryption!==tt.NONE,t.identity)),e.on(cr.ConnectionStateChanged,t=>{t===sa.Connected&&e.remoteParticipants.forEach(e=>{e.trackPublications.forEach(t=>{this.setParticipantCryptorEnabled(t.trackInfo.encryption!==tt.NONE,e.identity)})})}).on(cr.TrackUnsubscribed,(e,t,n)=>{var i;const r={kind:"removeTransform",data:{participantIdentity:n.identity,trackId:e.mediaStreamID}};null===(i=this.worker)||void 0===i||i.postMessage(r)}).on(cr.TrackSubscribed,(e,t,n)=>{this.setupE2EEReceiver(e,n.identity,t.trackInfo)}).on(cr.SignalConnected,()=>{if(!this.room)throw new TypeError("expected room to be present on signal connect");t.getKeys().forEach(e=>{this.postKey(e)}),this.setParticipantCryptorEnabled(this.room.localParticipant.isE2EEEnabled,this.room.localParticipant.identity)}),e.localParticipant.on(dr.LocalSenderCreated,(e,t)=>zn(this,void 0,void 0,function*(){this.setupE2EESender(t,e)})),e.localParticipant.on(dr.LocalTrackPublished,e=>{if(!Cs(e.track)||!$r())return;const t={kind:"updateCodec",data:{trackId:e.track.mediaStreamID,codec:Ls(e.trackInfo.codecs[0].mimeType),participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(t)}),t.on(er.SetKey,e=>this.postKey(e)).on(er.RatchetRequest,(e,t)=>this.postRatchetRequest(e,t))}postRatchetRequest(e,t){if(!this.worker)throw Error("could not ratchet key, worker is missing");const n={kind:"ratchetRequest",data:{participantIdentity:e,keyIndex:t}};this.worker.postMessage(n)}postKey(e){let{key:t,participantIdentity:n,keyIndex:i}=e;var r;if(!this.worker)throw Error("could not set key, worker is missing");const s={kind:"setKey",data:{participantIdentity:n,isPublisher:n===(null===(r=this.room)||void 0===r?void 0:r.localParticipant.identity),key:t,keyIndex:i}};this.worker.postMessage(s)}postEnable(e,t){if(!this.worker)throw new ReferenceError("failed to enable e2ee, worker is not ready");{const n={kind:"enable",data:{enabled:e,participantIdentity:t}};this.worker.postMessage(n)}}postRTPMap(e){var t;if(!this.worker)throw TypeError("could not post rtp map, worker is missing");if(!(null===(t=this.room)||void 0===t?void 0:t.localParticipant.identity))throw TypeError("could not post rtp map, local participant identity is missing");const n={kind:"setRTPMap",data:{map:e,participantIdentity:this.room.localParticipant.identity}};this.worker.postMessage(n)}postSifTrailer(e){if(!this.worker)throw Error("could not post SIF trailer, worker is missing");const t={kind:"setSifTrailer",data:{trailer:e}};this.worker.postMessage(t)}setupE2EEReceiver(e,t,n){if(e.receiver){if(!(null==n?void 0:n.mimeType)||""===n.mimeType)throw new TypeError("MimeType missing from trackInfo, cannot set up E2EE cryptor");this.handleReceiver(e.receiver,e.mediaStreamID,t,"video"===e.kind?Ls(n.mimeType):void 0)}}setupE2EESender(e,t){Ss(e)&&t?this.handleSender(t,e.mediaStreamID,void 0):t||Un.warn("early return because sender is not ready")}handleReceiver(e,t,n,i){return zn(this,void 0,void 0,function*(){if(this.worker){if(hr()){const r={kind:"decode",participantIdentity:n,trackId:t,codec:i};e.transform=new RTCRtpScriptTransform(this.worker,r)}else{if(Zi in e&&i){const e={kind:"updateCodec",data:{trackId:t,codec:i,participantIdentity:n}};return void this.worker.postMessage(e)}let r=e.writableStream,s=e.readableStream;if(!r||!s){const t=e.createEncodedStreams();e.writableStream=t.writable,r=t.writable,e.readableStream=t.readable,s=t.readable}const o={kind:"decode",data:{readableStream:s,writableStream:r,trackId:t,codec:i,participantIdentity:n,isReuse:Zi in e}};this.worker.postMessage(o,[s,r])}e[Zi]=!0}})}handleSender(e,t,n){var i;if(!(Zi in e)&&this.worker){if(!(null===(i=this.room)||void 0===i?void 0:i.localParticipant.identity)||""===this.room.localParticipant.identity)throw TypeError("local identity needs to be known in order to set up encrypted sender");if(hr()){Un.info("initialize script transform");const i={kind:"encode",participantIdentity:this.room.localParticipant.identity,trackId:t,codec:n};e.transform=new RTCRtpScriptTransform(this.worker,i)}else{Un.info("initialize encoded streams");const i=e.createEncodedStreams(),r={kind:"encode",data:{readableStream:i.readable,writableStream:i.writable,codec:n,trackId:t,participantIdentity:this.room.localParticipant.identity,isReuse:!1}};this.worker.postMessage(r,[i.readable,i.writable])}e[Zi]=!0}}}const qs="default";class zs{constructor(){this._previousDevices=[]}static getInstance(){return void 0===this.instance&&(this.instance=new zs),this.instance}get previousDevices(){return this._previousDevices}getDevices(e){return zn(this,arguments,void 0,function(e){var t=this;let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function*(){var i;if((null===(i=zs.userMediaPromiseMap)||void 0===i?void 0:i.size)>0){Un.debug("awaiting getUserMedia promise");try{e?yield zs.userMediaPromiseMap.get(e):yield Promise.all(zs.userMediaPromiseMap.values())}catch(e){Un.warn("error waiting for media permissons")}}let r=yield navigator.mediaDevices.enumerateDevices();if(n&&(!Xr()||!t.hasDeviceInUse(e))){const t=0===r.filter(t=>t.kind===e).length||r.some(t=>{const n=""===t.label,i=!e||t.kind===e;return n&&i});if(t){const t={video:"audioinput"!==e&&"audiooutput"!==e,audio:"videoinput"!==e&&{deviceId:{ideal:"default"}}},n=yield navigator.mediaDevices.getUserMedia(t);r=yield navigator.mediaDevices.enumerateDevices(),n.getTracks().forEac
vendor: 4,574 bytes, line 1
1h(e=>{e.stop()})}}return t._previousDevices=r,e&&(r=r.filter(t=>t.kind===e)),r}()})}normalizeDeviceId(e,t,n){return zn(this,void 0,void 0,function*(){if(t!==qs)return t;const i=yield this.getDevices(e),r=i.find(e=>e.deviceId===qs);if(!r)return void Un.warn("could not reliably determine default device");const s=i.find(e=>e.deviceId!==qs&&e.groupId===(null!=n?n:r.groupId));if(s)return null==s?void 0:s.deviceId;Un.warn("could not reliably determine default device")})}hasDeviceInUse(e){return e?zs.userMediaPromiseMap.has(e):zs.userMediaPromiseMap.size>0}}var Ws;zs.mediaDeviceKinds=["audioinput","audiooutput","videoinput"],zs.userMediaPromiseMap=new Map,function(e){e[e.WAITING=0]="WAITING",e[e.RUNNING=1]="RUNNING",e[e.COMPLETED=2]="COMPLETED"}(Ws||(Ws={}));class Hs{constructor(){this.pendingTasks=new Map,this.taskMutex=new o,this.nextTaskIndex=0}run(e){return zn(this,void 0,void 0,function*(){const t={id:this.nextTaskIndex++,enqueuedAt:Date.now(),status:Ws.WAITING};this.pendingTasks.set(t.id,t);const n=yield this.taskMutex.lock();try{return t.executedAt=Date.now(),t.status=Ws.RUNNING,yield e()}finally{t.status=Ws.COMPLETED,this.pendingTasks.delete(t.id),n()}})}flush(){return zn(this,void 0,void 0,function*(){return this.run(()=>zn(this,void 0,void 0,function*(){}))})}snapshot(){return Array.from(this.pendingTasks.values())}}function Gs(e,t){return e.pathname="".concat(function(e){return e.endsWith("/")?e:"".concat(e,"/")}(e.pathname)).concat(t),e.toString()}const Ks=["syncState","trickle","offer","answer","simulate","leave"];var Js;!function(e){e[e.CONNECTING=0]="CONNECTING",e[e.CONNECTED=1]="CONNECTED",e[e.RECONNECTING=2]="RECONNECTING",e[e.DISCONNECTING=3]="DISCONNECTING",e[e.DISCONNECTED=4]="DISCONNECTED"}(Js||(Js={}));class Qs{get currentState(){return this.state}get isDisconnected(){return this.state===Js.DISCONNECTING||this.state===Js.DISCONNECTED}get isEstablishingConnection(){return this.state===Js.CONNECTING||this.state===Js.RECONNECTING}getNextRequestId(){return this._requestId+=1,this._requestId}constructor(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var n;this.rtt=0,this.state=Js.DISCONNECTED,this.log=Un,this._requestId=0,this.resetCallbacks=()=>{this.onAnswer=void 0,this.onLeave=void 0,this.onLocalTrackPublished=void 0,this.onLocalTrackUnpublished=void 0,this.onNegotiateRequested=void 0,this.onOffer=void 0,this.onRemoteMuteChanged=void 0,this.onSubscribedQualityUpdate=void 0,this.onTokenRefresh=void 0,this.onTrickle=void 0,this.onClose=void 0},this.log=Fn(null!==(n=t.loggerName)&&void 0!==n?n:Mn.Signal),this.loggerContextCb=t.loggerContextCb,this.useJSON=e,this.requestQueue=new Hs,this.queuedRequests=[],this.closingLock=new o,this.connectionLock=new o,this.state=Js.DISCONNECTED}get logContext(){var e,t;return null!==(t=null===(e=this.loggerContextCb)||void 0===e?void 0:e.call(this))&&void 0!==t?t:{}}join(e,t,n,i){return zn(this,void 0,void 0,function*(){return this.state=Js.CONNECTING,this.options=n,yield this.connect(e,t,n,i)})}reconnect(e,t,n,i){return zn(this,void 0,void 0,function*(){if(this.options)return this.state=Js.RECONNECTING,this.clearPingInterval(),yield this.connect(e,t,Object.assign(Object.assign({},this.options),{reconnect:!0,sid:n,reconnectReason:i}));this.log.warn("attempted to reconnect without signal options being set, ignoring",this.logContext)})}connect(e,t,n,i){this.connectOptions=n;const r=function(e,t,n){var i;const r=new URLSearchParams;return r.set("access_token",e),n.reconnect&&(r.set("reconnect","1"),n.sid&&r.set("sid",n.sid)),r.set("auto_subscribe",n.autoSubscribe?"1":"0"),r.set("sdk",ts()?"reactnative":"js"),r.set("version",t.version),r.set("protocol",t.protocol.toString()),t.deviceModel&&r.set("device_model",t.deviceModel),t.os&&r.set("os",t.os),t.osVersion&&r.set("os_version",t.osVersion),t.browser&&r.set("browser",t.browser),t.browserVersion&&r.set("browser_version",t.browserVersion),n.adaptiveStream&&r.set("adaptive_stream","1"),n.reconnectReason&&r.set("reconnect_reason",n.reconnectReason.toString()),(null===(i=navigator.connection)||void 0===i?void 0:i.type)&&r.set("network",navigator.connection.type),r}(t,function(){var e;const t=new kt({sdk:St.JS,protocol:16,version:"2.15.7"});return ts()&&(t.os=null!==(e=rs())&&void 0!==e?e:""),t}(),n),s=function(e,t){const n=new URL(function(e){return e.startsWith("http")?e.replace(/^(http)/,"ws"):e}(e));return t.forEach((e,t)=>{n.searchParams.set(t,e)}),Gs(n,"rtc")}(e,r),o=Gs(new URL(bs(s)),"validate");return new Promise((e,t)=>
1zn(this,void 0,void 0,function*(){const r=yield this.connectionLock.lock();try{const r=()=>zn(this,void 0,void 0,function*(){this.close(),clearTimeout(a),t(new mr("room connection has been cancelled (signal)",rr.Cancelled))}),a=setTimeout(()=>{this.close(),t(new mr("room connection has timed out (signal)",rr.ServerUnreachable))},n.websocketTimeout);(null==i?void 0:i.aborted)&&r(),null==i||i.addEventListener("abort",r);const c=new URL(s);c.searchParams.has("access_token")&&c.searchParams.set("access_token","<redacted>"),this.log.debug("connecting to ".concat(c),Object.assign({reconnect:n.reconnect,reconnectReason:n.reconnectReason},this.logContext)),this.ws&&(yield this.close(!1)),this.ws=new WebSocket(s),this.ws.binaryType="arraybuffer",this.ws.onopen=()=>{clearTimeout(a)},this.ws.onerror=e=>zn(this,void 0,void 0,function*(){if(this.state===Js.CONNECTED)this.handleWSError(e);else{this.state=Js.DISCONNECTED,clearTimeout(a);try{const n=yield fetch(o);if(n.status.toFixed(0).startsWith("4")){const e=yield n.text();t(new mr(e,rr.NotAllowed,n.status))}else t(new mr("Encountered unknown websocket error during connection: ".concat(e.toString()),rr.InternalError,n.status))}catch(e){t(new mr(e instanceof Error?e.message:"server was not reachable",rr.ServerUnreachable))}}}),this.ws.onmessage=s=>zn(this,void 0,void 0,function*(){var o,a,c;let d;if("string"==typeof s.data){const e=JSON.parse(s.data);d=jt.fromJson(e,{ignoreUnknownFields:!0})}else{if(!(s.data instanceof ArrayBuffer))return void this.log.error("could not decode websocket message: ".concat(typeof s.data),this.logContext);d=jt.fromBinary(new Uint8Array(s.data))}if(this.state!==Js.CONNECTED){let s=!1;if("join"===(null===(o=d.message)||void 0===o?void 0:o.case)?(this.state=Js.CONNECTED,null==i||i.removeEventListener("abort",r),this.pingTimeoutDuration=d.message.value.pingTimeout,this.pingIntervalDuration=d.message.value.pingInterval,this.pingTimeoutDuration&&this.pingTimeoutDuration>0&&(this.log.debug("ping config",Object.assign(Object.assign({},this.logContext),{timeout:this.pingTimeoutDuration,interval:this.pingIntervalDuration})),this.startPingInterval()),e(d.message.value)):this.state===Js.RECONNECTING&&"leave"!==d.message.case?(this.state=Js.CONNECTED,null==i||i.removeEventListener("abort",r),this.startPingInterval(),"reconnect"===(null===(a=d.message)||void 0===a?void 0:a.case)?e(d.message.value):(this.log.debug("declaring signal reconnected without reconnect response received",this.logContext),e(void 0),s=!0)):this.isEstablishingConnection&&"leave"===d.message.case?t(new mr("Received leave request while trying to (re)connect",rr.LeaveRequest,void 0,d.message.value.reason)):n.reconnect||t(new mr("did not receive join response, got ".concat(null===(c=d.message)||void 0===c?void 0:c.case," instead"),rr.InternalError)),!s)return}this.signalLatency&&(yield Hr(this.signalLatency)),this.handleSignalResponse(d)}),this.ws.onclose=e=>{this.isEstablishingConnection&&t(new mr("Websocket got closed during a (re)connection attempt",rr.InternalError)),this.log.warn("websocket closed",Object.assign(Object.assign({},this.logContext),{reason:e.reason,code:e.code,wasClean:e.wasClean,state:this.state})),this.handleOnClose(e.reason)}}finally{r()}}))}close(){return zn(this,arguments,void 0,function(){var e=this;let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return function*(){const n=yield e.closingLock.lock();try{if(e.clearPingInterval(),t&&(e.state=Js.DISCONNECTING),e.ws){e.ws.onmessage=null,e.ws.onopen=null,e.ws.onclose=null;const t=new Promise(t=>{e.ws?e.ws.onclose=()=>{t()}:t()});e.ws.readyState<e.ws.CLOSING&&(e.ws.close(),yield Promise.race([t,Hr(250)])),e.ws=void 0}}finally{t&&(e.state=Js.DISCONNECTED),n()}}()})}sendOffer(e,t){this.log.debug("sending offer",Object.assign(Object.assign({},this.logContext),{offerSdp:e.sdp})),this.sendRequest({case:"offer",value:Xs(e,t)})}sendAnswer(e,t){return this.log.debug("sending answer",Object.assign(Object.assign({},this.logContext),{answerSdp:e.sdp})),this.sendRequest({case:"answer",value:Xs(e,t)})}sendIceCandidate(e,t){return this.log.debug("sending ice candidate",Object.assign(Object.assign({},this.logContext),{candidate:e})),this.sendRequest({case:"trickle",value:new Bt({candidateInit:JSON.stringify(e),target:t})})}sendMuteTrack(e,t){return this.sendRequest({case:"mute",value:new Vt({sid:e,muted:t})})}sendAddTrack(e){return this.sendRequest({case:"addTrack",value:e})}sendUpdateLocalMetadata(e,t){return zn(this,arguments,void 0,function(e,t){var n=this;let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return function*(){const r=n.getNextRequestId();return yield n.sendRequest({case:"updateMetadata",value:new tn({requestId:r,metadata:e,name:t,attributes:i})}),r}()})}sendUpdateTrackSettings(e){this.sendRequest({case:"trackSetting",value:e})}sendUpdateSubscription(e){return this.sendRequest({case:"subscription",value:e})}sendSyncState(e){return this.sendRequest({case:"syncState",value:e})}sendUpdateVideoLayers(e,t){return this.sendRequest({case:"updateLayers",value:new en({trackSid:e,layers:t})})}sendUpdateSubscriptionPermissions(e,t){return this.sendRequest({case:"subscriptionPermission",value:new mn({allParticipants:e,trackPermissions:t})})}sendSimulateScenario(e){return this.sendRequest({case:"simulate",value:e})}sendPing(){return Promise.all([this.sendRequest({case:"ping",value:E.parse(Date.now())}),this.sendRequest({case:"pingReq",value:new kn({timestamp:E.parse(Date.now()),rtt:E.parse(this.rtt)})})])}sendUpdateLocalAudioTrack(e,t){return this.sendRequest({case:"updateAudioTrack",value:new Yt({trackSid:e,features:t})})}sendLeave(){return this.sendRequest({case:"leave",value:new $t({reason:We.CLIENT_INITIATED,action:Zt.DISCONNECT})})}sendRequest(e){return zn(this,arguments,void 0,function(e){var t=this;let n=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function*(){const i=!n&&!function(e){const t=Ks.indexOf(e.case)>=0;return Un.trace("request allowed to bypass queue:",{canPass:t,req:e}),t}(e);if(i&&t.state===Js.RECONNECTING)return void t.queuedRequests.push(()=>zn(t,void 0,void 0,function*(){yield this.sendRequest(e,!0)}));if(n||(yield t.requestQueue.flush()),t.signalLatency&&(yield Hr(t.signalLatency)),t.isDisconnected)return void t.log.debug("skipping signal request (type: ".concat(e.case,") - SignalClient disconnected"));if(!t.ws||t.ws.readyState!==t.ws.OPEN)return void t.log.error("cannot send signal request before connected, type: ".concat(null==e?void 0:e.case),t.logContext);const r=new Lt({message:e});try{t.useJSON?t.ws.send(r.toJsonString()):t.ws.send(r.toBinary())}catch(e){t.log.error("error sending signal message",Object.assign(Object.assign({},t.logContext),{error:e}))}}()})}handleSignalResponse(e){var t,n;const i=e.message;if(null==i)return void this.log.debug("received unsupported message",this.logContext);let r=!1;if("answer"===i.case){const e=Ys(i.value);this.onAnswer&&this.onAnswer(e,i.value.id)}else if("offer"===i.case){const e=Ys(i.value);this.onOffer&&this.onOffer(e,i.value.id)}else if("trickle"===i.case){const e=JSON.parse(i.value.candidateInit);this.onTrickle&&this.onTrickle(e,i.value.target)}else"update"===i.case?this.onParticipantUpdate&&this.onParticipantUpdate(null!==(t=i.value.participants)&&void 0!==t?t:[]):"trackPublished"===i.case?this.onLocalTrackPublished&&this.onLocalTrackPublished(i.value):"speakersChanged"===i.case?this.onSpeakersChanged&&this.onSpeakersChanged(null!==(n=i.value.speakers)&&void 0!==n?n:[]):"leave"===i.case?this.onLeave&&this.onLeave(i.value):"mute"===i.case?this.onRemoteMuteChanged&&this.onRemoteMuteChanged(i.value.sid,i.value.muted):"roomUpdate"===i.case?this.onRoomUpdate&&i.value.room&&this.onRoomUpdate(i.value.room):"connectionQuality"===i.case?this.onConnectionQuality&&this.onConnectionQuality(i.value):"streamStateUpdate"===i.case?this.onStreamStateUpdate&&this.onStreamStateUpdate(i.value):"subscribedQualityUpdate"===i.case?this.onSubscribedQualityUpdate&&this.onSubscribedQualityUpdate(i.value):"subscriptionPermissionUpdate"===i.case?this.onSubscriptionPermissionUpdate&&this.onSubscriptionPermissionUpdate(i.value):"refreshToken"===i.case?this.onTokenRefresh&&this.onTokenRefresh(i.value):"trackUnpublished"===i.case?this.onLocalTrackUnpublished&&this.onLocalTrackUnpublished(i.value):"subscriptionResponse"===i.case?this.onSubscriptionError&&this.onSubscriptionError(i.value):"pong"===i.case||("pongResp"===i.case?(this.rtt=Date.now()-Number.parseInt(i.value.lastPingTimestamp.toString()),this.resetPingTimeout(),r=!0):"requestResponse"===i.case?this.onRequestResponse&&this.onRequestResponse(i.value):"trackSubscribed"===i.case?this.onLocalTrackSubscribed&&this.onLocalTrackSubscribed(i.value.trackSid):"roomMoved"===i.case?(this.onTokenRefresh&&this.onTokenRefresh(i.value.token),this.onRoomMoved&&this.onRoomMoved(i.value)):this.log.debug("unsupported message",Object.assign(Object.assign({},this.logContext),{msgCase:i.case})));r||this.resetPingTimeout()}setReconnected(){for(;this.queuedRequests.length>0;){const e=this.queuedRequests.shift();e&&this.requestQueue.run(e)}}handleOnClose(e){return zn(this,void 0,void 0,function*(){if(this.state===Js.DISCONNECTED)return;const t=this.onClose;yield this.close(),this.log.debug("websocket connection closed: ".concat(e),Object.assign(Object.assign({},this.logContext),{reason:e})),t&&t(e)})}handleWSError(e){this.log.error("websocket error",Object.assign(Object.assign({},this.logContext),{error:e}))}resetPingTimeout(){this.clearPingTimeout(),this.pingTimeoutDuration?this.pingTimeout=Ir.setTimeout(()=>{this.log.warn("ping timeout triggered. last pong received at: ".concat(new Date(Date.now()-1e3*this.pingTimeoutDuration).toUTCString()),this.logContext),this.handleOnClose("ping timeout")},1e3*this.pingTimeoutDuration):this.log.warn("ping timeout duration not set",this.logContext)}clearPingTimeout(){this.pingTimeout&&Ir.clearTimeout(this.pingTimeout)}startPingInterval(){this.clearPingInterval(),this.resetPingTimeout(),this.pingIntervalDuration?(this.log.debug("start ping interval",this.logContext),this.pingInterval=Ir.setInterval(()=>{this.sendPing()},1e3*this.pingIntervalDuration)):this.log.warn("ping interval duration not set",this.logContext)}clearPingInterval(){this.log.debug("clearing ping interval",this.logContext),this.clearPingTimeout(),this.pingInterval&&Ir.clearInterval(this.pingInterval)}}function Ys(e){const t={type:"offer",sdp:e.sdp};switch(e.type){case"answer":case"offer":case"pranswer":case"rollback":t.type=e.type}return t}function Xs(e,t){return new Gt({sdp:e.sdp,type:e.type,id:t})}class $s{constructor(){this.buffer=[],this._totalSize=0}push(e){this.buffer.push(e),this._totalSize+=e.data.byteLength}pop(){const e=this.buffer.shift();return e&&(this._totalSize-=e.data.byteLength),e}getAll(){return this.buffer.slice()}popToSequence(e){for(;this.buffer.length>0&&this.buffer[0].sequence<=e;)this.pop()}alignBufferedAmount(e){for(;this.buffer.length>0;){const t=this.buffer[0];if(this._totalSize-t.data.byteLength<=e)break;this.pop()}}get length(){return this.buffer.length}}class Zs{constructor(e){this._map=new Map,this._lastCleanup=0,this.ttl=e}set(e,t){const n=Date.now();n-this._lastCleanup>this.ttl/2&&this.cleanup();const i=n+this.ttl;return this._map.set(e,{value:t,expiresAt:i}),this}get(e){const t=this._map.get(e);if(t){if(!(t.expiresAt<Date.now()))return t.value;this._map.delete(e)}}has(e){const t=this._map.get(e);return!(!t||t.expiresAt<Date.now()&&(this._map.delete(e),1))}delete(e){return this._map.delete(e)}clear(){this._map.clear()}cleanup(){const e=Date.now();for(const[t,n]of this._map.entries())n.expiresAt<e&&this._map.delete(t);this._lastCleanup=e}get size(){return this.cleanup(),this._map.size}forEach(e){this.cleanup();for(const[t,n]of this._map.entries())n.expiresAt>=Date.now()&&e(n.value,t,this.asValueMap())}map(e){this.cleanup();const t=[],n=this.asValueMap();for(const[i,r]of n.entries())t.push(e(r,i,n));return t}asValueMap(){const e=new Map;for(const[t,n]of this._map.entries())n.expiresAt>=Date.now()&&e.set(t,n.value);return e}}var eo,to,no,io,ro,so={},oo={},ao={exports:{}};function co(){if(eo)return ao.exports;eo=1;var e=ao
vendor: 6,900 bytes, line 1
1.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(e){return e.encoding?"rtpmap:%d %s/%s/%s":e.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(e){return null!=e.address?"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(e){return null!=e.subtype?"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(e){return"extmap:%d"+(e.direction?"/%s":"%v")+(e["encrypt-uri"]?" %s":"%v")+" %s"+(e.config?" %s":"")}},{name:"extmapAllowMixed",reg:/^(extmap-allow-mixed)/},{push:"crypto",reg:/^crypto:(\d*) ([\w_]*) (\S*)(?: (\S*))?/,names:["id","suite","config","sessionConfig"],format:function(e){return null!=e.sessionConfig?"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(e){var t="candidate:%s %d %s %d %s %d typ %s";return t+=null!=e.raddr?" raddr %s rport %d":"%v%v",t+=null!=e.tcptype?" tcptype %s":"%v",null!=e.generation&&(t+=" generation %d"),(t+=null!=e["network-id"]?" network-id %d":"%v")+(null!=e["network-cost"]?" network-cost %d":"%v")}},{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(e){var t="ssrc:%d";return null!=e.attribute&&(t+=" %s",null!=e.value&&(t+=":%s")),t}},{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(e){return null!=e.maxMessageSize?"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(e){return e.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(e){return"imageattr:%s %s %s"+(e.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(e){return"simulcast:%s %s"+(e.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(e){return"ts-refclk:%s"+(null!=e.clksrcExt?"=%s":"")}},{name:"mediaClk",reg:/^mediaclk:(?:id=(\S*))? *([^\s=]*)(?:=(\S*))?(?: *rate=(\d+)\/(\d+))?/,names:["id","mediaClockName","mediaClockValue","rateNumerator","rateDenominator"],format:function(e){var t="mediaclk:";return t+=null!=e.id?"id=%s %s":"%v%s",t+=null!=e.mediaClockValue?"=%s":"",(t+=null!=e.rateNumerator?" rate=%s":"")+(null!=e.rateDenominator?"/%s":"")}},{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"]}]};return Object.keys(e).forEach(function(t){e[t].forEach(function(e){e.reg||(e.reg=/(.*)/),e.format||(e.format="%s")})}),
vendor: 2,484 bytes, line 1
1ao.exports}function lo(){return to||(to=1,function(e){var t=function(e){return String(Number(e))===e?Number(e):e},n=function(e,n,i){var r=e.name&&e.names;e.push&&!n[e.push]?n[e.push]=[]:r&&!n[e.name]&&(n[e.name]={});var s=e.push?{}:r?n[e.name]:n;!function(e,n,i,r){if(r&&!i)n[r]=t(e[1]);else for(var s=0;s<i.length;s+=1)null!=e[s+1]&&(n[i[s]]=t(e[s+1]))}(i.match(e.reg),s,e.names,e.name),e.push&&n[e.push].push(s)},i=co(),r=RegExp.prototype.test.bind(/^([a-z])=(.*)/);e.parse=function(e){var t={},s=[],o=t;return e.split(/(\r\n|\r|\n)/).filter(r).forEach(function(e){var t=e[0],r=e.slice(2);"m"===t&&(s.push({rtp:[],fmtp:[]}),o=s[s.length-1]);for(var a=0;a<(i[t]||[]).length;a+=1){var c=i[t][a];if(c.reg.test(r))return n(c,o,r)}}),t.media=s,t};var s=function(e,n){var i=n.split(/=(.+)/,2);return 2===i.length?e[i[0]]=t(i[1]):1===i.length&&n.length>1&&(e[i[0]]=void 0),e};e.parseParams=function(e){return e.split(/;\s?/).reduce(s,{})},e.parseFmtpConfig=e.parseParams,e.parsePayloads=function(e){return e.toString().split(" ").map(Number)},e.parseRemoteCandidates=function(e){for(var n=[],i=e.split(" ").map(t),r=0;r<i.length;r+=3)n.push({component:i[r],ip:i[r+1],port:i[r+2]});return n},e.parseImageAttributes=function(e){return e.split(" ").map(function(e){return e.substring(1,e.length-1).split(",").reduce(s,{})})},e.parseSimulcastStreamList=function(e){return e.split(";").map(function(e){return e.split(",").map(function(e){var n,i=!1;return"~"!==e[0]?n=t(e):(n=t(e.substring(1,e.length)),i=!0),{scid:n,paused:i}})})}}(oo)),oo}function uo(){if(io)return no;io=1;var e=co(),t=/%[sdv%]/g,n=function(e){var n=1,i=arguments,r=i.length;return e.replace(t,function(e){if(n>=r)return e;var t=i[n];switch(n+=1,e){case"%%":return"%";case"%s":return String(t);case"%d":return Number(t);case"%v":return""}})},i=function(e,t,i){var r=[e+"="+(t.format instanceof Function?t.format(t.push?i:i[t.name]):t.format)];if(t.names)for(var s=0;s<t.names.length;s+=1){var o=t.names[s];t.name?r.push(i[t.name][o]):r.push(i[t.names[s]])}else r.push(i[t.name]);return n.apply(null,r)},r=["v","o","s","i","u","e","p","c","b","t","r","z","a"],s=["i","c","b","a"];return no=function(t,n){n=n||{},null==t.version&&(t.version=0),null==t.name&&(t.name=" "),t.media.forEach(function(e){null==e.payloads&&(e.payloads="")});var o=n.outerOrder||r,a=n.innerOrder||s,c=[];return o.forEach(function(n){e[n].forEach(function(e){e.name in t&&null!=t[e.name]?c.push(i(n,e,t)):e.push in t&&null!=t[e.push]&&t[e.push].forEac
vendor: 56,014 bytes, line 1
1h(function(t){c.push(i(n,e,t))})})}),t.media.forEach(function(t){c.push(i("m",e.m[0],t)),a.forEach(function(n){e[n].forEach(function(e){e.name in t&&null!=t[e.name]?c.push(i(n,e,t)):e.push in t&&null!=t[e.push]&&t[e.push].forEach(function(t){c.push(i(n,e,t))})})})}),c.join("\r\n")+"\r\n"},no}var ho=function(){if(ro)return so;ro=1;var e=lo(),t=uo(),n=co();return so.grammar=n,so.write=t,so.parse=e.parse,so.parseParams=e.parseParams,so.parseFmtpConfig=e.parseFmtpConfig,so.parsePayloads=e.parsePayloads,so.parseRemoteCandidates=e.parseRemoteCandidates,so.parseImageAttributes=e.parseImageAttributes,so.parseSimulcastStreamList=e.parseSimulcastStreamList,so}();function po(e,t,n){var i,r,s;void 0===t&&(t=50),void 0===n&&(n={});var o=null!=(i=n.isImmediate)&&i,a=null!=(r=n.callback)&&r,c=n.maxWait,d=Date.now(),l=[];function u(){if(void 0!==c){var e=Date.now()-d;if(e+t>=c)return c-e}return t}var h=function(){var t=[].slice.call(arguments),n=this;return new Promise(function(i,r){var c=o&&void 0===s;if(void 0!==s&&clearTimeout(s),s=setTimeout(function(){if(s=void 0,d=Date.now(),!o){var i=e.apply(n,t);a&&a(i),l.forEach(function(e){return(0,e.resolve)(i)}),l=[]}},u()),c){var h=e.apply(n,t);return a&&a(h),i(h)}l.push({resolve:i,reject:r})})};return h.cancel=function(e){void 0!==s&&clearTimeout(s),l.forEach(function(t){return(0,t.reject)(e)}),l=[]},h}const mo="negotiationStarted",go="negotiationComplete",fo="rtpVideoPayloadTypes";class vo extends Kn.EventEmitter{get pc(){return this._pc||(this._pc=this.createPC()),this._pc}constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};var n;super(),this.log=Un,this.ddExtID=0,this.latestOfferId=0,this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate=!1,this.trackBitrates=[],this.remoteStereoMids=[],this.remoteNackMids=[],this.negotiate=po(e=>zn(this,void 0,void 0,function*(){this.emit(mo);try{yield this.createAndSendOffer()}catch(t){if(!e)throw t;e(t)}}),20),this.close=()=>{this._pc&&(this._pc.close(),this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc.onicegatheringstatechange=null,this._pc.ondatachannel=null,this._pc.onnegotiationneeded=null,this._pc.onsignalingstatechange=null,this._pc.onicecandidate=null,this._pc.ondatachannel=null,this._pc.ontrack=null,this._pc.onconnectionstatechange=null,this._pc.oniceconnectionstatechange=null,this._pc=null)},this.log=Fn(null!==(n=t.loggerName)&&void 0!==n?n:Mn.PCTransport),this.loggerOptions=t,this.config=e,this._pc=this.createPC(),this.offerLock=new o}createPC(){const e=new RTCPeerConnection(this.config);return e.onicecandidate=e=>{var t;e.candidate&&(null===(t=this.onIceCandidate)||void 0===t||t.call(this,e.candidate))},e.onicecandidateerror=e=>{var t;null===(t=this.onIceCandidateError)||void 0===t||t.call(this,e)},e.oniceconnectionstatechange=()=>{var t;null===(t=this.onIceConnectionStateChange)||void 0===t||t.call(this,e.iceConnectionState)},e.onsignalingstatechange=()=>{var t;null===(t=this.onSignalingStatechange)||void 0===t||t.call(this,e.signalingState)},e.onconnectionstatechange=()=>{var t;null===(t=this.onConnectionStateChange)||void 0===t||t.call(this,e.connectionState)},e.ondatachannel=e=>{var t;null===(t=this.onDataChannel)||void 0===t||t.call(this,e)},e.ontrack=e=>{var t;null===(t=this.onTrack)||void 0===t||t.call(this,e)},e}get logContext(){var e,t;return Object.assign({},null===(t=(e=this.loggerOptions).loggerContextCb)||void 0===t?void 0:t.call(e))}get isICEConnected(){return null!==this._pc&&("connected"===this.pc.iceConnectionState||"completed"===this.pc.iceConnectionState)}addIceCandidate(e){return zn(this,void 0,void 0,function*(){if(this.pc.remoteDescription&&!this.restartingIce)return this.pc.addIceCandidate(e);this.pendingCandidates.push(e)})}setRemoteDescription(e,t){return zn(this,void 0,void 0,function*(){var n;if("answer"===e.type&&this.latestOfferId>0&&t>0&&t!==this.latestOfferId)return this.log.warn("ignoring answer for old offer",Object.assign(Object.assign({},this.logContext),{offerId:t,latestOfferId:this.latestOfferId})),!1;let i;if("offer"===e.type){let{stereoMids:t,nackMids:n}=function(e){var t;const n=[],i=[],r=ho.parse(null!==(t=e.sdp)&&void 0!==t?t:"");let s=0;return r.media.forEach(e=>{var t;const r=yo(e.mid);"audio"===e.type&&(e.rtp.some(e=>"opus"===e.codec&&(s=e.payload,!0)),(null===(t=e.rtcpFb)||void 0===t?void 0:t.some(e=>e.payload===s&&"nack"===e.type))&&i.push(r),e.fmtp.some(e=>e.payload===s&&(e.config.includes("sprop-stereo=1")&&n.push(r),!0)))}),{stereoMids:n,nackMids:i}}(e);this.remoteStereoMids=t,this.remoteNackMids=n}else if("answer"===e.type){const t=ho.parse(null!==(n=e.sdp)&&void 0!==n?n:"");t.media.forEach(e=>{const t=yo(e.mid);"audio"===e.type&&this.trackBitrates.some(n=>{if(!n.transceiver||t!=n.transceiver.mid)return!1;let i=0;if(e.rtp.some(e=>e.codec.toUpperCase()===n.codec.toUpperCase()&&(i=e.payload,!0)),0===i)return!0;let r=!1;for(const t of e.fmtp)if(t.payload===i){t.config=t.config.split(";").filter(e=>!e.includes("maxaveragebitrate")).join(";"),n.maxbr>0&&(t.config+=";maxaveragebitrate=".concat(1e3*n.maxbr)),r=!0;break}return r||n.maxbr>0&&e.fmtp.push({payload:i,config:"maxaveragebitrate=".concat(1e3*n.maxbr)}),!0})}),i=ho.write(t)}return yield this.setMungedSDP(e,i,!0),this.pendingCandidates.forEach(e=>{this.pc.addIceCandidate(e)}),this.pendingCandidates=[],this.restartingIce=!1,this.renegotiate?(this.renegotiate=!1,yield this.createAndSendOffer()):"answer"===e.type&&(this.emit(go),e.sdp)&&ho.parse(e.sdp).media.forEach(e=>{"video"===e.type&&this.emit(fo,e.rtp)}),!0})}createAndSendOffer(e){return zn(this,void 0,void 0,function*(){var t;const n=yield this.offerLock.lock();try{if(void 0===this.onOffer)return;if((null==e?void 0:e.iceRestart)&&(this.log.debug("restarting ICE",this.logContext),this.restartingIce=!0),this._pc&&"have-local-offer"===this._pc.signalingState){const t=this._pc.remoteDescription;if(!(null==e?void 0:e.iceRestart)||!t)return void(this.renegotiate=!0);yield this._pc.setRemoteDescription(t)}else if(!this._pc||"closed"===this._pc.signalingState)return void this.log.warn("could not createOffer with closed peer connection",this.logContext);this.log.debug("starting to negotiate",this.logContext);const n=this.latestOfferId+1;this.latestOfferId=n;const i=yield this.pc.createOffer(e);this.log.debug("original offer",Object.assign({sdp:i.sdp},this.logContext));const r=ho.parse(null!==(t=i.sdp)&&void 0!==t?t:"");if(r.media.forEach(e=>{_o(e),"audio"===e.type?bo(e,[],[]):"video"===e.type&&this.trackBitrates.some(t=>{if(!e.msid||!t.cid||!e.msid.includes(t.cid))return!1;let n=0;if(e.rtp.some(e=>e.codec.toUpperCase()===t.codec.toUpperCase()&&(n=e.payload,!0)),0===n)return!0;if(Jr(t.codec)&&!Xr()&&this.ensureVideoDDExtensionForSVC(e,r),"av1"!==t.codec)return!0;const i=Math.round(.7*t.maxbr);for(const t of e.fmtp)if(t.payload===n){t.config.includes("x-google-start-bitrate")||(t.config+=";x-google-start-bitrate=".concat(i));break}return!0})}),this.latestOfferId>n)return void this.log.warn("latestOfferId mismatch",Object.assign(Object.assign({},this.logContext),{latestOfferId:this.latestOfferId,offerId:n}));yield this.setMungedSDP(i,ho.write(r)),this.onOffer(i,this.latestOfferId)}finally{n()}})}createAndSetAnswer(){return zn(this,void 0,void 0,function*(){var e;const t=yield this.pc.createAnswer(),n=ho.parse(null!==(e=t.sdp)&&void 0!==e?e:"");return n.media.forEach(e=>{_o(e),"audio"===e.type&&bo(e,this.remoteStereoMids,this.remoteNackMids)}),yield this.setMungedSDP(t,ho.write(n)),t})}createDataChannel(e,t){return this.pc.createDataChannel(e,t)}addTransceiver(e,t){return this.pc.addTransceiver(e,t)}addTrack(e){if(!this._pc)throw new br("PC closed, cannot add track");return this._pc.addTrack(e)}setTrackCodecBitrate(e){this.trackBitrates.push(e)}setConfiguration(e){var t;if(!this._pc)throw new br("PC closed, cannot configure");return null===(t=this._pc)||void 0===t?void 0:t.setConfiguration(e)}canRemoveTrack(){var e;return!!(null===(e=this._pc)||void 0===e?void 0:e.removeTrack)}removeTrack(e){var t;return null===(t=this._pc)||void 0===t?void 0:t.removeTrack(e)}getConnectionState(){var e,t;return null!==(t=null===(e=this._pc)||void 0===e?void 0:e.connectionState)&&void 0!==t?t:"closed"}getICEConnectionState(){var e,t;return null!==(t=null===(e=this._pc)||void 0===e?void 0:e.iceConnectionState)&&void 0!==t?t:"closed"}getSignallingState(){var e,t;return null!==(t=null===(e=this._pc)||void 0===e?void 0:e.signalingState)&&void 0!==t?t:"closed"}getTransceivers(){var e,t;return null!==(t=null===(e=this._pc)||void 0===e?void 0:e.getTransceivers())&&void 0!==t?t:[]}getSenders(){var e,t;return null!==(t=null===(e=this._pc)||void 0===e?void 0:e.getSenders())&&void 0!==t?t:[]}getLocalDescription(){var e;return null===(e=this._pc)||void 0===e?void 0:e.localDescription}getRemoteDescription(){var e;return null===(e=this.pc)||void 0===e?void 0:e.remoteDescription}getStats(){return this.pc.getStats()}getConnectedAddress(){return zn(this,void 0,void 0,function*(){var e;if(!this._pc)return;let t="";const n=new Map,i=new Map;if((yield this._pc.getStats()).forEach(e=>{switch(e.type){case"transport":t=e.selectedCandidatePairId;break;case"candidate-pair":""===t&&e.selected&&(t=e.id),n.set(e.id,e);break;case"remote-candidate":i.set(e.id,"".concat(e.address,":").concat(e.port))}}),""===t)return;const r=null===(e=n.get(t))||void 0===e?void 0:e.remoteCandidateId;return void 0!==r?i.get(r):void 0})}setMungedSDP(e,t,n){return zn(this,void 0,void 0,function*(){if(t){const i=e.sdp;e.sdp=t;try{return this.log.debug("setting munged ".concat(n?"remote":"local"," description"),this.logContext),void(n?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e))}catch(n){this.log.warn("not able to set ".concat(e.type,", falling back to unmodified sdp"),Object.assign(Object.assign({},this.logContext),{error:n,sdp:t})),e.sdp=i}}try{n?yield this.pc.setRemoteDescription(e):yield this.pc.setLocalDescription(e)}catch(t){let i="unknown error";t instanceof Error?i=t.message:"string"==typeof t&&(i=t);const r={error:i,sdp:e.sdp};throw!n&&this.pc.remoteDescription&&(r.remoteSdp=this.pc.remoteDescription),this.log.error("unable to set ".concat(e.type),Object.assign(Object.assign({},this.logContext),{fields:r})),new _r(i)}})}ensureVideoDDExtensionForSVC(e,t){var n,i;if(!(null===(n=e.ext)||void 0===n?void 0:n.some(e=>e.uri===Wr))){if(0===this.ddExtID){let e=0;t.media.forEach(t=>{var n;"video"===t.type&&(null===(n=t.ext)||void 0===n||n.forEach(t=>{t.value>e&&(e=t.value)}))}),this.ddExtID=e+1}null===(i=e.ext)||void 0===i||i.push({value:this.ddExtID,uri:Wr})}}}function bo(e,t,n){const i=yo(e.mid);let r=0;e.rtp.some(e=>"opus"===e.codec&&(r=e.payload,!0)),r>0&&(e.rtcpFb||(e.rtcpFb=[]),n.includes(i)&&!e.rtcpFb.some(e=>e.payload===r&&"nack"===e.type)&&e.rtcpFb.push({payload:r,type:"nack"}),t.includes(i)&&e.fmtp.some(e=>e.payload===r&&(e.config.includes("stereo=1")||(e.config+=";stereo=1"),!0)))}function _o(e){if(e.connection){const t=e.connection.ip.indexOf(":")>=0;(4===e.connection.version&&t||6===e.connection.version&&!t)&&(e.connection.ip="0.0.0.0",e.connection.version=4)}}function yo(e){return"number"==typeof e?e.toFixed(0):e}const ko="vp8",So={audioPreset:Br.music,dtx:!0,red:!0,forceStereo:!1,simulcast:!0,screenShareEncoding:zr.h1080fps15.encoding,stopMicTrackOnMute:!1,videoCodec:ko,backupCodec:!0,preConnectBuffer:!1},To={deviceId:{ideal:"default"},autoGainControl:!0,echoCancellation:!0,noiseSuppression:!0,voiceIsolation:!0},Co={deviceId:{ideal:"default"},resolution:Vr.h720.resolution},wo={adaptiveStream:!1,dynacast:!1,stopLocalTrackOnUnpublish:!0,reconnectPolicy:new class{constructor(e){this._retryDelays=void 0!==e?[...e]:qn}nextRetryDelayInMs(e){if(e.retryCount>=this._retryDelays.length)return null;const t=this._retryDelays[e.retryCount];return e.retryCount<=1?t:t+1e3*Math.random()}},disconnectOnPageLeave:!0,webAudioMix:!1},Eo={autoSubscribe:!0,maxRetries:1,peerConnectionTimeout:15e3,websocketTimeout:15e3};var Po;!function(e){e[e.NEW=0]="NEW",e[e.CONNECTING=1]="CONNECTING",e[e.CONNECTED=2]="CONNECTED",e[e.FAILED=3]="FAILED",e[e.CLOSING=4]="CLOSING",e[e.CLOSED=5]="CLOSED"}(Po||(Po={}));class Ro{get needsPublisher(){return this.isPublisherConnectionRequired}get needsSubscriber(){return this.isSubscriberConnectionRequired}get currentState(){return this.state}constructor(e,t,n){var i;this.peerConnectionTimeout=Eo.peerConnectionTimeout,this.log=Un,this.updateState=()=>{var e;const t=this.state,n=this.requiredTransports.map(e=>e.getConnectionState());n.every(e=>"connected"===e)?this.state=Po.CONNECTED:n.some(e=>"failed"===e)?this.state=Po.FAILED:n.some(e=>"connecting"===e)?this.state=Po.CONNECTING:n.every(e=>"closed"===e)?this.state=Po.CLOSED:n.some(e=>"closed"===e)?this.state=Po.CLOSING:n.every(e=>"new"===e)&&(this.state=Po.NEW),t!==this.state&&(this.log.debug("pc state change: from ".concat(Po[t]," to ").concat(Po[this.state]),this.logContext),null===(e=this.onStateChange)||void 0===e||e.call(this,this.state,this.publisher.getConnectionState(),this.subscriber.getConnectionState()))},this.log=Fn(null!==(i=n.loggerName)&&void 0!==i?i:Mn.PCManager),this.loggerOptions=n,this.isPublisherConnectionRequired=!t,this.isSubscriberConnectionRequired=t,this.publisher=new vo(e,n),this.subscriber=new vo(e,n),this.publisher.onConnectionStateChange=this.updateState,this.subscriber.onConnectionStateChange=this.updateState,this.publisher.onIceConnectionStateChange=this.updateState,this.subscriber.onIceConnectionStateChange=this.updateState,this.publisher.onSignalingStatechange=this.updateState,this.subscriber.onSignalingStatechange=this.updateState,this.publisher.onIceCandidate=e=>{var t;null===(t=this.onIceCandidate)||void 0===t||t.call(this,e,Dt.PUBLISHER)},this.subscriber.onIceCandidate=e=>{var t;null===(t=this.onIceCandidate)||void 0===t||t.call(this,e,Dt.SUBSCRIBER)},this.subscriber.onDataChannel=e=>{var t;null===(t=this.onDataChannel)||void 0===t||t.call(this,e)},this.subscriber.onTrack=e=>{var t;null===(t=this.onTrack)||void 0===t||t.call(this,e)},this.publisher.onOffer=(e,t)=>{var n;null===(n=this.onPublisherOffer)||void 0===n||n.call(this,e,t)},this.state=Po.NEW,this.connectionLock=new o,this.remoteOfferLock=new o}get logContext(){var e,t;return Object.assign({},null===(t=(e=this.loggerOptions).loggerContextCb)||void 0===t?void 0:t.call(e))}requirePublisher(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.isPublisherConnectionRequired=e,this.updateState()}requireSubscriber(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.isSubscriberConnectionRequired=e,this.updateState()}createAndSendPublisherOffer(e){return this.publisher.createAndSendOffer(e)}setPublisherAnswer(e,t){return this.publisher.setRemoteDescription(e,t)}removeTrack(e){return this.publisher.removeTrack(e)}close(){return zn(this,void 0,void 0,function*(){if(this.publisher&&"closed"!==this.publisher.getSignallingState()){const e=this.publisher;for(const t of e.getSenders())try{e.canRemoveTrack()&&e.removeTrack(t)}catch(e){this.log.warn("could not removeTrack",Object.assign(Object.assign({},this.logContext),{error:e}))}}yield Promise.all([this.publisher.close(),this.subscriber.close()]),this.updateState()})}triggerIceRestart(){return zn(this,void 0,void 0,function*(){this.subscriber.restartingIce=!0,this.needsPublisher&&(yield this.createAndSendPublisherOffer({iceRestart:!0}))})}addIceCandidate(e,t){return zn(this,void 0,void 0,function*(){t===Dt.PUBLISHER?yield this.publisher.addIceCandidate(e):yield this.subscriber.addIceCandidate(e)})}createSubscriberAnswerFromOffer(e,t){return zn(this,void 0,void 0,function*(){this.log.debug("received server offer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type,sdp:e.sdp,signalingState:this.subscriber.getSignallingState().toString()}));const n=yield this.remoteOfferLock.lock();try{if(!(yield this.subscriber.setRemoteDescription(e,t)))return;return yield this.subscriber.createAndSetAnswer()}finally{n()}})}updateConfiguration(e,t){this.publisher.setConfiguration(e),this.subscriber.setConfiguration(e),t&&this.triggerIceRestart()}ensurePCTransportConnection(e,t){return zn(this,void 0,void 0,function*(){var n;const i=yield this.connectionLock.lock();try{this.isPublisherConnectionRequired&&"connected"!==this.publisher.getConnectionState()&&"connecting"!==this.publisher.getConnectionState()&&(this.log.debug("negotiation required, start negotiating",this.logContext),this.publisher.negotiate()),yield Promise.all(null===(n=this.requiredTransports)||void 0===n?void 0:n.map(n=>this.ensureTransportConnected(n,e,t)))}finally{i()}})}negotiate(e){return zn(this,void 0,void 0,function*(){return new Promise((t,n)=>zn(this,void 0,void 0,function*(){const i=setTimeout(()=>{n("negotiation timed out")},this.peerConnectionTimeout);e.signal.addEventListener("abort",()=>{clearTimeout(i),n("negotiation aborted")}),this.publisher.once(mo,()=>{e.signal.aborted||this.publisher.once(go,()=>{clearTimeout(i),t()})}),yield this.publisher.negotiate(e=>{clearTimeout(i),n(e)})}))})}addPublisherTransceiver(e,t){return this.publisher.addTransceiver(e,t)}addPublisherTrack(e){return this.publisher.addTrack(e)}createPublisherDataChannel(e,t){return this.publisher.createDataChannel(e,t)}getConnectedAddress(e){return e===Dt.PUBLISHER||e===Dt.SUBSCRIBER?this.publisher.getConnectedAddress():this.requiredTransports[0].getConnectedAddress()}get requiredTransports(){const e=[];return this.isPublisherConnectionRequired&&e.push(this.publisher),this.isSubscriberConnectionRequired&&e.push(this.subscriber),e}ensureTransportConnected(e,t){return zn(this,arguments,void 0,function(e,t){var n=this;let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.peerConnectionTimeout;return function*(){if("connected"!==e.getConnectionState())return new Promise((e,r)=>zn(n,void 0,void 0,function*(){const n=()=>{this.log.warn("abort transport connection",this.logContext),Ir.clearTimeout(s),r(new mr("room connection has been cancelled",rr.Cancelled))};(null==t?void 0:t.signal.aborted)&&n(),null==t||t.signal.addEventListener("abort",n);const s=Ir.setTimeout(()=>{null==t||t.signal.removeEventListener("abort",n),r(new mr("could not establish pc connection",rr.InternalError))},i);for(;this.state!==Po.CONNECTED;)if(yield Hr(50),null==t?void 0:t.signal.aborted)return void r(new mr("room connection has been cancelled",rr.Cancelled));Ir.clearTimeout(s),null==t||t.signal.removeEventListener("abort",n),e()}))}()})}}class Io extends Error{constructor(e,t,n){super(t),this.code=e,this.message=xo(t,Io.MAX_MESSAGE_BYTES),this.data=n?xo(n,Io.MAX_DATA_BYTES):void 0}static fromProto(e){return new Io(e.code,e.message,e.data)}toProto(){return new vt({code:this.code,message:this.message,data:this.data})}static builtIn(e,t){return new Io(Io.ErrorCode[e],Io.ErrorMessage[e],t)}}function Oo(e){return(new TextEncoder).encode(e).length}function xo(e,t){if(Oo(e)<=t)return e;let n=0,i=e.length;const r=new TextEncoder;for(;n<i;){const s=Math.floor((n+i+1)/2);r.encode(e.slice(0,s)).length<=t?n=s:i=s-1}return e.slice(0,n)}Io.MAX_MESSAGE_BYTES=256,Io.MAX_DATA_BYTES=15360,Io.ErrorCode={APPLICATION_ERROR:1500,CONNECTION_TIMEOUT:1501,RESPONSE_TIMEOUT:1502,RECIPIENT_DISCONNECTED:1503,RESPONSE_PAYLOAD_TOO_LARGE:1504,SEND_FAILED:1505,UNSUPPORTED_METHOD:1400,RECIPIENT_NOT_FOUND:1401,REQUEST_PAYLOAD_TOO_LARGE:1402,UNSUPPORTED_SERVER:1403,UNSUPPORTED_VERSION:1404},Io.ErrorMessage={APPLICATION_ERROR:"Application error in method handler",CONNECTION_TIMEOUT:"Connection timeout",RESPONSE_TIMEOUT:"Response timeout",RECIPIENT_DISCONNECTED:"Recipient disconnected",RESPONSE_PAYLOAD_TOO_LARGE:"Response payload too large",SEND_FAILED:"Failed to send",UNSUPPORTED_METHOD:"Method not supported at destination",RECIPIENT_NOT_FOUND:"Recipient not found",REQUEST_PAYLOAD_TOO_LARGE:"Request payload too large",UNSUPPORTED_SERVER:"RPC not supported by server",UNSUPPORTED_VERSION:"Unsupported RPC version"};const Ao=2e3;function Do(e,t){if(!t)return 0;let n,i;return"bytesReceived"in e?(n=e.bytesReceived,i=t.bytesReceived):"bytesSent"in e&&(n=e.bytesSent,i=t.bytesSent),void 0===n||void 0===i||void 0===e.timestamp||void 0===t.timestamp?0:8*(n-i)*1e3/(e.timestamp-t.timestamp)}const No="undefined"!=typeof MediaRecorder,Mo=No?MediaRecorder:class{constructor(){throw new Error("MediaRecorder is not available in this environment")}};class Lo extends Mo{constructor(e,t){if(!No)throw new Error("MediaRecorder is not available in this environment");let n,i;super(new MediaStream([e.mediaStreamTrack]),t);const r=()=>{this.removeEventListener("dataavailable",n),this.removeEventListener("stop",r),this.removeEventListener("error",s),null==i||i.close(),i=void 0},s=e=>{null==i||i.error(e),this.removeEventListener("dataavailable",n),this.removeEventListener("stop",r),this.removeEventListener("error",s),i=void 0};this.byteStream=new ReadableStream({start:e=>{i=e,n=t=>zn(this,void 0,void 0,function*(){let n;if(t.data.arrayBuffer){const e=yield t.data.arrayBuffer();n=new Uint8Array(e)}else{if(!t.data.byteArray)throw new Error("no data available!");n=t.data.byteArray}void 0!==i&&e.enqueue(n)}),this.addEventListener("dataavailable",n)},cancel:()=>{r()}}),this.addEventListener("stop",r),this.addEventListener("error",s)}}class jo extends Ar{get sender(){return this._sender}set sender(e){this._sender=e}get constraints(){return this._constraints}get hasPreConnectBuffer(){return!!this.localTrackRecorder}constructor(e,t,n){let i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];super(e,t,arguments.length>4?arguments[4]:void 0),this.manuallyStopped=!1,this._isUpstreamPaused=!1,this.handleTrackMuteEvent=()=>this.debouncedTrackMuteHandler().catch(()=>this.log.debug("track mute bounce got cancelled by an unmute event",this.logContext)),this.debouncedTrackMuteHandler=po(()=>zn(this,void 0,void 0,function*(){yield this.pauseUpstream()}),5e3),this.handleTrackUnmuteEvent=()=>zn(this,void 0,void 0,function*(){this.debouncedTrackMuteHandler.cancel("unmute"),yield this.resumeUpstream()}),this.handleEnded=()=>{this.isInBackground&&(this.reacquireTrack=!0),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),this.emit(ur.Ended,this)},this.reacquireTrack=!1,this.providedByUser=i,this.muteLock=new o,this.pauseUpstreamLock=new o,this.trackChangeLock=new o,this.trackChangeLock.lock().then(t=>zn(this,void 0,void 0,function*(){try{yield this.setMediaStreamTrack(e,!0)}finally{t()}})),this._constraints=e.getConstraints(),n&&(this._constraints=n)}get id(){return this._mediaStreamTrack.id}get dimensions(){if(this.kind!==Ar.Kind.Video)return;const{width:e,height:t}=this._mediaStreamTrack.getSettings();return e&&t?{width:e,height:t}:void 0}get isUpstreamPaused(){return this._isUpstreamPaused}get isUserProvided(){return this.providedByUser}get mediaStreamTrack(){var e,t;return null!==(t=null===(e=this.processor)||void 0===e?void 0:e.processedTrack)&&void 0!==t?t:this._mediaStreamTrack}get isLocal(){return!0}getSourceTrackSettings(){return this._mediaStreamTrack.getSettings()}setMediaStreamTrack(e,t){return zn(this,void 0,void 0,function*(){var n;if(e===this._mediaStreamTrack&&!t)return;let i;if(this._mediaStreamTrack&&(this.attachedElements.forEach(e=>{Nr(this._mediaStreamTrack,e)}),this.debouncedTrackMuteHandler.cancel("new-track"),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent)),this.mediaStream=new MediaStream([e]),e&&(e.addEventListener("ended",this.handleEnded),e.addEventListener("mute",this.handleTrackMuteEvent),e.addEventListener("unmute",this.handleTrackUnmuteEvent),this._constraints=e.getConstraints()),this.processor&&e){if(this.log.debug("restarting processor",this.logContext),"unknown"===this.kind)throw TypeError("cannot set processor on track of unknown kind");this.processorElement&&(Dr(e,this.processorElement),this.processorElement.muted=!0),yield this.processor.restart({track:e,kind:this.kind,element:this.processorElement}),i=this.processor.processedTrack}this.sender&&"closed"!==(null===(n=this.sender.transport)||void 0===n?void 0:n.state)&&(yield this.sender.replaceTrack(null!=i?i:e)),this.providedByUser||this._mediaStreamTrack===e||this._mediaStreamTrack.stop(),this._mediaStreamTrack=e,e&&(this._mediaStreamTrack.enabled=!this.isMuted,yield this.resumeUpstream(),this.attachedElements.forEach(t=>{Dr(null!=i?i:e,t)}))})}waitForDimensions(){return zn(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e3;return function*(){var n;if(e.kind===Ar.Kind.Audio)throw new Error("cannot get dimensions for audio tracks");"iOS"===(null===(n=wr())||void 0===n?void 0:n.os)&&(yield Hr(10));const i=Date.now();for(;Date.now()-i<t;){const t=e.dimensions;if(t)return t;yield Hr(50)}throw new fr("unable to get track dimensions after timeout")}()})}setDeviceId(e){return zn(this,void 0,void 0,function*(){return this._constraints.deviceId===e&&this._mediaStreamTrack.getSettings().deviceId===vs(e)||(this._constraints.deviceId=e,!!this.isMuted||(yield this.restartTrack(),vs(e)===this._mediaStreamTrack.getSettings().deviceId))})}getDeviceId(){return zn(this,arguments,void 0,function(){var e=this;let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return function*(){if(e.source===Ar.Source.ScreenShare)return;const{deviceId:n,groupId:i}=e._mediaStreamTrack.getSettings(),r=e.kind===Ar.Kind.Audio?"audioinput":"videoinput";return t?zs.getInstance().normalizeDeviceId(r,n,i):n}()})}mute(){return zn(this,void 0,void 0,function*(){return this.setTrackMuted(!0),this})}unmute(){return zn(this,void 0,void 0,function*(){return this.setTrackMuted(!1),this})}replaceTrack(e,t){return zn(this,void 0,void 0,function*(){const n=yield this.trackChangeLock.lock();try{if(!this.sender)throw new fr("unable to replace an unpublished track");let n,i;return"boolean"==typeof t?n=t:void 0!==t&&(n=t.userProvidedTrack,i=t.stopProcessor),this.providedByUser=null==n||n,this.log.debug("replace MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(e),i&&this.processor&&(yield this.internalStopProcessor()),this}finally{n()}})}restart(e){return zn(this,void 0,void 0,function*(){this.manuallyStopped=!1;const t=yield this.trackChangeLock.lock();try{e||(e=this._constraints);const{deviceId:t,facingMode:n}=e,i=function(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]])}return n}(e,["deviceId","facingMode"]);this.log.debug("restarting track with constraints",Object.assign(Object.assign({},this.logContext),{constraints:e}));const r={audio:!1,video:!1};this.kind===Ar.Kind.Video?r.video=!t&&!n||{deviceId:t,facingMode:n}:r.audio=!t||Object.assign({deviceId:t},i),this.attachedElements.forEach(e=>{Nr(this.mediaStreamTrack,e)}),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.stop();const s=(yield navigator.mediaDevices.getUserMedia(r)).getTracks()[0];return this.kind===Ar.Kind.Video&&(yield s.applyConstraints(i)),s.addEventListener("ended",this.handleEnded),this.log.debug("re-acquired MediaStreamTrack",this.logContext),yield this.setMediaStreamTrack(s),this._constraints=e,this.emit(ur.Restarted,this),this.manuallyStopped&&(this.log.warn("track was stopped during a restart, stopping restarted track",this.logContext),this.stop()),this}finally{t()}})}setTrackMuted(e){this.log.debug("setting ".concat(this.kind," track ").concat(e?"muted":"unmuted"),this.logContext),this.isMuted===e&&this._mediaStreamTrack.enabled!==e||(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?ur.Muted:ur.Unmuted,this))}get needsReAcquisition(){return"live"!==this._mediaStreamTrack.readyState||this._mediaStreamTrack.muted||!this._mediaStreamTrack.enabled||this.reacquireTrack}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return zn(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),Zr()&&(this.log.debug("visibility changed, is in Background: ".concat(this.isInBackground),this.logContext),this.isInBackground||!this.needsReAcquisition||this.isUserProvided||this.isMuted||(this.log.debug("track needs to be reacquired, restarting ".concat(this.source),this.logContext),yield this.restart(),this.reacquireTrack=!1))})}stop(){var e;this.manuallyStopped=!0,super.stop(),this._mediaStreamTrack.removeEventListener("ended",this.handleEnded),this._mediaStreamTrack.removeEventListener("mute",this.handleTrackMuteEvent),this._mediaStreamTrack.removeEventListener("unmute",this.handleTrackUnmuteEvent),null===(e=this.processor)||void 0===e||e.destroy(),this.processor=void 0}pauseUpstream(){return zn(this,void 0,void 0,function*(){var e;const t=yield this.pauseUpstreamLock.lock();try{if(!0===this._isUpstreamPaused)return;if(!this.sender)return void this.log.warn("unable to pause upstream for an unpublished track",this.logContext);this._isUpstreamPaused=!0,this.emit(ur.UpstreamPaused,this);const t=wr();if("Safari"===(null==t?void 0:t.name)&&os(t.version,"12.0")<0)throw new gr("pauseUpstream is not supported on Safari < 12.");"closed"!==(null===(e=this.sender.transport)||void 0===e?void 0:e.state)&&(yield this.sender.replaceTrack(null))}finally{t()}})}resumeUpstream(){return zn(this,void 0,void 0,function*(){var e;const t=yield this.pauseUpstreamLock.lock();try{if(!1===this._isUpstreamPaused)return;if(!this.sender)return void this.log.warn("unable to resume upstream for an unpublished track",this.logContext);this._isUpstreamPaused=!1,this.emit(ur.UpstreamResumed,this),"closed"!==(null===(e=this.sender.transport)||void 0===e?void 0:e.state)&&(yield this.sender.replaceTrack(this.mediaStreamTrack))}finally{t()}})}getRTCStatsReport(){return zn(this,void 0,void 0,function*(){var e;if(null===(e=this.sender)||void 0===e?void 0:e.getStats)return yield this.sender.getStats()})}setProcessor(e){return zn(this,arguments,void 0,function(e){var t=this;let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function*(){var i;const r=yield t.trackChangeLock.lock();try{t.log.debug("setting up processor",t.logContext);const r=document.createElement(t.kind),s={kind:t.kind,track:t._mediaStreamTrack,element:r,audioContext:t.audioContext};if(yield e.init(s),t.log.debug("processor initialized",t.logContext),t.processor&&(yield t.internalStopProcessor()),"unknown"===t.kind)throw TypeError("cannot set processor on track of unknown kind");if(Dr(t._mediaStreamTrack,r),r.muted=!0,r.play().catch(e=>{e instanceof DOMException&&"AbortError"===e.name?(t.log.warn("failed to play processor element, retrying",Object.assign(Object.assign({},t.logContext),{error:e})),setTimeout(()=>{r.play().catch(e=>{t.log.error("failed to play processor element",Object.assign(Object.assign({},t.logContext),{err:e}))})},100)):t.log.error("failed to play processor element",Object.assign(Object.assign({},t.logContext),{error:e}))}),t.processor=e,t.processorElement=r,t.processor.processedTrack){for(const e of t.attachedElements)e!==t.processorElement&&n&&(Nr(t._mediaStreamTrack,e),Dr(t.processor.processedTrack,e));yield null===(i=t.sender)||void 0===i?void 0:i.replaceTrack(t.processor.processedTrack)}t.emit(ur.TrackProcessorUpdate,t.processor)}finally{r()}}()})}getProcessor(){return this.processor}stopProcessor(){return zn(this,arguments,void 0,function(){var e=this;let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return function*(){const n=yield e.trackChangeLock.lock();try{yield e.internalStopProcessor(t)}finally{n()}}()})}internalStopProcessor(){return zn(this,arguments,void 0,function(){var e=this;let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return function*(){var n,i;e.processor&&(e.log.debug("stopping processor",e.logContext),null===(n=e.processor.processedTrack)||void 0===n||n.stop(),yield e.processor.destroy(),e.processor=void 0,t||(null===(i=e.processorElement)||void 0===i||i.remove(),e.processorElement=void 0),yield e._mediaStreamTrack.applyConstraints(e._constraints),yield e.setMediaStreamTrack(e._mediaStreamTrack,!0),e.emit(ur.TrackProcessorUpdate))}()})}startPreConnectBuffer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100;if(No)if(this.localTrackRecorder)this.log.warn("preconnect buffer already started");else{{let e="audio/webm;codecs=opus";MediaRecorder.isTypeSupported(e)||(e="video/mp4"),this.localTrackRecorder=new Lo(this,{mimeType:e})}this.localTrackRecorder.start(e),this.autoStopPreConnectBuffer=setTimeout(()=>{this.log.warn("preconnect buffer timed out, stopping recording automatically",this.logContext),this.stopPreConnectBuffer()},1e4)}else this.log.warn("MediaRecorder is not available, cannot start preconnect buffer",this.logContext)}stopPreConnectBuffer(){clearTimeout(this.autoStopPreConnectBuffer),this.localTrackRecorder&&(this.localTrackRecorder.stop(),this.localTrackRecorder=void 0)}getPreConnectBuffer(){var e;return null===(e=this.localTrackRecorder)||void 0===e?void 0:e.byteStream}getPreConnectBufferMimeType(){var e;return null===(e=this.localTrackRecorder)||void 0===e?void 0:e.mimeType}}class Uo extends jo{get enhancedNoiseCancellation(){return this.isKrispNoiseFilterEnabled}constructor(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=arguments.length>3?arguments[3]:void 0,r=arguments.length>4?arguments[4]:void 0;super(e,Ar.Kind.Audio,t,n,r),this.stopOnMute=!1,this.isKrispNoiseFilterEnabled=!1,this.monitorSender=()=>zn(this,void 0,void 0,function*(){if(!this.sender)return void(this._currentBitrate=0);let e;try{e=yield this.getSenderStats()}catch(e){return void this.log.error("could not get audio sender stats",Object.assign(Object.assign({},this.logContext),{error:e}))}e&&this.prevStats&&(this._currentBitrate=Do(e,this.prevStats)),this.prevStats=e}),this.handleKrispNoiseFilterEnable=()=>{this.isKrispNoiseFilterEnabled=!0,this.log.debug("Krisp noise filter enabled",this.logContext),this.emit(ur.AudioTrackFeatureUpdate,this,Ke.TF_ENHANCED_NOISE_CANCELLATION,!0)},this.handleKrispNoiseFilterDisable=()=>{this.isKrispNoiseFilterEnabled=!1,this.log.debug("Krisp noise filter disabled",this.logContext),this.emit(ur.AudioTrackFeatureUpdate,this,Ke.TF_ENHANCED_NOISE_CANCELLATION,!1)},this.audioContext=i,this.checkForSilence()}mute(){const e=Object.create(null,{mute:{get:()=>super.mute}});return zn(this,void 0,void 0,function*(){const t=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug("Track already muted",this.logContext),this):(this.source===Ar.Source.Microphone&&this.stopOnMute&&!this.isUserProvided&&(this.log.debug("stopping mic track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{t()}})}unmute(){const e=Object.create(null,{unmute:{get:()=>super.unmute}});return zn(this,void 0,void 0,function*(){const t=yield this.muteLock.lock();try{if(!this.isMuted)return this.log.debug("Track already unmuted",this.logContext),this;const t=this._constraints.deviceId&&this._mediaStreamTrack.getSettings().deviceId!==vs(this._constraints.deviceId);return this.source!==Ar.Source.Microphone||!this.stopOnMute&&"ended"!==this._mediaStreamTrack.readyState&&!t||this.isUserProvided||(this.log.debug("reacquiring mic track",this.logContext),yield this.restartTrack()),yield e.unmute.call(this),this}finally{t()}})}restartTrack(e){return zn(this,void 0,void 0,function*(){let t;if(e){const n=As({audio:e});"boolean"!=typeof n.audio&&(t=n.audio)}yield this.restart(t)})}restart(e){const t=Object.create(null,{restart:{get:()=>super.restart}});return zn(this,void 0,void 0,function*(){const n=yield t.restart.call(this,e);return this.checkForSilence(),n})}startMonitor(){es()&&(this.monitorInterval||(this.monitorInterval=setInterval(()=>{this.monitorSender()},Ao)))}setProcessor(e){return zn(this,void 0,void 0,function*(){var t;const n=yield this.trackChangeLock.lock();try{if(!ts()&&!this.audioContext)throw Error("Audio context needs to be set on LocalAudioTrack in order to enable processors");this.processor&&(yield this.internalStopProcessor());const n={kind:this.kind,track:this._mediaStreamTrack,audioContext:this.audioContext};this.log.debug("setting up audio processor ".concat(e.name),this.logContext),yield e.init(n),this.processor=e,this.processor.processedTrack&&(yield null===(t=this.sender)||void 0===t?void 0:t.replaceTrack(this.processor.processedTrack),this.processor.processedTrack.addEventListener("enable-lk-krisp-noise-filter",this.handleKrispNoiseFilterEnable),this.processor.processedTrack.addEventListener("disable-lk-krisp-noise-filter",this.handleKrispNoiseFilterDisable)),this.emit(ur.TrackProcessorUpdate,this.processor)}finally{n()}})}setAudioContext(e){this.audioContext=e}getSenderStats(){return zn(this,void 0,void 0,function*(){var e;if(!(null===(e=this.sender)||void 0===e?void 0:e.getStats))return;let t;return(yield this.sender.getStats()).forEach(e=>{"outbound-rtp"===e.type&&(t={type:"audio",streamId:e.id,packetsSent:e.packetsSent,packetsLost:e.packetsLost,bytesSent:e.bytesSent,timestamp:e.timestamp,roundTripTime:e.roundTripTime,jitter:e.jitter})}),t})}checkForSilence(){return zn(this,void 0,void 0,function*(){const e=yield function(e){return zn(this,arguments,void 0,function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:200;return function*(){const n=Ds();if(n){const i=n.createAnalyser();i.fftSize=2048;const r=i.frequencyBinCount,s=new Uint8Array(r);n.createMediaStreamSource(new MediaStream([e.mediaStreamTrack])).connect(i),yield Hr(t),i.getByteTimeDomainData(s);const o=s.some(e=>128!==e&&0!==e);return n.close(),!o}return!1}()})}(this);return e&&(this.isMuted||this.log.warn("silence detected on local audio track",this.logContext),this.emit(ur.AudioSilenceDetected)),e})}}const Fo=Object.values(Vr),Bo=Object.values(qr),Vo=Object.values(zr),qo=[Vr.h180,Vr.h360],zo=[qr.h180,qr.h360],Wo=["q","h","f"];function Ho(e,t,n,i){var r,s;let o=null==i?void 0:i.videoEncoding;e&&(o=null==i?void 0:i.screenShareEncoding);const a=null==i?void 0:i.simulcast,c=null==i?void 0:i.scalabilityMode,d=null==i?void 0:i.videoCodec;if(!o&&!a&&!c||!t||!n)return[{}];o||(o=function(e,t,n,i){const r=function(e,t,n){if(e)return Vo;const i=t>n?t/n:n/t;return Math.abs(i-16/9)<Math.abs(i-4/3)?Fo:Bo}(e,t,n);let{encoding:s}=r[0];const o=Math.max(t,n);for(let e=0;e<r.length;e+=1){const t=r[e];if(s=t.encoding,t.width>=o)break}if(i)switch(i){case"av1":case"h265":s=Object.assign({},s),s.maxBitrate=.7*s.maxBitrate;break;case"vp9":s=Object.assign({},s),s.maxBitrate=.85*s.maxBitrate}return s}(e,t,n,d),Un.debug("using video encoding",o));const l=o.maxFramerate,u=new Mr(t,n,o.maxBitrate,o.maxFramerate,o.priority);if(c&&Jr(d)){const e=new Qo(c),t=[];if(e.spatial>3)throw new Error("unsupported scalabilityMode: ".concat(c));const n=wr();if($r()||ts()||"Chrome"===(null==n?void 0:n.name)&&os(null==n?void 0:n.version,"113")<0){const i="h"==e.suffix?2:3,r=function(e){return e||(e=wr()),"Safari"===(null==e?void 0:e.name)&&os(e.version,"18.3")>0||"iOS"===(null==e?void 0:e.os)&&!!(null==e?void 0:e.osVersion)&&os(e.osVersion,"18.3")>0}(n);for(let n=0;n<e.spatial;n+=1)t.push({rid:Wo[2-n],maxBitrate:o.maxBitrate/Math.pow(i,n),maxFramerate:u.encoding.maxFramerate,scaleResolutionDownBy:r?Math.pow(2,n):void 0});t[0].scalabilityMode=c}else t.push({maxBitrate:o.maxBitrate,maxFramerate:u.encoding.maxFramerate,scalabilityMode:c});return u.encoding.priority&&(t[0].priority=u.encoding.priority,t[0].networkPriority=u.encoding.priority),Un.debug("using svc encoding",{encodings:t}),t}if(!a)return[o];let h,p=[];if(p=e?null!==(r=Jo(null==i?void 0:i.screenShareSimulcastLayers))&&void 0!==r?r:Go(e,u):null!==(s=Jo(null==i?void 0:i.videoSimulcastLayers))&&void 0!==s?s:Go(e,u),p.length>0){const e=p[0];p.length>1&&([,h]=p);const i=Math.max(t,n);if(i>=960&&h)return Ko(t,n,[e,h,u],l);if(i>=480)return Ko(t,n,[e,u],l)}return Ko(t,n,[u])}function Go(e,t){if(e)return[{scaleResolutionDownBy:2,fps:(n=t).encoding.maxFramerate}].map(e=>{var t,i;return new Mr(Math.floor(n.width/e.scaleResolutionDownBy),Math.floor(n.height/e.scaleResolutionDownBy),Math.max(15e4,Math.floor(n.encoding.maxBitrate/(Math.pow(e.scaleResolutionDownBy,2)*((null!==(t=n.encoding.maxFramerate)&&void 0!==t?t:30)/(null!==(i=e.fps)&&void 0!==i?i:30))))),e.fps,n.encoding.priority)});var n;const{width:i,height:r}=t,s=i>r?i/r:r/i;return Math.abs(s-16/9)<Math.abs(s-4/3)?qo:zo}function Ko(e,t,n,i){const r=[];if(n.forEach((n,s)=>{if(s>=Wo.length)return;const o=Math.min(e,t),a={rid:Wo[s],scaleResolutionDownBy:Math.max(1,o/Math.min(n.width,n.height)),maxBitrate:n.encoding.maxBitrate},c=i&&n.encoding.maxFramerate?Math.min(i,n.encoding.maxFramerate):n.encoding.maxFramerate;c&&(a.maxFramerate=c);const d=Yr()||0===s;n.encoding.priority&&d&&(a.priority=n.encoding.priority,a.networkPriority=n.encoding.priority),r.push(a)}),ts()&&"ios"===rs()){let e;r.forEach(t=>{e?t.maxFramerate&&t.maxFramerate>e&&(e=t.maxFramerate):e=t.maxFramerate});let t=!0;r.forEach(n=>{var i;n.maxFramerate!=e&&(t&&(t=!1,Un.info("Simulcast on iOS React-Native requires all encodings to share the same framerate.")),Un.info('Setting framerate of encoding "'.concat(null!==(i=n.rid)&&void 0!==i?i:"",'" to ').concat(e)),n.maxFramerate=e)})}return r}function Jo(e){if(e)return e.sort((e,t)=>{const{encoding:n}=e,{encoding:i}=t;return n.maxBitrate>i.maxBitrate?1:n.maxBitrate<i.maxBitrate?-1:n.maxBitrate===i.maxBitrate&&n.maxFramerate&&i.maxFramerate?n.maxFramerate>i.maxFramerate?1:-1:0})}class Qo{constructor(e){const t=e.match(/^L(\d)T(\d)(h|_KEY|_KEY_SHIFT){0,1}$/);if(!t)throw new Error("invalid scalability mode");if(this.spatial=parseInt(t[1]),this.temporal=parseInt(t[2]),t.length>3)switch(t[3]){case"h":case"_KEY":case"_KEY_SHIFT":this.suffix=t[3]}}toString(){var e;return"L".concat(this.spatial,"T").concat(this.temporal).concat(null!==(e=this.suffix)&&void 0!==e?e:"")}}class Yo extends jo{get sender(){return this._sender}set sender(e){this._sender=e,this.degradationPreference&&this.setDegradationPreference(this.degradationPreference)}constructor(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=arguments.length>3?arguments[3]:void 0;super(e,Ar.Kind.Video,t,n,i),this.simulcastCodecs=new Map,this.degradationPreference="balanced",this.isCpuConstrained=!1,this.optimizeForPerformance=!1,this.monitorSender=()=>zn(this,void 0,void 0,function*(){if(!this.sender)return void(this._currentBitrate=0);let e;try{e=yield this.getSenderStats()}catch(e){return void this.log.error("could not get video sender stats",Object.assign(Object.assign({},this.logContext),{error:e}))}const t=new Map(e.map(e=>[e.rid,e])),n=e.some(e=>"cpu"===e.qualityLimitationReason);if(n!==this.isCpuConstrained&&(this.isCpuConstrained=n,this.isCpuConstrained&&this.emit(ur.CpuConstrained)),this.prevStats){let e=0;t.forEach((t,n)=>{var i;const r=null===(i=this.prevStats)||void 0===i?void 0:i.get(n);e+=Do(t,r)}),this._currentBitrate=e}this.prevStats=t}),this.senderLock=new o}get isSimulcast(){return!!(this.sender&&this.sender.getParameters().encodings.length>1)}startMonitor(e){var t;if(this.signalClient=e,!es())return;const n=null===(t=this.sender)||void 0===t?void 0:t.getParameters();n&&(this.encodings=n.encodings),this.monitorInterval||(this.monitorInterval=setInterval(()=>{this.monitorSender()},Ao))}stop(){this._mediaStreamTrack.getConstraints(),this.simulcastCodecs.forEach(e=>{e.mediaStreamTrack.stop()}),super.stop()}pauseUpstream(){const e=Object.create(null,{pauseUpstream:{get:()=>super.pauseUpstream}});return zn(this,void 0,void 0,function*(){var t,n,i,r,s;yield e.pauseUpstream.call(this);try{for(var o,a=!0,c=Wn(this.simulcastCodecs.values());!(t=(o=yield c.next()).done);a=!0){r=o.value,a=!1;const e=r;yield null===(s=e.sender)||void 0===s?void 0:s.replaceTrack(null)}}catch(e){n={error:e}}finally{try{a||t||!(i=c.return)||(yield i.call(c))}finally{if(n)throw n.error}}})}resumeUpstream(){const e=Object.create(null,{resumeUpstream:{get:()=>super.resumeUpstream}});return zn(this,void 0,void 0,function*(){var t,n,i,r,s;yield e.resumeUpstream.call(this);try{for(var o,a=!0,c=Wn(this.simulcastCodecs.values());!(t=(o=yield c.next()).done);a=!0){r=o.value,a=!1;const e=r;yield null===(s=e.sender)||void 0===s?void 0:s.replaceTrack(e.mediaStreamTrack)}}catch(e){n={error:e}}finally{try{a||t||!(i=c.return)||(yield i.call(c))}finally{if(n)throw n.error}}})}mute(){const e=Object.create(null,{mute:{get:()=>super.mute}});return zn(this,void 0,void 0,function*(){const t=yield this.muteLock.lock();try{return this.isMuted?(this.log.debug("Track already muted",this.logContext),this):(this.source!==Ar.Source.Camera||this.isUserProvided||(this.log.debug("stopping camera track",this.logContext),this._mediaStreamTrack.stop()),yield e.mute.call(this),this)}finally{t()}})}unmute(){const e=Object.create(null,{unmute:{get:()=>super.unmute}});return zn(this,void 0,void 0,function*(){const t=yield this.muteLock.lock();try{return this.isMuted?(this.source!==Ar.Source.Camera||this.isUserProvided||(this.log.debug("reacquiring camera track",this.logContext),yield this.restartTrack()),yield e.unmute.call(this),this):(this.log.debug("Track already unmuted",this.logContext),this)}finally{t()}})}setTrackMuted(e){super.setTrackMuted(e);for(const t of this.simulcastCodecs.values())t.mediaStreamTrack.enabled=!e}getSenderStats(){return zn(this,void 0,void 0,function*(){var e;if(!(null===(e=this.sender)||void 0===e?void 0:e.getStats))return[];const t=[],n=yield this.sender.getStats();return n.forEach(e=>{var i;if("outbound-rtp"===e.type){const r={type:"video",streamId:e.id,frameHeight:e.frameHeight,frameWidth:e.frameWidth,framesPerSecond:e.framesPerSecond,framesSent:e.framesSent,firCount:e.firCount,pliCount:e.pliCount,nackCount:e.nackCount,packetsSent:e.packetsSent,bytesSent:e.bytesSent,qualityLimitationReason:e.qualityLimitationReason,qualityLimitationDurations:e.qualityLimitationDurations,qualityLimitationResolutionChanges:e.qualityLimitationResolutionChanges,rid:null!==(i=e.rid)&&void 0!==i?i:e.id,retransmittedPacketsSent:e.retransmittedPacketsSent,targetBitrate:e.targetBitrate,timestamp:e.timestamp},s=n.get(e.remoteId);s&&(r.jitter=s.jitter,r.packetsLost=s.packetsLost,r.roundTripTime=s.roundTripTime),t.push(r)}}),t.sort((e,t)=>{var n,i;return(null!==(n=t.frameWidth)&&void 0!==n?n:0)-(null!==(i=e.frameWidth)&&void 0!==i?i:0)}),t})}setPublishingQuality(e){const t=[];for(let n=xr.LOW;n<=xr.HIGH;n+=1)t.push(new ln({quality:n,enabled:n<=e}));this.log.debug("setting publishing quality. max quality ".concat(e),this.logContext),this.setPublishingLayers(Jr(this.codec),t)}restartTrack(e){return zn(this,void 0,void 0,function*(){var t,n,i,r,s;let o;if(e){const t=As({video:e});"boolean"!=typeof t.video&&(o=t.video)}yield this.restart(o),this.isCpuConstrained=!1;try{for(var a,c=!0,d=Wn(this.simulcastCodecs.values());!(t=(a=yield d.next()).done);c=!0){r=a.value,c=!1;const e=r;e.sender&&"closed"!==(null===(s=e.sender.transport)||void 0===s?void 0:s.state)&&(e.mediaStreamTrack=this.mediaStreamTrack.clone(),yield e.sender.replaceTrack(e.mediaStreamTrack))}}catch(e){n={error:e}}finally{try{c||t||!(i=d.return)||(yield i.call(d))}finally{if(n)throw n.error}}})}setProcessor(e){const t=Object.create(null,{setProcessor:{get:()=>super.setProcessor}});return zn(this,arguments,void 0,function(e){var n=this;let i=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function*(){var r,s,o,a,c,d;if(yield t.setProcessor.call(n,e,i),null===(c=n.processor)||void 0===c?void 0:c.processedTrack)try{for(var l,u=!0,h=Wn(n.simulcastCodecs.values());!(r=(l=yield h.next()).done);u=!0){a=l.value,u=!1;const e=a;yield null===(d=e.sender)||void 0===d?void 0:d.replaceTrack(n.processor.processedTrack)}}catch(e){s={error:e}}finally{try{u||r||!(o=h.return)||(yield o.call(h))}finally{if(s)throw s.error}}}()})}setDegradationPreference(e){return zn(this,void 0,void 0,function*(){if(this.degradationPreference=e,this.sender)try{this.log.debug("setting degradationPreference to ".concat(e),this.logContext);const t=this.sender.getParameters();t.degradationPreference=e,this.sender.setParameters(t)}catch(e){this.log.warn("failed to set degradationPreference",Object.assign({error:e},this.logContext))}})}addSimulcastTrack(e,t){if(this.simulcastCodecs.has(e))return void this.log.error("".concat(e," already added, skipping adding simulcast codec"),this.logContext);const n={codec:e,mediaStreamTrack:this.mediaStreamTrack.clone(),sender:void 0,encodings:t};return this.simulcastCodecs.set(e,n),n}setSimulcastTrackSender(e,t){const n=this.simulcastCodecs.get(e);n&&(n.sender=t,setTimeout(()=>{this.subscribedCodecs&&this.setPublishingCodecs(this.subscribedCodecs)},5e3))}setPublishingCodecs(e){return zn(this,void 0,void 0,function*(){var t,n,i,r,s,o,a;if(this.log.debug("setting publishing codecs",Object.assign(Object.assign({},this.logContext),{codecs:e,currentCodec:this.codec})),!this.codec&&e.length>0)return yield this.setPublishingLayers(Jr(e[0].codec),e[0].qualities),[];this.subscribedCodecs=e;const c=[];try{for(t=!0,n=Wn(e);!(r=(i=yield n.next()).done);t=!0){a=i.value,t=!1;const e=a;if(this.codec&&this.codec!==e.codec){const t=this.simulcastCodecs.get(e.codec);if(this.log.debug("try setPublishingCodec for ".concat(e.codec),Object.assign(Object.assign({},this.logContext),{simulcastCodecInfo:t})),t&&t.sender)t.encodings&&(this.log.debug("try setPublishingLayersForSender ".concat(e.codec),this.logContext),yield Xo(t.sender,t.encodings,e.qualities,this.senderLock,Jr(e.codec),this.log,this.logContext));else for(const t of e.qualities)if(t.enabled){c.push(e.codec);break}}else yield this.setPublishingLayers(Jr(e.codec),e.qualities)}}catch(e){s={error:e}}finally{try{t||r||!(o=n.return)||(yield o.call(n))}finally{if(s)throw s.error}}return c})}setPublishingLayers(e,t){return zn(this,void 0,void 0,function*(){this.optimizeForPerformance?this.log.info("skipping setPublishingLayers due to optimized publishing performance",Object.assign(Object.assign({},this.logContext),{qualities:t})):(this.log.debug("setting publishing layers",Object.assign(Object.assign({},this.logContext),{qualities:t})),this.sender&&this.encodings&&(yield Xo(this.sender,this.encodings,t,this.senderLock,e,this.log,this.logContext)))})}prioritizePerformance(){return zn(this,void 0,void 0,function*(){if(!this.sender)throw new Error("sender not found");const e=yield this.senderLock.lock();try{this.optimizeForPerformance=!0;const e=this.sender.getParameters();e.encodings=e.encodings.map((e,t)=>{var n;return Object.assign(Object.assign({},e),{active:0===t,scaleResolutionDownBy:Math.max(1,Math.ceil((null!==(n=this.mediaStreamTrack.getSettings().height)&&void 0!==n?n:360)/360)),scalabilityMode:0===t&&Jr(this.codec)?"L1T3":void 0,maxFramerate:0===t?15:0,maxBitrate:0===t?e.maxBitrate:0})}),this.log.debug("setting performance optimised encodings",Object.assign(Object.assign({},this.logContext),{encodings:e.encodings})),this.encodings=e.encodings,yield this.sender.setParameters(e)}catch(e){this.log.error("failed to set performance optimised encodings",Object.assign(Object.assign({},this.logContext),{error:e})),this.optimizeForPerformance=!1}finally{e()}})}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return zn(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),Zr()&&this.isInBackground&&this.source===Ar.Source.Camera&&(this._mediaStreamTrack.enabled=!1)})}}function Xo(e,t,n,i,r,s,o){return zn(this,void 0,void 0,function*(){const a=yield i.lock();s.debug("setPublishingLayersForSender",Object.assign(Object.assign({},o),{sender:e,qualities:n,senderEncodings:t}));try{const i=e.getParameters(),{encodings:a}=i;if(!a)return;if(a.length!==t.length)return void s.warn("cannot set publishing layers, encodings mismatch",Object.assign(Object.assign({},o),{encodings:a,senderEncodings:t}));let c=!1;r&&n.some(e=>e.enabled)&&n.forEach(e=>e.enabled=!0),a.forEach((e,i)=>{var r;let a=null!==(r=e.rid)&&void 0!==r?r:"";""===a&&(a="q");const d=$o(a),l=n.find(e=>e.quality===d);l&&e.active!==l.enabled&&(c=!0,e.active=l.enabled,s.debug("setting layer ".concat(l.quality," to ").concat(e.active?"enabled":"disabled"),o),Yr()&&(l.enabled?(e.scaleResolutionDownBy=t[i].scaleResolutionDownBy,e.maxBitrate=t[i].maxBitrate,e.maxFrameRate=t[i].maxFrameRate):(e.scaleResolutionDownBy=4,e.maxBitrate=10,e.maxFrameRate=2)))}),c&&(i.encodings=a,s.debug("setting encodings",Object.assign(Object.assign({},o),{encodings:i.encodings})),yield e.setParameters(i))}finally{a()}})}function $o(e){switch(e){case"f":default:return xr.HIGH;case"h":return xr.MEDIUM;case"q":return xr.LOW}}function Zo(e,t,n,i){if(!n)return[new rt({quality:xr.HIGH,width:e,height:t,bitrate:0,ssrc:0})];if(i){const i=n[0].scalabilityMode,r=new Qo(i),s=[],o="h"==r.suffix?1.5:2,a="h"==r.suffix?2:3;for(let i=0;i<r.spatial;i+=1)s.push(new rt({quality:Math.min(xr.HIGH,r.spatial-1)-i,width:Math.ceil(e/Math.pow(o,i)),height:Math.ceil(t/Math.pow(o,i)),bitrate:n[0].maxBitrate?Math.ceil(n[0].maxBitrate/Math.pow(a,i)):0,ssrc:0}));return s}return n.map(n=>{var i,r,s;const o=null!==(i=n.scaleResolutionDownBy)&&void 0!==i?i:1;let a=$o(null!==(r=n.rid)&&void 0!==r?r:"");return new rt({quality:a,width:Math.ceil(e/o),height:Math.ceil(t/o),bitrate:null!==(s=n.maxBitrate)&&void 0!==s?s:0,ssrc:0})})}const ea="_lossy",ta="_reliable",na="leave-reconnect";var ia,ra,sa,oa;!function(e){e[e.New=0]="New",e[e.Connected=1]="Connected",e[e.Disconnected=2]="Disconnected",e[e.Reconnecting=3]="Reconnecting",e[e.Closed=4]="Closed"}(ia||(ia={}));class aa extends Kn.EventEmitter{get isClosed(){return this._isClosed}get pendingReconnect(){return!!this.reconnectTimeout}constructor(e){var t;super(),this.options=e,this.rtcConfig={},this.peerConnectionTimeout=Eo.peerConnectionTimeout,this.fullReconnectOnNext=!1,this.latestRemoteOfferId=0,this.subscriberPrimary=!1,this.pcState=ia.New,this._isClosed=!0,this.pendingTrackResolvers={},this.reconnectAttempts=0,this.reconnectStart=0,this.attemptingReconnect=!1,this.joinAttempts=0,this.maxJoinAttempts=1,this.shouldFailNext=!1,this.log=Un,this.reliableDataSequence=1,this.reliableMessageBuffer=new $s,this.reliableReceivedState=new Zs(3e4),this.handleDataChannel=e=>zn(this,[e],void 0,function(e){var t=this;let{channel:n}=e;return function*(){if(n){if(n.label===ta)t.reliableDCSub=n;else{if(n.label!==ea)return;t.lossyDCSub=n}t.log.debug("on data channel ".concat(n.id,", ").concat(n.label),t.logContext),n.onmessage=t.handleDataMessage}}()}),this.handleDataMessage=e=>zn(this,void 0,void 0,function*(){var t,n;const i=yield this.dataProcessLock.lock();try{let i;if(e.data instanceof ArrayBuffer)i=e.data;else{if(!(e.data instanceof Blob))return void this.log.error("unsupported data type",Object.assign(Object.assign({},this.logContext),{data:e.data}));i=yield e.data.arrayBuffer()}const r=st.fromBinary(new Uint8Array(i));if(r.sequence>0&&""!==r.participantSid){const e=this.reliableReceivedState.get(r.participantSid);if(e&&r.sequence<=e)return;this.reliableReceivedState.set(r.participantSid,r.sequence)}"speaker"===(null===(t=r.value)||void 0===t?void 0:t.case)?this.emit(lr.ActiveSpeakersUpdate,r.value.value.speakers):("user"===(null===(n=r.value)||void 0===n?void 0:n.case)&&function(e,t){const n=e.participantIdentity?e.participantIdentity:t.participantIdentity;e.participantIdentity=n,t.participantIdentity=n;const i=0!==e.destinationIdentities.length?e.destinationIdentities:t.destinationIdentities;e.destinationIdentities=i,t.destinationIdentities=i}
1(r,r.value.value),this.emit(lr.DataPacketReceived,r))}finally{i()}}),this.handleDataError=e=>{const t=0===e.currentTarget.maxRetransmits?"lossy":"reliable";if(e instanceof ErrorEvent&&e.error){const{error:n}=e.error;this.log.error("DataChannel error on ".concat(t,": ").concat(e.message),Object.assign(Object.assign({},this.logContext),{error:n}))}else this.log.error("Unknown DataChannel error on ".concat(t),Object.assign(Object.assign({},this.logContext),{event:e}))},this.handleBufferedAmountLow=e=>{const t=0===e.currentTarget.maxRetransmits?ot.LOSSY:ot.RELIABLE;this.updateAndEmitDCBufferStatus(t)},this.handleDisconnect=(e,t)=>{if(this._isClosed)return;this.log.warn("".concat(e," disconnected"),this.logContext),0===this.reconnectAttempts&&(this.reconnectStart=Date.now());const n=Date.now()-this.reconnectStart;let i=this.getNextRetryDelay({elapsedMs:n,retryCount:this.reconnectAttempts});null!==i?(e===na&&(i=0),this.log.debug("reconnecting in ".concat(i,"ms"),this.logContext),this.clearReconnectTimeout(),this.token&&this.regionUrlProvider&&this.regionUrlProvider.updateToken(this.token),this.reconnectTimeout=Ir.setTimeout(()=>this.attemptReconnect(t).finally(()=>this.reconnectTimeout=void 0),i)):(e=>{this.log.warn("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(e,"ms. giving up"),this.logContext),this.emit(lr.Disconnected),this.close()})(n)},this.waitForRestarted=()=>new Promise((e,t)=>{this.pcState===ia.Connected&&e();const n=()=>{this.off(lr.Disconnected,i),e()},i=()=>{this.off(lr.Restarted,n),t()};this.once(lr.Restarted,n),this.once(lr.Disconnected,i)}),this.updateAndEmitDCBufferStatus=e=>{const t=this.isBufferStatusLow(e);void 0!==t&&t!==this.dcBufferStatus.get(e)&&(this.dcBufferStatus.set(e,t),this.emit(lr.DCBufferStatusChanged,t,e))},this.isBufferStatusLow=e=>{const t=this.dataChannelForKind(e);if(t)return e===ot.RELIABLE&&this.reliableMessageBuffer.alignBufferedAmount(t.bufferedAmount),t.bufferedAmount<=t.bufferedAmountLowThreshold},this.handleBrowserOnLine=()=>{this.client.currentState===Js.RECONNECTING&&(this.clearReconnectTimeout(),this.attemptReconnect(He.RR_SIGNAL_DISCONNECTED))},this.log=Fn(null!==(t=e.loggerName)&&void 0!==t?t:Mn.Engine),this.loggerOptions={loggerName:e.loggerName,loggerContextCb:()=>this.logContext},this.client=new Qs(void 0,this.loggerOptions),this.client.signalLatency=this.options.expSignalLatency,this.reconnectPolicy=this.options.reconnectPolicy,this.registerOnLineListener(),this.closingLock=new o,this.dataProcessLock=new o,this.dcBufferStatus=new Map([[ot.LOSSY,!0],[ot.RELIABLE,!0]]),this.client.onParticipantUpdate=e=>this.emit(lr.ParticipantUpdate,e),this.client.onConnectionQuality=e=>this.emit(lr.ConnectionQualityUpdate,e),this.client.onRoomUpdate=e=>this.emit(lr.RoomUpdate,e),this.client.onSubscriptionError=e=>this.emit(lr.SubscriptionError,e),this.client.onSubscriptionPermissionUpdate=e=>this.emit(lr.SubscriptionPermissionUpdate,e),this.client.onSpeakersChanged=e=>this.emit(lr.SpeakersChanged,e),this.client.onStreamStateUpdate=e=>this.emit(lr.StreamStateChanged,e),this.client.onRequestResponse=e=>this.emit(lr.SignalRequestResponse,e)}get logContext(){var e,t,n,i,r,s;return{room:null===(t=null===(e=this.latestJoinResponse)||void 0===e?void 0:e.room)||void 0===t?void 0:t.name,roomID:null===(i=null===(n=this.latestJoinResponse)||void 0===n?void 0:n.room)||void 0===i?void 0:i.sid,participant:null===(s=null===(r=this.latestJoinResponse)||void 0===r?void 0:r.participant)||void 0===s?void 0:s.identity,pID:this.participantSid}}join(e,t,n,i){return zn(this,void 0,void 0,function*(){this.url=e,this.token=t,this.signalOpts=n,this.maxJoinAttempts=n.maxRetries;try{this.joinAttempts+=1,this.setupSignalClientCallbacks();const r=yield this.client.join(e,t,n,i);return this._isClosed=!1,this.latestJoinResponse=r,this.subscriberPrimary=r.subscriberPrimary,this.pcManager||(yield this.configure(r)),this.subscriberPrimary&&!r.fastPublish||this.negotiate(),this.clientConfiguration=r.clientConfiguration,this.emit(lr.SignalConnected,r),r}catch(r){if(r instanceof mr&&r.reason===rr.ServerUnreachable&&(this.log.warn("Couldn't connect to server, attempt ".concat(this.joinAttempts," of ").concat(this.maxJoinAttempts),this.logContext),this.joinAttempts<this.maxJoinAttempts))return this.join(e,t,n,i);throw r}})}close(){return zn(this,void 0,void 0,function*(){const e=yield this.closingLock.lock();if(this.isClosed)e();
vendor: 4,757 bytes, line 1
1else try{this._isClosed=!0,this.joinAttempts=0,this.emit(lr.Closing),this.removeAllListeners(),this.deregisterOnLineListener(),this.clearPendingReconnect(),yield this.cleanupPeerConnections(),yield this.cleanupClient()}finally{e()}})}cleanupPeerConnections(){return zn(this,void 0,void 0,function*(){var e;yield null===(e=this.pcManager)||void 0===e?void 0:e.close(),this.pcManager=void 0;const t=e=>{e&&(e.close(),e.onbufferedamountlow=null,e.onclose=null,e.onclosing=null,e.onerror=null,e.onmessage=null,e.onopen=null)};t(this.lossyDC),t(this.lossyDCSub),t(this.reliableDC),t(this.reliableDCSub),this.lossyDC=void 0,this.lossyDCSub=void 0,this.reliableDC=void 0,this.reliableDCSub=void 0,this.reliableMessageBuffer=new $s,this.reliableDataSequence=1,this.reliableReceivedState.clear()})}cleanupClient(){return zn(this,void 0,void 0,function*(){yield this.client.close(),this.client.resetCallbacks()})}addTrack(e){if(this.pendingTrackResolvers[e.cid])throw new fr("a track with the same ID has already been published");return new Promise((t,n)=>{const i=setTimeout(()=>{delete this.pendingTrackResolvers[e.cid],n(new mr("publication of local track timed out, no response from server",rr.Timeout))},1e4);this.pendingTrackResolvers[e.cid]={resolve:e=>{clearTimeout(i),t(e)},reject:()=>{clearTimeout(i),n(new Error("Cancelled publication by calling unpublish"))}},this.client.sendAddTrack(e)})}removeTrack(e){if(e.track&&this.pendingTrackResolvers[e.track.id]){const{reject:t}=this.pendingTrackResolvers[e.track.id];t&&t(),delete this.pendingTrackResolvers[e.track.id]}try{return this.pcManager.removeTrack(e),!0}catch(e){this.log.warn("failed to remove track",Object.assign(Object.assign({},this.logContext),{error:e}))}return!1}updateMuteStatus(e,t){this.client.sendMuteTrack(e,t)}get dataSubscriberReadyState(){var e;return null===(e=this.reliableDCSub)||void 0===e?void 0:e.readyState}getConnectedServerAddress(){return zn(this,void 0,void 0,function*(){var e;return null===(e=this.pcManager)||void 0===e?void 0:e.getConnectedAddress()})}setRegionUrlProvider(e){this.regionUrlProvider=e}configure(e){return zn(this,void 0,void 0,function*(){var t,n;if(this.pcManager&&this.pcManager.currentState!==Po.NEW)return;this.participantSid=null===(t=e.participant)||void 0===t?void 0:t.sid;const i=this.makeRTCConfiguration(e);var r;this.pcManager=new Ro(i,e.subscriberPrimary,this.loggerOptions),this.emit(lr.TransportsCreated,this.pcManager.publisher,this.pcManager.subscriber),this.pcManager.onIceCandidate=(e,t)=>{this.client.sendIceCandidate(e,t)},this.pcManager.onPublisherOffer=(e,t)=>{this.client.sendOffer(e,t)},this.pcManager.onDataChannel=this.handleDataChannel,this.pcManager.onStateChange=(t,n,i)=>zn(this,void 0,void 0,function*(){if(this.log.debug("primary PC state changed ".concat(t),this.logContext),["closed","disconnected","failed"].includes(n)&&(this.publisherConnectionPromise=void 0),t===Po.CONNECTED){const t=this.pcState===ia.New;this.pcState=ia.Connected,t&&this.emit(lr.Connected,e)}else t===Po.FAILED&&this.pcState===ia.Connected&&(this.pcState=ia.Disconnected,this.handleDisconnect("peerconnection failed","failed"===i?He.RR_SUBSCRIBER_FAILED:He.RR_PUBLISHER_FAILED));const r=this.client.isDisconnected||this.client.currentState===Js.RECONNECTING,s=[Po.FAILED,Po.CLOSING,Po.CLOSED].includes(t);r&&s&&!this._isClosed&&this.emit(lr.Offline)}),this.pcManager.onTrack=e=>{this.emit(lr.MediaTrackAdded,e.track,e.streams[0],e.receiver)},void 0!==(r=null===(n=e.serverInfo)||void 0===n?void 0:n.protocol)&&r>13||this.createDataChannels()})}setupSignalClientCallbacks(){this.client.onAnswer=(e,t)=>zn(this,void 0,void 0,function*(){this.pcManager&&(this.log.debug("received server answer",Object.assign(Object.assign({},this.logContext),{RTCSdpType:e.type})),yield this.pcManager.setPublisherAnswer(e,t))}),this.client.onTrickle=(e,t)=>{this.pcManager&&(this.log.debug("got ICE candidate from peer",Object.assign(Object.assign({},this.logContext),{candidate:e,target:t})),this.pcManager.addIceCandidate(e,t))},this.client.onOffer=(e,t)=>zn(this,void 0,void 0,function*(){if(this.latestRemoteOfferId=t,!this.pcManager)return;const n=yield this.pcManager.createSubscriberAnswerFromOffer(e,t);n&&this.client.sendAnswer(n,t)}),this.client.onLocalTrackPublished=e=>{var t;if(this.log.debug("received trackPublishedResponse",Object.assign(Object.assign({},this.logContext),{cid:e.cid,track:null===(t=e.track)||void 0===t?void 0:t.sid})),!this.pendingTrackResolvers[e.cid])return void this.log.error("missing track resolver for ".concat(e.cid),Object.assign(Object.assign({},this.logContext),{cid:e.cid}));const{resolve:n}=this.pendingTrackResolvers[e.cid];delete this.pendingTrackResolvers[e.cid],n(e.track)},this.client.onLocalTrackUnpublished=e=>
1{this.emit(lr.LocalTrackUnpublished,e)},this.client.onLocalTrackSubscribed=e=>{this.emit(lr.LocalTrackSubscribed,e)},this.client.onTokenRefresh=e=>{this.token=e},this.client.onRemoteMuteChanged=(e,t)=>{this.emit(lr.RemoteMute,e,t)},this.client.onSubscribedQualityUpdate=e=>{this.emit(lr.SubscribedQualityUpdate,e)},this.client.onRoomMoved=e=>{var t;this.participantSid=null===(t=e.participant)||void 0===t?void 0:t.sid,this.latestJoinResponse&&(this.latestJoinResponse.room=e.room),this.emit(lr.RoomMoved,e)},this.client.onClose=()=>{this.handleDisconnect("signal",He.RR_SIGNAL_DISCONNECTED)},this.client.onLeave=e=>{switch(this.log.debug("client leave request",Object.assign(Object.assign({},this.logContext),{reason:null==e?void 0:e.reason})),e.regions&&this.regionUrlProvider&&(this.log.debug("updating regions",this.logContext),this.regionUrlProvider.setServerReportedRegions(e.regions)),e.action){case Zt.DISCONNECT:this.emit(lr.Disconnected,null==e?void 0:e.reason),this.close();break;case Zt.RECONNECT:this.fullReconnectOnNext=!0,this.handleDisconnect(na);break;case Zt.RESUME:this.handleDisconnect(na)}}}makeRTCConfiguration(e){var t;const n=Object.assign({},this.rtcConfig);if((null===(t=this.signalOpts)||void 0===t?void 0:t.e2eeEnabled)&&(this.log.debug("E2EE - setting up transports with insertable streams",this.logContext),n.encodedInsertableStreams=!0),e.iceServers&&!n.iceServers){const t=[];e.iceServers.forEach(e=>{const n={urls:e.urls};e.username&&(n.username=e.username),e.credential&&(n.credential=e.credential),t.push(n)}),n.iceServers=t}return e.clientConfiguration&&e.clientConfiguration.forceRelay===ze.ENABLED&&(n.iceTransportPolicy="relay"),n.sdpSemantics="unified-plan",n.continualGatheringPolicy="gather_continually",n}createDataChannels(){this.pcManager&&(this.lossyDC&&(this.lossyDC.onmessage=null,this.lossyDC.onerror=null),this.reliableDC&&(this.reliableDC.onmessage=null,this.reliableDC.onerror=null),this.lossyDC=this.pcManager.createPublisherDataChannel(ea,{ordered:!1,maxRetransmits:0}),this.reliableDC=this.pcManager.createPublisherDataChannel(ta,{ordered:!0}),this.lossyDC.onmessage=this.handleDataMessage,this.reliableDC.onmessage=this.handleDataMessage,this.lossyDC.onerror=this.handleDataError,this.reliableDC.onerror=this.handleDataError,this.lossyDC.bufferedAmountLowThreshold=65535,this.reliableDC.bufferedAmountLowThreshold=65535,this.lossyDC.onbufferedamountlow=this.handleBufferedAmountLow,this.reliableDC.onbufferedamountlow=this.handleBufferedAmountLow)}createSender(e,t,n){return zn(this,void 0,void 0,function*(){if(Gr())return yield this.createTransceiverRTCRtpSender(e,t,n);if(Kr())return this.log.warn("using add-track fallback",this.logContext),yield this.createRTCRtpSender(e.mediaStreamTrack);throw new br("Required webRTC APIs not supported on this device")})}createSimulcastSender(e,t,n,i){return zn(this,void 0,void 0,function*(){if(Gr())return this.createSimulcastTransceiverSender(e,t,n,i);if(Kr())return this.log.debug("using add-track fallback",this.logContext),this.createRTCRtpSender(e.mediaStreamTrack);throw new br("Cannot stream on this device")})}createTransceiverRTCRtpSender(e,t,n){return zn(this,void 0,void 0,function*(){if(!this.pcManager)throw new br("publisher is closed");const i=[];e.mediaStream&&i.push(e.mediaStream),Cs(e)&&(e.codec=t.videoCodec);const r={direction:"sendonly",streams:i};return n&&(r.sendEncodings=n),(yield this.pcManager.addPublisherTransceiver(e.mediaStreamTrack,r)).sender})}createSimulcastTransceiverSender(e,t,n,i){return zn(this,void 0,void 0,function*(){if(!this.pcManager)throw new br("publisher is closed");const r={direction:"sendonly"};i&&(r.sendEncodings=i);const s=yield this.pcManager.addPublisherTransceiver(t.mediaStreamTrack,r);if(n.videoCodec)return e.setSimulcastTrackSender(n.videoCodec,s.sender),s.sender})}createRTCRtpSender(e){return zn(this,void 0,void 0,function*(){if(!this.pcManager)throw new br("publisher is closed");return this.pcManager.addPublisherTrack(e)})}attemptReconnect(e){return zn(this,void 0,void 0,function*(){var t,n,i;if(!this._isClosed)if(this.attemptingReconnect)Un.warn("already attempting reconnect, returning early",this.logContext);else{(null===(t=this.clientConfiguration)||void 0===t?void 0:t.resumeConnection)!==ze.DISABLED&&(null!==(i=null===(n=this.pcManager)||void 0===n?void 0:n.currentState)&&void 0!==i?i:Po.NEW)!==Po.NEW||(this.fullReconnectOnNext=!0);try{this.attemptingReconnect=!0,this.fullReconnectOnNext?yield this.restartConnection():yield this.resumeConnection(e),this.clearPendingReconnect(),this.fullReconnectOnNext=!1}catch(e){this.reconnectAttempts+=1;let t=!0;e instanceof br?(this.log.debug("received unrecoverable error",Object.assign(Object.assign({},this.logContext),{error:e})),t=!1):e instanceof ca||(this.fullReconnectOnNext=!0),t?this.handleDisconnect("reconnect",He.RR_UNKNOWN):(this.log.info("could not recover connection after ".concat(this.reconnectAttempts," attempts, ").concat(Date.now()-this.reconnectStart,"ms. giving up"),this.logContext),this.emit
1(lr.Disconnected),yield this.close())}finally{this.attemptingReconnect=!1}}})}getNextRetryDelay(e){try{return this.reconnectPolicy.nextRetryDelayInMs(e)}catch(e){this.log.warn("encountered error in reconnect policy",Object.assign(Object.assign({},this.logContext),{error:e}))}return null}restartConnection(e){return zn(this,void 0,void 0,function*(){var t,n,i;try{if(!this.url||!this.token)throw new br("could not reconnect, url or token not saved");let n;this.log.info("reconnecting, attempt: ".concat(this.reconnectAttempts),this.logContext),this.emit(lr.Restarting),this.client.isDisconnected||(yield this.client.sendLeave()),yield this.cleanupPeerConnections(),yield this.cleanupClient();try{if(!this.signalOpts)throw this.log.warn("attempted connection restart, without signal options present",this.logContext),new ca;n=yield this.join(null!=e?e:this.url,this.token,this.signalOpts)}catch(e){if(e instanceof mr&&e.reason===rr.NotAllowed)throw new br("could not reconnect, token might be expired");throw new ca}if(this.shouldFailNext)throw this.shouldFailNext=!1,new Error("simulated failure");if(this.client.setReconnected(),this.emit(lr.SignalRestarted,n),yield this.waitForPCReconnected(),this.client.currentState!==Js.CONNECTED)throw new ca("Signal connection got severed during reconnect");null===(t=this.regionUrlProvider)||void 0===t||t.resetAttempts(),this.emit(lr.Restarted)}catch(e){const t=yield null===(n=this.regionUrlProvider)||void 0===n?void 0:n.getNextBestRegionUrl();if(t)return void(yield this.restartConnection(t));throw null===(i=this.regionUrlProvider)||void 0===i||i.resetAttempts(),e}})}resumeConnection(e){return zn(this,void 0,void 0,function*(){var t;if(!this.url||!this.token)throw new br("could not reconnect, url or token not saved");if(!this.pcManager)throw new br("publisher and subscriber connections unset");let n;this.log.info("resuming signal connection, attempt ".concat(this.reconnectAttempts),this.logContext),this.emit(lr.Resuming);try{this.setupSignalClientCallbacks(),n=yield this.client.reconnect(this.url,this.token,this.participantSid,e)}catch(e){let t="";if(e instanceof Error&&(t=e.message,this.log.error(e.message,Object.assign(Object.assign({},this.logContext),{error:e}))),e instanceof mr&&e.reason===rr.NotAllowed)throw new br("could not reconnect, token might be expired");if(e instanceof mr&&e.reason===rr.LeaveRequest)throw e;throw new ca(t)}
1if(this.emit(lr.SignalResumed),n){const e=this.makeRTCConfiguration(n);this.pcManager.updateConfiguration(e),this.latestJoinResponse&&(this.latestJoinResponse.serverInfo=n.serverInfo)}else this.log.warn("Did not receive reconnect response",this.logContext);if(this.shouldFailNext)throw this.shouldFailNext=!1,new Error("simulated failure");if(yield this.pcManager.triggerIceRestart(),yield this.waitForPCReconnected(),this.client.currentState!==Js.CONNECTED)throw new ca("Signal connection got severed during reconnect");this.client.setReconnected(),"open"===(null===(t=this.reliableDC)||void 0===t?void 0:t.readyState)&&null===this.reliableDC.id&&this.createDataChannels(),(null==n?void 0:n.lastMessageSeq)&&this.resendReliableMessagesForResume(n.lastMessageSeq),this.emit(lr.Resumed)})}waitForPCInitialConnection(e,t){return zn(this,void 0,void 0,function*(){if(!this.pcManager)throw new br("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(t,e)})}waitForPCReconnected(){return zn(this,void 0,void 0,function*(){this.pcState=ia.Reconnecting,this.log.debug("waiting for peer connection to reconnect",this.logContext);try{if(yield Hr(2e3),!this.pcManager)throw new br("PC manager is closed");yield this.pcManager.ensurePCTransportConnection(void 0,this.peerConnectionTimeout),this.pcState=ia.Connected}catch(e){throw this.pcState=ia.Disconnected,new mr("could not establish PC connection, ".concat(e.message),rr.InternalError)}})}publishRpcResponse(e,t,n,i){return zn(this,void 0,void 0,function*(){const r=new st({destinationIdentities:[e],kind:ot.RELIABLE,value:{case:"rpcResponse",value:new ft({requestId:t,value:i?{case:"error",value:i.toProto()}:{case:"payload",value:null!=n?n:""}})}});yield this.sendDataPacket(r,ot.RELIABLE)})}publishRpcAck(e,t){return zn(this,void 0,void 0,function*(){const n=new st({destinationIdentities:[e],kind:ot.RELIABLE,value:{case:"rpcAck",value:new gt({requestId:t})}});yield this.sendDataPacket(n,ot.RELIABLE)})}sendDataPacket(e,t){return zn(this,void 0,void 0,function*(){yield this.ensurePublisherConnected(t),t===ot.RELIABLE&&(e.sequence=this.reliableDataSequence,this.reliableDataSequence+=1);const n=e.toBinary(),i=this.dataChannelForKind(t);if(i){if(t===ot.RELIABLE&&this.reliableMessageBuffer.push({data:n,sequence:e.sequence}),this.attemptingReconnect)return;i.send(n)}this.updateAndEmitDCBufferStatus(t)})}resendReliableMessagesForResume(e){return zn(this,void 0,void 0,function*(){yield this.ensurePublisherConnected(ot.RELIABLE);const t=this.dataChannelForKind(ot.RELIABLE);t&&(this.reliableMessageBuffer.popToSequence(e),this.reliableMessageBuffer.getAll().forEach(e=>{t.send(e.data)})),this.updateAndEmitDCBufferStatus(ot.RELIABLE)})}waitForBufferStatusLow(e){return new Promise((t,n)=>zn(this,void 0,void 0,function*(){if(this.isBufferStatusLow(e))t();else{const i=()=>n("Engine closed");for(this.once(lr.Closing,i);!this.dcBufferStatus.get(e);)yield Hr(10);this.off(lr.Closing,i),t()}}))}ensureDataTransportConnected(e){return zn(this,arguments,void 0,function(e){var t=this;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.subscriberPrimary;return function*(){var i;if(!t.pcManager)throw new br("PC manager is closed");const r=n?t.pcManager.subscriber:t.pcManager.publisher,s=n?"Subscriber":"Publisher";if(!r)throw new mr("".concat(s," connection not set"),rr.InternalError);let o=!1;n||t.dataChannelForKind(e,n)||(t.createDataChannels(),o=!0),o||n||t.pcManager.publisher.isICEConnected||"checking"===t.pcManager.publisher.getICEConnectionState()||(o=!0),o&&t.negotiate();const a=t.dataChannelForKind(e,n);if("open"===(null==a?void 0:a.readyState))return;const c=(new Date).getTime()+t.peerConnectionTimeout;for(;(new Date).getTime()<c;){if(r.isICEConnected&&"open"===(null===(i=t.dataChannelForKind(e,n))||void 0===i?void 0:i.readyState))return;yield Hr(50)}throw new mr("could not establish ".concat(s," connection, state: ").concat(r.getICEConnectionState()),rr.InternalError)}()})}ensurePublisherConnected(e){return zn(this,void 0,void 0,function*(){this.publisherConnectionPromise||(this.publisherConnectionPromise=this.ensureDataTransportConnected(e,!1)),yield this.publisherConnectionPromise})}verifyTransport(){return!!this.pcManager&&this.pcManager.currentState===Po.CONNECTED&&!(!this.client.ws||this.client.ws.readyState===WebSocket.CLOSED)}negotiate(){return zn(this,void 0,void 0,function*(){return new Promise((e,t)=>
1zn(this,void 0,void 0,function*(){if(!this.pcManager)return void t(new _r("PC manager is closed"));this.pcManager.requirePublisher(),0!=this.pcManager.publisher.getTransceivers().length||this.lossyDC||this.reliableDC||this.createDataChannels();const n=new AbortController,i=()=>{n.abort(),this.log.debug("engine disconnected while negotiation was ongoing",this.logContext),e()};this.isClosed&&t("cannot negotiate on closed engine"),this.on(lr.Closing,i),this.pcManager.publisher.once(fo,e=>{const t=new Map;e.forEach(e=>{const n=e.codec.toLowerCase();var i;i=n,jr.includes(i)&&t.set(e.payload,n)}),this.emit(lr.RTPVideoMapUpdate,t)});try{yield this.pcManager.negotiate(n),e()}catch(e){e instanceof _r&&(this.fullReconnectOnNext=!0),this.handleDisconnect("negotiation",He.RR_UNKNOWN),t(e)}finally{this.off(lr.Closing,i)}}))})}dataChannelForKind(e,t){if(t){if(e===ot.LOSSY)return this.lossyDCSub;if(e===ot.RELIABLE)return this.reliableDCSub}else{if(e===ot.LOSSY)return this.lossyDC;if(e===ot.RELIABLE)return this.reliableDC}}sendSyncState(e,t){var n,i;if(!this.pcManager)return void this.log.warn("sync state cannot be sent without peer connection setup",this.logContext);const r=this.pcManager.subscriber.getLocalDescription(),s=this.pcManager.subscriber.getRemoteDescription(),o=null===(i=null===(n=this.signalOpts)||void 0===n?void 0:n.autoSubscribe)||void 0===i||i,a=new Array,c=new Array;e.forEach(e=>{e.isDesired!==o&&a.push(e.trackSid),e.isEnabled||c.push(e.trackSid)}),this.client.sendSyncState(new vn({answer:r?Xs({sdp:r.sdp,type:r.type}):void 0,offer:s?Xs({sdp:s.sdp,type:s.type}):void 0,subscription:new Jt({trackSids:a,subscribe:!o,participantTracks:[]}),publishTracks:js(t),dataChannels:this.dataChannelsInfo(),trackSidsDisabled:c,datachannelReceiveStates:this.reliableReceivedState.map((e,t)=>new bn({publisherSid:t,lastSeq:e}))}))}failNext(){this.shouldFailNext=!0}dataChannelsInfo(){const e=[],t=(t,n)=>{void 0!==(null==t?void 0:t.id)&&null!==t.id&&e.push(new _n({label:t.label,id:t.id,target:n}))};return t(this.dataChannelForKind(ot.LOSSY),Dt.PUBLISHER),t(this.dataChannelForKind(ot.RELIABLE),Dt.PUBLISHER),t(this.dataChannelForKind(ot.LOSSY,!0),Dt.SUBSCRIBER),t(this.dataChannelForKind(ot.RELIABLE,!0),Dt.SUBSCRIBER),e}clearReconnectTimeout(){this.reconnectTimeout&&Ir.clearTimeout(this.reconnectTimeout)}clearPendingReconnect(){this.clearReconnectTimeout(),this.reconnectAttempts=0}registerOnLineListener(){es()&&window.addEventListener("online",this.handleBrowserOnLine)}deregisterOnLineListener(){es()&&window.removeEventListener("online",this.handleBrowserOnLine)}}class ca extends Error{}class da{constructor(e,t){this.lastUpdateAt=0,this.settingsCacheTime=3e3,this.attemptedRegions=[],this.serverUrl=new URL(e),this.token=t}updateToken(e){this.token=e}isCloud(){return ns(this.serverUrl)}getServerUrl(){return this.serverUrl}getNextBestRegionUrl(e){return zn(this,void 0,void 0,function*(){if(!this.isCloud())throw Error("region availability is only supported for LiveKit Cloud domains");(!this.regionSettings||Date.now()-this.lastUpdateAt>this.settingsCacheTime)&&(this.regionSettings=yield this.fetchRegionSettings(e));const t=this.regionSettings.regions.filter(e=>!this.attemptedRegions.find(t=>t.url===e.url));if(t.length>0){const e=t[0];return this.attemptedRegions.push(e),Un.debug("next region: ".concat(e.region)),e.url}return null})}resetAttempts(){this.attemptedRegions=[]}fetchRegionSettings(e){return zn(this,void 0,void 0,function*(){const t=yield fetch("".concat((n=this.serverUrl,"".concat(n.protocol.replace("ws","http"),"//").concat(n.host,"/settings")),"/regions"),{headers:{authorization:"Bearer ".concat(this.token)},signal:e});var n;if(t.ok){const e=yield t.json();return this.lastUpdateAt=Date.now(),e}throw new mr("Could not fetch region settings: ".concat(t.statusText),401===t.status?rr.NotAllowed:rr.InternalError,t.status)})}setServerReportedRegions(e){this.regionSettings=e,this.lastUpdateAt=Date.now()}}class la{get info(){return this._info}validateBytesReceived(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if("number"==typeof this.totalByteSize&&0!==this.totalByteSize){if(e&&this.bytesReceived<this.totalByteSize)throw new Sr("Not enough chunk(s) received - expected ".concat(this.totalByteSize," bytes of data total, only received ").concat(this.bytesReceived," bytes"),sr.Incomplete);if(this.bytesReceived>this.totalByteSize)throw new Sr("Extra chunk(s) received - expected ".concat(this.totalByteSize," bytes of data total, received ").concat(this.bytesReceived," bytes"),sr.LengthExceeded)}}constructor(e,t,n,i){this.reader=t,this.totalByteSize=n,this._info=e,this.bytesReceived=0,this.outOfBandFailureRejectingFuture=i}}class ua extends la{handleChunkReceived(e){var t;this.bytesReceived+=e.content.byteLength,this.validateBytesReceived();const n=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;null===(t=this.onProgress)||void 0===t||t.call(this,n)}[Symbol.asyncIterator](){const e=this.reader.getReader();let t=new fs,n=null,i=null;if(this.signal){const e=this.signal;i=()=>{var n;null===(n=t.reject)||void 0===n||n.call(t,e.reason)},e.addEventListener("abort",i),n=e}const r=()=>{e.releaseLock(),n&&i&&n.removeEventListener("abort",i),this.signal=void 0};return{next:()=>zn(this,void 0,void 0,function*(){var n,i;try{const{done:r,value:s}=yield Promise.race([e.read(),t.promise,null!==(i=null===(n=this.outOfBandFailureRejectingFuture)||void 0===n?void 0:n.promise)&&void 0!==i?i:new Promise(()=>{})]);return r?(this.validateBytesReceived(!0),{done:!0,value:void 0}):(this.handleChunkReceived(s),{done:!1,value:s.content})}catch(e){throw r(),e}}),return(){return zn(this,void 0,void 0,function*(){return r(),{done:!0,value:void 0}})}}}withAbortSignal(e){return this.signal=e,this}readAll(){return zn(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function*(){var n,i,r,s;let o=new Set;const a=t.signal?e.withAbortSignal(t.signal):e;try{for(var c,d=!0,l=Wn(a);!(n=(c=yield l.next()).done);d=!0){s=c.value,d=!1;const e=s;o.add(e)}}catch(e){i={error:e}}finally{try{d||n||!(r=l.return)||(yield r.call(l))}finally{if(i)throw i.error}}return Array.from(o)}()})}}class ha extends la{constructor(e,t,n,i){super(e,t,n,i),this.receivedChunks=new Map}handleChunkReceived(e){var t;const n=ys(e.chunkIndex),i=this.receivedChunks.get(n);if(i&&i.version>e.version)return;this.receivedChunks.set(n,e),this.bytesReceived+=e.content.byteLength,this.validateBytesReceived();const r=this.totalByteSize?this.bytesReceived/this.totalByteSize:void 0;null===(t=this.onProgress)||void 0===t||t.call(this,r)}[Symbol.asyncIterator](){const e=this.reader.getReader(),t=new TextDecoder("utf-8",{fatal:!0});let n=new fs,i=null,r=null;if(this.signal){const e=this.signal;r=()=>{var t;null===(t=n.reject)||void 0===t||t.call(n,e.reason)},e.addEventListener("abort",r),i=e}const s=()=>{e.releaseLock(),i&&r&&i.removeEventListener("abort",r),this.signal=void 0};return{next:()=>zn(this,void 0,void 0,function*(){var i,r;try{const{done:s,value:o}=yield Promise.race([e.read(),n.promise,null!==(r=null===(i=this.outOfBandFailureRejectingFuture)||void 0===i?void 0:i.promise)&&void 0!==r?r:new Promise(()=>{})]);if(s)return this.validateBytesReceived(!0),{done:!0,value:void 0};{let e;this.handleChunkReceived(o);try{e=t.decode(o.content)}catch(e){throw new Sr("Cannot decode datastream chunk ".concat(o.chunkIndex," as text: ").concat(e),sr.DecodeFailed)}return{done:!1,value:e}}}catch(e){throw s(),e}}),return(){return zn(this,void 0,void 0,function*(){return s(),{done:!0,value:void 0}})}}}withAbortSignal(e){return this.signal=e,this}readAll(){return zn(this,arguments,void 0,function(){var e=this;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function*(){var n,i,r,s;let o="";const a=t.signal?e.withAbortSignal(t.signal):e;try{for(var c,d=!0,l=Wn(a);!(n=(c=yield l.next()).done);d=!0)s=c.value,d=!1,o+=s}catch(e){i={error:e}}finally{try{d||n||!(r=l.return)||(yield r.call(l))}finally{if(i)throw i.error}}return o}()})}}class pa{constructor(){this.log=Un,this.byteStreamControllers=new Map,this.textStreamControllers=new Map,this.byteStreamHandlers=new Map,this.textStreamHandlers=new Map}registerTextStreamHandler(e,t){if(this.textStreamHandlers.has(e))throw new Sr('A text stream handler for topic "'.concat(e,'" has already been set.'),sr.HandlerAlreadyRegistered);this.textStreamHandlers.set(e,t)}unregisterTextStreamHandler(e){this.textStreamHandlers.delete(e)}registerByteStreamHandler(e,t){if(this.byteStreamHandlers.has(e))throw new Sr('A byte stream handler for topic "'.concat(e,'" has already been set.'),sr.HandlerAlreadyRegistered);this.byteStreamHandlers.set(e,t)}unregisterByteStreamHandler(e){this.byteStreamHandlers.delete(e)}clearHandlersAndControllers(){this.byteStreamControllers.clear(),this.textStreamControllers.clear(),this.byteStreamHandlers.clear(),this.textStreamHandlers.clear()}
1validateParticipantHasNoActiveDataStreams(e){var t,n,i,r;const s=Array.from(this.textStreamControllers.entries()).filter(t=>t[1].sendingParticipantIdentity===e),o=Array.from(this.byteStreamControllers.entries()).filter(t=>t[1].sendingParticipantIdentity===e);if(s.length>0||o.length>0){const a=new Sr("Participant ".concat(e," unexpectedly disconnected in the middle of sending data"),sr.AbnormalEnd);for(const[e,i]of o)null===(n=(t=i.outOfBandFailureRejectingFuture).reject)||void 0===n||n.call(t,a),this.byteStreamControllers.delete(e);for(const[e,t]of s)null===(r=(i=t.outOfBandFailureRejectingFuture).reject)||void 0===r||r.call(i,a),this.textStreamControllers.delete(e)}}handleDataStreamPacket(e){return zn(this,void 0,void 0,function*(){switch(e.value.case){case"streamHeader":return this.handleStreamHeader(e.value.value,e.participantIdentity);case"streamChunk":return this.handleStreamChunk(e.value.value);case"streamTrailer":return this.handleStreamTrailer(e.value.value);default:throw new Error('DataPacket of value "'.concat(e.value.case,'" is not data stream related!'))}})}handleStreamHeader(e,t){return zn(this,void 0,void 0,function*(){var n;if("byteHeader"===e.contentHeader.case){const i=this.byteStreamHandlers.get(e.topic);if(!i)return void this.log.debug("ignoring incoming byte stream due to no handler for topic",e.topic);let r;const s=new fs,o={id:e.streamId,name:null!==(n=e.contentHeader.value.name)&&void 0!==n?n:"unknown",mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:ys(e.timestamp),attributes:e.attributes},a=new ReadableStream({start:n=>{if(r=n,this.textStreamControllers.has(e.streamId))throw new Sr("A data stream read is already in progress for a stream with id ".concat(e.streamId,"."),sr.AlreadyOpened);this.byteStreamControllers.set(e.streamId,{info:o,controller:r,startTime:Date.now(),sendingParticipantIdentity:t,outOfBandFailureRejectingFuture:s})}});i(new ua(o,a,ys(e.totalLength),s),{identity:t})}else if("textHeader"===e.contentHeader.case){const n=this.textStreamHandlers.get(e.topic);if(!n)return void this.log.debug("ignoring incoming text stream due to no handler for topic",e.topic);let i;const r=new fs,s={id:e.streamId,mimeType:e.mimeType,size:e.totalLength?Number(e.totalLength):void 0,topic:e.topic,timestamp:Number(e.timestamp),attributes:e.attributes},o=new ReadableStream({start:n=>{if(i=n,this.textStreamControllers.has(e.streamId))throw new Sr("A data stream read is already in progress for a stream with id ".concat(e.streamId,"."),sr.AlreadyOpened);this.textStreamControllers.set(e.streamId,{info:s,controller:i,startTime:Date.now(),sendingParticipantIdentity:t,outOfBandFailureRejectingFuture:r})}});n(new ha(s,o,ys(e.totalLength),r),{identity:t})}})}handleStreamChunk(e){const t=this.byteStreamControllers.get(e.streamId);t&&e.content.length>0&&t.controller.enqueue(e);const n=this.textStreamControllers.get(e.streamId);n&&e.content.length>0&&n.controller.enqueue(e)}handleStreamTrailer(e){const t=this.textStreamControllers.get(e.streamId);t&&(t.info.attributes=Object.assign(Object.assign({},t.info.attributes),e.attributes),t.controller.close(),this.textStreamControllers.delete(e.streamId));const n=this.byteStreamControllers.get(e.streamId);n&&(n.info.attributes=Object.assign(Object.assign({},n.info.attributes),e.attributes),n.controller.close(),this.byteStreamControllers.delete(e.streamId))}}class ma{constructor(e,t,n){this.writableStream=e,this.defaultWriter=e.getWriter(),this.onClose=n,this.info=t}write(e){return this.defaultWriter.write(e)}close(){return zn(this,void 0,void 0,function*(){var e;yield this.defaultWriter.close(),this.defaultWriter.releaseLock(),null===(e=this.onClose)||void 0===e||e.call(this)})}}class ga extends ma{}class fa extends ma{}class va{constructor(e,t){this.engine=e,this.log=t}setupEngine(e){this.engine=e}sendText(e,t){return zn(this,void 0,void 0,function*(){var n;const i=crypto.randomUUID(),r=(new TextEncoder).encode(e).byteLength,s=null===(n=null==t?void 0:t.attachments)||void 0===n?void 0:n.map(()=>crypto.randomUUID()),o=new Array(s?s.length+1:1).fill(0),a=(e,n)=>{var i;o[n]=e;const r=o.reduce((e,t)=>
vendor: 48,457 bytes, line 1
1e+t,0);null===(i=null==t?void 0:t.onProgress)||void 0===i||i.call(t,r)},c=yield this.streamText({streamId:i,totalSize:r,destinationIdentities:null==t?void 0:t.destinationIdentities,topic:null==t?void 0:t.topic,attachedStreamIds:s,attributes:null==t?void 0:t.attributes});return yield c.write(e),a(1,0),yield c.close(),(null==t?void 0:t.attachments)&&s&&(yield Promise.all(t.attachments.map((e,n)=>zn(this,void 0,void 0,function*(){return this._sendFile(s[n],e,{topic:t.topic,mimeType:e.type,onProgress:e=>{a(e,n+1)}})})))),c.info})}streamText(e){return zn(this,void 0,void 0,function*(){var t,n;const i=null!==(t=null==e?void 0:e.streamId)&&void 0!==t?t:crypto.randomUUID(),r={id:i,mimeType:"text/plain",timestamp:Date.now(),topic:null!==(n=null==e?void 0:e.topic)&&void 0!==n?n:"",size:null==e?void 0:e.totalSize,attributes:null==e?void 0:e.attributes},s=new Ot({streamId:i,mimeType:r.mimeType,topic:r.topic,timestamp:ks(r.timestamp),totalLength:ks(null==e?void 0:e.totalSize),attributes:r.attributes,contentHeader:{case:"textHeader",value:new Rt({version:null==e?void 0:e.version,attachedStreamIds:null==e?void 0:e.attachedStreamIds,replyToStreamId:null==e?void 0:e.replyToStreamId,operationType:"update"===(null==e?void 0:e.type)?Pt.UPDATE:Pt.CREATE})}}),o=null==e?void 0:e.destinationIdentities,a=new st({destinationIdentities:o,value:{case:"streamHeader",value:s}});yield this.engine.sendDataPacket(a,ot.RELIABLE);let c=0;const d=this.engine,l=new WritableStream({write(e){return zn(this,void 0,void 0,function*(){for(const t of function(e){const t=[];let n=(new TextEncoder).encode(e);for(;n.length>15e3;){let e=15e3;for(;e>0;){const t=n[e];if(void 0!==t&&128!=(192&t))break;e--}t.push(n.slice(0,e)),n=n.slice(e)}return n.length>0&&t.push(n),t}(e)){yield d.waitForBufferStatusLow(ot.RELIABLE);const e=new xt({content:t,streamId:i,chunkIndex:ks(c)}),n=new st({destinationIdentities:o,value:{case:"streamChunk",value:e}});yield d.sendDataPacket(n,ot.RELIABLE),c+=1}})},close(){return zn(this,void 0,void 0,function*(){const e=new At({streamId:i}),t=new st({destinationIdentities:o,value:{case:"streamTrailer",value:e}});yield d.sendDataPacket(t,ot.RELIABLE)})},abort(e){console.log("Sink error:",e)}});let u=()=>zn(this,void 0,void 0,function*(){yield h.close()});d.once(lr.Closing,u);const h=new ga(l,r,()=>this.engine.off(lr.Closing,u));return h})}sendFile(e,t){return zn(this,void 0,void 0,function*(){const n=crypto.randomUUID();return yield this._sendFile(n,e,t),{id:n}})}_sendFile(e,t,n){return zn(this,void 0,void 0,function*(){var i;const r=yield this.streamBytes({streamId:e,totalSize:t.size,name:t.name,mimeType:null!==(i=null==n?void 0:n.mimeType)&&void 0!==i?i:t.type,topic:null==n?void 0:n.topic,destinationIdentities:null==n?void 0:n.destinationIdentities}),s=t.stream().getReader();for(;;){const{done:e,value:t}=yield s.read();if(e)break;yield r.write(t)}return yield r.close(),r.info})}streamBytes(e){return zn(this,void 0,void 0,function*(){var t,n,i,r,s;const a=null!==(t=null==e?void 0:e.streamId)&&void 0!==t?t:crypto.randomUUID(),c=null==e?void 0:e.destinationIdentities,d={id:a,mimeType:null!==(n=null==e?void 0:e.mimeType)&&void 0!==n?n:"application/octet-stream",topic:null!==(i=null==e?void 0:e.topic)&&void 0!==i?i:"",timestamp:Date.now(),attributes:null==e?void 0:e.attributes,size:null==e?void 0:e.totalSize,name:null!==(r=null==e?void 0:e.name)&&void 0!==r?r:"unknown"},l=new Ot({totalLength:ks(null!==(s=d.size)&&void 0!==s?s:0),mimeType:d.mimeType,streamId:a,topic:d.topic,timestamp:ks(Date.now()),attributes:d.attributes,contentHeader:{case:"byteHeader",value:new It({name:d.name})}}),u=new st({destinationIdentities:c,value:{case:"streamHeader",value:l}});yield this.engine.sendDataPacket(u,ot.RELIABLE);let h=0;const p=new o,m=this.engine,g=this.log,f=new WritableStream({write(e){return zn(this,void 0,void 0,function*(){const t=yield p.lock();let n=0;try{for(;n<e.byteLength;){const t=e.slice(n,n+15e3);yield m.waitForBufferStatusLow(ot.RELIABLE);const i=new st({destinationIdentities:c,value:{case:"streamChunk",value:new xt({content:t,streamId:a,chunkIndex:ks(h)})}});yield m.sendDataPacket(i,ot.RELIABLE),h+=1,n+=t.byteLength}}finally{t()}})},close(){return zn(this,void 0,void 0,function*(){const e=new At({streamId:a}),t=new st({destinationIdentities:c,value:{case:"streamTrailer",value:e}});yield m.sendDataPacket(t,ot.RELIABLE)})},abort(e){g.error("Sink error:",e)}});return new fa(f,d)})}}class ba extends Ar{constructor(e,t,n,i,r){super(e,n,r),this.sid=t,this.receiver=i}get isLocal(){return!1}setMuted(e){this.isMuted!==e&&(this.isMuted=e,this._mediaStreamTrack.enabled=!e,this.emit(e?ur.Muted:ur.Unmuted,this))}setMediaStream(e){this.mediaStream=e;const t=n=>{n.track===this._mediaStreamTrack&&(e.removeEventListener("removetrack",t),this.receiver&&"playoutDelayHint"in this.receiver&&(this.receiver.playoutDelayHint=void 0),this.receiver=void 0,this._currentBitrate=0,this.emit(ur.Ended,this))};e.addEventListener("removetrack",t)}start(){this.startMonitor(),super.enable()}stop(){this.stopMonitor(),super.disable()}getRTCStatsReport(){return zn(this,void 0,void 0,function*(){var e;if(null===(e=this.receiver)||void 0===e?void 0:e.getStats)return yield this.receiver.getStats()})}setPlayoutDelay(e){this.receiver?"playoutDelayHint"in this.receiver?this.receiver.playoutDelayHint=e:this.log.warn("Playout delay not supported in this browser"):this.log.warn("Cannot set playout delay, track already ended")}getPlayoutDelay(){if(this.receiver){if("playoutDelayHint"in this.receiver)return this.receiver.playoutDelayHint;this.log.warn("Playout delay not supported in this browser")}else this.log.warn("Cannot get playout delay, track already ended");return 0}startMonitor(){this.monitorInterval||(this.monitorInterval=setInterval(()=>this.monitorReceiver(),Ao)),"undefined"!=typeof RTCRtpReceiver&&"getSynchronizationSources"in RTCRtpReceiver&&this.registerTimeSyncUpdate()}registerTimeSyncUpdate(){const e=()=>{var t;this.timeSyncHandle=requestAnimationFrame(()=>e());const n=null===(t=this.receiver)||void 0===t?void 0:t.getSynchronizationSources()[0];if(n){const{timestamp:e,rtpTimestamp:t}=n;t&&this.rtpTimestamp!==t&&(this.emit(ur.TimeSyncUpdate,{timestamp:e,rtpTimestamp:t}),this.rtpTimestamp=t)}};e()}}class _a extends ba{constructor(e,t,n,i,r,s){super(e,t,Ar.Kind.Audio,n,s),this.monitorReceiver=()=>zn(this,void 0,void 0,function*(){if(!this.receiver)return void(this._currentBitrate=0);const e=yield this.getReceiverStats();e&&this.prevStats&&this.receiver&&(this._currentBitrate=Do(e,this.prevStats)),this.prevStats=e}),this.audioContext=i,this.webAudioPluginNodes=[],r&&(this.sinkId=r.deviceId)}setVolume(e){var t;for(const n of this.attachedElements)this.audioContext?null===(t=this.gainNode)||void 0===t||t.gain.setTargetAtTime(e,0,.1):n.volume=e;ts()&&this._mediaStreamTrack._setVolume(e),this.elementVolume=e}getVolume(){if(this.elementVolume)return this.elementVolume;if(ts())return 1;let e=0;return this.attachedElements.forEach(t=>{t.volume>e&&(e=t.volume)}),e}setSinkId(e){return zn(this,void 0,void 0,function*(){this.sinkId=e,yield Promise.all(this.attachedElements.map(t=>{if(Qr(t))return t.setSinkId(e)}))})}attach(e){const t=0===this.attachedElements.length;return e?super.attach(e):e=super.attach(),this.sinkId&&Qr(e)&&e.setSinkId(this.sinkId).catch(e=>{this.log.error("Failed to set sink id on remote audio track",e,this.logContext)}),this.audioContext&&t&&(this.log.debug("using audio context mapping",this.logContext),this.connectWebAudio(this.audioContext,e),e.volume=0,e.muted=!0),this.elementVolume&&this.setVolume(this.elementVolume),e}detach(e){let t;return e?(t=super.detach(e),this.audioContext&&(this.attachedElements.length>0?this.connectWebAudio(this.audioContext,this.attachedElements[0]):this.disconnectWebAudio())):(t=super.detach(),this.disconnectWebAudio()),t}setAudioContext(e){this.audioContext=e,e&&this.attachedElements.length>0?this.connectWebAudio(e,this.attachedElements[0]):e||this.disconnectWebAudio()}setWebAudioPlugins(e){this.webAudioPluginNodes=e,this.attachedElements.length>0&&this.audioContext&&this.connectWebAudio(this.audioContext,this.attachedElements[0])}connectWebAudio(e,t){this.disconnectWebAudio(),this.sourceNode=e.createMediaStreamSource(t.srcObject);let n=this.sourceNode;this.webAudioPluginNodes.forEach(e=>{n.connect(e),n=e}),this.gainNode=e.createGain(),n.connect(this.gainNode),this.gainNode.connect(e.destination),this.elementVolume&&this.gainNode.gain.setTargetAtTime(this.elementVolume,0,.1),"running"!==e.state&&e.resume().then(()=>{"running"!==e.state&&this.emit(ur.AudioPlaybackFailed,new Error("Audio Context couldn't be started automatically"))}).catch(e=>{this.emit(ur.AudioPlaybackFailed,e)})}disconnectWebAudio(){var e,t;null===(e=this.gainNode)||void 0===e||e.disconnect(),null===(t=this.sourceNode)||void 0===t||t.disconnect(),this.gainNode=void 0,this.sourceNode=void 0}getReceiverStats(){return zn(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;let e;return(yield this.receiver.getStats()).forEach(t=>{"inbound-rtp"===t.type&&(e={type:"audio",streamId:t.id,timestamp:t.timestamp,jitter:t.jitter,bytesReceived:t.bytesReceived,concealedSamples:t.concealedSamples,concealmentEvents:t.concealmentEvents,silentConcealedSamples:t.silentConcealedSamples,silentConcealmentEvents:t.silentConcealmentEvents,totalAudioEnergy:t.totalAudioEnergy,totalSamplesDuration:t.totalSamplesDuration})}),e})}}class ya extends ba{constructor(e,t,n,i,r){super(e,t,Ar.Kind.Video,n,r),this.elementInfos=[],this.monitorReceiver=()=>zn(this,void 0,void 0,function*(){if(!this.receiver)return void(this._currentBitrate=0);const e=yield this.getReceiverStats();e&&this.prevStats&&this.receiver&&(this._currentBitrate=Do(e,this.prevStats)),this.prevStats=e}),this.debouncedHandleResize=po(()=>{this.updateDimensions()},100),this.adaptiveStreamSettings=i}get isAdaptiveStream(){return void 0!==this.adaptiveStreamSettings}setStreamState(e){super.setStreamState(e),console.log("setStreamState",e),e===Ar.StreamState.Active&&this.updateVisibility()}get mediaStreamTrack(){return this._mediaStreamTrack}setMuted(e){super.setMuted(e),this.attachedElements.forEach(t=>{e?Nr(this._mediaStreamTrack,t):Dr(this._mediaStreamTrack,t)})}attach(e){if(e?super.attach(e):e=super.attach(),this.adaptiveStreamSettings&&void 0===this.elementInfos.find(t=>t.element===e)){const t=new ka(e);this.observeElementInfo(t)}return e}observeElementInfo(e){this.adaptiveStreamSettings&&void 0===this.elementInfos.find(t=>t===e)?(e.handleResize=()=>{this.debouncedHandleResize()},e.handleVisibilityChanged=()=>{this.updateVisibility()},this.elementInfos.push(e),e.observe(),this.debouncedHandleResize(),this.updateVisibility()):this.log.warn("visibility resize observer not triggered",this.logContext)}stopObservingElementInfo(e){if(!this.isAdaptiveStream)return void this.log.warn("stopObservingElementInfo ignored",this.logContext);const t=this.elementInfos.filter(t=>t===e);for(const e of t)e.stopObserving();this.elementInfos=this.elementInfos.filter(t=>t!==e),this.updateVisibility(),this.debouncedHandleResize()}detach(e){let t=[];if(e)return this.stopObservingElement(e),super.detach(e);t=super.detach();for(const e of t)this.stopObservingElement(e);return t}getDecoderImplementation(){var e;return null===(e=this.prevStats)||void 0===e?void 0:e.decoderImplementation}getReceiverStats(){return zn(this,void 0,void 0,function*(){if(!this.receiver||!this.receiver.getStats)return;const e=yield this.receiver.getStats();let t,n="",i=new Map;return e.forEach(e=>{"inbound-rtp"===e.type?(n=e.codecId,t={type:"video",streamId:e.id,framesDecoded:e.framesDecoded,framesDropped:e.framesDropped,framesReceived:e.framesReceived,packetsReceived:e.packetsReceived,packetsLost:e.packetsLost,frameWidth:e.frameWidth,frameHeight:e.frameHeight,pliCount:e.pliCount,firCount:e.firCount,nackCount:e.nackCount,jitter:e.jitter,timestamp:e.timestamp,bytesReceived:e.bytesReceived,decoderImplementation:e.decoderImplementation}):"codec"===e.type&&i.set(e.id,e)}),t&&""!==n&&i.get(n)&&(t.mimeType=i.get(n).mimeType),t})}stopObservingElement(e){const t=this.elementInfos.filter(t=>t.element===e);for(const e of t)this.stopObservingElementInfo(e)}handleAppVisibilityChanged(){const e=Object.create(null,{handleAppVisibilityChanged:{get:()=>super.handleAppVisibilityChanged}});return zn(this,void 0,void 0,function*(){yield e.handleAppVisibilityChanged.call(this),this.isAdaptiveStream&&this.updateVisibility()})}updateVisibility(e){var t,n;const i=this.elementInfos.reduce((e,t)=>Math.max(e,t.visibilityChangedAt||0),0),r=!(null!==(n=null===(t=this.adaptiveStreamSettings)||void 0===t?void 0:t.pauseVideoInBackground)&&void 0!==n&&!n)&&this.isInBackground,s=this.elementInfos.some(e=>e.pictureInPicture),o=this.elementInfos.some(e=>e.visible)&&!r||s;(this.lastVisible!==o||e)&&(!o&&Date.now()-i<100?Ir.setTimeout(()=>{this.updateVisibility()},100):(this.lastVisible=o,this.emit(ur.VisibilityChanged,o,this)))}updateDimensions(){var e,t;let n=0,i=0;const r=this.getPixelDensity();for(const e of this.elementInfos){const t=e.width()*r,s=e.height()*r;t+s>n+i&&(n=t,i=s)}(null===(e=this.lastDimensions)||void 0===e?void 0:e.width)===n&&(null===(t=this.lastDimensions)||void 0===t?void 0:t.height)===i||(this.lastDimensions={width:n,height:i},this.emit(ur.VideoDimensionsChanged,this.lastDimensions,this))}getPixelDensity(){var e;const t=null===(e=this.adaptiveStreamSettings)||void 0===e?void 0:e.pixelDensity;return"screen"===t?ss():t||(ss()>2?2:1)}}class ka{get visible(){return this.isPiP||this.isIntersecting}get pictureInPicture(){return this.isPiP}constructor(e,t){this.onVisibilityChanged=e=>{var t;const{target:n,isIntersecting:i}=e;n===this.element&&(this.isIntersecting=i,this.isPiP=Sa(this.element),this.visibilityChangedAt=Date.now(),null===(t=this.handleVisibilityChanged)||void 0===t||t.call(this))},this.onEnterPiP=()=>{var e,t,n;null===(t=null===(e=window.documentPictureInPicture)||void 0===e?void 0:e.window)||void 0===t||t.addEventListener("pagehide",this.onLeavePiP),this.isPiP=Sa(this.element),null===(n=this.handleVisibilityChanged)||void 0===n||n.call(this)},this.onLeavePiP=()=>{var e;this.isPiP=Sa(this.element),null===(e=this.handleVisibilityChanged)||void 0===e||e.call(this)},this.element=e,this.isIntersecting=null!=t?t:Ta(e),this.isPiP=es()&&Sa(e),this.visibilityChangedAt=0}width(){return this.element.clientWidth}height(){return this.element.clientHeight}observe(){var e,t,n;this.isIntersecting=Ta(this.element),this.isPiP=Sa(this.element),this.element.handleResize=()=>{var e;null===(e=this.handleResize)||void 0===e||e.call(this)},this.element.handleVisibilityChanged=this.onVisibilityChanged,hs().observe(this.element),ls().observe(this.element),this.element.addEventListener("enterpictureinpicture",this.onEnterPiP),this.element.addEventListener("leavepictureinpicture",this.onLeavePiP),null===(e=window.documentPictureInPicture)||void 0===e||e.addEventListener("enter",this.onEnterPiP),null===(n=null===(t=window.documentPictureInPicture)||void 0===t?void 0:t.window)||void 0===n||n.addEventListener("pagehide",this.onLeavePiP)}stopObserving(){var e,t,n,i,r;null===(e=hs())||void 0===e||e.unobserve(this.element),null===(t=ls())||void 0===t||t.unobserve(this.element),this.element.removeEventListener("enterpictureinpicture",this.onEnterPiP),this.element.removeEventListener("leavepictureinpicture",this.onLeavePiP),null===(n=window.documentPictureInPicture)||void 0===n||n.removeEventListener("enter",this.onEnterPiP),null===(r=null===(i=window.documentPictureInPicture)||void 0===i?void 0:i.window)||void 0===r||r.removeEventListener("pagehide",this.onLeavePiP)}}function Sa(e){var t,n;return document.pictureInPictureElement===e||!!(null===(t=window.documentPictureInPicture)||void 0===t?void 0:t.window)&&Ta(e,null===(n=window.documentPictureInPicture)||void 0===n?void 0:n.window)}function Ta(e,t){const n=t||window;let i=e.offsetTop,r=e.offsetLeft;const s=e.offsetWidth,o=e.offsetHeight,{hidden:a}=e,{display:c}=getComputedStyle(e);for(;e.offsetParent;)i+=(e=e.offsetParent).offsetTop,r+=e.offsetLeft;return i<n.pageYOffset+n.innerHeight&&r<n.pageXOffset+n.innerWidth&&i+o>n.pageYOffset&&r+s>n.pageXOffset&&!a&&"none"!==c}class Ca extends Kn.EventEmitter{constructor(e,t,n,i){var r;super(),this.metadataMuted=!1,this.encryption=tt.NONE,this.log=Un,this.handleMuted=()=>{this.emit(ur.Muted)},this.handleUnmuted=()=>{this.emit(ur.Unmuted)},this.log=Fn(null!==(r=null==i?void 0:i.loggerName)&&void 0!==r?r:Mn.Publication),this.loggerContextCb=this.loggerContextCb,this.setMaxListeners(100),this.kind=e,this.trackSid=t,this.trackName=n,this.source=Ar.Source.Unknown}setTrack(e){this.track&&(this.track.off(ur.Muted,this.handleMuted),this.track.off(ur.Unmuted,this.handleUnmuted)),this.track=e,e&&(e.on(ur.Muted,this.handleMuted),e.on(ur.Unmuted,this.handleUnmuted))}get logContext(){var e;return Object.assign(Object.assign({},null===(e=this.loggerContextCb)||void 0===e?void 0:e.call(this)),Us(this))}get isMuted(){return this.metadataMuted}get isEnabled(){return!0}get isSubscribed(){return void 0!==this.track}get isEncrypted(){return this.encryption!==tt.NONE}get audioTrack(){if(Ts(this.track))return this.track}get videoTrack(){if(Cs(this.track))return this.track}updateInfo(e){this.trackSid=e.sid,this.trackName=e.name,this.source=Ar.sourceFromProto(e.source),this.mimeType=e.mimeType,this.kind===Ar.Kind.Video&&e.width>0&&(this.dimensions={width:e.width,height:e.height},this.simulcasted=e.simulcast),this.encryption=e.encryption,this.trackInfo=e,this.log.debug("update publication info",Object.assign(Object.assign({},this.logContext),{info:e}))}}!function(e){var t,n;(t=e.SubscriptionStatus||(e.SubscriptionStatus={})).Desired="desired",t.Subscribed="subscribed",t.Unsubscribed="unsubscribed",(n=e.PermissionStatus||(e.PermissionStatus={})).Allowed="allowed",n.NotAllowed="not_allowed"}(Ca||(Ca={}));class wa extends Ca{get isUpstreamPaused(){var e;return null===(e=this.track)||void 0===e?void 0:e.isUpstreamPaused}constructor(e,t,n,i){super(e,t.sid,t.name,i),this.track=void 0,this.handleTrackEnded=()=>{this.emit(ur.Ended)},this.handleCpuConstrained=()=>{this.track&&Cs(this.track)&&this.emit(ur.CpuConstrained,this.track)},this.updateInfo(t),this.setTrack(n)}setTrack(e){this.track&&(this.track.off(ur.Ended,this.handleTrackEnded),this.track.off(ur.CpuConstrained,this.handleCpuConstrained)),super.setTrack(e),e&&(e.on(ur.Ended,this.handleTrackEnded),e.on(ur.CpuConstrained,this.handleCpuConstrained))}get isMuted(){return this.track?this.track.isMuted:super.isMuted}get audioTrack(){return super.audioTrack}get videoTrack(){return super.videoTrack}get isLocal(){return!0}mute(){return zn(this,void 0,void 0,function*(){var e;return null===(e=this.track)||void 0===e?void 0:e.mute()})}unmute(){return zn(this,void 0,void 0,function*(){var e;return null===(e=this.track)||void 0===e?void 0:e.unmute()})}pauseUpstream(){return zn(this,void 0,void 0,function*(){var e;yield null===(e=this.track)||void 0===e?void 0:e.pauseUpstream()})}resumeUpstream(){return zn(this,void 0,void 0,function*(){var e;yield null===(e=this.track)||void 0===e?void 0:e.resumeUpstream()})}getTrackFeatures(){var e;if(Ts(this.track)){const t=this.track.getSourceTrackSettings(),n=new Set;return t.autoGainControl&&n.add(Ke.TF_AUTO_GAIN_CONTROL),t.echoCancellation&&n.add(Ke.TF_ECHO_CANCELLATION),t.noiseSuppression&&n.add(Ke.TF_NOISE_SUPPRESSION),t.channelCount&&t.channelCount>1&&n.add(Ke.TF_STEREO),(null===(e=this.options)||void 0===e?void 0:e.dtx)||n.add(Ke.TF_NO_DTX),this.track.enhancedNoiseCancellation&&n.add(Ke.TF_ENHANCED_NOISE_CANCELLATION),Array.from(n.values())}return[]}}function Ea(e,t){return zn(this,void 0,void 0,function*(){null!=e||(e={});let n=!1;const{audioProcessor:i,videoProcessor:r,optionsWithoutProcessor:s}=Fs(e);let o=s.audio,a=s.video;if(i&&"object"==typeof s.audio&&(s.audio.processor=i),r&&"object"==typeof s.video&&(s.video.processor=r),e.audio&&"object"==typeof s.audio&&"string"==typeof s.audio.deviceId){const e=s.audio.deviceId;s.audio.deviceId={exact:e},n=!0,o=Object.assign(Object.assign({},s.audio),{deviceId:{ideal:e}})}if(s.video&&"object"==typeof s.video&&"string"==typeof s.video.deviceId){const e=s.video.deviceId;s.video.deviceId={exact:e},n=!0,a=Object.assign(Object.assign({},s.video),{deviceId:{ideal:e}})}(!0===s.audio||"object"==typeof s.audio&&!s.audio.deviceId)&&(s.audio={deviceId:"default"}),!0===s.video?s.video={deviceId:"default"}:"object"!=typeof s.video||s.video.deviceId||(s.video.deviceId="default");const c=Os(s,To,Co),d=As(c),l=navigator.mediaDevices.getUserMedia(d);s.audio&&(zs.userMediaPromiseMap.set("audioinput",l),l.catch(()=>zs.userMediaPromiseMap.delete("audioinput"))),s.video&&(zs.userMediaPromiseMap.set("videoinput",l),l.catch(()=>zs.userMediaPromiseMap.delete("videoinput")));try{const e=yield l;return yield Promise.all(e.getTracks().map(n=>zn(this,void 0,void 0,function*(){const s="audio"===n.kind;let o,a=s?c.audio:c.video;"boolean"!=typeof a&&a||(a={});const l=s?d.audio:d.video;"boolean"!=typeof l&&(o=l);const u=n.getSettings().deviceId;(null==o?void 0:o.deviceId)&&vs(o.deviceId)!==u?o.deviceId=u:o||(o={deviceId:u});const h=function(e,t,n){switch(e.kind){case"audio":return new Uo(e,t,!1,void 0,n);case"video":return new Yo(e,t,!1,n);default:throw new fr("unsupported track type: ".concat(e.kind))}}(n,o,t);return h.kind===Ar.Kind.Video?h.source=Ar.Source.Camera:h.kind===Ar.Kind.Audio&&(h.source=Ar.Source.Microphone),h.mediaStream=e,Ts(h)&&i?yield h.setProcessor(i):Cs(h)&&r&&(yield h.setProcessor(r)),h})))}catch(i){if(!n)throw i;return Ea(Object.assign(Object.assign({},e),{audio:o,video:a}),t)}})}!function(e){e.Excellent="excellent",e.Good="good",e.Poor="poor",e.Lost="lost",e.Unknown="unknown"}(ra||(ra={}));class Pa extends Kn.EventEmitter{get logContext(){var e,t;return Object.assign({},null===(t=null===(e=this.loggerOptions)||void 0===e?void 0:e.loggerContextCb)||void 0===t?void 0:t.call(e))}get isEncrypted(){return this.trackPublications.size>0&&Array.from(this.trackPublications.values()).every(e=>e.isEncrypted)}get isAgent(){var e;return(null===(e=this.permissions)||void 0===e?void 0:e.agent)||this.kind===Ze.AGENT}get isActive(){var e;return(null===(e=this.participantInfo)||void 0===e?void 0:e.state)===$e.ACTIVE}get kind(){return this._kind}get attributes(){return Object.freeze(Object.assign({},this._attributes))}constructor(e,t,n,i,r,s){let o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:Ze.STANDARD;var a;super(),this.audioLevel=0,this.isSpeaking=!1,this._connectionQuality=ra.Unknown,this.log=Un,this.log=Fn(null!==(a=null==s?void 0:s.loggerName)&&void 0!==a?a:Mn.Participant),this.loggerOptions=s,this.setMaxListeners(100),this.sid=e,this.identity=t,this.name=n,this.metadata=i,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this._kind=o,this._attributes=null!=r?r:{}}getTrackPublications(){return Array.from(this.trackPublications.values())}getTrackPublication(e){for(const[,t]of this.trackPublications)if(t.source===e)return t}getTrackPublicationByName(e){for(const[,t]of this.trackPublications)if(t.trackName===e)return t}waitUntilActive(){return this.isActive?Promise.resolve():(this.activeFuture||(this.activeFuture=new fs,this.once(dr.Active,()=>{var e,t;null===(t=null===(e=this.activeFuture)||void 0===e?void 0:e.resolve)||void 0===t||t.call(e),this.activeFuture=void 0})),this.activeFuture.promise)}get connectionQuality(){return this._connectionQuality}get isCameraEnabled(){var e;const t=this.getTrackPublication(Ar.Source.Camera);return!(null===(e=null==t?void 0:t.isMuted)||void 0===e||e)}get isMicrophoneEnabled(){var e;const t=this.getTrackPublication(Ar.Source.Microphone);return!(null===(e=null==t?void 0:t.isMuted)||void 0===e||e)}get isScreenShareEnabled(){return!!this.getTrackPublication(Ar.Source.ScreenShare)}get isLocal(){return!1}get joinedAt(){return this.participantInfo?new Date(1e3*Number.parseInt(this.participantInfo.joinedAt.toString())):new Date}updateInfo(e){var t;return!(this.participantInfo&&this.participantInfo.sid===e.sid&&this.participantInfo.version>e.version||(this.identity=e.identity,this.sid=e.sid,this._setName(e.name),this._setMetadata(e.metadata),this._setAttributes(e.attributes),e.state===$e.ACTIVE&&(null===(t=this.participantInfo)||void 0===t?void 0:t.state)!==$e.ACTIVE&&this.emit(dr.Active),e.permission&&this.setPermissions(e.permission),this.participantInfo=e,0))}_setMetadata(e){const t=this.metadata!==e,n=this.metadata;this.metadata=e,t&&this.emit(dr.ParticipantMetadataChanged,n)}_setName(e){const t=this.name!==e;this.name=e,t&&this.emit(dr.ParticipantNameChanged,e)}_setAttributes(e){const t=function(e,t){var n;void 0===e&&(e={}),void 0===t&&(t={});const i=[...Object.keys(t),...Object.keys(e)],r={};for(const s of i)e[s]!==t[s]&&(r[s]=null!==(n=t[s])&&void 0!==n?n:"");return r}(this.attributes,e);this._attributes=e,Object.keys(t).length>0&&this.emit(dr.AttributesChanged,t)}setPermissions(e){var t,n,i,r,s,o;const a=this.permissions,c=e.canPublish!==(null===(t=this.permissions)||void 0===t?void 0:t.canPublish)||e.canSubscribe!==(null===(n=this.permissions)||void 0===n?void 0:n.canSubscribe)||e.canPublishData!==(null===(i=this.permissions)||void 0===i?void 0:i.canPublishData)||e.hidden!==(null===(r=this.permissions)||void 0===r?void 0:r.hidden)||e.recorder!==(null===(s=this.permissions)||void 0===s?void 0:s.recorder)||e.canPublishSources.length!==this.permissions.canPublishSources.length||e.canPublishSources.some((e,t)=>{var n;return e!==(null===(n=this.permissions)||void 0===n?void 0:n.canPublishSources[t])})||e.canSubscribeMetrics!==(null===(o=this.permissions)||void 0===o?void 0:o.canSubscribeMetrics);return this.permissions=e,c&&this.emit(dr.ParticipantPermissionsChanged,a),c}setIsSpeaking(e){e!==this.isSpeaking&&(this.isSpeaking=e,e&&(this.lastSpokeAt=new Date),this.emit(dr.IsSpeakingChanged,e))}setConnectionQuality(e){const t=this._connectionQuality;this._connectionQuality=function(e){switch(e){case qe.EXCELLENT:return ra.Excellent;case qe.GOOD:return ra.Good;case qe.POOR:return ra.Poor;case qe.LOST:return ra.Lost;default:return ra.Unknown}}(e),t!==this._connectionQuality&&this.emit(dr.ConnectionQualityChanged,this._connectionQuality)}setDisconnected(){var e,t;this.activeFuture&&(null===(t=(e=this.activeFuture).reject)||void 0===t||t.call(e,new Error("Participant disconnected")),this.activeFuture=void 0)}setAudioContext(e){this.audioContext=e,this.audioTrackPublications.forEach(t=>Ts(t.track)&&t.track.setAudioContext(e))}addTrackPublication(e){e.on(ur.Muted,()=>{this.emit(dr.TrackMuted,e)}),e.on(ur.Unmuted,()=>{this.emit(dr.TrackUnmuted,e)});const t=e;switch(t.track&&(t.track.sid=e.trackSid),this.trackPublications.set(e.trackSid,e),e.kind){case Ar.Kind.Audio:this.audioTrackPublications.set(e.trackSid,e);break;case Ar.Kind.Video:this.videoTrackPublications.set(e.trackSid,e)}}}class Ra extends Pa{constructor(e,t,n,i,r,s){super(e,t,void 0,void 0,void 0,{loggerName:i.loggerName,loggerContextCb:()=>this.engine.logContext}),this.pendingPublishing=new Set,this.pendingPublishPromises=new Map,this.participantTrackPermissions=[],this.allParticipantsAllowedToSubscribe=!0,this.encryptionType=tt.NONE,this.enabledPublishVideoCodecs=[],this.pendingAcks=new Map,this.pendingResponses=new Map,this.handleReconnecting=()=>{this.reconnectFuture||(this.reconnectFuture=new fs)},this.handleReconnected=()=>{var e,t;null===(t=null===(e=this.reconnectFuture)||void 0===e?void 0:e.resolve)||void 0===t||t.call(e),this.reconnectFuture=void 0,this.updateTrackSubscriptionPermissions()},this.handleClosing=()=>{var e,t,n,i,r,s;this.reconnectFuture&&(this.reconnectFuture.promise.catch(e=>this.log.warn(e.message,this.logContext)),null===(t=null===(e=this.reconnectFuture)||void 0===e?void 0:e.reject)||void 0===t||t.call(e,"Got disconnected during reconnection attempt"),this.reconnectFuture=void 0),this.signalConnectedFuture&&(null===(i=(n=this.signalConnectedFuture).reject)||void 0===i||i.call(n,"Got disconnected without signal connected"),this.signalConnectedFuture=void 0),null===(s=null===(r=this.activeAgentFuture)||void 0===r?void 0:r.reject)||void 0===s||s.call(r,"Got disconnected without active agent present"),this.activeAgentFuture=void 0,this.firstActiveAgent=void 0},this.handleSignalConnected=e=>{var t,n;e.participant&&this.updateInfo(e.participant),this.signalConnectedFuture||(this.signalConnectedFuture=new fs),null===(n=(t=this.signalConnectedFuture).resolve)||void 0===n||n.call(t)},this.handleSignalRequestResponse=e=>{const{requestId:t,reason:n,message:i}=e,r=this.pendingSignalRequests.get(t);r&&(n!==Pn.OK&&r.reject(new kr(i,n)),this.pendingSignalRequests.delete(t))},this.handleDataPacket=e=>{switch(e.value.case){case"rpcResponse":let t=e.value.value,n=null,i=null;"payload"===t.value.case?n=t.value.value:"error"===t.value.case&&(i=Io.fromProto(t.value.value)),this.handleIncomingRpcResponse(t.requestId,n,i);break;case"rpcAck":let r=e.value.value;this.handleIncomingRpcAck(r.requestId)}},this.updateTrackSubscriptionPermissions=()=>{this.log.debug("updating track subscription permissions",Object.assign(Object.assign({},this.logContext),{allParticipantsAllowed:this.allParticipantsAllowedToSubscribe,participantTrackPermissions:this.participantTrackPermissions})),this.engine.client.sendUpdateSubscriptionPermissions(this.allParticipantsAllowedToSubscribe,this.participantTrackPermissions.map(e=>function(e){var t,n,i;if(!e.participantSid&&!e.participantIdentity)throw new Error("Invalid track permission, must provide at least one of participantIdentity and participantSid");return new pn({participantIdentity:null!==(t=e.participantIdentity)&&void 0!==t?t:"",participantSid:null!==(n=e.participantSid)&&void 0!==n?n:"",allTracks:null!==(i=e.allowAll)&&void 0!==i&&i,trackSids:e.allowedTrackSids||[]})}(e)))},this.onTrackUnmuted=e=>{this.onTrackMuted(e,e.isUpstreamPaused)},this.onTrackMuted=(e,t)=>{void 0===t&&(t=!0),e.sid?this.engine.updateMuteStatus(e.sid,t):this.log.error("could not update mute status for unpublished track",Object.assign(Object.assign({},this.logContext),Us(e)))},this.onTrackUpstreamPaused=e=>{this.log.debug("upstream paused",Object.assign(Object.assign({},this.logContext),Us(e))),this.onTrackMuted(e,!0)},this.onTrackUpstreamResumed=e=>{this.log.debug("upstream resumed",Object.assign(Object.assign({},this.logContext),Us(e))),this.onTrackMuted(e,e.isMuted)},this.onTrackFeatureUpdate=e=>{const t=this.audioTrackPublications.get(e.sid);t?this.engine.client.sendUpdateLocalAudioTrack(t.trackSid,t.getTrackFeatures()):this.log.warn("Could not update local audio track settings, missing publication for track ".concat(e.sid),this.logContext)},this.onTrackCpuConstrained=(e,t)=>{this.log.debug("track cpu constrained",Object.assign(Object.assign({},this.logContext),Us(t))),this.emit(dr.LocalTrackCpuConstrained,e,t)},this.handleSubscribedQualityUpdate=e=>zn(this,void 0,void 0,function*(){var t,n,i,r,s;if(!(null===(s=this.roomOptions)||void 0===s?void 0:s.dynacast))return;const o=this.videoTrackPublications.get(e.trackSid);if(!o)return void this.log.warn("received subscribed quality update for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:e.trackSid}));if(!o.videoTrack)return;const a=yield o.videoTrack.setPublishingCodecs(e.subscribedCodecs);try{for(var c,d=!0,l=Wn(a);!(t=(c=yield l.next()).done);d=!0){r=c.value,d=!1;const e=r;Ur(e)&&(this.log.debug("publish ".concat(e," for ").concat(o.videoTrack.sid),Object.assign(Object.assign({},this.logContext),Us(o))),yield this.publishAdditionalCodecForTrack(o.videoTrack,e,o.options))}}catch(e){n={error:e}}finally{try{d||t||!(i=l.return)||(yield i.call(l))}finally{if(n)throw n.error}}}),this.handleLocalTrackUnpublished=e=>{const t=this.trackPublications.get(e.trackSid);t?this.unpublishTrack(t.track):this.log.warn("received unpublished event for unknown track",Object.assign(Object.assign({},this.logContext),{trackSid:e.trackSid}))},this.handleTrackEnded=e=>zn(this,void 0,void 0,function*(){if(e.source===Ar.Source.ScreenShare||e.source===Ar.Source.ScreenShareAudio)this.log.debug("unpublishing local track due to TrackEnded",Object.assign(Object.assign({},this.logContext),Us(e))),this.unpublishTrack(e);else if(e.isUserProvided)yield e.mute();else if(Es(e)||ws(e))try{if(es())try{const t=yield null===navigator||void 0===navigator?void 0:navigator.permissions.query({name:e.source===Ar.Source.Camera?"camera":"microphone"});if(t&&"denied"===t.state)throw this.log.warn("user has revoked access to ".concat(e.source),Object.assign(Object.assign({},this.logContext),Us(e))),t.onchange=()=>{"denied"!==t.state&&(e.isMuted||e.restartTrack(),t.onchange=null)},new Error("GetUserMedia Permission denied")}catch(e){}e.isMuted||(this.log.debug("track ended, attempting to use a different device",Object.assign(Object.assign({},this.logContext),Us(e))),Es(e)?yield e.restartTrack({deviceId:"default"}):yield e.restartTrack())}catch(t){this.log.warn("could not restart track, muting instead",Object.assign(Object.assign({},this.logContext),Us(e))),yield e.mute()}}),this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.trackPublications=new Map,this.engine=n,this.roomOptions=i,this.setupEngine(n),this.activeDeviceMap=new Map([["audioinput","default"],["videoinput","default"],["audiooutput","default"]]),this.pendingSignalRequests=new Map,this.rpcHandlers=r,this.roomOutgoingDataStreamManager=s}get lastCameraError(){return this.cameraError}get lastMicrophoneError(){return this.microphoneError}get isE2EEEnabled(){return this.encryptionType!==tt.NONE}getTrackPublication(e){const t=super.getTrackPublication(e);if(t)return t}getTrackPublicationByName(e){const t=super.getTrackPublicationByName(e);if(t)return t}setupEngine(e){var t;this.engine=e,this.engine.on(lr.RemoteMute,(e,t)=>{const n=this.trackPublications.get(e);n&&n.track&&(t?n.mute():n.unmute())}),(null===(t=this.signalConnectedFuture)||void 0===t?void 0:t.isResolved)&&(this.signalConnectedFuture=void 0),this.engine.on(lr.Connected,this.handleReconnected).on(lr.SignalConnected,this.handleSignalConnected).on(lr.SignalRestarted,this.handleReconnected).on(lr.SignalResumed,this.handleReconnected).on(lr.Restarting,this.handleReconnecting).on(lr.Resuming,this.handleReconnecting).on(lr.LocalTrackUnpublished,this.handleLocalTrackUnpublished).on(lr.SubscribedQualityUpdate,this.handleSubscribedQualityUpdate).on(lr.Closing,this.handleClosing).on(lr.SignalRequestResponse,this.handleSignalRequestResponse).on(lr.DataPacketReceived,this.handleDataPacket)}setMetadata(e){return zn(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({metadata:e})})}setName(e){return zn(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({name:e})})}setAttributes(e){return zn(this,void 0,void 0,function*(){yield this.requestMetadataUpdate({attributes:e})})}requestMetadataUpdate(e){return zn(this,arguments,void 0,function(e){var t=this;let{metadata:n,name:i,attributes:r}=e;return function*(){return new Promise((e,s)=>zn(t,void 0,void 0,function*(){var t,o;try{let a=!1;const c=yield this.engine.client.sendUpdateLocalMetadata(null!==(t=null!=n?n:this.metadata)&&void 0!==t?t:"",null!==(o=null!=i?i:this.name)&&void 0!==o?o:"",r),d=performance.now();for(this.pendingSignalRequests.set(c,{resolve:e,reject:e=>{s(e),a=!0},values:{name:i,metadata:n,attributes:r}});performance.now()-d<5e3&&!a;){if((!i||this.name===i)&&(!n||this.metadata===n)&&(!r||Object.entries(r).every(e=>{let[t,n]=e;return this.attributes[t]===n||""===n&&!this.attributes[t]})))return this.pendingSignalRequests.delete(c),void e();yield Hr(50)}s(new kr("Request to update local metadata timed out","TimeoutError"))}catch(e){e instanceof Error&&s(e)}}))}()})}setCameraEnabled(e,t,n){return this.setTrackEnabled(Ar.Source.Camera,e,t,n)}setMicrophoneEnabled(e,t,n){return this.setTrackEnabled(Ar.Source.Microphone,e,t,n)}setScreenShareEnabled(e,t,n){return this.setTrackEnabled(Ar.Source.ScreenShare,e,t,n)}setE2EEEnabled(e){return zn(this,void 0,void 0,function*(){this.encryptionType=e?tt.GCM:tt.NONE,yield this.republishAllTracks(void 0,!1)})}setTrackEnabled(e,t,n,i){return zn(this,void 0,void 0,function*(){var r,s;this.log.debug("setTrackEnabled",Object.assign(Object.assign({},this.logContext),{source:e,enabled:t})),this.republishPromise&&(yield this.republishPromise);let o=this.getTrackPublication(e);if(t)if(o)yield o.unmute();else{let t;if(this.pendingPublishing.has(e)){const t=yield this.waitForPendingPublicationOfSource(e);return t||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e})),yield null==t?void 0:t.unmute(),t}this.pendingPublishing.add(e);try{switch(e){case Ar.Source.Camera:t=yield this.createTracks({video:null===(r=n)||void 0===r||r});break;case Ar.Source.Microphone:t=yield this.createTracks({audio:null===(s=n)||void 0===s||s});break;case Ar.Source.ScreenShare:t=yield this.createScreenTracks(Object.assign({},n));break;default:throw new fr(e)}}catch(n){throw null==t||t.forEach(e=>{e.stop()}),n instanceof Error&&this.emit(dr.MediaDevicesError,n,Ms(e)),this.pendingPublishing.delete(e),n}for(const i of t){const t=Object.assign(Object.assign({},this.roomOptions.publishDefaults),n);e===Ar.Source.Microphone&&Ts(i)&&t.preConnectBuffer&&(this.log.info("starting preconnect buffer for microphone",Object.assign({},this.logContext)),i.startPreConnectBuffer())}try{const e=[];for(const n of t)this.log.info("publishing track",Object.assign(Object.assign({},this.logContext),Us(n))),e.push(this.publishTrack(n,i));const n=yield Promise.all(e);[o]=n}catch(e){throw null==t||t.forEach(e=>{e.stop()}),e}finally{this.pendingPublishing.delete(e)}}else if(!(null==o?void 0:o.track)&&this.pendingPublishing.has(e)&&(o=yield this.waitForPendingPublicationOfSource(e),o||this.log.info("waiting for pending publication promise timed out",Object.assign(Object.assign({},this.logContext),{source:e}))),o&&o.track)if(e===Ar.Source.ScreenShare){o=yield this.unpublishTrack(o.track);const e=this.getTrackPublication(Ar.Source.ScreenShareAudio);e&&e.track&&this.unpublishTrack(e.track)}else yield o.mute();return o})}enableCameraAndMicrophone(){return zn(this,void 0,void 0,function*(){if(!this.pendingPublishing.has(Ar.Source.Camera)&&!this.pendingPublishing.has(Ar.Source.Microphone)){this.pendingPublishing.add(Ar.Source.Camera),this.pendingPublishing.add(Ar.Source.Microphone);try{const e=yield this.createTracks({audio:!0,video:!0});yield Promise.all(e.map(e=>this.publishTrack(e)))}finally{this.pendingPublishing.delete(Ar.Source.Camera),this.pendingPublishing.delete(Ar.Source.Microphone)}}})}createTracks(e){return zn(this,void 0,void 0,function*(){var t,n;null!=e||(e={});const i=Os(e,null===(t=this.roomOptions)||void 0===t?void 0:t.audioCaptureDefaults,null===(n=this.roomOptions)||void 0===n?void 0:n.videoCaptureDefaults);try{return(yield Ea(i,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext})).map(e=>(Ts(e)&&(this.microphoneError=void 0,e.setAudioContext(this.audioContext),e.source=Ar.Source.Microphone,this.emit(dr.AudioStreamAcquired)),Cs(e)&&(this.cameraError=void 0,e.source=Ar.Source.Camera),e))}catch(t){throw t instanceof Error&&(e.audio&&(this.microphoneError=t),e.video&&(this.cameraError=t)),t}})}createScreenTracks(e){return zn(this,void 0,void 0,function*(){if(void 0===e&&(e={}),void 0===navigator.mediaDevices.getDisplayMedia)throw new gr("getDisplayMedia not supported");void 0!==e.resolution||function(){const e=wr();return"Safari"===(null==e?void 0:e.name)&&e.version.startsWith("17.")||"iOS"===(null==e?void 0:e.os)&&!!(null==e?void 0:e.osVersion)&&os(e.osVersion,"17")>=0}()||(e.resolution=zr.h1080fps30.resolution);const t=function(e){var t,n;let i=null===(t=e.video)||void 0===t||t;return e.resolution&&e.resolution.width>0&&e.resolution.height>0&&(i="boolean"==typeof i?{}:i,i=Xr()?Object.assign(Object.assign({},i),{width:{max:e.resolution.width},height:{max:e.resolution.height},frameRate:e.resolution.frameRate}):Object.assign(Object.assign({},i),{width:{ideal:e.resolution.width},height:{ideal:e.resolution.height},frameRate:e.resolution.frameRate})),{audio:null!==(n=e.audio)&&void 0!==n&&n,video:i,controller:e.controller,selfBrowserSurface:e.selfBrowserSurface,surfaceSwitching:e.surfaceSwitching,systemAudio:e.systemAudio,preferCurrentTab:e.preferCurrentTab}}(e),n=yield navigator.mediaDevices.getDisplayMedia(t),i=n.getVideoTracks();if(0===i.length)throw new fr("no video track found");const r=new Yo(i[0],void 0,!1,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});r.source=Ar.Source.ScreenShare,e.contentHint&&(r.mediaStreamTrack.contentHint=e.contentHint);const s=[r];if(n.getAudioTracks().length>0){this.emit(dr.AudioStreamAcquired);const e=new Uo(n.getAudioTracks()[0],void 0,!1,this.audioContext,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});e.source=Ar.Source.ScreenShareAudio,s.push(e)}return s})}publishTrack(e,t){return zn(this,void 0,void 0,function*(){return this.publishOrRepublishTrack(e,t)})}publishOrRepublishTrack(e,t){return zn(this,arguments,void 0,function(e,t){var n=this;let i=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return function*(){var r,s,o,a;let c,d;if(Es(e)&&e.setAudioContext(n.audioContext),yield null===(r=n.reconnectFuture)||void 0===r?void 0:r.promise,n.republishPromise&&!i&&(yield n.republishPromise),Ss(e)&&n.pendingPublishPromises.has(e)&&(yield n.pendingPublishPromises.get(e)),e instanceof MediaStreamTrack)c=e.getConstraints();else{let t;switch(c=e.constraints,e.source){case Ar.Source.Microphone:t="audioinput";break;case Ar.Source.Camera:t="videoinput"}t&&n.activeDeviceMap.has(t)&&(c=Object.assign(Object.assign({},c),{deviceId:n.activeDeviceMap.get(t)}))}if(e instanceof MediaStreamTrack)switch(e.kind){case"audio":e=new Uo(e,c,!0,n.audioContext,{loggerName:n.roomOptions.loggerName,loggerContextCb:()=>n.logContext});break;case"video":e=new Yo(e,c,!0,{loggerName:n.roomOptions.loggerName,loggerContextCb:()=>n.logContext});break;default:throw new fr("unsupported MediaStreamTrack kind ".concat(e.kind))}else e.updateLoggerOptions({loggerName:n.roomOptions.loggerName,loggerContextCb:()=>n.logContext});if(n.trackPublications.forEach(t=>{t.track&&t.track===e&&(d=t)}),d)return n.log.warn("track has already been published, skipping",Object.assign(Object.assign({},n.logContext),Us(d))),d;const l=Object.assign(Object.assign({},n.roomOptions.publishDefaults),t),u="channelCount"in e.mediaStreamTrack.getSettings()&&2===e.mediaStreamTrack.getSettings().channelCount||2===e.mediaStreamTrack.getConstraints().channelCount,h=null!==(s=l.forceStereo)&&void 0!==s?s:u;h&&(void 0===l.dtx&&n.log.info("Opus DTX will be disabled for stereo tracks by default. Enable them explicitly to make it work.",Object.assign(Object.assign({},n.logContext),Us(e))),void 0===l.red&&n.log.info("Opus RED will be disabled for stereo tracks by default. Enable them explicitly to make it work."),null!==(o=l.dtx)&&void 0!==o||(l.dtx=!1),null!==(a=l.red)&&void 0!==a||(l.red=!1)),!function(){const e=wr(),t="17.2";if(e)return"Safari"!==e.name&&"iOS"!==e.os||!!("iOS"===e.os&&e.osVersion&&os(e.osVersion,t)>=0)||"Safari"===e.name&&os(e.version,t)>=0}()&&n.roomOptions.e2ee&&(n.log.info("End-to-end encryption is set up, simulcast publishing will be disabled on Safari versions and iOS browsers running iOS < v17.2",Object.assign({},n.logContext)),l.simulcast=!1),l.source&&(e.source=l.source);const p=new Promise((t,i)=>zn(n,void 0,void 0,function*(){try{if(this.engine.client.currentState!==Js.CONNECTED){this.log.debug("deferring track publication until signal is connected",Object.assign(Object.assign({},this.logContext),{track:Us(e)}));const n=setTimeout(()=>{i(new yr("publishing rejected as engine not connected within timeout",408))},15e3);yield this.waitUntilEngineConnected(),clearTimeout(n);const r=yield this.publish(e,l,h);t(r)}else try{const n=yield this.publish(e,l,h);t(n)}catch(e){i(e)}}catch(e){i(e)}}));n.pendingPublishPromises.set(e,p);try{return yield p}catch(e){throw e}finally{n.pendingPublishPromises.delete(e)}}()})}waitUntilEngineConnected(){return this.signalConnectedFuture||(this.signalConnectedFuture=new fs),this.signalConnectedFuture.promise}hasPermissionsToPublish(e){if(!this.permissions)return this.log.warn("no permissions present for publishing track",Object.assign(Object.assign({},this.logContext),Us(e))),!1;const{canPublish:t,canPublishSources:n}=this.permissions;return!(!t||0!==n.length&&!n.map(e=>function(e){switch(e){case Be.CAMERA:return Ar.Source.Camera;case Be.MICROPHONE:return Ar.Source.Microphone;case Be.SCREEN_SHARE:return Ar.Source.ScreenShare;case Be.SCREEN_SHARE_AUDIO:return Ar.Source.ScreenShareAudio;default:return Ar.Source.Unknown}}(e)).includes(e.source))||(this.log.warn("insufficient permissions to publish",Object.assign(Object.assign({},this.logContext),Us(e))),!1)}publish(e,t,n){return zn(this,void 0,void 0,function*(){var i,r,s,o,a,c,d,l,u,h;if(!this.hasPermissionsToPublish(e))throw new yr("failed to publish track, insufficient permissions",403);Array.from(this.trackPublications.values()).find(t=>Ss(e)&&t.source===e.source)&&e.source!==Ar.Source.Unknown&&this.log.info("publishing a second track with the same source: ".concat(e.source),Object.assign(Object.assign({},this.logContext),Us(e))),t.stopMicTrackOnMute&&Ts(e)&&(e.stopOnMute=!0),e.source===Ar.Source.ScreenShare&&Yr()&&(t.simulcast=!1),"av1"!==t.videoCodec||function(){if(!("getCapabilities"in RTCRtpSender))return!1;if(Xr()||Yr())return!1;const e=RTCRtpSender.getCapabilities("video");let t=!1;if(e)for(const n of e.codecs)if("video/AV1"===n.mimeType){t=!0;break}return t}()||(t.videoCodec=void 0),"vp9"!==t.videoCodec||function(){if(!("getCapabilities"in RTCRtpSender))return!1;if(Yr())return!1;if(Xr()){const e=wr();if((null==e?void 0:e.version)&&os(e.version,"16")<0)return!1;if("iOS"===(null==e?void 0:e.os)&&(null==e?void 0:e.osVersion)&&os(e.osVersion,"16")<0)return!1}const e=RTCRtpSender.getCapabilities("video");let t=!1;if(e)for(const n of e.codecs)if("video/VP9"===n.mimeType){t=!0;break}return t}()||(t.videoCodec=void 0),void 0===t.videoCodec&&(t.videoCodec=ko),this.enabledPublishVideoCodecs.length>0&&(this.enabledPublishVideoCodecs.some(e=>t.videoCodec===Ls(e.mime))||(t.videoCodec=Ls(this.enabledPublishVideoCodecs[0].mime)));const p=t.videoCodec;e.on(ur.Muted,this.onTrackMuted),e.on(ur.Unmuted,this.onTrackUnmuted),e.on(ur.Ended,this.handleTrackEnded),e.on(ur.UpstreamPaused,this.onTrackUpstreamPaused),e.on(ur.UpstreamResumed,this.onTrackUpstreamResumed),e.on(ur.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate);const m=[],g=!(null===(i=t.dtx)||void 0===i||i),f=e.getSourceTrackSettings();f.autoGainControl&&m.push(Ke.TF_AUTO_GAIN_CONTROL),f.echoCancellation&&m.push(Ke.TF_ECHO_CANCELLATION),f.noiseSuppression&&m.push(Ke.TF_NOISE_SUPPRESSION),f.channelCount&&f.channelCount>1&&m.push(Ke.TF_STEREO),g&&m.push(Ke.TF_NO_DTX),Es(e)&&e.hasPreConnectBuffer&&m.push(Ke.TF_PRECONNECT_BUFFER);const v=new Ft({cid:e.mediaStreamTrack.id,name:t.name,type:Ar.kindToProto(e.kind),muted:e.isMuted,source:Ar.sourceToProto(e.source),disableDtx:g,encryption:this.encryptionType,stereo:n,disableRed:this.isE2EEEnabled||!(null===(r=t.red)||void 0===r||r),stream:null==t?void 0:t.stream,backupCodecPolicy:null==t?void 0:t.backupCodecPolicy,audioFeatures:m});let b;if(e.kind===Ar.Kind.Video){let n={width:0,height:0};try{n=yield e.waitForDimensions()}catch(t){const i=null!==(o=null===(s=this.roomOptions.videoCaptureDefaults)||void 0===s?void 0:s.resolution)&&void 0!==o?o:Vr.h720.resolution;n={width:i.width,height:i.height},this.log.error("could not determine track dimensions, using defaults",Object.assign(Object.assign(Object.assign({},this.logContext),Us(e)),{dims:n}))}v.width=n.width,v.height=n.height,ws(e)&&(Jr(p)&&(e.source===Ar.Source.ScreenShare&&(t.scalabilityMode="L1T3","contentHint"in e.mediaStreamTrack&&(e.mediaStreamTrack.contentHint="motion",this.log.info("forcing contentHint to motion for screenshare with SVC codecs",Object.assign(Object.assign({},this.logContext),Us(e))))),t.scalabilityMode=null!==(a=t.scalabilityMode)&&void 0!==a?a:"L3T3_KEY"),v.simulcastCodecs=[new Ut({codec:p,cid:e.mediaStreamTrack.id})],!0===t.backupCodec&&(t.backupCodec={codec:ko}
1),t.backupCodec&&p!==t.backupCodec.codec&&v.encryption===tt.NONE&&(this.roomOptions.dynacast||(this.roomOptions.dynacast=!0),v.simulcastCodecs.push(new Ut({codec:t.backupCodec.codec,cid:""})))),b=Ho(e.source===Ar.Source.ScreenShare,v.width,v.height,t),v.layers=Zo(v.width,v.height,b,Jr(t.videoCodec))}else e.kind===Ar.Kind.Audio&&(b=[{maxBitrate:null===(c=t.audioPreset)||void 0===c?void 0:c.maxBitrate,priority:null!==(l=null===(d=t.audioPreset)||void 0===d?void 0:d.priority)&&void 0!==l?l:"high",networkPriority:null!==(h=null===(u=t.audioPreset)||void 0===u?void 0:u.priority)&&void 0!==h?h:"high"}]);if(!this.engine||this.engine.isClosed)throw new br("cannot publish track when not connected");const _=()=>zn(this,void 0,void 0,function*(){var n,i,r;if(!this.engine.pcManager)throw new br("pcManager is not ready");if(e.sender=yield this.engine.createSender(e,t,b),this.emit(dr.LocalSenderCreated,e.sender,e),ws(e)&&(null!==(n=t.degradationPreference)&&void 0!==n||(t.degradationPreference=function(e){return e.source===Ar.Source.ScreenShare||e.constraints.height&&vs(e.constraints.height)>=1080?"maintain-resolution":"balanced"}(e)),e.setDegradationPreference(t.degradationPreference)),b)if(Yr()&&e.kind===Ar.Kind.Audio){let t;for(const n of this.engine.pcManager.publisher.getTransceivers())if(n.sender===e.sender){t=n;break}t&&this.engine.pcManager.publisher.setTrackCodecBitrate({transceiver:t,codec:"opus",maxbr:(null===(i=b[0])||void 0===i?void 0:i.maxBitrate)?b[0].maxBitrate/1e3:0})}else e.codec&&Jr(e.codec)&&(null===(r=b[0])||void 0===r?void 0:r.maxBitrate)&&this.engine.pcManager.publisher.setTrackCodecBitrate({cid:v.cid,codec:e.codec,maxbr:b[0].maxBitrate/1e3});yield this.engine.negotiate()});let y;const k=new Promise((t,n)=>zn(this,void 0,void 0,function*(){var i;try{y=yield this.engine.addTrack(v),t(y)}catch(t){e.sender&&(null===(i=this.engine.pcManager)||void 0===i?void 0:i.publisher)&&(this.engine.pcManager.publisher.removeTrack(e.sender),yield this.engine.negotiate().catch(t=>{this.log.error("failed to negotiate after removing track due to failed add track request",Object.assign(Object.assign(Object.assign({},this.logContext),Us(e)),{error:t}))})),n(t)}}));if(this.enabledPublishVideoCodecs.length>0){const e=yield Promise.all([k,_()]);y=e[0]}else{let n;if(y=yield k,y.codecs.forEach(e=>{void 0===n&&(n=e.mimeType)}),n&&e.kind===Ar.Kind.Video){const i=Ls(n);i!==p&&(this.log.debug("falling back to server selected codec",Object.assign(Object.assign(Object.assign({},this.logContext),Us(e)),{codec:i})),t.videoCodec=i,b=Ho(e.source===Ar.Source.ScreenShare,v.width,v.height,t))}yield _()}const S=new wa(e.kind,y,e,{loggerName:this.roomOptions.loggerName,loggerContextCb:()=>this.logContext});if(S.on(ur.CpuConstrained,e=>this.onTrackCpuConstrained(e,S)),S.options=t,e.sid=y.sid,this.log.debug("publishing ".concat(e.kind," with encodings"),Object.assign(Object.assign({},this.logContext),{encodings:b,trackInfo:y})),ws(e)?e.startMonitor(this.engine.client):Es(e)&&e.startMonitor(),this.addTrackPublication(S),this.emit(dr.LocalTrackPublished,S),Es(e)&&y.audioFeatures.includes(Ke.TF_PRECONNECT_BUFFER)){const t=e.getPreConnectBuffer(),n=e.getPreConnectBufferMimeType();if(this.on(dr.LocalTrackSubscribed,t=>{if(t.trackSid===y.sid){if(!e.hasPreConnectBuffer)return void this.log.warn("subscribe event came to late, buffer already closed",this.logContext);this.log.debug("finished recording preconnect buffer",Object.assign(Object.assign({},this.logContext),Us(e))),e.stopPreConnectBuffer()}}),t){const i=new Promise((i,r)=>zn(this,void 0,void 0,function*(){var s,o,a,c,d,l;try{this.log.debug("waiting for agent",Object.assign(Object.assign({},this.logContext),Us(e)));const m=setTimeout(()=>{r(new Error("agent not active within 10 seconds"))},1e4),g=yield this.waitUntilActiveAgentPresent();clearTimeout(m),this.log.debug("sending preconnect buffer",Object.assign(Object.assign({},this.logContext),Us(e)));const v=yield this.streamBytes({name:"preconnect-buffer",mimeType:n,topic:"lk.agent.pre-connect-audio-buffer",destinationIdentities:[g.identity],attributes:{trackId:S.trackSid,sampleRate:String(null!==(d=f.sampleRate)&&void 0!==d?d:"48000"),channels:String(null!==(l=f.channelCount)&&void 0!==l?l:"1")}});try{for(var u,h=!0,p=Wn(t);!(s=(u=yield p.next()).done);h=!0){c=u.value,h=!1;const e=c;yield v.write(e)}}catch(e){o={error:e}}finally{try{h||s||!(a=p.return)||(yield a.call(p))}finally{if(o)throw o.error}}yield v.close(),i()}catch(e){r(e)}}));i.then(()=>{this.log.debug("preconnect buffer sent successfully",Object.assign(Object.assign({},this.logContext),Us(e)))}).catch(t=>{this.log.error("error sending preconnect buffer",Object.assign(Object.assign(Object.assign({},this.logContext),Us(e)),{error:t}))})}}return S})}get isLocal(){return!0}publishAdditionalCodecForTrack(e,t,n){return zn(this,void 0,void 0,function*(){var i;if(this.encryptionType!==tt.NONE)return;let r;if(this.trackPublications.forEach(t=>{t.track&&t.track===e&&(r=t)}),!r)throw new fr("track is not published");if(!ws(e))throw new fr("track is not a video track");const s=Object.assign(Object.assign({},null===(i=this.roomOptions)||void 0===i?void 0:i.publishDefaults),n),o=function(e,t,n){var i,r,s,o;
vendor: 18,569 bytes, line 1
1if(!n.backupCodec||!0===n.backupCodec||n.backupCodec.codec===n.videoCodec)return;t!==n.backupCodec.codec&&Un.warn("requested a different codec than specified as backup",{serverRequested:t,backup:n.backupCodec.codec}),n.videoCodec=t,n.videoEncoding=n.backupCodec.encoding;const a=e.mediaStreamTrack.getSettings(),c=null!==(i=a.width)&&void 0!==i?i:null===(r=e.dimensions)||void 0===r?void 0:r.width,d=null!==(s=a.height)&&void 0!==s?s:null===(o=e.dimensions)||void 0===o?void 0:o.height;return e.source===Ar.Source.ScreenShare&&n.simulcast&&(n.simulcast=!1),Ho(e.source===Ar.Source.ScreenShare,c,d,n)}(e,t,s);if(!o)return void this.log.info("backup codec has been disabled, ignoring request to add additional codec for track",Object.assign(Object.assign({},this.logContext),Us(e)));const a=e.addSimulcastTrack(t,o);if(!a)return;const c=new Ft({cid:a.mediaStreamTrack.id,type:Ar.kindToProto(e.kind),muted:e.isMuted,source:Ar.sourceToProto(e.source),sid:e.sid,simulcastCodecs:[{codec:s.videoCodec,cid:a.mediaStreamTrack.id}]});if(c.layers=Zo(c.width,c.height,o),!this.engine||this.engine.isClosed)throw new br("cannot publish track when not connected");const d=(yield Promise.all([this.engine.addTrack(c),(()=>zn(this,void 0,void 0,function*(){yield this.engine.createSimulcastSender(e,a,s,o),yield this.engine.negotiate()}))()]))[0];this.log.debug("published ".concat(t," for track ").concat(e.sid),Object.assign(Object.assign({},this.logContext),{encodings:o,trackInfo:d}))})}unpublishTrack(e,t){return zn(this,void 0,void 0,function*(){var n,i;if(Ss(e)){const t=this.pendingPublishPromises.get(e);t&&(this.log.info("awaiting publish promise before attempting to unpublish",Object.assign(Object.assign({},this.logContext),Us(e))),yield t)}const r=this.getPublicationForTrack(e),s=r?Us(r):void 0;if(this.log.debug("unpublishing track",Object.assign(Object.assign({},this.logContext),s)),!r||!r.track)return void this.log.warn("track was not unpublished because no publication was found",Object.assign(Object.assign({},this.logContext),s));(e=r.track).off(ur.Muted,this.onTrackMuted),e.off(ur.Unmuted,this.onTrackUnmuted),e.off(ur.Ended,this.handleTrackEnded),e.off(ur.UpstreamPaused,this.onTrackUpstreamPaused),e.off(ur.UpstreamResumed,this.onTrackUpstreamResumed),e.off(ur.AudioTrackFeatureUpdate,this.onTrackFeatureUpdate),void 0===t&&(t=null===(i=null===(n=this.roomOptions)||void 0===n?void 0:n.stopLocalTrackOnUnpublish)||void 0===i||i),t?e.stop():e.stopMonitor();let o=!1;const a=e.sender;if(e.sender=void 0,this.engine.pcManager&&this.engine.pcManager.currentState<Po.FAILED&&a)try{for(const e of this.engine.pcManager.publisher.getTransceivers())e.sender===a&&(e.direction="inactive",o=!0);if(this.engine.removeTrack(a)&&(o=!0),ws(e)){for(const[,t]of e.simulcastCodecs)t.sender&&(this.engine.removeTrack(t.sender)&&(o=!0),t.sender=void 0);e.simulcastCodecs.clear()}}catch(e){this.log.warn("failed to unpublish track",Object.assign(Object.assign(Object.assign({},this.logContext),s),{error:e}))}switch(this.trackPublications.delete(r.trackSid),r.kind){case Ar.Kind.Audio:this.audioTrackPublications.delete(r.trackSid);break;case Ar.Kind.Video:this.videoTrackPublications.delete(r.trackSid)}return this.emit(dr.LocalTrackUnpublished,r),r.setTrack(void 0),o&&(yield this.engine.negotiate()),r})}unpublishTracks(e){return zn(this,void 0,void 0,function*(){return(yield Promise.all(e.map(e=>this.unpublishTrack(e)))).filter(e=>!!e)})}republishAllTracks(e){return zn(this,arguments,void 0,function(e){var t=this;let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return function*(){t.republishPromise&&(yield t.republishPromise),t.republishPromise=new Promise((i,r)=>zn(t,void 0,void 0,function*(){try{const t=[];this.trackPublications.forEach(n=>{n.track&&(e&&(n.options=Object.assign(Object.assign({},n.options),e)),t.push(n))}),yield Promise.all(t.map(e=>zn(this,void 0,void 0,function*(){const t=e.track;yield this.unpublishTrack(t,!1),!n||t.isMuted||t.source===Ar.Source.ScreenShare||t.source===Ar.Source.ScreenShareAudio||!Es(t)&&!ws(t)||t.isUserProvided||(this.log.debug("restarting existing track",Object.assign(Object.assign({},this.logContext),{track:e.trackSid})),yield t.restartTrack()),yield this.publishOrRepublishTrack(t,e.options,!0)}))),i()}catch(e){r(e)}finally{this.republishPromise=void 0}})),yield t.republishPromise}()})}publishData(e){return zn(this,arguments,void 0,function(e){var t=this;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return function*(){const i=n.reliable?ot.RELIABLE:ot.LOSSY,r=n.destinationIdentities,s=n.topic,o=new st({kind:i,value:{case:"user",value:new dt({participantIdentity:t.identity,payload:e,destinationIdentities:r,topic:s})}});yield t.engine.sendDataPacket(o,i)}()})}publishDtmf(e,t){return zn(this,void 0,void 0,function*(){const n=new st({kind:ot.RELIABLE,value:{case:"sipDtmf",value:new lt({code:e,digit:t})}});yield this.engine.sendDataPacket(n,ot.RELIABLE)})}sendChatMessage(e,t){return zn(this,void 0,void 0,function*(){const n={id:crypto.randomUUID(),message:e,timestamp:Date.now(),attachedFiles:null==t?void 0:t.attachments},i=new st({value:{case:"chatMessage",value:new pt(Object.assign(Object.assign({},n),{timestamp:E.parse(n.timestamp)}))}});return yield this.engine.sendDataPacket(i,ot.RELIABLE),this.emit(dr.ChatMessage,n),n})}editChatMessage(e,t){return zn(this,void 0,void 0,function*(){const n=Object.assign(Object.assign({},t),{message:e,editTimestamp:Date.now()}),i=new st({value:{case:"chatMessage",value:new pt(Object.assign(Object.assign({},n),{timestamp:E.parse(n.timestamp),editTimestamp:E.parse(n.editTimestamp)}))}});return yield this.engine.sendDataPacket(i,ot.RELIABLE),this.emit(dr.ChatMessage,n),n})}sendText(e,t){return zn(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.sendText(e,t)})}streamText(e){return zn(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.streamText(e)})}sendFile(e,t){return zn(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.sendFile(e,t)})}streamBytes(e){return zn(this,void 0,void 0,function*(){return this.roomOutgoingDataStreamManager.streamBytes(e)})}performRpc(e){return zn(this,arguments,void 0,function(e){var t=this;let{destinationIdentity:n,method:i,payload:r,responseTimeout:s=1e4}=e;return function*(){return new Promise((e,o)=>zn(t,void 0,void 0,function*(){var t,a,c,d;if(Oo(r)>15360)return void o(Io.builtIn("REQUEST_PAYLOAD_TOO_LARGE"));if((null===(a=null===(t=this.engine.latestJoinResponse)||void 0===t?void 0:t.serverInfo)||void 0===a?void 0:a.version)&&os(null===(d=null===(c=this.engine.latestJoinResponse)||void 0===c?void 0:c.serverInfo)||void 0===d?void 0:d.version,"1.8.0")<0)return void o(Io.builtIn("UNSUPPORTED_SERVER"));const l=crypto.randomUUID();yield this.publishRpcRequest(n,l,i,r,s-2e3);const u=setTimeout(()=>{this.pendingAcks.delete(l),o(Io.builtIn("CONNECTION_TIMEOUT")),this.pendingResponses.delete(l),clearTimeout(h)},2e3);this.pendingAcks.set(l,{resolve:()=>{clearTimeout(u)},participantIdentity:n});const h=setTimeout(()=>{this.pendingResponses.delete(l),o(Io.builtIn("RESPONSE_TIMEOUT"))},s);this.pendingResponses.set(l,{resolve:(t,n)=>{clearTimeout(h),this.pendingAcks.has(l)&&(console.warn("RPC response received before ack",l),this.pendingAcks.delete(l),clearTimeout(u)),n?o(n):e(null!=t?t:"")},participantIdentity:n})}))}()})}registerRpcMethod(e,t){this.rpcHandlers.has(e)&&this.log.warn("you're overriding the RPC handler for method ".concat(e,", in the future this will throw an error")),this.rpcHandlers.set(e,t)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}setTrackSubscriptionPermissions(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.participantTrackPermissions=t,this.allParticipantsAllowedToSubscribe=e,this.engine.client.isDisconnected||this.updateTrackSubscriptionPermissions()}handleIncomingRpcAck(e){const t=this.pendingAcks.get(e);t?(t.resolve(),this.pendingAcks.delete(e)):console.error("Ack received for unexpected RPC request",e)}handleIncomingRpcResponse(e,t,n){const i=this.pendingResponses.get(e);i?(i.resolve(t,n),this.pendingResponses.delete(e)):console.error("Response received for unexpected RPC request",e)}publishRpcRequest(e,t,n,i,r){return zn(this,void 0,void 0,function*(){const s=new st({destinationIdentities:[e],kind:ot.RELIABLE,value:{case:"rpcRequest",value:new mt({id:t,method:n,payload:i,responseTimeoutMs:r,version:1})}});yield this.engine.sendDataPacket(s,ot.RELIABLE)})}handleParticipantDisconnected(e){for(const[t,{participantIdentity:n}]of this.pendingAcks)n===e&&this.pendingAcks.delete(t);for(const[t,{participantIdentity:n,resolve:i}]of this.pendingResponses)n===e&&(i(null,Io.builtIn("RECIPIENT_DISCONNECTED")),this.pendingResponses.delete(t))}setEnabledPublishCodecs(e){this.enabledPublishVideoCodecs=e.filter(e=>"video"===e.mime.split("/")[0].toLowerCase())}updateInfo(e){return!!super.updateInfo(e)&&(e.tracks.forEach(e=>{var t,n;const i=this.trackPublications.get(e.sid);if(i){const r=i.isMuted||null!==(n=null===(t=i.track)||void 0===t?void 0:t.isUpstreamPaused)&&void 0!==n&&n;r!==e.muted&&(this.log.debug("updating server mute state after reconcile",Object.assign(Object.assign(Object.assign({},this.logContext),Us(i)),{mutedOnServer:r})),this.engine.client.sendMuteTrack(e.sid,r))}}),!0)}setActiveAgent(e){var t,n,i,r;this.firstActiveAgent=e,e&&!this.firstActiveAgent&&(this.firstActiveAgent=e),e?null===(n=null===(t=this.activeAgentFuture)||void 0===t?void 0:t.resolve)||void 0===n||n.call(t,e):null===(r=null===(i=this.activeAgentFuture)||void 0===i?void 0:i.reject)||void 0===r||r.call(i,"Agent disconnected"),this.activeAgentFuture=void 0}waitUntilActiveAgentPresent(){return this.firstActiveAgent?Promise.resolve(this.firstActiveAgent):(this.activeAgentFuture||(this.activeAgentFuture=new fs),this.activeAgentFuture.promise)}getPublicationForTrack(e){let t;return this.trackPublications.forEach(n=>{const i=n.track;i&&(e instanceof MediaStreamTrack?(Es(i)||ws(i))&&i.mediaStreamTrack===e&&(t=n):e===i&&(t=n))}),t}waitForPendingPublicationOfSource(e){return zn(this,void 0,void 0,function*(){const t=Date.now();for(;Date.now()<t+1e4;){const t=Array.from(this.pendingPublishPromises.entries()).find(t=>{let[n]=t;return n.source===e});if(t)return t[1];yield Hr(20)}})}}class Ia extends Ca{constructor(e,t,n,i){super(e,t.sid,t.name,i),this.track=void 0,this.allowed=!0,this.requestedDisabled=void 0,this.visible=!0,this.handleEnded=e=>{this.setTrack(void 0),this.emit(ur.Ended,e)},this.handleVisibilityChange=e=>{this.log.debug("adaptivestream video visibility ".concat(this.trackSid,", visible=").concat(e),this.logContext),this.visible=e,this.emitTrackUpdate()},this.handleVideoDimensionsChange=e=>{this.log.debug("adaptivestream video dimensions ".concat(e.width,"x").concat(e.height),this.logContext),this.videoDimensionsAdaptiveStream=e,this.emitTrackUpdate()},this.subscribed=n,this.updateInfo(t)}setSubscribed(e){const t=this.subscriptionStatus,n=this.permissionStatus;this.subscribed=e,e&&(this.allowed=!0);const i=new Jt({trackSids:[this.trackSid],subscribe:this.subscribed,participantTracks:[new bt({participantSid:"",trackSids:[this.trackSid]})]});this.emit(ur.UpdateSubscription,i),this.emitSubscriptionUpdateIfChanged(t),this.emitPermissionUpdateIfChanged(n)}get subscriptionStatus(){return!1===this.subscribed?Ca.SubscriptionStatus.Unsubscribed:super.isSubscribed?Ca.SubscriptionStatus.Subscribed:Ca.SubscriptionStatus.Desired}get permissionStatus(){return this.allowed?Ca.PermissionStatus.Allowed:Ca.PermissionStatus.NotAllowed}get isSubscribed(){return!1!==this.subscribed&&super.isSubscribed}get isDesired(){return!1!==this.subscribed}get isEnabled(){return void 0!==this.requestedDisabled?!this.requestedDisabled:!this.isAdaptiveStream||this.visible}get isLocal(){return!1}setEnabled(e){this.isManualOperationAllowed()&&this.requestedDisabled!==!e&&(this.requestedDisabled=!e,this.emitTrackUpdate())}setVideoQuality(e){this.isManualOperationAllowed()&&this.requestedMaxQuality!==e&&(this.requestedMaxQuality=e,this.requestedVideoDimensions=void 0,this.emitTrackUpdate())}setVideoDimensions(e){var t,n;this.isManualOperationAllowed()&&((null===(t=this.requestedVideoDimensions)||void 0===t?void 0:t.width)===e.width&&(null===(n=this.requestedVideoDimensions)||void 0===n?void 0:n.height)===e.height||(Is(this.track)&&(this.requestedVideoDimensions=e),this.requestedMaxQuality=void 0,this.emitTrackUpdate()))}setVideoFPS(e){this.isManualOperationAllowed()&&Is(this.track)&&this.fps!==e&&(this.fps=e,this.emitTrackUpdate())}get videoQuality(){var e;return null!==(e=this.requestedMaxQuality)&&void 0!==e?e:xr.HIGH}setTrack(e){const t=this.subscriptionStatus,n=this.permissionStatus,i=this.track;i!==e&&(i&&(i.off(ur.VideoDimensionsChanged,this.handleVideoDimensionsChange),i.off(ur.VisibilityChanged,this.handleVisibilityChange),i.off(ur.Ended,this.handleEnded),i.detach(),i.stopMonitor(),this.emit(ur.Unsubscribed,i)),super.setTrack(e),e&&(e.sid=this.trackSid,e.on(ur.VideoDimensionsChanged,this.handleVideoDimensionsChange),e.on(ur.VisibilityChanged,this.handleVisibilityChange),e.on(ur.Ended,this.handleEnded),this.emit(ur.Subscribed,e)),this.emitPermissionUpdateIfChanged(n),this.emitSubscriptionUpdateIfChanged(t))}setAllowed(e){const t=this.subscriptionStatus,n=this.permissionStatus;this.allowed=e,this.emitPermissionUpdateIfChanged(n),this.emitSubscriptionUpdateIfChanged(t)}setSubscriptionError(e){this.emit(ur.SubscriptionFailed,e)}updateInfo(e){super.updateInfo(e);const t=this.metadataMuted;this.metadataMuted=e.muted,this.track?this.track.setMuted(e.muted):t!==e.muted&&this.emit(e.muted?ur.Muted:ur.Unmuted)}emitSubscriptionUpdateIfChanged(e){const t=this.subscriptionStatus;e!==t&&this.emit(ur.SubscriptionStatusChanged,t,e)}emitPermissionUpdateIfChanged(e){this.permissionStatus!==e&&this.emit(ur.SubscriptionPermissionChanged,this.permissionStatus,e)}isManualOperationAllowed(){return!!this.isDesired||(this.log.warn("cannot update track settings when not subscribed",this.logContext),!1)}get isAdaptiveStream(){return Is(this.track)&&this.track.isAdaptiveStream}emitTrackUpdate(){const e=new Qt({trackSids:[this.trackSid],disabled:!this.isEnabled,fps:this.fps});if(this.kind===Ar.Kind.Video){let r=this.requestedVideoDimensions;if(void 0!==this.videoDimensionsAdaptiveStream)if(r)Bs(this.videoDimensionsAdaptiveStream,r)&&(this.log.debug("using adaptive stream dimensions instead of requested",Object.assign(Object.assign({},this.logContext),this.videoDimensionsAdaptiveStream)),r=this.videoDimensionsAdaptiveStream);else if(void 0!==this.requestedMaxQuality&&this.trackInfo){const e=(t=this.trackInfo,n=this.requestedMaxQuality,null===(i=t.layers)||void 0===i?void 0:i.find(e=>e.quality===n));e&&Bs(this.videoDimensionsAdaptiveStream,e)&&(this.log.debug("using adaptive stream dimensions instead of max quality layer",Object.assign(Object.assign({},this.logContext),this.videoDimensionsAdaptiveStream)),r=this.videoDimensionsAdaptiveStream)}else this.log.debug("using adaptive stream dimensions",Object.assign(Object.assign({},this.logContext),this.videoDimensionsAdaptiveStream)),r=this.videoDimensionsAdaptiveStream;r?(e.width=Math.ceil(r.width),e.height=Math.ceil(r.height)):void 0!==this.requestedMaxQuality?(this.log.debug("using requested max quality",Object.assign(Object.assign({},this.logContext),{quality:this.requestedMaxQuality})),e.quality=this.requestedMaxQuality):(this.log.debug("using default quality",Object.assign(Object.assign({},this.logContext),{quality:xr.HIGH})),e.quality=xr.HIGH)}var t,n,i;this.emit(ur.UpdateSettings,e)}}class Oa extends Pa{static fromParticipantInfo(e,t,n){return new Oa(e,t.sid,t.identity,t.name,t.metadata,t.attributes,n,t.kind)}get logContext(){return Object.assign(Object.assign({},super.logContext),{rpID:this.sid,remoteParticipant:this.identity})}constructor(e,t,n,i,r,s,o){super(t,n||"",i,r,s,o,arguments.length>7&&void 0!==arguments[7]?arguments[7]:Ze.STANDARD),this.signalClient=e,this.trackPublications=new Map,this.audioTrackPublications=new Map,this.videoTrackPublications=new Map,this.volumeMap=new Map}addTrackPublication(e){super.addTrackPublication(e),e.on(ur.UpdateSettings,t=>{this.log.debug("send update settings",Object.assign(Object.assign(Object.assign({},this.logContext),Us(e)),{settings:t})),this.signalClient.sendUpdateTrackSettings(t)}),e.on(ur.UpdateSubscription,e=>{e.participantTracks.forEach(e=>{e.participantSid=this.sid}),this.signalClient.sendUpdateSubscription(e)}),e.on(ur.SubscriptionPermissionChanged,t=>{this.emit(dr.TrackSubscriptionPermissionChanged,e,t)}),e.on(ur.SubscriptionStatusChanged,t=>{this.emit(dr.TrackSubscriptionStatusChanged,e,t)}),e.on(ur.Subscribed,t=>{this.emit(dr.TrackSubscribed,t,e)}),e.on(ur.Unsubscribed,t=>{this.emit(dr.TrackUnsubscribed,t,e)}),e.on(ur.SubscriptionFailed,t=>{this.emit(dr.TrackSubscriptionFailed,e.trackSid,t)})}getTrackPublication(e){const t=super.getTrackPublication(e);if(t)return t}getTrackPublicationByName(e){const t=super.getTrackPublicationByName(e);if(t)return t}setVolume(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ar.Source.Microphone;this.volumeMap.set(t,e);const n=this.getTrackPublication(t);n&&n.track&&n.track.setVolume(e)}getVolume(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ar.Source.Microphone;const t=this.getTrackPublication(e);return t&&t.track?t.track.getVolume():this.volumeMap.get(e)}addSubscribedMediaTrack(e,t,n,i,r,s){let o,a=this.getTrackPublicationBySid(t);return a||t.startsWith("TR")||this.trackPublications.forEach(t=>{a||e.kind!==t.kind.toString()||(a=t)}),a?"ended"===e.readyState?(this.log.error("unable to subscribe because MediaStreamTrack is ended. Do not call MediaStreamTrack.stop()",Object.assign(Object.assign({},this.logContext),Us(a))),void this.emit(dr.TrackSubscriptionFailed,t)):(o="video"===e.kind?new ya(e,t,i,r):new _a(e,t,i,this.audioContext,this.audioOutput),o.source=a.source,o.isMuted=a.isMuted,o.setMediaStream(n),o.start(),a.setTrack(o),this.volumeMap.has(a.source)&&Ps(o)&&Ts(o)&&o.setVolume(this.volumeMap.get(a.source)),a):0===s?(this.log.error("could not find published track",Object.assign(Object.assign({},this.logContext),{trackSid:t})),void this.emit(dr.TrackSubscriptionFailed,t)):(void 0===s&&(s=20),void setTimeout(()=>{this.addSubscribedMediaTrack(e,t,n,i,r,s-1)},150))}get hasMetadata(){return!!this.participantInfo}getTrackPublicationBySid(e){return this.trackPublications.get(e)}updateInfo(e){if(!super.updateInfo(e))return!1;const t=new Map,n=new Map;
1return e.tracks.forEach(e=>{var i,r;let s=this.getTrackPublicationBySid(e.sid);if(s)s.updateInfo(e);else{const t=Ar.kindFromProto(e.type);if(!t)return;s=new Ia(t,e,null===(i=this.signalClient.connectOptions)||void 0===i?void 0:i.autoSubscribe,{loggerContextCb:()=>this.logContext,loggerName:null===(r=this.loggerOptions)||void 0===r?void 0:r.loggerName}),s.updateInfo(e),n.set(e.sid,s);const o=Array.from(this.trackPublications.values()).find(e=>e.source===(null==s?void 0:s.source));o&&s.source!==Ar.Source.Unknown&&this.log.debug("received a second track publication for ".concat(this.identity," with the same source: ").concat(s.source),Object.assign(Object.assign({},this.logContext),{oldTrack:Us(o),newTrack:Us(s)})),this.addTrackPublication(s)}t.set(e.sid,s)}),this.trackPublications.forEach(e=>{t.has(e.trackSid)||(this.log.trace("detected removed track on remote participant, unpublishing",Object.assign(Object.assign({},this.logContext),Us(e))),this.unpublishTrack(e.trackSid,!0))}),n.forEach(e=>{this.emit(dr.TrackPublished,e)}),!0}unpublishTrack(e,t){const n=this.trackPublications.get(e);if(!n)return;const{track:i}=n;switch(i&&(i.stop(),n.setTrack(void 0)),this.trackPublications.delete(e),n.kind){case Ar.Kind.Audio:this.audioTrackPublications.delete(e);break;case Ar.Kind.Video:this.videoTrackPublications.delete(e)}t&&this.emit(dr.TrackUnpublished,n)}setAudioOutput(e){return zn(this,void 0,void 0,function*(){this.audioOutput=e;const t=[];this.audioTrackPublications.forEach(n=>{var i;Ts(n.track)&&Ps(n.track)&&t.push(n.track.setSinkId(null!==(i=e.deviceId)&&void 0!==i?i:"default"))}),yield Promise.all(t)})}emit(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return this.log.trace("participant event",Object.assign(Object.assign({},this.logContext),{event:e,args:n})),super.emit(e,...n)}}!function(e){e.Disconnected="disconnected",e.Connecting="connecting",e.Connected="connected",e.Reconnecting="reconnecting",e.SignalReconnecting="signalReconnecting"}(sa||(sa={}));class xa extends Kn.EventEmitter{constructor(e){var t,n,i,r;if(super(),t=this,this.state=sa.Disconnected,this.activeSpeakers=[],this.isE2EEEnabled=!1,this.audioEnabled=!0,this.isVideoPlaybackBlocked=!1,this.log=Un,this.bufferedEvents=[],this.isResuming=!1,this.rpcHandlers=new Map,this.connect=(e,t,n)=>zn(this,void 0,void 0,function*(){var i;if("undefined"==typeof RTCPeerConnection||!Gr()&&!Kr())throw ts()?Error("WebRTC isn't detected, have you called registerGlobals?"):Error("LiveKit doesn't seem to be supported on this browser. Try to update your browser and make sure no browser extensions are disabling webRTC.");const r=yield this.disconnectLock.lock();if(this.state===sa.Connected)return this.log.info("already connected to room ".concat(this.name),this.logContext),r(),Promise.resolve();if(this.connectFuture)return r(),this.connectFuture.promise;this.setAndEmitConnectionState(sa.Connecting),(null===(i=this.regionUrlProvider)||void 0===i?void 0:i.getServerUrl().toString())!==e&&(this.regionUrl=void 0,this.regionUrlProvider=void 0),ns(new URL(e))&&(void 0===this.regionUrlProvider?this.regionUrlProvider=new da(e,t):this.regionUrlProvider.updateToken(t),this.regionUrlProvider.fetchRegionSettings().then(e=>{var t;null===(t=this.regionUrlProvider)||void 0===t||t.setServerReportedRegions(e)}).catch(e=>{this.log.warn("could not fetch region settings",Object.assign(Object.assign({},this.logContext),{error:e}))}));const s=(i,o,a)=>zn(this,void 0,void 0,function*(){var c,d;this.abortController&&this.abortController.abort();const l=new AbortController;this.abortController=l,null==r||r();try{yield this.attemptConnection(null!=a?a:e,t,n,l),this.abortController=void 0,i()}catch(e){if(this.regionUrlProvider&&e instanceof mr&&e.reason!==rr.Cancelled&&e.reason!==rr.NotAllowed){let t=null;try{t=yield this.regionUrlProvider.getNextBestRegionUrl(null===(c=this.abortController)||void 0===c?void 0:c.signal)}catch(e){if(e instanceof mr&&(401===e.status||e.reason===rr.Cancelled))return this.handleDisconnect(this.options.stopLocalTrackOnUnpublish),void o(e)}t&&!(null===(d=this.abortController)||void 0===d?void 0:d.signal.aborted)?(this.log.info("Initial connection failed with ConnectionError: ".concat(e.message,". Retrying with another region: ").concat(t),this.logContext),this.recreateEngine(),yield s(i,o,t)):(this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,_s(e)),o(e))}else{let t=We.UNKNOWN_REASON;e instanceof mr&&(t=_s(e)),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,t),o(e)}}}),o=this.regionUrl;return this.regionUrl=void 0,this.connectFuture=new fs((e,t)=>{s(e,t,o)},()=>{this.clearConnectionFutures()}),this.connectFuture.promise}),this.connectSignal=(e,t,n,i,r,s)=>zn(this,void 0,void 0,function*(){var o,a,c;const d=yield n.join(e,t,{autoSubscribe:i.autoSubscribe,adaptiveStream:"object"==typeof r.adaptiveStream||r.adaptiveStream,maxRetries:i.maxRetries,e2eeEnabled:!!this.e2eeManager,websocketTimeout:i.websocketTimeout},s.signal);let l=d.serverInfo;if(l||(l={version:d.serverVersion,region:d.serverRegion}),this.serverInfo=l,this.log.debug("connected to Livekit Server ".concat(Object.entries(l).map(e=>{let[t,n]=e;return"".concat(t,": ").concat(n)}).join(", ")),{room:null===(o=d.room)||void 0===o?void 0:o.name,roomSid:null===(a=d.room)||void 0===a?void 0:a.sid,identity:null===(c=d.participant)||void 0===c?void 0:c.identity}),!l.version)throw new vr("unknown server version");return"0.15.1"===l.version&&this.options.dynacast&&(this.log.debug("disabling dynacast due to server version",this.logContext),r.dynacast=!1),d}),this.applyJoinResponse=e=>{const t=e.participant;if(this.localParticipant.sid=t.sid,this.localParticipant.identity=t.identity,this.localParticipant.setEnabledPublishCodecs(e.enabledPublishCodecs),this.options.e2ee&&this.e2eeManager)try{this.e2eeManager.setSifTrailer(e.sifTrailer)}catch(e){this.log.error(e instanceof Error?e.message:"Could not set SifTrailer",Object.assign(Object.assign({},this.logContext),{error:e}))}this.handleParticipantUpdates([t,...e.otherParticipants]),e.room&&this.handleRoomUpdate(e.room)},this.attemptConnection=(e,t,n,i)=>zn(this,void 0,void 0,function*(){var r,s;this.state===sa.Reconnecting||this.isResuming||(null===(r=this.engine)||void 0===r?void 0:r.pendingReconnect)?(this.log.info("Reconnection attempt replaced by new connection attempt",this.logContext),this.recreateEngine()):this.maybeCreateEngine(),(null===(s=this.regionUrlProvider)||void 0===s?void 0:s.isCloud())&&this.engine.setRegionUrlProvider(this.regionUrlProvider),this.acquireAudioContext(),this.connOptions=Object.assign(Object.assign({},Eo),n),this.connOptions.rtcConfig&&(this.engine.rtcConfig=this.connOptions.rtcConfig),this.connOptions.peerConnectionTimeout&&(this.engine.peerConnectionTimeout=this.connOptions.peerConnectionTimeout);try{const n=yield this.connectSignal(e,t,this.engine,this.connOptions,this.options,i);this.applyJoinResponse(n),this.setupLocalParticipantEvents(),this.emit
1(cr.SignalConnected)}catch(e){yield this.engine.close(),this.recreateEngine();const t=new mr("could not establish signal connection",rr.ServerUnreachable);throw e instanceof Error&&(t.message="".concat(t.message,": ").concat(e.message)),e instanceof mr&&(t.reason=e.reason,t.status=e.status),this.log.debug("error trying to establish signal connection",Object.assign(Object.assign({},this.logContext),{error:e})),t}if(i.signal.aborted)throw yield this.engine.close(),this.recreateEngine(),new mr("Connection attempt aborted",rr.Cancelled);try{yield this.engine.waitForPCInitialConnection(this.connOptions.peerConnectionTimeout,i)}catch(e){throw yield this.engine.close(),this.recreateEngine(),e}es()&&this.options.disconnectOnPageLeave&&(window.addEventListener("pagehide",this.onPageLeave),window.addEventListener("beforeunload",this.onPageLeave)),es()&&document.addEventListener("freeze",this.onPageLeave),this.setAndEmitConnectionState(sa.Connected),this.emit(cr.Connected),this.registerConnectionReconcile()}),this.disconnect=function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return zn(t,[...n],void 0,function(){var e=this;let t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return function*(){var n,i,r,s;const o=yield e.disconnectLock.lock();try{if(e.state===sa.Disconnected)return void e.log.debug("already disconnected",e.logContext);e.log.info("disconnect from room",Object.assign({},e.logContext)),(e.state===sa.Connecting||e.state===sa.Reconnecting||e.isResuming)&&(e.log.warn("abort connection attempt",e.logContext),null===(n=e.abortController)||void 0===n||n.abort(),null===(r=null===(i=e.connectFuture)||void 0===i?void 0:i.reject)||void 0===r||r.call(i,new mr("Client initiated disconnect",rr.Cancelled)),e.connectFuture=void 0),(null===(s=e.engine)||void 0===s?void 0:s.client.isDisconnected)||(yield e.engine.client.sendLeave()),e.engine&&(yield e.engine.close()),e.handleDisconnect(t,We.CLIENT_INITIATED),e.engine=void 0}finally{o()}}()})},this.onPageLeave=()=>zn(this,void 0,void 0,function*(){this.log.info("Page leave detected, disconnecting",this.logContext),yield this.disconnect()}),this.startAudio=()=>zn(this,void 0,void 0,function*(){const e=[],t=wr();if(t&&"iOS"===t.os){const t="livekit-dummy-audio-el";let n=document.getElementById(t);if(!n){n=document.createElement("audio"),n.id=t,n.autoplay=!0,n.hidden=!0;const e=gs();e.enabled=!0;const i=new MediaStream([e]);n.srcObject=i,document.addEventListener("visibilitychange",()=>{n&&(n.srcObject=document.hidden?null:i,document.hidden||(this.log.debug("page visible again, triggering startAudio to resume playback and update playback status",this.logContext),this.startAudio()))}),document.body.append(n),this.once(cr.Disconnected,()=>{null==n||n.remove(),n=null})}e.push(n)}
vendor: 33,496 bytes, line 1
1this.remoteParticipants.forEach(t=>{t.audioTrackPublications.forEach(t=>{t.track&&t.track.attachedElements.forEach(t=>{e.push(t)})})});try{yield Promise.all([this.acquireAudioContext(),...e.map(e=>(e.muted=!1,e.play()))]),this.handleAudioPlaybackStarted()}catch(e){throw this.handleAudioPlaybackFailed(e),e}}),this.startVideo=()=>zn(this,void 0,void 0,function*(){const e=[];for(const t of this.remoteParticipants.values())t.videoTrackPublications.forEach(t=>{var n;null===(n=t.track)||void 0===n||n.attachedElements.forEach(t=>{e.includes(t)||e.push(t)})});yield Promise.all(e.map(e=>e.play())).then(()=>{this.handleVideoPlaybackStarted()}).catch(e=>{"NotAllowedError"===e.name?this.handleVideoPlaybackFailed():this.log.warn("Resuming video playback failed, make sure you call `startVideo` directly in a user gesture handler",this.logContext)})}),this.handleRestarting=()=>{this.clearConnectionReconcile(),this.isResuming=!1;for(const e of this.remoteParticipants.values())this.handleParticipantDisconnected(e.identity,e);this.setAndEmitConnectionState(sa.Reconnecting)&&this.emit(cr.Reconnecting)},this.handleSignalRestarted=e=>zn(this,void 0,void 0,function*(){this.log.debug("signal reconnected to server, region ".concat(e.serverRegion),Object.assign(Object.assign({},this.logContext),{region:e.serverRegion})),this.bufferedEvents=[],this.applyJoinResponse(e);try{yield this.localParticipant.republishAllTracks(void 0,!0)}catch(e){this.log.error("error trying to re-publish tracks after reconnection",Object.assign(Object.assign({},this.logContext),{error:e}))}try{yield this.engine.waitForRestarted(),this.log.debug("fully reconnected to server",Object.assign(Object.assign({},this.logContext),{region:e.serverRegion}))}catch(e){return}this.setAndEmitConnectionState(sa.Connected),this.emit(cr.Reconnected),this.registerConnectionReconcile(),this.emitBufferedEvents()}),this.handleParticipantUpdates=e=>{e.forEach(e=>{var t;if(e.identity===this.localParticipant.identity)return void this.localParticipant.updateInfo(e);""===e.identity&&(e.identity=null!==(t=this.sidToIdentity.get(e.sid))&&void 0!==t?t:"");let n=this.remoteParticipants.get(e.identity);e.state===$e.DISCONNECTED?this.handleParticipantDisconnected(e.identity,n):n=this.getOrCreateParticipant(e.identity,e)})},this.handleActiveSpeakersUpdate=e=>{const t=[],n={};e.forEach(e=>{if(n[e.sid]=!0,e.sid===this.localParticipant.sid)this.localParticipant.audioLevel=e.level,this.localParticipant.setIsSpeaking(!0),t.push(this.localParticipant);else{const n=this.getRemoteParticipantBySid(e.sid);n&&(n.audioLevel=e.level,n.setIsSpeaking(!0),t.push(n))}}),n[this.localParticipant.sid]||(this.localParticipant.audioLevel=0,this.localParticipant.setIsSpeaking(!1)),this.remoteParticipants.forEach(e=>{n[e.sid]||(e.audioLevel=0,e.setIsSpeaking(!1))}),this.activeSpeakers=t,this.emitWhenConnected(cr.ActiveSpeakersChanged,t)},this.handleSpeakersChanged=e=>{const t=new Map;this.activeSpeakers.forEach(e=>{const n=this.remoteParticipants.get(e.identity);n&&n.sid!==e.sid||t.set(e.sid,e)}),e.forEach(e=>{let n=this.getRemoteParticipantBySid(e.sid);e.sid===this.localParticipant.sid&&(n=this.localParticipant),n&&(n.audioLevel=e.level,n.setIsSpeaking(e.active),e.active?t.set(e.sid,n):t.delete(e.sid))});const n=Array.from(t.values());n.sort((e,t)=>t.audioLevel-e.audioLevel),this.activeSpeakers=n,this.emitWhenConnected(cr.ActiveSpeakersChanged,n)},this.handleStreamStateUpdate=e=>{e.streamStates.forEach(e=>{const t=this.getRemoteParticipantBySid(e.participantSid);if(!t)return;const n=t.getTrackPublicationBySid(e.trackSid);if(!n||!n.track)return;const i=Ar.streamStateFromProto(e.state);n.track.setStreamState(i),i!==n.track.streamState&&(t.emit(dr.TrackStreamStateChanged,n,n.track.streamState),this.emitWhenConnected(cr.TrackStreamStateChanged,n,n.track.streamState,t))})},this.handleSubscriptionPermissionUpdate=e=>{const t=this.getRemoteParticipantBySid(e.participantSid);if(!t)return;const n=t.getTrackPublicationBySid(e.trackSid);n&&n.setAllowed(e.allowed)},this.handleSubscriptionError=e=>{const t=Array.from(this.remoteParticipants.values()).find(t=>t.trackPublications.has(e.trackSid));if(!t)return;const n=t.getTrackPublicationBySid(e.trackSid);n&&n.setSubscriptionError(e.err)},this.handleDataPacket=e=>{const t=this.remoteParticipants.get(e.participantIdentity);if("user"===e.value.case)this.handleUserPacket(t,e.value.value,e.kind);else if("transcription"===e.value.case)this.handleTranscription(t,e.value.value);else if("sipDtmf"===e.value.case)this.handleSipDtmf(t,e.value.value);else if("chatMessage"===e.value.case)this.handleChatMessage(t,e.value.value);else if("metrics"===e.value.case)this.handleMetrics(e.value.value,t);else if("streamHeader"===e.value.case||"streamChunk"===e.value.case||"streamTrailer"===e.value.case)this.handleDataStream(e);else if("rpcRequest"===e.value.case){const t=e.value.value;this.handleIncomingRpcRequest(e.participantIdentity,t.id,t.method,t.payload,t.responseTimeoutMs,t.version)}},this.handleUserPacket=(e,t,n)=>{this.emit(cr.DataReceived,t.payload,e,n,t.topic),null==e||e.emit(dr.DataReceived,t.payload,n)},this.handleSipDtmf=(e,t)=>{this.emit(cr.SipDTMFReceived,t,e),null==e||e.emit(dr.SipDTMFReceived,t)},this.handleTranscription=(e,t)=>{const n=t.transcribedParticipantIdentity===this.localParticipant.identity?this.localParticipant:this.getParticipantByIdentity(t.transcribedParticipantIdentity),i=null==n?void 0:n.trackPublications.get(t.trackId),r=function(e,t){return e.segments.map(e=>{let{id:n,text:i,language:r,startTime:s,endTime:o,final:a}=e;var c;const d=null!==(c=t.get(n))&&void 0!==c?c:Date.now(),l=Date.now();return a?t.delete(n):t.set(n,d),{id:n,text:i,startTime:Number.parseInt(s.toString()),endTime:Number.parseInt(o.toString()),final:a,language:r,firstReceivedTime:d,lastReceivedTime:l}})}(t,this.transcriptionReceivedTimes);null==i||i.emit(ur.TranscriptionReceived,r),null==n||n.emit(dr.TranscriptionReceived,r,i),this.emit(cr.TranscriptionReceived,r,n,i)},this.handleChatMessage=(e,t)=>{const n=function(e){const{id:t,timestamp:n,message:i,editTimestamp:r}=e;return{id:t,timestamp:Number.parseInt(n.toString()),editTimestamp:r?Number.parseInt(r.toString()):void 0,message:i}}(t);this.emit(cr.ChatMessage,n,e)},this.handleMetrics=(e,t)=>{this.emit(cr.MetricsReceived,e,t)},this.handleDataStream=e=>{this.incomingDataStreamManager.handleDataStreamPacket(e)},this.bufferedSegments=new Map,this.handleAudioPlaybackStarted=()=>{this.canPlaybackAudio||(this.audioEnabled=!0,this.emit(cr.AudioPlaybackStatusChanged,!0))},this.handleAudioPlaybackFailed=e=>{this.log.warn("could not playback audio",Object.assign(Object.assign({},this.logContext),{error:e})),this.canPlaybackAudio&&(this.audioEnabled=!1,this.emit(cr.AudioPlaybackStatusChanged,!1))},this.handleVideoPlaybackStarted=()=>{this.isVideoPlaybackBlocked&&(this.isVideoPlaybackBlocked=!1,this.emit(cr.VideoPlaybackStatusChanged,!0))},this.handleVideoPlaybackFailed=()=>{this.isVideoPlaybackBlocked||(this.isVideoPlaybackBlocked=!0,this.emit(cr.VideoPlaybackStatusChanged,!1))},this.handleDeviceChange=()=>zn(this,void 0,void 0,function*(){var e;"iOS"!==(null===(e=wr())||void 0===e?void 0:e.os)&&(yield this.selectDefaultDevices()),this.emit(cr.MediaDevicesChanged)}),this.handleRoomUpdate=e=>{const t=this.roomInfo;this.roomInfo=e,t&&t.metadata!==e.metadata&&this.emitWhenConnected(cr.RoomMetadataChanged,e.metadata),(null==t?void 0:t.activeRecording)!==e.activeRecording&&this.emitWhenConnected(cr.RecordingStatusChanged,e.activeRecording)},this.handleConnectionQualityUpdate=e=>{e.updates.forEach(e=>{if(e.participantSid===this.localParticipant.sid)return void this.localParticipant.setConnectionQuality(e.quality);const t=this.getRemoteParticipantBySid(e.participantSid);t&&t.setConnectionQuality(e.quality)})},this.onLocalParticipantMetadataChanged=e=>{this.emit(cr.ParticipantMetadataChanged,e,this.localParticipant)},this.onLocalParticipantNameChanged=e=>{this.emit(cr.ParticipantNameChanged,e,this.localParticipant)},this.onLocalAttributesChanged=e=>{this.emit(cr.ParticipantAttributesChanged,e,this.localParticipant)},this.onLocalTrackMuted=e=>{this.emit(cr.TrackMuted,e,this.localParticipant)},this.onLocalTrackUnmuted=e=>{this.emit(cr.TrackUnmuted,e,this.localParticipant)},this.onTrackProcessorUpdate=e=>{var t;null===(t=null==e?void 0:e.onPublish)||void 0===t||t.call(e,this)},this.onLocalTrackPublished=e=>zn(this,void 0,void 0,function*(){var t,n,i,r,s,o;null===(t=e.track)||void 0===t||t.on(ur.TrackProcessorUpdate,this.onTrackProcessorUpdate),null===(n=e.track)||void 0===n||n.on(ur.Restarted,this.onLocalTrackRestarted),null===(s=null===(r=null===(i=e.track)||void 0===i?void 0:i.getProcessor())||void 0===r?void 0:r.onPublish)||void 0===s||s.call(r,this),this.emit(cr.LocalTrackPublished,e,this.localParticipant),Es(e.track)&&(yield e.track.checkForSilence())&&this.emit(cr.LocalAudioSilenceDetected,e);const a=yield null===(o=e.track)||void 0===o?void 0:o.getDeviceId(!1),c=Ms(e.source);c&&a&&a!==this.localParticipant.activeDeviceMap.get(c)&&(this.localParticipant.activeDeviceMap.set(c,a),this.emit(cr.ActiveDeviceChanged,c,a))}),this.onLocalTrackUnpublished=e=>{var t,n;null===(t=e.track)||void 0===t||t.off(ur.TrackProcessorUpdate,this.onTrackProcessorUpdate),null===(n=e.track)||void 0===n||n.off(ur.Restarted,this.onLocalTrackRestarted),this.emit(cr.LocalTrackUnpublished,e,this.localParticipant)},this.onLocalTrackRestarted=e=>zn(this,void 0,void 0,function*(){const t=yield e.getDeviceId(!1),n=Ms(e.source);n&&t&&t!==this.localParticipant.activeDeviceMap.get(n)&&(this.log.debug("local track restarted, setting ".concat(n," ").concat(t," active"),this.logContext),this.localParticipant.activeDeviceMap.set(n,t),this.emit(cr.ActiveDeviceChanged,n,t))}),this.onLocalConnectionQualityChanged=e=>{this.emit(cr.ConnectionQualityChanged,e,this.localParticipant)},this.onMediaDevicesError=(e,t)=>{this.emit(cr.MediaDevicesError,e,t)},this.onLocalParticipantPermissionsChanged=e=>{this.emit(cr.ParticipantPermissionsChanged,e,this.localParticipant)},this.onLocalChatMessageSent=e=>{this.emit(cr.ChatMessage,e,this.localParticipant)},this.setMaxListeners(100),this.remoteParticipants=new Map,this.sidToIdentity=new Map,this.options=Object.assign(Object.assign({},wo),e),this.log=Fn(null!==(n=this.options.loggerName)&&void 0!==n?n:Mn.Room),this.transcriptionReceivedTimes=new Map,this.options.audioCaptureDefaults=Object.assign(Object.assign({},To),null==e?void 0:e.audioCaptureDefaults),this.options.videoCaptureDefaults=Object.assign(Object.assign({},Co),null==e?void 0:e.videoCaptureDefaults),this.options.publishDefaults=Object.assign(Object.assign({},So),null==e?void 0:e.publishDefaults),this.maybeCreateEngine(),this.incomingDataStreamManager=new pa,this.outgoingDataStreamManager=new va(this.engine,this.log),this.disconnectLock=new o,this.localParticipant=new Ra("","",this.engine,this.options,this.rpcHandlers,this.outgoingDataStreamManager),this.options.videoCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("videoinput",vs(this.options.videoCaptureDefaults.deviceId)),this.options.audioCaptureDefaults.deviceId&&this.localParticipant.activeDeviceMap.set("audioinput",vs(this.options.audioCaptureDefaults.deviceId)),(null===(i=this.options.audioOutput)||void 0===i?void 0:i.deviceId)&&this.switchActiveDevice("audiooutput",vs(this.options.audioOutput.deviceId)).catch(e=>this.log.warn("Could not set audio output: ".concat(e.message),this.logContext)),this.options.e2ee&&this.setupE2EE(),es()){const e=new AbortController;null===(r=navigator.mediaDevices)||void 0===r||r.addEventListener("devicechange",this.handleDeviceChange,{signal:e.signal}),xa.cleanupRegistry&&xa.cleanupRegistry.register(this,()=>{e.abort()})}}registerTextStreamHandler(e,t){return this.incomingDataStreamManager.registerTextStreamHandler(e,t)}unregisterTextStreamHandler(e){return this.incomingDataStreamManager.unregisterTextStreamHandler(e)}registerByteStreamHandler(e,t){return this.incomingDataStreamManager.registerByteStreamHandler(e,t)}unregisterByteStreamHandler(e){return this.incomingDataStreamManager.unregisterByteStreamHandler(e)}registerRpcMethod(e,t){if(this.rpcHandlers.has(e))throw Error("RPC handler already registered for method ".concat(e,", unregisterRpcMethod before trying to register again"));this.rpcHandlers.set(e,t)}unregisterRpcMethod(e){this.rpcHandlers.delete(e)}setE2EEEnabled(e){return zn(this,void 0,void 0,function*(){if(!this.e2eeManager)throw Error("e2ee not configured, please set e2ee settings within the room options");yield Promise.all([this.localParticipant.setE2EEEnabled(e)]),""!==this.localParticipant.identity&&this.e2eeManager.setParticipantCryptorEnabled(e,this.localParticipant.identity)})}setupE2EE(){var e;this.options.e2ee&&("e2eeManager"in this.options.e2ee?this.e2eeManager=this.options.e2ee.e2eeManager:this.e2eeManager=new Vs(this.options.e2ee),this.e2eeManager.on(nr.ParticipantEncryptionStatusChanged,(e,t)=>{(function(e){return e.isLocal})(t)&&(this.isE2EEEnabled=e),this.emit(cr.ParticipantEncryptionStatusChanged,e,t)}),this.e2eeManager.on(nr.EncryptionError,e=>this.emit(cr.EncryptionError,e)),null===(e=this.e2eeManager)||void 0===e||e.setup(this))}get logContext(){var e;return{room:this.name,roomID:null===(e=this.roomInfo)||void 0===e?void 0:e.sid,participant:this.localParticipant.identity,pID:this.localParticipant.sid}}get isRecording(){var e,t;return null!==(t=null===(e=this.roomInfo)||void 0===e?void 0:e.activeRecording)&&void 0!==t&&t}getSid(){return zn(this,void 0,void 0,function*(){return this.state===sa.Disconnected?"":this.roomInfo&&""!==this.roomInfo.sid?this.roomInfo.sid:new Promise((e,t)=>{const n=t=>{""!==t.sid&&(this.engine.off(lr.RoomUpdate,n),e(t.sid))};this.engine.on(lr.RoomUpdate,n),this.once(cr.Disconnected,()=>{this.engine.off(lr.RoomUpdate,n),t("Room disconnected before room server id was available")})})})}get name(){var e,t;return null!==(t=null===(e=this.roomInfo)||void 0===e?void 0:e.name)&&void 0!==t?t:""}get metadata(){var e;return null===(e=this.roomInfo)||void 0===e?void 0:e.metadata}get numParticipants(){var e,t;return null!==(t=null===(e=this.roomInfo)||void 0===e?void 0:e.numParticipants)&&void 0!==t?t:0}get numPublishers(){var e,t;return null!==(t=null===(e=this.roomInfo)||void 0===e?void 0:e.numPublishers)&&void 0!==t?t:0}maybeCreateEngine(){this.engine&&!this.engine.isClosed||(this.engine=new aa(this.options),this.engine.on(lr.ParticipantUpdate,this.handleParticipantUpdates).on(lr.RoomUpdate,this.handleRoomUpdate).on(lr.SpeakersChanged,this.handleSpeakersChanged).on(lr.StreamStateChanged,this.handleStreamStateUpdate).on(lr.ConnectionQualityUpdate,this.handleConnectionQualityUpdate).on(lr.SubscriptionError,this.handleSubscriptionError).on(lr.SubscriptionPermissionUpdate,this.handleSubscriptionPermissionUpdate).on(lr.MediaTrackAdded,(e,t,n)=>{this.onTrackAdded(e,t,n)}).on(lr.Disconnected,e=>{this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,e)}).on(lr.ActiveSpeakersUpdate,this.handleActiveSpeakersUpdate).on(lr.DataPacketReceived,this.handleDataPacket).on(lr.Resuming,()=>{this.clearConnectionReconcile(),this.isResuming=!0,this.log.info("Resuming signal connection",this.logContext),this.setAndEmitConnectionState(sa.SignalReconnecting)&&this.emit(cr.SignalReconnecting)}).on(lr.Resumed,()=>{this.registerConnectionReconcile(),this.isResuming=!1,this.log.info("Resumed signal connection",this.logContext),this.updateSubscriptions(),this.emitBufferedEvents(),this.setAndEmitConnectionState(sa.Connected)&&this.emit(cr.Reconnected)}).on(lr.SignalResumed,()=>{this.bufferedEvents=[],(this.state===sa.Reconnecting||this.isResuming)&&this.sendSyncState()}).on(lr.Restarting,this.handleRestarting).on(lr.SignalRestarted,this.handleSignalRestarted).on(lr.Offline,()=>{this.setAndEmitConnectionState(sa.Reconnecting)&&this.emit(cr.Reconnecting)}).on(lr.DCBufferStatusChanged,(e,t)=>{this.emit(cr.DCBufferStatusChanged,e,t)}).on(lr.LocalTrackSubscribed,e=>{const t=this.localParticipant.getTrackPublications().find(t=>{let{trackSid:n}=t;return n===e});t?(this.localParticipant.emit(dr.LocalTrackSubscribed,t),this.emitWhenConnected(cr.LocalTrackSubscribed,t,this.localParticipant)):this.log.warn("could not find local track subscription for subscribed event",this.logContext)}).on(lr.RoomMoved,e=>{this.log.debug("room moved",e),e.room&&this.handleRoomUpdate(e.room),this.remoteParticipants.forEach((e,t)=>{this.handleParticipantDisconnected(t,e)}),this.emit(cr.Moved,e.room.name),e.participant?this.handleParticipantUpdates([e.participant,...e.otherParticipants]):this.handleParticipantUpdates(e.otherParticipants)}),this.localParticipant&&this.localParticipant.setupEngine(this.engine),this.e2eeManager&&this.e2eeManager.setupEngine(this.engine),this.outgoingDataStreamManager&&this.outgoingDataStreamManager.setupEngine(this.engine))}static getLocalDevices(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return zs.getInstance().getDevices(e,t)}prepareConnection(e,t){return zn(this,void 0,void 0,function*(){if(this.state===sa.Disconnected){this.log.debug("prepareConnection to ".concat(e),this.logContext);try{if(ns(new URL(e))&&t){this.regionUrlProvider=new da(e,t);const n=yield this.regionUrlProvider.getNextBestRegionUrl();n&&this.state===sa.Disconnected&&(this.regionUrl=n,yield fetch(bs(n),{method:"HEAD"}),this.log.debug("prepared connection to ".concat(n),this.logContext))}else yield fetch(bs(e),{method:"HEAD"})}catch(e){this.log.warn("could not prepare connection",Object.assign(Object.assign({},this.logContext),{error:e}))}}})}getParticipantByIdentity(e){return this.localParticipant.identity===e?this.localParticipant:this.remoteParticipants.get(e)}clearConnectionFutures(){this.connectFuture=void 0}simulateScenario(e,t){return zn(this,void 0,void 0,function*(){let n,i=()=>zn(this,void 0,void 0,function*(){});switch(e){case"signal-reconnect":yield this.engine.client.handleOnClose("simulate disconnect");break;case"speaker":n=new yn({scenario:{case:"speakerUpdate",value:3}});break;case"node-failure":n=new yn({scenario:{case:"nodeFailure",value:!0}});break;case"server-leave":n=new yn({scenario:{case:"serverLeave",value:!0}});break;case"migration":n=new yn({scenario:{case:"migration",value:!0}});break;case"resume-reconnect":this.engine.failNext(),yield this.engine.client.handleOnClose("simulate resume-disconnect");break;case"disconnect-signal-on-resume":i=()=>zn(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),n=new yn({scenario:{case:"disconnectSignalOnResume",value:!0}});break;case"disconnect-signal-on-resume-no-messages":i=()=>zn(this,void 0,void 0,function*(){yield this.engine.client.handleOnClose("simulate resume-disconnect")}),n=new yn({scenario:{case:"disconnectSignalOnResumeNoMessages",value:!0}});break;case"full-reconnect":this.engine.fullReconnectOnNext=!0,yield this.engine.client.handleOnClose("simulate full-reconnect");break;case"force-tcp":case"force-tls":n=new yn({scenario:{case:"switchCandidateProtocol",value:"force-tls"===e?2:1}}),i=()=>zn(this,void 0,void 0,function*(){const e=this.engine.client.onLeave;e&&e(new $t({reason:We.CLIENT_INITIATED,action:Zt.RECONNECT}))});break;case"subscriber-bandwidth":if(void 0===t||"number"!=typeof t)throw new Error("subscriber-bandwidth requires a number as argument");n=new yn({scenario:{case:"subscriberBandwidth",value:ks(t)}});break;case"leave-full-reconnect":n=new yn({scenario:{case:"leaveRequestFullReconnect",value:!0}})}n&&(yield this.engine.client.sendSimulateScenario(n),yield i())})}get canPlaybackAudio(){return this.audioEnabled}get canPlaybackVideo(){return!this.isVideoPlaybackBlocked}getActiveDevice(e){return this.localParticipant.activeDeviceMap.get(e)}switchActiveDevice(e,t){return zn(this,arguments,void 0,function(e,t){var n=this;let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function*(){var r,s,o,a,c,d,l;let u=!0,h=!1;const p=i?{exact:t}:t;if("audioinput"===e){h=0===n.localParticipant.audioTrackPublications.size;const t=null!==(r=n.getActiveDevice(e))&&void 0!==r?r:n.options.audioCaptureDefaults.deviceId;n.options.audioCaptureDefaults.deviceId=p;const i=Array.from(n.localParticipant.audioTrackPublications.values()).filter(e=>e.source===Ar.Source.Microphone);try{u=(yield Promise.all(i.map(e=>{var t;return null===(t=e.audioTrack)||void 0===t?void 0:t.setDeviceId(p)}))).every(e=>!0===e)}catch(e){throw n.options.audioCaptureDefaults.deviceId=t,e}const s=i.some(e=>{var t,n;return null!==(n=null===(t=e.track)||void 0===t?void 0:t.isMuted)&&void 0!==n&&n});u&&s&&(h=!0)}else if("videoinput"===e){h=0===n.localParticipant.videoTrackPublications.size;const t=null!==(s=n.getActiveDevice(e))&&void 0!==s?s:n.options.videoCaptureDefaults.deviceId;n.options.videoCaptureDefaults.deviceId=p;const i=Array.from(n.localParticipant.videoTrackPublications.values()).filter(e=>e.source===Ar.Source.Camera);try{u=(yield Promise.all(i.map(e=>{var t;return null===(t=e.videoTrack)||void 0===t?void 0:t.setDeviceId(p)}))).every(e=>!0===e)}catch(e){throw n.options.videoCaptureDefaults.deviceId=t,e}const r=i.some(e=>{var t,n;return null!==(n=null===(t=e.track)||void 0===t?void 0:t.isMuted)&&void 0!==n&&n});u&&r&&(h=!0)}else if("audiooutput"===e){if(h=!0,!Qr()&&!n.options.webAudioMix||n.options.webAudioMix&&n.audioContext&&!("setSinkId"in n.audioContext))throw new Error("cannot switch audio output, the current browser does not support it");n.options.webAudioMix&&(t=null!==(o=yield zs.getInstance().normalizeDeviceId("audiooutput",t))&&void 0!==o?o:""),null!==(a=(l=n.options).audioOutput)&&void 0!==a||(l.audioOutput={});const i=null!==(c=n.getActiveDevice(e))&&void 0!==c?c:n.options.audioOutput.deviceId;n.options.audioOutput.deviceId=t;try{n.options.webAudioMix&&(null===(d=n.audioContext)||void 0===d||d.setSinkId(t)),yield Promise.all(Array.from(n.remoteParticipants.values()).map(e=>e.setAudioOutput({deviceId:t})))}catch(e){throw n.options.audioOutput.deviceId=i,e}}return h&&(n.localParticipant.activeDeviceMap.set(e,t),n.emit(cr.ActiveDeviceChanged,e,t)),u}()})}setupLocalParticipantEvents(){this.localParticipant.on(dr.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).on(dr.ParticipantNameChanged,this.onLocalParticipantNameChanged).on(dr.AttributesChanged,this.onLocalAttributesChanged).on(dr.TrackMuted,this.onLocalTrackMuted).on(dr.TrackUnmuted,this.onLocalTrackUnmuted).on(dr.LocalTrackPublished,this.onLocalTrackPublished).on(dr.LocalTrackUnpublished,this.onLocalTrackUnpublished).on(dr.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).on(dr.MediaDevicesError,this.onMediaDevicesError).on(dr.AudioStreamAcquired,this.startAudio).on(dr.ChatMessage,this.onLocalChatMessageSent).on(dr.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged)}recreateEngine(){var e;null===(e=this.engine)||void 0===e||e.close(),this.engine=void 0,this.isResuming=!1,this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.bufferedEvents=[],this.maybeCreateEngine()}onTrackAdded(e,t,n){if(this.state===sa.Connecting||this.state===sa.Reconnecting){const i=()=>{this.onTrackAdded(e,t,n),r()},r=()=>{this.off(cr.Reconnected,i),this.off(cr.Connected,i),this.off(cr.Disconnected,r)};return this.once(cr.Reconnected,i),this.once(cr.Connected,i),void this.once(cr.Disconnected,r)}if(this.state===sa.Disconnected)return void this.log.warn("skipping incoming track after Room disconnected",this.logContext);if("ended"===e.readyState)return void this.log.info("skipping incoming track as it already ended",this.logContext);const i=function(e){const t=e.split("|");return t.length>1?[t[0],e.substr(t[0].length+1)]:[e,""]}(t.id),r=i[0];let s=i[1],o=e.id;if(s&&s.startsWith("TR")&&(o=s),r===this.localParticipant.sid)return void this.log.warn("tried to create RemoteParticipant for local participant",this.logContext);const a=Array.from(this.remoteParticipants.values()).find(e=>e.sid===r);if(!a)return void this.log.error("Tried to add a track for a participant, that's not present. Sid: ".concat(r),this.logContext);let c;this.options.adaptiveStream&&(c="object"==typeof this.options.adaptiveStream?this.options.adaptiveStream:{});const d=a.addSubscribedMediaTrack(e,o,t,n,c);(null==d?void 0:d.isEncrypted)&&!this.e2eeManager&&this.emit(cr.EncryptionError,new Error("Encrypted ".concat(d.source," track received from participant ").concat(a.sid,", but room does not have encryption enabled!")))}handleDisconnect(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0],t=arguments.length>1?arguments[1]:void 0;var n;if(this.clearConnectionReconcile(),this.isResuming=!1,this.bufferedEvents=[],this.transcriptionReceivedTimes.clear(),this.incomingDataStreamManager.clearHandlersAndControllers(),this.state!==sa.Disconnected){this.regionUrl=void 0;try{this.remoteParticipants.forEach(e=>{e.trackPublications.forEach(t=>{e.unpublishTrack(t.trackSid)})}),this.localParticipant.trackPublications.forEach(t=>{var n,i,r;t.track&&this.localParticipant.unpublishTrack(t.track,e),e?(null===(n=t.track)||void 0===n||n.detach(),null===(i=t.track)||void 0===i||i.stop()):null===(r=t.track)||void 0===r||r.stopMonitor()}),this.localParticipant.off(dr.ParticipantMetadataChanged,this.onLocalParticipantMetadataChanged).off(dr.ParticipantNameChanged,this.onLocalParticipantNameChanged).off(dr.AttributesChanged,this.onLocalAttributesChanged).off(dr.TrackMuted,this.onLocalTrackMuted).off(dr.TrackUnmuted,this.onLocalTrackUnmuted).off(dr.LocalTrackPublished,this.onLocalTrackPublished).off(dr.LocalTrackUnpublished,this.onLocalTrackUnpublished).off(dr.ConnectionQualityChanged,this.onLocalConnectionQualityChanged).off(dr.MediaDevicesError,this.onMediaDevicesError).off(dr.AudioStreamAcquired,this.startAudio).off(dr.ChatMessage,this.onLocalChatMessageSent).off(dr.ParticipantPermissionsChanged,this.onLocalParticipantPermissionsChanged),this.localParticipant.trackPublications.clear(),this.localParticipant.videoTrackPublications.clear(),this.localParticipant.audioTrackPublications.clear(),this.remoteParticipants.clear(),this.sidToIdentity.clear(),this.activeSpeakers=[],this.audioContext&&"boolean"==typeof this.options.webAudioMix&&(this.audioContext.close(),this.audioContext=void 0),es()&&(window.removeEventListener("beforeunload",this.onPageLeave),window.removeEventListener("pagehide",this.onPageLeave),window.removeEventListener("freeze",this.onPageLeave),null===(n=navigator.mediaDevices)||void 0===n||n.removeEventListener("devicechange",this.handleDeviceChange))}finally{this.setAndEmitConnectionState(sa.Disconnected),this.emit(cr.Disconnected,t)}}}handleParticipantDisconnected(e,t){var n;this.remoteParticipants.delete(e),t&&(this.incomingDataStreamManager.validateParticipantHasNoActiveDataStreams(e),t.trackPublications.forEach(e=>{t.unpublishTrack(e.trackSid,!0)}),this.emit(cr.ParticipantDisconnected,t),t.setDisconnected(),null===(n=this.localParticipant)||void 0===n||n.handleParticipantDisconnected(t.identity))}handleIncomingRpcRequest(e,t,n,i,r,s){return zn(this,void 0,void 0,function*(){if(yield this.engine.publishRpcAck(e,t),1!==s)return void(yield this.engine.publishRpcResponse(e,t,null,Io.builtIn("UNSUPPORTED_VERSION")));const o=this.rpcHandlers.get(n);if(!o)return void(yield this.engine.publishRpcResponse(e,t,null,Io.builtIn("UNSUPPORTED_METHOD")));let a=null,c=null;try{const s=yield o({requestId:t,callerIdentity:e,payload:i,responseTimeout:r});Oo(s)>15360?(a=Io.builtIn("RESPONSE_PAYLOAD_TOO_LARGE"),console.warn("RPC Response payload too large for ".concat(n))):c=s}catch(e){e instanceof Io?a=e:(console.warn("Uncaught error returned by RPC handler for ".concat(n,". Returning APPLICATION_ERROR instead."),e),a=Io.builtIn("APPLICATION_ERROR"))}yield this.engine.publishRpcResponse(e,t,c,a)})}selectDefaultDevices(){return zn(this,void 0,void 0,function*(){var e,t,n;const i=zs.getInstance().previousDevices,r=yield zs.getInstance().getDevices(void 0,!1),s=wr();if("Chrome"===(null==s?void 0:s.name)&&"iOS"!==s.os)for(let e of r){const t=i.find(t=>t.deviceId===e.deviceId);t&&""!==t.label&&t.kind===e.kind&&t.label!==e.label&&"default"===this.getActiveDevice(e.kind)&&this.emit(cr.ActiveDeviceChanged,e.kind,e.deviceId)}const o=["audiooutput","audioinput","videoinput"];for(let s of o){const o=Ns(s),a=this.localParticipant.getTrackPublication(o);if(a&&(null===(e=a.track)||void 0===e?void 0:e.isUserProvided))continue;const c=r.filter(e=>e.kind===s),d=this.getActiveDevice(s);d===(null===(t=i.filter(e=>e.kind===s)[0])||void 0===t?void 0:t.deviceId)&&c.length>0&&(null===(n=c[0])||void 0===n?void 0:n.deviceId)!==d?yield this.switchActiveDevice(s,c[0].deviceId):"audioinput"===s&&!$r()||"videoinput"===s||!(c.length>0)||c.find(e=>e.deviceId===this.getActiveDevice(s))||"audiooutput"===s&&$r()||(yield this.switchActiveDevice(s,c[0].deviceId))}})}acquireAudioContext(){return zn(this,void 0,void 0,function*(){var e,t;if("boolean"!=typeof this.options.webAudioMix&&this.options.webAudioMix.audioContext?this.audioContext=this.options.webAudioMix.audioContext:this.audioContext&&"closed"!==this.audioContext.state||(this.audioContext=null!==(e=Ds())&&void 0!==e?e:void 0),this.options.webAudioMix&&this.remoteParticipants.forEach(e=>e.setAudioContext(this.audioContext)),this.localParticipant.setAudioContext(this.audioContext),this.audioContext&&"suspended"===this.audioContext.state)try{yield Promise.race([this.audioContext.resume(),Hr(200)])}catch(e){this.log.warn("Could not resume audio context",Object.assign(Object.assign({},this.logContext),{error:e}))}const n="running"===(null===(t=this.audioContext)||void 0===t?void 0:t.state);n!==this.canPlaybackAudio&&(this.audioEnabled=n,this.emit(cr.AudioPlaybackStatusChanged,n))})}createParticipant(e,t){var n;let i;return i=t?Oa.fromParticipantInfo(this.engine.client,t,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}):new Oa(this.engine.client,"",e,void 0,void 0,void 0,{loggerContextCb:()=>this.logContext,loggerName:this.options.loggerName}),this.options.webAudioMix&&i.setAudioContext(this.audioContext),(null===(n=this.options.audioOutput)||void 0===n?void 0:n.deviceId)&&i.setAudioOutput(this.options.audioOutput).catch(e=>this.log.warn("Could not set audio output: ".concat(e.message),this.logContext)),i}getOrCreateParticipant(e,t){if(this.remoteParticipants.has(e)){const n=this.remoteParticipants.get(e);return t&&n.updateInfo(t)&&this.sidToIdentity.set(t.sid,t.identity),n}const n=this.createParticipant(e,t);return this.remoteParticipants.set(e,n),this.sidToIdentity.set(t.sid,t.identity),this.emitWhenConnected(cr.ParticipantConnected,n),n.on(dr.TrackPublished,e=>{this.emitWhenConnected(cr.TrackPublished,e,n)}).on(dr.TrackSubscribed,(e,t)=>{e.kind===Ar.Kind.Audio?(e.on(ur.AudioPlaybackStarted,this.handleAudioPlaybackStarted),e.on(ur.AudioPlaybackFailed,this.handleAudioPlaybackFailed)):e.kind===Ar.Kind.Video&&(e.on(ur.VideoPlaybackFailed,this.handleVideoPlaybackFailed),e.on(ur.VideoPlaybackStarted,this.handleVideoPlaybackStarted)),this.emit(cr.TrackSubscribed,e,t,n)}).on(dr.TrackUnpublished,e=>{this.emit(cr.TrackUnpublished,e,n)}).on(dr.TrackUnsubscribed,(e,t)=>{this.emit(cr.TrackUnsubscribed,e,t,n)}).on(dr.TrackMuted,e=>{this.emitWhenConnected(cr.TrackMuted,e,n)}).on(dr.TrackUnmuted,e=>{this.emitWhenConnected(cr.TrackUnmuted,e,n)}).on(dr.ParticipantMetadataChanged,e=>{this.emitWhenConnected(cr.ParticipantMetadataChanged,e,n)}).on(dr.ParticipantNameChanged,e=>{this.emitWhenConnected(cr.ParticipantNameChanged,e,n)}).on(dr.AttributesChanged,e=>{this.emitWhenConnected(cr.ParticipantAttributesChanged,e,n)}).on(dr.ConnectionQualityChanged,e=>{this.emitWhenConnected(cr.ConnectionQualityChanged,e,n)}).on(dr.ParticipantPermissionsChanged,e=>{this.emitWhenConnected(cr.ParticipantPermissionsChanged,e,n)}).on(dr.TrackSubscriptionStatusChanged,(e,t)=>{this.emitWhenConnected(cr.TrackSubscriptionStatusChanged,e,t,n)}).on(dr.TrackSubscriptionFailed,(e,t)=>{this.emit(cr.TrackSubscriptionFailed,e,n,t)}).on(dr.TrackSubscriptionPermissionChanged,(e,t)=>{this.emitWhenConnected(cr.TrackSubscriptionPermissionChanged,e,t,n)}).on(dr.Active,()=>{this.emitWhenConnected(cr.ParticipantActive,n),n.kind===Ze.AGENT&&this.localParticipant.setActiveAgent(n)}),t&&n.updateInfo(t),n}sendSyncState(){const e=Array.from(this.remoteParticipants.values()).reduce((e,t)=>(e.push(...t.getTrackPublications()),e),[]),t=this.localParticipant.getTrackPublications();this.engine.sendSyncState(e,t)}updateSubscriptions(){for(const e of this.remoteParticipants.values())for(const t of e.videoTrackPublications.values())t.isSubscribed&&Rs(t)&&t.emitTrackUpdate()}getRemoteParticipantBySid(e){const t=this.sidToIdentity.get(e);if(t)return this.remoteParticipants.get(t)}registerConnectionReconcile(){this.clearConnectionReconcile();let e=0;this.connectionReconcileInterval=Ir.setInterval(()=>{this.engine&&!this.engine.isClosed&&this.engine.verifyTransport()?e=0:(e++,this.log.warn("detected connection state mismatch",Object.assign(Object.assign({},this.logContext),{numFailures:e,engine:this.engine?{closed:this.engine.isClosed,transportsConnected:this.engine.verifyTransport()}:void 0})),e>=3&&(this.recreateEngine(),this.handleDisconnect(this.options.stopLocalTrackOnUnpublish,We.STATE_MISMATCH)))},4e3)}clearConnectionReconcile(){this.connectionReconcileInterval&&Ir.clearInterval(this.connectionReconcileInterval)}setAndEmitConnectionState(e){return e!==this.state&&(this.state=e,this.emit
1(cr.ConnectionStateChanged,this.state),!0)}emitBufferedEvents(){this.bufferedEvents.forEach(e=>{let[t,n]=e;this.emit(t,...n)}),this.bufferedEvents=[]}emitWhenConnected(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(this.state===sa.Reconnecting||this.isResuming||!this.engine||this.engine.pendingReconnect)this.bufferedEvents.push([e,n]);else if(this.state===sa.Connected)return this.emit(e,...n);return!1}simulateParticipants(e){return zn(this,void 0,void 0,function*(){var t,n;const i=Object.assign({audio:!0,video:!0,useRealTracks:!1},e.publish),r=Object.assign({count:9,audio:!1,video:!0,aspectRatios:[1.66,1.7,1.3]},e.participants);if(this.handleDisconnect(),this.roomInfo=new Je({sid:"RM_SIMULATED",name:"simulated-room",emptyTimeout:0,maxParticipants:0,creationTime:E.parse((new Date).getTime()),metadata:"",numParticipants:1,numPublishers:1,turnPassword:"",enabledCodecs:[],activeRecording:!1}),this.localParticipant.updateInfo(new Xe({identity:"simulated-local",name:"local-name"})),this.setupLocalParticipantEvents(),this.emit(cr.SignalConnected),this.emit(cr.Connected),this.setAndEmitConnectionState(sa.Connected),i.video){const e=new wa(Ar.Kind.Video,new it({source:Be.CAMERA,sid:Math.floor(1e4*Math.random()).toString(),type:Fe.AUDIO,name:"video-dummy"}),new Yo(i.useRealTracks?(yield window.navigator.mediaDevices.getUserMedia({video:!0})).getVideoTracks()[0]:ms(160*(null!==(t=r.aspectRatios[0])&&void 0!==t?t:1),160,!0,!0),void 0,!1,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(e),this.localParticipant.emit(dr.LocalTrackPublished,e)}if(i.audio){const e=new wa(Ar.Kind.Audio,new it({source:Be.MICROPHONE,sid:Math.floor(1e4*Math.random()).toString(),type:Fe.AUDIO}),new Uo(i.useRealTracks?(yield navigator.mediaDevices.getUserMedia({audio:!0})).getAudioTracks()[0]:gs(),void 0,!1,this.audioContext,{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext}),{loggerName:this.options.loggerName,loggerContextCb:()=>this.logContext});this.localParticipant.addTrackPublication(e),this.localParticipant.emit(dr.LocalTrackPublished,e)}for(let e=0;e<r.count-1;e+=1){let t=new Xe({sid:Math.floor(1e4*Math.random()).toString(),identity:"simulated-".concat(e),state:$e.ACTIVE,tracks:[],joinedAt:E.parse(Date.now())});const i=this.getOrCreateParticipant(t.identity,t);if(r.video){const s=ms(160*(null!==(n=r.aspectRatios[e%r.aspectRatios.length])&&void 0!==n?n:1),160,!1,!0),o=new it({source:Be.CAMERA,sid:Math.floor(1e4*Math.random()).toString(),type:Fe.AUDIO});i.addSubscribedMediaTrack(s,o.sid,new MediaStream([s]),new RTCRtpReceiver),t.tracks=[...t.tracks,o]}if(r.audio){const e=gs(),n=new it({source:Be.MICROPHONE,sid:Math.floor(1e4*Math.random()).toString(),type:Fe.AUDIO});i.addSubscribedMediaTrack(e,n.sid,new MediaStream([e]),new RTCRtpReceiver),t.tracks=[...t.tracks,n]}i.updateInfo(t)}})}emit(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];if(e!==cr.ActiveSpeakersChanged&&e!==cr.TranscriptionReceived){const t=Aa(n).filter(e=>void 0!==e);this.log.debug("room event ".concat(e),Object.assign(Object.assign({},this.logContext),{event:e,args:t}))}return super.emit(e,...n)}}function Aa(e){return e.map(e=>{if(e)return Array.isArray(e)?Aa(e):"object"==typeof e?"logContext"in e?e.logContext:void 0:e})}xa.cleanupRegistry="undefined"!=typeof FinalizationRegistry&&new FinalizationRegistry(e=>{e()}),function(e){e[e.IDLE=0]="IDLE",e[e.RUNNING=1]="RUNNING",e[e.SKIPPED=2]="SKIPPED",e[e.SUCCESS=3]="SUCCESS",e[e.FAILED=4]="FAILED"}(oa||(oa={})),Kn.EventEmitter,Kn.EventEmitter,new Map([["obs virtual camera",{facingMode:"environment",confidence:"medium"}]]),new Map([["iphone",{facingMode:"environment",confidence:"medium"}],["ipad",{facingMode:"environment",confidence:"medium"}]]);var Da,Na,Ma,La,ja=n(39032);function Ua(){}function Fa(){Fa.init.call(this)}function Ba(e){return void 0===e._maxListeners?Fa.defaultMaxListeners:e._maxListeners}function Va(e,t,n){if(t)e.call(n);else for(var i=e.length,r=Qa(e,i),s=0;s<i;++s)r[s].call(n)}function qa(e,t,n,i){if(t)e.call(n,i);else for(var r=e.length,s=Qa(e,r),o=0;o<r;++o)s[o].call(n,i)}function za(e,t,n,i,r){if(t)e.call(n,i,r);else for(var s=e.length,o=Qa(e,s),a=0;a<s;++a)o[a].call(n,i,r)}function Wa(e,t,n,i,r,s){if(t)e.call(n,i,r,s);else for(var o=e.length,a=Qa(e,o),c=0;c<o;++c)a[c].call(n,i,r,s)}function Ha(e,t,n,i){if(t)e.apply(n,i);else for(var r=e.length,s=Qa(e,r),o=0;o<r;++o)s[o].apply(n,i)}function Ga(e,t,n,i){var r,s,o,a;if("function"!=typeof n)throw new TypeError('"listener" argument must be a function');if((s=e._events)?(s.newListener&&(e.emit("newListener",t,n.listener?n.listener:n),s=e._events),o=s[t]):(s=e._events=new Ua,e._eventsCount=0),o){if("function"==typeof o?o=s[t]=i?[n,o]:[o,n]:i?o.unshift(n):o.push(n),!o.warned&&(r=Ba(e))&&r>0&&o.length>r){o.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+t+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=o.length,a=c,"function"==typeof console.warn?console.warn(a):console.log(a)}}else o=s[t]=n,++e._eventsCount;return e}function Ka(e,t,n){var i=!1;function r(){e.removeListener(t,r),i||(i=!0,n.apply(e,arguments))}return r.listener=n,r}function Ja(e){var t=this._events;if(t){var n=t[e];if("function"==typeof n)return 1;if(n)return n.length}return 0}function Qa(e,t){for(var n=new Array(t);t--;)n[t]=e[t];return n}Ua.prototype=Object.create(null),Fa.EventEmitter=Fa,Fa.usingDomains=!1,Fa.prototype.domain=void 0,Fa.prototype._events=void 0,Fa.prototype._maxListeners=void 0,Fa.defaultMaxListeners=10,Fa.init=function(){this.domain=null,Fa.usingDomains&&(void 0).active,this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=new Ua,this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},Fa.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw new TypeError('"n" argument must be a positive number');return this._maxListeners=e,this},Fa.prototype.getMaxListeners=function(){return Ba(this)},Fa.prototype.emit=function(e){var t,n,i,r,s,o,a,c="error"===e;if(o=this._events)c=c&&null==o.error;else if(!c)return!1;if(a=this.domain,c){if(t=arguments[1],!a){if(t instanceof Error)throw t;var d=new Error('Uncaught, unspecified "error" event. ('+t+")");throw d.context=t,d}return t||(t=new Error('Uncaught, unspecified "error" event')),t.domainEmitter=this,t.domain=a,t.domainThrown=!1,a.emit("error",t),!1}if(!(n=o[e]))return!1;var l="function"==typeof n;switch(i=arguments.length){case 1:Va(n,l,this);break;case 2:qa(n,l,this,arguments[1]);break;case 3:za(n,l,this,arguments[1],arguments[2]);break;case 4:Wa(n,l,this,arguments[1],arguments[2],arguments[3]);break;default:for(r=new Array(i-1),s=1;s<i;s++)r[s-1]=arguments[s];Ha(n,l,this,r)}return!0},Fa.prototype.addListener=function(e,t){return Ga(this,e,t,!1)},Fa.prototype.on=Fa.prototype.addListener,Fa.prototype.prependListener=function(e,t){return Ga(this,e,t,!0)},Fa.prototype.once=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.on(e,Ka(this,e,t)),this},Fa.prototype.prependOnceListener=function(e,t){if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');return this.prependListener(e,Ka(this,e,t)),this},Fa.prototype.removeListener=function(e,t){var n,i,r,s,o;if("function"!=typeof t)throw new TypeError('"listener" argument must be a function');if(!(i=this._events))return this;if(!(n=i[e]))return this;if(n===t||n.listener&&n.listener===t)0==--this._eventsCount?this._events=new Ua:(delete i[e],i.removeListener&&this.emit
1("removeListener",e,n.listener||t));else if("function"!=typeof n){for(r=-1,s=n.length;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){o=n[s].listener,r=s;break}if(r<0)return this;if(1===n.length){if(n[0]=void 0,0==--this._eventsCount)return this._events=new Ua,this;delete i[e]}else!function(e,t){for(var n=t,i=n+1,r=e.length;i<r;n+=1,i+=1)e[n]=e[i];e.pop()}(n,r);i.removeListener&&this.emit("removeListener",e,o||t)}return this},Fa.prototype.off=function(e,t){return this.removeListener(e,t)},Fa.prototype.removeAllListeners=function(e){var t,n;if(!(n=this._events))return this;if(!n.removeListener)return 0===arguments.length?(this._events=new Ua,this._eventsCount=0):n[e]&&(0==--this._eventsCount?this._events=new Ua:delete n[e]),this;if(0===arguments.length){for(var i,r=Object.keys(n),s=0;s<r.length;++s)"removeListener"!==(i=r[s])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=new Ua,this._eventsCount=0,this}if("function"==typeof(t=n[e]))this.removeListener(e,t);else if(t)do{this.removeListener(e,t[t.length-1])}while(t[0]);return this},Fa.prototype.listeners=function(e){var t,n=this._events;return n&&(t=n[e])?"function"==typeof t?[t.listener||t]:function(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}(t):[]},Fa.listenerCount=function(e,t){return"function"==typeof e.listenerCount?e.listenerCount(t):Ja.call(e,t)},Fa.prototype.listenerCount=Ja,Fa.prototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};class Ya extends Fa{}!function(e){e.Issue="issue",e.NetworkScoresUpdated="network-scores-updated",e.StatsParsingFinished="stats-parsing-finished"}(Da||(Da={})),function(e){e.Network="network",e.CPU="cpu",e.Server="server",e.Stream="stream"}(Na||(Na={})),function(e){e.OutboundNetworkQuality="outbound-network-quality",e.InboundNetworkQuality="inbound-network-quality",e.OutboundNetworkMediaLatency="outbound-network-media-latency",e.InboundNetworkMediaLatency="inbound-network-media-latency",e.NetworkMediaSyncFailure="network-media-sync-failure",e.OutboundNetworkThroughput="outbound-network-throughput",e.InboundNetworkThroughput="inbound-network-throughput",e.EncoderCPUThrottling="encoder-cpu-throttling",e.DecoderCPUThrottling="decoder-cpu-throttling",e.ServerIssue="server-issue",e.UnknownVideoDecoderIssue="unknown-video-decoder",e.LowInboundMOS="low-inbound-mean-opinion-score",e.LowOutboundMOS="low-outbound-mean-opinion-score",e.FrozenVideoTrack="frozen-video-track",e.MissingVideoStreamData="missing-video-stream-data",e.MissingAudioStreamData="missing-audio-stream-data"}(Ma||(Ma={})),function(e){e[e.BAD=2.1]="BAD",e[e.POOR=2.6]="POOR",e[e.FAIR=3.1]="FAIR",e[e.GOOD=3.8]="GOOD",e[e.EXCELLENT=4.3]="EXCELLENT"}(La||(La={}));class Xa extends Fa{static STATS_REPORT_READY_EVENT="stats-report-ready";static STATS_REPORTS_PARSED="stats-reports-parsed";isStopped=!1;reportTimer;getStatsInterval;compositeStatsParser;constructor(e){super(),this.compositeStatsParser=e.compositeStatsParser,this.getStatsInterval=e.getStatsInterval??1e4}get isRunning(){return!!this.reportTimer&&!this.isStopped}startReporting(){if(this.reportTimer)return;const e=()=>setTimeout(()=>{this.isStopped?this.reportTimer=void 0:this.parseReports().finally(()=>{this.reportTimer=e()})},this.getStatsInterval);this.isStopped=!1,this.reportTimer=e()}stopReporting(){this.isStopped=!0,this.reportTimer&&(clearTimeout(this.reportTimer),this.reportTimer=void 0)}async parseReports(){const e=Date.now(),t=await this.compositeStatsParser.parse(),n=Date.now()-e;this.emit(Xa.STATS_REPORTS_PARSED,{timeTaken:n,reportItems:t}),t.forEach(e=>{this.emit(Xa.STATS_REPORT_READY_EVENT,e)})}}const $a=(()=>{const e=new Map;return t=>{const{taskId:n,delayMs:i,maxJitterMs:r,callback:s}=t,o=Math.ceil(Math.random()*(r||0)),a=e.get(n);a&&clearTimeout(a);const c=setTimeout(()=>{s(),e.delete(n)},i+o);e.set(n,c)}})();class Za{#e={};calculate(e){const{connection:{id:t}}=e,{mos:n,stats:i}=this.calculateOutboundScore(e)||{},{mos:r,stats:s}=this.calculateInboundScore(e)||{};return this.#e[t]=e,$a({taskId:t,delayMs:35e3,callback:()=>delete this.#e[t]}),{outbound:n,inbound:r,connectionId:t,statsSamples:{inboundStatsSample:s,outboundStatsSample:i}}}calculateOutboundScore(e){const t=[...e.remote?.audio.inbound||[],...e.remote?.video.inbound||[]];if(!t.length)return;const n=this.#e[e.connection.id];if(!n)return;const i=[...n.remote?.audio.inbound||[],...n.remote?.video.inbound||[]],{packetsSent:r}=e.connection,s=n.connection.packetsSent,o=t.reduce((e,t)=>
1{const n=i.find(e=>e.ssrc===t.ssrc);return{sumJitter:e.sumJitter+t.jitter,packetsLost:e.packetsLost+t.packetsLost,lastPacketsLost:e.lastPacketsLost+(n?.packetsLost||0)}},{sumJitter:0,packetsLost:0,lastPacketsLost:0}),a=1e3*e.connection.currentRoundTripTime||0,{sumJitter:c}=o,d=c/t.length,l=r-s,u=o.packetsLost-o.lastPacketsLost,h=l&&u?Math.round(100*u/(l+u)):0;return{mos:this.calculateMOS({avgJitter:d,rtt:a,packetsLoss:h}),stats:{avgJitter:d,rtt:a,packetsLoss:h}}}calculateInboundScore(e){const t=[...e.audio?.inbound,...e.video?.inbound];if(!t.length)return;const n=this.#e[e.connection.id];if(!n)return;const i=[...n.video?.inbound,...n.audio?.inbound],{packetsReceived:r}=e.connection,s=n.connection.packetsReceived,o=t.reduce((e,t)=>{const n=i.find(e=>e.ssrc===t.ssrc);return{sumJitter:e.sumJitter+t.jitter,packetsLost:e.packetsLost+t.packetsLost,lastPacketsLost:e.lastPacketsLost+(n?.packetsLost||0)}},{sumJitter:0,packetsLost:0,lastPacketsLost:0}),a=1e3*e.connection.currentRoundTripTime||0,{sumJitter:c}=o,d=c/t.length,l=r-s,u=o.packetsLost-o.lastPacketsLost,h=l&&u?Math.round(100*u/(l+u)):0;return{mos:this.calculateMOS({avgJitter:d,rtt:a,packetsLoss:h}),stats:{avgJitter:d,rtt:a,packetsLoss:h}}}calculateMOS({avgJitter:e,rtt:t,packetsLoss:n}){const i=t+2*e+10;let r=i<160?93.2-i/40:93.2-i/120-10;return r-=2.5*n,1+.035*r+7e-6*r*(r-60)*(100-r)}}class ec{#t=new Map;#n;#i;constructor(e={}){this.#n=e.statsCleanupTtlMs??35e3,this.#i=e.maxParsedStatsStorageSize??5}detect(e,t){const n={...e,networkScores:{...t,statsSamples:t?.statsSamples||{}}},i=this.performDetection(n);return this.setLastProcessedStats(e.connection.id,n),this.performPrevStatsCleanup({connectionId:e.connection.id}),i}performPrevStatsCleanup(e){const{connectionId:t,cleanupCallback:n}=e;this.#t.has(t)&&$a({taskId:t,delayMs:this.#n,callback:()=>{this.deleteLastProcessedStats(t),"function"==typeof n&&n()}})}setLastProcessedStats(e,t){if(!e||t.connection.id!==e)return;const n=this.#t.get(e)??[];n.push(t),n.length>this.#i&&n.shift(),this.#t.set(e,n)}getLastProcessedStats(e){const t=this.#t.get(e);return t?.[t.length-1]}getAllLastProcessedStats(e){return this.#t.get(e)??[]}deleteLastProcessedStats(e){this.#t.delete(e)}}class tc extends ec{#r;constructor(e={}){super(e),this.#r=e.availableOutgoingBitrateThreshold??1e5}performDetection(e){const t=[],{availableOutgoingBitrate:n}=e.connection;if(void 0===n)return t;const i=e.audio.outbound.reduce((e,t)=>e+t.targetBitrate,0),r=e.video.outbound.reduce((e,t)=>e+t.bitrate,0);if(!i&&!r)return t;const s={availableOutgoingBitrate:n,videoStreamsTotalBitrate:r,audioStreamsTotalTargetBitrate:i};return i>n||r>0&&n<this.#r?(t.push({statsSample:s,type:Na.Network,reason:Ma.OutboundNetworkThroughput}),t):t}}class nc extends ec{#s;#o;#a;#c;constructor(e={}){super(),this.#s=e.highPacketLossThresholdPct??5,this.#o=e.highJitterThreshold??200,this.#a=e.highJitterBufferDelayThresholdMs??500,this.#c=e.highRttThresholdMs??250}performDetection(e){return this.processData(e)}processData(e){const t=[],n=[...e.audio?.inbound,...e.video?.inbound];if(!n.length)return t;const i=this.getLastProcessedStats(e.connection.id);if(!i)return t;const r=[...i.video?.inbound,...i.audio?.inbound],{packetsReceived:s}=e.connection,o=i.connection.packetsReceived,a=n.reduce((e,t)=>{const n=r.find(e=>e.ssrc===t.ssrc),i=n?.jitterBufferDelay||0,s=n?.jitterBufferEmittedCount||0,o=t.jitterBufferDelay-i,a=t.jitterBufferEmittedCount-s,c=o&&a?1e3*o/a:0;return{sumJitter:e.sumJitter+t.jitter,sumJitterBufferDelayMs:e.sumJitterBufferDelayMs+c,packetsLost:e.packetsLost+t.packetsLost,lastPacketsLost:e.lastPacketsLost+(n?.packetsLost||0)}},{sumJitter:0,sumJitterBufferDelayMs:0,packetsLost:0,lastPacketsLost:0}),c=1e3*e.connection.currentRoundTripTime||0,{sumJitter:d,sumJitterBufferDelayMs:l}=a,u=d/n.length,h=l/n.length,p=s-o,m=a.packetsLost-a.lastPacketsLost,g=p&&m?Math.round(100*m/(p+m)):0,f=g>this.#s,v=u>=this.#o,b=c>=this.#c,_=h>this.#a,y=b&&!v&&!f,k=f&&v,S=v&&_,T={rtt:c,packetLossPct:g,avgJitter:u,avgJitterBufferDelay:h};return(v||f)&&t.push({statsSample:T,type:Na.Network,reason:Ma.InboundNetworkQuality,iceCandidate:e.connection.local.id}),y&&t.push({statsSample:T,type:Na.Server,reason:Ma.ServerIssue,iceCandidate:e.connection.remote.id}
1),k&&t.push({statsSample:T,type:Na.Network,reason:Ma.InboundNetworkMediaLatency,iceCandidate:e.connection.local.id}),S&&t.push({statsSample:T,type:Na.Network,reason:Ma.NetworkMediaSyncFailure,iceCandidate:e.connection.local.id}),t}}class ic extends ec{#d;constructor(e={}){super(),this.#d=e.correctedSamplesThresholdPct??5}performDetection(e){return this.processData(e)}processData(e){const t=e.audio.inbound,n=[],i=this.getLastProcessedStats(e.connection.id)?.audio.inbound;return i?(t.forEach(e=>{const t=i.find(t=>t.ssrc===e.ssrc);if(!t)return;const r=e.track.insertedSamplesForDeceleration+e.track.removedSamplesForAcceleration,s=t.track.insertedSamplesForDeceleration+t.track.removedSamplesForAcceleration;if(r===s)return;const o=e.track.totalSamplesReceived-t.track.totalSamplesReceived,a=r-s,c=Math.round(100*a/o),d={correctedSamplesPct:c};c>this.#d&&n.push({statsSample:d,type:Na.Network,reason:Ma.NetworkMediaSyncFailure,ssrc:e.ssrc})}),n):n}}class rc extends ec{#s;#o;constructor(e={}){super(),this.#s=e.highPacketLossThresholdPct??5,this.#o=e.highJitterThreshold??200}performDetection(e){return this.processData(e)}processData(e){const t=[],n=[...e.remote?.audio.inbound||[],...e.remote?.video.inbound||[]];if(!n.length)return t;const i=this.getLastProcessedStats(e.connection.id);if(!i)return t;const r=[...i.remote?.audio.inbound||[],...i.remote?.video.inbound||[]],{packetsSent:s}=e.connection,o=i.connection.packetsSent,a=n.reduce((e,t)=>{const n=r.find(e=>e.ssrc===t.ssrc);return{sumJitter:e.sumJitter+t.jitter,packetsLost:e.packetsLost+t.packetsLost,lastPacketsLost:e.lastPacketsLost+(n?.packetsLost||0)}},{sumJitter:0,packetsLost:0,lastPacketsLost:0}),c=1e3*e.connection.currentRoundTripTime||0,{sumJitter:d}=a,l=d/n.length,u=s-o,h=a.packetsLost-a.lastPacketsLost,p=u&&h?Math.round(100*h/(u+h)):0,m=p>this.#s,g=l>=this.#o,f=!m&&g||g||m,v={rtt:c,avgJitter:l,packetLossPct:p};return m&&g&&t.push({statsSample:v,type:Na.Network,reason:Ma.OutboundNetworkMediaLatency,iceCandidate:e.connection.local.id}),f&&t.push({statsSample:v,type:Na.Network,reason:Ma.OutboundNetworkQuality,iceCandidate:e.connection.local.id}),t}}class sc extends ec{performDetection(e){return this.processData(e)}processData(e){const t=e.video.outbound.filter(e=>"none"!==e.qualityLimitationReason),n=[],i=this.getLastProcessedStats(e.connection.id)?.video.outbound;return i?(t.forEach(e=>{const t=i.find(t=>t.ssrc===e.ssrc);if(!t)return;const r={qualityLimitationReason:e.qualityLimitationReason};e.framesSent>t.framesSent||("cpu"===e.qualityLimitationReason&&n.push({statsSample:r,type:Na.CPU,reason:Ma.EncoderCPUThrottling,ssrc:e.ssrc}),"bandwidth"===e.qualityLimitationReason&&n.push({statsSample:r,type:Na.Network,reason:Ma.OutboundNetworkThroughput,ssrc:e.ssrc}))}),n):n}}class oc extends ec{UNKNOWN_DECODER="unknown";#l={};performDetection(e){return this.processData(e)}performPrevStatsCleanup(e){const{connectionId:t,cleanupCallback:n}=e;super.performPrevStatsCleanup({...e,cleanupCallback:()=>{delete this.#l[t],"function"==typeof n&&n()}})}processData(e){const t=[],{id:n}=e.connection,i=this.getLastProcessedStats(n)?.video.inbound;return e.video.inbound.forEach(e=>{const{decoderImplementation:r,ssrc:s}=e,o=i?.find(e=>e.ssrc===s);if(o)if(r===this.UNKNOWN_DECODER){if(!this.hadLastDecoderWithIssue(n,s)){this.setLastDecoderWithIssue(n,s,this.UNKNOWN_DECODER);const i={mimeType:e.mimeType,decoderImplementation:r};t.push({ssrc:s,statsSample:i,type:Na.Stream,reason:Ma.UnknownVideoDecoderIssue,trackIdentifier:e.track.trackIdentifier})}}else this.setLastDecoderWithIssue(n,s,void 0)}),t}setLastDecoderWithIssue(e,t,n){const i=this.#l[e]??{};void 0===n?delete i[t]:i[t]=n,this.#l[e]=i}hadLastDecoderWithIssue(e,t){const n=this.#l[e];return(n&&n[t])===this.UNKNOWN_DECODER}}const ac=e=>e.reduce((e,t)=>e+t,0)/e.length,cc=(e,t,n=30)=>{const i=[];for(let n=1;n<t.length-1;n+=1){const r=t[n]?.video?.inbound.find(t=>t.ssrc===e);if(!r)continue;const s=t[n-1]?.video?.inbound?.find(t=>t.ssrc===e);if(!r||!s)continue;const o=r.timestamp-s.timestamp,a=r.framesDecoded-s.framesDecoded;if(a>0){const e=o/a;i.push(e)}}return!(i.length<=1)&&(e=>{const t=((e,t)=>t.reduce((t,n)=>t+(n-e)**2,0)/t.length)(ac(e),e);return Math.sqrt(t)})(i)>n},dc=(e,t)=>{for(let n=1;n<t.length;n+=1){const i=t[n].video.inbound.find(t=>t.ssrc===e);if(!i)continue;const r=t[n-1].video.inbound.find(t=>t.ssrc===e),s=i.frameWidth!==r?.frameWidth,o=i.frameHeight!==r?.frameHeight;if(s||o)return!0}return!1};class lc extends ec{#u;#h;#p;constructor(e={}){super(),this.#u=e.avgFreezeDurationThresholdMs??1e3,this.#h=e.frozenDurationThresholdPct??30,this.#p=e.minMosQuality??La.BAD}performDetection(e){const t=e.networkScores.inbound;return void 0!==t&&t<=this.#p?[]:this.processData(e)}processData(e){const t=[],n=this.getAllLastProcessedStats(e.connection.id);if(0===n.length)return[];const i=e.video.inbound.map(t=>{const i=n[n.length-1].video.inbound.find(e=>e.ssrc===t.ssrc);if(!i)return;if(dc(t.ssrc,[n[n.length-1],e]))return;if(cc(t.ssrc,n))return;const r=t.freezeCount-(i.freezeCount??0),s=1e3*(t.totalFreezesDuration-(i.totalFreezesDuration??0)),o=r>0?s/r:0,a=s/(t.timestamp-i.timestamp)*100;return a>this.#h||o>this.#u?{ssrc:t.ssrc,avgFreezeDurationMs:o,frozenDurationPct:a}:void 0}).filter(e=>void 0!==e);return i.length>0&&(t.push({type:Na.Stream,reason:Ma.FrozenVideoTrack,statsSample:{ssrcs:i.map(e=>e.ssrc)}}),this.deleteLastProcessedStats(e.connection.id)),t}}class uc extends ec{#m;#g;#p;constructor(e={}){super(e),this.#m=e.volatilityThreshold??8,this.#g=e.affectedStream
1sPercentThreshold??30,this.#p=e.minMosQuality??La.BAD}performDetection(e){return[...this.getAllLastProcessedStats(e.connection.id),e].find(e=>void 0!==e.networkScores.inbound&&e.networkScores.inbound<=this.#p)?[]:this.processData(e)}processData(e){const t=[],n=[...this.getAllLastProcessedStats(e.connection.id),e],i=e.video.inbound.map(e=>{if(n.length<5)return;if(dc(e.ssrc,n))return;const t=[];for(let i=0;i<n.length-1;i+=1){const r=n[i].video.inbound.find(t=>t.ssrc===e.ssrc);void 0!==r?.framesPerSecond&&t.push(r.framesPerSecond)}if(t.length<5)return;if(cc(e.ssrc,n))return;const i=(e=>{if(0===e.length)throw new Error("Cannot calculate volatility for empty array");const t=ac(e);return e.reduce((e,n)=>e+Math.abs(n-t),0)/e.length*100/t})(t);return i>this.#m?{ssrc:e.ssrc,allFps:t,volatility:i}:void 0}).filter(e=>Boolean(e));if(0===i.length)return t;const r=i.length/(e.video.inbound.length/100);return r>this.#g&&(t.push({type:Na.CPU,reason:Ma.DecoderCPUThrottling,statsSample:{affectedStreamsPercent:r,throtthedStreams:i}}),this.deleteLastProcessedStats(e.connection.id)),t}}const hc=e=>"closed"===e.iceConnectionState||"closed"===e.connectionState,pc=(e,t,n)=>8*((e,t,n)=>{if(!t)return 0;const i=e[n],r=t[n];if(null==i||null==r)return 0;const s=Math.floor(e.timestamp)-Math.floor(t.timestamp);return 0===s?0:(Number(i)-Number(r))/s*1e3})(e,t,n);class mc{connections=[];statsParser;constructor(e){this.statsParser=e.statsParser}listConnections(){return[...this.connections]}addPeerConnection(e){this.connections.push({id:e.id??String(Date.now()+Math.random().toString(32)),pc:e.pc})}removePeerConnection(e){const t=this.connections.findIndex(({pc:t})=>t===e.pc);t>=0&&this.removeConnectionsByIndexes([t])}async parse(){const e=[],t=this.connections.map(async(t,n)=>{if(!hc(t.pc))return this.statsParser.parse(t);e.unshift(n)});return e.length&&this.removeConnectionsByIndexes(e),(await Promise.all(t)).filter(e=>void 0!==e)}removeConnectionsByIndexes(e){e.forEach(e=>{this.connections.splice(e,1)})}}class gc{prevStats=new Map;allowedReportTypes=new Set(["candidate-pair","inbound-rtp","outbound-rtp","remote-outbound-rtp","remote-inbound-rtp","track","transport"]);ignoreSSRCList;logger;constructor(e){this.ignoreSSRCList=e.ignoreSSRCList??[],this.logger=e.logger}get previouslyParsedStatsConnectionsIds(){return[...this.prevStats.keys()]}async parse(e){if(!hc(e.pc))return this.getConnectionStats(e);this.logger.debug("Skip stats parsing. Connection is closed.",{connection:e})}async getConnectionStats(e){const{pc:t,id:n}=e;try{const i=Date.now(),r=t.getReceivers().filter(e=>e.track?.enabled),s=t.getSenders().filter(e=>e.track?.enabled),o=await Promise.all(r.map(e=>e.getStats())),a=await Promise.all(s.map(e=>e.getStats()));return{id:n,stats:this.mapReportsStats([...o,...a],e),timeTaken:Date.now()-i}}catch(e){return void this.logger.error("Failed to get stats for PC",{id:n,pc:t,error:e})}}mapReportsStats(e,t){const n={audio:{inbound:[],outbound:[]},video:{inbound:[],outbound:[]},connection:{},remote:{video:{inbound:[],outbound:[]},audio:{inbound:[],outbound:[]}}};e.forEach(e=>{e.forEach(t=>{this.allowedReportTypes.has(t.type)&&this.updateMappedStatsWithReportItemData(t,n,e)})});const{id:i}=t,r=this.prevStats.get(i);return r&&this.propagateStatsWithRateValues(n,r.stats),this.prevStats.set(i,{stats:n,ts:Date.now()}),$a({taskId:i,delayMs:35e3,callback:()=>this.prevStats.delete(i)}),n}updateMappedStatsWithReportItemData(e,t,n){const i=e.type;if("candidate-pair"===i&&"succeeded"===e.state&&e.nominated)return void(t.connection=this.prepareConnectionStats(e,n));const r=this.getMediaType(e);if(!r)return;const s=e.ssrc;if(!s||!this.ignoreSSRCList.includes(s))if("outbound-rtp"!==i)if("inbound-rtp"!==i)"remote-outbound-rtp"!==i?"remote-inbound-rtp"===i&&(this.mapConnectionStatsIfNecessary(t,e,n),t.remote[r].inbound.push({...e})):t.remote[r].outbound.push({...e});else{const i=n.get(e.trackId)||n.get(e.mediaSourceId)||{};this.mapConnectionStatsIfNecessary(t,e,n);const s={...e,track:{...i}};t[r].inbound.push(s)}else{const i=n.get(e.trackId)||n.get(e.mediaSourceId)||{},s={...e,track:{...i}};t[r].outbound.push(s)}}getMediaType(e){const t=e.mediaType||e.kind;if(!["audio","video"].includes(t)){const{id:t}=e;if(!t)return;return String(t).includes("Video")?"video":String(t).includes("Audio")?"audio":void 0}return t}
1propagateStatsWithRateValues(e,t){e.audio.inbound.forEach(e=>{const n=t.audio.inbound.find(({id:t})=>t===e.id);e.bitrate=pc(e,n,"bytesReceived"),e.packetRate=pc(e,n,"packetsReceived")}),e.audio.outbound.forEach(e=>{const n=t.audio.outbound.find(({id:t})=>t===e.id);e.bitrate=pc(e,n,"bytesSent"),e.packetRate=pc(e,n,"packetsSent")}),e.video.inbound.forEach(e=>{const n=t.video.inbound.find(({id:t})=>t===e.id);e.bitrate=pc(e,n,"bytesReceived"),e.packetRate=pc(e,n,"packetsReceived")}),e.video.outbound.forEach(e=>{const n=t.video.outbound.find(({id:t})=>t===e.id);e.bitrate=pc(e,n,"bytesSent"),e.packetRate=pc(e,n,"packetsSent")})}mapConnectionStatsIfNecessary(e,t,n){if(e.connection.id||!t.transportId)return;const i=n.get(t.transportId);if(i&&i.selectedCandidatePairId){const t=n.get(i.selectedCandidatePairId);e.connection=this.prepareConnectionStats(t,n)}}prepareConnectionStats(e,t){if(!e||!t)return{};const n={...e};if(n.remoteCandidateId){const e=t.get(n.remoteCandidateId);n.remote={...e}}if(n.localCandidateId){const e=t.get(n.localCandidateId);n.local={...e}}return n}}class fc extends ec{#f=new Map;#v;#b;constructor(e={}){super(),this.#v=e.timeoutMs??15e3,this.#b=e.steps??3}performDetection(e){return this.processData(e)}processData(e){const t=[],n=[...this.getAllLastProcessedStats(e.connection.id),e];if(n.length<this.#b)return t;const i=n.slice(-this.#b),r=i.map(e=>e.video.inbound),s=i.map(e=>e.audio.inbound);return t.push(...this.detectMissingData(s,Na.Stream,Ma.MissingAudioStreamData)),t.push(...this.detectMissingData(r,Na.Stream,Ma.MissingVideoStreamData)),new Set(this.#f.keys()).forEach(e=>{const t=this.#f.get(e);t&&Date.now()-t>this.#v&&this.removeMarkedIssue(e)}),t}detectMissingData(e,t,n){const i=[],r=e.pop(),s=fc.mapStatsByTrackId(e);return r.forEach(e=>{const r=e.track.trackIdentifier,o=s.get(r);if(!Array.isArray(o)||0===o.length)return;if(e.track.detached||e.track.ended)return;if(!fc.isAllBytesReceivedDidntChange(e.bytesReceived,o))return void this.removeMarkedIssue(r);if(!this.markIssue(r))return;const a={bytesReceived:e.bytesReceived};i.push({type:t,reason:n,statsSample:a,trackIdentifier:r})}),i}static mapStatsByTrackId(e){const t=new Map;return e.forEach(e=>{e.forEach(e=>{const n=t.get(e.track.trackIdentifier)||[];n.push(e),t.set(e.track.trackIdentifier,n)})}),t}static isAllBytesReceivedDidntChange(e,t){for(let n=0;n<t.length;n+=1)if(t[n].bytesReceived!==e)return!1;return!0}markIssue(e){const t=Date.now(),n=this.#f.get(e);return(!n||t-n>this.#v)&&(this.#f.set(e,t),!0)}removeMarkedIssue(e){this.#f.delete(e)}}class vc{eventEmitter;#_=!1;detectors=[];networkScoresCalculator;statsReporter;compositeStatsParser;logger;autoAddPeerConnections;constructor(e){this.logger=e.logger??{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},this.eventEmitter=e.issueEmitter??new Ya,e.onIssues&&this.eventEmitter.on(Da.Issue,e.onIssues),e.onNetworkScoresUpdated&&this.eventEmitter.on(Da.NetworkScoresUpdated,e.onNetworkScoresUpdated),this.detectors=e.detectors??[new sc,new nc,new rc,new ic,new tc,new oc,new lc,new uc,new fc],this.networkScoresCalculator=e.networkScoresCalculator??new Za,this.compositeStatsParser=e.compositeStatsParser??new mc({statsParser:new gc({ignoreSSRCList:e.ignoreSSRCList,logger:this.logger})}),this.statsReporter=e.statsReporter??new Xa({compositeStatsParser:this.compositeStatsParser,getStatsInterval:e.getStatsInterval??5e3}),window.wid=this,this.autoAddPeerConnections=e.autoAddPeerConnections??!0,this.autoAddPeerConnections&&this.wrapRTCPeerConnection(),this.statsReporter.on(Xa.STATS_REPORT_READY_EVENT,e=>{const t=this.calculateNetworkScores(e.stats);this.detectIssues({data:e.stats},t)}),this.statsReporter.on(Xa.STATS_REPORTS_PARSED,t=>{const n={timeTaken:t.timeTaken,ts:Date.now()};e.onStats&&e.onStats(t.reportItems),this.eventEmitter.emit(Da.StatsParsingFinished,n)})}watchNewPeerConnections(){if(!this.autoAddPeerConnections)throw new Error("Auto add peer connections was disabled in the constructor.");this.#_?this.logger.warn("WebRTCIssueDetector is already started. Skip processing"):(this.logger.info("Start watching peer connections"),this.#_=!0,this.statsReporter.startReporting())}stopWatchingNewPeerConnections(){this.#_?(this.logger.info("Stop watching peer connections"),this.#_=!1,this.statsReporter.stopReporting()):this.logger.warn("WebRTCIssueDetector is already stopped. Skip processing")}handleNewPeerConnection(e,t){this.#_||!this.autoAddPeerConnections?(this.#_||!1!==this.autoAddPeerConnections||(this.logger.info("Starting stats reporting for new peer connection"),this.#_=!0,this.statsReporter.startReporting()),this.logger.debug("Handling new peer connection",e),this.compositeStatsParser.addPeerConnection({pc:e,id:t})):this.logger.debug("Skip handling new peer connection. Detector is not running",e)}emitIssues(e){this.eventEmitter.emit(Da.Issue,e)}detectIssues({data:e},t){const n=this.detectors.reduce((n,i)=>[...n,...i.detect(e,t)],[]);n.length>0&&this.emitIssues(n)}calculateNetworkScores(e){const t=this.networkScoresCalculator.calculate(e);return this.eventEmitter.emit(Da.NetworkScoresUpdated,t),t}wrapRTCPeerConnection(){if(!window.RTCPeerConnection)return void this.logger.warn("No RTCPeerConnection found in browser window. Skipping");const e=window.RTCPeerConnection,t=e=>this.handleNewPeerConnection(e);function n(n){const i=new e(n);return t(i),i}n.prototype=e.prototype,window.RTCPeerConnection=n}}
1function bc(e,t,n,i){return new(n||(n=Promise))(function(r,s){function o(e){try{c(i.next(e))}catch(e){s(e)}}function a(e){try{c(i.throw(e))}catch(e){s(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,a)}c((i=i.apply(e,t||[])).next())})}var _c,yc,kc,Sc,Tc,Cc,wc;"function"==typeof SuppressedError&&SuppressedError,function(e){e.SESSION_STATE_CHANGED="session.state_changed",e.SESSION_STREAM_READY="session.stream_ready",e.SESSION_CONNECTION_QUALITY_CHANGED="session.connection_quality_changed",e.SESSION_DISCONNECTED="session.disconnected"}(_c||(_c={})),function(e){e.SESSION_UPDATED="session.updated",e.SESSION_STATE_UPDATED="session.state_updated",e.USER_SPEAK_STARTED="user.speak_started",e.USER_SPEAK_ENDED="user.speak_ended",e.USER_TRANSCRIPTION="user.transcription",e.AVATAR_TRANSCRIPTION="avatar.transcription",e.AVATAR_SPEAK_STARTED="avatar.speak_started",e.AVATAR_SPEAK_ENDED="avatar.speak_ended"}(yc||(yc={})),function(e){e.SESSION_UPDATE="session.update",e.SESSION_STOP="session.stop",e.AVATAR_INTERRUPT="avatar.interrupt",e.AVATAR_SPEAK_TEXT="avatar.speak_text",e.AVATAR_SPEAK_RESPONSE="avatar.speak_response",e.AVATAR_SPEAK_AUDIO="avatar.speak_audio",e.AVATAR_START_LISTENING="avatar.start_listening",e.AVATAR_STOP_LISTENING="avatar.stop_listening"}(kc||(kc={})),function(e){e.INACTIVE="INACTIVE",e.CONNECTING="CONNECTING",e.CONNECTED="CONNECTED",e.DISCONNECTING="DISCONNECTING",e.DISCONNECTED="DISCONNECTED"}(Sc||(Sc={})),function(e){e.UNKNOWN_REASON="UNKNOWN_REASON",e.CLIENT_INITIATED="CLIENT_INITIATED",e.SESSION_START_FAILED="SESSION_START_FAILED"}(Tc||(Tc={})),function(e){e.af="af",e.sq="sq",e.am="am",e.ar="ar",e.hy="hy",e.as="as",e.ast="ast",e.az="az",e.ba="ba",e.eu="eu",e.be="be",e.bn="bn",e.bs="bs",e.br="br",e.bg="bg",e.my="my",e.ca="ca",e.ceb="ceb",e.zh="zh",e.hr="hr",e.cs="cs",e.da="da",e.nl="nl",e.en="en",e.et="et",e.fo="fo",e.fi="fi",e.fr="fr",e.fy="fy",e.ff="ff",e.gd="gd",e.gl="gl",e.lg="lg",e.ka="ka",e.de="de",e.el="el",e.gu="gu",e.ht="ht",e.ha="ha",e.haw="haw",e.he="he",e.hi="hi",e.hu="hu",e.is="is",e.ig="ig",e.ilo="ilo",e.id="id",e.ga="ga",e.it="it",e.ja="ja",e.jv="jv",e.kn="kn",e.kk="kk",e.km="km",e.ko="ko",e.lo="lo",e.la="la",e.lv="lv",e.lb="lb",e.ln="ln",e.lt="lt",e.mk="mk",e.mg="mg",e.ms="ms",e.ml="ml",e.mt="mt",e.mi="mi",e.mr="mr",e.mo="mo",e.mn="mn",e.ne="ne",e.no="no",e.nn="nn",e.oc="oc",e.or="or",e.pa="pa",e.ps="ps",e.fa="fa",e.pl="pl",e.pt="pt",e.ro="ro",e.ru="ru",e.sa="sa",e.sr="sr",e.sn="sn",e.sd="sd",e.
1si="si",e.sk="sk",e.sl="sl",e.so="so",e.es="es",e.su="su",e.sw="sw",e.ss="ss",e.sv="sv",e.tl="tl",e.tg="tg",e.ta="ta",e.tt="tt",e.te="te",e.th="th",e.bo="bo",e.tn="tn",e.tr="tr",e.tk="tk",e.uk="uk",e.ur="ur",e.uz="uz",e.vi="vi",e.cy="cy",e.wo="wo",e.xh="xh",e.yi="yi",e.yo="yo",e.zu="zu"}(Cc||(Cc={})),function(e){e.UNKNOWN="UNKNOWN",e.GOOD="GOOD",e.BAD="BAD"}(wc||(wc={}));class Ec{constructor(e){this._connectionQuality=wc.UNKNOWN,this.onConnectionQualityChanged=e}get connectionQuality(){return this._connectionQuality}handleStatsChanged(){const e=this.calculateConnectionQuality();e!==this._connectionQuality&&(this._connectionQuality=e,this.onConnectionQualityChanged(e))}start(e){this.stop(!0),this._start(e)}stop(e=!1){this._stop(),this._connectionQuality=wc.UNKNOWN,e||this.onConnectionQualityChanged(wc.UNKNOWN)}}const Pc=function(...e){return class extends Ec{constructor(t){super(t),this.childTrackers=e.map(({getParams:e,TrackerClass:t})=>({tracker:new t(()=>this.handleStatsChanged()),getParams:e}))}calculateConnectionQuality(){const e=this.childTrackers.map(({tracker:e})=>e.connectionQuality);return e.some(e=>e===wc.BAD)?wc.BAD:e.every(e=>e===wc.UNKNOWN)?wc.UNKNOWN:wc.GOOD}_start(e){this.childTrackers.forEach(({tracker:t,getParams:n})=>t.start(n(e)))}_stop(){this.childTrackers.forEach(({tracker:e})=>e.stop(!0))}}}({TrackerClass:class extends Ec{constructor(){super(...arguments),this.room=null,this.liveKitConnectionQuality=ra.Unknown,this.liveKitConnectionState=null,this.handleConnectionQualityChanged=e=>{this.liveKitConnectionQuality=e,this.handleStatsChanged()},this.handleConnectionStateChanged=e=>{this.liveKitConnectionState=e,this.handleStatsChanged()}}_start(e){this.room=e,this.room.localParticipant.on(dr.ConnectionQualityChanged,this.handleConnectionQualityChanged),this.room.on(cr.ConnectionStateChanged,this.handleConnectionStateChanged)}_stop(){this.room&&(this.room.localParticipant.off(dr.ConnectionQualityChanged,this.handleConnectionQualityChanged),this.room.off(cr.ConnectionStateChanged,this.handleConnectionStateChanged))}calculateConnectionQuality(){return[ra.Lost,ra.Poor].includes(this.liveKitConnectionQuality)||this.liveKitConnectionState&&[sa.Disconnected,sa.Reconnecting,sa.SignalReconnecting].includes(this.liveKitConnectionState)?wc.BAD:wc.GOOD}},getParams:e=>e},{TrackerClass:class extends Ec{constructor(){super(...arguments),this.issueDetector=null,this.mosScores=null}_start(e){this.issueDetector=new vc({autoAddPeerConnections:!1,getStatsInterval:3e3,onNetworkScoresUpdated:e=>{this.mosScores=e,this.handleStatsChanged()}}),this.issueDetector.handleNewPeerConnection(e)}_stop(){this.issueDetector&&(this.issueDetector.stopWatchingNewPeerConnections(),this.issueDetector=null),this.mosScores=null}calculateConnectionQuality(){return this.mosScores&&(this.mosScores.inbound||this.mosScores.outbound)?this.mosScores.inbound&&this.mosScores.inbound<3||this.mosScores.outbound&&this.mosScores.outbound<3?wc.BAD:wc.GOOD:wc.UNKNOWN}},getParams:e=>{var t;return(null===(t=e.engine.pcManager)||void 0===t?void 0:t.subscriber)._pc}});var Rc,Ic;!function(e){e.MUTED="MUTED",e.UNMUTED="UNMUTED",e.STATE_CHANGED="STATE_CHANGED"}(Rc||(Rc={})),function(e){e.INACTIVE="INACTIVE",e.STARTING="STARTING",e.ACTIVE="ACTIVE"}(Ic||(Ic={}));class Oc extends ja.EventEmitter{constructor(e){super(),this._state=Ic.INACTIVE,this.track=null,this.room=e}get isConnected(){return this.room.state!==sa.Disconnected&&this.room.state!==sa.Connecting}get state(){return this._state}get isMuted(){var e,t;return null===(t=null===(e=this.track)||void 0===e?void 0:e.isMuted)||void 0===t||t}start(){return bc(this,arguments,void 0,function*(e={}){if(!this.isConnected)return void console.warn("Voice chat can only be started when session is active");if(this._state!==Ic.INACTIVE)return void console.warn("Voice chat is already started");this.state=Ic.STARTING;const{defaultMuted:t,deviceId:n}=e;this.track=yield function(e){return zn(this,void 0,void 0,function*(){return(yield Ea({audio:null==e||e,video:!1}
1))[0]})}({echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0,deviceId:n}),t?(yield this.track.mute(),this.emit(Rc.MUTED)):this.emit(Rc.UNMUTED),yield this.room.localParticipant.publishTrack(this.track),this.track.on(ur.Muted,()=>{this.emit(Rc.MUTED)}),this.track.on(ur.Unmuted,()=>{this.emit(Rc.UNMUTED)}),this.state=Ic.ACTIVE})}stop(){this.room.localParticipant.getTrackPublications().forEach(e=>{e.track&&e.track.kind===Ar.Kind.Audio&&e.track.stop()}),this.track&&(this.track.removeAllListeners(),this.track.stop(),this.track=null),this.state=Ic.INACTIVE}mute(){return bc(this,void 0,void 0,function*(){this.state===Ic.ACTIVE?this.track&&this.track.mute():console.warn("Voice chat can only be muted when active")})}unmute(){return bc(this,void 0,void 0,function*(){this.state===Ic.ACTIVE?this.track&&this.track.unmute():console.warn("Voice chat can only be unmuted when active")})}setDevice(e){return bc(this,void 0,void 0,function*(){return this.state!==Ic.ACTIVE?(console.warn("Voice chat device can only be set when active"),!1):!!this.track&&this.track.setDeviceId(e)})}set state(e){this._state!==e&&(this._state=e,this.emit(Rc.STATE_CHANGED,e))}}const xc="https://api.liveavatar.com";class Ac extends Error{constructor(e,t,n){super(e),this.status=null,this.errorCode=null!=t?t:500,this.status=null!=n?n:null}}class Dc{constructor(e,t=xc){this.sessionToken=e,this.apiUrl=null!=t?t:xc}request(e,t){return bc(this,void 0,void 0,function*(){try{const n=yield fetch(`${this.apiUrl}${e}`,Object.assign(Object.assign({},t),{credentials:"include",headers:Object.assign({Authorization:`Bearer ${this.sessionToken}`,"Content-Type":"application/json"},t.headers)}));if(!n.ok){const e=yield n.json();throw new Ac(e.message||`API request failed with status ${n.status}`,e.code,n.status)}const i=yield n.json();if(1e3!==i.code)throw new Ac(i.message||"API request failed");return i.data}catch(e){if(e instanceof Ac)throw e;throw new Ac("API request failed")}})}startSession(){return bc(this,void 0,void 0,function*(){return yield this.request("/v1/sessions/start",{method:"POST"})})}stopSession(){return bc(this,void 0,void 0,function*(){return yield this.request("/v1/sessions/stop",{method:"POST"})})}keepAlive(){return bc(this,void 0,void 0,function*(){return yield this.request("/v1/sessions/keep-alive",{method:"POST"})})}}class Nc extends ja.EventEmitter{constructor(e,t){super(),this.connectionQualityIndicator=new Pc(e=>this.emit(_c.SESSION_CONNECTION_QUALITY_CHANGED,e)),this._sessionInfo=null,this._sessionEventSocket=null,this._state=Sc.INACTIVE,this._remoteAudioTrack=null,this._remoteVideoTrack=null,this.config=null!=t?t:{},this.sessionClient=new Dc(e,this.config.apiUrl),this.room=new xa({adaptiveStream:void 0!==typeof ResizeObserver&&void 0!==typeof IntersectionObserver&&{pauseVideoInBackground:!1},dynacast:Gr(),videoCaptureDefaults:{resolution:Vr.h720.resolution}}),this._voiceChat=new Oc(this.room)}get state(){return this._state}get connectionQuality(){return this.connectionQualityIndicator.connectionQuality}get voiceChat(){return this._voiceChat}get maxSessionDuration(){var e,t;return null!==(t=null===(e=this._sessionInfo)||void 0===e?void 0:e.max_session_duration)&&void 0!==t?t:null}start(){return bc(this,void 0,void 0,function*(){if(this.state===Sc.INACTIVE)try{this.state=Sc.CONNECTING,this._sessionInfo=yield this.sessionClient.startSession();const e=this._sessionInfo.livekit_url,t=this._sessionInfo.livekit_client_token,n=this._sessionInfo.ws_url;e&&t&&(this.trackEvents(),yield this.room.connect(e,t),this.connectionQualityIndicator.start(this.room)),n&&(yield this.connectWebSocket(n),this.setupWebSocketManagement()),yield this.configureSession(),this.state=Sc.CONNECTED}catch(e){throw console.error("Session start failed:",e),this.cleanup(),this.postStop(Tc.SESSION_START_FAILED),e}else console.warn("Session is already started")})}stop(){return bc(this,void 0,void 0,function*(){this.assertConnected()&&(this.state=Sc.DISCONNECTING,this.cleanup(),this.postStop(Tc.CLIENT_INITIATED))})}keepAlive(){return bc(this,void 0,void 0,function*(){if(this.assertConnected())try{this.sessionClient.keepAlive()}catch(e){throw console.error("Session keep alive error on server:",e),e}})}attach(e){this._remoteVideoTrack&&this._remoteAudioTrack?(this._remoteVideoTrack.attach(e),this._remoteAudioTrack.attach(e)):console.warn("Stream is not yet ready")}message(e){if(!this.assertConnected())return;const t={event_type:kc.AVATAR_SPEAK_RESPONSE,text:e};this.sendCommandEvent(t)}repeat(e){if(!this.assertConnected())return;const t={event_type:kc.AVATAR_SPEAK_TEXT,text:e};this.sendCommandEvent(t)}repeatAudio(e){if(!this.assertConnected())return;if(!this._sessionEventSocket)return void console.warn("Cannot repeat audio. Please check you're using a supported mode.");const t={event_type:kc.AVATAR_SPEAK_AUDIO,audio:e};this.sendCommandEvent(t)}startListening(){if(!this.assertConnected())return;const e={event_type:kc.AVATAR_START_LISTENING};this.sendCommandEvent(e)}stopListening(){if(!this.assertConnected())return;const e={event_type:kc.AVATAR_STOP_LISTENING};this.sendCommandEvent(e)}interrupt(){if(!this.assertConnected())return;const e={event_type:kc.AVATAR_INTERRUPT};this.sendCommandEvent(e)}trackEvents(){const e=new MediaStream;this.room.on(cr.TrackSubscribed,(t,n,i)=>{if("heygen"===i.identity&&("video"===t.kind||"audio"===t.kind)){"video"===t.kind?this._remoteVideoTrack=t:this._remoteAudioTrack=t,e.addTrack(t.mediaStreamTrack);const n=e.getVideoTracks().length>0,i=e.getAudioTracks().length>0;
1n&&i&&this.emit(_c.SESSION_STREAM_READY)}}),this.room.on(cr.DataReceived,(e,t,n,i)=>{if("agent-response"!==i)return;let r=null;try{const t=(new TextDecoder).decode(e);r=JSON.parse(t)}catch(e){console.error(e)}if(!r)return;const s=(e=>{if("event_type"in e)switch(e.event_type){case yc.USER_SPEAK_STARTED:{const t={event_id:e.event_id,event_type:e.event_type};return[yc.USER_SPEAK_STARTED,t]}case yc.USER_SPEAK_ENDED:{const t={event_id:e.event_id,event_type:e.event_type};return[yc.USER_SPEAK_ENDED,t]}case yc.USER_TRANSCRIPTION:{const t={event_id:e.event_id,event_type:e.event_type,text:e.text};return[yc.USER_TRANSCRIPTION,t]}case yc.AVATAR_SPEAK_STARTED:{const t={event_id:e.event_id,event_type:e.event_type};return[yc.AVATAR_SPEAK_STARTED,t]}case yc.AVATAR_SPEAK_ENDED:{const t={event_id:e.event_id,event_type:e.event_type};return[yc.AVATAR_SPEAK_ENDED,t]}case yc.AVATAR_TRANSCRIPTION:{const t={event_id:e.event_id,event_type:e.event_type,text:e.text};return[yc.AVATAR_TRANSCRIPTION,t]}default:return console.warn("New unsupported event type"),null}return null})(r);if(s){const[e,...t]=s;this.emit(e,...t)}}),this.room.on(cr.ParticipantConnected,e=>{console.warn("participantConnected",e)}),this.room.on(cr.TrackUnsubscribed,t=>{console.warn("trackUnsubscribed",t);const n=t.mediaStreamTrack;n&&e.removeTrack(n)}),this.room.on(cr.Disconnected,()=>{this.handleRoomDisconnect()})}connectWebSocket(e){return bc(this,void 0,void 0,function*(){return new Promise((t,n)=>{this._sessionEventSocket=new WebSocket(e),this._sessionEventSocket.onopen=()=>{t()}})})}setupWebSocketManagement(){this._sessionEventSocket&&(this._sessionEventSocket.onmessage=e=>{this.handleWebSocketMessage(e)},this._sessionEventSocket.onerror=e=>{console.error("WebSocket error:",e)},this._sessionEventSocket.onclose=e=>{console.warn("WebSocket closed - code:",e.code,"reason:",e.reason,"wasClean:",e.wasClean),this.handleWebSocketDisconnect()})}handleWebSocketMessage(e){let t=null;try{t=JSON.parse(e.data)}catch(e){return void console.error("Failed to parse WebSocket message:",e)}if(!t)return;const{type:n,event_id:i}=t;"agent.speak_started"===n?this.emit(yc.AVATAR_SPEAK_STARTED,{event_type:yc.AVATAR_SPEAK_STARTED,event_id:i}):"agent.speak_ended"===n&&this.emit(yc.AVATAR_SPEAK_ENDED,{event_type:yc.AVATAR_SPEAK_ENDED,event_id:i})}handleWebSocketDisconnect(){this.state!==Sc.DISCONNECTING&&this.state!==Sc.DISCONNECTED&&(this._sessionEventSocket&&this._sessionEventSocket.readyState===WebSocket.OPEN&&this._sessionEventSocket.close(),this._sessionEventSocket=null,this.cleanup(),this.postStop(Tc.UNKNOWN_REASON))}configureSession(){return bc(this,void 0,void 0,function*(){this.config.voiceChat&&(yield this.voiceChat.start("boolean"==typeof this.config.voiceChat?{}:this.config.voiceChat))})}set state(e){this._state!==e&&(this._state=e,this.emit(_c.SESSION_STATE_CHANGED,e))}cleanup(){return bc(this,void 0,void 0,function*(){this.connectionQualityIndicator.stop(),this.voiceChat.stop(),this._remoteAudioTrack&&this._remoteAudioTrack.stop(),this._remoteVideoTrack&&this._remoteVideoTrack.stop(),this._remoteAudioTrack=null,this._remoteVideoTrack=null,this.room.localParticipant.removeAllListeners(),this.room.removeAllListeners(),this._sessionEventSocket&&(this._sessionEventSocket.onopen=null,this._sessionEventSocket.onmessage=null,this._sessionEventSocket.onerror=null,this._sessionEventSocket.onclose=null,this._sessionEventSocket.readyState!==WebSocket.OPEN&&this._sessionEventSocket.readyState!==WebSocket.CONNECTING||this._sessionEventSocket.close(),this._sessionEventSocket=null),"connected"===this.room.state&&this.room.disconnect(),yield this.sessionClient.stopSession()})}postStop(e){this.state=Sc.DISCONNECTED,this.emit(_c.SESSION_DISCONNECTED,e)}handleRoomDisconnect(){this.cleanup(),this.postStop(Tc.UNKNOWN_REASON)}sendCommandEvent(e){if(this._sessionEventSocket&&this._sessionEventSocket.readyState===WebSocket.OPEN)this.sendCommandEventToWebSocket(e);else if("connected"===this.room.state){const t=(new TextEncoder).encode(JSON.stringify(e));this.room.localParticipant.publishData(t,{reliable:!0,topic:"agent-control"})}else console.warn("No active connection to send command event")}generateEventId(){return"undefined"!=typeof crypto&&crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}sendCommandEventToWebSocket(e){if(!this._sessionEventSocket||this._sessionEventSocket.readyState!==WebSocket.OPEN)return void console.warn("WebSocket not open to send command event");const t=e.event_type,n=this.generateEventId();let i=[];switch(t){case kc.AVATAR_SPEAK_AUDIO:i=function(e){const t=e.length,n=[];for(let i=0;i<t;i+=960)n.push(e.slice(i,i+960));return n}(e.audio);for(const e of i)this._sessionEventSocket.send(JSON.stringify({type:"agent.speak",event_id:n,audio:e}));return void this._sessionEventSocket.send(JSON.stringify({type:"agent.speak_end",event_id:n}));case kc.AVATAR_INTERRUPT:return void this._sessionEventSocket.send(JSON.stringify({type:"agent.interrupt",event_id:n}));case kc.AVATAR_START_LISTENING:return void this._sessionEventSocket.send(JSON.stringify({type:"agent.start_listening",event_id:n}));case kc.AVATAR_STOP_LISTENING:return void this._sessionEventSocket.send(JSON.stringify({type:"agent.stop_listening",event_id:n}));default:console.warn("Unsupported command event type:",t)}}assertConnected(){return this.state===Sc.CONNECTED||(console.warn("Session is not connected"),!1)}}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.