@fishjam-cloud/ts-client 0.26.0 → 0.26.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,17 +1,17 @@
1
- var Jr=Object.create;var St=Object.defineProperty;var Ar=Object.getOwnPropertyDescriptor;var Br=Object.getOwnPropertyNames;var Dr=Object.getPrototypeOf,Ur=Object.prototype.hasOwnProperty;var on=(e,t)=>()=>(e&&(t=e(e=0)),t);var Vr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),sn=(e,t)=>{for(var n in t)St(e,n,{get:t[n],enumerable:!0})},Lr=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Br(t))!Ur.call(e,r)&&r!==n&&St(e,r,{get:()=>t[r],enumerable:!(i=Ar(t,r))||i.enumerable});return e};var kt=(e,t,n)=>(n=e!=null?Jr(Dr(e)):{},Lr(t||!e||!e.__esModule?St(n,"default",{value:e,enumerable:!0}):n,e));var ct=Vr((ud,Lt)=>{"use strict";var Be=typeof Reflect=="object"?Reflect:null,ka=Be&&typeof Be.apply=="function"?Be.apply:function(t,n,i){return Function.prototype.apply.call(t,n,i)},Et;Be&&typeof Be.ownKeys=="function"?Et=Be.ownKeys:Object.getOwnPropertySymbols?Et=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Et=function(t){return Object.getOwnPropertyNames(t)};function ai(e){console&&console.warn&&console.warn(e)}var ha=Number.isNaN||function(t){return t!==t};function I(){I.init.call(this)}Lt.exports=I;Lt.exports.once=oi;I.EventEmitter=I;I.prototype._events=void 0;I.prototype._eventsCount=0;I.prototype._maxListeners=void 0;var pa=10;function mt(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(I,"defaultMaxListeners",{enumerable:!0,get:function(){return pa},set:function(e){if(typeof e!="number"||e<0||ha(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");pa=e}});I.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};I.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||ha(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function va(e){return e._maxListeners===void 0?I.defaultMaxListeners:e._maxListeners}I.prototype.getMaxListeners=function(){return va(this)};I.prototype.emit=function(t){for(var n=[],i=1;i<arguments.length;i++)n.push(arguments[i]);var r=t==="error",a=this._events;if(a!==void 0)r=r&&a.error===void 0;else if(!r)return!1;if(r){var d;if(n.length>0&&(d=n[0]),d instanceof Error)throw d;var c=new Error("Unhandled error."+(d?" ("+d.message+")":""));throw c.context=d,c}var u=a[t];if(u===void 0)return!1;if(typeof u=="function")ka(u,this,n);else for(var k=u.length,p=Ma(u,k),i=0;i<k;++i)ka(p[i],this,n);return!0};function Ta(e,t,n,i){var r,a,d;if(mt(n),a=e._events,a===void 0?(a=e._events=Object.create(null),e._eventsCount=0):(a.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),d=a[t]),d===void 0)d=a[t]=n,++e._eventsCount;else if(typeof d=="function"?d=a[t]=i?[n,d]:[d,n]:i?d.unshift(n):d.push(n),r=va(e),r>0&&d.length>r&&!d.warned){d.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+d.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=d.length,ai(c)}return e}I.prototype.addListener=function(t,n){return Ta(this,t,n,!1)};I.prototype.on=I.prototype.addListener;I.prototype.prependListener=function(t,n){return Ta(this,t,n,!0)};function ri(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Ea(e,t,n){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=ri.bind(i);return r.listener=n,i.wrapFn=r,r}I.prototype.once=function(t,n){return mt(n),this.on(t,Ea(this,t,n)),this};I.prototype.prependOnceListener=function(t,n){return mt(n),this.prependListener(t,Ea(this,t,n)),this};I.prototype.removeListener=function(t,n){var i,r,a,d,c;if(mt(n),r=this._events,r===void 0)return this;if(i=r[t],i===void 0)return this;if(i===n||i.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,i.listener||n));else if(typeof i!="function"){for(a=-1,d=i.length-1;d>=0;d--)if(i[d]===n||i[d].listener===n){c=i[d].listener,a=d;break}if(a<0)return this;a===0?i.shift():ii(i,a),i.length===1&&(r[t]=i[0]),r.removeListener!==void 0&&this.emit("removeListener",t,c||n)}return this};I.prototype.off=I.prototype.removeListener;I.prototype.removeAllListeners=function(t){var n,i,r;if(i=this._events,i===void 0)return this;if(i.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):i[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete i[t]),this;if(arguments.length===0){var a=Object.keys(i),d;for(r=0;r<a.length;++r)d=a[r],d!=="removeListener"&&this.removeAllListeners(d);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=i[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(r=n.length-1;r>=0;r--)this.removeListener(t,n[r]);return this};function ma(e,t,n){var i=e._events;if(i===void 0)return[];var r=i[t];return r===void 0?[]:typeof r=="function"?n?[r.listener||r]:[r]:n?di(r):Ma(r,r.length)}I.prototype.listeners=function(t){return ma(this,t,!0)};I.prototype.rawListeners=function(t){return ma(this,t,!1)};I.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Ia.call(e,t)};I.prototype.listenerCount=Ia;function Ia(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}I.prototype.eventNames=function(){return this._eventsCount>0?Et(this._events):[]};function Ma(e,t){for(var n=new Array(t),i=0;i<t;++i)n[i]=e[i];return n}function ii(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function di(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function oi(e,t){return new Promise(function(n,i){function r(d){e.removeListener(t,a),i(d)}function a(){typeof e.removeListener=="function"&&e.removeListener("error",r),n([].slice.call(arguments))}ya(e,t,a,{once:!0}),t!=="error"&&si(e,r,{once:!0})})}function si(e,t,n){typeof e.on=="function"&&ya(e,"error",t,n)}function ya(e,t,n,i){if(typeof e.on=="function")i.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function r(a){i.once&&e.removeEventListener(t,r),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}});var Pr={};sn(Pr,{WHEPClient:()=>rn});var at,rn,Cr=on(()=>{"use strict";at={Core:{ServerSentEvents:"urn:ietf:params:whep:ext:core:server-sent-events",Layer:"urn:ietf:params:whep:ext:core:layer"}},rn=class extends EventTarget{constructor(){super(),this.iceUsername=null,this.icePassword=null,this.candidates=[],this.endOfcandidates=!1,this.onOffer=t=>t,this.onAnswer=t=>t}throwWithResponse(t,n){let i=new Error(t);throw i.response=n,i}async view(t,n,i){if(this.pc)throw new Error("Already viewing");this.token=i,this.pc=t,t.onicecandidate=p=>{if(p.candidate){if(p.candidate.sdpMLineIndex>0)return;this.candidates.push(p.candidate)}else this.endOfcandidates=!0;!this.iceTrickeTimeout&&!this.restartIce&&(this.iceTrickeTimeout=setTimeout(()=>this.patch(),0))};let r=await t.createOffer();r.sdp=this.onOffer(r.sdp);let a={"Content-Type":"application/sdp"};i&&(a.Authorization="Bearer "+i);let d=await fetch(n,{method:"POST",body:r.sdp,headers:a});d.ok||this.throwWithResponse("Request rejected with status "+d.status,d),d.headers.get("location")||this.throwWithResponse("Response missing location header",d),this.resourceURL=new URL(d.headers.get("location"),n);let c={};if(d.headers.has("link")){let p=d.headers.get("link").split(/,\s+(?=<)/);for(let T of p)try{let h,v={},M=T.split(";"),H=M[0].trim().replace(/<(.*)>/,"$1").trim();for(let q=1;q<M.length;++q){let A=M[q].split(/=(.*)/),rt=A[0].trim(),it=A[1]?A[1].trim().replaceAll('"',"").replaceAll("'",""):A[1];rt==="rel"?h=it:v[rt]=it}if(!h)continue;c[h]||(c[h]=[]),c[h].push({url:H,params:v})}catch(h){console.error(h)}}if(c.hasOwnProperty(at.Core.ServerSentEvents)&&(this.eventsUrl=new URL(c[at.Core.ServerSentEvents][0].url,n)),c.hasOwnProperty(at.Core.Layer)&&(this.layerUrl=new URL(c[at.Core.Layer][0].url,n)),this.eventsUrl){let p=c[at.Core.ServerSentEvents][0].params.events?c[at.Core.ServerSentEvents][0].params.events.split(","):["active","inactive","layers","viewercount"],T={"Content-Type":"application/json"};this.token&&(T.Authorization="Bearer "+this.token),fetch(this.eventsUrl,{method:"POST",body:JSON.stringify(p),headers:T}).then(h=>{if(!h.ok)return;let v=new URL(h.headers.get("location"),this.eventsUrl);this.eventSource=new EventSource(v),this.eventSource.onmessage=M=>{this.dispatchEvent(M)}})}let u=t.getConfiguration();if((!u.iceServer||!u.iceServer.length)&&c.hasOwnProperty("ice-server")){u.iceServers=[];for(let p of c["ice-server"])try{let T={urls:p.url};for(let[h,v]of Object.entries(p.params)){let M=h.replace(/([-_][a-z])/ig,H=>H.toUpperCase().replace("-","").replace("_",""));T[M]=v}u.iceServers.push(T)}catch{}u.iceServers.length&&t.setConfiguration(u)}let k=await d.text();this.iceTrickeTimeout||(this.iceTrickeTimeout=setTimeout(()=>this.patch(),0)),await t.setLocalDescription(r),this.iceUsername=r.sdp.match(/a=ice-ufrag:(.*)\r\n/)[1],this.icePassword=r.sdp.match(/a=ice-pwd:(.*)\r\n/)[1],await t.setRemoteDescription({type:"answer",sdp:this.onAnswer(k)})}async restart(){this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),this.candidates=[],this.endOfcandidates=!1,this.pc.restartIce();let t=await this.pc.createOffer({iceRestart:!0});return this.iceUsername=t.sdp.match(/a=ice-ufrag:(.*)\r\n/)[1],this.icePassword=t.sdp.match(/a=ice-pwd:(.*)\r\n/)[1],await this.pc.setLocalDescription(t),this.restartIce=new Date,this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),this.patch()}async patch(){if(this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),!(this.candidates.length||this.endOfcandidates||this.restartIce)||!this.resourceURL)return;let t=this.candidates,n=this.endOfcandidates,i=this.restartIce;this.candidates=[],this.endOfcandidates=!1;let r="a=ice-ufrag:"+this.iceUsername+`\r
1
+ var Ar=Object.create;var St=Object.defineProperty;var Br=Object.getOwnPropertyDescriptor;var Dr=Object.getOwnPropertyNames;var Ur=Object.getPrototypeOf,Vr=Object.prototype.hasOwnProperty;var sn=(e,t)=>()=>(e&&(t=e(e=0)),t);var Lr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),cn=(e,t)=>{for(var n in t)St(e,n,{get:t[n],enumerable:!0})},Fr=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Dr(t))!Vr.call(e,r)&&r!==n&&St(e,r,{get:()=>t[r],enumerable:!(i=Br(t,r))||i.enumerable});return e};var kt=(e,t,n)=>(n=e!=null?Ar(Ur(e)):{},Fr(t||!e||!e.__esModule?St(n,"default",{value:e,enumerable:!0}):n,e));var ct=Lr((fd,Lt)=>{"use strict";var Be=typeof Reflect=="object"?Reflect:null,pa=Be&&typeof Be.apply=="function"?Be.apply:function(t,n,i){return Function.prototype.apply.call(t,n,i)},Et;Be&&typeof Be.ownKeys=="function"?Et=Be.ownKeys:Object.getOwnPropertySymbols?Et=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:Et=function(t){return Object.getOwnPropertyNames(t)};function ri(e){console&&console.warn&&console.warn(e)}var va=Number.isNaN||function(t){return t!==t};function I(){I.init.call(this)}Lt.exports=I;Lt.exports.once=si;I.EventEmitter=I;I.prototype._events=void 0;I.prototype._eventsCount=0;I.prototype._maxListeners=void 0;var ha=10;function mt(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(I,"defaultMaxListeners",{enumerable:!0,get:function(){return ha},set:function(e){if(typeof e!="number"||e<0||va(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");ha=e}});I.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};I.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||va(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function Ta(e){return e._maxListeners===void 0?I.defaultMaxListeners:e._maxListeners}I.prototype.getMaxListeners=function(){return Ta(this)};I.prototype.emit=function(t){for(var n=[],i=1;i<arguments.length;i++)n.push(arguments[i]);var r=t==="error",a=this._events;if(a!==void 0)r=r&&a.error===void 0;else if(!r)return!1;if(r){var d;if(n.length>0&&(d=n[0]),d instanceof Error)throw d;var c=new Error("Unhandled error."+(d?" ("+d.message+")":""));throw c.context=d,c}var u=a[t];if(u===void 0)return!1;if(typeof u=="function")pa(u,this,n);else for(var f=u.length,p=ya(u,f),i=0;i<f;++i)pa(p[i],this,n);return!0};function Ea(e,t,n,i){var r,a,d;if(mt(n),a=e._events,a===void 0?(a=e._events=Object.create(null),e._eventsCount=0):(a.newListener!==void 0&&(e.emit("newListener",t,n.listener?n.listener:n),a=e._events),d=a[t]),d===void 0)d=a[t]=n,++e._eventsCount;else if(typeof d=="function"?d=a[t]=i?[n,d]:[d,n]:i?d.unshift(n):d.push(n),r=Ta(e),r>0&&d.length>r&&!d.warned){d.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+d.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=e,c.type=t,c.count=d.length,ri(c)}return e}I.prototype.addListener=function(t,n){return Ea(this,t,n,!1)};I.prototype.on=I.prototype.addListener;I.prototype.prependListener=function(t,n){return Ea(this,t,n,!0)};function ii(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function ma(e,t,n){var i={fired:!1,wrapFn:void 0,target:e,type:t,listener:n},r=ii.bind(i);return r.listener=n,i.wrapFn=r,r}I.prototype.once=function(t,n){return mt(n),this.on(t,ma(this,t,n)),this};I.prototype.prependOnceListener=function(t,n){return mt(n),this.prependListener(t,ma(this,t,n)),this};I.prototype.removeListener=function(t,n){var i,r,a,d,c;if(mt(n),r=this._events,r===void 0)return this;if(i=r[t],i===void 0)return this;if(i===n||i.listener===n)--this._eventsCount===0?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,i.listener||n));else if(typeof i!="function"){for(a=-1,d=i.length-1;d>=0;d--)if(i[d]===n||i[d].listener===n){c=i[d].listener,a=d;break}if(a<0)return this;a===0?i.shift():di(i,a),i.length===1&&(r[t]=i[0]),r.removeListener!==void 0&&this.emit("removeListener",t,c||n)}return this};I.prototype.off=I.prototype.removeListener;I.prototype.removeAllListeners=function(t){var n,i,r;if(i=this._events,i===void 0)return this;if(i.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):i[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete i[t]),this;if(arguments.length===0){var a=Object.keys(i),d;for(r=0;r<a.length;++r)d=a[r],d!=="removeListener"&&this.removeAllListeners(d);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if(n=i[t],typeof n=="function")this.removeListener(t,n);else if(n!==void 0)for(r=n.length-1;r>=0;r--)this.removeListener(t,n[r]);return this};function Ia(e,t,n){var i=e._events;if(i===void 0)return[];var r=i[t];return r===void 0?[]:typeof r=="function"?n?[r.listener||r]:[r]:n?oi(r):ya(r,r.length)}I.prototype.listeners=function(t){return Ia(this,t,!0)};I.prototype.rawListeners=function(t){return Ia(this,t,!1)};I.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):Ma.call(e,t)};I.prototype.listenerCount=Ma;function Ma(e){var t=this._events;if(t!==void 0){var n=t[e];if(typeof n=="function")return 1;if(n!==void 0)return n.length}return 0}I.prototype.eventNames=function(){return this._eventsCount>0?Et(this._events):[]};function ya(e,t){for(var n=new Array(t),i=0;i<t;++i)n[i]=e[i];return n}function di(e,t){for(;t+1<e.length;t++)e[t]=e[t+1];e.pop()}function oi(e){for(var t=new Array(e.length),n=0;n<t.length;++n)t[n]=e[n].listener||e[n];return t}function si(e,t){return new Promise(function(n,i){function r(d){e.removeListener(t,a),i(d)}function a(){typeof e.removeListener=="function"&&e.removeListener("error",r),n([].slice.call(arguments))}ga(e,t,a,{once:!0}),t!=="error"&&ci(e,r,{once:!0})})}function ci(e,t,n){typeof e.on=="function"&&ga(e,"error",t,n)}function ga(e,t,n,i){if(typeof e.on=="function")i.once?e.once(t,n):e.on(t,n);else if(typeof e.addEventListener=="function")e.addEventListener(t,function r(a){i.once&&e.removeEventListener(t,r),n(a)});else throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof e)}});var Cr={};cn(Cr,{WHEPClient:()=>dn});var at,dn,Rr=sn(()=>{"use strict";at={Core:{ServerSentEvents:"urn:ietf:params:whep:ext:core:server-sent-events",Layer:"urn:ietf:params:whep:ext:core:layer"}},dn=class extends EventTarget{constructor(){super(),this.iceUsername=null,this.icePassword=null,this.candidates=[],this.endOfcandidates=!1,this.onOffer=t=>t,this.onAnswer=t=>t}throwWithResponse(t,n){let i=new Error(t);throw i.response=n,i}async view(t,n,i){if(this.pc)throw new Error("Already viewing");this.token=i,this.pc=t,t.onicecandidate=p=>{if(p.candidate){if(p.candidate.sdpMLineIndex>0)return;this.candidates.push(p.candidate)}else this.endOfcandidates=!0;!this.iceTrickeTimeout&&!this.restartIce&&(this.iceTrickeTimeout=setTimeout(()=>this.patch(),0))};let r=await t.createOffer();r.sdp=this.onOffer(r.sdp);let a={"Content-Type":"application/sdp"};i&&(a.Authorization="Bearer "+i);let d=await fetch(n,{method:"POST",body:r.sdp,headers:a});d.ok||this.throwWithResponse("Request rejected with status "+d.status,d),d.headers.get("location")||this.throwWithResponse("Response missing location header",d),this.resourceURL=new URL(d.headers.get("location"),n);let c={};if(d.headers.has("link")){let p=d.headers.get("link").split(/,\s+(?=<)/);for(let T of p)try{let h,v={},M=T.split(";"),H=M[0].trim().replace(/<(.*)>/,"$1").trim();for(let q=1;q<M.length;++q){let A=M[q].split(/=(.*)/),rt=A[0].trim(),it=A[1]?A[1].trim().replaceAll('"',"").replaceAll("'",""):A[1];rt==="rel"?h=it:v[rt]=it}if(!h)continue;c[h]||(c[h]=[]),c[h].push({url:H,params:v})}catch(h){console.error(h)}}if(c.hasOwnProperty(at.Core.ServerSentEvents)&&(this.eventsUrl=new URL(c[at.Core.ServerSentEvents][0].url,n)),c.hasOwnProperty(at.Core.Layer)&&(this.layerUrl=new URL(c[at.Core.Layer][0].url,n)),this.eventsUrl){let p=c[at.Core.ServerSentEvents][0].params.events?c[at.Core.ServerSentEvents][0].params.events.split(","):["active","inactive","layers","viewercount"],T={"Content-Type":"application/json"};this.token&&(T.Authorization="Bearer "+this.token),fetch(this.eventsUrl,{method:"POST",body:JSON.stringify(p),headers:T}).then(h=>{if(!h.ok)return;let v=new URL(h.headers.get("location"),this.eventsUrl);this.eventSource=new EventSource(v),this.eventSource.onmessage=M=>{this.dispatchEvent(M)}})}let u=t.getConfiguration();if((!u.iceServer||!u.iceServer.length)&&c.hasOwnProperty("ice-server")){u.iceServers=[];for(let p of c["ice-server"])try{let T={urls:p.url};for(let[h,v]of Object.entries(p.params)){let M=h.replace(/([-_][a-z])/ig,H=>H.toUpperCase().replace("-","").replace("_",""));T[M]=v}u.iceServers.push(T)}catch{}u.iceServers.length&&t.setConfiguration(u)}let f=await d.text();this.iceTrickeTimeout||(this.iceTrickeTimeout=setTimeout(()=>this.patch(),0)),await t.setLocalDescription(r),this.iceUsername=r.sdp.match(/a=ice-ufrag:(.*)\r\n/)[1],this.icePassword=r.sdp.match(/a=ice-pwd:(.*)\r\n/)[1],await t.setRemoteDescription({type:"answer",sdp:this.onAnswer(f)})}async restart(){this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),this.candidates=[],this.endOfcandidates=!1,this.pc.restartIce();let t=await this.pc.createOffer({iceRestart:!0});return this.iceUsername=t.sdp.match(/a=ice-ufrag:(.*)\r\n/)[1],this.icePassword=t.sdp.match(/a=ice-pwd:(.*)\r\n/)[1],await this.pc.setLocalDescription(t),this.restartIce=new Date,this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),this.patch()}async patch(){if(this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),!(this.candidates.length||this.endOfcandidates||this.restartIce)||!this.resourceURL)return;let t=this.candidates,n=this.endOfcandidates,i=this.restartIce;this.candidates=[],this.endOfcandidates=!1;let r="a=ice-ufrag:"+this.iceUsername+`\r
2
2
  a=ice-pwd:`+this.icePassword+`\r
3
- `,a=this.pc.getTransceivers(),d={};(t.length||n)&&(d[a[0].mid]={mid:a[0].mid,kind:a[0].receiver.track.kind,candidates:[]});for(let k of t){let p=k.sdpMid,T=a.find(v=>v.mid===p),h=d[p];h||(h=d[p]={mid:p,kind:T.receiver.track.kind,candidates:[]}),h.candidates.push(k)}for(let k of Object.values(d)){r+="m="+k.kind+` 9 UDP/TLS/RTP/SAVPF 0\r
4
- a=mid:`+k.mid+`\r
5
- `;for(let p of k.candidates)r+="a="+p.candidate+`\r
3
+ `,a=this.pc.getTransceivers(),d={};(t.length||n)&&(d[a[0].mid]={mid:a[0].mid,kind:a[0].receiver.track.kind,candidates:[]});for(let f of t){let p=f.sdpMid,T=a.find(v=>v.mid===p),h=d[p];h||(h=d[p]={mid:p,kind:T.receiver.track.kind,candidates:[]}),h.candidates.push(f)}for(let f of Object.values(d)){r+="m="+f.kind+` 9 UDP/TLS/RTP/SAVPF 0\r
4
+ a=mid:`+f.mid+`\r
5
+ `;for(let p of f.candidates)r+="a="+p.candidate+`\r
6
6
  `;n&&(r+=`a=end-of-candidates\r
7
- `)}let c={"Content-Type":"application/trickle-ice-sdpfrag"};i?c["If-Match"]="*":this.etag&&(c["If-Match"]=this.etag),this.token&&(c.Authorization="Bearer "+this.token);let u=await fetch(this.resourceURL,{method:"PATCH",body:r,headers:c});if(!u.ok&&u.status!==501&&u.status!==405&&this.throwWithResponse("Request rejected with status "+u.status,u),i&&u.status===200){this.etag=u.headers.get("etag");let k=await u.text(),p=k.match(/a=ice-ufrag:(.*)\r\n/)[1],T=k.match(/a=ice-pwd:(.*)\r\n/)[1],h=Array.from(k.matchAll(/(a=candidate:.*\r\n)/gm)).map(M=>M[1]),v=this.pc.remoteDescription;v.sdp=v.sdp.replaceAll(/(a=ice-ufrag:)(.*)\r\n/gm,"$1"+p+`\r
7
+ `)}let c={"Content-Type":"application/trickle-ice-sdpfrag"};i?c["If-Match"]="*":this.etag&&(c["If-Match"]=this.etag),this.token&&(c.Authorization="Bearer "+this.token);let u=await fetch(this.resourceURL,{method:"PATCH",body:r,headers:c});if(!u.ok&&u.status!==501&&u.status!==405&&this.throwWithResponse("Request rejected with status "+u.status,u),i&&u.status===200){this.etag=u.headers.get("etag");let f=await u.text(),p=f.match(/a=ice-ufrag:(.*)\r\n/)[1],T=f.match(/a=ice-pwd:(.*)\r\n/)[1],h=Array.from(f.matchAll(/(a=candidate:.*\r\n)/gm)).map(M=>M[1]),v=this.pc.remoteDescription;v.sdp=v.sdp.replaceAll(/(a=ice-ufrag:)(.*)\r\n/gm,"$1"+p+`\r
8
8
  `),v.sdp=v.sdp.replaceAll(/(a=ice-pwd:)(.*)\r\n/gm,"$1"+T+`\r
9
- `),v.sdp=v.sdp.replaceAll(/(a=candidate:.*\r\n)/gm,""),v.sdp=v.sdp.replaceAll(/(m=.*\r\n)/gm,"$1"+h.join()),await this.pc.setRemoteDescription(v),this.restartIce===i&&(this.restartIce=null,(this.candidates.length||this.endOfcandidates)&&this.patch())}}async mute(t){let n={"Content-Type":"application/json"};this.token&&(n.Authorization="Bearer "+this.token);let i=await fetch(this.resourceURL,{method:"POST",body:JSON.stringify(t),headers:n})}async selectLayer(t){if(!this.layerUrl)throw new Error("whep resource does not support layer selection");let n={"Content-Type":"application/json"};this.token&&(n.Authorization="Bearer "+this.token);let i=await fetch(this.layerUrl,{method:"POST",body:JSON.stringify(t),headers:n})}async unselectLayer(){if(!this.layerUrl)throw new Error("whep resource does not support layer selection");let t={};this.token&&(t.Authorization="Bearer "+this.token);let n=await fetch(this.layerUrl,{method:"DELETE",headers:t})}async stop(){if(!this.pc)return;if(this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),this.pc.close(),this.pc=null,!this.resourceURL)throw new Error("WHEP resource url not available yet");let t={};this.token&&(t.Authorization="Bearer "+this.token),await fetch(this.resourceURL,{method:"DELETE",headers:t})}}});var Rr={};sn(Rr,{WHIPClient:()=>dn});var dn,Nr=on(()=>{"use strict";dn=class{constructor(){this.iceUsername=null,this.icePassword=null,this.candidates=[],this.endOfcandidates=!1,this.onOffer=t=>t,this.onAnswer=t=>t}throwWithResponse(t,n){let i=new Error(t);throw i.response=n,i}async publish(t,n,i){if(this.pc)throw new Error("Already publishing");this.token=i,this.pc=t,t.onicecandidate=p=>{if(p.candidate){if(p.candidate.sdpMLineIndex>0)return;this.candidates.push(p.candidate)}else this.endOfcandidates=!0;!this.iceTrickeTimeout&&!this.restartIce&&(this.iceTrickeTimeout=setTimeout(()=>this.patch(),0))};let r=await t.createOffer();r.sdp=this.onOffer(r.sdp);let a={"Content-Type":"application/sdp"};i&&(a.Authorization="Bearer "+i);let d=await fetch(n,{method:"POST",body:r.sdp,headers:a});d.ok||this.throwWithResponse("Request rejected with status "+d.status,d),d.headers.get("location")||this.throwWithResponse("Response missing location header",d),this.resourceURL=new URL(d.headers.get("location"),n);let c={};if(d.headers.has("link")){let p=d.headers.get("link").split(/,\s+(?=<)/);for(let T of p)try{let h,v={},M=T.split(";"),H=M[0].trim().replace(/<(.*)>/,"$1").trim();for(let q=1;q<M.length;++q){let A=M[q].split(/=(.*)/),rt=A[0].trim(),it=A[1]?A[1].trim().replaceAll('"',"").replaceAll("'",""):A[1];rt==="rel"?h=it:v[rt]=it}if(!h)continue;c[h]||(c[h]=[]),c[h].push({url:H,params:v})}catch(h){console.error(h)}}let u=t.getConfiguration();if((!u.iceServer||!u.iceServer.length)&&c.hasOwnProperty("ice-server")){u.iceServers=[];for(let p of c["ice-server"])try{let T={urls:p.url};for(let[h,v]of Object.entries(p.params)){let M=h.replace(/([-_][a-z])/ig,H=>H.toUpperCase().replace("-","").replace("_",""));T[M]=v}u.iceServers.push(T)}catch{}u.iceServers.length&&t.setConfiguration(u)}let k=await d.text();this.etag=d.headers.get("etag"),this.iceTrickeTimeout||(this.iceTrickeTimeout=setTimeout(()=>this.patch(),0)),await t.setLocalDescription(r),this.iceUsername=r.sdp.match(/a=ice-ufrag:(.*)\r\n/)[1],this.icePassword=r.sdp.match(/a=ice-pwd:(.*)\r\n/)[1],await t.setRemoteDescription({type:"answer",sdp:this.onAnswer(k)})}async restart(){this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),this.candidates=[],this.endOfcandidates=!1,this.pc.restartIce();let t=await this.pc.createOffer({iceRestart:!0});return this.iceUsername=t.sdp.match(/a=ice-ufrag:(.*)\r\n/)[1],this.icePassword=t.sdp.match(/a=ice-pwd:(.*)\r\n/)[1],await this.pc.setLocalDescription(t),this.restartIce=new Date,this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),this.patch()}async patch(){if(this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),!(this.candidates.length||this.endOfcandidates||this.restartIce)||!this.resourceURL)return;let t=this.candidates,n=this.endOfcandidates,i=this.restartIce;this.candidates=[],this.endOfcandidates=!1;let r="a=ice-ufrag:"+this.iceUsername+`\r
9
+ `),v.sdp=v.sdp.replaceAll(/(a=candidate:.*\r\n)/gm,""),v.sdp=v.sdp.replaceAll(/(m=.*\r\n)/gm,"$1"+h.join()),await this.pc.setRemoteDescription(v),this.restartIce===i&&(this.restartIce=null,(this.candidates.length||this.endOfcandidates)&&this.patch())}}async mute(t){let n={"Content-Type":"application/json"};this.token&&(n.Authorization="Bearer "+this.token);let i=await fetch(this.resourceURL,{method:"POST",body:JSON.stringify(t),headers:n})}async selectLayer(t){if(!this.layerUrl)throw new Error("whep resource does not support layer selection");let n={"Content-Type":"application/json"};this.token&&(n.Authorization="Bearer "+this.token);let i=await fetch(this.layerUrl,{method:"POST",body:JSON.stringify(t),headers:n})}async unselectLayer(){if(!this.layerUrl)throw new Error("whep resource does not support layer selection");let t={};this.token&&(t.Authorization="Bearer "+this.token);let n=await fetch(this.layerUrl,{method:"DELETE",headers:t})}async stop(){if(!this.pc)return;if(this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),this.pc.close(),this.pc=null,!this.resourceURL)throw new Error("WHEP resource url not available yet");let t={};this.token&&(t.Authorization="Bearer "+this.token),await fetch(this.resourceURL,{method:"DELETE",headers:t})}}});var Nr={};cn(Nr,{WHIPClient:()=>on});var on,xr=sn(()=>{"use strict";on=class{constructor(){this.iceUsername=null,this.icePassword=null,this.candidates=[],this.endOfcandidates=!1,this.onOffer=t=>t,this.onAnswer=t=>t}throwWithResponse(t,n){let i=new Error(t);throw i.response=n,i}async publish(t,n,i){if(this.pc)throw new Error("Already publishing");this.token=i,this.pc=t,t.onicecandidate=p=>{if(p.candidate){if(p.candidate.sdpMLineIndex>0)return;this.candidates.push(p.candidate)}else this.endOfcandidates=!0;!this.iceTrickeTimeout&&!this.restartIce&&(this.iceTrickeTimeout=setTimeout(()=>this.patch(),0))};let r=await t.createOffer();r.sdp=this.onOffer(r.sdp);let a={"Content-Type":"application/sdp"};i&&(a.Authorization="Bearer "+i);let d=await fetch(n,{method:"POST",body:r.sdp,headers:a});d.ok||this.throwWithResponse("Request rejected with status "+d.status,d),d.headers.get("location")||this.throwWithResponse("Response missing location header",d),this.resourceURL=new URL(d.headers.get("location"),n);let c={};if(d.headers.has("link")){let p=d.headers.get("link").split(/,\s+(?=<)/);for(let T of p)try{let h,v={},M=T.split(";"),H=M[0].trim().replace(/<(.*)>/,"$1").trim();for(let q=1;q<M.length;++q){let A=M[q].split(/=(.*)/),rt=A[0].trim(),it=A[1]?A[1].trim().replaceAll('"',"").replaceAll("'",""):A[1];rt==="rel"?h=it:v[rt]=it}if(!h)continue;c[h]||(c[h]=[]),c[h].push({url:H,params:v})}catch(h){console.error(h)}}let u=t.getConfiguration();if((!u.iceServer||!u.iceServer.length)&&c.hasOwnProperty("ice-server")){u.iceServers=[];for(let p of c["ice-server"])try{let T={urls:p.url};for(let[h,v]of Object.entries(p.params)){let M=h.replace(/([-_][a-z])/ig,H=>H.toUpperCase().replace("-","").replace("_",""));T[M]=v}u.iceServers.push(T)}catch{}u.iceServers.length&&t.setConfiguration(u)}let f=await d.text();this.etag=d.headers.get("etag"),this.iceTrickeTimeout||(this.iceTrickeTimeout=setTimeout(()=>this.patch(),0)),await t.setLocalDescription(r),this.iceUsername=r.sdp.match(/a=ice-ufrag:(.*)\r\n/)[1],this.icePassword=r.sdp.match(/a=ice-pwd:(.*)\r\n/)[1],await t.setRemoteDescription({type:"answer",sdp:this.onAnswer(f)})}async restart(){this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),this.candidates=[],this.endOfcandidates=!1,this.pc.restartIce();let t=await this.pc.createOffer({iceRestart:!0});return this.iceUsername=t.sdp.match(/a=ice-ufrag:(.*)\r\n/)[1],this.icePassword=t.sdp.match(/a=ice-pwd:(.*)\r\n/)[1],await this.pc.setLocalDescription(t),this.restartIce=new Date,this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),this.patch()}async patch(){if(this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),!(this.candidates.length||this.endOfcandidates||this.restartIce)||!this.resourceURL)return;let t=this.candidates,n=this.endOfcandidates,i=this.restartIce;this.candidates=[],this.endOfcandidates=!1;let r="a=ice-ufrag:"+this.iceUsername+`\r
10
10
  a=ice-pwd:`+this.icePassword+`\r
11
- `,a=this.pc.getTransceivers(),d={};(t.length||n)&&(d[a[0].mid]={mid:a[0].mid,kind:a[0].receiver.track.kind,candidates:[]});for(let k of t){let p=k.sdpMid,T=a.find(v=>v.mid===p),h=d[p];h||(h=d[p]={mid:p,kind:T.receiver.track.kind,candidates:[]}),h.candidates.push(k)}for(let k of Object.values(d)){r+="m="+k.kind+` 9 UDP/TLS/RTP/SAVPF 0\r
12
- a=mid:`+k.mid+`\r
13
- `;for(let p of k.candidates)r+="a="+p.candidate+`\r
11
+ `,a=this.pc.getTransceivers(),d={};(t.length||n)&&(d[a[0].mid]={mid:a[0].mid,kind:a[0].receiver.track.kind,candidates:[]});for(let f of t){let p=f.sdpMid,T=a.find(v=>v.mid===p),h=d[p];h||(h=d[p]={mid:p,kind:T.receiver.track.kind,candidates:[]}),h.candidates.push(f)}for(let f of Object.values(d)){r+="m="+f.kind+` 9 UDP/TLS/RTP/SAVPF 0\r
12
+ a=mid:`+f.mid+`\r
13
+ `;for(let p of f.candidates)r+="a="+p.candidate+`\r
14
14
  `;n&&(r+=`a=end-of-candidates\r
15
- `)}let c={"Content-Type":"application/trickle-ice-sdpfrag"};i?c["If-Match"]="*":this.etag&&(c["If-Match"]=this.etag),this.token&&(c.Authorization="Bearer "+this.token);let u=await fetch(this.resourceURL,{method:"PATCH",body:r,headers:c});if(!u.ok&&u.status!==501&&u.status!==405&&this.throwWithResponse("Request rejected with status "+u.status,u),i&&u.status===200){this.etag=u.headers.get("etag");let k=await u.text(),p=k.match(/a=ice-ufrag:(.*)\r\n/)[1],T=k.match(/a=ice-pwd:(.*)\r\n/)[1],h=Array.from(k.matchAll(/(a=candidate:.*\r\n)/gm)).map(M=>M[1]),v=this.pc.remoteDescription;v.sdp=v.sdp.replaceAll(/(a=ice-ufrag:)(.*)\r\n/gm,"$1"+p+`\r
15
+ `)}let c={"Content-Type":"application/trickle-ice-sdpfrag"};i?c["If-Match"]="*":this.etag&&(c["If-Match"]=this.etag),this.token&&(c.Authorization="Bearer "+this.token);let u=await fetch(this.resourceURL,{method:"PATCH",body:r,headers:c});if(!u.ok&&u.status!==501&&u.status!==405&&this.throwWithResponse("Request rejected with status "+u.status,u),i&&u.status===200){this.etag=u.headers.get("etag");let f=await u.text(),p=f.match(/a=ice-ufrag:(.*)\r\n/)[1],T=f.match(/a=ice-pwd:(.*)\r\n/)[1],h=Array.from(f.matchAll(/(a=candidate:.*\r\n)/gm)).map(M=>M[1]),v=this.pc.remoteDescription;v.sdp=v.sdp.replaceAll(/(a=ice-ufrag:)(.*)\r\n/gm,"$1"+p+`\r
16
16
  `),v.sdp=v.sdp.replaceAll(/(a=ice-pwd:)(.*)\r\n/gm,"$1"+T+`\r
17
- `),v.sdp=v.sdp.replaceAll(/(a=candidate:.*\r\n)/gm,""),v.sdp=v.sdp.replaceAll(/(m=.*\r\n)/gm,"$1"+h.join()),await this.pc.setRemoteDescription(v),this.restartIce===i&&(this.restartIce=null,(this.candidates.length||this.endOfcandidates)&&this.patch())}}async mute(t){let n={"Content-Type":"application/json"};this.token&&(n.Authorization="Bearer "+this.token);let i=await fetch(this.resourceURL,{method:"POST",body:JSON.stringify(t),headers:n})}async stop(){if(!this.pc)return;if(this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),this.pc.close(),this.pc=null,!this.resourceURL)throw new Error("WHIP resource url not available yet");let t={};this.token&&(t.Authorization="Bearer "+this.token),await fetch(this.resourceURL,{method:"DELETE",headers:t})}}});var cn=["missing token","invalid token","expired token","room not found","peer not found"],dt=e=>cn.includes(e),ot=e=>e.trim().toLowerCase();var st=class extends Error{constructor(){super("Attempted to add video track to audio-only room. Please refer to the docs at https://docs.fishjam.io/audio-calls")}};function fn(){let e=0,t=0;for(let i=0;i<28;i+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<i,(r&128)==0)return this.assertBounds(),[e,t]}let n=this.buf[this.pos++];if(e|=(n&15)<<28,t=(n&112)>>4,(n&128)==0)return this.assertBounds(),[e,t];for(let i=3;i<=31;i+=7){let r=this.buf[this.pos++];if(t|=(r&127)<<i,(r&128)==0)return this.assertBounds(),[e,t]}throw new Error("invalid varint")}function ht(e,t,n){for(let a=0;a<28;a=a+7){let d=e>>>a,c=!(!(d>>>7)&&t==0),u=(c?d|128:d)&255;if(n.push(u),!c)return}let i=e>>>28&15|(t&7)<<4,r=t>>3!=0;if(n.push((r?i|128:i)&255),!!r){for(let a=3;a<31;a=a+7){let d=t>>>a,c=!!(d>>>7),u=(c?d|128:d)&255;if(n.push(u),!c)return}n.push(t>>>31&1)}}var pt=4294967296;function _t(e){let t=e[0]==="-";t&&(e=e.slice(1));let n=1e6,i=0,r=0;function a(d,c){let u=Number(e.slice(d,c));r*=n,i=i*n+u,i>=pt&&(r=r+(i/pt|0),i=i%pt)}return a(-24,-18),a(-18,-12),a(-12,-6),a(-6),t?kn(i,r):bt(i,r)}function ln(e,t){let n=bt(e,t),i=n.hi&2147483648;i&&(n=kn(n.lo,n.hi));let r=wt(n.lo,n.hi);return i?"-"+r:r}function wt(e,t){if({lo:e,hi:t}=Fr(e,t),t<=2097151)return String(pt*t+e);let n=e&16777215,i=(e>>>24|t<<8)&16777215,r=t>>16&65535,a=n+i*6777216+r*6710656,d=i+r*8147497,c=r*2,u=1e7;return a>=u&&(d+=Math.floor(a/u),a%=u),d>=u&&(c+=Math.floor(d/u),d%=u),c.toString()+un(d)+un(a)}function Fr(e,t){return{lo:e>>>0,hi:t>>>0}}function bt(e,t){return{lo:e|0,hi:t|0}}function kn(e,t){return t=~t,e?e=~e+1:t+=1,bt(e,t)}var un=e=>{let t=String(e);return"0000000".slice(t.length)+t};function Ot(e,t){if(e>=0){for(;e>127;)t.push(e&127|128),e=e>>>7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e=e>>7;t.push(1)}}function pn(){let e=this.buf[this.pos++],t=e&127;if((e&128)==0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<7,(e&128)==0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<14,(e&128)==0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<21,(e&128)==0)return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let n=5;(e&128)!==0&&n<10;n++)e=this.buf[this.pos++];if((e&128)!=0)throw new Error("invalid varint");return this.assertBounds(),t>>>0}var C=Wr();function Wr(){let e=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof e.getBigInt64=="function"&&typeof e.getBigUint64=="function"&&typeof e.setBigInt64=="function"&&typeof e.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let n=BigInt("-9223372036854775808"),i=BigInt("9223372036854775807"),r=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(d){let c=typeof d=="bigint"?d:BigInt(d);if(c>i||c<n)throw new Error(`invalid int64: ${d}`);return c},uParse(d){let c=typeof d=="bigint"?d:BigInt(d);if(c>a||c<r)throw new Error(`invalid uint64: ${d}`);return c},enc(d){return e.setBigInt64(0,this.parse(d),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(d){return e.setBigInt64(0,this.uParse(d),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec(d,c){return e.setInt32(0,d,!0),e.setInt32(4,c,!0),e.getBigInt64(0,!0)},uDec(d,c){return e.setInt32(0,d,!0),e.setInt32(4,c,!0),e.getBigUint64(0,!0)}}}return{zero:"0",supported:!1,parse(n){return typeof n!="string"&&(n=n.toString()),hn(n),n},uParse(n){return typeof n!="string"&&(n=n.toString()),vn(n),n},enc(n){return typeof n!="string"&&(n=n.toString()),hn(n),_t(n)},uEnc(n){return typeof n!="string"&&(n=n.toString()),vn(n),_t(n)},dec(n,i){return ln(n,i)},uDec(n,i){return wt(n,i)}}}function hn(e){if(!/^-?[0-9]+$/.test(e))throw new Error("invalid int64: "+e)}function vn(e){if(!/^[0-9]+$/.test(e))throw new Error("invalid uint64: "+e)}var Pt=Symbol.for("@bufbuild/protobuf/text-encoding");function Ct(){if(globalThis[Pt]==null){let e=new globalThis.TextEncoder,t=new globalThis.TextDecoder;globalThis[Pt]={encodeUtf8(n){return e.encode(n)},decodeUtf8(n){return t.decode(n)},checkUtf8(n){try{return encodeURIComponent(n),!0}catch{return!1}}}}return globalThis[Pt]}var W;(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"})(W||(W={}));var $r=34028234663852886e22,Hr=-34028234663852886e22,qr=4294967295,Gr=2147483647,Kr=-2147483648,s=class{constructor(t=Ct().encodeUtf8){this.encodeUtf8=t,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let t=0;for(let r=0;r<this.chunks.length;r++)t+=this.chunks[r].length;let n=new Uint8Array(t),i=0;for(let r=0;r<this.chunks.length;r++)n.set(this.chunks[r],i),i+=this.chunks[r].length;return this.chunks=[],n}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let t=this.finish(),n=this.stack.pop();if(!n)throw new Error("invalid state, fork stack empty");return this.chunks=n.chunks,this.buf=n.buf,this.uint32(t.byteLength),this.raw(t)}tag(t,n){return this.uint32((t<<3|n)>>>0)}raw(t){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(t),this}uint32(t){for(Tn(t);t>127;)this.buf.push(t&127|128),t=t>>>7;return this.buf.push(t),this}int32(t){return Rt(t),Ot(t,this.buf),this}bool(t){return this.buf.push(t?1:0),this}bytes(t){return this.uint32(t.byteLength),this.raw(t)}string(t){let n=this.encodeUtf8(t);return this.uint32(n.byteLength),this.raw(n)}float(t){zr(t);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,t,!0),this.raw(n)}double(t){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,t,!0),this.raw(n)}fixed32(t){Tn(t);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,t,!0),this.raw(n)}sfixed32(t){Rt(t);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,t,!0),this.raw(n)}sint32(t){return Rt(t),t=(t<<1^t>>31)>>>0,Ot(t,this.buf),this}sfixed64(t){let n=new Uint8Array(8),i=new DataView(n.buffer),r=C.enc(t);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(n)}fixed64(t){let n=new Uint8Array(8),i=new DataView(n.buffer),r=C.uEnc(t);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(n)}int64(t){let n=C.enc(t);return ht(n.lo,n.hi,this.buf),this}sint64(t){let n=C.enc(t),i=n.hi>>31,r=n.lo<<1^i,a=(n.hi<<1|n.lo>>>31)^i;return ht(r,a,this.buf),this}uint64(t){let n=C.uEnc(t);return ht(n.lo,n.hi,this.buf),this}},o=class{constructor(t,n=Ct().decodeUtf8){this.decodeUtf8=n,this.varint64=fn,this.uint32=pn,this.buf=t,this.len=t.length,this.pos=0,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength)}tag(){let t=this.uint32(),n=t>>>3,i=t&7;if(n<=0||i<0||i>5)throw new Error("illegal tag: field no "+n+" wire type "+i);return[n,i]}skip(t,n){let i=this.pos;switch(t){case W.Varint:for(;this.buf[this.pos++]&128;);break;case W.Bit64:this.pos+=4;case W.Bit32:this.pos+=4;break;case W.LengthDelimited:let r=this.uint32();this.pos+=r;break;case W.StartGroup:for(;;){let[a,d]=this.tag();if(d===W.EndGroup){if(n!==void 0&&a!==n)throw new Error("invalid end group tag");break}this.skip(d,a)}break;default:throw new Error("cant skip wire type "+t)}return this.assertBounds(),this.buf.subarray(i,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)}int64(){return C.dec(...this.varint64())}uint64(){return C.uDec(...this.varint64())}sint64(){let[t,n]=this.varint64(),i=-(t&1);return t=(t>>>1|(n&1)<<31)^i,n=n>>>1^i,C.dec(t,n)}bool(){let[t,n]=this.varint64();return t!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return C.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return C.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 t=this.uint32(),n=this.pos;return this.pos+=t,this.assertBounds(),this.buf.subarray(n,n+t)}string(){return this.decodeUtf8(this.bytes())}};function Rt(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid int32: "+typeof e);if(!Number.isInteger(e)||e>Gr||e<Kr)throw new Error("invalid int32: "+e)}function Tn(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid uint32: "+typeof e);if(!Number.isInteger(e)||e>qr||e<0)throw new Error("invalid uint32: "+e)}function zr(e){if(typeof e=="string"){let t=e;if(e=Number(e),isNaN(e)&&t!=="NaN")throw new Error("invalid float32: "+t)}else if(typeof e!="number")throw new Error("invalid float32: "+typeof e);if(Number.isFinite(e)&&(e>$r||e<Hr))throw new Error("invalid float32: "+e)}function R(e){switch(e){case 0:case"VARIANT_UNSPECIFIED":return 0;case 1:case"VARIANT_LOW":return 1;case 2:case"VARIANT_MEDIUM":return 2;case 3:case"VARIANT_HIGH":return 3;case-1:case"UNRECOGNIZED":default:return-1}}function N(e){switch(e){case 0:return"VARIANT_UNSPECIFIED";case 1:return"VARIANT_LOW";case 2:return"VARIANT_MEDIUM";case 3:return"VARIANT_HIGH";case-1:default:return"UNRECOGNIZED"}}function En(){return{candidate:"",sdpMLineIndex:0,sdpMid:"",usernameFragment:""}}var O={encode(e,t=new s){return e.candidate!==""&&t.uint32(10).string(e.candidate),e.sdpMLineIndex!==0&&t.uint32(16).int32(e.sdpMLineIndex),e.sdpMid!==""&&t.uint32(26).string(e.sdpMid),e.usernameFragment!==""&&t.uint32(34).string(e.usernameFragment),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=En();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.candidate=n.string();continue}case 2:{if(a!==16)break;r.sdpMLineIndex=n.int32();continue}case 3:{if(a!==26)break;r.sdpMid=n.string();continue}case 4:{if(a!==34)break;r.usernameFragment=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{candidate:G(e.candidate)?globalThis.String(e.candidate):"",sdpMLineIndex:G(e.sdpMLineIndex)?globalThis.Number(e.sdpMLineIndex):0,sdpMid:G(e.sdpMid)?globalThis.String(e.sdpMid):"",usernameFragment:G(e.usernameFragment)?globalThis.String(e.usernameFragment):""}},toJSON(e){let t={};return e.candidate!==""&&(t.candidate=e.candidate),e.sdpMLineIndex!==0&&(t.sdpMLineIndex=Math.round(e.sdpMLineIndex)),e.sdpMid!==""&&(t.sdpMid=e.sdpMid),e.usernameFragment!==""&&(t.usernameFragment=e.usernameFragment),t},create(e){return O.fromPartial(e??{})},fromPartial(e){let t=En();return t.candidate=e.candidate??"",t.sdpMLineIndex=e.sdpMLineIndex??0,t.sdpMid=e.sdpMid??"",t.usernameFragment=e.usernameFragment??"",t}};function mn(){return{data:new Uint8Array(0)}}var te={encode(e,t=new s){return e.data.length!==0&&t.uint32(10).bytes(e.data),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=mn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.data=n.bytes();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{data:G(e.data)?Zr(e.data):new Uint8Array(0)}},toJSON(e){let t={};return e.data.length!==0&&(t.data=Yr(e.data)),t},create(e){return te.fromPartial(e??{})},fromPartial(e){let t=mn();return t.data=e.data??new Uint8Array(0),t}};function In(){return{source:"",destinations:[],binary:void 0}}var vt={encode(e,t=new s){e.source!==""&&t.uint32(10).string(e.source);for(let n of e.destinations)t.uint32(18).string(n);return e.binary!==void 0&&te.encode(e.binary,t.uint32(26).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=In();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.source=n.string();continue}case 2:{if(a!==18)break;r.destinations.push(n.string());continue}case 3:{if(a!==26)break;r.binary=te.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{source:G(e.source)?globalThis.String(e.source):"",destinations:globalThis.Array.isArray(e?.destinations)?e.destinations.map(t=>globalThis.String(t)):[],binary:G(e.binary)?te.fromJSON(e.binary):void 0}},toJSON(e){let t={};return e.source!==""&&(t.source=e.source),e.destinations?.length&&(t.destinations=e.destinations),e.binary!==void 0&&(t.binary=te.toJSON(e.binary)),t},create(e){return vt.fromPartial(e??{})},fromPartial(e){let t=In();return t.source=e.source??"",t.destinations=e.destinations?.map(n=>n)||[],t.binary=e.binary!==void 0&&e.binary!==null?te.fromPartial(e.binary):void 0,t}};function Zr(e){if(globalThis.Buffer)return Uint8Array.from(globalThis.Buffer.from(e,"base64"));{let t=globalThis.atob(e),n=new Uint8Array(t.length);for(let i=0;i<t.length;++i)n[i]=t.charCodeAt(i);return n}}function Yr(e){if(globalThis.Buffer)return globalThis.Buffer.from(e).toString("base64");{let t=[];return e.forEach(n=>{t.push(globalThis.String.fromCharCode(n))}),globalThis.btoa(t.join(""))}}function G(e){return e!=null}function Mn(){return{connect:void 0,disconnect:void 0,updateEndpointMetadata:void 0,updateTrackMetadata:void 0,renegotiateTracks:void 0,candidate:void 0,sdpOffer:void 0,trackBitrates:void 0,enableTrackVariant:void 0,disableTrackVariant:void 0,setTargetTrackVariant:void 0,unmuteTrack:void 0}}var B={encode(e,t=new s){return e.connect!==void 0&&ae.encode(e.connect,t.uint32(10).fork()).join(),e.disconnect!==void 0&&re.encode(e.disconnect,t.uint32(18).fork()).join(),e.updateEndpointMetadata!==void 0&&ie.encode(e.updateEndpointMetadata,t.uint32(26).fork()).join(),e.updateTrackMetadata!==void 0&&de.encode(e.updateTrackMetadata,t.uint32(34).fork()).join(),e.renegotiateTracks!==void 0&&oe.encode(e.renegotiateTracks,t.uint32(42).fork()).join(),e.candidate!==void 0&&O.encode(e.candidate,t.uint32(50).fork()).join(),e.sdpOffer!==void 0&&se.encode(e.sdpOffer,t.uint32(58).fork()).join(),e.trackBitrates!==void 0&&w.encode(e.trackBitrates,t.uint32(66).fork()).join(),e.enableTrackVariant!==void 0&&ue.encode(e.enableTrackVariant,t.uint32(74).fork()).join(),e.disableTrackVariant!==void 0&&ce.encode(e.disableTrackVariant,t.uint32(82).fork()).join(),e.setTargetTrackVariant!==void 0&&fe.encode(e.setTargetTrackVariant,t.uint32(90).fork()).join(),e.unmuteTrack!==void 0&&le.encode(e.unmuteTrack,t.uint32(98).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Mn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.connect=ae.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.disconnect=re.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.updateEndpointMetadata=ie.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.updateTrackMetadata=de.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.renegotiateTracks=oe.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.candidate=O.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.sdpOffer=se.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.trackBitrates=w.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.enableTrackVariant=ue.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.disableTrackVariant=ce.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.setTargetTrackVariant=fe.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.unmuteTrack=le.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{connect:E(e.connect)?ae.fromJSON(e.connect):void 0,disconnect:E(e.disconnect)?re.fromJSON(e.disconnect):void 0,updateEndpointMetadata:E(e.updateEndpointMetadata)?ie.fromJSON(e.updateEndpointMetadata):void 0,updateTrackMetadata:E(e.updateTrackMetadata)?de.fromJSON(e.updateTrackMetadata):void 0,renegotiateTracks:E(e.renegotiateTracks)?oe.fromJSON(e.renegotiateTracks):void 0,candidate:E(e.candidate)?O.fromJSON(e.candidate):void 0,sdpOffer:E(e.sdpOffer)?se.fromJSON(e.sdpOffer):void 0,trackBitrates:E(e.trackBitrates)?w.fromJSON(e.trackBitrates):void 0,enableTrackVariant:E(e.enableTrackVariant)?ue.fromJSON(e.enableTrackVariant):void 0,disableTrackVariant:E(e.disableTrackVariant)?ce.fromJSON(e.disableTrackVariant):void 0,setTargetTrackVariant:E(e.setTargetTrackVariant)?fe.fromJSON(e.setTargetTrackVariant):void 0,unmuteTrack:E(e.unmuteTrack)?le.fromJSON(e.unmuteTrack):void 0}},toJSON(e){let t={};return e.connect!==void 0&&(t.connect=ae.toJSON(e.connect)),e.disconnect!==void 0&&(t.disconnect=re.toJSON(e.disconnect)),e.updateEndpointMetadata!==void 0&&(t.updateEndpointMetadata=ie.toJSON(e.updateEndpointMetadata)),e.updateTrackMetadata!==void 0&&(t.updateTrackMetadata=de.toJSON(e.updateTrackMetadata)),e.renegotiateTracks!==void 0&&(t.renegotiateTracks=oe.toJSON(e.renegotiateTracks)),e.candidate!==void 0&&(t.candidate=O.toJSON(e.candidate)),e.sdpOffer!==void 0&&(t.sdpOffer=se.toJSON(e.sdpOffer)),e.trackBitrates!==void 0&&(t.trackBitrates=w.toJSON(e.trackBitrates)),e.enableTrackVariant!==void 0&&(t.enableTrackVariant=ue.toJSON(e.enableTrackVariant)),e.disableTrackVariant!==void 0&&(t.disableTrackVariant=ce.toJSON(e.disableTrackVariant)),e.setTargetTrackVariant!==void 0&&(t.setTargetTrackVariant=fe.toJSON(e.setTargetTrackVariant)),e.unmuteTrack!==void 0&&(t.unmuteTrack=le.toJSON(e.unmuteTrack)),t},create(e){return B.fromPartial(e??{})},fromPartial(e){let t=Mn();return t.connect=e.connect!==void 0&&e.connect!==null?ae.fromPartial(e.connect):void 0,t.disconnect=e.disconnect!==void 0&&e.disconnect!==null?re.fromPartial(e.disconnect):void 0,t.updateEndpointMetadata=e.updateEndpointMetadata!==void 0&&e.updateEndpointMetadata!==null?ie.fromPartial(e.updateEndpointMetadata):void 0,t.updateTrackMetadata=e.updateTrackMetadata!==void 0&&e.updateTrackMetadata!==null?de.fromPartial(e.updateTrackMetadata):void 0,t.renegotiateTracks=e.renegotiateTracks!==void 0&&e.renegotiateTracks!==null?oe.fromPartial(e.renegotiateTracks):void 0,t.candidate=e.candidate!==void 0&&e.candidate!==null?O.fromPartial(e.candidate):void 0,t.sdpOffer=e.sdpOffer!==void 0&&e.sdpOffer!==null?se.fromPartial(e.sdpOffer):void 0,t.trackBitrates=e.trackBitrates!==void 0&&e.trackBitrates!==null?w.fromPartial(e.trackBitrates):void 0,t.enableTrackVariant=e.enableTrackVariant!==void 0&&e.enableTrackVariant!==null?ue.fromPartial(e.enableTrackVariant):void 0,t.disableTrackVariant=e.disableTrackVariant!==void 0&&e.disableTrackVariant!==null?ce.fromPartial(e.disableTrackVariant):void 0,t.setTargetTrackVariant=e.setTargetTrackVariant!==void 0&&e.setTargetTrackVariant!==null?fe.fromPartial(e.setTargetTrackVariant):void 0,t.unmuteTrack=e.unmuteTrack!==void 0&&e.unmuteTrack!==null?le.fromPartial(e.unmuteTrack):void 0,t}};function yn(){return{variant:0,bitrate:0}}var ne={encode(e,t=new s){return e.variant!==0&&t.uint32(8).int32(e.variant),e.bitrate!==0&&t.uint32(16).int32(e.bitrate),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=yn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.variant=n.int32();continue}case 2:{if(a!==16)break;r.bitrate=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{variant:E(e.variant)?R(e.variant):0,bitrate:E(e.bitrate)?globalThis.Number(e.bitrate):0}},toJSON(e){let t={};return e.variant!==0&&(t.variant=N(e.variant)),e.bitrate!==0&&(t.bitrate=Math.round(e.bitrate)),t},create(e){return ne.fromPartial(e??{})},fromPartial(e){let t=yn();return t.variant=e.variant??0,t.bitrate=e.bitrate??0,t}};function gn(){return{metadataJson:""}}var ae={encode(e,t=new s){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=gn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:E(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return ae.fromPartial(e??{})},fromPartial(e){let t=gn();return t.metadataJson=e.metadataJson??"",t}};function Sn(){return{}}var re={encode(e,t=new s){return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Sn();for(;n.pos<i;){let a=n.uint32();if(a>>>3,(a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{}},toJSON(e){return{}},create(e){return re.fromPartial(e??{})},fromPartial(e){return Sn()}};function _n(){return{metadataJson:""}}var ie={encode(e,t=new s){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=_n();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:E(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return ie.fromPartial(e??{})},fromPartial(e){let t=_n();return t.metadataJson=e.metadataJson??"",t}};function wn(){return{trackId:"",metadataJson:""}}var de={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.metadataJson!==""&&t.uint32(18).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=wn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==18)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:E(e.trackId)?globalThis.String(e.trackId):"",metadataJson:E(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return de.fromPartial(e??{})},fromPartial(e){let t=wn();return t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function bn(){return{}}var oe={encode(e,t=new s){return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=bn();for(;n.pos<i;){let a=n.uint32();if(a>>>3,(a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{}},toJSON(e){return{}},create(e){return oe.fromPartial(e??{})},fromPartial(e){return bn()}};function On(){return{sdp:"",trackIdToMetadataJson:{},trackIdToBitrates:{},midToTrackId:{}}}var se={encode(e,t=new s){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.trackIdToMetadataJson).forEach(([n,i])=>{xt.encode({key:n,value:i},t.uint32(18).fork()).join()}),Object.entries(e.trackIdToBitrates).forEach(([n,i])=>{Jt.encode({key:n,value:i},t.uint32(26).fork()).join()}),Object.entries(e.midToTrackId).forEach(([n,i])=>{At.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=On();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.sdp=n.string();continue}case 2:{if(a!==18)break;let d=xt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToMetadataJson[d.key]=d.value);continue}case 3:{if(a!==26)break;let d=Jt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToBitrates[d.key]=d.value);continue}case 4:{if(a!==34)break;let d=At.decode(n,n.uint32());d.value!==void 0&&(r.midToTrackId[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{sdp:E(e.sdp)?globalThis.String(e.sdp):"",trackIdToMetadataJson:Nt(e.trackIdToMetadataJson)?Object.entries(e.trackIdToMetadataJson).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{},trackIdToBitrates:Nt(e.trackIdToBitrates)?Object.entries(e.trackIdToBitrates).reduce((t,[n,i])=>(t[n]=w.fromJSON(i),t),{}):{},midToTrackId:Nt(e.midToTrackId)?Object.entries(e.midToTrackId).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{}}},toJSON(e){let t={};if(e.sdp!==""&&(t.sdp=e.sdp),e.trackIdToMetadataJson){let n=Object.entries(e.trackIdToMetadataJson);n.length>0&&(t.trackIdToMetadataJson={},n.forEach(([i,r])=>{t.trackIdToMetadataJson[i]=r}))}if(e.trackIdToBitrates){let n=Object.entries(e.trackIdToBitrates);n.length>0&&(t.trackIdToBitrates={},n.forEach(([i,r])=>{t.trackIdToBitrates[i]=w.toJSON(r)}))}if(e.midToTrackId){let n=Object.entries(e.midToTrackId);n.length>0&&(t.midToTrackId={},n.forEach(([i,r])=>{t.midToTrackId[i]=r}))}return t},create(e){return se.fromPartial(e??{})},fromPartial(e){let t=On();return t.sdp=e.sdp??"",t.trackIdToMetadataJson=Object.entries(e.trackIdToMetadataJson??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t.trackIdToBitrates=Object.entries(e.trackIdToBitrates??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=w.fromPartial(r)),n),{}),t.midToTrackId=Object.entries(e.midToTrackId??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t}};function Pn(){return{key:"",value:""}}var xt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Pn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:E(e.key)?globalThis.String(e.key):"",value:E(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return xt.fromPartial(e??{})},fromPartial(e){let t=Pn();return t.key=e.key??"",t.value=e.value??"",t}};function Cn(){return{key:"",value:void 0}}var Jt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&w.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Cn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=w.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:E(e.key)?globalThis.String(e.key):"",value:E(e.value)?w.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=w.toJSON(e.value)),t},create(e){return Jt.fromPartial(e??{})},fromPartial(e){let t=Cn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?w.fromPartial(e.value):void 0,t}};function Rn(){return{key:"",value:""}}var At={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Rn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:E(e.key)?globalThis.String(e.key):"",value:E(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return At.fromPartial(e??{})},fromPartial(e){let t=Rn();return t.key=e.key??"",t.value=e.value??"",t}};function Nn(){return{trackId:"",variantBitrates:[]}}var w={encode(e,t=new s){e.trackId!==""&&t.uint32(10).string(e.trackId);for(let n of e.variantBitrates)ne.encode(n,t.uint32(18).fork()).join();return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Nn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==18)break;r.variantBitrates.push(ne.decode(n,n.uint32()));continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:E(e.trackId)?globalThis.String(e.trackId):"",variantBitrates:globalThis.Array.isArray(e?.variantBitrates)?e.variantBitrates.map(t=>ne.fromJSON(t)):[]}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variantBitrates?.length&&(t.variantBitrates=e.variantBitrates.map(n=>ne.toJSON(n))),t},create(e){return w.fromPartial(e??{})},fromPartial(e){let t=Nn();return t.trackId=e.trackId??"",t.variantBitrates=e.variantBitrates?.map(n=>ne.fromPartial(n))||[],t}};function xn(){return{trackId:"",variant:0}}var ce={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.variant!==0&&t.uint32(16).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=xn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:E(e.trackId)?globalThis.String(e.trackId):"",variant:E(e.variant)?R(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=N(e.variant)),t},create(e){return ce.fromPartial(e??{})},fromPartial(e){let t=xn();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Jn(){return{trackId:"",variant:0}}var ue={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.variant!==0&&t.uint32(16).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Jn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:E(e.trackId)?globalThis.String(e.trackId):"",variant:E(e.variant)?R(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=N(e.variant)),t},create(e){return ue.fromPartial(e??{})},fromPartial(e){let t=Jn();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function An(){return{trackId:"",variant:0}}var fe={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.variant!==0&&t.uint32(16).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=An();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:E(e.trackId)?globalThis.String(e.trackId):"",variant:E(e.variant)?R(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=N(e.variant)),t},create(e){return fe.fromPartial(e??{})},fromPartial(e){let t=An();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Bn(){return{trackId:""}}var le={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Bn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:E(e.trackId)?globalThis.String(e.trackId):""}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),t},create(e){return le.fromPartial(e??{})},fromPartial(e){let t=Bn();return t.trackId=e.trackId??"",t}};function Nt(e){return typeof e=="object"&&e!==null}function E(e){return e!=null}function Qr(e){switch(e){case 0:case"STATUS_UNSPECIFIED":return 0;case 1:case"STATUS_SILENCE":return 1;case 2:case"STATUS_SPEECH":return 2;case-1:case"UNRECOGNIZED":default:return-1}}function Xr(e){switch(e){case 0:return"STATUS_UNSPECIFIED";case 1:return"STATUS_SILENCE";case 2:return"STATUS_SPEECH";case-1:default:return"UNRECOGNIZED"}}function Dn(){return{endpointUpdated:void 0,trackUpdated:void 0,tracksAdded:void 0,tracksRemoved:void 0,endpointAdded:void 0,endpointRemoved:void 0,connected:void 0,error:void 0,offerData:void 0,candidate:void 0,sdpAnswer:void 0,vadNotification:void 0,trackVariantSwitched:void 0,trackVariantDisabled:void 0,trackVariantEnabled:void 0}}var U={encode(e,t=new s){return e.endpointUpdated!==void 0&&he.encode(e.endpointUpdated,t.uint32(10).fork()).join(),e.trackUpdated!==void 0&&ve.encode(e.trackUpdated,t.uint32(18).fork()).join(),e.tracksAdded!==void 0&&Te.encode(e.tracksAdded,t.uint32(26).fork()).join(),e.tracksRemoved!==void 0&&Ee.encode(e.tracksRemoved,t.uint32(34).fork()).join(),e.endpointAdded!==void 0&&me.encode(e.endpointAdded,t.uint32(42).fork()).join(),e.endpointRemoved!==void 0&&Me.encode(e.endpointRemoved,t.uint32(50).fork()).join(),e.connected!==void 0&&Ie.encode(e.connected,t.uint32(58).fork()).join(),e.error!==void 0&&ye.encode(e.error,t.uint32(66).fork()).join(),e.offerData!==void 0&&ge.encode(e.offerData,t.uint32(74).fork()).join(),e.candidate!==void 0&&O.encode(e.candidate,t.uint32(82).fork()).join(),e.sdpAnswer!==void 0&&_e.encode(e.sdpAnswer,t.uint32(90).fork()).join(),e.vadNotification!==void 0&&we.encode(e.vadNotification,t.uint32(98).fork()).join(),e.trackVariantSwitched!==void 0&&be.encode(e.trackVariantSwitched,t.uint32(106).fork()).join(),e.trackVariantDisabled!==void 0&&Oe.encode(e.trackVariantDisabled,t.uint32(114).fork()).join(),e.trackVariantEnabled!==void 0&&Pe.encode(e.trackVariantEnabled,t.uint32(122).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Dn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointUpdated=he.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.trackUpdated=ve.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.tracksAdded=Te.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.tracksRemoved=Ee.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.endpointAdded=me.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.endpointRemoved=Me.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.connected=Ie.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.error=ye.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.offerData=ge.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.candidate=O.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.sdpAnswer=_e.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.vadNotification=we.decode(n,n.uint32());continue}case 13:{if(a!==106)break;r.trackVariantSwitched=be.decode(n,n.uint32());continue}case 14:{if(a!==114)break;r.trackVariantDisabled=Oe.decode(n,n.uint32());continue}case 15:{if(a!==122)break;r.trackVariantEnabled=Pe.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointUpdated:f(e.endpointUpdated)?he.fromJSON(e.endpointUpdated):void 0,trackUpdated:f(e.trackUpdated)?ve.fromJSON(e.trackUpdated):void 0,tracksAdded:f(e.tracksAdded)?Te.fromJSON(e.tracksAdded):void 0,tracksRemoved:f(e.tracksRemoved)?Ee.fromJSON(e.tracksRemoved):void 0,endpointAdded:f(e.endpointAdded)?me.fromJSON(e.endpointAdded):void 0,endpointRemoved:f(e.endpointRemoved)?Me.fromJSON(e.endpointRemoved):void 0,connected:f(e.connected)?Ie.fromJSON(e.connected):void 0,error:f(e.error)?ye.fromJSON(e.error):void 0,offerData:f(e.offerData)?ge.fromJSON(e.offerData):void 0,candidate:f(e.candidate)?O.fromJSON(e.candidate):void 0,sdpAnswer:f(e.sdpAnswer)?_e.fromJSON(e.sdpAnswer):void 0,vadNotification:f(e.vadNotification)?we.fromJSON(e.vadNotification):void 0,trackVariantSwitched:f(e.trackVariantSwitched)?be.fromJSON(e.trackVariantSwitched):void 0,trackVariantDisabled:f(e.trackVariantDisabled)?Oe.fromJSON(e.trackVariantDisabled):void 0,trackVariantEnabled:f(e.trackVariantEnabled)?Pe.fromJSON(e.trackVariantEnabled):void 0}},toJSON(e){let t={};return e.endpointUpdated!==void 0&&(t.endpointUpdated=he.toJSON(e.endpointUpdated)),e.trackUpdated!==void 0&&(t.trackUpdated=ve.toJSON(e.trackUpdated)),e.tracksAdded!==void 0&&(t.tracksAdded=Te.toJSON(e.tracksAdded)),e.tracksRemoved!==void 0&&(t.tracksRemoved=Ee.toJSON(e.tracksRemoved)),e.endpointAdded!==void 0&&(t.endpointAdded=me.toJSON(e.endpointAdded)),e.endpointRemoved!==void 0&&(t.endpointRemoved=Me.toJSON(e.endpointRemoved)),e.connected!==void 0&&(t.connected=Ie.toJSON(e.connected)),e.error!==void 0&&(t.error=ye.toJSON(e.error)),e.offerData!==void 0&&(t.offerData=ge.toJSON(e.offerData)),e.candidate!==void 0&&(t.candidate=O.toJSON(e.candidate)),e.sdpAnswer!==void 0&&(t.sdpAnswer=_e.toJSON(e.sdpAnswer)),e.vadNotification!==void 0&&(t.vadNotification=we.toJSON(e.vadNotification)),e.trackVariantSwitched!==void 0&&(t.trackVariantSwitched=be.toJSON(e.trackVariantSwitched)),e.trackVariantDisabled!==void 0&&(t.trackVariantDisabled=Oe.toJSON(e.trackVariantDisabled)),e.trackVariantEnabled!==void 0&&(t.trackVariantEnabled=Pe.toJSON(e.trackVariantEnabled)),t},create(e){return U.fromPartial(e??{})},fromPartial(e){let t=Dn();return t.endpointUpdated=e.endpointUpdated!==void 0&&e.endpointUpdated!==null?he.fromPartial(e.endpointUpdated):void 0,t.trackUpdated=e.trackUpdated!==void 0&&e.trackUpdated!==null?ve.fromPartial(e.trackUpdated):void 0,t.tracksAdded=e.tracksAdded!==void 0&&e.tracksAdded!==null?Te.fromPartial(e.tracksAdded):void 0,t.tracksRemoved=e.tracksRemoved!==void 0&&e.tracksRemoved!==null?Ee.fromPartial(e.tracksRemoved):void 0,t.endpointAdded=e.endpointAdded!==void 0&&e.endpointAdded!==null?me.fromPartial(e.endpointAdded):void 0,t.endpointRemoved=e.endpointRemoved!==void 0&&e.endpointRemoved!==null?Me.fromPartial(e.endpointRemoved):void 0,t.connected=e.connected!==void 0&&e.connected!==null?Ie.fromPartial(e.connected):void 0,t.error=e.error!==void 0&&e.error!==null?ye.fromPartial(e.error):void 0,t.offerData=e.offerData!==void 0&&e.offerData!==null?ge.fromPartial(e.offerData):void 0,t.candidate=e.candidate!==void 0&&e.candidate!==null?O.fromPartial(e.candidate):void 0,t.sdpAnswer=e.sdpAnswer!==void 0&&e.sdpAnswer!==null?_e.fromPartial(e.sdpAnswer):void 0,t.vadNotification=e.vadNotification!==void 0&&e.vadNotification!==null?we.fromPartial(e.vadNotification):void 0,t.trackVariantSwitched=e.trackVariantSwitched!==void 0&&e.trackVariantSwitched!==null?be.fromPartial(e.trackVariantSwitched):void 0,t.trackVariantDisabled=e.trackVariantDisabled!==void 0&&e.trackVariantDisabled!==null?Oe.fromPartial(e.trackVariantDisabled):void 0,t.trackVariantEnabled=e.trackVariantEnabled!==void 0&&e.trackVariantEnabled!==null?Pe.fromPartial(e.trackVariantEnabled):void 0,t}};function Un(){return{metadataJson:"",simulcastConfig:void 0}}var y={encode(e,t=new s){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),e.simulcastConfig!==void 0&&ke.encode(e.simulcastConfig,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Un();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.metadataJson=n.string();continue}case 2:{if(a!==18)break;r.simulcastConfig=ke.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:f(e.metadataJson)?globalThis.String(e.metadataJson):"",simulcastConfig:f(e.simulcastConfig)?ke.fromJSON(e.simulcastConfig):void 0}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),e.simulcastConfig!==void 0&&(t.simulcastConfig=ke.toJSON(e.simulcastConfig)),t},create(e){return y.fromPartial(e??{})},fromPartial(e){let t=Un();return t.metadataJson=e.metadataJson??"",t.simulcastConfig=e.simulcastConfig!==void 0&&e.simulcastConfig!==null?ke.fromPartial(e.simulcastConfig):void 0,t}};function Vn(){return{enabled:!1,enabledVariants:[],disabledVariants:[]}}var ke={encode(e,t=new s){e.enabled!==!1&&t.uint32(8).bool(e.enabled),t.uint32(18).fork();for(let n of e.enabledVariants)t.int32(n);t.join(),t.uint32(26).fork();for(let n of e.disabledVariants)t.int32(n);return t.join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Vn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.enabled=n.bool();continue}case 2:{if(a===16){r.enabledVariants.push(n.int32());continue}if(a===18){let d=n.uint32()+n.pos;for(;n.pos<d;)r.enabledVariants.push(n.int32());continue}break}case 3:{if(a===24){r.disabledVariants.push(n.int32());continue}if(a===26){let d=n.uint32()+n.pos;for(;n.pos<d;)r.disabledVariants.push(n.int32());continue}break}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{enabled:f(e.enabled)?globalThis.Boolean(e.enabled):!1,enabledVariants:globalThis.Array.isArray(e?.enabledVariants)?e.enabledVariants.map(t=>R(t)):[],disabledVariants:globalThis.Array.isArray(e?.disabledVariants)?e.disabledVariants.map(t=>R(t)):[]}},toJSON(e){let t={};return e.enabled!==!1&&(t.enabled=e.enabled),e.enabledVariants?.length&&(t.enabledVariants=e.enabledVariants.map(n=>N(n))),e.disabledVariants?.length&&(t.disabledVariants=e.disabledVariants.map(n=>N(n))),t},create(e){return ke.fromPartial(e??{})},fromPartial(e){let t=Vn();return t.enabled=e.enabled??!1,t.enabledVariants=e.enabledVariants?.map(n=>n)||[],t.disabledVariants=e.disabledVariants?.map(n=>n)||[],t}};function Ln(){return{endpointType:"",metadataJson:"",trackIdToTrack:{}}}var D={encode(e,t=new s){return e.endpointType!==""&&t.uint32(18).string(e.endpointType),e.metadataJson!==""&&t.uint32(26).string(e.metadataJson),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{Bt.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ln();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 2:{if(a!==18)break;r.endpointType=n.string();continue}case 3:{if(a!==26)break;r.metadataJson=n.string();continue}case 4:{if(a!==34)break;let d=Bt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToTrack[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointType:f(e.endpointType)?globalThis.String(e.endpointType):"",metadataJson:f(e.metadataJson)?globalThis.String(e.metadataJson):"",trackIdToTrack:Tt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=y.fromJSON(i),t),{}):{}}},toJSON(e){let t={};if(e.endpointType!==""&&(t.endpointType=e.endpointType),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),e.trackIdToTrack){let n=Object.entries(e.trackIdToTrack);n.length>0&&(t.trackIdToTrack={},n.forEach(([i,r])=>{t.trackIdToTrack[i]=y.toJSON(r)}))}return t},create(e){return D.fromPartial(e??{})},fromPartial(e){let t=Ln();return t.endpointType=e.endpointType??"",t.metadataJson=e.metadataJson??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=y.fromPartial(r)),n),{}),t}};function Fn(){return{key:"",value:void 0}}var Bt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&y.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Fn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=y.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:f(e.key)?globalThis.String(e.key):"",value:f(e.value)?y.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=y.toJSON(e.value)),t},create(e){return Bt.fromPartial(e??{})},fromPartial(e){let t=Fn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?y.fromPartial(e.value):void 0,t}};function Wn(){return{credential:"",urls:[],username:""}}var pe={encode(e,t=new s){e.credential!==""&&t.uint32(10).string(e.credential);for(let n of e.urls)t.uint32(18).string(n);return e.username!==""&&t.uint32(26).string(e.username),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Wn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.credential=n.string();continue}case 2:{if(a!==18)break;r.urls.push(n.string());continue}case 3:{if(a!==26)break;r.username=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{credential:f(e.credential)?globalThis.String(e.credential):"",urls:globalThis.Array.isArray(e?.urls)?e.urls.map(t=>globalThis.String(t)):[],username:f(e.username)?globalThis.String(e.username):""}},toJSON(e){let t={};return e.credential!==""&&(t.credential=e.credential),e.urls?.length&&(t.urls=e.urls),e.username!==""&&(t.username=e.username),t},create(e){return pe.fromPartial(e??{})},fromPartial(e){let t=Wn();return t.credential=e.credential??"",t.urls=e.urls?.map(n=>n)||[],t.username=e.username??"",t}};function $n(){return{endpointId:"",metadataJson:""}}var he={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.metadataJson!==""&&t.uint32(18).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=$n();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:f(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:f(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return he.fromPartial(e??{})},fromPartial(e){let t=$n();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function Hn(){return{endpointId:"",trackId:"",metadataJson:""}}var ve={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.metadataJson!==""&&t.uint32(26).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Hn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==26)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:f(e.endpointId)?globalThis.String(e.endpointId):"",trackId:f(e.trackId)?globalThis.String(e.trackId):"",metadataJson:f(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return ve.fromPartial(e??{})},fromPartial(e){let t=Hn();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function qn(){return{endpointId:"",trackIdToTrack:{}}}var Te={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{Dt.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=qn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;let d=Dt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToTrack[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:f(e.endpointId)?globalThis.String(e.endpointId):"",trackIdToTrack:Tt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=y.fromJSON(i),t),{}):{}}},toJSON(e){let t={};if(e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackIdToTrack){let n=Object.entries(e.trackIdToTrack);n.length>0&&(t.trackIdToTrack={},n.forEach(([i,r])=>{t.trackIdToTrack[i]=y.toJSON(r)}))}return t},create(e){return Te.fromPartial(e??{})},fromPartial(e){let t=qn();return t.endpointId=e.endpointId??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=y.fromPartial(r)),n),{}),t}};function Gn(){return{key:"",value:void 0}}var Dt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&y.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Gn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=y.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:f(e.key)?globalThis.String(e.key):"",value:f(e.value)?y.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=y.toJSON(e.value)),t},create(e){return Dt.fromPartial(e??{})},fromPartial(e){let t=Gn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?y.fromPartial(e.value):void 0,t}};function Kn(){return{endpointId:"",trackIds:[]}}var Ee={encode(e,t=new s){e.endpointId!==""&&t.uint32(10).string(e.endpointId);for(let n of e.trackIds)t.uint32(18).string(n);return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Kn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackIds.push(n.string());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:f(e.endpointId)?globalThis.String(e.endpointId):"",trackIds:globalThis.Array.isArray(e?.trackIds)?e.trackIds.map(t=>globalThis.String(t)):[]}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackIds?.length&&(t.trackIds=e.trackIds),t},create(e){return Ee.fromPartial(e??{})},fromPartial(e){let t=Kn();return t.endpointId=e.endpointId??"",t.trackIds=e.trackIds?.map(n=>n)||[],t}};function zn(){return{endpointId:"",metadataJson:""}}var me={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.metadataJson!==""&&t.uint32(18).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=zn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:f(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:f(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return me.fromPartial(e??{})},fromPartial(e){let t=zn();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function Zn(){return{endpointId:"",endpointIdToEndpoint:{},iceServers:[]}}var Ie={encode(e,t=new s){e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.endpointIdToEndpoint).forEach(([n,i])=>{Ut.encode({key:n,value:i},t.uint32(18).fork()).join()});for(let n of e.iceServers)pe.encode(n,t.uint32(26).fork()).join();return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Zn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;let d=Ut.decode(n,n.uint32());d.value!==void 0&&(r.endpointIdToEndpoint[d.key]=d.value);continue}case 3:{if(a!==26)break;r.iceServers.push(pe.decode(n,n.uint32()));continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:f(e.endpointId)?globalThis.String(e.endpointId):"",endpointIdToEndpoint:Tt(e.endpointIdToEndpoint)?Object.entries(e.endpointIdToEndpoint).reduce((t,[n,i])=>(t[n]=D.fromJSON(i),t),{}):{},iceServers:globalThis.Array.isArray(e?.iceServers)?e.iceServers.map(t=>pe.fromJSON(t)):[]}},toJSON(e){let t={};if(e.endpointId!==""&&(t.endpointId=e.endpointId),e.endpointIdToEndpoint){let n=Object.entries(e.endpointIdToEndpoint);n.length>0&&(t.endpointIdToEndpoint={},n.forEach(([i,r])=>{t.endpointIdToEndpoint[i]=D.toJSON(r)}))}return e.iceServers?.length&&(t.iceServers=e.iceServers.map(n=>pe.toJSON(n))),t},create(e){return Ie.fromPartial(e??{})},fromPartial(e){let t=Zn();return t.endpointId=e.endpointId??"",t.endpointIdToEndpoint=Object.entries(e.endpointIdToEndpoint??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=D.fromPartial(r)),n),{}),t.iceServers=e.iceServers?.map(n=>pe.fromPartial(n))||[],t}};function Yn(){return{key:"",value:void 0}}var Ut={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&D.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Yn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=D.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:f(e.key)?globalThis.String(e.key):"",value:f(e.value)?D.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=D.toJSON(e.value)),t},create(e){return Ut.fromPartial(e??{})},fromPartial(e){let t=Yn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?D.fromPartial(e.value):void 0,t}};function Qn(){return{endpointId:""}}var Me={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Qn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:f(e.endpointId)?globalThis.String(e.endpointId):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),t},create(e){return Me.fromPartial(e??{})},fromPartial(e){let t=Qn();return t.endpointId=e.endpointId??"",t}};function Xn(){return{message:""}}var ye={encode(e,t=new s){return e.message!==""&&t.uint32(10).string(e.message),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Xn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.message=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{message:f(e.message)?globalThis.String(e.message):""}},toJSON(e){let t={};return e.message!==""&&(t.message=e.message),t},create(e){return ye.fromPartial(e??{})},fromPartial(e){let t=Xn();return t.message=e.message??"",t}};function jn(){return{tracksTypes:void 0}}var ge={encode(e,t=new s){return e.tracksTypes!==void 0&&Se.encode(e.tracksTypes,t.uint32(10).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=jn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.tracksTypes=Se.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{tracksTypes:f(e.tracksTypes)?Se.fromJSON(e.tracksTypes):void 0}},toJSON(e){let t={};return e.tracksTypes!==void 0&&(t.tracksTypes=Se.toJSON(e.tracksTypes)),t},create(e){return ge.fromPartial(e??{})},fromPartial(e){let t=jn();return t.tracksTypes=e.tracksTypes!==void 0&&e.tracksTypes!==null?Se.fromPartial(e.tracksTypes):void 0,t}};function ea(){return{audio:0,video:0}}var Se={encode(e,t=new s){return e.audio!==0&&t.uint32(8).int32(e.audio),e.video!==0&&t.uint32(16).int32(e.video),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ea();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.audio=n.int32();continue}case 2:{if(a!==16)break;r.video=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{audio:f(e.audio)?globalThis.Number(e.audio):0,video:f(e.video)?globalThis.Number(e.video):0}},toJSON(e){let t={};return e.audio!==0&&(t.audio=Math.round(e.audio)),e.video!==0&&(t.video=Math.round(e.video)),t},create(e){return Se.fromPartial(e??{})},fromPartial(e){let t=ea();return t.audio=e.audio??0,t.video=e.video??0,t}};function ta(){return{sdp:"",midToTrackId:{}}}var _e={encode(e,t=new s){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.midToTrackId).forEach(([n,i])=>{Vt.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ta();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.sdp=n.string();continue}case 2:{if(a!==18)break;let d=Vt.decode(n,n.uint32());d.value!==void 0&&(r.midToTrackId[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{sdp:f(e.sdp)?globalThis.String(e.sdp):"",midToTrackId:Tt(e.midToTrackId)?Object.entries(e.midToTrackId).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{}}},toJSON(e){let t={};if(e.sdp!==""&&(t.sdp=e.sdp),e.midToTrackId){let n=Object.entries(e.midToTrackId);n.length>0&&(t.midToTrackId={},n.forEach(([i,r])=>{t.midToTrackId[i]=r}))}return t},create(e){return _e.fromPartial(e??{})},fromPartial(e){let t=ta();return t.sdp=e.sdp??"",t.midToTrackId=Object.entries(e.midToTrackId??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t}};function na(){return{key:"",value:""}}var Vt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=na();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:f(e.key)?globalThis.String(e.key):"",value:f(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return Vt.fromPartial(e??{})},fromPartial(e){let t=na();return t.key=e.key??"",t.value=e.value??"",t}};function aa(){return{trackId:"",status:0}}var we={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.status!==0&&t.uint32(16).int32(e.status),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=aa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.status=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:f(e.trackId)?globalThis.String(e.trackId):"",status:f(e.status)?Qr(e.status):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.status!==0&&(t.status=Xr(e.status)),t},create(e){return we.fromPartial(e??{})},fromPartial(e){let t=aa();return t.trackId=e.trackId??"",t.status=e.status??0,t}};function ra(){return{endpointId:"",trackId:"",variant:0}}var be={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.variant!==0&&t.uint32(24).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ra();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==24)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:f(e.endpointId)?globalThis.String(e.endpointId):"",trackId:f(e.trackId)?globalThis.String(e.trackId):"",variant:f(e.variant)?R(e.variant):0}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=N(e.variant)),t},create(e){return be.fromPartial(e??{})},fromPartial(e){let t=ra();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function ia(){return{endpointId:"",trackId:"",variant:0}}var Oe={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.variant!==0&&t.uint32(24).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ia();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==24)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:f(e.endpointId)?globalThis.String(e.endpointId):"",trackId:f(e.trackId)?globalThis.String(e.trackId):"",variant:f(e.variant)?R(e.variant):0}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=N(e.variant)),t},create(e){return Oe.fromPartial(e??{})},fromPartial(e){let t=ia();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function da(){return{endpointId:"",trackId:"",variant:0}}var Pe={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.variant!==0&&t.uint32(24).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=da();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==24)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:f(e.endpointId)?globalThis.String(e.endpointId):"",trackId:f(e.trackId)?globalThis.String(e.trackId):"",variant:f(e.variant)?R(e.variant):0}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=N(e.variant)),t},create(e){return Pe.fromPartial(e??{})},fromPartial(e){let t=da();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Tt(e){return typeof e=="object"&&e!==null}function f(e){return e!=null}function jr(e){switch(e){case 0:case"ROOM_TYPE_UNSPECIFIED":return 0;case 1:case"ROOM_TYPE_CONFERENCE":return 1;case 2:case"ROOM_TYPE_AUDIO_ONLY":return 2;case 3:case"ROOM_TYPE_LIVESTREAM":return 3;case-1:case"UNRECOGNIZED":default:return-1}}function ei(e){switch(e){case 0:return"ROOM_TYPE_UNSPECIFIED";case 1:return"ROOM_TYPE_CONFERENCE";case 2:return"ROOM_TYPE_AUDIO_ONLY";case 3:return"ROOM_TYPE_LIVESTREAM";case-1:default:return"UNRECOGNIZED"}}function ti(e){switch(e){case 0:case"STATUS_UNSPECIFIED":return 0;case 1:case"STATUS_UP_TO_DATE":return 1;case 2:case"STATUS_DEPRECATED":return 2;case 3:case"STATUS_UNSUPPORTED":return 3;case-1:case"UNRECOGNIZED":default:return-1}}function ni(e){switch(e){case 0:return"STATUS_UNSPECIFIED";case 1:return"STATUS_UP_TO_DATE";case 2:return"STATUS_DEPRECATED";case 3:return"STATUS_UNSUPPORTED";case-1:default:return"UNRECOGNIZED"}}function oa(){return{authenticated:void 0,authRequest:void 0,mediaEvent:void 0,rtcStatsReport:void 0,peerMediaEvent:void 0,serverMediaEvent:void 0}}var Ae={encode(e,t=new s){return e.authenticated!==void 0&&Re.encode(e.authenticated,t.uint32(10).fork()).join(),e.authRequest!==void 0&&Ne.encode(e.authRequest,t.uint32(18).fork()).join(),e.mediaEvent!==void 0&&Je.encode(e.mediaEvent,t.uint32(26).fork()).join(),e.rtcStatsReport!==void 0&&xe.encode(e.rtcStatsReport,t.uint32(34).fork()).join(),e.peerMediaEvent!==void 0&&B.encode(e.peerMediaEvent,t.uint32(42).fork()).join(),e.serverMediaEvent!==void 0&&U.encode(e.serverMediaEvent,t.uint32(50).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=oa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.authenticated=Re.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.authRequest=Ne.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.mediaEvent=Je.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.rtcStatsReport=xe.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.peerMediaEvent=B.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.serverMediaEvent=U.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{authenticated:b(e.authenticated)?Re.fromJSON(e.authenticated):void 0,authRequest:b(e.authRequest)?Ne.fromJSON(e.authRequest):void 0,mediaEvent:b(e.mediaEvent)?Je.fromJSON(e.mediaEvent):void 0,rtcStatsReport:b(e.rtcStatsReport)?xe.fromJSON(e.rtcStatsReport):void 0,peerMediaEvent:b(e.peerMediaEvent)?B.fromJSON(e.peerMediaEvent):void 0,serverMediaEvent:b(e.serverMediaEvent)?U.fromJSON(e.serverMediaEvent):void 0}},toJSON(e){let t={};return e.authenticated!==void 0&&(t.authenticated=Re.toJSON(e.authenticated)),e.authRequest!==void 0&&(t.authRequest=Ne.toJSON(e.authRequest)),e.mediaEvent!==void 0&&(t.mediaEvent=Je.toJSON(e.mediaEvent)),e.rtcStatsReport!==void 0&&(t.rtcStatsReport=xe.toJSON(e.rtcStatsReport)),e.peerMediaEvent!==void 0&&(t.peerMediaEvent=B.toJSON(e.peerMediaEvent)),e.serverMediaEvent!==void 0&&(t.serverMediaEvent=U.toJSON(e.serverMediaEvent)),t},create(e){return Ae.fromPartial(e??{})},fromPartial(e){let t=oa();return t.authenticated=e.authenticated!==void 0&&e.authenticated!==null?Re.fromPartial(e.authenticated):void 0,t.authRequest=e.authRequest!==void 0&&e.authRequest!==null?Ne.fromPartial(e.authRequest):void 0,t.mediaEvent=e.mediaEvent!==void 0&&e.mediaEvent!==null?Je.fromPartial(e.mediaEvent):void 0,t.rtcStatsReport=e.rtcStatsReport!==void 0&&e.rtcStatsReport!==null?xe.fromPartial(e.rtcStatsReport):void 0,t.peerMediaEvent=e.peerMediaEvent!==void 0&&e.peerMediaEvent!==null?B.fromPartial(e.peerMediaEvent):void 0,t.serverMediaEvent=e.serverMediaEvent!==void 0&&e.serverMediaEvent!==null?U.fromPartial(e.serverMediaEvent):void 0,t}};function sa(){return{status:0,message:""}}var Ce={encode(e,t=new s){return e.status!==0&&t.uint32(8).int32(e.status),e.message!==""&&t.uint32(18).string(e.message),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=sa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.status=n.int32();continue}case 2:{if(a!==18)break;r.message=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{status:b(e.status)?ti(e.status):0,message:b(e.message)?globalThis.String(e.message):""}},toJSON(e){let t={};return e.status!==0&&(t.status=ni(e.status)),e.message!==""&&(t.message=e.message),t},create(e){return Ce.fromPartial(e??{})},fromPartial(e){let t=sa();return t.status=e.status??0,t.message=e.message??"",t}};function ca(){return{roomType:0,sdkDeprecation:void 0}}var Re={encode(e,t=new s){return e.roomType!==0&&t.uint32(8).int32(e.roomType),e.sdkDeprecation!==void 0&&Ce.encode(e.sdkDeprecation,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ca();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.roomType=n.int32();continue}case 2:{if(a!==18)break;r.sdkDeprecation=Ce.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{roomType:b(e.roomType)?jr(e.roomType):0,sdkDeprecation:b(e.sdkDeprecation)?Ce.fromJSON(e.sdkDeprecation):void 0}},toJSON(e){let t={};return e.roomType!==0&&(t.roomType=ei(e.roomType)),e.sdkDeprecation!==void 0&&(t.sdkDeprecation=Ce.toJSON(e.sdkDeprecation)),t},create(e){return Re.fromPartial(e??{})},fromPartial(e){let t=ca();return t.roomType=e.roomType??0,t.sdkDeprecation=e.sdkDeprecation!==void 0&&e.sdkDeprecation!==null?Ce.fromPartial(e.sdkDeprecation):void 0,t}};function ua(){return{token:"",sdkVersion:""}}var Ne={encode(e,t=new s){return e.token!==""&&t.uint32(10).string(e.token),e.sdkVersion!==""&&t.uint32(18).string(e.sdkVersion),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ua();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.token=n.string();continue}case 2:{if(a!==18)break;r.sdkVersion=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{token:b(e.token)?globalThis.String(e.token):"",sdkVersion:b(e.sdkVersion)?globalThis.String(e.sdkVersion):""}},toJSON(e){let t={};return e.token!==""&&(t.token=e.token),e.sdkVersion!==""&&(t.sdkVersion=e.sdkVersion),t},create(e){return Ne.fromPartial(e??{})},fromPartial(e){let t=ua();return t.token=e.token??"",t.sdkVersion=e.sdkVersion??"",t}};function fa(){return{data:""}}var xe={encode(e,t=new s){return e.data!==""&&t.uint32(10).string(e.data),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=fa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.data=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{data:b(e.data)?globalThis.String(e.data):""}},toJSON(e){let t={};return e.data!==""&&(t.data=e.data),t},create(e){return xe.fromPartial(e??{})},fromPartial(e){let t=fa();return t.data=e.data??"",t}};function la(){return{data:""}}var Je={encode(e,t=new s){return e.data!==""&&t.uint32(10).string(e.data),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=la();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.data=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{data:b(e.data)?globalThis.String(e.data):""}},toJSON(e){let t={};return e.data!==""&&(t.data=e.data),t},create(e){return Je.fromPartial(e??{})},fromPartial(e){let t=la();return t.data=e.data??"",t}};function b(e){return e!=null}var pr=kt(ct(),1);var g=[];for(let e=0;e<256;++e)g.push((e+256).toString(16).slice(1));function ga(e,t=0){return(g[e[t+0]]+g[e[t+1]]+g[e[t+2]]+g[e[t+3]]+"-"+g[e[t+4]]+g[e[t+5]]+"-"+g[e[t+6]]+g[e[t+7]]+"-"+g[e[t+8]]+g[e[t+9]]+"-"+g[e[t+10]]+g[e[t+11]]+g[e[t+12]]+g[e[t+13]]+g[e[t+14]]+g[e[t+15]]).toLowerCase()}var Ft,ci=new Uint8Array(16);function Wt(){if(!Ft){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Ft=crypto.getRandomValues.bind(crypto)}return Ft(ci)}var ui=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),$t={randomUUID:ui};function fi(e,t,n){if($t.randomUUID&&!t&&!e)return $t.randomUUID();e=e||{};let i=e.random??e.rng?.()??Wt();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){if(n=n||0,n<0||n+16>t.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let r=0;r<16;++r)t[n+r]=i[r];return t}return ga(i)}var Ht=fi;var hr=kt(ct(),1);var Er=kt(ct(),1),qt="[FISHJAM]",nn=e=>({debug:(t,...n)=>{e&&console.debug(qt,t,...n)},warn:(t,...n)=>{e&&console.warn(qt,t,...n)},error:(t,...n)=>{e&&console.error(qt,t,...n)}}),li=(e=>(e[e.VARIANT_UNSPECIFIED=0]="VARIANT_UNSPECIFIED",e[e.VARIANT_LOW=1]="VARIANT_LOW",e[e.VARIANT_MEDIUM=2]="VARIANT_MEDIUM",e[e.VARIANT_HIGH=3]="VARIANT_HIGH",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED",e))(li||{});function L(e){switch(e){case 0:case"VARIANT_UNSPECIFIED":return 0;case 1:case"VARIANT_LOW":return 1;case 2:case"VARIANT_MEDIUM":return 2;case 3:case"VARIANT_HIGH":return 3;case-1:case"UNRECOGNIZED":default:return-1}}function F(e){switch(e){case 0:return"VARIANT_UNSPECIFIED";case 1:return"VARIANT_LOW";case 2:return"VARIANT_MEDIUM";case 3:return"VARIANT_HIGH";case-1:default:return"UNRECOGNIZED"}}function Sa(){return{candidate:"",sdpMLineIndex:0,sdpMid:"",usernameFragment:""}}var P={encode(e,t=new s){return e.candidate!==""&&t.uint32(10).string(e.candidate),e.sdpMLineIndex!==0&&t.uint32(16).int32(e.sdpMLineIndex),e.sdpMid!==""&&t.uint32(26).string(e.sdpMid),e.usernameFragment!==""&&t.uint32(34).string(e.usernameFragment),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Sa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.candidate=n.string();continue}case 2:{if(a!==16)break;r.sdpMLineIndex=n.int32();continue}case 3:{if(a!==26)break;r.sdpMid=n.string();continue}case 4:{if(a!==34)break;r.usernameFragment=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{candidate:It(e.candidate)?globalThis.String(e.candidate):"",sdpMLineIndex:It(e.sdpMLineIndex)?globalThis.Number(e.sdpMLineIndex):0,sdpMid:It(e.sdpMid)?globalThis.String(e.sdpMid):"",usernameFragment:It(e.usernameFragment)?globalThis.String(e.usernameFragment):""}},toJSON(e){let t={};return e.candidate!==""&&(t.candidate=e.candidate),e.sdpMLineIndex!==0&&(t.sdpMLineIndex=Math.round(e.sdpMLineIndex)),e.sdpMid!==""&&(t.sdpMid=e.sdpMid),e.usernameFragment!==""&&(t.usernameFragment=e.usernameFragment),t},create(e){return P.fromPartial(e??{})},fromPartial(e){let t=Sa();return t.candidate=e.candidate??"",t.sdpMLineIndex=e.sdpMLineIndex??0,t.sdpMid=e.sdpMid??"",t.usernameFragment=e.usernameFragment??"",t}};function It(e){return e!=null}function _a(){return{connect:void 0,disconnect:void 0,updateEndpointMetadata:void 0,updateTrackMetadata:void 0,renegotiateTracks:void 0,candidate:void 0,sdpOffer:void 0,trackBitrates:void 0,enableTrackVariant:void 0,disableTrackVariant:void 0,setTargetTrackVariant:void 0,unmuteTrack:void 0}}var tt={encode(e,t=new s){return e.connect!==void 0&&K.encode(e.connect,t.uint32(10).fork()).join(),e.disconnect!==void 0&&z.encode(e.disconnect,t.uint32(18).fork()).join(),e.updateEndpointMetadata!==void 0&&Z.encode(e.updateEndpointMetadata,t.uint32(26).fork()).join(),e.updateTrackMetadata!==void 0&&$.encode(e.updateTrackMetadata,t.uint32(34).fork()).join(),e.renegotiateTracks!==void 0&&x.encode(e.renegotiateTracks,t.uint32(42).fork()).join(),e.candidate!==void 0&&P.encode(e.candidate,t.uint32(50).fork()).join(),e.sdpOffer!==void 0&&Y.encode(e.sdpOffer,t.uint32(58).fork()).join(),e.trackBitrates!==void 0&&_.encode(e.trackBitrates,t.uint32(66).fork()).join(),e.enableTrackVariant!==void 0&&X.encode(e.enableTrackVariant,t.uint32(74).fork()).join(),e.disableTrackVariant!==void 0&&Q.encode(e.disableTrackVariant,t.uint32(82).fork()).join(),e.setTargetTrackVariant!==void 0&&j.encode(e.setTargetTrackVariant,t.uint32(90).fork()).join(),e.unmuteTrack!==void 0&&ee.encode(e.unmuteTrack,t.uint32(98).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=_a();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.connect=K.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.disconnect=z.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.updateEndpointMetadata=Z.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.updateTrackMetadata=$.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.renegotiateTracks=x.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.candidate=P.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.sdpOffer=Y.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.trackBitrates=_.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.enableTrackVariant=X.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.disableTrackVariant=Q.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.setTargetTrackVariant=j.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.unmuteTrack=ee.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{connect:m(e.connect)?K.fromJSON(e.connect):void 0,disconnect:m(e.disconnect)?z.fromJSON(e.disconnect):void 0,updateEndpointMetadata:m(e.updateEndpointMetadata)?Z.fromJSON(e.updateEndpointMetadata):void 0,updateTrackMetadata:m(e.updateTrackMetadata)?$.fromJSON(e.updateTrackMetadata):void 0,renegotiateTracks:m(e.renegotiateTracks)?x.fromJSON(e.renegotiateTracks):void 0,candidate:m(e.candidate)?P.fromJSON(e.candidate):void 0,sdpOffer:m(e.sdpOffer)?Y.fromJSON(e.sdpOffer):void 0,trackBitrates:m(e.trackBitrates)?_.fromJSON(e.trackBitrates):void 0,enableTrackVariant:m(e.enableTrackVariant)?X.fromJSON(e.enableTrackVariant):void 0,disableTrackVariant:m(e.disableTrackVariant)?Q.fromJSON(e.disableTrackVariant):void 0,setTargetTrackVariant:m(e.setTargetTrackVariant)?j.fromJSON(e.setTargetTrackVariant):void 0,unmuteTrack:m(e.unmuteTrack)?ee.fromJSON(e.unmuteTrack):void 0}},toJSON(e){let t={};return e.connect!==void 0&&(t.connect=K.toJSON(e.connect)),e.disconnect!==void 0&&(t.disconnect=z.toJSON(e.disconnect)),e.updateEndpointMetadata!==void 0&&(t.updateEndpointMetadata=Z.toJSON(e.updateEndpointMetadata)),e.updateTrackMetadata!==void 0&&(t.updateTrackMetadata=$.toJSON(e.updateTrackMetadata)),e.renegotiateTracks!==void 0&&(t.renegotiateTracks=x.toJSON(e.renegotiateTracks)),e.candidate!==void 0&&(t.candidate=P.toJSON(e.candidate)),e.sdpOffer!==void 0&&(t.sdpOffer=Y.toJSON(e.sdpOffer)),e.trackBitrates!==void 0&&(t.trackBitrates=_.toJSON(e.trackBitrates)),e.enableTrackVariant!==void 0&&(t.enableTrackVariant=X.toJSON(e.enableTrackVariant)),e.disableTrackVariant!==void 0&&(t.disableTrackVariant=Q.toJSON(e.disableTrackVariant)),e.setTargetTrackVariant!==void 0&&(t.setTargetTrackVariant=j.toJSON(e.setTargetTrackVariant)),e.unmuteTrack!==void 0&&(t.unmuteTrack=ee.toJSON(e.unmuteTrack)),t},create(e){return tt.fromPartial(e??{})},fromPartial(e){let t=_a();return t.connect=e.connect!==void 0&&e.connect!==null?K.fromPartial(e.connect):void 0,t.disconnect=e.disconnect!==void 0&&e.disconnect!==null?z.fromPartial(e.disconnect):void 0,t.updateEndpointMetadata=e.updateEndpointMetadata!==void 0&&e.updateEndpointMetadata!==null?Z.fromPartial(e.updateEndpointMetadata):void 0,t.updateTrackMetadata=e.updateTrackMetadata!==void 0&&e.updateTrackMetadata!==null?$.fromPartial(e.updateTrackMetadata):void 0,t.renegotiateTracks=e.renegotiateTracks!==void 0&&e.renegotiateTracks!==null?x.fromPartial(e.renegotiateTracks):void 0,t.candidate=e.candidate!==void 0&&e.candidate!==null?P.fromPartial(e.candidate):void 0,t.sdpOffer=e.sdpOffer!==void 0&&e.sdpOffer!==null?Y.fromPartial(e.sdpOffer):void 0,t.trackBitrates=e.trackBitrates!==void 0&&e.trackBitrates!==null?_.fromPartial(e.trackBitrates):void 0,t.enableTrackVariant=e.enableTrackVariant!==void 0&&e.enableTrackVariant!==null?X.fromPartial(e.enableTrackVariant):void 0,t.disableTrackVariant=e.disableTrackVariant!==void 0&&e.disableTrackVariant!==null?Q.fromPartial(e.disableTrackVariant):void 0,t.setTargetTrackVariant=e.setTargetTrackVariant!==void 0&&e.setTargetTrackVariant!==null?j.fromPartial(e.setTargetTrackVariant):void 0,t.unmuteTrack=e.unmuteTrack!==void 0&&e.unmuteTrack!==null?ee.fromPartial(e.unmuteTrack):void 0,t}};function wa(){return{variant:0,bitrate:0}}var De={encode(e,t=new s){return e.variant!==0&&t.uint32(8).int32(e.variant),e.bitrate!==0&&t.uint32(16).int32(e.bitrate),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=wa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.variant=n.int32();continue}case 2:{if(a!==16)break;r.bitrate=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{variant:m(e.variant)?L(e.variant):0,bitrate:m(e.bitrate)?globalThis.Number(e.bitrate):0}},toJSON(e){let t={};return e.variant!==0&&(t.variant=F(e.variant)),e.bitrate!==0&&(t.bitrate=Math.round(e.bitrate)),t},create(e){return De.fromPartial(e??{})},fromPartial(e){let t=wa();return t.variant=e.variant??0,t.bitrate=e.bitrate??0,t}};function ba(){return{metadataJson:""}}var K={encode(e,t=new s){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ba();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:m(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return K.fromPartial(e??{})},fromPartial(e){let t=ba();return t.metadataJson=e.metadataJson??"",t}};function Oa(){return{}}var z={encode(e,t=new s){return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Oa();for(;n.pos<i;){let a=n.uint32();if(a>>>3,(a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{}},toJSON(e){return{}},create(e){return z.fromPartial(e??{})},fromPartial(e){return Oa()}};function Pa(){return{metadataJson:""}}var Z={encode(e,t=new s){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Pa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:m(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return Z.fromPartial(e??{})},fromPartial(e){let t=Pa();return t.metadataJson=e.metadataJson??"",t}};function Ca(){return{trackId:"",metadataJson:""}}var $={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.metadataJson!==""&&t.uint32(18).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ca();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==18)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:m(e.trackId)?globalThis.String(e.trackId):"",metadataJson:m(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return $.fromPartial(e??{})},fromPartial(e){let t=Ca();return t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function Ra(){return{}}var x={encode(e,t=new s){return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ra();for(;n.pos<i;){let a=n.uint32();if(a>>>3,(a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{}},toJSON(e){return{}},create(e){return x.fromPartial(e??{})},fromPartial(e){return Ra()}};function Na(){return{sdp:"",trackIdToMetadataJson:{},trackIdToBitrates:{},midToTrackId:{}}}var Y={encode(e,t=new s){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.trackIdToMetadataJson).forEach(([n,i])=>{Zt.encode({key:n,value:i},t.uint32(18).fork()).join()}),Object.entries(e.trackIdToBitrates).forEach(([n,i])=>{Yt.encode({key:n,value:i},t.uint32(26).fork()).join()}),Object.entries(e.midToTrackId).forEach(([n,i])=>{Qt.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Na();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.sdp=n.string();continue}case 2:{if(a!==18)break;let d=Zt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToMetadataJson[d.key]=d.value);continue}case 3:{if(a!==26)break;let d=Yt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToBitrates[d.key]=d.value);continue}case 4:{if(a!==34)break;let d=Qt.decode(n,n.uint32());d.value!==void 0&&(r.midToTrackId[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{sdp:m(e.sdp)?globalThis.String(e.sdp):"",trackIdToMetadataJson:Gt(e.trackIdToMetadataJson)?Object.entries(e.trackIdToMetadataJson).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{},trackIdToBitrates:Gt(e.trackIdToBitrates)?Object.entries(e.trackIdToBitrates).reduce((t,[n,i])=>(t[n]=_.fromJSON(i),t),{}):{},midToTrackId:Gt(e.midToTrackId)?Object.entries(e.midToTrackId).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{}}},toJSON(e){let t={};if(e.sdp!==""&&(t.sdp=e.sdp),e.trackIdToMetadataJson){let n=Object.entries(e.trackIdToMetadataJson);n.length>0&&(t.trackIdToMetadataJson={},n.forEach(([i,r])=>{t.trackIdToMetadataJson[i]=r}))}if(e.trackIdToBitrates){let n=Object.entries(e.trackIdToBitrates);n.length>0&&(t.trackIdToBitrates={},n.forEach(([i,r])=>{t.trackIdToBitrates[i]=_.toJSON(r)}))}if(e.midToTrackId){let n=Object.entries(e.midToTrackId);n.length>0&&(t.midToTrackId={},n.forEach(([i,r])=>{t.midToTrackId[i]=r}))}return t},create(e){return Y.fromPartial(e??{})},fromPartial(e){let t=Na();return t.sdp=e.sdp??"",t.trackIdToMetadataJson=Object.entries(e.trackIdToMetadataJson??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t.trackIdToBitrates=Object.entries(e.trackIdToBitrates??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=_.fromPartial(r)),n),{}),t.midToTrackId=Object.entries(e.midToTrackId??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t}};function xa(){return{key:"",value:""}}var Zt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=xa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:m(e.key)?globalThis.String(e.key):"",value:m(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return Zt.fromPartial(e??{})},fromPartial(e){let t=xa();return t.key=e.key??"",t.value=e.value??"",t}};function Ja(){return{key:"",value:void 0}}var Yt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&_.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ja();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=_.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:m(e.key)?globalThis.String(e.key):"",value:m(e.value)?_.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=_.toJSON(e.value)),t},create(e){return Yt.fromPartial(e??{})},fromPartial(e){let t=Ja();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?_.fromPartial(e.value):void 0,t}};function Aa(){return{key:"",value:""}}var Qt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Aa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:m(e.key)?globalThis.String(e.key):"",value:m(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return Qt.fromPartial(e??{})},fromPartial(e){let t=Aa();return t.key=e.key??"",t.value=e.value??"",t}};function Ba(){return{trackId:"",variantBitrates:[]}}var _={encode(e,t=new s){e.trackId!==""&&t.uint32(10).string(e.trackId);for(let n of e.variantBitrates)De.encode(n,t.uint32(18).fork()).join();return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ba();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==18)break;r.variantBitrates.push(De.decode(n,n.uint32()));continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:m(e.trackId)?globalThis.String(e.trackId):"",variantBitrates:globalThis.Array.isArray(e?.variantBitrates)?e.variantBitrates.map(t=>De.fromJSON(t)):[]}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variantBitrates?.length&&(t.variantBitrates=e.variantBitrates.map(n=>De.toJSON(n))),t},create(e){return _.fromPartial(e??{})},fromPartial(e){let t=Ba();return t.trackId=e.trackId??"",t.variantBitrates=e.variantBitrates?.map(n=>De.fromPartial(n))||[],t}};function Da(){return{trackId:"",variant:0}}var Q={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.variant!==0&&t.uint32(16).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Da();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:m(e.trackId)?globalThis.String(e.trackId):"",variant:m(e.variant)?L(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=F(e.variant)),t},create(e){return Q.fromPartial(e??{})},fromPartial(e){let t=Da();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Ua(){return{trackId:"",variant:0}}var X={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.variant!==0&&t.uint32(16).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ua();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:m(e.trackId)?globalThis.String(e.trackId):"",variant:m(e.variant)?L(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=F(e.variant)),t},create(e){return X.fromPartial(e??{})},fromPartial(e){let t=Ua();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Va(){return{trackId:"",variant:0}}var j={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.variant!==0&&t.uint32(16).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Va();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:m(e.trackId)?globalThis.String(e.trackId):"",variant:m(e.variant)?L(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=F(e.variant)),t},create(e){return j.fromPartial(e??{})},fromPartial(e){let t=Va();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function La(){return{trackId:""}}var ee={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=La();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:m(e.trackId)?globalThis.String(e.trackId):""}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),t},create(e){return ee.fromPartial(e??{})},fromPartial(e){let t=La();return t.trackId=e.trackId??"",t}};function Gt(e){return typeof e=="object"&&e!==null}function m(e){return e!=null}var ki=class{localTrackManager;connection=null;clearConnectionCallbacks=null;constructor(e){this.localTrackManager=e}initConnection=e=>{this.connection=e;let t=()=>{e.getConnection().signalingState==="stable"&&this.processNextCommand()},n=()=>{e.getConnection().iceGatheringState==="complete"&&this.processNextCommand()},i=()=>{e.getConnection().connectionState==="connected"&&this.processNextCommand()},r=()=>{e.getConnection().iceConnectionState==="connected"&&this.processNextCommand()};this.clearConnectionCallbacks=()=>{e.getConnection().removeEventListener("signalingstatechange",t),e.getConnection().removeEventListener("icegatheringstatechange",n),e.getConnection().removeEventListener("connectionstatechange",i),e.getConnection().removeEventListener("iceconnectionstatechange",r)},e.getConnection().addEventListener("icegatheringstatechange",r),e.getConnection().addEventListener("connectionstatechange",i),e.getConnection().addEventListener("iceconnectionstatechange",r),e.getConnection().addEventListener("signalingstatechange",t)};commandsQueue=[];commandResolutionNotifier=null;pushCommand=e=>{this.commandsQueue.push(e),this.processNextCommand()};processNextCommand=()=>{if(this.localTrackManager.isNegotiationInProgress()||this.connection?.isConnectionUnstable())return;this.resolvePreviousCommand();let e=this.commandsQueue.shift();e&&(this.commandResolutionNotifier=e.resolutionNotifier,this.handleCommand(e))};handleCommand=async e=>{try{e.parse?.();let t=e.handler();e.resolve==="on-handler-resolve"&&(await t,this.resolvePreviousCommand(),this.processNextCommand())}catch(t){this.commandResolutionNotifier?.reject(t),this.commandResolutionNotifier=null,this.processNextCommand()}};resolvePreviousCommand=()=>{this.commandResolutionNotifier&&(this.commandResolutionNotifier.resolve(),this.commandResolutionNotifier=null)};cleanUp=()=>{this.commandResolutionNotifier?.reject("Disconnected"),this.commandResolutionNotifier=null,this.commandsQueue=[],this.clearConnectionCallbacks?.()}},Fa=class{connection;constructor(e){this.connection=new RTCPeerConnection({bundlePolicy:"max-bundle",iceServers:e,iceTransportPolicy:"all"})}isConnectionUnstable=()=>{if(!this.connection)return!1;let e=this.connection.signalingState!=="stable",t=this.connection.connectionState!=="connected",n=this.connection.iceConnectionState!=="connected";return e&&t&&n};getConnection=()=>this.connection;addTransceiversIfNeeded=e=>{let t=this.connection.getTransceivers().filter(d=>d.direction==="recvonly"),n=t.filter(d=>d.receiver.track.kind==="video").length,i=t.filter(d=>d.receiver.track.kind==="audio").length,r=Array(e.video-n).fill("video"),a=Array(e.audio-i).fill("audio");[...r,...a].forEach(d=>this.connection.addTransceiver(d,{direction:"recvonly"}))};addTransceiver=(e,t)=>{this.connection.addTransceiver(e,t)};setOnTrackReady=e=>{this.connection.ontrack=e};setRemoteDescription=async e=>{await this.connection.setRemoteDescription(e)};isTrackInUse=e=>this.connection.getSenders().some(t=>t.track===e);removeTrack=e=>{this.connection.removeTrack(e)};findSender=e=>this.connection.getSenders().find(t=>t.track&&t.track.id===e);addIceCandidate=async e=>{await this.connection.addIceCandidate(e)};createDataChannel=(e,t)=>this.connection.createDataChannel(e,t)},Wa=class{constructor(e,t){this.type=e,this.logger=t}channel=null;dataCallback=null;openCallback=null;errorCallback=null;_status="init";get status(){return this._status}setChannel(e){this._status="creating",this.channel=e,this.setupListeners()}setOnOpen(e){this.openCallback=e}setOnError(e){this.errorCallback=e}send(e){if(!this.channel||this._status!=="open"){this.logger.warn(`Cannot send data on ${this.type} channel: channel not ready (status: ${this._status})`);return}try{this.channel.send(e)}catch(t){this.logger.error(`Error sending data on ${this.type} channel:`,t)}}setCallback(e){this.dataCallback=e}close(){this.channel&&this.channel.close(),this._status="closed",this.dataCallback=null}setupListeners(){this.channel&&(this.channel.onopen=()=>{this._status="open",this.logger.debug(`Data channel ${this.type} opened`),this.openCallback?.()},this.channel.onclose=()=>{this._status="closed",this.logger.debug(`Data channel ${this.type} closed`)},this.channel.onerror=e=>{this.logger.error(`Data channel ${this.type} error:`,e),this.errorCallback?.(e)},this.channel.onmessage=e=>{this.handleMessage(e.data)})}handleMessage(e){if(!this.dataCallback){this.logger.warn(`Received data on ${this.type} channel but no callback is set`);return}try{let t;if(e instanceof ArrayBuffer)t=new Uint8Array(e);else if(e instanceof Uint8Array)t=e;else if(typeof e=="string")t=new TextEncoder().encode(e);else if(e instanceof Blob){let n=new FileReader;n.onload=()=>{n.result instanceof ArrayBuffer&&this.dataCallback?.(new Uint8Array(n.result))},n.readAsArrayBuffer(e);return}else{this.logger.warn(`Received unsupported data type on ${this.type} channel:`,typeof e);return}this.dataCallback(t)}catch(t){this.logger.error(`Error handling message on ${this.type} channel:`,t)}}},pi=class extends hr.EventEmitter{constructor(e,t,n){super(),this.createDataChannel=e,this.triggerRenegotiation=t,this.logger=n}reliableChannel=null;lossyChannel=null;async connect(){this.getChannelsReadiness()||(this.createChannels(),this.triggerRenegotiation(),await this.waitForChannelsReady())}waitForChannelsReady(){return this.getChannelsReadiness()?Promise.resolve():new Promise((e,t)=>{let n=()=>{r(),e()},i=(a,d)=>{r(),t(new Error(`Data channel ${a} error: ${d}`))},r=()=>{this.removeListener("ready",n),this.removeListener("error",i)};this.on("ready",n),this.on("error",i)})}publishData(e,t){let n=t.reliable?"reliable":"lossy",i=n==="reliable"?this.reliableChannel:this.lossyChannel;if(!i)throw new Error(`Cannot publish data: ${n} channel not created. Call connectDataPublishers() first or enable negotiateOnConnect.`);if(i.status!=="open")throw new Error(`Cannot publish data: ${n} channel not ready (status: ${i.status}). Wait for dataChannelsReady event.`);i.send(e)}cleanup(){this.logger.warn("Cleaning up data channels"),this.reliableChannel&&(this.reliableChannel.close(),this.reliableChannel=null),this.lossyChannel&&(this.lossyChannel.close(),this.lossyChannel=null),this.removeAllListeners()}getChannelsReadiness(){return this.reliableChannel?.status==="open"&&this.lossyChannel?.status==="open"}createChannels(){this.createChannel("reliable"),this.createChannel("lossy")}createChannel(e){let t=this.getOrCreateChannelWrapper(e);if(t.status!=="init")return;let n=e,i=e==="reliable"?{ordered:!0}:{ordered:!1,maxRetransmits:0},r=this.createDataChannel(n,i);t.setOnOpen(()=>this.onChannelOpen(e)),t.setOnError(a=>this.onChannelError(e,a)),t.setChannel(r),this.logger.warn(`Created ${e} data channel`)}onChannelOpen(e){this.logger.warn(`Data channel ${e} opened`),this.emit("channelOpen",e),this.reliableChannel&&this.reliableChannel.status==="open"&&this.lossyChannel&&this.lossyChannel.status==="open"&&(this.logger.warn("All data publishers ready"),this.emit("ready"))}onChannelError(e,t){this.logger.error(`Data channel ${e} error:`,t),this.emit("error",e,t)}onDataReceived(e,t){let n={channelType:e,data:t};this.emit("data",n)}getOrCreateChannelWrapper(e){return e==="reliable"?(this.reliableChannel||(this.reliableChannel=new Wa(e,this.logger),this.reliableChannel.setCallback(t=>this.onDataReceived(e,t))),this.reliableChannel):(this.lossyChannel||(this.lossyChannel=new Wa(e,this.logger),this.lossyChannel.setCallback(t=>this.onDataReceived(e,t))),this.lossyChannel)}},Kt=class{promise;resolveFn=()=>null;rejectFn=()=>null;constructor(){this.promise=new Promise((e,t)=>{this.resolveFn=e,this.rejectFn=t})}resolve(e){this.resolveFn(e)}reject(e){this.rejectFn(e)}};function hi(e){switch(e){case 0:case"STATUS_UNSPECIFIED":return 0;case 1:case"STATUS_SILENCE":return 1;case 2:case"STATUS_SPEECH":return 2;case-1:case"UNRECOGNIZED":default:return-1}}function vi(e){switch(e){case 0:return"STATUS_UNSPECIFIED";case 1:return"STATUS_SILENCE";case 2:return"STATUS_SPEECH";case-1:default:return"UNRECOGNIZED"}}function $a(){return{endpointUpdated:void 0,trackUpdated:void 0,tracksAdded:void 0,tracksRemoved:void 0,endpointAdded:void 0,endpointRemoved:void 0,connected:void 0,error:void 0,offerData:void 0,candidate:void 0,sdpAnswer:void 0,vadNotification:void 0,trackVariantSwitched:void 0,trackVariantDisabled:void 0,trackVariantEnabled:void 0}}var vr={encode(e,t=new s){return e.endpointUpdated!==void 0&&Le.encode(e.endpointUpdated,t.uint32(10).fork()).join(),e.trackUpdated!==void 0&&Fe.encode(e.trackUpdated,t.uint32(18).fork()).join(),e.tracksAdded!==void 0&&We.encode(e.tracksAdded,t.uint32(26).fork()).join(),e.tracksRemoved!==void 0&&$e.encode(e.tracksRemoved,t.uint32(34).fork()).join(),e.endpointAdded!==void 0&&He.encode(e.endpointAdded,t.uint32(42).fork()).join(),e.endpointRemoved!==void 0&&Ge.encode(e.endpointRemoved,t.uint32(50).fork()).join(),e.connected!==void 0&&qe.encode(e.connected,t.uint32(58).fork()).join(),e.error!==void 0&&Ke.encode(e.error,t.uint32(66).fork()).join(),e.offerData!==void 0&&ze.encode(e.offerData,t.uint32(74).fork()).join(),e.candidate!==void 0&&P.encode(e.candidate,t.uint32(82).fork()).join(),e.sdpAnswer!==void 0&&Ye.encode(e.sdpAnswer,t.uint32(90).fork()).join(),e.vadNotification!==void 0&&Qe.encode(e.vadNotification,t.uint32(98).fork()).join(),e.trackVariantSwitched!==void 0&&Xe.encode(e.trackVariantSwitched,t.uint32(106).fork()).join(),e.trackVariantDisabled!==void 0&&je.encode(e.trackVariantDisabled,t.uint32(114).fork()).join(),e.trackVariantEnabled!==void 0&&et.encode(e.trackVariantEnabled,t.uint32(122).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=$a();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointUpdated=Le.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.trackUpdated=Fe.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.tracksAdded=We.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.tracksRemoved=$e.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.endpointAdded=He.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.endpointRemoved=Ge.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.connected=qe.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.error=Ke.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.offerData=ze.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.candidate=P.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.sdpAnswer=Ye.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.vadNotification=Qe.decode(n,n.uint32());continue}case 13:{if(a!==106)break;r.trackVariantSwitched=Xe.decode(n,n.uint32());continue}case 14:{if(a!==114)break;r.trackVariantDisabled=je.decode(n,n.uint32());continue}case 15:{if(a!==122)break;r.trackVariantEnabled=et.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointUpdated:l(e.endpointUpdated)?Le.fromJSON(e.endpointUpdated):void 0,trackUpdated:l(e.trackUpdated)?Fe.fromJSON(e.trackUpdated):void 0,tracksAdded:l(e.tracksAdded)?We.fromJSON(e.tracksAdded):void 0,tracksRemoved:l(e.tracksRemoved)?$e.fromJSON(e.tracksRemoved):void 0,endpointAdded:l(e.endpointAdded)?He.fromJSON(e.endpointAdded):void 0,endpointRemoved:l(e.endpointRemoved)?Ge.fromJSON(e.endpointRemoved):void 0,connected:l(e.connected)?qe.fromJSON(e.connected):void 0,error:l(e.error)?Ke.fromJSON(e.error):void 0,offerData:l(e.offerData)?ze.fromJSON(e.offerData):void 0,candidate:l(e.candidate)?P.fromJSON(e.candidate):void 0,sdpAnswer:l(e.sdpAnswer)?Ye.fromJSON(e.sdpAnswer):void 0,vadNotification:l(e.vadNotification)?Qe.fromJSON(e.vadNotification):void 0,trackVariantSwitched:l(e.trackVariantSwitched)?Xe.fromJSON(e.trackVariantSwitched):void 0,trackVariantDisabled:l(e.trackVariantDisabled)?je.fromJSON(e.trackVariantDisabled):void 0,trackVariantEnabled:l(e.trackVariantEnabled)?et.fromJSON(e.trackVariantEnabled):void 0}},toJSON(e){let t={};return e.endpointUpdated!==void 0&&(t.endpointUpdated=Le.toJSON(e.endpointUpdated)),e.trackUpdated!==void 0&&(t.trackUpdated=Fe.toJSON(e.trackUpdated)),e.tracksAdded!==void 0&&(t.tracksAdded=We.toJSON(e.tracksAdded)),e.tracksRemoved!==void 0&&(t.tracksRemoved=$e.toJSON(e.tracksRemoved)),e.endpointAdded!==void 0&&(t.endpointAdded=He.toJSON(e.endpointAdded)),e.endpointRemoved!==void 0&&(t.endpointRemoved=Ge.toJSON(e.endpointRemoved)),e.connected!==void 0&&(t.connected=qe.toJSON(e.connected)),e.error!==void 0&&(t.error=Ke.toJSON(e.error)),e.offerData!==void 0&&(t.offerData=ze.toJSON(e.offerData)),e.candidate!==void 0&&(t.candidate=P.toJSON(e.candidate)),e.sdpAnswer!==void 0&&(t.sdpAnswer=Ye.toJSON(e.sdpAnswer)),e.vadNotification!==void 0&&(t.vadNotification=Qe.toJSON(e.vadNotification)),e.trackVariantSwitched!==void 0&&(t.trackVariantSwitched=Xe.toJSON(e.trackVariantSwitched)),e.trackVariantDisabled!==void 0&&(t.trackVariantDisabled=je.toJSON(e.trackVariantDisabled)),e.trackVariantEnabled!==void 0&&(t.trackVariantEnabled=et.toJSON(e.trackVariantEnabled)),t},create(e){return vr.fromPartial(e??{})},fromPartial(e){let t=$a();return t.endpointUpdated=e.endpointUpdated!==void 0&&e.endpointUpdated!==null?Le.fromPartial(e.endpointUpdated):void 0,t.trackUpdated=e.trackUpdated!==void 0&&e.trackUpdated!==null?Fe.fromPartial(e.trackUpdated):void 0,t.tracksAdded=e.tracksAdded!==void 0&&e.tracksAdded!==null?We.fromPartial(e.tracksAdded):void 0,t.tracksRemoved=e.tracksRemoved!==void 0&&e.tracksRemoved!==null?$e.fromPartial(e.tracksRemoved):void 0,t.endpointAdded=e.endpointAdded!==void 0&&e.endpointAdded!==null?He.fromPartial(e.endpointAdded):void 0,t.endpointRemoved=e.endpointRemoved!==void 0&&e.endpointRemoved!==null?Ge.fromPartial(e.endpointRemoved):void 0,t.connected=e.connected!==void 0&&e.connected!==null?qe.fromPartial(e.connected):void 0,t.error=e.error!==void 0&&e.error!==null?Ke.fromPartial(e.error):void 0,t.offerData=e.offerData!==void 0&&e.offerData!==null?ze.fromPartial(e.offerData):void 0,t.candidate=e.candidate!==void 0&&e.candidate!==null?P.fromPartial(e.candidate):void 0,t.sdpAnswer=e.sdpAnswer!==void 0&&e.sdpAnswer!==null?Ye.fromPartial(e.sdpAnswer):void 0,t.vadNotification=e.vadNotification!==void 0&&e.vadNotification!==null?Qe.fromPartial(e.vadNotification):void 0,t.trackVariantSwitched=e.trackVariantSwitched!==void 0&&e.trackVariantSwitched!==null?Xe.fromPartial(e.trackVariantSwitched):void 0,t.trackVariantDisabled=e.trackVariantDisabled!==void 0&&e.trackVariantDisabled!==null?je.fromPartial(e.trackVariantDisabled):void 0,t.trackVariantEnabled=e.trackVariantEnabled!==void 0&&e.trackVariantEnabled!==null?et.fromPartial(e.trackVariantEnabled):void 0,t}};function Ha(){return{metadataJson:"",simulcastConfig:void 0}}var S={encode(e,t=new s){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),e.simulcastConfig!==void 0&&Ue.encode(e.simulcastConfig,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ha();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.metadataJson=n.string();continue}case 2:{if(a!==18)break;r.simulcastConfig=Ue.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:l(e.metadataJson)?globalThis.String(e.metadataJson):"",simulcastConfig:l(e.simulcastConfig)?Ue.fromJSON(e.simulcastConfig):void 0}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),e.simulcastConfig!==void 0&&(t.simulcastConfig=Ue.toJSON(e.simulcastConfig)),t},create(e){return S.fromPartial(e??{})},fromPartial(e){let t=Ha();return t.metadataJson=e.metadataJson??"",t.simulcastConfig=e.simulcastConfig!==void 0&&e.simulcastConfig!==null?Ue.fromPartial(e.simulcastConfig):void 0,t}};function qa(){return{enabled:!1,enabledVariants:[],disabledVariants:[]}}var Ue={encode(e,t=new s){e.enabled!==!1&&t.uint32(8).bool(e.enabled),t.uint32(18).fork();for(let n of e.enabledVariants)t.int32(n);t.join(),t.uint32(26).fork();for(let n of e.disabledVariants)t.int32(n);return t.join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=qa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.enabled=n.bool();continue}case 2:{if(a===16){r.enabledVariants.push(n.int32());continue}if(a===18){let d=n.uint32()+n.pos;for(;n.pos<d;)r.enabledVariants.push(n.int32());continue}break}case 3:{if(a===24){r.disabledVariants.push(n.int32());continue}if(a===26){let d=n.uint32()+n.pos;for(;n.pos<d;)r.disabledVariants.push(n.int32());continue}break}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{enabled:l(e.enabled)?globalThis.Boolean(e.enabled):!1,enabledVariants:globalThis.Array.isArray(e?.enabledVariants)?e.enabledVariants.map(t=>L(t)):[],disabledVariants:globalThis.Array.isArray(e?.disabledVariants)?e.disabledVariants.map(t=>L(t)):[]}},toJSON(e){let t={};return e.enabled!==!1&&(t.enabled=e.enabled),e.enabledVariants?.length&&(t.enabledVariants=e.enabledVariants.map(n=>F(n))),e.disabledVariants?.length&&(t.disabledVariants=e.disabledVariants.map(n=>F(n))),t},create(e){return Ue.fromPartial(e??{})},fromPartial(e){let t=qa();return t.enabled=e.enabled??!1,t.enabledVariants=e.enabledVariants?.map(n=>n)||[],t.disabledVariants=e.disabledVariants?.map(n=>n)||[],t}};function Ga(){return{endpointType:"",metadataJson:"",trackIdToTrack:{}}}var V={encode(e,t=new s){return e.endpointType!==""&&t.uint32(18).string(e.endpointType),e.metadataJson!==""&&t.uint32(26).string(e.metadataJson),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{Xt.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ga();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 2:{if(a!==18)break;r.endpointType=n.string();continue}case 3:{if(a!==26)break;r.metadataJson=n.string();continue}case 4:{if(a!==34)break;let d=Xt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToTrack[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointType:l(e.endpointType)?globalThis.String(e.endpointType):"",metadataJson:l(e.metadataJson)?globalThis.String(e.metadataJson):"",trackIdToTrack:Mt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=S.fromJSON(i),t),{}):{}}},toJSON(e){let t={};if(e.endpointType!==""&&(t.endpointType=e.endpointType),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),e.trackIdToTrack){let n=Object.entries(e.trackIdToTrack);n.length>0&&(t.trackIdToTrack={},n.forEach(([i,r])=>{t.trackIdToTrack[i]=S.toJSON(r)}))}return t},create(e){return V.fromPartial(e??{})},fromPartial(e){let t=Ga();return t.endpointType=e.endpointType??"",t.metadataJson=e.metadataJson??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=S.fromPartial(r)),n),{}),t}};function Ka(){return{key:"",value:void 0}}var Xt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&S.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ka();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=S.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:l(e.key)?globalThis.String(e.key):"",value:l(e.value)?S.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=S.toJSON(e.value)),t},create(e){return Xt.fromPartial(e??{})},fromPartial(e){let t=Ka();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?S.fromPartial(e.value):void 0,t}};function za(){return{credential:"",urls:[],username:""}}var Ve={encode(e,t=new s){e.credential!==""&&t.uint32(10).string(e.credential);for(let n of e.urls)t.uint32(18).string(n);return e.username!==""&&t.uint32(26).string(e.username),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=za();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.credential=n.string();continue}case 2:{if(a!==18)break;r.urls.push(n.string());continue}case 3:{if(a!==26)break;r.username=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{credential:l(e.credential)?globalThis.String(e.credential):"",urls:globalThis.Array.isArray(e?.urls)?e.urls.map(t=>globalThis.String(t)):[],username:l(e.username)?globalThis.String(e.username):""}},toJSON(e){let t={};return e.credential!==""&&(t.credential=e.credential),e.urls?.length&&(t.urls=e.urls),e.username!==""&&(t.username=e.username),t},create(e){return Ve.fromPartial(e??{})},fromPartial(e){let t=za();return t.credential=e.credential??"",t.urls=e.urls?.map(n=>n)||[],t.username=e.username??"",t}};function Za(){return{endpointId:"",metadataJson:""}}var Le={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.metadataJson!==""&&t.uint32(18).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Za();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:l(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return Le.fromPartial(e??{})},fromPartial(e){let t=Za();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function Ya(){return{endpointId:"",trackId:"",metadataJson:""}}var Fe={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.metadataJson!==""&&t.uint32(26).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ya();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==26)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",trackId:l(e.trackId)?globalThis.String(e.trackId):"",metadataJson:l(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return Fe.fromPartial(e??{})},fromPartial(e){let t=Ya();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function Qa(){return{endpointId:"",trackIdToTrack:{}}}var We={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{jt.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Qa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;let d=jt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToTrack[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",trackIdToTrack:Mt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=S.fromJSON(i),t),{}):{}}},toJSON(e){let t={};if(e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackIdToTrack){let n=Object.entries(e.trackIdToTrack);n.length>0&&(t.trackIdToTrack={},n.forEach(([i,r])=>{t.trackIdToTrack[i]=S.toJSON(r)}))}return t},create(e){return We.fromPartial(e??{})},fromPartial(e){let t=Qa();return t.endpointId=e.endpointId??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=S.fromPartial(r)),n),{}),t}};function Xa(){return{key:"",value:void 0}}var jt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&S.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Xa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=S.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:l(e.key)?globalThis.String(e.key):"",value:l(e.value)?S.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=S.toJSON(e.value)),t},create(e){return jt.fromPartial(e??{})},fromPartial(e){let t=Xa();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?S.fromPartial(e.value):void 0,t}};function ja(){return{endpointId:"",trackIds:[]}}var $e={encode(e,t=new s){e.endpointId!==""&&t.uint32(10).string(e.endpointId);for(let n of e.trackIds)t.uint32(18).string(n);return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ja();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackIds.push(n.string());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",trackIds:globalThis.Array.isArray(e?.trackIds)?e.trackIds.map(t=>globalThis.String(t)):[]}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackIds?.length&&(t.trackIds=e.trackIds),t},create(e){return $e.fromPartial(e??{})},fromPartial(e){let t=ja();return t.endpointId=e.endpointId??"",t.trackIds=e.trackIds?.map(n=>n)||[],t}};function er(){return{endpointId:"",metadataJson:""}}var He={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.metadataJson!==""&&t.uint32(18).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=er();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:l(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return He.fromPartial(e??{})},fromPartial(e){let t=er();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function tr(){return{endpointId:"",endpointIdToEndpoint:{},iceServers:[]}}var qe={encode(e,t=new s){e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.endpointIdToEndpoint).forEach(([n,i])=>{en.encode({key:n,value:i},t.uint32(18).fork()).join()});for(let n of e.iceServers)Ve.encode(n,t.uint32(26).fork()).join();return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=tr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;let d=en.decode(n,n.uint32());d.value!==void 0&&(r.endpointIdToEndpoint[d.key]=d.value);continue}case 3:{if(a!==26)break;r.iceServers.push(Ve.decode(n,n.uint32()));continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",endpointIdToEndpoint:Mt(e.endpointIdToEndpoint)?Object.entries(e.endpointIdToEndpoint).reduce((t,[n,i])=>(t[n]=V.fromJSON(i),t),{}):{},iceServers:globalThis.Array.isArray(e?.iceServers)?e.iceServers.map(t=>Ve.fromJSON(t)):[]}},toJSON(e){let t={};if(e.endpointId!==""&&(t.endpointId=e.endpointId),e.endpointIdToEndpoint){let n=Object.entries(e.endpointIdToEndpoint);n.length>0&&(t.endpointIdToEndpoint={},n.forEach(([i,r])=>{t.endpointIdToEndpoint[i]=V.toJSON(r)}))}return e.iceServers?.length&&(t.iceServers=e.iceServers.map(n=>Ve.toJSON(n))),t},create(e){return qe.fromPartial(e??{})},fromPartial(e){let t=tr();return t.endpointId=e.endpointId??"",t.endpointIdToEndpoint=Object.entries(e.endpointIdToEndpoint??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=V.fromPartial(r)),n),{}),t.iceServers=e.iceServers?.map(n=>Ve.fromPartial(n))||[],t}};function nr(){return{key:"",value:void 0}}var en={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&V.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=nr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=V.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:l(e.key)?globalThis.String(e.key):"",value:l(e.value)?V.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=V.toJSON(e.value)),t},create(e){return en.fromPartial(e??{})},fromPartial(e){let t=nr();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?V.fromPartial(e.value):void 0,t}};function ar(){return{endpointId:""}}var Ge={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ar();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),t},create(e){return Ge.fromPartial(e??{})},fromPartial(e){let t=ar();return t.endpointId=e.endpointId??"",t}};function rr(){return{message:""}}var Ke={encode(e,t=new s){return e.message!==""&&t.uint32(10).string(e.message),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=rr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.message=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{message:l(e.message)?globalThis.String(e.message):""}},toJSON(e){let t={};return e.message!==""&&(t.message=e.message),t},create(e){return Ke.fromPartial(e??{})},fromPartial(e){let t=rr();return t.message=e.message??"",t}};function ir(){return{tracksTypes:void 0}}var ze={encode(e,t=new s){return e.tracksTypes!==void 0&&Ze.encode(e.tracksTypes,t.uint32(10).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ir();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.tracksTypes=Ze.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{tracksTypes:l(e.tracksTypes)?Ze.fromJSON(e.tracksTypes):void 0}},toJSON(e){let t={};return e.tracksTypes!==void 0&&(t.tracksTypes=Ze.toJSON(e.tracksTypes)),t},create(e){return ze.fromPartial(e??{})},fromPartial(e){let t=ir();return t.tracksTypes=e.tracksTypes!==void 0&&e.tracksTypes!==null?Ze.fromPartial(e.tracksTypes):void 0,t}};function dr(){return{audio:0,video:0}}var Ze={encode(e,t=new s){return e.audio!==0&&t.uint32(8).int32(e.audio),e.video!==0&&t.uint32(16).int32(e.video),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=dr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.audio=n.int32();continue}case 2:{if(a!==16)break;r.video=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{audio:l(e.audio)?globalThis.Number(e.audio):0,video:l(e.video)?globalThis.Number(e.video):0}},toJSON(e){let t={};return e.audio!==0&&(t.audio=Math.round(e.audio)),e.video!==0&&(t.video=Math.round(e.video)),t},create(e){return Ze.fromPartial(e??{})},fromPartial(e){let t=dr();return t.audio=e.audio??0,t.video=e.video??0,t}};function or(){return{sdp:"",midToTrackId:{}}}var Ye={encode(e,t=new s){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.midToTrackId).forEach(([n,i])=>{tn.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=or();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.sdp=n.string();continue}case 2:{if(a!==18)break;let d=tn.decode(n,n.uint32());d.value!==void 0&&(r.midToTrackId[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{sdp:l(e.sdp)?globalThis.String(e.sdp):"",midToTrackId:Mt(e.midToTrackId)?Object.entries(e.midToTrackId).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{}}},toJSON(e){let t={};if(e.sdp!==""&&(t.sdp=e.sdp),e.midToTrackId){let n=Object.entries(e.midToTrackId);n.length>0&&(t.midToTrackId={},n.forEach(([i,r])=>{t.midToTrackId[i]=r}))}return t},create(e){return Ye.fromPartial(e??{})},fromPartial(e){let t=or();return t.sdp=e.sdp??"",t.midToTrackId=Object.entries(e.midToTrackId??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t}};function sr(){return{key:"",value:""}}var tn={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=sr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:l(e.key)?globalThis.String(e.key):"",value:l(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return tn.fromPartial(e??{})},fromPartial(e){let t=sr();return t.key=e.key??"",t.value=e.value??"",t}};function cr(){return{trackId:"",status:0}}var Qe={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.status!==0&&t.uint32(16).int32(e.status),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=cr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.status=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:l(e.trackId)?globalThis.String(e.trackId):"",status:l(e.status)?hi(e.status):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.status!==0&&(t.status=vi(e.status)),t},create(e){return Qe.fromPartial(e??{})},fromPartial(e){let t=cr();return t.trackId=e.trackId??"",t.status=e.status??0,t}};function ur(){return{endpointId:"",trackId:"",variant:0}}var Xe={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.variant!==0&&t.uint32(24).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ur();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==24)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",trackId:l(e.trackId)?globalThis.String(e.trackId):"",variant:l(e.variant)?L(e.variant):0}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=F(e.variant)),t},create(e){return Xe.fromPartial(e??{})},fromPartial(e){let t=ur();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function fr(){return{endpointId:"",trackId:"",variant:0}}var je={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.variant!==0&&t.uint32(24).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=fr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==24)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",trackId:l(e.trackId)?globalThis.String(e.trackId):"",variant:l(e.variant)?L(e.variant):0}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=F(e.variant)),t},create(e){return je.fromPartial(e??{})},fromPartial(e){let t=fr();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function lr(){return{endpointId:"",trackId:"",variant:0}}var et={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.variant!==0&&t.uint32(24).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=lr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==24)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",trackId:l(e.trackId)?globalThis.String(e.trackId):"",variant:l(e.variant)?L(e.variant):0}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=F(e.variant)),t},create(e){return et.fromPartial(e??{})},fromPartial(e){let t=lr();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Mt(e){return typeof e=="object"&&e!==null}function l(e){return e!=null}function Tr(e){return tt.encode(e).finish()}function Ti(e){return vr.decode(e)}var mr=e=>e==="audio"||e==="video",Ir=class extends Er.default{constructor(e,t,n,i={enabled:!1,enabledVariants:[],disabledVariants:[]}){super(),this.endpoint=e,this.trackId=t,this.track=null,this.trackKind=null,this.stream=null,this.metadata=n,this.simulcastConfig=i,this.maxBandwidth=0,this.vadStatus="silence",this.negotiationStatus="awaiting",this.pendingMetadataUpdate=!1}},kr={audio:5e4,video:25e5},Ei=0,mi={3:25e5,2:5e5,1:15e4,0:0,[-1]:0},Mr=(e,t)=>{let n=t*1024;if(n===0)return e.map(d=>({...d,maxBitrate:void 0}));if(e.length===0)return console.error("Attempted to limit bandwidth of the track that doesn't have any encodings"),e.map(d=>({...d}));if(!e[0])throw new Error("RTCRtpEncodingParameters is in invalid state");let i=e[0].scaleResolutionDownBy||1,r=e.reduce((d,c)=>d+(i/(c.scaleResolutionDownBy||1))**2,0),a=n/r;return e.map(d=>({...d,maxBitrate:a*(i/(d.scaleResolutionDownBy||1))**2}))},Ii=(e,t)=>{let n=[{}];return e.encodings.length===0?n:Mr(e.encodings,t)},ut={l:1,m:2,h:3};function zt(e,t,n){let i=e==="mute"?"localTrackMuted":"localTrackUnmuted";if(e=="unmute"){let r=ee.create({trackId:n});t.emit("sendMediaEvent",Tr({unmuteTrack:r}))}t.emit(i,{trackId:n})}function Mi(e,t){return e&&!t?"mute":!e&&t?"unmute":"replace"}var yi=e=>{if(!e.track)throw new Error("Cannot create transceiver config for ");return e.track.kind==="audio"?gi(e.stream):Si(e,e.maxBandwidth)},gi=e=>({direction:"sendonly",streams:e?[e]:[]}),Si=(e,t)=>{if(!e.simulcastConfig)throw new Error(`Simulcast config for track ${e.trackId} not found.`);if(e.simulcastConfig.enabled){let n;if(t===0)n=new Map([[1,0],[2,0],[3,0]]);else{if(typeof t=="number")throw new Error("Invalid bandwidth limit for simulcast track.");n=t}return wi(e,n)}if(typeof t=="number")return _i(e,t);throw new Error("LocalTrack is in invalid state!")},_i=(e,t)=>({direction:"sendonly",sendEncodings:Mr([{active:!0}],t),streams:e.stream?[e.stream]:[]}),wi=(e,t)=>{if(!e.simulcastConfig)throw new Error(`Simulcast config for track ${e.trackId} not found.`);let n=e.simulcastConfig.enabledVariants,i=[{rid:"l",active:n.includes(1),scaleResolutionDownBy:4},{rid:"m",active:n.includes(2),scaleResolutionDownBy:2},{rid:"h",active:n.includes(3)}];return{direction:"sendonly",sendEncodings:bi(i,t),streams:e.stream?[e.stream]:[]}},bi=(e,t)=>e.filter(n=>n.rid).map(n=>{let i=!!n.rid&&ut[n.rid]||0,r=t.get(i)||0;return{...n,maxBitrate:r>0?r*1024:void 0}}),Oi=class{id;mediaStreamTrackId=null;mLineId=null;trackContext;sender=null;encodings={[-1]:!1,0:!1,1:!1,2:!1,3:!1};connection;constructor(e,t,n){this.connection=e,this.id=t,this.trackContext=n,n.track?.id&&(this.mediaStreamTrackId=n.track?.id)}updateSender=()=>{this.mediaStreamTrackId&&this.connection&&(this.sender=this.connection.findSender(this.mediaStreamTrackId))};updateConnection=e=>{this.connection=e};disableTrackEncoding=async e=>{if(!this.sender)throw new Error(`RTCRtpSender for track ${this.id} not found`);let t=this.sender.getParameters(),i=t.encodings.find(r=>r.rid&&ut[r.rid]===e);if(!i)throw new Error(`RTCRtpEncodingParameters for track ${this.id} not found`);i.active=!1,this.encodings[e]=!1,await this.sender.setParameters(t)};addTrackToConnection=()=>{if(!this.trackContext.track)throw Error(`MediaStreamTrack for track ${this.id} does not exist`);if(!this.connection)throw new Error("There is no active RTCPeerConnection");let e=yi(this.trackContext);this.updateEncodings(),this.connection.addTransceiver(this.trackContext.track,e)};updateEncodings=()=>{let e=this.trackContext.simulcastConfig?.enabledVariants;this.trackContext?.track?.kind==="video"&&e&&(this.encodings[1]=e.some(t=>t===1),this.encodings[2]=e.some(t=>t===2),this.encodings[3]=e.some(t=>t===3))};removeFromConnection=()=>{if(!this.sender)throw new Error(`RTCRtpSender for track ${this.id} not found`);if(!this.connection)throw new Error("There is no active RTCPeerConnection");this.connection.removeTrack(this.sender)};replaceTrack=async(e,t)=>{let n=this.id,i=this.trackContext.stream,r=this.trackContext.track;if(!this.sender)throw Error("There is no RTCRtpSender for this track id!");r&&i?.removeTrack(r),e&&i?.addTrack(e);let a=Mi(this.trackContext.track,e);this.trackContext.track=e,this.mediaStreamTrackId=e?.id??null,(a==="mute"||a==="unmute")&&zt(a,t,n);try{await this.sender.replaceTrack(e)}catch{a==="mute"?zt("unmute",t,n):a==="unmute"&&zt("mute",t,n),this.trackContext.track=r,this.mediaStreamTrackId=r?.id??null}};setTrackBandwidth=e=>{if(!this.sender)throw new Error(`RTCRtpSender for track ${this.id} not found`);let t=this.sender.getParameters();return t.encodings=Ii(t,e),this.sender.setParameters(t)};setEncodingBandwidth(e,t){if(!this.sender)throw new Error(`RTCRtpSender for track ${this.id} not found`);let n=this.sender.getParameters(),i=n.encodings.find(r=>r.rid&&ut[r.rid]===e);if(i)t===0?delete i.maxBitrate:i.maxBitrate=t*1024;else return Promise.reject(`Encoding with Variant '${e}' doesn't exist`);return this.sender.setParameters(n)}updateTrackMetadata=e=>{this.trackContext.metadata=e};enableTrackEncoding=e=>{if(!this.sender)throw new Error(`RTCRtpSender for track ${this.id} not found`);let t=this.sender.getParameters(),n=t.encodings.find(i=>i.rid&&ut[i.rid]===e);if(!n)throw new Error(`RTCRtEncodingParameters ${e} for track ${this.id} not found`);return n.active=!0,this.encodings[e]=!0,this.sender.setParameters(t)};setMLineId=e=>{this.mLineId=e};isNotSimulcastTrack=e=>e.length===1&&!e[0].rid;getTrackBitrates=()=>{let e=this.trackContext,t=this.trackContext.track?.kind;if(!e.track){if(!e.trackKind)throw new Error("trackContext.trackKind is empty");return kr[e.trackKind]}if(!this.sender)return;let n=this.sender.getParameters().encodings;if(this.isNotSimulcastTrack(n))return n[0].maxBitrate||(t?kr[t]:Ei);if(t==="audio")throw"Audio track cannot have multiple encodings";return n.filter(i=>i.rid).reduce((i,r)=>{let a=ut[r.rid]??0;return i[a]=r.maxBitrate||mi[a],i},{})};getAudioLevel=async()=>{if(!this.sender)return null;try{let t=[...(await this.sender.getStats()).values()].find(n=>n.type==="media-source"&&n.kind==="audio"&&typeof n.audioLevel=="number");return t?{level:t.audioLevel}:null}catch{return null}};createTrackVariantBitratesEvent=()=>{}},Pi=class{localTracks={};localEndpoint={id:"",type:"webrtc",metadata:void 0,tracks:new Map};emit;sendMediaEvent;connection=null;constructor(e,t){this.emit=e,this.sendMediaEvent=t}updateSenders=()=>{Object.values(this.localTracks).forEach(e=>{e.updateSender()})};updateMLineIds=e=>{Object.entries(e).forEach(([t,n])=>{this.localTracks[n]?.setMLineId(t)})};updateConnection=e=>{this.connection=e,Object.values(this.localTracks).forEach(t=>{t.updateConnection(e)})};createSdpOfferEvent=e=>{let t=this.getTrackIdToMetadataJson(),n=this.getTrackIdToTrackBitrates(),i=this.getMidToTrackId();return Y.create({sdp:e.sdp,midToTrackId:i,trackIdToBitrates:n,trackIdToMetadataJson:t})};addTrack=(e,t,n,i,r,a,d)=>{let c=new Ir(this.localEndpoint,t,r,a);if(c.track=n,c.stream=i,c.maxBandwidth=d,!mr(n.kind))throw new Error("Track has no kind");c.trackKind=n.kind,this.localEndpoint.tracks.set(t,c);let u=new Oi(e,t,c);return this.localTracks[t]=u,u};getTrackByMidOrNull=e=>Object.values(this.localTracks).find(t=>t.mLineId===e)??null;removeTrack=e=>{let t=this.localTracks[e];if(!t)throw new Error(`Cannot find ${e}`);t.removeFromConnection();let n=x.create({});this.sendMediaEvent({renegotiateTracks:n}),this.localEndpoint.tracks.delete(e),delete this.localTracks[e]};replaceTrack=async(e,t,n)=>{let i=this.localTracks[t];if(!i)throw new Error(`Cannot find ${t}`);await i.replaceTrack(n,e)};setEndpointMetadata=e=>{this.localEndpoint.metadata=e};getEndpoint=()=>this.localEndpoint;setTrackBandwidth=async(e,t)=>{let n=this.localTracks[e];if(!n)throw new Error(`Cannot find ${e}`);await n.setTrackBandwidth(t);let i=_.create({trackId:e,variantBitrates:[{variant:0,bitrate:t}]});this.sendMediaEvent(tt.create({trackBitrates:i})),this.emit("localTrackBandwidthSet",{trackId:e,bandwidth:t})};getTrackIdToTrack=()=>{let e=Object.values(this.localTracks).map(t=>[t.id,t.trackContext]);return new Map(e)};setLocalEndpointId=e=>{this.localEndpoint.id=e};setEncodingBandwidth=async(e,t,n)=>{let i=this.localTracks[e];if(!i)throw new Error(`Cannot find ${e}`);await i.setEncodingBandwidth(t,n);let r=i.getTrackBitrates(),a=[];typeof r=="number"?a=[{variant:0,bitrate:r}]:r&&(a=Object.entries(r).map(([c,u])=>({variant:Number(c),bitrate:u})));let d=_.create({trackId:e,variantBitrates:a});this.sendMediaEvent(tt.create({trackBitrates:d})),this.emit("localTrackEncodingBandwidthSet",{trackId:e,rid:t,bandwidth:n})};updateEndpointMetadata=e=>{this.localEndpoint.metadata=e;let t=Z.create({metadataJson:JSON.stringify(this.localEndpoint.metadata)});this.sendMediaEvent({updateEndpointMetadata:t}),this.emit("localEndpointMetadataChanged",{metadata:this.localEndpoint.metadata})};updateLocalTrackMetadata=(e,t)=>{let n=this.localTracks[e];if(!n)throw new Error(`Cannot find ${e}`);n.updateTrackMetadata(t);let i=n.trackContext,r=$.create({trackId:e,metadataJson:t?JSON.stringify(t):void 0});switch(i.negotiationStatus){case"done":this.sendMediaEvent({updateTrackMetadata:r}),this.emit("localTrackMetadataChanged",{trackId:e,metadata:i.metadata});break;case"offered":i.pendingMetadataUpdate=!0;break;case"awaiting":break}};disableLocalTrackEncoding=async(e,t)=>{let n=this.localTracks[e];if(!n)throw new Error(`Track ${e} not found`);await n.disableTrackEncoding(t);let i=Q.create({trackId:e,variant:t});this.sendMediaEvent(tt.create({disableTrackVariant:i})),this.emit("localTrackEncodingEnabled",{trackId:e,encoding:t})};enableLocalTrackEncoding=async(e,t)=>{let n=this.localTracks[e];if(!n)throw new Error(`Cannot find ${e}`);await n.enableTrackEncoding(t);let i=X.create({trackId:e,variant:t});this.sendMediaEvent(tt.create({enableTrackVariant:i})),this.emit("localTrackEncodingEnabled",{trackId:e,encoding:t})};getTrackIdToMetadataJson=()=>Object.values(this.localTracks).reduce((e,{id:t,trackContext:n})=>({...e,[t]:JSON.stringify(n.metadata)}),{});getTrackIdToTrackBitrates=()=>Object.values(this.localTracks).reduce((e,{id:t})=>({...e,[t]:{bitrate:15e5}}),{});getMidToTrackId=()=>{if(!this.connection)return{};let e=this.getTransceiverMapping(),t=Object.values(this.localTracks).filter(n=>!!n.mLineId).reduce((n,{id:i,mLineId:r})=>({...n,[r]:i}),{});return{...e,...t}};getTransceiverMapping=()=>this.connection?this.connection.getConnection().getTransceivers().filter(e=>!!(e.sender.track?.id&&e.mid)).reduce((e,{sender:t,mid:n})=>{let i=Object.values(this.localTracks).find(r=>r.mediaStreamTrackId===t.track.id);if(!i)throw new Error("Local track not found");return{...e,[n]:i.id}},{}):{};setLocalTrackStatusToOffered=()=>{Object.values(this.localTracks).forEach(e=>{e.trackContext.negotiationStatus="offered"})};addAllTracksToConnection=()=>{Object.values(this.localTracks).forEach(e=>{e.addTrackToConnection()})};getLocalTrackAudioLevel=async e=>this.localTracks[e]?.getAudioLevel()??null},Ci=class{connection;local;ongoingTrackReplacement=!1;ongoingRenegotiation=!1;sendMediaEvent;constructor(e,t){this.local=e,this.sendMediaEvent=t}isNegotiationInProgress=()=>this.ongoingRenegotiation||this.ongoingTrackReplacement;cleanUp=()=>{this.ongoingTrackReplacement=!1,this.ongoingRenegotiation=!1};parseAddTrack=(e,t,n)=>{if(this.getEndpointId()==="")throw new Error("Cannot add tracks before being accepted by the server");if(!t.enabled&&typeof n!="number")throw new Error("Invalid type of `maxBandwidth` argument for a non-simulcast track, expected: number");if(this.connection?.isTrackInUse(e))throw new Error("This track was already added to peerConnection, it can't be added again!")};addTrackHandler=(e,t,n,i,r,a)=>{this.ongoingRenegotiation=!0;let d=this.local.addTrack(this.connection,e,t,n,i,r,a);this.connection&&d.addTrackToConnection(),this.sendMediaEvent({renegotiateTracks:x.create()})};removeTrackHandler=e=>{if(!this.connection)throw new Error("There is no active RTCPeerConnection");this.ongoingRenegotiation=!0,this.local.removeTrack(e)};replaceTrackHandler=async(e,t,n)=>{this.ongoingTrackReplacement=!0;try{await this.local.replaceTrack(e,t,n)}finally{this.ongoingTrackReplacement=!1}};getEndpointId=()=>this.local.getEndpoint().id;updateConnection=e=>{this.connection=e};updateSenders=()=>{this.local.updateSenders()}},Ri=class{id;mLineId=null;trackContext;encodings={[-1]:!1,0:!1,1:!1,2:!1,3:!1};targetEncoding=null;constructor(e,t){this.id=e,this.trackContext=t}setMLineId=e=>{this.mLineId=e};setReady=(e,t)=>{if(!mr(t.kind))throw new Error("Track has no kind");this.trackContext.stream=e,this.trackContext.track=t,this.trackContext.trackKind=t.kind};disableTrackEncoding=e=>{this.encodings[e]=!1};enableTrackEncoding=e=>{this.encodings[e]=!0};setTargetTrackEncoding=e=>{this.targetEncoding=e;let t=this.trackContext;if(!t.simulcastConfig?.enabled)throw new Error("The track does not support changing its target variant");if(!t.simulcastConfig.enabledVariants.includes(e))throw new Error(`The track does not support variant ${e}`)}},Ni=class{remoteTracks={};remoteEndpoints={};emit;sendMediaEvent;constructor(e,t){this.emit=e,this.sendMediaEvent=t}getTrackByMid=e=>{let t=Object.values(this.remoteTracks).find(n=>n.mLineId===e);if(!t)throw new Error(`Remote track with ${e} not found`);return t};addTracks=(e,t)=>{let n=this.remoteEndpoints[e];if(!n)throw new Error(`Endpoint ${e} not found`);Object.entries(t).map(([i,{metadataJson:r,simulcastConfig:a}])=>{let d=r?JSON.parse(r):void 0,c=new Ir(n,i,d,a);return new Ri(i,c)}).forEach(i=>{this.remoteTracks[i.id]=i,n.tracks.set(i.id,i.trackContext),this.emit("trackAdded",i.trackContext)})};removeTracks=e=>{e.forEach(t=>{this.removeRemoteTrack(t)})};removeRemoteTrack=e=>{let t=this.remoteTracks[e];if(!t)throw new Error(`Track ${e} not found`);let n=this.remoteEndpoints[t.trackContext.endpoint.id];if(!n)throw new Error(`Endpoint ${t.trackContext.endpoint.id} not found`);n.tracks.delete(e),delete this.remoteTracks[e],this.emit("trackRemoved",t.trackContext)};addRemoteEndpoint=(e,t,n,i=!0)=>{let r={id:e,type:"exwebrtc",metadata:t?JSON.parse(t):void 0,tracks:new Map};this.addEndpoint(r),this.addTracks(r.id,n??{}),i&&this.emit("endpointAdded",r)};addEndpoint=e=>{this.remoteEndpoints[e.id]=e};updateRemoteEndpoint=(e,t)=>{let n=this.remoteEndpoints[e];if(!n)throw new Error(`Endpoint ${e} not found`);n.metadata=t?JSON.parse(t):void 0,this.emit("endpointUpdated",n)};removeRemoteEndpoint=e=>{let t=this.remoteEndpoints[e];if(!t)throw new Error(`Endpoint ${e} not found`);let n=[...t.tracks.values()].map(({trackId:i})=>i);this.removeTracks(n),delete this.remoteEndpoints[e],this.emit("endpointRemoved",t)};updateRemoteTrack=(e,t,n)=>{if(!this.remoteEndpoints[e])throw new Error(`Endpoint ${e} not found`);let i=this.remoteTracks[t];if(!i)throw new Error(`Track ${t} not found`);i.trackContext.metadata=n?JSON.parse(n):void 0,this.emit("trackUpdated",i.trackContext)};disableRemoteTrackEncoding=(e,t)=>{let n=this.remoteTracks[e];if(!n)throw new Error(`Track ${e} not found`);n.disableTrackEncoding(t),this.emit("trackEncodingDisabled",n.trackContext,t)};enableRemoteTrackEncoding=(e,t)=>{let n=this.remoteTracks[e];if(!n)throw new Error(`Track ${e} not found`);n.enableTrackEncoding(t),this.emit("trackEncodingEnabled",n.trackContext,t)};setRemoteTrackEncoding=(e,t,n)=>{let i=this.remoteTracks[e];if(!i)throw new Error(`Track ${e} not found`);i.trackContext.encoding=t,i.trackContext.encodingReason=n,i.trackContext.emit("encodingChanged",i.trackContext)};setRemoteTrackVadStatus=(e,t)=>{let n=this.remoteTracks[e];if(!n)throw new Error(`Track ${e} not found`);let i=null;t===1?i="silence":t===2&&(i="speech"),i?(n.trackContext.vadStatus=i,n.trackContext.emit("voiceActivityChanged",n.trackContext)):console.warn("Received unknown vad status: ",t)};getRemoteTrackContexts=()=>Object.values(this.remoteTracks).reduce((e,t)=>({...e,[t.trackContext.trackId]:t.trackContext}),{});getRemoteEndpoints=()=>Object.values(this.remoteEndpoints).reduce((e,t)=>({...e,[t.id]:t}),{});setTargetRemoteTrackEncoding=(e,t)=>{let n=this.remoteTracks[e];if(!n)throw new Error(`Track ${e} not found`);try{n.setTargetTrackEncoding(t);let i=j.create({variant:t,trackId:e});this.sendMediaEvent({setTargetTrackVariant:i}),this.emit("targetTrackEncodingRequested",{trackId:e,variant:t})}catch(i){console.warn(i)}};updateMLineIds=e=>{Object.entries(e).forEach(([t,n])=>{this.remoteTracks[n]?.setMLineId(t)})}},yr=class extends pr.default{localTrackManager;remote;local;commandsQueue;dataChannelManager;proposedIceServers=[];logger;bandwidthEstimation=BigInt(0);connectionManager;clearConnectionCallbacks=null;constructor(e={}){super(),this.logger=nn(!!e.debug);let t=a=>this.sendMediaEvent(a),n=(a,...d)=>{this.emit(a,...d)};this.remote=new Ni(n,t),this.local=new Pi(n,t),this.localTrackManager=new Ci(this.local,t),this.commandsQueue=new ki(this.localTrackManager);let i=(a,d)=>(this.connectionManager||(this.connectionManager=new Fa(this.proposedIceServers)),this.connectionManager.createDataChannel(a,d)),r=()=>{this.sendMediaEvent({renegotiateTracks:x.create()})};this.dataChannelManager=new pi(i,r,this.logger),this.dataChannelManager.on("ready",()=>{this.emit("dataChannelsReady")}),this.dataChannelManager.on("data",a=>{this.emit("dataChannelPayload",a)}),this.dataChannelManager.on("error",(a,d)=>{this.emit("dataChannelsError",new Error(`Data channel error event: ${d.type}`))})}connect=e=>{this.local.setEndpointMetadata(e);let t=K.create({metadataJson:JSON.stringify(e)});this.sendMediaEvent({connect:t})};getLocalTrackAudioLevel(e){return this.local.getLocalTrackAudioLevel(e)}receiveMediaEvent=async e=>{let t=Ti(e);if(t.connected){let n=t.connected;this.proposedIceServers=n.iceServers,this.local.setLocalEndpointId(n.endpointId);let i=n.endpointIdToEndpoint[n.endpointId]?.metadataJson;i&&this.local.setEndpointMetadata(JSON.parse(i));let r=n.endpointIdToEndpoint[n.endpointId];if(r?.metadataJson){let d=JSON.parse(r?.metadataJson);this.local.setEndpointMetadata(d)}Object.entries(n.endpointIdToEndpoint).filter(([d])=>d!==this.local.getEndpoint().id).forEach(([d,c])=>{this.remote.addRemoteEndpoint(d,c.metadataJson,c.trackIdToTrack)});let a=Object.values(this.remote.getRemoteEndpoints());this.emit("connected",this.local.getEndpoint().id,a);return}this.getEndpointId()&&await this.handleMediaEvent(t)};getEndpointId=()=>this.local.getEndpoint().id;onTrackReady=e=>{let t=e.streams[0];if(!t)throw new Error("Cannot find media stream");let n=e.transceiver.mid,i=this.remote.getTrackByMid(n);i.setReady(t,e.track),this.emit("trackReady",i.trackContext)};async getStatistics(e){return await this.connectionManager?.getConnection().getStats(e)??new Map}getRemoteTracks(){return this.remote.getRemoteTrackContexts()}getRemoteEndpoints(){return this.remote.getRemoteEndpoints()}getLocalEndpoint(){return this.local.getEndpoint()}getBandwidthEstimation(){return this.bandwidthEstimation}getDataChannelsReadiness(){return this.dataChannelManager?.getChannelsReadiness()??!1}handleMediaEvent=async e=>{if(e.offerData)await this.onOfferData(e.offerData);else if(e.tracksAdded){this.localTrackManager.ongoingRenegotiation=!0;let{trackIdToTrack:t,endpointId:n}=e.tracksAdded;if(this.getEndpointId()===n)return;this.remote.addTracks(n,t)}else if(e.tracksRemoved){let{endpointId:t,trackIds:n}=e.tracksRemoved;if(this.getEndpointId()===t)return;this.remote.removeTracks(n)}else if(e.sdpAnswer)this.localTrackManager.ongoingRenegotiation=!1,await this.onSdpAnswer(e.sdpAnswer),this.commandsQueue.processNextCommand();else if(e.candidate)await this.onRemoteCandidate(e.candidate);else if(e.endpointAdded){let{endpointId:t,metadataJson:n}=e.endpointAdded;if(t===this.getEndpointId())return;this.remote.addRemoteEndpoint(t,n)}else if(e.endpointRemoved){let{endpointId:t}=e.endpointRemoved;if(t===this.local.getEndpoint().id){this.cleanUp(),this.emit("disconnected");return}if(this.getEndpointId()===t)return;this.remote.removeRemoteEndpoint(t)}else if(e.endpointUpdated){let{endpointId:t,metadataJson:n}=e.endpointUpdated;if(this.getEndpointId()===t)return;this.remote.updateRemoteEndpoint(t,n)}else if(e.trackUpdated){let{endpointId:t,trackId:n,metadataJson:i}=e.trackUpdated;if(this.getEndpointId()===t)return;this.remote.updateRemoteTrack(t,n,i)}else if(e.vadNotification){let{trackId:t,status:n}=e.vadNotification;this.remote.setRemoteTrackVadStatus(t,n)}else if(e.error)this.logger.warn("signaling error",{message:e.error.message}),this.emit("signalingError",{message:e.error.message}),this.disconnect();else if(e.trackVariantSwitched){let{trackId:t,variant:n}=e.trackVariantSwitched;this.remote.setRemoteTrackEncoding(t,n)}else if(e.trackVariantEnabled){let{trackId:t,variant:n}=e.trackVariantEnabled;this.remote.enableRemoteTrackEncoding(t,n)}else if(e.trackVariantDisabled){let{trackId:t,variant:n}=e.trackVariantDisabled;this.remote.disableRemoteTrackEncoding(t,n)}};onSdpAnswer=async e=>{if(this.remote.updateMLineIds(e.midToTrackId),this.local.updateMLineIds(e.midToTrackId),Object.keys(e.midToTrackId).map(t=>{if(!t)throw new Error("TrackId is not defined");return t}).map(t=>this.local.getTrackByMidOrNull(t)).filter(t=>t!==null).forEach(t=>{let n=t.trackContext;if(n.negotiationStatus="done",n.pendingMetadataUpdate){let i=$.create({trackId:t.id,metadataJson:JSON.stringify(n.metadata)});this.sendMediaEvent({updateTrackMetadata:i})}n.pendingMetadataUpdate=!1}),!this.connectionManager)throw new Error("There is no active RTCPeerConnection");this.connectionManager.setOnTrackReady(t=>{this.onTrackReady(t)});try{await this.connectionManager.setRemoteDescription({sdp:e.sdp,type:"answer"})}catch(t){this.logger.error(t)}};async addTrack(e,t,n={enabled:!1,enabledVariants:[],disabledVariants:[]},i=0,r){let a=new Kt,d=this.getTrackId(Ht()),c=r??new MediaStream,u=typeof i=="number"&&i>0?i:0;try{r||c.addTrack(e),this.commandsQueue.pushCommand({handler:async()=>this.localTrackManager.addTrackHandler(d,e,c,t,n,u),parse:()=>this.localTrackManager.parseAddTrack(e,n,u),resolve:"after-renegotiation",resolutionNotifier:a})}catch(k){a.reject(k)}return await a.promise,this.emit("localTrackAdded",{trackId:d,track:e,stream:c,trackMetadata:t,simulcastConfig:n,maxBandwidth:u}),d}async replaceTrack(e,t){let n=new Kt;return this.commandsQueue.pushCommand({handler:()=>this.localTrackManager.replaceTrackHandler(this,e,t),resolutionNotifier:n,resolve:"on-handler-resolve"}),n.promise.then(()=>{this.emit("localTrackReplaced",{trackId:e,track:t})})}setTrackBandwidth(e,t){if(!this.connectionManager)throw new Error("There is no active RTCPeerConnection");return this.local.setTrackBandwidth(e,t)}async setEncodingBandwidth(e,t,n){if(!this.connectionManager)throw new Error("There is no active RTCPeerConnection");return await this.local.setEncodingBandwidth(e,t,n)}async removeTrack(e){let t=new Kt;this.commandsQueue.pushCommand({handler:async()=>this.localTrackManager.removeTrackHandler(e),resolutionNotifier:t,resolve:"after-renegotiation"}),await t.promise,this.emit("localTrackRemoved",{trackId:e})}setTargetTrackEncoding(e,t){this.remote.setTargetRemoteTrackEncoding(e,t)}enableTrackEncoding=async(e,t)=>{await this.local.enableLocalTrackEncoding(e,t)};disableTrackEncoding=async(e,t)=>{await this.local.disableLocalTrackEncoding(e,t)};updateEndpointMetadata=e=>{this.local.updateEndpointMetadata(e)};updateTrackMetadata=(e,t)=>{this.local.updateLocalTrackMetadata(e,t)};disconnect=()=>{let e=z.create();this.sendMediaEvent({disconnect:e}),this.emit("disconnectRequested",{}),this.cleanUp()};connectDataChannels=()=>this.dataChannelManager.connect();publishData=(e,t)=>{this.dataChannelManager.publishData(e,t)};cleanUp=()=>{this.connectionManager&&(this.clearConnectionCallbacks?.(),this.connectionManager?.getConnection().close(),this.commandsQueue.cleanUp(),this.localTrackManager.cleanUp(),this.dataChannelManager?.cleanup()),this.connectionManager=void 0};getTrackId(e){return`${this.getEndpointId()}:${e}`}sendMediaEvent=e=>{this.emit("sendMediaEvent",Tr(e))};async createAndSendOffer(){let e=this.connectionManager;if(e)try{this.localTrackManager.updateSenders();let t=await e.getConnection().createOffer();if(!this.connectionManager){this.logger.warn("RTCPeerConnection stopped or restarted");return}if(await e.getConnection().setLocalDescription(t),!this.connectionManager){this.logger.warn("RTCPeerConnection stopped or restarted");return}let n=this.local.createSdpOfferEvent(t);this.sendMediaEvent({sdpOffer:n}),this.local.setLocalTrackStatusToOffered()}catch(t){this.logger.error(t)}}onOfferData=async e=>{let t=this.connectionManager??this.createNewConnection();e.tracksTypes&&t.addTransceiversIfNeeded(e.tracksTypes),await this.createAndSendOffer()};setupConnectionListeners=e=>{let t=a=>this.onLocalCandidate(a),n=a=>this.onIceCandidateError(a),i=a=>this.onConnectionStateChange(a),r=a=>this.onIceConnectionStateChange(a);this.clearConnectionCallbacks=()=>{e.removeEventListener("icecandidate",t),e.removeEventListener("icecandidateerror",n),e.removeEventListener("connectionstatechange",i),e.removeEventListener("iceconnectionstatechange",r)},e.addEventListener("icecandidate",t),e.addEventListener("icecandidateerror",n),e.addEventListener("connectionstatechange",i),e.addEventListener("iceconnectionstatechange",r)};createNewConnection=()=>{let e=new Fa(this.proposedIceServers);return this.localTrackManager.updateConnection(e),this.local.updateConnection(e),this.setupConnectionListeners(e.getConnection()),this.commandsQueue.initConnection(e),this.local.addAllTracksToConnection(),this.connectionManager=e,e};onRemoteCandidate=async e=>{try{let t=new RTCIceCandidate(e);if(!this.connectionManager)throw new Error("Received new remote candidate but RTCConnection is undefined");await this.connectionManager.addIceCandidate(t)}catch(t){this.logger.error(t)}};onLocalCandidate=e=>{if(!e.candidate)return;let t=P.create({candidate:e.candidate.candidate,sdpMLineIndex:e.candidate.sdpMLineIndex??void 0,sdpMid:e.candidate.sdpMid??void 0,usernameFragment:e.candidate.usernameFragment??void 0});this.sendMediaEvent({candidate:t})};onIceCandidateError=e=>{this.logger.warn(e)};onConnectionStateChange=e=>{switch(this.localTrackManager.connection?.getConnection().connectionState){case"failed":this.emit("connectionError",{message:"RTCPeerConnection failed",event:e});break}};onIceConnectionStateChange=e=>{switch(this.localTrackManager.connection?.getConnection().iceConnectionState){case"disconnected":this.logger.warn("ICE connection: disconnected"),this.sendMediaEvent({renegotiateTracks:x.create()});break;case"failed":this.emit("connectionError",{message:"ICE connection failed",event:e});break}}};var Or=kt(ct());function gr(e){return new Promise((t,n)=>{let i=()=>{a(),t()},r=()=>{a(),n()};e.on("joined",i),e.on("joinError",r),e.on("authError",r),e.on("socketError",r);let a=()=>{e.removeListener("joined",i),e.removeListener("joinError",r),e.removeListener("authError",r),e.removeListener("socketError",r)}})}var J=e=>e.type==="webrtc"||e.type==="exwebrtc",nt=e=>e.type==="recording"||e.type==="hls"||e.type==="file"||e.type==="rtsp"||e.type==="sip",Sr=["reached peers limit","room not found","node not found","invalid sdk version"],ft=e=>Sr.includes(e);var yt=class{queuedMessages=[];checkIsReconnecting;sendMessage;constructor({checkIsReconnecting:t,sendMessage:n}){this.checkIsReconnecting=t,this.sendMessage=n}enqueueMessage(t){this.queuedMessages.push(t),this.attemptToSendAll()}attemptToSendAll(){if(!this.checkIsReconnecting())for(;this.queuedMessages.length>0;){let n=this.queuedMessages.shift();n&&this.sendMessage(n)}}};var xi={maxAttempts:0,initialDelay:0,delay:0,addTracksOnReconnect:!1},lt={maxAttempts:3,initialDelay:500,delay:500,addTracksOnReconnect:!1},gt=class{reconnectConfig;connect;client;initialPeerMetadata=void 0;reconnectAttempt=0;reconnectTimeoutId=null;status="idle";lastLocalEndpoint=null;removeEventListeners=()=>{};constructor(t,n,i){this.client=t,this.connect=n,this.reconnectConfig=Ji(i);let r=()=>{this.reconnect()};this.client.on("socketError",r);let a=()=>{this.reconnect()};this.client.on("connectionError",a);let d=u=>{let k=ot(u.reason);if(dt(k)||ft(k)){this.abortReconnection();return}this.reconnect()};this.client.on("socketClose",d);let c=()=>{this.reset(this.initialPeerMetadata)};this.client.on("authSuccess",c),this.removeEventListeners=()=>{this.client.off("socketError",r),this.client.off("connectionError",a),this.client.off("socketClose",d),this.client.off("authSuccess",c)}}isReconnecting(){return this.status==="reconnecting"}reset(t){this.initialPeerMetadata=t,this.reconnectAttempt=0,this.reconnectTimeoutId&&clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=null,this.status="idle"}abortReconnection(){this.status==="reconnecting"&&(this.reconnectTimeoutId&&clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=null,this.lastLocalEndpoint=null,this.reconnectAttempt=0,this.status="error")}getLastPeerMetadata(){return this.lastLocalEndpoint?.metadata?.peer}reconnect(){if(this.status==="error"||this.reconnectTimeoutId)return;if(this.reconnectAttempt>=this.reconnectConfig.maxAttempts){this.status==="reconnecting"&&(this.status="error",this.client.emit("reconnectionRetriesLimitReached"));return}this.status!=="reconnecting"&&(this.status="reconnecting",this.client.emit("reconnectionStarted"),this.lastLocalEndpoint=this.client.getLocalPeer()||null);let t=this.reconnectConfig.initialDelay+this.reconnectAttempt*this.reconnectConfig.delay;this.reconnectAttempt+=1,this.reconnectTimeoutId=setTimeout(()=>{this.reconnectTimeoutId=null;let n=this.getLastPeerMetadata()??this.initialPeerMetadata;this.connect(n)},t)}async handleReconnect(){if(this.status==="reconnecting"){if(this.lastLocalEndpoint&&this.reconnectConfig.addTracksOnReconnect)for await(let t of this.lastLocalEndpoint.tracks){let[n,i]=t;if(!i.track||i.track.readyState!=="live")return;await this.client.addTrack(i.track,i.metadata,i.simulcastConfig,i.maxBandwidth)}this.lastLocalEndpoint=null,this.status="idle",this.client.emit("reconnected")}}cleanup(){this.removeEventListeners(),this.removeEventListeners=()=>{}}},Ji=e=>e?e===!0?lt:{maxAttempts:e?.maxAttempts??lt.maxAttempts,initialDelay:e?.initialDelay??lt.initialDelay,delay:e?.delay??lt.delay,addTracksOnReconnect:e?.addTracksOnReconnect??lt.addTracksOnReconnect}:xi;var _r="0.26.0";var wr=_r;var Bi=1e4,br="socket/peer/websocket",an=class extends Or.EventEmitter{websocket=null;webrtc=null;removeEventListeners=null;debug;logger;clientType;status="new";connectConfig=null;isAudioOnlyConnection=!1;reconnectManager;peerMessageQueue;sendStatisticsInterval=void 0;cameraStream=new MediaStream;screenShareStream=new MediaStream;trackIdToTrack=new Map;constructor(t){super(),this.debug=!!t?.debug,this.logger=nn(this.debug),this.clientType=t?.clientType??"web",this.reconnectManager=new gt(this,n=>this.initConnection(n),t?.reconnect??!0),this.peerMessageQueue=new yt({sendMessage:n=>this.websocket?.send(n),checkIsReconnecting:()=>this.reconnectManager.isReconnecting()}),this.on("reconnected",()=>this.peerMessageQueue.attemptToSendAll())}async connect(t){this.emit("connectionStarted");let n=gr(this);return this.reconnectManager.reset(t.peerMetadata),this.connectConfig=t,this.initConnection(t.peerMetadata),n}async initConnection(t){this.status==="initialized"&&this.disconnect(),this.webrtc=new yr({debug:this.debug}),this.initWebsocket(t),this.setupCallbacks(),this.status="initialized"}getUrl(t){return t.endsWith("/")?`${t}${br}`:`${t}/${br}`}initWebsocket(t){if(!this.connectConfig)throw Error("ConnectConfig is null");let{token:n,url:i}=this.connectConfig,r=this.getUrl(i);this.websocket=new WebSocket(r),this.websocket.binaryType="arraybuffer";let a=k=>{this.emit("socketOpen",k);let p=`${this.clientType}-${wr}`,T=Ae.encode({authRequest:{token:n,sdkVersion:p}}).finish();this.websocket?.send(T)},d=k=>{this.emit("socketError",k)},c=k=>{let p=ot(k.reason);dt(p)&&this.emit("authError",p),ft(p)&&this.emit("joinError",p),this.logger.warn(`Socket closed with reason: ${k.reason}`),this.emit("socketClose",k)};this.websocket.addEventListener("open",a),this.websocket.addEventListener("error",d),this.websocket.addEventListener("close",c);let u=k=>{let p=new Uint8Array(k.data);try{let T=Ae.decode(p),h=T.serverMediaEvent;T.authenticated?(this.isAudioOnlyConnection=T.authenticated.roomType===2,T.authenticated.sdkDeprecation&&this.handleSdkDeprecation(T.authenticated.sdkDeprecation),this.emit("authSuccess"),this.webrtc?.connect(t)):T.authRequest?this.logger.warn("Received unexpected control message: authRequest"):h&&this.webrtc?.receiveMediaEvent(U.encode(h).finish())}catch(T){this.logger.warn(`Received invalid control message, error: ${T}`)}};this.websocket.addEventListener("message",u),this.removeEventListeners=()=>{this.websocket?.removeEventListener("open",a),this.websocket?.removeEventListener("error",d),this.websocket?.removeEventListener("close",c),this.websocket?.removeEventListener("message",u)}}handleSdkDeprecation(t){switch(t.status){case 3:this.logger.error(t.message);break;case 2:this.logger.warn(t.message);break;default:break}}async getStatistics(t){return await this.webrtc?.getStatistics(t)??new Map}getRemoteTracks(){return this.webrtc?.getRemoteTracks()??{}}getRemotePeers(){return Object.entries(this.webrtc?.getRemoteEndpoints()??{}).reduce((t,[n,i])=>J(i)?{...t,[n]:i}:t,{})}getRemoteComponents(){return Object.entries(this.webrtc?.getRemoteEndpoints()??{}).reduce((t,[n,i])=>nt(i)?{...t,[n]:i}:t,{})}getLocalPeer(){return this.webrtc?.getLocalEndpoint()||null}getBandwidthEstimation(){if(!this.webrtc)throw Error("Webrtc not initialized");return this.webrtc?.getBandwidthEstimation()}isConnectingRelatedEvent(t){return!!(t.connect||t.renegotiateTracks||t.sdpOffer||t.candidate)}setupCallbacks(){this.webrtc?.on("sendMediaEvent",t=>{let n=B.decode(t),i=Ae.encode({peerMediaEvent:n}).finish();this.isConnectingRelatedEvent(n)?this.websocket?.send(i):this.peerMessageQueue.enqueueMessage(i)}),this.webrtc?.on("connected",async(t,n)=>{let i=n.filter(a=>J(a)).map(a=>a),r=n.filter(a=>nt(a)).map(a=>a);await this.reconnectManager.handleReconnect(),this.sendStatisticsInterval=setInterval(()=>this.sendStatistics(),Bi),this.emit("joined",t,i,r)}),this.webrtc?.on("disconnected",()=>{this.emit("disconnected"),clearInterval(this.sendStatisticsInterval)}),this.webrtc?.on("endpointAdded",t=>{J(t)&&this.emit("peerJoined",t),nt(t)&&this.emit("componentAdded",t)}),this.webrtc?.on("endpointRemoved",t=>{J(t)&&this.emit("peerLeft",t),nt(t)&&this.emit("componentRemoved",t)}),this.webrtc?.on("endpointUpdated",t=>{J(t)&&this.emit("peerUpdated",t),nt(t)&&this.emit("componentUpdated",t)}),this.webrtc?.on("trackReady",t=>{J(t.endpoint)&&this.emit("trackReady",t)}),this.webrtc?.on("trackAdded",t=>{J(t.endpoint)&&(t.on("encodingChanged",n=>{this.emit("encodingChanged",n)}),this.emit("trackAdded",t))}),this.webrtc?.on("trackRemoved",t=>{J(t.endpoint)&&(this.emit("trackRemoved",t),t.removeAllListeners())}),this.webrtc?.on("trackUpdated",t=>{J(t.endpoint)&&this.emit("trackUpdated",t)}),this.webrtc?.on("tracksPriorityChanged",(t,n)=>{this.emit("tracksPriorityChanged",t,n)}),this.webrtc?.on("signalingError",t=>{this.emit("joinError",t)}),this.webrtc?.on("connectionError",t=>{this.emit("connectionError",t)}),this.webrtc?.on("bandwidthEstimationChanged",t=>{this.emit("bandwidthEstimationChanged",t)}),this.webrtc?.on("targetTrackEncodingRequested",t=>{this.emit("targetTrackEncodingRequested",t)}),this.webrtc?.on("localTrackAdded",t=>{this.trackIdToTrack.set(t.trackId,[t.track,t.stream]),this.emit("localTrackAdded",t)}),this.webrtc?.on("localTrackRemoved",t=>{let[n,i]=this.trackIdToTrack.get(t.trackId);n&&i.removeTrack(n),this.trackIdToTrack.delete(t.trackId),this.emit("localTrackRemoved",t)}),this.webrtc?.on("localTrackReplaced",t=>{let[n,i]=this.trackIdToTrack.get(t.trackId);n&&i.removeTrack(n),t.track&&i.addTrack(t.track),this.trackIdToTrack.set(t.trackId,[t.track,i]),this.emit("localTrackReplaced",t)}),this.webrtc?.on("localTrackBandwidthSet",t=>{this.emit("localTrackBandwidthSet",t)}),this.webrtc?.on("localTrackMuted",t=>{this.emit("localTrackMuted",t)}),this.webrtc?.on("localTrackUnmuted",t=>{this.emit("localTrackUnmuted",t)}),this.webrtc?.on("localTrackBandwidthSet",t=>{this.emit("localTrackBandwidthSet",t)}),this.webrtc?.on("localTrackEncodingEnabled",t=>{this.emit("localTrackEncodingEnabled",t)}),this.webrtc?.on("localTrackEncodingDisabled",t=>{this.emit("localTrackEncodingDisabled",t)}),this.webrtc?.on("localEndpointMetadataChanged",t=>{this.emit("localPeerMetadataChanged",t)}),this.webrtc?.on("localTrackMetadataChanged",t=>{this.emit("localTrackMetadataChanged",t)}),this.webrtc?.on("disconnectRequested",t=>{this.emit("disconnectRequested",t)}),this.webrtc?.on("dataChannelsReady",()=>{this.emit("dataChannelsReady")}),this.webrtc?.on("dataChannelsError",t=>{this.emit("dataChannelsError",t)})}async sendStatistics(){let t=await this.getStatistics(),n={};t.forEach((r,a)=>{(r.type==="inbound-rtp"||r.type==="outbound-rtp")&&(n[a]=r)});let i=Ae.encode({rtcStatsReport:{data:JSON.stringify(n)}}).finish();this.peerMessageQueue.enqueueMessage(i)}on(t,n){return super.on(t,n)}off(t,n){return super.off(t,n)}handleWebRTCNotInitialized(){return new Error("WebRTC is not initialized")}addTrack(t,n,i={enabled:!1,enabledVariants:[],disabledVariants:[]},r=0){if(!this.webrtc)throw this.handleWebRTCNotInitialized();if(this.isAudioOnlyConnection&&t.kind!=="audio")throw new st;let a;switch(n?.type){case"camera":case"microphone":a=this.cameraStream;break;case"screenShareVideo":case"screenShareAudio":a=this.screenShareStream}return a?.addTrack(t),this.webrtc.addTrack(t,n,i,r,a)}async replaceTrack(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return this.webrtc.replaceTrack(t,n)}async setTrackBandwidth(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return await this.webrtc.setTrackBandwidth(t,n),!0}async setEncodingBandwidth(t,n,i){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return await this.webrtc.setEncodingBandwidth(t,n,i),!0}removeTrack(t){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return this.webrtc.removeTrack(t)}setTargetTrackEncoding(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return this.webrtc.setTargetTrackEncoding(t,n)}enableTrackEncoding(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return this.webrtc.enableTrackEncoding(t,n)}disableTrackEncoding(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return this.webrtc.disableTrackEncoding(t,n)}updatePeerMetadata=t=>{if(!this.webrtc)throw this.handleWebRTCNotInitialized();this.webrtc.updateEndpointMetadata(t)};updateTrackMetadata=(t,n)=>{if(!this.webrtc)throw this.handleWebRTCNotInitialized();this.webrtc.updateTrackMetadata(t,n)};isReconnecting(){return this.reconnectManager.isReconnecting()}getDataChannelsReadiness(){return this.webrtc?.getDataChannelsReadiness()??!1}leave=()=>{if(!this.webrtc)throw this.handleWebRTCNotInitialized();this.webrtc.disconnect()};isOpen(t){return t?.readyState===1}createDataChannels(){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return this.webrtc.connectDataChannels()}publishData(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();let i=vt.encode({source:"mock",destinations:["*"],binary:{data:t}}).finish();this.webrtc.publishData(i,n)}subscribeData(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();let i=({channelType:r,data:a})=>{if(!(n.reliable&&r!=="reliable")&&!(!n.reliable&&r!=="lossy"))try{let{binary:d}=vt.decode(a);d&&t(d.data)}catch(d){this.logger.warn(`Received invalid channel message, error: ${d}`)}};return this.webrtc.on("dataChannelPayload",i),()=>this.webrtc?.off("dataChannelPayload",i)}disconnect(){try{this.webrtc?.removeAllListeners(),this.webrtc?.disconnect(),this.webrtc?.cleanUp()}catch(t){this.logger.warn(t)}this.removeEventListeners?.(),this.removeEventListeners=null,this.isOpen(this.websocket||null)&&this.websocket?.close(),this.websocket=null,this.webrtc=null,this.cameraStream=new MediaStream,this.screenShareStream=new MediaStream,this.trackIdToTrack.clear(),this.emit("disconnected")}cleanup(){this.reconnectManager.cleanup()}getLocalTrackAudioLevel(t){return this.webrtc?.getLocalTrackAudioLevel(t)??Promise.resolve(null)}};var xr=(r=>(r.UNAUTHORIZED="unauthorized",r.STREAM_NOT_FOUND="stream_not_found",r.UNKNOWN_ERROR="unknown_error",r.STREAMER_ALREADY_CONNECTED="streamer_already_connected",r))(xr||{});async function Di(e,t,n){let i=new RTCPeerConnection({bundlePolicy:"max-bundle"});i.addTransceiver("video",{direction:"recvonly"}),i.addTransceiver("audio",{direction:"recvonly"}),i.onconnectionstatechange=d=>n?.onConnectionStateChange?.(i);let{WHEPClient:r}=await Promise.resolve().then(()=>(Cr(),Pr)),a=new r;return new Promise((d,c)=>{i.ontrack=u=>{let k=u.streams[0];k&&d({getStatistics:()=>i.getStats(),stream:k,stop:async()=>{await a.stop(),n?.onConnectionStateChange?.(i)}})},a.view(i,e,t).catch(u=>{if(u instanceof Error){let k="unknown_error";u.message.includes("401")?k="unauthorized":u.message.includes("404")&&(k="stream_not_found"),c(k)}})})}async function Ui(e,t,n,i){let r=new RTCPeerConnection({bundlePolicy:"max-bundle"});r.onconnectionstatechange=k=>i?.onConnectionStateChange?.(r);let a=e.getVideoTracks().at(0),d=e.getAudioTracks().at(0);if(!a&&!d)throw Error("To publish a livestream with WHIP, you need to supply at least one video or audio track.");a&&r.addTransceiver(a,{direction:"sendonly"}),d&&r.addTransceiver(d,{direction:"sendonly"});let{WHIPClient:c}=await Promise.resolve().then(()=>(Nr(),Rr)),u=new c;try{await u.publish(r,t,n)}catch(k){if(k instanceof Error){if(k.message.includes("401"))throw"unauthorized";if(k.message.includes("404"))throw"stream_not_found";if(k.message.includes("409"))throw"streamer_already_connected"}throw"unknown_error"}return{getStatistics:()=>r.getStats(),stopPublishing:async()=>{await u.stop(),i?.onConnectionStateChange?.(r)}}}export{cn as AUTH_ERROR_REASONS,an as FishjamClient,Sr as JOIN_ERRORS,xr as LivestreamError,Ue as SimulcastConfig,st as TrackTypeError,li as Variant,yr as WebRTCEndpoint,nn as getLogger,dt as isAuthError,ft as isJoinError,ot as normalizeCloseReason,Ui as publishLivestream,Di as receiveLivestream};
17
+ `),v.sdp=v.sdp.replaceAll(/(a=candidate:.*\r\n)/gm,""),v.sdp=v.sdp.replaceAll(/(m=.*\r\n)/gm,"$1"+h.join()),await this.pc.setRemoteDescription(v),this.restartIce===i&&(this.restartIce=null,(this.candidates.length||this.endOfcandidates)&&this.patch())}}async mute(t){let n={"Content-Type":"application/json"};this.token&&(n.Authorization="Bearer "+this.token);let i=await fetch(this.resourceURL,{method:"POST",body:JSON.stringify(t),headers:n})}async stop(){if(!this.pc)return;if(this.iceTrickeTimeout=clearTimeout(this.iceTrickeTimeout),this.pc.close(),this.pc=null,!this.resourceURL)throw new Error("WHIP resource url not available yet");let t={};this.token&&(t.Authorization="Bearer "+this.token),await fetch(this.resourceURL,{method:"DELETE",headers:t})}}});var un=["missing token","invalid token","expired token","room not found","peer not found"],dt=e=>un.includes(e),ot=e=>e.trim().toLowerCase();var st=class extends Error{constructor(){super("Attempted to add video track to audio-only room. Please refer to the docs at https://docs.fishjam.io/audio-calls")}};function ln(){let e=0,t=0;for(let i=0;i<28;i+=7){let r=this.buf[this.pos++];if(e|=(r&127)<<i,(r&128)==0)return this.assertBounds(),[e,t]}let n=this.buf[this.pos++];if(e|=(n&15)<<28,t=(n&112)>>4,(n&128)==0)return this.assertBounds(),[e,t];for(let i=3;i<=31;i+=7){let r=this.buf[this.pos++];if(t|=(r&127)<<i,(r&128)==0)return this.assertBounds(),[e,t]}throw new Error("invalid varint")}function ht(e,t,n){for(let a=0;a<28;a=a+7){let d=e>>>a,c=!(!(d>>>7)&&t==0),u=(c?d|128:d)&255;if(n.push(u),!c)return}let i=e>>>28&15|(t&7)<<4,r=t>>3!=0;if(n.push((r?i|128:i)&255),!!r){for(let a=3;a<31;a=a+7){let d=t>>>a,c=!!(d>>>7),u=(c?d|128:d)&255;if(n.push(u),!c)return}n.push(t>>>31&1)}}var pt=4294967296;function _t(e){let t=e[0]==="-";t&&(e=e.slice(1));let n=1e6,i=0,r=0;function a(d,c){let u=Number(e.slice(d,c));r*=n,i=i*n+u,i>=pt&&(r=r+(i/pt|0),i=i%pt)}return a(-24,-18),a(-18,-12),a(-12,-6),a(-6),t?pn(i,r):bt(i,r)}function kn(e,t){let n=bt(e,t),i=n.hi&2147483648;i&&(n=pn(n.lo,n.hi));let r=wt(n.lo,n.hi);return i?"-"+r:r}function wt(e,t){if({lo:e,hi:t}=Wr(e,t),t<=2097151)return String(pt*t+e);let n=e&16777215,i=(e>>>24|t<<8)&16777215,r=t>>16&65535,a=n+i*6777216+r*6710656,d=i+r*8147497,c=r*2,u=1e7;return a>=u&&(d+=Math.floor(a/u),a%=u),d>=u&&(c+=Math.floor(d/u),d%=u),c.toString()+fn(d)+fn(a)}function Wr(e,t){return{lo:e>>>0,hi:t>>>0}}function bt(e,t){return{lo:e|0,hi:t|0}}function pn(e,t){return t=~t,e?e=~e+1:t+=1,bt(e,t)}var fn=e=>{let t=String(e);return"0000000".slice(t.length)+t};function Ot(e,t){if(e>=0){for(;e>127;)t.push(e&127|128),e=e>>>7;t.push(e)}else{for(let n=0;n<9;n++)t.push(e&127|128),e=e>>7;t.push(1)}}function hn(){let e=this.buf[this.pos++],t=e&127;if((e&128)==0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<7,(e&128)==0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<14,(e&128)==0)return this.assertBounds(),t;if(e=this.buf[this.pos++],t|=(e&127)<<21,(e&128)==0)return this.assertBounds(),t;e=this.buf[this.pos++],t|=(e&15)<<28;for(let n=5;(e&128)!==0&&n<10;n++)e=this.buf[this.pos++];if((e&128)!=0)throw new Error("invalid varint");return this.assertBounds(),t>>>0}var C=$r();function $r(){let e=new DataView(new ArrayBuffer(8));if(typeof BigInt=="function"&&typeof e.getBigInt64=="function"&&typeof e.getBigUint64=="function"&&typeof e.setBigInt64=="function"&&typeof e.setBigUint64=="function"&&(typeof process!="object"||typeof process.env!="object"||process.env.BUF_BIGINT_DISABLE!=="1")){let n=BigInt("-9223372036854775808"),i=BigInt("9223372036854775807"),r=BigInt("0"),a=BigInt("18446744073709551615");return{zero:BigInt(0),supported:!0,parse(d){let c=typeof d=="bigint"?d:BigInt(d);if(c>i||c<n)throw new Error(`invalid int64: ${d}`);return c},uParse(d){let c=typeof d=="bigint"?d:BigInt(d);if(c>a||c<r)throw new Error(`invalid uint64: ${d}`);return c},enc(d){return e.setBigInt64(0,this.parse(d),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},uEnc(d){return e.setBigInt64(0,this.uParse(d),!0),{lo:e.getInt32(0,!0),hi:e.getInt32(4,!0)}},dec(d,c){return e.setInt32(0,d,!0),e.setInt32(4,c,!0),e.getBigInt64(0,!0)},uDec(d,c){return e.setInt32(0,d,!0),e.setInt32(4,c,!0),e.getBigUint64(0,!0)}}}return{zero:"0",supported:!1,parse(n){return typeof n!="string"&&(n=n.toString()),vn(n),n},uParse(n){return typeof n!="string"&&(n=n.toString()),Tn(n),n},enc(n){return typeof n!="string"&&(n=n.toString()),vn(n),_t(n)},uEnc(n){return typeof n!="string"&&(n=n.toString()),Tn(n),_t(n)},dec(n,i){return kn(n,i)},uDec(n,i){return wt(n,i)}}}function vn(e){if(!/^-?[0-9]+$/.test(e))throw new Error("invalid int64: "+e)}function Tn(e){if(!/^[0-9]+$/.test(e))throw new Error("invalid uint64: "+e)}var Pt=Symbol.for("@bufbuild/protobuf/text-encoding");function Ct(){if(globalThis[Pt]==null){let e=new globalThis.TextEncoder,t=new globalThis.TextDecoder;globalThis[Pt]={encodeUtf8(n){return e.encode(n)},decodeUtf8(n){return t.decode(n)},checkUtf8(n){try{return encodeURIComponent(n),!0}catch{return!1}}}}return globalThis[Pt]}var W;(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"})(W||(W={}));var Hr=34028234663852886e22,qr=-34028234663852886e22,Gr=4294967295,Kr=2147483647,zr=-2147483648,s=class{constructor(t=Ct().encodeUtf8){this.encodeUtf8=t,this.stack=[],this.chunks=[],this.buf=[]}finish(){this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]);let t=0;for(let r=0;r<this.chunks.length;r++)t+=this.chunks[r].length;let n=new Uint8Array(t),i=0;for(let r=0;r<this.chunks.length;r++)n.set(this.chunks[r],i),i+=this.chunks[r].length;return this.chunks=[],n}fork(){return this.stack.push({chunks:this.chunks,buf:this.buf}),this.chunks=[],this.buf=[],this}join(){let t=this.finish(),n=this.stack.pop();if(!n)throw new Error("invalid state, fork stack empty");return this.chunks=n.chunks,this.buf=n.buf,this.uint32(t.byteLength),this.raw(t)}tag(t,n){return this.uint32((t<<3|n)>>>0)}raw(t){return this.buf.length&&(this.chunks.push(new Uint8Array(this.buf)),this.buf=[]),this.chunks.push(t),this}uint32(t){for(En(t);t>127;)this.buf.push(t&127|128),t=t>>>7;return this.buf.push(t),this}int32(t){return Rt(t),Ot(t,this.buf),this}bool(t){return this.buf.push(t?1:0),this}bytes(t){return this.uint32(t.byteLength),this.raw(t)}string(t){let n=this.encodeUtf8(t);return this.uint32(n.byteLength),this.raw(n)}float(t){Zr(t);let n=new Uint8Array(4);return new DataView(n.buffer).setFloat32(0,t,!0),this.raw(n)}double(t){let n=new Uint8Array(8);return new DataView(n.buffer).setFloat64(0,t,!0),this.raw(n)}fixed32(t){En(t);let n=new Uint8Array(4);return new DataView(n.buffer).setUint32(0,t,!0),this.raw(n)}sfixed32(t){Rt(t);let n=new Uint8Array(4);return new DataView(n.buffer).setInt32(0,t,!0),this.raw(n)}sint32(t){return Rt(t),t=(t<<1^t>>31)>>>0,Ot(t,this.buf),this}sfixed64(t){let n=new Uint8Array(8),i=new DataView(n.buffer),r=C.enc(t);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(n)}fixed64(t){let n=new Uint8Array(8),i=new DataView(n.buffer),r=C.uEnc(t);return i.setInt32(0,r.lo,!0),i.setInt32(4,r.hi,!0),this.raw(n)}int64(t){let n=C.enc(t);return ht(n.lo,n.hi,this.buf),this}sint64(t){let n=C.enc(t),i=n.hi>>31,r=n.lo<<1^i,a=(n.hi<<1|n.lo>>>31)^i;return ht(r,a,this.buf),this}uint64(t){let n=C.uEnc(t);return ht(n.lo,n.hi,this.buf),this}},o=class{constructor(t,n=Ct().decodeUtf8){this.decodeUtf8=n,this.varint64=ln,this.uint32=hn,this.buf=t,this.len=t.length,this.pos=0,this.view=new DataView(t.buffer,t.byteOffset,t.byteLength)}tag(){let t=this.uint32(),n=t>>>3,i=t&7;if(n<=0||i<0||i>5)throw new Error("illegal tag: field no "+n+" wire type "+i);return[n,i]}skip(t,n){let i=this.pos;switch(t){case W.Varint:for(;this.buf[this.pos++]&128;);break;case W.Bit64:this.pos+=4;case W.Bit32:this.pos+=4;break;case W.LengthDelimited:let r=this.uint32();this.pos+=r;break;case W.StartGroup:for(;;){let[a,d]=this.tag();if(d===W.EndGroup){if(n!==void 0&&a!==n)throw new Error("invalid end group tag");break}this.skip(d,a)}break;default:throw new Error("cant skip wire type "+t)}return this.assertBounds(),this.buf.subarray(i,this.pos)}assertBounds(){if(this.pos>this.len)throw new RangeError("premature EOF")}int32(){return this.uint32()|0}sint32(){let t=this.uint32();return t>>>1^-(t&1)}int64(){return C.dec(...this.varint64())}uint64(){return C.uDec(...this.varint64())}sint64(){let[t,n]=this.varint64(),i=-(t&1);return t=(t>>>1|(n&1)<<31)^i,n=n>>>1^i,C.dec(t,n)}bool(){let[t,n]=this.varint64();return t!==0||n!==0}fixed32(){return this.view.getUint32((this.pos+=4)-4,!0)}sfixed32(){return this.view.getInt32((this.pos+=4)-4,!0)}fixed64(){return C.uDec(this.sfixed32(),this.sfixed32())}sfixed64(){return C.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 t=this.uint32(),n=this.pos;return this.pos+=t,this.assertBounds(),this.buf.subarray(n,n+t)}string(){return this.decodeUtf8(this.bytes())}};function Rt(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid int32: "+typeof e);if(!Number.isInteger(e)||e>Kr||e<zr)throw new Error("invalid int32: "+e)}function En(e){if(typeof e=="string")e=Number(e);else if(typeof e!="number")throw new Error("invalid uint32: "+typeof e);if(!Number.isInteger(e)||e>Gr||e<0)throw new Error("invalid uint32: "+e)}function Zr(e){if(typeof e=="string"){let t=e;if(e=Number(e),isNaN(e)&&t!=="NaN")throw new Error("invalid float32: "+t)}else if(typeof e!="number")throw new Error("invalid float32: "+typeof e);if(Number.isFinite(e)&&(e>Hr||e<qr))throw new Error("invalid float32: "+e)}function R(e){switch(e){case 0:case"VARIANT_UNSPECIFIED":return 0;case 1:case"VARIANT_LOW":return 1;case 2:case"VARIANT_MEDIUM":return 2;case 3:case"VARIANT_HIGH":return 3;case-1:case"UNRECOGNIZED":default:return-1}}function N(e){switch(e){case 0:return"VARIANT_UNSPECIFIED";case 1:return"VARIANT_LOW";case 2:return"VARIANT_MEDIUM";case 3:return"VARIANT_HIGH";case-1:default:return"UNRECOGNIZED"}}function mn(){return{candidate:"",sdpMLineIndex:0,sdpMid:"",usernameFragment:""}}var O={encode(e,t=new s){return e.candidate!==""&&t.uint32(10).string(e.candidate),e.sdpMLineIndex!==0&&t.uint32(16).int32(e.sdpMLineIndex),e.sdpMid!==""&&t.uint32(26).string(e.sdpMid),e.usernameFragment!==""&&t.uint32(34).string(e.usernameFragment),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=mn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.candidate=n.string();continue}case 2:{if(a!==16)break;r.sdpMLineIndex=n.int32();continue}case 3:{if(a!==26)break;r.sdpMid=n.string();continue}case 4:{if(a!==34)break;r.usernameFragment=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{candidate:G(e.candidate)?globalThis.String(e.candidate):"",sdpMLineIndex:G(e.sdpMLineIndex)?globalThis.Number(e.sdpMLineIndex):0,sdpMid:G(e.sdpMid)?globalThis.String(e.sdpMid):"",usernameFragment:G(e.usernameFragment)?globalThis.String(e.usernameFragment):""}},toJSON(e){let t={};return e.candidate!==""&&(t.candidate=e.candidate),e.sdpMLineIndex!==0&&(t.sdpMLineIndex=Math.round(e.sdpMLineIndex)),e.sdpMid!==""&&(t.sdpMid=e.sdpMid),e.usernameFragment!==""&&(t.usernameFragment=e.usernameFragment),t},create(e){return O.fromPartial(e??{})},fromPartial(e){let t=mn();return t.candidate=e.candidate??"",t.sdpMLineIndex=e.sdpMLineIndex??0,t.sdpMid=e.sdpMid??"",t.usernameFragment=e.usernameFragment??"",t}};function In(){return{data:new Uint8Array(0)}}var te={encode(e,t=new s){return e.data.length!==0&&t.uint32(10).bytes(e.data),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=In();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.data=n.bytes();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{data:G(e.data)?Yr(e.data):new Uint8Array(0)}},toJSON(e){let t={};return e.data.length!==0&&(t.data=Qr(e.data)),t},create(e){return te.fromPartial(e??{})},fromPartial(e){let t=In();return t.data=e.data??new Uint8Array(0),t}};function Mn(){return{source:"",destinations:[],binary:void 0}}var vt={encode(e,t=new s){e.source!==""&&t.uint32(10).string(e.source);for(let n of e.destinations)t.uint32(18).string(n);return e.binary!==void 0&&te.encode(e.binary,t.uint32(26).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Mn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.source=n.string();continue}case 2:{if(a!==18)break;r.destinations.push(n.string());continue}case 3:{if(a!==26)break;r.binary=te.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{source:G(e.source)?globalThis.String(e.source):"",destinations:globalThis.Array.isArray(e?.destinations)?e.destinations.map(t=>globalThis.String(t)):[],binary:G(e.binary)?te.fromJSON(e.binary):void 0}},toJSON(e){let t={};return e.source!==""&&(t.source=e.source),e.destinations?.length&&(t.destinations=e.destinations),e.binary!==void 0&&(t.binary=te.toJSON(e.binary)),t},create(e){return vt.fromPartial(e??{})},fromPartial(e){let t=Mn();return t.source=e.source??"",t.destinations=e.destinations?.map(n=>n)||[],t.binary=e.binary!==void 0&&e.binary!==null?te.fromPartial(e.binary):void 0,t}};function Yr(e){if(globalThis.Buffer)return Uint8Array.from(globalThis.Buffer.from(e,"base64"));{let t=globalThis.atob(e),n=new Uint8Array(t.length);for(let i=0;i<t.length;++i)n[i]=t.charCodeAt(i);return n}}function Qr(e){if(globalThis.Buffer)return globalThis.Buffer.from(e).toString("base64");{let t=[];return e.forEach(n=>{t.push(globalThis.String.fromCharCode(n))}),globalThis.btoa(t.join(""))}}function G(e){return e!=null}function yn(){return{connect:void 0,disconnect:void 0,updateEndpointMetadata:void 0,updateTrackMetadata:void 0,renegotiateTracks:void 0,candidate:void 0,sdpOffer:void 0,trackBitrates:void 0,enableTrackVariant:void 0,disableTrackVariant:void 0,setTargetTrackVariant:void 0,unmuteTrack:void 0}}var B={encode(e,t=new s){return e.connect!==void 0&&ae.encode(e.connect,t.uint32(10).fork()).join(),e.disconnect!==void 0&&re.encode(e.disconnect,t.uint32(18).fork()).join(),e.updateEndpointMetadata!==void 0&&ie.encode(e.updateEndpointMetadata,t.uint32(26).fork()).join(),e.updateTrackMetadata!==void 0&&de.encode(e.updateTrackMetadata,t.uint32(34).fork()).join(),e.renegotiateTracks!==void 0&&oe.encode(e.renegotiateTracks,t.uint32(42).fork()).join(),e.candidate!==void 0&&O.encode(e.candidate,t.uint32(50).fork()).join(),e.sdpOffer!==void 0&&se.encode(e.sdpOffer,t.uint32(58).fork()).join(),e.trackBitrates!==void 0&&w.encode(e.trackBitrates,t.uint32(66).fork()).join(),e.enableTrackVariant!==void 0&&ue.encode(e.enableTrackVariant,t.uint32(74).fork()).join(),e.disableTrackVariant!==void 0&&ce.encode(e.disableTrackVariant,t.uint32(82).fork()).join(),e.setTargetTrackVariant!==void 0&&fe.encode(e.setTargetTrackVariant,t.uint32(90).fork()).join(),e.unmuteTrack!==void 0&&le.encode(e.unmuteTrack,t.uint32(98).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=yn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.connect=ae.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.disconnect=re.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.updateEndpointMetadata=ie.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.updateTrackMetadata=de.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.renegotiateTracks=oe.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.candidate=O.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.sdpOffer=se.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.trackBitrates=w.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.enableTrackVariant=ue.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.disableTrackVariant=ce.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.setTargetTrackVariant=fe.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.unmuteTrack=le.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{connect:E(e.connect)?ae.fromJSON(e.connect):void 0,disconnect:E(e.disconnect)?re.fromJSON(e.disconnect):void 0,updateEndpointMetadata:E(e.updateEndpointMetadata)?ie.fromJSON(e.updateEndpointMetadata):void 0,updateTrackMetadata:E(e.updateTrackMetadata)?de.fromJSON(e.updateTrackMetadata):void 0,renegotiateTracks:E(e.renegotiateTracks)?oe.fromJSON(e.renegotiateTracks):void 0,candidate:E(e.candidate)?O.fromJSON(e.candidate):void 0,sdpOffer:E(e.sdpOffer)?se.fromJSON(e.sdpOffer):void 0,trackBitrates:E(e.trackBitrates)?w.fromJSON(e.trackBitrates):void 0,enableTrackVariant:E(e.enableTrackVariant)?ue.fromJSON(e.enableTrackVariant):void 0,disableTrackVariant:E(e.disableTrackVariant)?ce.fromJSON(e.disableTrackVariant):void 0,setTargetTrackVariant:E(e.setTargetTrackVariant)?fe.fromJSON(e.setTargetTrackVariant):void 0,unmuteTrack:E(e.unmuteTrack)?le.fromJSON(e.unmuteTrack):void 0}},toJSON(e){let t={};return e.connect!==void 0&&(t.connect=ae.toJSON(e.connect)),e.disconnect!==void 0&&(t.disconnect=re.toJSON(e.disconnect)),e.updateEndpointMetadata!==void 0&&(t.updateEndpointMetadata=ie.toJSON(e.updateEndpointMetadata)),e.updateTrackMetadata!==void 0&&(t.updateTrackMetadata=de.toJSON(e.updateTrackMetadata)),e.renegotiateTracks!==void 0&&(t.renegotiateTracks=oe.toJSON(e.renegotiateTracks)),e.candidate!==void 0&&(t.candidate=O.toJSON(e.candidate)),e.sdpOffer!==void 0&&(t.sdpOffer=se.toJSON(e.sdpOffer)),e.trackBitrates!==void 0&&(t.trackBitrates=w.toJSON(e.trackBitrates)),e.enableTrackVariant!==void 0&&(t.enableTrackVariant=ue.toJSON(e.enableTrackVariant)),e.disableTrackVariant!==void 0&&(t.disableTrackVariant=ce.toJSON(e.disableTrackVariant)),e.setTargetTrackVariant!==void 0&&(t.setTargetTrackVariant=fe.toJSON(e.setTargetTrackVariant)),e.unmuteTrack!==void 0&&(t.unmuteTrack=le.toJSON(e.unmuteTrack)),t},create(e){return B.fromPartial(e??{})},fromPartial(e){let t=yn();return t.connect=e.connect!==void 0&&e.connect!==null?ae.fromPartial(e.connect):void 0,t.disconnect=e.disconnect!==void 0&&e.disconnect!==null?re.fromPartial(e.disconnect):void 0,t.updateEndpointMetadata=e.updateEndpointMetadata!==void 0&&e.updateEndpointMetadata!==null?ie.fromPartial(e.updateEndpointMetadata):void 0,t.updateTrackMetadata=e.updateTrackMetadata!==void 0&&e.updateTrackMetadata!==null?de.fromPartial(e.updateTrackMetadata):void 0,t.renegotiateTracks=e.renegotiateTracks!==void 0&&e.renegotiateTracks!==null?oe.fromPartial(e.renegotiateTracks):void 0,t.candidate=e.candidate!==void 0&&e.candidate!==null?O.fromPartial(e.candidate):void 0,t.sdpOffer=e.sdpOffer!==void 0&&e.sdpOffer!==null?se.fromPartial(e.sdpOffer):void 0,t.trackBitrates=e.trackBitrates!==void 0&&e.trackBitrates!==null?w.fromPartial(e.trackBitrates):void 0,t.enableTrackVariant=e.enableTrackVariant!==void 0&&e.enableTrackVariant!==null?ue.fromPartial(e.enableTrackVariant):void 0,t.disableTrackVariant=e.disableTrackVariant!==void 0&&e.disableTrackVariant!==null?ce.fromPartial(e.disableTrackVariant):void 0,t.setTargetTrackVariant=e.setTargetTrackVariant!==void 0&&e.setTargetTrackVariant!==null?fe.fromPartial(e.setTargetTrackVariant):void 0,t.unmuteTrack=e.unmuteTrack!==void 0&&e.unmuteTrack!==null?le.fromPartial(e.unmuteTrack):void 0,t}};function gn(){return{variant:0,bitrate:0}}var ne={encode(e,t=new s){return e.variant!==0&&t.uint32(8).int32(e.variant),e.bitrate!==0&&t.uint32(16).int32(e.bitrate),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=gn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.variant=n.int32();continue}case 2:{if(a!==16)break;r.bitrate=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{variant:E(e.variant)?R(e.variant):0,bitrate:E(e.bitrate)?globalThis.Number(e.bitrate):0}},toJSON(e){let t={};return e.variant!==0&&(t.variant=N(e.variant)),e.bitrate!==0&&(t.bitrate=Math.round(e.bitrate)),t},create(e){return ne.fromPartial(e??{})},fromPartial(e){let t=gn();return t.variant=e.variant??0,t.bitrate=e.bitrate??0,t}};function Sn(){return{metadataJson:""}}var ae={encode(e,t=new s){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Sn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:E(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return ae.fromPartial(e??{})},fromPartial(e){let t=Sn();return t.metadataJson=e.metadataJson??"",t}};function _n(){return{}}var re={encode(e,t=new s){return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=_n();for(;n.pos<i;){let a=n.uint32();if(a>>>3,(a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{}},toJSON(e){return{}},create(e){return re.fromPartial(e??{})},fromPartial(e){return _n()}};function wn(){return{metadataJson:""}}var ie={encode(e,t=new s){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=wn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:E(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return ie.fromPartial(e??{})},fromPartial(e){let t=wn();return t.metadataJson=e.metadataJson??"",t}};function bn(){return{trackId:"",metadataJson:""}}var de={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.metadataJson!==""&&t.uint32(18).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=bn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==18)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:E(e.trackId)?globalThis.String(e.trackId):"",metadataJson:E(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return de.fromPartial(e??{})},fromPartial(e){let t=bn();return t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function On(){return{}}var oe={encode(e,t=new s){return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=On();for(;n.pos<i;){let a=n.uint32();if(a>>>3,(a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{}},toJSON(e){return{}},create(e){return oe.fromPartial(e??{})},fromPartial(e){return On()}};function Pn(){return{sdp:"",trackIdToMetadataJson:{},trackIdToBitrates:{},midToTrackId:{}}}var se={encode(e,t=new s){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.trackIdToMetadataJson).forEach(([n,i])=>{xt.encode({key:n,value:i},t.uint32(18).fork()).join()}),Object.entries(e.trackIdToBitrates).forEach(([n,i])=>{Jt.encode({key:n,value:i},t.uint32(26).fork()).join()}),Object.entries(e.midToTrackId).forEach(([n,i])=>{At.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Pn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.sdp=n.string();continue}case 2:{if(a!==18)break;let d=xt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToMetadataJson[d.key]=d.value);continue}case 3:{if(a!==26)break;let d=Jt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToBitrates[d.key]=d.value);continue}case 4:{if(a!==34)break;let d=At.decode(n,n.uint32());d.value!==void 0&&(r.midToTrackId[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{sdp:E(e.sdp)?globalThis.String(e.sdp):"",trackIdToMetadataJson:Nt(e.trackIdToMetadataJson)?Object.entries(e.trackIdToMetadataJson).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{},trackIdToBitrates:Nt(e.trackIdToBitrates)?Object.entries(e.trackIdToBitrates).reduce((t,[n,i])=>(t[n]=w.fromJSON(i),t),{}):{},midToTrackId:Nt(e.midToTrackId)?Object.entries(e.midToTrackId).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{}}},toJSON(e){let t={};if(e.sdp!==""&&(t.sdp=e.sdp),e.trackIdToMetadataJson){let n=Object.entries(e.trackIdToMetadataJson);n.length>0&&(t.trackIdToMetadataJson={},n.forEach(([i,r])=>{t.trackIdToMetadataJson[i]=r}))}if(e.trackIdToBitrates){let n=Object.entries(e.trackIdToBitrates);n.length>0&&(t.trackIdToBitrates={},n.forEach(([i,r])=>{t.trackIdToBitrates[i]=w.toJSON(r)}))}if(e.midToTrackId){let n=Object.entries(e.midToTrackId);n.length>0&&(t.midToTrackId={},n.forEach(([i,r])=>{t.midToTrackId[i]=r}))}return t},create(e){return se.fromPartial(e??{})},fromPartial(e){let t=Pn();return t.sdp=e.sdp??"",t.trackIdToMetadataJson=Object.entries(e.trackIdToMetadataJson??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t.trackIdToBitrates=Object.entries(e.trackIdToBitrates??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=w.fromPartial(r)),n),{}),t.midToTrackId=Object.entries(e.midToTrackId??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t}};function Cn(){return{key:"",value:""}}var xt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Cn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:E(e.key)?globalThis.String(e.key):"",value:E(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return xt.fromPartial(e??{})},fromPartial(e){let t=Cn();return t.key=e.key??"",t.value=e.value??"",t}};function Rn(){return{key:"",value:void 0}}var Jt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&w.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Rn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=w.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:E(e.key)?globalThis.String(e.key):"",value:E(e.value)?w.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=w.toJSON(e.value)),t},create(e){return Jt.fromPartial(e??{})},fromPartial(e){let t=Rn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?w.fromPartial(e.value):void 0,t}};function Nn(){return{key:"",value:""}}var At={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Nn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:E(e.key)?globalThis.String(e.key):"",value:E(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return At.fromPartial(e??{})},fromPartial(e){let t=Nn();return t.key=e.key??"",t.value=e.value??"",t}};function xn(){return{trackId:"",variantBitrates:[]}}var w={encode(e,t=new s){e.trackId!==""&&t.uint32(10).string(e.trackId);for(let n of e.variantBitrates)ne.encode(n,t.uint32(18).fork()).join();return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=xn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==18)break;r.variantBitrates.push(ne.decode(n,n.uint32()));continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:E(e.trackId)?globalThis.String(e.trackId):"",variantBitrates:globalThis.Array.isArray(e?.variantBitrates)?e.variantBitrates.map(t=>ne.fromJSON(t)):[]}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variantBitrates?.length&&(t.variantBitrates=e.variantBitrates.map(n=>ne.toJSON(n))),t},create(e){return w.fromPartial(e??{})},fromPartial(e){let t=xn();return t.trackId=e.trackId??"",t.variantBitrates=e.variantBitrates?.map(n=>ne.fromPartial(n))||[],t}};function Jn(){return{trackId:"",variant:0}}var ce={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.variant!==0&&t.uint32(16).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Jn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:E(e.trackId)?globalThis.String(e.trackId):"",variant:E(e.variant)?R(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=N(e.variant)),t},create(e){return ce.fromPartial(e??{})},fromPartial(e){let t=Jn();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function An(){return{trackId:"",variant:0}}var ue={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.variant!==0&&t.uint32(16).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=An();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:E(e.trackId)?globalThis.String(e.trackId):"",variant:E(e.variant)?R(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=N(e.variant)),t},create(e){return ue.fromPartial(e??{})},fromPartial(e){let t=An();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Bn(){return{trackId:"",variant:0}}var fe={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.variant!==0&&t.uint32(16).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Bn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:E(e.trackId)?globalThis.String(e.trackId):"",variant:E(e.variant)?R(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=N(e.variant)),t},create(e){return fe.fromPartial(e??{})},fromPartial(e){let t=Bn();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Dn(){return{trackId:""}}var le={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Dn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:E(e.trackId)?globalThis.String(e.trackId):""}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),t},create(e){return le.fromPartial(e??{})},fromPartial(e){let t=Dn();return t.trackId=e.trackId??"",t}};function Nt(e){return typeof e=="object"&&e!==null}function E(e){return e!=null}function Xr(e){switch(e){case 0:case"STATUS_UNSPECIFIED":return 0;case 1:case"STATUS_SILENCE":return 1;case 2:case"STATUS_SPEECH":return 2;case-1:case"UNRECOGNIZED":default:return-1}}function jr(e){switch(e){case 0:return"STATUS_UNSPECIFIED";case 1:return"STATUS_SILENCE";case 2:return"STATUS_SPEECH";case-1:default:return"UNRECOGNIZED"}}function Un(){return{endpointUpdated:void 0,trackUpdated:void 0,tracksAdded:void 0,tracksRemoved:void 0,endpointAdded:void 0,endpointRemoved:void 0,connected:void 0,error:void 0,offerData:void 0,candidate:void 0,sdpAnswer:void 0,vadNotification:void 0,trackVariantSwitched:void 0,trackVariantDisabled:void 0,trackVariantEnabled:void 0}}var U={encode(e,t=new s){return e.endpointUpdated!==void 0&&he.encode(e.endpointUpdated,t.uint32(10).fork()).join(),e.trackUpdated!==void 0&&ve.encode(e.trackUpdated,t.uint32(18).fork()).join(),e.tracksAdded!==void 0&&Te.encode(e.tracksAdded,t.uint32(26).fork()).join(),e.tracksRemoved!==void 0&&Ee.encode(e.tracksRemoved,t.uint32(34).fork()).join(),e.endpointAdded!==void 0&&me.encode(e.endpointAdded,t.uint32(42).fork()).join(),e.endpointRemoved!==void 0&&Me.encode(e.endpointRemoved,t.uint32(50).fork()).join(),e.connected!==void 0&&Ie.encode(e.connected,t.uint32(58).fork()).join(),e.error!==void 0&&ye.encode(e.error,t.uint32(66).fork()).join(),e.offerData!==void 0&&ge.encode(e.offerData,t.uint32(74).fork()).join(),e.candidate!==void 0&&O.encode(e.candidate,t.uint32(82).fork()).join(),e.sdpAnswer!==void 0&&_e.encode(e.sdpAnswer,t.uint32(90).fork()).join(),e.vadNotification!==void 0&&we.encode(e.vadNotification,t.uint32(98).fork()).join(),e.trackVariantSwitched!==void 0&&be.encode(e.trackVariantSwitched,t.uint32(106).fork()).join(),e.trackVariantDisabled!==void 0&&Oe.encode(e.trackVariantDisabled,t.uint32(114).fork()).join(),e.trackVariantEnabled!==void 0&&Pe.encode(e.trackVariantEnabled,t.uint32(122).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Un();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointUpdated=he.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.trackUpdated=ve.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.tracksAdded=Te.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.tracksRemoved=Ee.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.endpointAdded=me.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.endpointRemoved=Me.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.connected=Ie.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.error=ye.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.offerData=ge.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.candidate=O.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.sdpAnswer=_e.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.vadNotification=we.decode(n,n.uint32());continue}case 13:{if(a!==106)break;r.trackVariantSwitched=be.decode(n,n.uint32());continue}case 14:{if(a!==114)break;r.trackVariantDisabled=Oe.decode(n,n.uint32());continue}case 15:{if(a!==122)break;r.trackVariantEnabled=Pe.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointUpdated:l(e.endpointUpdated)?he.fromJSON(e.endpointUpdated):void 0,trackUpdated:l(e.trackUpdated)?ve.fromJSON(e.trackUpdated):void 0,tracksAdded:l(e.tracksAdded)?Te.fromJSON(e.tracksAdded):void 0,tracksRemoved:l(e.tracksRemoved)?Ee.fromJSON(e.tracksRemoved):void 0,endpointAdded:l(e.endpointAdded)?me.fromJSON(e.endpointAdded):void 0,endpointRemoved:l(e.endpointRemoved)?Me.fromJSON(e.endpointRemoved):void 0,connected:l(e.connected)?Ie.fromJSON(e.connected):void 0,error:l(e.error)?ye.fromJSON(e.error):void 0,offerData:l(e.offerData)?ge.fromJSON(e.offerData):void 0,candidate:l(e.candidate)?O.fromJSON(e.candidate):void 0,sdpAnswer:l(e.sdpAnswer)?_e.fromJSON(e.sdpAnswer):void 0,vadNotification:l(e.vadNotification)?we.fromJSON(e.vadNotification):void 0,trackVariantSwitched:l(e.trackVariantSwitched)?be.fromJSON(e.trackVariantSwitched):void 0,trackVariantDisabled:l(e.trackVariantDisabled)?Oe.fromJSON(e.trackVariantDisabled):void 0,trackVariantEnabled:l(e.trackVariantEnabled)?Pe.fromJSON(e.trackVariantEnabled):void 0}},toJSON(e){let t={};return e.endpointUpdated!==void 0&&(t.endpointUpdated=he.toJSON(e.endpointUpdated)),e.trackUpdated!==void 0&&(t.trackUpdated=ve.toJSON(e.trackUpdated)),e.tracksAdded!==void 0&&(t.tracksAdded=Te.toJSON(e.tracksAdded)),e.tracksRemoved!==void 0&&(t.tracksRemoved=Ee.toJSON(e.tracksRemoved)),e.endpointAdded!==void 0&&(t.endpointAdded=me.toJSON(e.endpointAdded)),e.endpointRemoved!==void 0&&(t.endpointRemoved=Me.toJSON(e.endpointRemoved)),e.connected!==void 0&&(t.connected=Ie.toJSON(e.connected)),e.error!==void 0&&(t.error=ye.toJSON(e.error)),e.offerData!==void 0&&(t.offerData=ge.toJSON(e.offerData)),e.candidate!==void 0&&(t.candidate=O.toJSON(e.candidate)),e.sdpAnswer!==void 0&&(t.sdpAnswer=_e.toJSON(e.sdpAnswer)),e.vadNotification!==void 0&&(t.vadNotification=we.toJSON(e.vadNotification)),e.trackVariantSwitched!==void 0&&(t.trackVariantSwitched=be.toJSON(e.trackVariantSwitched)),e.trackVariantDisabled!==void 0&&(t.trackVariantDisabled=Oe.toJSON(e.trackVariantDisabled)),e.trackVariantEnabled!==void 0&&(t.trackVariantEnabled=Pe.toJSON(e.trackVariantEnabled)),t},create(e){return U.fromPartial(e??{})},fromPartial(e){let t=Un();return t.endpointUpdated=e.endpointUpdated!==void 0&&e.endpointUpdated!==null?he.fromPartial(e.endpointUpdated):void 0,t.trackUpdated=e.trackUpdated!==void 0&&e.trackUpdated!==null?ve.fromPartial(e.trackUpdated):void 0,t.tracksAdded=e.tracksAdded!==void 0&&e.tracksAdded!==null?Te.fromPartial(e.tracksAdded):void 0,t.tracksRemoved=e.tracksRemoved!==void 0&&e.tracksRemoved!==null?Ee.fromPartial(e.tracksRemoved):void 0,t.endpointAdded=e.endpointAdded!==void 0&&e.endpointAdded!==null?me.fromPartial(e.endpointAdded):void 0,t.endpointRemoved=e.endpointRemoved!==void 0&&e.endpointRemoved!==null?Me.fromPartial(e.endpointRemoved):void 0,t.connected=e.connected!==void 0&&e.connected!==null?Ie.fromPartial(e.connected):void 0,t.error=e.error!==void 0&&e.error!==null?ye.fromPartial(e.error):void 0,t.offerData=e.offerData!==void 0&&e.offerData!==null?ge.fromPartial(e.offerData):void 0,t.candidate=e.candidate!==void 0&&e.candidate!==null?O.fromPartial(e.candidate):void 0,t.sdpAnswer=e.sdpAnswer!==void 0&&e.sdpAnswer!==null?_e.fromPartial(e.sdpAnswer):void 0,t.vadNotification=e.vadNotification!==void 0&&e.vadNotification!==null?we.fromPartial(e.vadNotification):void 0,t.trackVariantSwitched=e.trackVariantSwitched!==void 0&&e.trackVariantSwitched!==null?be.fromPartial(e.trackVariantSwitched):void 0,t.trackVariantDisabled=e.trackVariantDisabled!==void 0&&e.trackVariantDisabled!==null?Oe.fromPartial(e.trackVariantDisabled):void 0,t.trackVariantEnabled=e.trackVariantEnabled!==void 0&&e.trackVariantEnabled!==null?Pe.fromPartial(e.trackVariantEnabled):void 0,t}};function Vn(){return{metadataJson:"",simulcastConfig:void 0}}var y={encode(e,t=new s){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),e.simulcastConfig!==void 0&&ke.encode(e.simulcastConfig,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Vn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.metadataJson=n.string();continue}case 2:{if(a!==18)break;r.simulcastConfig=ke.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:l(e.metadataJson)?globalThis.String(e.metadataJson):"",simulcastConfig:l(e.simulcastConfig)?ke.fromJSON(e.simulcastConfig):void 0}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),e.simulcastConfig!==void 0&&(t.simulcastConfig=ke.toJSON(e.simulcastConfig)),t},create(e){return y.fromPartial(e??{})},fromPartial(e){let t=Vn();return t.metadataJson=e.metadataJson??"",t.simulcastConfig=e.simulcastConfig!==void 0&&e.simulcastConfig!==null?ke.fromPartial(e.simulcastConfig):void 0,t}};function Ln(){return{enabled:!1,enabledVariants:[],disabledVariants:[]}}var ke={encode(e,t=new s){e.enabled!==!1&&t.uint32(8).bool(e.enabled),t.uint32(18).fork();for(let n of e.enabledVariants)t.int32(n);t.join(),t.uint32(26).fork();for(let n of e.disabledVariants)t.int32(n);return t.join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ln();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.enabled=n.bool();continue}case 2:{if(a===16){r.enabledVariants.push(n.int32());continue}if(a===18){let d=n.uint32()+n.pos;for(;n.pos<d;)r.enabledVariants.push(n.int32());continue}break}case 3:{if(a===24){r.disabledVariants.push(n.int32());continue}if(a===26){let d=n.uint32()+n.pos;for(;n.pos<d;)r.disabledVariants.push(n.int32());continue}break}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{enabled:l(e.enabled)?globalThis.Boolean(e.enabled):!1,enabledVariants:globalThis.Array.isArray(e?.enabledVariants)?e.enabledVariants.map(t=>R(t)):[],disabledVariants:globalThis.Array.isArray(e?.disabledVariants)?e.disabledVariants.map(t=>R(t)):[]}},toJSON(e){let t={};return e.enabled!==!1&&(t.enabled=e.enabled),e.enabledVariants?.length&&(t.enabledVariants=e.enabledVariants.map(n=>N(n))),e.disabledVariants?.length&&(t.disabledVariants=e.disabledVariants.map(n=>N(n))),t},create(e){return ke.fromPartial(e??{})},fromPartial(e){let t=Ln();return t.enabled=e.enabled??!1,t.enabledVariants=e.enabledVariants?.map(n=>n)||[],t.disabledVariants=e.disabledVariants?.map(n=>n)||[],t}};function Fn(){return{endpointType:"",metadataJson:"",trackIdToTrack:{}}}var D={encode(e,t=new s){return e.endpointType!==""&&t.uint32(18).string(e.endpointType),e.metadataJson!==""&&t.uint32(26).string(e.metadataJson),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{Bt.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Fn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 2:{if(a!==18)break;r.endpointType=n.string();continue}case 3:{if(a!==26)break;r.metadataJson=n.string();continue}case 4:{if(a!==34)break;let d=Bt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToTrack[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointType:l(e.endpointType)?globalThis.String(e.endpointType):"",metadataJson:l(e.metadataJson)?globalThis.String(e.metadataJson):"",trackIdToTrack:Tt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=y.fromJSON(i),t),{}):{}}},toJSON(e){let t={};if(e.endpointType!==""&&(t.endpointType=e.endpointType),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),e.trackIdToTrack){let n=Object.entries(e.trackIdToTrack);n.length>0&&(t.trackIdToTrack={},n.forEach(([i,r])=>{t.trackIdToTrack[i]=y.toJSON(r)}))}return t},create(e){return D.fromPartial(e??{})},fromPartial(e){let t=Fn();return t.endpointType=e.endpointType??"",t.metadataJson=e.metadataJson??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=y.fromPartial(r)),n),{}),t}};function Wn(){return{key:"",value:void 0}}var Bt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&y.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Wn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=y.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:l(e.key)?globalThis.String(e.key):"",value:l(e.value)?y.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=y.toJSON(e.value)),t},create(e){return Bt.fromPartial(e??{})},fromPartial(e){let t=Wn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?y.fromPartial(e.value):void 0,t}};function $n(){return{credential:"",urls:[],username:""}}var pe={encode(e,t=new s){e.credential!==""&&t.uint32(10).string(e.credential);for(let n of e.urls)t.uint32(18).string(n);return e.username!==""&&t.uint32(26).string(e.username),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=$n();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.credential=n.string();continue}case 2:{if(a!==18)break;r.urls.push(n.string());continue}case 3:{if(a!==26)break;r.username=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{credential:l(e.credential)?globalThis.String(e.credential):"",urls:globalThis.Array.isArray(e?.urls)?e.urls.map(t=>globalThis.String(t)):[],username:l(e.username)?globalThis.String(e.username):""}},toJSON(e){let t={};return e.credential!==""&&(t.credential=e.credential),e.urls?.length&&(t.urls=e.urls),e.username!==""&&(t.username=e.username),t},create(e){return pe.fromPartial(e??{})},fromPartial(e){let t=$n();return t.credential=e.credential??"",t.urls=e.urls?.map(n=>n)||[],t.username=e.username??"",t}};function Hn(){return{endpointId:"",metadataJson:""}}var he={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.metadataJson!==""&&t.uint32(18).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Hn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:l(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return he.fromPartial(e??{})},fromPartial(e){let t=Hn();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function qn(){return{endpointId:"",trackId:"",metadataJson:""}}var ve={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.metadataJson!==""&&t.uint32(26).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=qn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==26)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",trackId:l(e.trackId)?globalThis.String(e.trackId):"",metadataJson:l(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return ve.fromPartial(e??{})},fromPartial(e){let t=qn();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function Gn(){return{endpointId:"",trackIdToTrack:{}}}var Te={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{Dt.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Gn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;let d=Dt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToTrack[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",trackIdToTrack:Tt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=y.fromJSON(i),t),{}):{}}},toJSON(e){let t={};if(e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackIdToTrack){let n=Object.entries(e.trackIdToTrack);n.length>0&&(t.trackIdToTrack={},n.forEach(([i,r])=>{t.trackIdToTrack[i]=y.toJSON(r)}))}return t},create(e){return Te.fromPartial(e??{})},fromPartial(e){let t=Gn();return t.endpointId=e.endpointId??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=y.fromPartial(r)),n),{}),t}};function Kn(){return{key:"",value:void 0}}var Dt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&y.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Kn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=y.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:l(e.key)?globalThis.String(e.key):"",value:l(e.value)?y.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=y.toJSON(e.value)),t},create(e){return Dt.fromPartial(e??{})},fromPartial(e){let t=Kn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?y.fromPartial(e.value):void 0,t}};function zn(){return{endpointId:"",trackIds:[]}}var Ee={encode(e,t=new s){e.endpointId!==""&&t.uint32(10).string(e.endpointId);for(let n of e.trackIds)t.uint32(18).string(n);return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=zn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackIds.push(n.string());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",trackIds:globalThis.Array.isArray(e?.trackIds)?e.trackIds.map(t=>globalThis.String(t)):[]}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackIds?.length&&(t.trackIds=e.trackIds),t},create(e){return Ee.fromPartial(e??{})},fromPartial(e){let t=zn();return t.endpointId=e.endpointId??"",t.trackIds=e.trackIds?.map(n=>n)||[],t}};function Zn(){return{endpointId:"",metadataJson:""}}var me={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.metadataJson!==""&&t.uint32(18).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Zn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:l(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return me.fromPartial(e??{})},fromPartial(e){let t=Zn();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function Yn(){return{endpointId:"",endpointIdToEndpoint:{},iceServers:[]}}var Ie={encode(e,t=new s){e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.endpointIdToEndpoint).forEach(([n,i])=>{Ut.encode({key:n,value:i},t.uint32(18).fork()).join()});for(let n of e.iceServers)pe.encode(n,t.uint32(26).fork()).join();return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Yn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;let d=Ut.decode(n,n.uint32());d.value!==void 0&&(r.endpointIdToEndpoint[d.key]=d.value);continue}case 3:{if(a!==26)break;r.iceServers.push(pe.decode(n,n.uint32()));continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",endpointIdToEndpoint:Tt(e.endpointIdToEndpoint)?Object.entries(e.endpointIdToEndpoint).reduce((t,[n,i])=>(t[n]=D.fromJSON(i),t),{}):{},iceServers:globalThis.Array.isArray(e?.iceServers)?e.iceServers.map(t=>pe.fromJSON(t)):[]}},toJSON(e){let t={};if(e.endpointId!==""&&(t.endpointId=e.endpointId),e.endpointIdToEndpoint){let n=Object.entries(e.endpointIdToEndpoint);n.length>0&&(t.endpointIdToEndpoint={},n.forEach(([i,r])=>{t.endpointIdToEndpoint[i]=D.toJSON(r)}))}return e.iceServers?.length&&(t.iceServers=e.iceServers.map(n=>pe.toJSON(n))),t},create(e){return Ie.fromPartial(e??{})},fromPartial(e){let t=Yn();return t.endpointId=e.endpointId??"",t.endpointIdToEndpoint=Object.entries(e.endpointIdToEndpoint??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=D.fromPartial(r)),n),{}),t.iceServers=e.iceServers?.map(n=>pe.fromPartial(n))||[],t}};function Qn(){return{key:"",value:void 0}}var Ut={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&D.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Qn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=D.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:l(e.key)?globalThis.String(e.key):"",value:l(e.value)?D.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=D.toJSON(e.value)),t},create(e){return Ut.fromPartial(e??{})},fromPartial(e){let t=Qn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?D.fromPartial(e.value):void 0,t}};function Xn(){return{endpointId:""}}var Me={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Xn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),t},create(e){return Me.fromPartial(e??{})},fromPartial(e){let t=Xn();return t.endpointId=e.endpointId??"",t}};function jn(){return{message:""}}var ye={encode(e,t=new s){return e.message!==""&&t.uint32(10).string(e.message),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=jn();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.message=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{message:l(e.message)?globalThis.String(e.message):""}},toJSON(e){let t={};return e.message!==""&&(t.message=e.message),t},create(e){return ye.fromPartial(e??{})},fromPartial(e){let t=jn();return t.message=e.message??"",t}};function ea(){return{tracksTypes:void 0}}var ge={encode(e,t=new s){return e.tracksTypes!==void 0&&Se.encode(e.tracksTypes,t.uint32(10).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ea();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.tracksTypes=Se.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{tracksTypes:l(e.tracksTypes)?Se.fromJSON(e.tracksTypes):void 0}},toJSON(e){let t={};return e.tracksTypes!==void 0&&(t.tracksTypes=Se.toJSON(e.tracksTypes)),t},create(e){return ge.fromPartial(e??{})},fromPartial(e){let t=ea();return t.tracksTypes=e.tracksTypes!==void 0&&e.tracksTypes!==null?Se.fromPartial(e.tracksTypes):void 0,t}};function ta(){return{audio:0,video:0}}var Se={encode(e,t=new s){return e.audio!==0&&t.uint32(8).int32(e.audio),e.video!==0&&t.uint32(16).int32(e.video),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ta();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.audio=n.int32();continue}case 2:{if(a!==16)break;r.video=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{audio:l(e.audio)?globalThis.Number(e.audio):0,video:l(e.video)?globalThis.Number(e.video):0}},toJSON(e){let t={};return e.audio!==0&&(t.audio=Math.round(e.audio)),e.video!==0&&(t.video=Math.round(e.video)),t},create(e){return Se.fromPartial(e??{})},fromPartial(e){let t=ta();return t.audio=e.audio??0,t.video=e.video??0,t}};function na(){return{sdp:"",midToTrackId:{}}}var _e={encode(e,t=new s){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.midToTrackId).forEach(([n,i])=>{Vt.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=na();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.sdp=n.string();continue}case 2:{if(a!==18)break;let d=Vt.decode(n,n.uint32());d.value!==void 0&&(r.midToTrackId[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{sdp:l(e.sdp)?globalThis.String(e.sdp):"",midToTrackId:Tt(e.midToTrackId)?Object.entries(e.midToTrackId).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{}}},toJSON(e){let t={};if(e.sdp!==""&&(t.sdp=e.sdp),e.midToTrackId){let n=Object.entries(e.midToTrackId);n.length>0&&(t.midToTrackId={},n.forEach(([i,r])=>{t.midToTrackId[i]=r}))}return t},create(e){return _e.fromPartial(e??{})},fromPartial(e){let t=na();return t.sdp=e.sdp??"",t.midToTrackId=Object.entries(e.midToTrackId??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t}};function aa(){return{key:"",value:""}}var Vt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=aa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:l(e.key)?globalThis.String(e.key):"",value:l(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return Vt.fromPartial(e??{})},fromPartial(e){let t=aa();return t.key=e.key??"",t.value=e.value??"",t}};function ra(){return{trackId:"",status:0}}var we={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.status!==0&&t.uint32(16).int32(e.status),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ra();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.status=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:l(e.trackId)?globalThis.String(e.trackId):"",status:l(e.status)?Xr(e.status):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.status!==0&&(t.status=jr(e.status)),t},create(e){return we.fromPartial(e??{})},fromPartial(e){let t=ra();return t.trackId=e.trackId??"",t.status=e.status??0,t}};function ia(){return{endpointId:"",trackId:"",variant:0}}var be={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.variant!==0&&t.uint32(24).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ia();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==24)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",trackId:l(e.trackId)?globalThis.String(e.trackId):"",variant:l(e.variant)?R(e.variant):0}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=N(e.variant)),t},create(e){return be.fromPartial(e??{})},fromPartial(e){let t=ia();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function da(){return{endpointId:"",trackId:"",variant:0}}var Oe={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.variant!==0&&t.uint32(24).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=da();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==24)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",trackId:l(e.trackId)?globalThis.String(e.trackId):"",variant:l(e.variant)?R(e.variant):0}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=N(e.variant)),t},create(e){return Oe.fromPartial(e??{})},fromPartial(e){let t=da();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function oa(){return{endpointId:"",trackId:"",variant:0}}var Pe={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.variant!==0&&t.uint32(24).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=oa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==24)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:l(e.endpointId)?globalThis.String(e.endpointId):"",trackId:l(e.trackId)?globalThis.String(e.trackId):"",variant:l(e.variant)?R(e.variant):0}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=N(e.variant)),t},create(e){return Pe.fromPartial(e??{})},fromPartial(e){let t=oa();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Tt(e){return typeof e=="object"&&e!==null}function l(e){return e!=null}function ei(e){switch(e){case 0:case"ROOM_TYPE_UNSPECIFIED":return 0;case 1:case"ROOM_TYPE_CONFERENCE":return 1;case 2:case"ROOM_TYPE_AUDIO_ONLY":return 2;case 3:case"ROOM_TYPE_LIVESTREAM":return 3;case-1:case"UNRECOGNIZED":default:return-1}}function ti(e){switch(e){case 0:return"ROOM_TYPE_UNSPECIFIED";case 1:return"ROOM_TYPE_CONFERENCE";case 2:return"ROOM_TYPE_AUDIO_ONLY";case 3:return"ROOM_TYPE_LIVESTREAM";case-1:default:return"UNRECOGNIZED"}}function ni(e){switch(e){case 0:case"STATUS_UNSPECIFIED":return 0;case 1:case"STATUS_UP_TO_DATE":return 1;case 2:case"STATUS_DEPRECATED":return 2;case 3:case"STATUS_UNSUPPORTED":return 3;case-1:case"UNRECOGNIZED":default:return-1}}function ai(e){switch(e){case 0:return"STATUS_UNSPECIFIED";case 1:return"STATUS_UP_TO_DATE";case 2:return"STATUS_DEPRECATED";case 3:return"STATUS_UNSUPPORTED";case-1:default:return"UNRECOGNIZED"}}function sa(){return{authenticated:void 0,authRequest:void 0,mediaEvent:void 0,rtcStatsReport:void 0,peerMediaEvent:void 0,serverMediaEvent:void 0}}var Ae={encode(e,t=new s){return e.authenticated!==void 0&&Re.encode(e.authenticated,t.uint32(10).fork()).join(),e.authRequest!==void 0&&Ne.encode(e.authRequest,t.uint32(18).fork()).join(),e.mediaEvent!==void 0&&Je.encode(e.mediaEvent,t.uint32(26).fork()).join(),e.rtcStatsReport!==void 0&&xe.encode(e.rtcStatsReport,t.uint32(34).fork()).join(),e.peerMediaEvent!==void 0&&B.encode(e.peerMediaEvent,t.uint32(42).fork()).join(),e.serverMediaEvent!==void 0&&U.encode(e.serverMediaEvent,t.uint32(50).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=sa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.authenticated=Re.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.authRequest=Ne.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.mediaEvent=Je.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.rtcStatsReport=xe.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.peerMediaEvent=B.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.serverMediaEvent=U.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{authenticated:b(e.authenticated)?Re.fromJSON(e.authenticated):void 0,authRequest:b(e.authRequest)?Ne.fromJSON(e.authRequest):void 0,mediaEvent:b(e.mediaEvent)?Je.fromJSON(e.mediaEvent):void 0,rtcStatsReport:b(e.rtcStatsReport)?xe.fromJSON(e.rtcStatsReport):void 0,peerMediaEvent:b(e.peerMediaEvent)?B.fromJSON(e.peerMediaEvent):void 0,serverMediaEvent:b(e.serverMediaEvent)?U.fromJSON(e.serverMediaEvent):void 0}},toJSON(e){let t={};return e.authenticated!==void 0&&(t.authenticated=Re.toJSON(e.authenticated)),e.authRequest!==void 0&&(t.authRequest=Ne.toJSON(e.authRequest)),e.mediaEvent!==void 0&&(t.mediaEvent=Je.toJSON(e.mediaEvent)),e.rtcStatsReport!==void 0&&(t.rtcStatsReport=xe.toJSON(e.rtcStatsReport)),e.peerMediaEvent!==void 0&&(t.peerMediaEvent=B.toJSON(e.peerMediaEvent)),e.serverMediaEvent!==void 0&&(t.serverMediaEvent=U.toJSON(e.serverMediaEvent)),t},create(e){return Ae.fromPartial(e??{})},fromPartial(e){let t=sa();return t.authenticated=e.authenticated!==void 0&&e.authenticated!==null?Re.fromPartial(e.authenticated):void 0,t.authRequest=e.authRequest!==void 0&&e.authRequest!==null?Ne.fromPartial(e.authRequest):void 0,t.mediaEvent=e.mediaEvent!==void 0&&e.mediaEvent!==null?Je.fromPartial(e.mediaEvent):void 0,t.rtcStatsReport=e.rtcStatsReport!==void 0&&e.rtcStatsReport!==null?xe.fromPartial(e.rtcStatsReport):void 0,t.peerMediaEvent=e.peerMediaEvent!==void 0&&e.peerMediaEvent!==null?B.fromPartial(e.peerMediaEvent):void 0,t.serverMediaEvent=e.serverMediaEvent!==void 0&&e.serverMediaEvent!==null?U.fromPartial(e.serverMediaEvent):void 0,t}};function ca(){return{status:0,message:""}}var Ce={encode(e,t=new s){return e.status!==0&&t.uint32(8).int32(e.status),e.message!==""&&t.uint32(18).string(e.message),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ca();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.status=n.int32();continue}case 2:{if(a!==18)break;r.message=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{status:b(e.status)?ni(e.status):0,message:b(e.message)?globalThis.String(e.message):""}},toJSON(e){let t={};return e.status!==0&&(t.status=ai(e.status)),e.message!==""&&(t.message=e.message),t},create(e){return Ce.fromPartial(e??{})},fromPartial(e){let t=ca();return t.status=e.status??0,t.message=e.message??"",t}};function ua(){return{roomType:0,sdkDeprecation:void 0}}var Re={encode(e,t=new s){return e.roomType!==0&&t.uint32(8).int32(e.roomType),e.sdkDeprecation!==void 0&&Ce.encode(e.sdkDeprecation,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ua();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.roomType=n.int32();continue}case 2:{if(a!==18)break;r.sdkDeprecation=Ce.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{roomType:b(e.roomType)?ei(e.roomType):0,sdkDeprecation:b(e.sdkDeprecation)?Ce.fromJSON(e.sdkDeprecation):void 0}},toJSON(e){let t={};return e.roomType!==0&&(t.roomType=ti(e.roomType)),e.sdkDeprecation!==void 0&&(t.sdkDeprecation=Ce.toJSON(e.sdkDeprecation)),t},create(e){return Re.fromPartial(e??{})},fromPartial(e){let t=ua();return t.roomType=e.roomType??0,t.sdkDeprecation=e.sdkDeprecation!==void 0&&e.sdkDeprecation!==null?Ce.fromPartial(e.sdkDeprecation):void 0,t}};function fa(){return{token:"",sdkVersion:""}}var Ne={encode(e,t=new s){return e.token!==""&&t.uint32(10).string(e.token),e.sdkVersion!==""&&t.uint32(18).string(e.sdkVersion),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=fa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.token=n.string();continue}case 2:{if(a!==18)break;r.sdkVersion=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{token:b(e.token)?globalThis.String(e.token):"",sdkVersion:b(e.sdkVersion)?globalThis.String(e.sdkVersion):""}},toJSON(e){let t={};return e.token!==""&&(t.token=e.token),e.sdkVersion!==""&&(t.sdkVersion=e.sdkVersion),t},create(e){return Ne.fromPartial(e??{})},fromPartial(e){let t=fa();return t.token=e.token??"",t.sdkVersion=e.sdkVersion??"",t}};function la(){return{data:""}}var xe={encode(e,t=new s){return e.data!==""&&t.uint32(10).string(e.data),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=la();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.data=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{data:b(e.data)?globalThis.String(e.data):""}},toJSON(e){let t={};return e.data!==""&&(t.data=e.data),t},create(e){return xe.fromPartial(e??{})},fromPartial(e){let t=la();return t.data=e.data??"",t}};function ka(){return{data:""}}var Je={encode(e,t=new s){return e.data!==""&&t.uint32(10).string(e.data),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ka();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.data=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{data:b(e.data)?globalThis.String(e.data):""}},toJSON(e){let t={};return e.data!==""&&(t.data=e.data),t},create(e){return Je.fromPartial(e??{})},fromPartial(e){let t=ka();return t.data=e.data??"",t}};function b(e){return e!=null}var hr=kt(ct(),1);var g=[];for(let e=0;e<256;++e)g.push((e+256).toString(16).slice(1));function Sa(e,t=0){return(g[e[t+0]]+g[e[t+1]]+g[e[t+2]]+g[e[t+3]]+"-"+g[e[t+4]]+g[e[t+5]]+"-"+g[e[t+6]]+g[e[t+7]]+"-"+g[e[t+8]]+g[e[t+9]]+"-"+g[e[t+10]]+g[e[t+11]]+g[e[t+12]]+g[e[t+13]]+g[e[t+14]]+g[e[t+15]]).toLowerCase()}var Ft,ui=new Uint8Array(16);function Wt(){if(!Ft){if(typeof crypto>"u"||!crypto.getRandomValues)throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");Ft=crypto.getRandomValues.bind(crypto)}return Ft(ui)}var fi=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),$t={randomUUID:fi};function li(e,t,n){if($t.randomUUID&&!t&&!e)return $t.randomUUID();e=e||{};let i=e.random??e.rng?.()??Wt();if(i.length<16)throw new Error("Random bytes length must be >= 16");if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){if(n=n||0,n<0||n+16>t.length)throw new RangeError(`UUID byte range ${n}:${n+15} is out of buffer bounds`);for(let r=0;r<16;++r)t[n+r]=i[r];return t}return Sa(i)}var Ht=li;var vr=kt(ct(),1);var mr=kt(ct(),1),qt="[FISHJAM]",an=e=>({debug:(t,...n)=>{e&&console.debug(qt,t,...n)},warn:(t,...n)=>{e&&console.warn(qt,t,...n)},error:(t,...n)=>{e&&console.error(qt,t,...n)}}),ki=(e=>(e[e.VARIANT_UNSPECIFIED=0]="VARIANT_UNSPECIFIED",e[e.VARIANT_LOW=1]="VARIANT_LOW",e[e.VARIANT_MEDIUM=2]="VARIANT_MEDIUM",e[e.VARIANT_HIGH=3]="VARIANT_HIGH",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED",e))(ki||{});function L(e){switch(e){case 0:case"VARIANT_UNSPECIFIED":return 0;case 1:case"VARIANT_LOW":return 1;case 2:case"VARIANT_MEDIUM":return 2;case 3:case"VARIANT_HIGH":return 3;case-1:case"UNRECOGNIZED":default:return-1}}function F(e){switch(e){case 0:return"VARIANT_UNSPECIFIED";case 1:return"VARIANT_LOW";case 2:return"VARIANT_MEDIUM";case 3:return"VARIANT_HIGH";case-1:default:return"UNRECOGNIZED"}}function _a(){return{candidate:"",sdpMLineIndex:0,sdpMid:"",usernameFragment:""}}var P={encode(e,t=new s){return e.candidate!==""&&t.uint32(10).string(e.candidate),e.sdpMLineIndex!==0&&t.uint32(16).int32(e.sdpMLineIndex),e.sdpMid!==""&&t.uint32(26).string(e.sdpMid),e.usernameFragment!==""&&t.uint32(34).string(e.usernameFragment),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=_a();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.candidate=n.string();continue}case 2:{if(a!==16)break;r.sdpMLineIndex=n.int32();continue}case 3:{if(a!==26)break;r.sdpMid=n.string();continue}case 4:{if(a!==34)break;r.usernameFragment=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{candidate:It(e.candidate)?globalThis.String(e.candidate):"",sdpMLineIndex:It(e.sdpMLineIndex)?globalThis.Number(e.sdpMLineIndex):0,sdpMid:It(e.sdpMid)?globalThis.String(e.sdpMid):"",usernameFragment:It(e.usernameFragment)?globalThis.String(e.usernameFragment):""}},toJSON(e){let t={};return e.candidate!==""&&(t.candidate=e.candidate),e.sdpMLineIndex!==0&&(t.sdpMLineIndex=Math.round(e.sdpMLineIndex)),e.sdpMid!==""&&(t.sdpMid=e.sdpMid),e.usernameFragment!==""&&(t.usernameFragment=e.usernameFragment),t},create(e){return P.fromPartial(e??{})},fromPartial(e){let t=_a();return t.candidate=e.candidate??"",t.sdpMLineIndex=e.sdpMLineIndex??0,t.sdpMid=e.sdpMid??"",t.usernameFragment=e.usernameFragment??"",t}};function It(e){return e!=null}function wa(){return{connect:void 0,disconnect:void 0,updateEndpointMetadata:void 0,updateTrackMetadata:void 0,renegotiateTracks:void 0,candidate:void 0,sdpOffer:void 0,trackBitrates:void 0,enableTrackVariant:void 0,disableTrackVariant:void 0,setTargetTrackVariant:void 0,unmuteTrack:void 0}}var tt={encode(e,t=new s){return e.connect!==void 0&&K.encode(e.connect,t.uint32(10).fork()).join(),e.disconnect!==void 0&&z.encode(e.disconnect,t.uint32(18).fork()).join(),e.updateEndpointMetadata!==void 0&&Z.encode(e.updateEndpointMetadata,t.uint32(26).fork()).join(),e.updateTrackMetadata!==void 0&&$.encode(e.updateTrackMetadata,t.uint32(34).fork()).join(),e.renegotiateTracks!==void 0&&x.encode(e.renegotiateTracks,t.uint32(42).fork()).join(),e.candidate!==void 0&&P.encode(e.candidate,t.uint32(50).fork()).join(),e.sdpOffer!==void 0&&Y.encode(e.sdpOffer,t.uint32(58).fork()).join(),e.trackBitrates!==void 0&&_.encode(e.trackBitrates,t.uint32(66).fork()).join(),e.enableTrackVariant!==void 0&&X.encode(e.enableTrackVariant,t.uint32(74).fork()).join(),e.disableTrackVariant!==void 0&&Q.encode(e.disableTrackVariant,t.uint32(82).fork()).join(),e.setTargetTrackVariant!==void 0&&j.encode(e.setTargetTrackVariant,t.uint32(90).fork()).join(),e.unmuteTrack!==void 0&&ee.encode(e.unmuteTrack,t.uint32(98).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=wa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.connect=K.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.disconnect=z.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.updateEndpointMetadata=Z.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.updateTrackMetadata=$.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.renegotiateTracks=x.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.candidate=P.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.sdpOffer=Y.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.trackBitrates=_.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.enableTrackVariant=X.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.disableTrackVariant=Q.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.setTargetTrackVariant=j.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.unmuteTrack=ee.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{connect:m(e.connect)?K.fromJSON(e.connect):void 0,disconnect:m(e.disconnect)?z.fromJSON(e.disconnect):void 0,updateEndpointMetadata:m(e.updateEndpointMetadata)?Z.fromJSON(e.updateEndpointMetadata):void 0,updateTrackMetadata:m(e.updateTrackMetadata)?$.fromJSON(e.updateTrackMetadata):void 0,renegotiateTracks:m(e.renegotiateTracks)?x.fromJSON(e.renegotiateTracks):void 0,candidate:m(e.candidate)?P.fromJSON(e.candidate):void 0,sdpOffer:m(e.sdpOffer)?Y.fromJSON(e.sdpOffer):void 0,trackBitrates:m(e.trackBitrates)?_.fromJSON(e.trackBitrates):void 0,enableTrackVariant:m(e.enableTrackVariant)?X.fromJSON(e.enableTrackVariant):void 0,disableTrackVariant:m(e.disableTrackVariant)?Q.fromJSON(e.disableTrackVariant):void 0,setTargetTrackVariant:m(e.setTargetTrackVariant)?j.fromJSON(e.setTargetTrackVariant):void 0,unmuteTrack:m(e.unmuteTrack)?ee.fromJSON(e.unmuteTrack):void 0}},toJSON(e){let t={};return e.connect!==void 0&&(t.connect=K.toJSON(e.connect)),e.disconnect!==void 0&&(t.disconnect=z.toJSON(e.disconnect)),e.updateEndpointMetadata!==void 0&&(t.updateEndpointMetadata=Z.toJSON(e.updateEndpointMetadata)),e.updateTrackMetadata!==void 0&&(t.updateTrackMetadata=$.toJSON(e.updateTrackMetadata)),e.renegotiateTracks!==void 0&&(t.renegotiateTracks=x.toJSON(e.renegotiateTracks)),e.candidate!==void 0&&(t.candidate=P.toJSON(e.candidate)),e.sdpOffer!==void 0&&(t.sdpOffer=Y.toJSON(e.sdpOffer)),e.trackBitrates!==void 0&&(t.trackBitrates=_.toJSON(e.trackBitrates)),e.enableTrackVariant!==void 0&&(t.enableTrackVariant=X.toJSON(e.enableTrackVariant)),e.disableTrackVariant!==void 0&&(t.disableTrackVariant=Q.toJSON(e.disableTrackVariant)),e.setTargetTrackVariant!==void 0&&(t.setTargetTrackVariant=j.toJSON(e.setTargetTrackVariant)),e.unmuteTrack!==void 0&&(t.unmuteTrack=ee.toJSON(e.unmuteTrack)),t},create(e){return tt.fromPartial(e??{})},fromPartial(e){let t=wa();return t.connect=e.connect!==void 0&&e.connect!==null?K.fromPartial(e.connect):void 0,t.disconnect=e.disconnect!==void 0&&e.disconnect!==null?z.fromPartial(e.disconnect):void 0,t.updateEndpointMetadata=e.updateEndpointMetadata!==void 0&&e.updateEndpointMetadata!==null?Z.fromPartial(e.updateEndpointMetadata):void 0,t.updateTrackMetadata=e.updateTrackMetadata!==void 0&&e.updateTrackMetadata!==null?$.fromPartial(e.updateTrackMetadata):void 0,t.renegotiateTracks=e.renegotiateTracks!==void 0&&e.renegotiateTracks!==null?x.fromPartial(e.renegotiateTracks):void 0,t.candidate=e.candidate!==void 0&&e.candidate!==null?P.fromPartial(e.candidate):void 0,t.sdpOffer=e.sdpOffer!==void 0&&e.sdpOffer!==null?Y.fromPartial(e.sdpOffer):void 0,t.trackBitrates=e.trackBitrates!==void 0&&e.trackBitrates!==null?_.fromPartial(e.trackBitrates):void 0,t.enableTrackVariant=e.enableTrackVariant!==void 0&&e.enableTrackVariant!==null?X.fromPartial(e.enableTrackVariant):void 0,t.disableTrackVariant=e.disableTrackVariant!==void 0&&e.disableTrackVariant!==null?Q.fromPartial(e.disableTrackVariant):void 0,t.setTargetTrackVariant=e.setTargetTrackVariant!==void 0&&e.setTargetTrackVariant!==null?j.fromPartial(e.setTargetTrackVariant):void 0,t.unmuteTrack=e.unmuteTrack!==void 0&&e.unmuteTrack!==null?ee.fromPartial(e.unmuteTrack):void 0,t}};function ba(){return{variant:0,bitrate:0}}var De={encode(e,t=new s){return e.variant!==0&&t.uint32(8).int32(e.variant),e.bitrate!==0&&t.uint32(16).int32(e.bitrate),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ba();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.variant=n.int32();continue}case 2:{if(a!==16)break;r.bitrate=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{variant:m(e.variant)?L(e.variant):0,bitrate:m(e.bitrate)?globalThis.Number(e.bitrate):0}},toJSON(e){let t={};return e.variant!==0&&(t.variant=F(e.variant)),e.bitrate!==0&&(t.bitrate=Math.round(e.bitrate)),t},create(e){return De.fromPartial(e??{})},fromPartial(e){let t=ba();return t.variant=e.variant??0,t.bitrate=e.bitrate??0,t}};function Oa(){return{metadataJson:""}}var K={encode(e,t=new s){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Oa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:m(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return K.fromPartial(e??{})},fromPartial(e){let t=Oa();return t.metadataJson=e.metadataJson??"",t}};function Pa(){return{}}var z={encode(e,t=new s){return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Pa();for(;n.pos<i;){let a=n.uint32();if(a>>>3,(a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{}},toJSON(e){return{}},create(e){return z.fromPartial(e??{})},fromPartial(e){return Pa()}};function Ca(){return{metadataJson:""}}var Z={encode(e,t=new s){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ca();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:m(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return Z.fromPartial(e??{})},fromPartial(e){let t=Ca();return t.metadataJson=e.metadataJson??"",t}};function Ra(){return{trackId:"",metadataJson:""}}var $={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.metadataJson!==""&&t.uint32(18).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ra();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==18)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:m(e.trackId)?globalThis.String(e.trackId):"",metadataJson:m(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return $.fromPartial(e??{})},fromPartial(e){let t=Ra();return t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function Na(){return{}}var x={encode(e,t=new s){return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Na();for(;n.pos<i;){let a=n.uint32();if(a>>>3,(a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{}},toJSON(e){return{}},create(e){return x.fromPartial(e??{})},fromPartial(e){return Na()}};function xa(){return{sdp:"",trackIdToMetadataJson:{},trackIdToBitrates:{},midToTrackId:{}}}var Y={encode(e,t=new s){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.trackIdToMetadataJson).forEach(([n,i])=>{Zt.encode({key:n,value:i},t.uint32(18).fork()).join()}),Object.entries(e.trackIdToBitrates).forEach(([n,i])=>{Yt.encode({key:n,value:i},t.uint32(26).fork()).join()}),Object.entries(e.midToTrackId).forEach(([n,i])=>{Qt.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=xa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.sdp=n.string();continue}case 2:{if(a!==18)break;let d=Zt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToMetadataJson[d.key]=d.value);continue}case 3:{if(a!==26)break;let d=Yt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToBitrates[d.key]=d.value);continue}case 4:{if(a!==34)break;let d=Qt.decode(n,n.uint32());d.value!==void 0&&(r.midToTrackId[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{sdp:m(e.sdp)?globalThis.String(e.sdp):"",trackIdToMetadataJson:Gt(e.trackIdToMetadataJson)?Object.entries(e.trackIdToMetadataJson).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{},trackIdToBitrates:Gt(e.trackIdToBitrates)?Object.entries(e.trackIdToBitrates).reduce((t,[n,i])=>(t[n]=_.fromJSON(i),t),{}):{},midToTrackId:Gt(e.midToTrackId)?Object.entries(e.midToTrackId).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{}}},toJSON(e){let t={};if(e.sdp!==""&&(t.sdp=e.sdp),e.trackIdToMetadataJson){let n=Object.entries(e.trackIdToMetadataJson);n.length>0&&(t.trackIdToMetadataJson={},n.forEach(([i,r])=>{t.trackIdToMetadataJson[i]=r}))}if(e.trackIdToBitrates){let n=Object.entries(e.trackIdToBitrates);n.length>0&&(t.trackIdToBitrates={},n.forEach(([i,r])=>{t.trackIdToBitrates[i]=_.toJSON(r)}))}if(e.midToTrackId){let n=Object.entries(e.midToTrackId);n.length>0&&(t.midToTrackId={},n.forEach(([i,r])=>{t.midToTrackId[i]=r}))}return t},create(e){return Y.fromPartial(e??{})},fromPartial(e){let t=xa();return t.sdp=e.sdp??"",t.trackIdToMetadataJson=Object.entries(e.trackIdToMetadataJson??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t.trackIdToBitrates=Object.entries(e.trackIdToBitrates??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=_.fromPartial(r)),n),{}),t.midToTrackId=Object.entries(e.midToTrackId??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t}};function Ja(){return{key:"",value:""}}var Zt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ja();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:m(e.key)?globalThis.String(e.key):"",value:m(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return Zt.fromPartial(e??{})},fromPartial(e){let t=Ja();return t.key=e.key??"",t.value=e.value??"",t}};function Aa(){return{key:"",value:void 0}}var Yt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&_.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Aa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=_.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:m(e.key)?globalThis.String(e.key):"",value:m(e.value)?_.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=_.toJSON(e.value)),t},create(e){return Yt.fromPartial(e??{})},fromPartial(e){let t=Aa();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?_.fromPartial(e.value):void 0,t}};function Ba(){return{key:"",value:""}}var Qt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ba();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:m(e.key)?globalThis.String(e.key):"",value:m(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return Qt.fromPartial(e??{})},fromPartial(e){let t=Ba();return t.key=e.key??"",t.value=e.value??"",t}};function Da(){return{trackId:"",variantBitrates:[]}}var _={encode(e,t=new s){e.trackId!==""&&t.uint32(10).string(e.trackId);for(let n of e.variantBitrates)De.encode(n,t.uint32(18).fork()).join();return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Da();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==18)break;r.variantBitrates.push(De.decode(n,n.uint32()));continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:m(e.trackId)?globalThis.String(e.trackId):"",variantBitrates:globalThis.Array.isArray(e?.variantBitrates)?e.variantBitrates.map(t=>De.fromJSON(t)):[]}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variantBitrates?.length&&(t.variantBitrates=e.variantBitrates.map(n=>De.toJSON(n))),t},create(e){return _.fromPartial(e??{})},fromPartial(e){let t=Da();return t.trackId=e.trackId??"",t.variantBitrates=e.variantBitrates?.map(n=>De.fromPartial(n))||[],t}};function Ua(){return{trackId:"",variant:0}}var Q={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.variant!==0&&t.uint32(16).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ua();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:m(e.trackId)?globalThis.String(e.trackId):"",variant:m(e.variant)?L(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=F(e.variant)),t},create(e){return Q.fromPartial(e??{})},fromPartial(e){let t=Ua();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Va(){return{trackId:"",variant:0}}var X={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.variant!==0&&t.uint32(16).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Va();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:m(e.trackId)?globalThis.String(e.trackId):"",variant:m(e.variant)?L(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=F(e.variant)),t},create(e){return X.fromPartial(e??{})},fromPartial(e){let t=Va();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function La(){return{trackId:"",variant:0}}var j={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.variant!==0&&t.uint32(16).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=La();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:m(e.trackId)?globalThis.String(e.trackId):"",variant:m(e.variant)?L(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=F(e.variant)),t},create(e){return j.fromPartial(e??{})},fromPartial(e){let t=La();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Fa(){return{trackId:""}}var ee={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Fa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:m(e.trackId)?globalThis.String(e.trackId):""}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),t},create(e){return ee.fromPartial(e??{})},fromPartial(e){let t=Fa();return t.trackId=e.trackId??"",t}};function Gt(e){return typeof e=="object"&&e!==null}function m(e){return e!=null}var pi=class{localTrackManager;connection=null;clearConnectionCallbacks=null;constructor(e){this.localTrackManager=e}initConnection=e=>{this.connection=e;let t=()=>{e.getConnection().signalingState==="stable"&&this.processNextCommand()},n=()=>{e.getConnection().iceGatheringState==="complete"&&this.processNextCommand()},i=()=>{e.getConnection().connectionState==="connected"&&this.processNextCommand()},r=()=>{e.getConnection().iceConnectionState==="connected"&&this.processNextCommand()};this.clearConnectionCallbacks=()=>{e.getConnection().removeEventListener("signalingstatechange",t),e.getConnection().removeEventListener("icegatheringstatechange",n),e.getConnection().removeEventListener("connectionstatechange",i),e.getConnection().removeEventListener("iceconnectionstatechange",r)},e.getConnection().addEventListener("icegatheringstatechange",r),e.getConnection().addEventListener("connectionstatechange",i),e.getConnection().addEventListener("iceconnectionstatechange",r),e.getConnection().addEventListener("signalingstatechange",t)};commandsQueue=[];commandResolutionNotifier=null;pushCommand=e=>{this.commandsQueue.push(e),this.processNextCommand()};processNextCommand=()=>{if(this.localTrackManager.isNegotiationInProgress()||this.connection?.isConnectionUnstable())return;this.resolvePreviousCommand();let e=this.commandsQueue.shift();e&&(this.commandResolutionNotifier=e.resolutionNotifier,this.handleCommand(e))};handleCommand=async e=>{try{e.parse?.();let t=e.handler();e.resolve==="on-handler-resolve"&&(await t,this.resolvePreviousCommand(),this.processNextCommand())}catch(t){this.commandResolutionNotifier?.reject(t),this.commandResolutionNotifier=null,this.processNextCommand()}};resolvePreviousCommand=()=>{this.commandResolutionNotifier&&(this.commandResolutionNotifier.resolve(),this.commandResolutionNotifier=null)};cleanUp=()=>{this.commandResolutionNotifier?.reject("Disconnected"),this.commandResolutionNotifier=null,this.commandsQueue=[],this.clearConnectionCallbacks?.()}},Wa=class Xt{connection;constructor(t){this.connection=new RTCPeerConnection({bundlePolicy:"max-bundle",iceServers:t,iceTransportPolicy:"all"})}isConnectionUnstable=()=>{if(!this.connection)return!1;let t=this.connection.signalingState!=="stable",n=this.connection.connectionState!=="connected",i=this.connection.iceConnectionState!=="connected";return t&&n&&i};getConnection=()=>this.connection;addTransceiversIfNeeded=t=>{let n=this.connection.getTransceivers().filter(Xt.isLiveRecvTransceiver),i=n.filter(f=>f.receiver.track.kind==="video").length,r=n.filter(f=>f.receiver.track.kind==="audio").length,a=t.video-i,d=t.audio-r;this.stopExcessRecvTransceivers("video",-a),this.stopExcessRecvTransceivers("audio",-d);let c=Array(Math.max(0,a)).fill("video"),u=Array(Math.max(0,d)).fill("audio");[...c,...u].forEach(f=>this.connection.addTransceiver(f,{direction:"recvonly"}))};static isLiveRecvTransceiver=t=>t.direction==="recvonly"&&t.currentDirection!=="stopped";stopExcessRecvTransceivers=(t,n)=>{if(n<=0)return;this.connection.getTransceivers().filter(r=>Xt.isLiveRecvTransceiver(r)&&r.receiver.track?.kind===t).sort((r,a)=>{let d=r.mid===null?0:1,c=a.mid===null?0:1;return d-c}).slice(0,n).forEach(r=>r.stop())};addTransceiver=(t,n)=>{this.connection.addTransceiver(t,n)};setOnTrackReady=t=>{this.connection.ontrack=t};setRemoteDescription=async t=>{await this.connection.setRemoteDescription(t)};isTrackInUse=t=>this.connection.getSenders().some(n=>n.track===t);removeTrack=t=>{this.connection.removeTrack(t)};findSender=t=>this.connection.getSenders().find(n=>n.track&&n.track.id===t);addIceCandidate=async t=>{await this.connection.addIceCandidate(t)};createDataChannel=(t,n)=>this.connection.createDataChannel(t,n)},$a=class{constructor(e,t){this.type=e,this.logger=t}channel=null;dataCallback=null;openCallback=null;errorCallback=null;_status="init";get status(){return this._status}setChannel(e){this._status="creating",this.channel=e,this.setupListeners()}setOnOpen(e){this.openCallback=e}setOnError(e){this.errorCallback=e}send(e){if(!this.channel||this._status!=="open"){this.logger.warn(`Cannot send data on ${this.type} channel: channel not ready (status: ${this._status})`);return}try{this.channel.send(e)}catch(t){this.logger.error(`Error sending data on ${this.type} channel:`,t)}}setCallback(e){this.dataCallback=e}close(){this.channel&&this.channel.close(),this._status="closed",this.dataCallback=null}setupListeners(){this.channel&&(this.channel.onopen=()=>{this._status="open",this.logger.debug(`Data channel ${this.type} opened`),this.openCallback?.()},this.channel.onclose=()=>{this._status="closed",this.logger.debug(`Data channel ${this.type} closed`)},this.channel.onerror=e=>{this.logger.error(`Data channel ${this.type} error:`,e),this.errorCallback?.(e)},this.channel.onmessage=e=>{this.handleMessage(e.data)})}handleMessage(e){if(!this.dataCallback){this.logger.warn(`Received data on ${this.type} channel but no callback is set`);return}try{let t;if(e instanceof ArrayBuffer)t=new Uint8Array(e);else if(e instanceof Uint8Array)t=e;else if(typeof e=="string")t=new TextEncoder().encode(e);else if(e instanceof Blob){let n=new FileReader;n.onload=()=>{n.result instanceof ArrayBuffer&&this.dataCallback?.(new Uint8Array(n.result))},n.readAsArrayBuffer(e);return}else{this.logger.warn(`Received unsupported data type on ${this.type} channel:`,typeof e);return}this.dataCallback(t)}catch(t){this.logger.error(`Error handling message on ${this.type} channel:`,t)}}},hi=class extends vr.EventEmitter{constructor(e,t,n){super(),this.createDataChannel=e,this.triggerRenegotiation=t,this.logger=n}reliableChannel=null;lossyChannel=null;async connect(){this.getChannelsReadiness()||(this.createChannels(),this.triggerRenegotiation(),await this.waitForChannelsReady())}waitForChannelsReady(){return this.getChannelsReadiness()?Promise.resolve():new Promise((e,t)=>{let n=()=>{r(),e()},i=(a,d)=>{r(),t(new Error(`Data channel ${a} error: ${d}`))},r=()=>{this.removeListener("ready",n),this.removeListener("error",i)};this.on("ready",n),this.on("error",i)})}publishData(e,t){let n=t.reliable?"reliable":"lossy",i=n==="reliable"?this.reliableChannel:this.lossyChannel;if(!i)throw new Error(`Cannot publish data: ${n} channel not created. Call connectDataPublishers() first or enable negotiateOnConnect.`);if(i.status!=="open")throw new Error(`Cannot publish data: ${n} channel not ready (status: ${i.status}). Wait for dataChannelsReady event.`);i.send(e)}cleanup(){this.logger.warn("Cleaning up data channels"),this.reliableChannel&&(this.reliableChannel.close(),this.reliableChannel=null),this.lossyChannel&&(this.lossyChannel.close(),this.lossyChannel=null),this.removeAllListeners()}getChannelsReadiness(){return this.reliableChannel?.status==="open"&&this.lossyChannel?.status==="open"}createChannels(){this.createChannel("reliable"),this.createChannel("lossy")}createChannel(e){let t=this.getOrCreateChannelWrapper(e);if(t.status!=="init")return;let n=e,i=e==="reliable"?{ordered:!0}:{ordered:!1,maxRetransmits:0},r=this.createDataChannel(n,i);t.setOnOpen(()=>this.onChannelOpen(e)),t.setOnError(a=>this.onChannelError(e,a)),t.setChannel(r),this.logger.warn(`Created ${e} data channel`)}onChannelOpen(e){this.logger.warn(`Data channel ${e} opened`),this.emit("channelOpen",e),this.reliableChannel&&this.reliableChannel.status==="open"&&this.lossyChannel&&this.lossyChannel.status==="open"&&(this.logger.warn("All data publishers ready"),this.emit("ready"))}onChannelError(e,t){this.logger.error(`Data channel ${e} error:`,t),this.emit("error",e,t)}onDataReceived(e,t){let n={channelType:e,data:t};this.emit("data",n)}getOrCreateChannelWrapper(e){return e==="reliable"?(this.reliableChannel||(this.reliableChannel=new $a(e,this.logger),this.reliableChannel.setCallback(t=>this.onDataReceived(e,t))),this.reliableChannel):(this.lossyChannel||(this.lossyChannel=new $a(e,this.logger),this.lossyChannel.setCallback(t=>this.onDataReceived(e,t))),this.lossyChannel)}},Kt=class{promise;resolveFn=()=>null;rejectFn=()=>null;constructor(){this.promise=new Promise((e,t)=>{this.resolveFn=e,this.rejectFn=t})}resolve(e){this.resolveFn(e)}reject(e){this.rejectFn(e)}};function vi(e){switch(e){case 0:case"STATUS_UNSPECIFIED":return 0;case 1:case"STATUS_SILENCE":return 1;case 2:case"STATUS_SPEECH":return 2;case-1:case"UNRECOGNIZED":default:return-1}}function Ti(e){switch(e){case 0:return"STATUS_UNSPECIFIED";case 1:return"STATUS_SILENCE";case 2:return"STATUS_SPEECH";case-1:default:return"UNRECOGNIZED"}}function Ha(){return{endpointUpdated:void 0,trackUpdated:void 0,tracksAdded:void 0,tracksRemoved:void 0,endpointAdded:void 0,endpointRemoved:void 0,connected:void 0,error:void 0,offerData:void 0,candidate:void 0,sdpAnswer:void 0,vadNotification:void 0,trackVariantSwitched:void 0,trackVariantDisabled:void 0,trackVariantEnabled:void 0}}var Tr={encode(e,t=new s){return e.endpointUpdated!==void 0&&Le.encode(e.endpointUpdated,t.uint32(10).fork()).join(),e.trackUpdated!==void 0&&Fe.encode(e.trackUpdated,t.uint32(18).fork()).join(),e.tracksAdded!==void 0&&We.encode(e.tracksAdded,t.uint32(26).fork()).join(),e.tracksRemoved!==void 0&&$e.encode(e.tracksRemoved,t.uint32(34).fork()).join(),e.endpointAdded!==void 0&&He.encode(e.endpointAdded,t.uint32(42).fork()).join(),e.endpointRemoved!==void 0&&Ge.encode(e.endpointRemoved,t.uint32(50).fork()).join(),e.connected!==void 0&&qe.encode(e.connected,t.uint32(58).fork()).join(),e.error!==void 0&&Ke.encode(e.error,t.uint32(66).fork()).join(),e.offerData!==void 0&&ze.encode(e.offerData,t.uint32(74).fork()).join(),e.candidate!==void 0&&P.encode(e.candidate,t.uint32(82).fork()).join(),e.sdpAnswer!==void 0&&Ye.encode(e.sdpAnswer,t.uint32(90).fork()).join(),e.vadNotification!==void 0&&Qe.encode(e.vadNotification,t.uint32(98).fork()).join(),e.trackVariantSwitched!==void 0&&Xe.encode(e.trackVariantSwitched,t.uint32(106).fork()).join(),e.trackVariantDisabled!==void 0&&je.encode(e.trackVariantDisabled,t.uint32(114).fork()).join(),e.trackVariantEnabled!==void 0&&et.encode(e.trackVariantEnabled,t.uint32(122).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ha();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointUpdated=Le.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.trackUpdated=Fe.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.tracksAdded=We.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.tracksRemoved=$e.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.endpointAdded=He.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.endpointRemoved=Ge.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.connected=qe.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.error=Ke.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.offerData=ze.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.candidate=P.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.sdpAnswer=Ye.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.vadNotification=Qe.decode(n,n.uint32());continue}case 13:{if(a!==106)break;r.trackVariantSwitched=Xe.decode(n,n.uint32());continue}case 14:{if(a!==114)break;r.trackVariantDisabled=je.decode(n,n.uint32());continue}case 15:{if(a!==122)break;r.trackVariantEnabled=et.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointUpdated:k(e.endpointUpdated)?Le.fromJSON(e.endpointUpdated):void 0,trackUpdated:k(e.trackUpdated)?Fe.fromJSON(e.trackUpdated):void 0,tracksAdded:k(e.tracksAdded)?We.fromJSON(e.tracksAdded):void 0,tracksRemoved:k(e.tracksRemoved)?$e.fromJSON(e.tracksRemoved):void 0,endpointAdded:k(e.endpointAdded)?He.fromJSON(e.endpointAdded):void 0,endpointRemoved:k(e.endpointRemoved)?Ge.fromJSON(e.endpointRemoved):void 0,connected:k(e.connected)?qe.fromJSON(e.connected):void 0,error:k(e.error)?Ke.fromJSON(e.error):void 0,offerData:k(e.offerData)?ze.fromJSON(e.offerData):void 0,candidate:k(e.candidate)?P.fromJSON(e.candidate):void 0,sdpAnswer:k(e.sdpAnswer)?Ye.fromJSON(e.sdpAnswer):void 0,vadNotification:k(e.vadNotification)?Qe.fromJSON(e.vadNotification):void 0,trackVariantSwitched:k(e.trackVariantSwitched)?Xe.fromJSON(e.trackVariantSwitched):void 0,trackVariantDisabled:k(e.trackVariantDisabled)?je.fromJSON(e.trackVariantDisabled):void 0,trackVariantEnabled:k(e.trackVariantEnabled)?et.fromJSON(e.trackVariantEnabled):void 0}},toJSON(e){let t={};return e.endpointUpdated!==void 0&&(t.endpointUpdated=Le.toJSON(e.endpointUpdated)),e.trackUpdated!==void 0&&(t.trackUpdated=Fe.toJSON(e.trackUpdated)),e.tracksAdded!==void 0&&(t.tracksAdded=We.toJSON(e.tracksAdded)),e.tracksRemoved!==void 0&&(t.tracksRemoved=$e.toJSON(e.tracksRemoved)),e.endpointAdded!==void 0&&(t.endpointAdded=He.toJSON(e.endpointAdded)),e.endpointRemoved!==void 0&&(t.endpointRemoved=Ge.toJSON(e.endpointRemoved)),e.connected!==void 0&&(t.connected=qe.toJSON(e.connected)),e.error!==void 0&&(t.error=Ke.toJSON(e.error)),e.offerData!==void 0&&(t.offerData=ze.toJSON(e.offerData)),e.candidate!==void 0&&(t.candidate=P.toJSON(e.candidate)),e.sdpAnswer!==void 0&&(t.sdpAnswer=Ye.toJSON(e.sdpAnswer)),e.vadNotification!==void 0&&(t.vadNotification=Qe.toJSON(e.vadNotification)),e.trackVariantSwitched!==void 0&&(t.trackVariantSwitched=Xe.toJSON(e.trackVariantSwitched)),e.trackVariantDisabled!==void 0&&(t.trackVariantDisabled=je.toJSON(e.trackVariantDisabled)),e.trackVariantEnabled!==void 0&&(t.trackVariantEnabled=et.toJSON(e.trackVariantEnabled)),t},create(e){return Tr.fromPartial(e??{})},fromPartial(e){let t=Ha();return t.endpointUpdated=e.endpointUpdated!==void 0&&e.endpointUpdated!==null?Le.fromPartial(e.endpointUpdated):void 0,t.trackUpdated=e.trackUpdated!==void 0&&e.trackUpdated!==null?Fe.fromPartial(e.trackUpdated):void 0,t.tracksAdded=e.tracksAdded!==void 0&&e.tracksAdded!==null?We.fromPartial(e.tracksAdded):void 0,t.tracksRemoved=e.tracksRemoved!==void 0&&e.tracksRemoved!==null?$e.fromPartial(e.tracksRemoved):void 0,t.endpointAdded=e.endpointAdded!==void 0&&e.endpointAdded!==null?He.fromPartial(e.endpointAdded):void 0,t.endpointRemoved=e.endpointRemoved!==void 0&&e.endpointRemoved!==null?Ge.fromPartial(e.endpointRemoved):void 0,t.connected=e.connected!==void 0&&e.connected!==null?qe.fromPartial(e.connected):void 0,t.error=e.error!==void 0&&e.error!==null?Ke.fromPartial(e.error):void 0,t.offerData=e.offerData!==void 0&&e.offerData!==null?ze.fromPartial(e.offerData):void 0,t.candidate=e.candidate!==void 0&&e.candidate!==null?P.fromPartial(e.candidate):void 0,t.sdpAnswer=e.sdpAnswer!==void 0&&e.sdpAnswer!==null?Ye.fromPartial(e.sdpAnswer):void 0,t.vadNotification=e.vadNotification!==void 0&&e.vadNotification!==null?Qe.fromPartial(e.vadNotification):void 0,t.trackVariantSwitched=e.trackVariantSwitched!==void 0&&e.trackVariantSwitched!==null?Xe.fromPartial(e.trackVariantSwitched):void 0,t.trackVariantDisabled=e.trackVariantDisabled!==void 0&&e.trackVariantDisabled!==null?je.fromPartial(e.trackVariantDisabled):void 0,t.trackVariantEnabled=e.trackVariantEnabled!==void 0&&e.trackVariantEnabled!==null?et.fromPartial(e.trackVariantEnabled):void 0,t}};function qa(){return{metadataJson:"",simulcastConfig:void 0}}var S={encode(e,t=new s){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),e.simulcastConfig!==void 0&&Ue.encode(e.simulcastConfig,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=qa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.metadataJson=n.string();continue}case 2:{if(a!==18)break;r.simulcastConfig=Ue.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:k(e.metadataJson)?globalThis.String(e.metadataJson):"",simulcastConfig:k(e.simulcastConfig)?Ue.fromJSON(e.simulcastConfig):void 0}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),e.simulcastConfig!==void 0&&(t.simulcastConfig=Ue.toJSON(e.simulcastConfig)),t},create(e){return S.fromPartial(e??{})},fromPartial(e){let t=qa();return t.metadataJson=e.metadataJson??"",t.simulcastConfig=e.simulcastConfig!==void 0&&e.simulcastConfig!==null?Ue.fromPartial(e.simulcastConfig):void 0,t}};function Ga(){return{enabled:!1,enabledVariants:[],disabledVariants:[]}}var Ue={encode(e,t=new s){e.enabled!==!1&&t.uint32(8).bool(e.enabled),t.uint32(18).fork();for(let n of e.enabledVariants)t.int32(n);t.join(),t.uint32(26).fork();for(let n of e.disabledVariants)t.int32(n);return t.join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ga();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.enabled=n.bool();continue}case 2:{if(a===16){r.enabledVariants.push(n.int32());continue}if(a===18){let d=n.uint32()+n.pos;for(;n.pos<d;)r.enabledVariants.push(n.int32());continue}break}case 3:{if(a===24){r.disabledVariants.push(n.int32());continue}if(a===26){let d=n.uint32()+n.pos;for(;n.pos<d;)r.disabledVariants.push(n.int32());continue}break}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{enabled:k(e.enabled)?globalThis.Boolean(e.enabled):!1,enabledVariants:globalThis.Array.isArray(e?.enabledVariants)?e.enabledVariants.map(t=>L(t)):[],disabledVariants:globalThis.Array.isArray(e?.disabledVariants)?e.disabledVariants.map(t=>L(t)):[]}},toJSON(e){let t={};return e.enabled!==!1&&(t.enabled=e.enabled),e.enabledVariants?.length&&(t.enabledVariants=e.enabledVariants.map(n=>F(n))),e.disabledVariants?.length&&(t.disabledVariants=e.disabledVariants.map(n=>F(n))),t},create(e){return Ue.fromPartial(e??{})},fromPartial(e){let t=Ga();return t.enabled=e.enabled??!1,t.enabledVariants=e.enabledVariants?.map(n=>n)||[],t.disabledVariants=e.disabledVariants?.map(n=>n)||[],t}};function Ka(){return{endpointType:"",metadataJson:"",trackIdToTrack:{}}}var V={encode(e,t=new s){return e.endpointType!==""&&t.uint32(18).string(e.endpointType),e.metadataJson!==""&&t.uint32(26).string(e.metadataJson),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{jt.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ka();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 2:{if(a!==18)break;r.endpointType=n.string();continue}case 3:{if(a!==26)break;r.metadataJson=n.string();continue}case 4:{if(a!==34)break;let d=jt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToTrack[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointType:k(e.endpointType)?globalThis.String(e.endpointType):"",metadataJson:k(e.metadataJson)?globalThis.String(e.metadataJson):"",trackIdToTrack:Mt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=S.fromJSON(i),t),{}):{}}},toJSON(e){let t={};if(e.endpointType!==""&&(t.endpointType=e.endpointType),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),e.trackIdToTrack){let n=Object.entries(e.trackIdToTrack);n.length>0&&(t.trackIdToTrack={},n.forEach(([i,r])=>{t.trackIdToTrack[i]=S.toJSON(r)}))}return t},create(e){return V.fromPartial(e??{})},fromPartial(e){let t=Ka();return t.endpointType=e.endpointType??"",t.metadataJson=e.metadataJson??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=S.fromPartial(r)),n),{}),t}};function za(){return{key:"",value:void 0}}var jt={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&S.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=za();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=S.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:k(e.key)?globalThis.String(e.key):"",value:k(e.value)?S.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=S.toJSON(e.value)),t},create(e){return jt.fromPartial(e??{})},fromPartial(e){let t=za();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?S.fromPartial(e.value):void 0,t}};function Za(){return{credential:"",urls:[],username:""}}var Ve={encode(e,t=new s){e.credential!==""&&t.uint32(10).string(e.credential);for(let n of e.urls)t.uint32(18).string(n);return e.username!==""&&t.uint32(26).string(e.username),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Za();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.credential=n.string();continue}case 2:{if(a!==18)break;r.urls.push(n.string());continue}case 3:{if(a!==26)break;r.username=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{credential:k(e.credential)?globalThis.String(e.credential):"",urls:globalThis.Array.isArray(e?.urls)?e.urls.map(t=>globalThis.String(t)):[],username:k(e.username)?globalThis.String(e.username):""}},toJSON(e){let t={};return e.credential!==""&&(t.credential=e.credential),e.urls?.length&&(t.urls=e.urls),e.username!==""&&(t.username=e.username),t},create(e){return Ve.fromPartial(e??{})},fromPartial(e){let t=Za();return t.credential=e.credential??"",t.urls=e.urls?.map(n=>n)||[],t.username=e.username??"",t}};function Ya(){return{endpointId:"",metadataJson:""}}var Le={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.metadataJson!==""&&t.uint32(18).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Ya();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:k(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:k(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return Le.fromPartial(e??{})},fromPartial(e){let t=Ya();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function Qa(){return{endpointId:"",trackId:"",metadataJson:""}}var Fe={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.metadataJson!==""&&t.uint32(26).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Qa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==26)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:k(e.endpointId)?globalThis.String(e.endpointId):"",trackId:k(e.trackId)?globalThis.String(e.trackId):"",metadataJson:k(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return Fe.fromPartial(e??{})},fromPartial(e){let t=Qa();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function Xa(){return{endpointId:"",trackIdToTrack:{}}}var We={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{en.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=Xa();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;let d=en.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToTrack[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:k(e.endpointId)?globalThis.String(e.endpointId):"",trackIdToTrack:Mt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=S.fromJSON(i),t),{}):{}}},toJSON(e){let t={};if(e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackIdToTrack){let n=Object.entries(e.trackIdToTrack);n.length>0&&(t.trackIdToTrack={},n.forEach(([i,r])=>{t.trackIdToTrack[i]=S.toJSON(r)}))}return t},create(e){return We.fromPartial(e??{})},fromPartial(e){let t=Xa();return t.endpointId=e.endpointId??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=S.fromPartial(r)),n),{}),t}};function ja(){return{key:"",value:void 0}}var en={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&S.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ja();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=S.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:k(e.key)?globalThis.String(e.key):"",value:k(e.value)?S.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=S.toJSON(e.value)),t},create(e){return en.fromPartial(e??{})},fromPartial(e){let t=ja();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?S.fromPartial(e.value):void 0,t}};function er(){return{endpointId:"",trackIds:[]}}var $e={encode(e,t=new s){e.endpointId!==""&&t.uint32(10).string(e.endpointId);for(let n of e.trackIds)t.uint32(18).string(n);return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=er();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackIds.push(n.string());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:k(e.endpointId)?globalThis.String(e.endpointId):"",trackIds:globalThis.Array.isArray(e?.trackIds)?e.trackIds.map(t=>globalThis.String(t)):[]}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackIds?.length&&(t.trackIds=e.trackIds),t},create(e){return $e.fromPartial(e??{})},fromPartial(e){let t=er();return t.endpointId=e.endpointId??"",t.trackIds=e.trackIds?.map(n=>n)||[],t}};function tr(){return{endpointId:"",metadataJson:""}}var He={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.metadataJson!==""&&t.uint32(18).string(e.metadataJson),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=tr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:k(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:k(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return He.fromPartial(e??{})},fromPartial(e){let t=tr();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function nr(){return{endpointId:"",endpointIdToEndpoint:{},iceServers:[]}}var qe={encode(e,t=new s){e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.endpointIdToEndpoint).forEach(([n,i])=>{tn.encode({key:n,value:i},t.uint32(18).fork()).join()});for(let n of e.iceServers)Ve.encode(n,t.uint32(26).fork()).join();return t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=nr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;let d=tn.decode(n,n.uint32());d.value!==void 0&&(r.endpointIdToEndpoint[d.key]=d.value);continue}case 3:{if(a!==26)break;r.iceServers.push(Ve.decode(n,n.uint32()));continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:k(e.endpointId)?globalThis.String(e.endpointId):"",endpointIdToEndpoint:Mt(e.endpointIdToEndpoint)?Object.entries(e.endpointIdToEndpoint).reduce((t,[n,i])=>(t[n]=V.fromJSON(i),t),{}):{},iceServers:globalThis.Array.isArray(e?.iceServers)?e.iceServers.map(t=>Ve.fromJSON(t)):[]}},toJSON(e){let t={};if(e.endpointId!==""&&(t.endpointId=e.endpointId),e.endpointIdToEndpoint){let n=Object.entries(e.endpointIdToEndpoint);n.length>0&&(t.endpointIdToEndpoint={},n.forEach(([i,r])=>{t.endpointIdToEndpoint[i]=V.toJSON(r)}))}return e.iceServers?.length&&(t.iceServers=e.iceServers.map(n=>Ve.toJSON(n))),t},create(e){return qe.fromPartial(e??{})},fromPartial(e){let t=nr();return t.endpointId=e.endpointId??"",t.endpointIdToEndpoint=Object.entries(e.endpointIdToEndpoint??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=V.fromPartial(r)),n),{}),t.iceServers=e.iceServers?.map(n=>Ve.fromPartial(n))||[],t}};function ar(){return{key:"",value:void 0}}var tn={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&V.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ar();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=V.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:k(e.key)?globalThis.String(e.key):"",value:k(e.value)?V.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=V.toJSON(e.value)),t},create(e){return tn.fromPartial(e??{})},fromPartial(e){let t=ar();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?V.fromPartial(e.value):void 0,t}};function rr(){return{endpointId:""}}var Ge={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=rr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:k(e.endpointId)?globalThis.String(e.endpointId):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),t},create(e){return Ge.fromPartial(e??{})},fromPartial(e){let t=rr();return t.endpointId=e.endpointId??"",t}};function ir(){return{message:""}}var Ke={encode(e,t=new s){return e.message!==""&&t.uint32(10).string(e.message),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ir();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.message=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{message:k(e.message)?globalThis.String(e.message):""}},toJSON(e){let t={};return e.message!==""&&(t.message=e.message),t},create(e){return Ke.fromPartial(e??{})},fromPartial(e){let t=ir();return t.message=e.message??"",t}};function dr(){return{tracksTypes:void 0}}var ze={encode(e,t=new s){return e.tracksTypes!==void 0&&Ze.encode(e.tracksTypes,t.uint32(10).fork()).join(),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=dr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.tracksTypes=Ze.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{tracksTypes:k(e.tracksTypes)?Ze.fromJSON(e.tracksTypes):void 0}},toJSON(e){let t={};return e.tracksTypes!==void 0&&(t.tracksTypes=Ze.toJSON(e.tracksTypes)),t},create(e){return ze.fromPartial(e??{})},fromPartial(e){let t=dr();return t.tracksTypes=e.tracksTypes!==void 0&&e.tracksTypes!==null?Ze.fromPartial(e.tracksTypes):void 0,t}};function or(){return{audio:0,video:0}}var Ze={encode(e,t=new s){return e.audio!==0&&t.uint32(8).int32(e.audio),e.video!==0&&t.uint32(16).int32(e.video),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=or();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==8)break;r.audio=n.int32();continue}case 2:{if(a!==16)break;r.video=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{audio:k(e.audio)?globalThis.Number(e.audio):0,video:k(e.video)?globalThis.Number(e.video):0}},toJSON(e){let t={};return e.audio!==0&&(t.audio=Math.round(e.audio)),e.video!==0&&(t.video=Math.round(e.video)),t},create(e){return Ze.fromPartial(e??{})},fromPartial(e){let t=or();return t.audio=e.audio??0,t.video=e.video??0,t}};function sr(){return{sdp:"",midToTrackId:{}}}var Ye={encode(e,t=new s){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.midToTrackId).forEach(([n,i])=>{nn.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=sr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.sdp=n.string();continue}case 2:{if(a!==18)break;let d=nn.decode(n,n.uint32());d.value!==void 0&&(r.midToTrackId[d.key]=d.value);continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{sdp:k(e.sdp)?globalThis.String(e.sdp):"",midToTrackId:Mt(e.midToTrackId)?Object.entries(e.midToTrackId).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{}}},toJSON(e){let t={};if(e.sdp!==""&&(t.sdp=e.sdp),e.midToTrackId){let n=Object.entries(e.midToTrackId);n.length>0&&(t.midToTrackId={},n.forEach(([i,r])=>{t.midToTrackId[i]=r}))}return t},create(e){return Ye.fromPartial(e??{})},fromPartial(e){let t=sr();return t.sdp=e.sdp??"",t.midToTrackId=Object.entries(e.midToTrackId??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t}};function cr(){return{key:"",value:""}}var nn={encode(e,t=new s){return e.key!==""&&t.uint32(10).string(e.key),e.value!==""&&t.uint32(18).string(e.value),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=cr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.key=n.string();continue}case 2:{if(a!==18)break;r.value=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:k(e.key)?globalThis.String(e.key):"",value:k(e.value)?globalThis.String(e.value):""}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==""&&(t.value=e.value),t},create(e){return nn.fromPartial(e??{})},fromPartial(e){let t=cr();return t.key=e.key??"",t.value=e.value??"",t}};function ur(){return{trackId:"",status:0}}var Qe={encode(e,t=new s){return e.trackId!==""&&t.uint32(10).string(e.trackId),e.status!==0&&t.uint32(16).int32(e.status),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=ur();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.trackId=n.string();continue}case 2:{if(a!==16)break;r.status=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{trackId:k(e.trackId)?globalThis.String(e.trackId):"",status:k(e.status)?vi(e.status):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.status!==0&&(t.status=Ti(e.status)),t},create(e){return Qe.fromPartial(e??{})},fromPartial(e){let t=ur();return t.trackId=e.trackId??"",t.status=e.status??0,t}};function fr(){return{endpointId:"",trackId:"",variant:0}}var Xe={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.variant!==0&&t.uint32(24).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=fr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==24)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:k(e.endpointId)?globalThis.String(e.endpointId):"",trackId:k(e.trackId)?globalThis.String(e.trackId):"",variant:k(e.variant)?L(e.variant):0}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=F(e.variant)),t},create(e){return Xe.fromPartial(e??{})},fromPartial(e){let t=fr();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function lr(){return{endpointId:"",trackId:"",variant:0}}var je={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.variant!==0&&t.uint32(24).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=lr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==24)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:k(e.endpointId)?globalThis.String(e.endpointId):"",trackId:k(e.trackId)?globalThis.String(e.trackId):"",variant:k(e.variant)?L(e.variant):0}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=F(e.variant)),t},create(e){return je.fromPartial(e??{})},fromPartial(e){let t=lr();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function kr(){return{endpointId:"",trackId:"",variant:0}}var et={encode(e,t=new s){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),e.trackId!==""&&t.uint32(18).string(e.trackId),e.variant!==0&&t.uint32(24).int32(e.variant),t},decode(e,t){let n=e instanceof o?e:new o(e),i=t===void 0?n.len:n.pos+t,r=kr();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointId=n.string();continue}case 2:{if(a!==18)break;r.trackId=n.string();continue}case 3:{if(a!==24)break;r.variant=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:k(e.endpointId)?globalThis.String(e.endpointId):"",trackId:k(e.trackId)?globalThis.String(e.trackId):"",variant:k(e.variant)?L(e.variant):0}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=F(e.variant)),t},create(e){return et.fromPartial(e??{})},fromPartial(e){let t=kr();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Mt(e){return typeof e=="object"&&e!==null}function k(e){return e!=null}function Er(e){return tt.encode(e).finish()}function Ei(e){return Tr.decode(e)}var Ir=e=>e==="audio"||e==="video",Mr=class extends mr.default{constructor(e,t,n,i={enabled:!1,enabledVariants:[],disabledVariants:[]}){super(),this.endpoint=e,this.trackId=t,this.track=null,this.trackKind=null,this.stream=null,this.metadata=n,this.simulcastConfig=i,this.maxBandwidth=0,this.vadStatus="silence",this.negotiationStatus="awaiting",this.pendingMetadataUpdate=!1}},pr={audio:5e4,video:25e5},mi=0,Ii={3:25e5,2:5e5,1:15e4,0:0,[-1]:0},yr=(e,t)=>{let n=t*1024;if(n===0)return e.map(d=>({...d,maxBitrate:void 0}));if(e.length===0)return console.error("Attempted to limit bandwidth of the track that doesn't have any encodings"),e.map(d=>({...d}));if(!e[0])throw new Error("RTCRtpEncodingParameters is in invalid state");let i=e[0].scaleResolutionDownBy||1,r=e.reduce((d,c)=>d+(i/(c.scaleResolutionDownBy||1))**2,0),a=n/r;return e.map(d=>({...d,maxBitrate:a*(i/(d.scaleResolutionDownBy||1))**2}))},Mi=(e,t)=>{let n=[{}];return e.encodings.length===0?n:yr(e.encodings,t)},ut={l:1,m:2,h:3};function zt(e,t,n){let i=e==="mute"?"localTrackMuted":"localTrackUnmuted";if(e=="unmute"){let r=ee.create({trackId:n});t.emit("sendMediaEvent",Er({unmuteTrack:r}))}t.emit(i,{trackId:n})}function yi(e,t){return e&&!t?"mute":!e&&t?"unmute":"replace"}var gi=e=>{if(!e.track)throw new Error("Cannot create transceiver config for ");return e.track.kind==="audio"?Si(e.stream):_i(e,e.maxBandwidth)},Si=e=>({direction:"sendonly",streams:e?[e]:[]}),_i=(e,t)=>{if(!e.simulcastConfig)throw new Error(`Simulcast config for track ${e.trackId} not found.`);if(e.simulcastConfig.enabled){let n;if(t===0)n=new Map([[1,0],[2,0],[3,0]]);else{if(typeof t=="number")throw new Error("Invalid bandwidth limit for simulcast track.");n=t}return bi(e,n)}if(typeof t=="number")return wi(e,t);throw new Error("LocalTrack is in invalid state!")},wi=(e,t)=>({direction:"sendonly",sendEncodings:yr([{active:!0}],t),streams:e.stream?[e.stream]:[]}),bi=(e,t)=>{if(!e.simulcastConfig)throw new Error(`Simulcast config for track ${e.trackId} not found.`);let n=e.simulcastConfig.enabledVariants,i=[{rid:"l",active:n.includes(1),scaleResolutionDownBy:4},{rid:"m",active:n.includes(2),scaleResolutionDownBy:2},{rid:"h",active:n.includes(3)}];return{direction:"sendonly",sendEncodings:Oi(i,t),streams:e.stream?[e.stream]:[]}},Oi=(e,t)=>e.filter(n=>n.rid).map(n=>{let i=!!n.rid&&ut[n.rid]||0,r=t.get(i)||0;return{...n,maxBitrate:r>0?r*1024:void 0}}),Pi=class{id;mediaStreamTrackId=null;mLineId=null;trackContext;sender=null;encodings={[-1]:!1,0:!1,1:!1,2:!1,3:!1};connection;constructor(e,t,n){this.connection=e,this.id=t,this.trackContext=n,n.track?.id&&(this.mediaStreamTrackId=n.track?.id)}updateSender=()=>{this.mediaStreamTrackId&&this.connection&&(this.sender=this.connection.findSender(this.mediaStreamTrackId))};updateConnection=e=>{this.connection=e};disableTrackEncoding=async e=>{if(!this.sender)throw new Error(`RTCRtpSender for track ${this.id} not found`);let t=this.sender.getParameters(),i=t.encodings.find(r=>r.rid&&ut[r.rid]===e);if(!i)throw new Error(`RTCRtpEncodingParameters for track ${this.id} not found`);i.active=!1,this.encodings[e]=!1,await this.sender.setParameters(t)};addTrackToConnection=()=>{if(!this.trackContext.track)throw Error(`MediaStreamTrack for track ${this.id} does not exist`);if(!this.connection)throw new Error("There is no active RTCPeerConnection");let e=gi(this.trackContext);this.updateEncodings(),this.connection.addTransceiver(this.trackContext.track,e)};updateEncodings=()=>{let e=this.trackContext.simulcastConfig?.enabledVariants;this.trackContext?.track?.kind==="video"&&e&&(this.encodings[1]=e.some(t=>t===1),this.encodings[2]=e.some(t=>t===2),this.encodings[3]=e.some(t=>t===3))};removeFromConnection=()=>{if(!this.sender)throw new Error(`RTCRtpSender for track ${this.id} not found`);if(!this.connection)throw new Error("There is no active RTCPeerConnection");this.connection.removeTrack(this.sender)};replaceTrack=async(e,t)=>{let n=this.id,i=this.trackContext.stream,r=this.trackContext.track;if(!this.sender)throw Error("There is no RTCRtpSender for this track id!");r&&i?.removeTrack(r),e&&i?.addTrack(e);let a=yi(this.trackContext.track,e);this.trackContext.track=e,this.mediaStreamTrackId=e?.id??null,(a==="mute"||a==="unmute")&&zt(a,t,n);try{await this.sender.replaceTrack(e)}catch{a==="mute"?zt("unmute",t,n):a==="unmute"&&zt("mute",t,n),this.trackContext.track=r,this.mediaStreamTrackId=r?.id??null}};setTrackBandwidth=e=>{if(!this.sender)throw new Error(`RTCRtpSender for track ${this.id} not found`);let t=this.sender.getParameters();return t.encodings=Mi(t,e),this.sender.setParameters(t)};setEncodingBandwidth(e,t){if(!this.sender)throw new Error(`RTCRtpSender for track ${this.id} not found`);let n=this.sender.getParameters(),i=n.encodings.find(r=>r.rid&&ut[r.rid]===e);if(i)t===0?delete i.maxBitrate:i.maxBitrate=t*1024;else return Promise.reject(`Encoding with Variant '${e}' doesn't exist`);return this.sender.setParameters(n)}updateTrackMetadata=e=>{this.trackContext.metadata=e};enableTrackEncoding=e=>{if(!this.sender)throw new Error(`RTCRtpSender for track ${this.id} not found`);let t=this.sender.getParameters(),n=t.encodings.find(i=>i.rid&&ut[i.rid]===e);if(!n)throw new Error(`RTCRtEncodingParameters ${e} for track ${this.id} not found`);return n.active=!0,this.encodings[e]=!0,this.sender.setParameters(t)};setMLineId=e=>{this.mLineId=e};isNotSimulcastTrack=e=>e.length===1&&!e[0].rid;getTrackBitrates=()=>{let e=this.trackContext,t=this.trackContext.track?.kind;if(!e.track){if(!e.trackKind)throw new Error("trackContext.trackKind is empty");return pr[e.trackKind]}if(!this.sender)return;let n=this.sender.getParameters().encodings;if(this.isNotSimulcastTrack(n))return n[0].maxBitrate||(t?pr[t]:mi);if(t==="audio")throw"Audio track cannot have multiple encodings";return n.filter(i=>i.rid).reduce((i,r)=>{let a=ut[r.rid]??0;return i[a]=r.maxBitrate||Ii[a],i},{})};getAudioLevel=async()=>{if(!this.sender)return null;try{let t=[...(await this.sender.getStats()).values()].find(n=>n.type==="media-source"&&n.kind==="audio"&&typeof n.audioLevel=="number");return t?{level:t.audioLevel}:null}catch{return null}};createTrackVariantBitratesEvent=()=>{}},Ci=class{localTracks={};localEndpoint={id:"",type:"webrtc",metadata:void 0,tracks:new Map};emit;sendMediaEvent;connection=null;constructor(e,t){this.emit=e,this.sendMediaEvent=t}updateSenders=()=>{Object.values(this.localTracks).forEach(e=>{e.updateSender()})};updateMLineIds=e=>{Object.entries(e).forEach(([t,n])=>{this.localTracks[n]?.setMLineId(t)})};updateConnection=e=>{this.connection=e,Object.values(this.localTracks).forEach(t=>{t.updateConnection(e)})};createSdpOfferEvent=e=>{let t=this.getTrackIdToMetadataJson(),n=this.getTrackIdToTrackBitrates(),i=this.getMidToTrackId();return Y.create({sdp:e.sdp,midToTrackId:i,trackIdToBitrates:n,trackIdToMetadataJson:t})};addTrack=(e,t,n,i,r,a,d)=>{let c=new Mr(this.localEndpoint,t,r,a);if(c.track=n,c.stream=i,c.maxBandwidth=d,!Ir(n.kind))throw new Error("Track has no kind");c.trackKind=n.kind,this.localEndpoint.tracks.set(t,c);let u=new Pi(e,t,c);return this.localTracks[t]=u,u};getTrackByMidOrNull=e=>Object.values(this.localTracks).find(t=>t.mLineId===e)??null;removeTrack=e=>{let t=this.localTracks[e];if(!t)throw new Error(`Cannot find ${e}`);t.removeFromConnection();let n=x.create({});this.sendMediaEvent({renegotiateTracks:n}),this.localEndpoint.tracks.delete(e),delete this.localTracks[e]};replaceTrack=async(e,t,n)=>{let i=this.localTracks[t];if(!i)throw new Error(`Cannot find ${t}`);await i.replaceTrack(n,e)};setEndpointMetadata=e=>{this.localEndpoint.metadata=e};getEndpoint=()=>this.localEndpoint;setTrackBandwidth=async(e,t)=>{let n=this.localTracks[e];if(!n)throw new Error(`Cannot find ${e}`);await n.setTrackBandwidth(t);let i=_.create({trackId:e,variantBitrates:[{variant:0,bitrate:t}]});this.sendMediaEvent(tt.create({trackBitrates:i})),this.emit("localTrackBandwidthSet",{trackId:e,bandwidth:t})};getTrackIdToTrack=()=>{let e=Object.values(this.localTracks).map(t=>[t.id,t.trackContext]);return new Map(e)};setLocalEndpointId=e=>{this.localEndpoint.id=e};setEncodingBandwidth=async(e,t,n)=>{let i=this.localTracks[e];if(!i)throw new Error(`Cannot find ${e}`);await i.setEncodingBandwidth(t,n);let r=i.getTrackBitrates(),a=[];typeof r=="number"?a=[{variant:0,bitrate:r}]:r&&(a=Object.entries(r).map(([c,u])=>({variant:Number(c),bitrate:u})));let d=_.create({trackId:e,variantBitrates:a});this.sendMediaEvent(tt.create({trackBitrates:d})),this.emit("localTrackEncodingBandwidthSet",{trackId:e,rid:t,bandwidth:n})};updateEndpointMetadata=e=>{this.localEndpoint.metadata=e;let t=Z.create({metadataJson:JSON.stringify(this.localEndpoint.metadata)});this.sendMediaEvent({updateEndpointMetadata:t}),this.emit("localEndpointMetadataChanged",{metadata:this.localEndpoint.metadata})};updateLocalTrackMetadata=(e,t)=>{let n=this.localTracks[e];if(!n)throw new Error(`Cannot find ${e}`);n.updateTrackMetadata(t);let i=n.trackContext,r=$.create({trackId:e,metadataJson:t?JSON.stringify(t):void 0});switch(i.negotiationStatus){case"done":this.sendMediaEvent({updateTrackMetadata:r}),this.emit("localTrackMetadataChanged",{trackId:e,metadata:i.metadata});break;case"offered":i.pendingMetadataUpdate=!0;break;case"awaiting":break}};disableLocalTrackEncoding=async(e,t)=>{let n=this.localTracks[e];if(!n)throw new Error(`Track ${e} not found`);await n.disableTrackEncoding(t);let i=Q.create({trackId:e,variant:t});this.sendMediaEvent(tt.create({disableTrackVariant:i})),this.emit("localTrackEncodingEnabled",{trackId:e,encoding:t})};enableLocalTrackEncoding=async(e,t)=>{let n=this.localTracks[e];if(!n)throw new Error(`Cannot find ${e}`);await n.enableTrackEncoding(t);let i=X.create({trackId:e,variant:t});this.sendMediaEvent(tt.create({enableTrackVariant:i})),this.emit("localTrackEncodingEnabled",{trackId:e,encoding:t})};getTrackIdToMetadataJson=()=>Object.values(this.localTracks).reduce((e,{id:t,trackContext:n})=>({...e,[t]:JSON.stringify(n.metadata)}),{});getTrackIdToTrackBitrates=()=>Object.values(this.localTracks).reduce((e,{id:t})=>({...e,[t]:{bitrate:15e5}}),{});getMidToTrackId=()=>{if(!this.connection)return{};let e=this.getTransceiverMapping(),t=Object.values(this.localTracks).filter(n=>!!n.mLineId).reduce((n,{id:i,mLineId:r})=>({...n,[r]:i}),{});return{...e,...t}};getTransceiverMapping=()=>this.connection?this.connection.getConnection().getTransceivers().filter(e=>!!(e.sender.track?.id&&e.mid)).reduce((e,{sender:t,mid:n})=>{let i=Object.values(this.localTracks).find(r=>r.mediaStreamTrackId===t.track.id);if(!i)throw new Error("Local track not found");return{...e,[n]:i.id}},{}):{};setLocalTrackStatusToOffered=()=>{Object.values(this.localTracks).forEach(e=>{e.trackContext.negotiationStatus="offered"})};addAllTracksToConnection=()=>{Object.values(this.localTracks).forEach(e=>{e.addTrackToConnection()})};getLocalTrackAudioLevel=async e=>this.localTracks[e]?.getAudioLevel()??null},Ri=class{connection;local;ongoingTrackReplacement=!1;ongoingRenegotiation=!1;sendMediaEvent;constructor(e,t){this.local=e,this.sendMediaEvent=t}isNegotiationInProgress=()=>this.ongoingRenegotiation||this.ongoingTrackReplacement;cleanUp=()=>{this.ongoingTrackReplacement=!1,this.ongoingRenegotiation=!1};parseAddTrack=(e,t,n)=>{if(this.getEndpointId()==="")throw new Error("Cannot add tracks before being accepted by the server");if(!t.enabled&&typeof n!="number")throw new Error("Invalid type of `maxBandwidth` argument for a non-simulcast track, expected: number");if(this.connection?.isTrackInUse(e))throw new Error("This track was already added to peerConnection, it can't be added again!")};addTrackHandler=(e,t,n,i,r,a)=>{this.ongoingRenegotiation=!0;let d=this.local.addTrack(this.connection,e,t,n,i,r,a);this.connection&&d.addTrackToConnection(),this.sendMediaEvent({renegotiateTracks:x.create()})};removeTrackHandler=e=>{if(!this.connection)throw new Error("There is no active RTCPeerConnection");this.ongoingRenegotiation=!0,this.local.removeTrack(e)};replaceTrackHandler=async(e,t,n)=>{this.ongoingTrackReplacement=!0;try{await this.local.replaceTrack(e,t,n)}finally{this.ongoingTrackReplacement=!1}};getEndpointId=()=>this.local.getEndpoint().id;updateConnection=e=>{this.connection=e};updateSenders=()=>{this.local.updateSenders()}},Ni=class{id;mLineId=null;trackContext;encodings={[-1]:!1,0:!1,1:!1,2:!1,3:!1};targetEncoding=null;constructor(e,t){this.id=e,this.trackContext=t}setMLineId=e=>{this.mLineId=e};setReady=(e,t)=>{if(!Ir(t.kind))throw new Error("Track has no kind");this.trackContext.stream=e,this.trackContext.track=t,this.trackContext.trackKind=t.kind};disableTrackEncoding=e=>{this.encodings[e]=!1};enableTrackEncoding=e=>{this.encodings[e]=!0};setTargetTrackEncoding=e=>{this.targetEncoding=e;let t=this.trackContext;if(!t.simulcastConfig?.enabled)throw new Error("The track does not support changing its target variant");if(!t.simulcastConfig.enabledVariants.includes(e))throw new Error(`The track does not support variant ${e}`)}},xi=class{remoteTracks={};remoteEndpoints={};emit;sendMediaEvent;constructor(e,t){this.emit=e,this.sendMediaEvent=t}getTrackByMid=e=>{let t=Object.values(this.remoteTracks).find(n=>n.mLineId===e);if(!t)throw new Error(`Remote track with ${e} not found`);return t};addTracks=(e,t)=>{let n=this.remoteEndpoints[e];if(!n)throw new Error(`Endpoint ${e} not found`);Object.entries(t).map(([i,{metadataJson:r,simulcastConfig:a}])=>{let d=r?JSON.parse(r):void 0,c=new Mr(n,i,d,a);return new Ni(i,c)}).forEach(i=>{this.remoteTracks[i.id]=i,n.tracks.set(i.id,i.trackContext),this.emit("trackAdded",i.trackContext)})};removeTracks=e=>{e.forEach(t=>{this.removeRemoteTrack(t)})};removeRemoteTrack=e=>{let t=this.remoteTracks[e];if(!t)throw new Error(`Track ${e} not found`);let n=this.remoteEndpoints[t.trackContext.endpoint.id];if(!n)throw new Error(`Endpoint ${t.trackContext.endpoint.id} not found`);n.tracks.delete(e),delete this.remoteTracks[e],this.emit("trackRemoved",t.trackContext)};addRemoteEndpoint=(e,t,n,i=!0)=>{let r={id:e,type:"exwebrtc",metadata:t?JSON.parse(t):void 0,tracks:new Map};this.addEndpoint(r),this.addTracks(r.id,n??{}),i&&this.emit("endpointAdded",r)};addEndpoint=e=>{this.remoteEndpoints[e.id]=e};updateRemoteEndpoint=(e,t)=>{let n=this.remoteEndpoints[e];if(!n)throw new Error(`Endpoint ${e} not found`);n.metadata=t?JSON.parse(t):void 0,this.emit("endpointUpdated",n)};removeRemoteEndpoint=e=>{let t=this.remoteEndpoints[e];if(!t)throw new Error(`Endpoint ${e} not found`);let n=[...t.tracks.values()].map(({trackId:i})=>i);this.removeTracks(n),delete this.remoteEndpoints[e],this.emit("endpointRemoved",t)};updateRemoteTrack=(e,t,n)=>{if(!this.remoteEndpoints[e])throw new Error(`Endpoint ${e} not found`);let i=this.remoteTracks[t];if(!i)throw new Error(`Track ${t} not found`);i.trackContext.metadata=n?JSON.parse(n):void 0,this.emit("trackUpdated",i.trackContext)};disableRemoteTrackEncoding=(e,t)=>{let n=this.remoteTracks[e];if(!n)throw new Error(`Track ${e} not found`);n.disableTrackEncoding(t),this.emit("trackEncodingDisabled",n.trackContext,t)};enableRemoteTrackEncoding=(e,t)=>{let n=this.remoteTracks[e];if(!n)throw new Error(`Track ${e} not found`);n.enableTrackEncoding(t),this.emit("trackEncodingEnabled",n.trackContext,t)};setRemoteTrackEncoding=(e,t,n)=>{let i=this.remoteTracks[e];if(!i)throw new Error(`Track ${e} not found`);i.trackContext.encoding=t,i.trackContext.encodingReason=n,i.trackContext.emit("encodingChanged",i.trackContext)};setRemoteTrackVadStatus=(e,t)=>{let n=this.remoteTracks[e];if(!n)throw new Error(`Track ${e} not found`);let i=null;t===1?i="silence":t===2&&(i="speech"),i?(n.trackContext.vadStatus=i,n.trackContext.emit("voiceActivityChanged",n.trackContext)):console.warn("Received unknown vad status: ",t)};getRemoteTrackContexts=()=>Object.values(this.remoteTracks).reduce((e,t)=>({...e,[t.trackContext.trackId]:t.trackContext}),{});getRemoteEndpoints=()=>Object.values(this.remoteEndpoints).reduce((e,t)=>({...e,[t.id]:t}),{});setTargetRemoteTrackEncoding=(e,t)=>{let n=this.remoteTracks[e];if(!n)throw new Error(`Track ${e} not found`);try{n.setTargetTrackEncoding(t);let i=j.create({variant:t,trackId:e});this.sendMediaEvent({setTargetTrackVariant:i}),this.emit("targetTrackEncodingRequested",{trackId:e,variant:t})}catch(i){console.warn(i)}};updateMLineIds=e=>{Object.entries(e).forEach(([t,n])=>{this.remoteTracks[n]?.setMLineId(t)})}},gr=class extends hr.default{localTrackManager;remote;local;commandsQueue;dataChannelManager;proposedIceServers=[];logger;bandwidthEstimation=BigInt(0);connectionManager;clearConnectionCallbacks=null;constructor(e={}){super(),this.logger=an(!!e.debug);let t=a=>this.sendMediaEvent(a),n=(a,...d)=>{this.emit(a,...d)};this.remote=new xi(n,t),this.local=new Ci(n,t),this.localTrackManager=new Ri(this.local,t),this.commandsQueue=new pi(this.localTrackManager);let i=(a,d)=>(this.connectionManager||(this.connectionManager=new Wa(this.proposedIceServers)),this.connectionManager.createDataChannel(a,d)),r=()=>{this.sendMediaEvent({renegotiateTracks:x.create()})};this.dataChannelManager=new hi(i,r,this.logger),this.dataChannelManager.on("ready",()=>{this.emit("dataChannelsReady")}),this.dataChannelManager.on("data",a=>{this.emit("dataChannelPayload",a)}),this.dataChannelManager.on("error",(a,d)=>{this.emit("dataChannelsError",new Error(`Data channel error event: ${d.type}`))})}connect=e=>{this.local.setEndpointMetadata(e);let t=K.create({metadataJson:JSON.stringify(e)});this.sendMediaEvent({connect:t})};getLocalTrackAudioLevel(e){return this.local.getLocalTrackAudioLevel(e)}mediaEventQueue=Promise.resolve();receiveMediaEvent=e=>{let t=Ei(e),n=this.mediaEventQueue.then(()=>this.handleMediaEvent(t));return this.mediaEventQueue=n.catch(()=>{}),n};handleConnected=e=>{this.proposedIceServers=e.iceServers,this.local.setLocalEndpointId(e.endpointId);let t=e.endpointIdToEndpoint[e.endpointId];t?.metadataJson&&this.local.setEndpointMetadata(JSON.parse(t.metadataJson)),Object.entries(e.endpointIdToEndpoint).filter(([i])=>i!==this.local.getEndpoint().id).forEach(([i,r])=>{this.remote.addRemoteEndpoint(i,r.metadataJson,r.trackIdToTrack)});let n=Object.values(this.remote.getRemoteEndpoints());this.emit("connected",this.local.getEndpoint().id,n)};getEndpointId=()=>this.local.getEndpoint().id;onTrackReady=e=>{let t=e.streams[0];if(!t)throw new Error("Cannot find media stream");let n=e.transceiver.mid,i=this.remote.getTrackByMid(n);i.setReady(t,e.track),this.emit("trackReady",i.trackContext)};async getStatistics(e){return await this.connectionManager?.getConnection().getStats(e)??new Map}getRemoteTracks(){return this.remote.getRemoteTrackContexts()}getRemoteEndpoints(){return this.remote.getRemoteEndpoints()}getLocalEndpoint(){return this.local.getEndpoint()}getBandwidthEstimation(){return this.bandwidthEstimation}getDataChannelsReadiness(){return this.dataChannelManager?.getChannelsReadiness()??!1}handleMediaEvent=async e=>{if(e.connected){this.handleConnected(e.connected);return}if(this.getEndpointId()){if(e.offerData)await this.onOfferData(e.offerData);else if(e.tracksAdded){this.localTrackManager.ongoingRenegotiation=!0;let{trackIdToTrack:t,endpointId:n}=e.tracksAdded;if(this.getEndpointId()===n)return;this.remote.addTracks(n,t)}else if(e.tracksRemoved){let{endpointId:t,trackIds:n}=e.tracksRemoved;if(this.getEndpointId()===t)return;this.remote.removeTracks(n)}else if(e.sdpAnswer)this.localTrackManager.ongoingRenegotiation=!1,await this.onSdpAnswer(e.sdpAnswer),this.commandsQueue.processNextCommand();else if(e.candidate)await this.onRemoteCandidate(e.candidate);else if(e.endpointAdded){let{endpointId:t,metadataJson:n}=e.endpointAdded;if(t===this.getEndpointId())return;this.remote.addRemoteEndpoint(t,n)}else if(e.endpointRemoved){let{endpointId:t}=e.endpointRemoved;if(t===this.local.getEndpoint().id){this.cleanUp(),this.emit("disconnected");return}if(this.getEndpointId()===t)return;this.remote.removeRemoteEndpoint(t)}else if(e.endpointUpdated){let{endpointId:t,metadataJson:n}=e.endpointUpdated;if(this.getEndpointId()===t)return;this.remote.updateRemoteEndpoint(t,n)}else if(e.trackUpdated){let{endpointId:t,trackId:n,metadataJson:i}=e.trackUpdated;if(this.getEndpointId()===t)return;this.remote.updateRemoteTrack(t,n,i)}else if(e.vadNotification){let{trackId:t,status:n}=e.vadNotification;this.remote.setRemoteTrackVadStatus(t,n)}else if(e.error)this.logger.warn("signaling error",{message:e.error.message}),this.emit("signalingError",{message:e.error.message}),this.disconnect();else if(e.trackVariantSwitched){let{trackId:t,variant:n}=e.trackVariantSwitched;this.remote.setRemoteTrackEncoding(t,n)}else if(e.trackVariantEnabled){let{trackId:t,variant:n}=e.trackVariantEnabled;this.remote.enableRemoteTrackEncoding(t,n)}else if(e.trackVariantDisabled){let{trackId:t,variant:n}=e.trackVariantDisabled;this.remote.disableRemoteTrackEncoding(t,n)}}};onSdpAnswer=async e=>{if(this.remote.updateMLineIds(e.midToTrackId),this.local.updateMLineIds(e.midToTrackId),Object.keys(e.midToTrackId).map(t=>{if(!t)throw new Error("TrackId is not defined");return t}).map(t=>this.local.getTrackByMidOrNull(t)).filter(t=>t!==null).forEach(t=>{let n=t.trackContext;if(n.negotiationStatus="done",n.pendingMetadataUpdate){let i=$.create({trackId:t.id,metadataJson:JSON.stringify(n.metadata)});this.sendMediaEvent({updateTrackMetadata:i})}n.pendingMetadataUpdate=!1}),!this.connectionManager)throw new Error("There is no active RTCPeerConnection");this.connectionManager.setOnTrackReady(t=>{this.onTrackReady(t)});try{await this.connectionManager.setRemoteDescription({sdp:e.sdp,type:"answer"})}catch(t){this.logger.error(t)}};async addTrack(e,t,n={enabled:!1,enabledVariants:[],disabledVariants:[]},i=0,r){let a=new Kt,d=this.getTrackId(Ht()),c=r??new MediaStream,u=typeof i=="number"&&i>0?i:0;try{r||c.addTrack(e),this.commandsQueue.pushCommand({handler:async()=>this.localTrackManager.addTrackHandler(d,e,c,t,n,u),parse:()=>this.localTrackManager.parseAddTrack(e,n,u),resolve:"after-renegotiation",resolutionNotifier:a})}catch(f){a.reject(f)}return await a.promise,this.emit("localTrackAdded",{trackId:d,track:e,stream:c,trackMetadata:t,simulcastConfig:n,maxBandwidth:u}),d}async replaceTrack(e,t){let n=new Kt;return this.commandsQueue.pushCommand({handler:()=>this.localTrackManager.replaceTrackHandler(this,e,t),resolutionNotifier:n,resolve:"on-handler-resolve"}),n.promise.then(()=>{this.emit("localTrackReplaced",{trackId:e,track:t})})}setTrackBandwidth(e,t){if(!this.connectionManager)throw new Error("There is no active RTCPeerConnection");return this.local.setTrackBandwidth(e,t)}async setEncodingBandwidth(e,t,n){if(!this.connectionManager)throw new Error("There is no active RTCPeerConnection");return await this.local.setEncodingBandwidth(e,t,n)}async removeTrack(e){let t=new Kt;this.commandsQueue.pushCommand({handler:async()=>this.localTrackManager.removeTrackHandler(e),resolutionNotifier:t,resolve:"after-renegotiation"}),await t.promise,this.emit("localTrackRemoved",{trackId:e})}setTargetTrackEncoding(e,t){this.remote.setTargetRemoteTrackEncoding(e,t)}enableTrackEncoding=async(e,t)=>{await this.local.enableLocalTrackEncoding(e,t)};disableTrackEncoding=async(e,t)=>{await this.local.disableLocalTrackEncoding(e,t)};updateEndpointMetadata=e=>{this.local.updateEndpointMetadata(e)};updateTrackMetadata=(e,t)=>{this.local.updateLocalTrackMetadata(e,t)};disconnect=()=>{let e=z.create();this.sendMediaEvent({disconnect:e}),this.emit("disconnectRequested",{}),this.cleanUp()};connectDataChannels=()=>this.dataChannelManager.connect();publishData=(e,t)=>{this.dataChannelManager.publishData(e,t)};cleanUp=()=>{this.connectionManager&&(this.clearConnectionCallbacks?.(),this.connectionManager?.getConnection().close(),this.commandsQueue.cleanUp(),this.localTrackManager.cleanUp(),this.dataChannelManager?.cleanup()),this.connectionManager=void 0};getTrackId(e){return`${this.getEndpointId()}:${e}`}sendMediaEvent=e=>{this.emit("sendMediaEvent",Er(e))};async createAndSendOffer(){let e=this.connectionManager;if(e)try{this.localTrackManager.updateSenders();let t=await e.getConnection().createOffer();if(!this.connectionManager){this.logger.warn("RTCPeerConnection stopped or restarted");return}if(await e.getConnection().setLocalDescription(t),!this.connectionManager){this.logger.warn("RTCPeerConnection stopped or restarted");return}let n=this.local.createSdpOfferEvent(t);this.sendMediaEvent({sdpOffer:n}),this.local.setLocalTrackStatusToOffered()}catch(t){this.logger.error(t)}}onOfferData=async e=>{let t=this.connectionManager??this.createNewConnection();e.tracksTypes&&t.addTransceiversIfNeeded(e.tracksTypes),await this.createAndSendOffer()};setupConnectionListeners=e=>{let t=a=>this.onLocalCandidate(a),n=a=>this.onIceCandidateError(a),i=a=>this.onConnectionStateChange(a),r=a=>this.onIceConnectionStateChange(a);this.clearConnectionCallbacks=()=>{e.removeEventListener("icecandidate",t),e.removeEventListener("icecandidateerror",n),e.removeEventListener("connectionstatechange",i),e.removeEventListener("iceconnectionstatechange",r)},e.addEventListener("icecandidate",t),e.addEventListener("icecandidateerror",n),e.addEventListener("connectionstatechange",i),e.addEventListener("iceconnectionstatechange",r)};createNewConnection=()=>{let e=new Wa(this.proposedIceServers);return this.localTrackManager.updateConnection(e),this.local.updateConnection(e),this.setupConnectionListeners(e.getConnection()),this.commandsQueue.initConnection(e),this.local.addAllTracksToConnection(),this.connectionManager=e,e};onRemoteCandidate=async e=>{try{let t=new RTCIceCandidate(e);if(!this.connectionManager)throw new Error("Received new remote candidate but RTCConnection is undefined");await this.connectionManager.addIceCandidate(t)}catch(t){this.logger.error(t)}};onLocalCandidate=e=>{if(!e.candidate)return;let t=P.create({candidate:e.candidate.candidate,sdpMLineIndex:e.candidate.sdpMLineIndex??void 0,sdpMid:e.candidate.sdpMid??void 0,usernameFragment:e.candidate.usernameFragment??void 0});this.sendMediaEvent({candidate:t})};onIceCandidateError=e=>{this.logger.warn(e)};onConnectionStateChange=e=>{switch(this.localTrackManager.connection?.getConnection().connectionState){case"failed":this.emit("connectionError",{message:"RTCPeerConnection failed",event:e});break}};onIceConnectionStateChange=e=>{switch(this.localTrackManager.connection?.getConnection().iceConnectionState){case"disconnected":this.logger.warn("ICE connection: disconnected"),this.sendMediaEvent({renegotiateTracks:x.create()});break;case"failed":this.emit("connectionError",{message:"ICE connection failed",event:e});break}}};var Pr=kt(ct());function Sr(e){return new Promise((t,n)=>{let i=()=>{a(),t()},r=()=>{a(),n()};e.on("joined",i),e.on("joinError",r),e.on("authError",r),e.on("socketError",r);let a=()=>{e.removeListener("joined",i),e.removeListener("joinError",r),e.removeListener("authError",r),e.removeListener("socketError",r)}})}var J=e=>e.type==="webrtc"||e.type==="exwebrtc",nt=e=>e.type==="recording"||e.type==="hls"||e.type==="file"||e.type==="rtsp"||e.type==="sip",_r=["reached peers limit","room not found","node not found","invalid sdk version"],ft=e=>_r.includes(e);var yt=class{queuedMessages=[];checkIsReconnecting;sendMessage;constructor({checkIsReconnecting:t,sendMessage:n}){this.checkIsReconnecting=t,this.sendMessage=n}enqueueMessage(t){this.queuedMessages.push(t),this.attemptToSendAll()}attemptToSendAll(){if(!this.checkIsReconnecting())for(;this.queuedMessages.length>0;){let n=this.queuedMessages.shift();n&&this.sendMessage(n)}}};var Ji={maxAttempts:0,initialDelay:0,delay:0,addTracksOnReconnect:!1},lt={maxAttempts:3,initialDelay:500,delay:500,addTracksOnReconnect:!1},gt=class{reconnectConfig;connect;client;initialPeerMetadata=void 0;reconnectAttempt=0;reconnectTimeoutId=null;status="idle";lastLocalEndpoint=null;removeEventListeners=()=>{};constructor(t,n,i){this.client=t,this.connect=n,this.reconnectConfig=Ai(i);let r=()=>{this.reconnect()};this.client.on("socketError",r);let a=()=>{this.reconnect()};this.client.on("connectionError",a);let d=u=>{let f=ot(u.reason);if(dt(f)||ft(f)){this.abortReconnection();return}this.reconnect()};this.client.on("socketClose",d);let c=()=>{this.reset(this.initialPeerMetadata)};this.client.on("authSuccess",c),this.removeEventListeners=()=>{this.client.off("socketError",r),this.client.off("connectionError",a),this.client.off("socketClose",d),this.client.off("authSuccess",c)}}isReconnecting(){return this.status==="reconnecting"}reset(t){this.initialPeerMetadata=t,this.reconnectAttempt=0,this.reconnectTimeoutId&&clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=null,this.status="idle"}abortReconnection(){this.status==="reconnecting"&&(this.reconnectTimeoutId&&clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=null,this.lastLocalEndpoint=null,this.reconnectAttempt=0,this.status="error")}getLastPeerMetadata(){return this.lastLocalEndpoint?.metadata?.peer}reconnect(){if(this.status==="error"||this.reconnectTimeoutId)return;if(this.reconnectAttempt>=this.reconnectConfig.maxAttempts){this.status==="reconnecting"&&(this.status="error",this.client.emit("reconnectionRetriesLimitReached"));return}this.status!=="reconnecting"&&(this.status="reconnecting",this.client.emit("reconnectionStarted"),this.lastLocalEndpoint=this.client.getLocalPeer()||null);let t=this.reconnectConfig.initialDelay+this.reconnectAttempt*this.reconnectConfig.delay;this.reconnectAttempt+=1,this.reconnectTimeoutId=setTimeout(()=>{this.reconnectTimeoutId=null;let n=this.getLastPeerMetadata()??this.initialPeerMetadata;this.connect(n)},t)}async handleReconnect(){if(this.status==="reconnecting"){if(this.lastLocalEndpoint&&this.reconnectConfig.addTracksOnReconnect)for await(let t of this.lastLocalEndpoint.tracks){let[n,i]=t;if(!i.track||i.track.readyState!=="live")return;await this.client.addTrack(i.track,i.metadata,i.simulcastConfig,i.maxBandwidth)}this.lastLocalEndpoint=null,this.status="idle",this.client.emit("reconnected")}}cleanup(){this.removeEventListeners(),this.removeEventListeners=()=>{}}},Ai=e=>e?e===!0?lt:{maxAttempts:e?.maxAttempts??lt.maxAttempts,initialDelay:e?.initialDelay??lt.initialDelay,delay:e?.delay??lt.delay,addTracksOnReconnect:e?.addTracksOnReconnect??lt.addTracksOnReconnect}:Ji;var wr="0.26.1";var br=wr;var Di=1e4,Or="socket/peer/websocket",rn=class extends Pr.EventEmitter{websocket=null;webrtc=null;removeEventListeners=null;debug;logger;clientType;status="new";connectConfig=null;isAudioOnlyConnection=!1;reconnectManager;peerMessageQueue;sendStatisticsInterval=void 0;cameraStream=new MediaStream;screenShareStream=new MediaStream;trackIdToTrack=new Map;constructor(t){super(),this.debug=!!t?.debug,this.logger=an(this.debug),this.clientType=t?.clientType??"web",this.reconnectManager=new gt(this,n=>this.initConnection(n),t?.reconnect??!0),this.peerMessageQueue=new yt({sendMessage:n=>this.websocket?.send(n),checkIsReconnecting:()=>this.reconnectManager.isReconnecting()}),this.on("reconnected",()=>this.peerMessageQueue.attemptToSendAll())}async connect(t){this.emit("connectionStarted");let n=Sr(this);return this.reconnectManager.reset(t.peerMetadata),this.connectConfig=t,this.initConnection(t.peerMetadata),n}async initConnection(t){this.status==="initialized"&&this.disconnect(),this.webrtc=new gr({debug:this.debug}),this.initWebsocket(t),this.setupCallbacks(),this.status="initialized"}getUrl(t){return t.endsWith("/")?`${t}${Or}`:`${t}/${Or}`}initWebsocket(t){if(!this.connectConfig)throw Error("ConnectConfig is null");let{token:n,url:i}=this.connectConfig,r=this.getUrl(i);this.websocket=new WebSocket(r),this.websocket.binaryType="arraybuffer";let a=f=>{this.emit("socketOpen",f);let p=`${this.clientType}-${br}`,T=Ae.encode({authRequest:{token:n,sdkVersion:p}}).finish();this.websocket?.send(T)},d=f=>{this.emit("socketError",f)},c=f=>{let p=ot(f.reason);dt(p)&&this.emit("authError",p),ft(p)&&this.emit("joinError",p),this.logger.warn(`Socket closed with reason: ${f.reason}`),this.emit("socketClose",f)};this.websocket.addEventListener("open",a),this.websocket.addEventListener("error",d),this.websocket.addEventListener("close",c);let u=f=>{let p=new Uint8Array(f.data);try{let T=Ae.decode(p),h=T.serverMediaEvent;T.authenticated?(this.isAudioOnlyConnection=T.authenticated.roomType===2,T.authenticated.sdkDeprecation&&this.handleSdkDeprecation(T.authenticated.sdkDeprecation),this.emit("authSuccess"),this.webrtc?.connect(t)):T.authRequest?this.logger.warn("Received unexpected control message: authRequest"):h&&this.webrtc?.receiveMediaEvent(U.encode(h).finish())}catch(T){this.logger.warn(`Received invalid control message, error: ${T}`)}};this.websocket.addEventListener("message",u),this.removeEventListeners=()=>{this.websocket?.removeEventListener("open",a),this.websocket?.removeEventListener("error",d),this.websocket?.removeEventListener("close",c),this.websocket?.removeEventListener("message",u)}}handleSdkDeprecation(t){switch(t.status){case 3:this.logger.error(t.message);break;case 2:this.logger.warn(t.message);break;default:break}}async getStatistics(t){return await this.webrtc?.getStatistics(t)??new Map}getRemoteTracks(){return this.webrtc?.getRemoteTracks()??{}}getRemotePeers(){return Object.entries(this.webrtc?.getRemoteEndpoints()??{}).reduce((t,[n,i])=>J(i)?{...t,[n]:i}:t,{})}getRemoteComponents(){return Object.entries(this.webrtc?.getRemoteEndpoints()??{}).reduce((t,[n,i])=>nt(i)?{...t,[n]:i}:t,{})}getLocalPeer(){return this.webrtc?.getLocalEndpoint()||null}getBandwidthEstimation(){if(!this.webrtc)throw Error("Webrtc not initialized");return this.webrtc?.getBandwidthEstimation()}isConnectingRelatedEvent(t){return!!(t.connect||t.renegotiateTracks||t.sdpOffer||t.candidate)}setupCallbacks(){this.webrtc?.on("sendMediaEvent",t=>{let n=B.decode(t),i=Ae.encode({peerMediaEvent:n}).finish();this.isConnectingRelatedEvent(n)?this.websocket?.send(i):this.peerMessageQueue.enqueueMessage(i)}),this.webrtc?.on("connected",async(t,n)=>{let i=n.filter(a=>J(a)).map(a=>a),r=n.filter(a=>nt(a)).map(a=>a);await this.reconnectManager.handleReconnect(),this.sendStatisticsInterval=setInterval(()=>this.sendStatistics(),Di),this.emit("joined",t,i,r)}),this.webrtc?.on("disconnected",()=>{this.emit("disconnected"),clearInterval(this.sendStatisticsInterval)}),this.webrtc?.on("endpointAdded",t=>{J(t)&&this.emit("peerJoined",t),nt(t)&&this.emit("componentAdded",t)}),this.webrtc?.on("endpointRemoved",t=>{J(t)&&this.emit("peerLeft",t),nt(t)&&this.emit("componentRemoved",t)}),this.webrtc?.on("endpointUpdated",t=>{J(t)&&this.emit("peerUpdated",t),nt(t)&&this.emit("componentUpdated",t)}),this.webrtc?.on("trackReady",t=>{J(t.endpoint)&&this.emit("trackReady",t)}),this.webrtc?.on("trackAdded",t=>{J(t.endpoint)&&(t.on("encodingChanged",n=>{this.emit("encodingChanged",n)}),this.emit("trackAdded",t))}),this.webrtc?.on("trackRemoved",t=>{J(t.endpoint)&&(this.emit("trackRemoved",t),t.removeAllListeners())}),this.webrtc?.on("trackUpdated",t=>{J(t.endpoint)&&this.emit("trackUpdated",t)}),this.webrtc?.on("tracksPriorityChanged",(t,n)=>{this.emit("tracksPriorityChanged",t,n)}),this.webrtc?.on("signalingError",t=>{this.emit("joinError",t)}),this.webrtc?.on("connectionError",t=>{this.emit("connectionError",t)}),this.webrtc?.on("bandwidthEstimationChanged",t=>{this.emit("bandwidthEstimationChanged",t)}),this.webrtc?.on("targetTrackEncodingRequested",t=>{this.emit("targetTrackEncodingRequested",t)}),this.webrtc?.on("localTrackAdded",t=>{this.trackIdToTrack.set(t.trackId,[t.track,t.stream]),this.emit("localTrackAdded",t)}),this.webrtc?.on("localTrackRemoved",t=>{let[n,i]=this.trackIdToTrack.get(t.trackId);n&&i.removeTrack(n),this.trackIdToTrack.delete(t.trackId),this.emit("localTrackRemoved",t)}),this.webrtc?.on("localTrackReplaced",t=>{let[n,i]=this.trackIdToTrack.get(t.trackId);n&&i.removeTrack(n),t.track&&i.addTrack(t.track),this.trackIdToTrack.set(t.trackId,[t.track,i]),this.emit("localTrackReplaced",t)}),this.webrtc?.on("localTrackBandwidthSet",t=>{this.emit("localTrackBandwidthSet",t)}),this.webrtc?.on("localTrackMuted",t=>{this.emit("localTrackMuted",t)}),this.webrtc?.on("localTrackUnmuted",t=>{this.emit("localTrackUnmuted",t)}),this.webrtc?.on("localTrackBandwidthSet",t=>{this.emit("localTrackBandwidthSet",t)}),this.webrtc?.on("localTrackEncodingEnabled",t=>{this.emit("localTrackEncodingEnabled",t)}),this.webrtc?.on("localTrackEncodingDisabled",t=>{this.emit("localTrackEncodingDisabled",t)}),this.webrtc?.on("localEndpointMetadataChanged",t=>{this.emit("localPeerMetadataChanged",t)}),this.webrtc?.on("localTrackMetadataChanged",t=>{this.emit("localTrackMetadataChanged",t)}),this.webrtc?.on("disconnectRequested",t=>{this.emit("disconnectRequested",t)}),this.webrtc?.on("dataChannelsReady",()=>{this.emit("dataChannelsReady")}),this.webrtc?.on("dataChannelsError",t=>{this.emit("dataChannelsError",t)})}async sendStatistics(){let t=await this.getStatistics(),n={};t.forEach((r,a)=>{(r.type==="inbound-rtp"||r.type==="outbound-rtp")&&(n[a]=r)});let i=Ae.encode({rtcStatsReport:{data:JSON.stringify(n)}}).finish();this.peerMessageQueue.enqueueMessage(i)}on(t,n){return super.on(t,n)}off(t,n){return super.off(t,n)}handleWebRTCNotInitialized(){return new Error("WebRTC is not initialized")}addTrack(t,n,i={enabled:!1,enabledVariants:[],disabledVariants:[]},r=0){if(!this.webrtc)throw this.handleWebRTCNotInitialized();if(this.isAudioOnlyConnection&&t.kind!=="audio")throw new st;let a;switch(n?.type){case"camera":case"microphone":a=this.cameraStream;break;case"screenShareVideo":case"screenShareAudio":a=this.screenShareStream}return a?.addTrack(t),this.webrtc.addTrack(t,n,i,r,a)}async replaceTrack(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return this.webrtc.replaceTrack(t,n)}async setTrackBandwidth(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return await this.webrtc.setTrackBandwidth(t,n),!0}async setEncodingBandwidth(t,n,i){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return await this.webrtc.setEncodingBandwidth(t,n,i),!0}removeTrack(t){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return this.webrtc.removeTrack(t)}setTargetTrackEncoding(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return this.webrtc.setTargetTrackEncoding(t,n)}enableTrackEncoding(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return this.webrtc.enableTrackEncoding(t,n)}disableTrackEncoding(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return this.webrtc.disableTrackEncoding(t,n)}updatePeerMetadata=t=>{if(!this.webrtc)throw this.handleWebRTCNotInitialized();this.webrtc.updateEndpointMetadata(t)};updateTrackMetadata=(t,n)=>{if(!this.webrtc)throw this.handleWebRTCNotInitialized();this.webrtc.updateTrackMetadata(t,n)};isReconnecting(){return this.reconnectManager.isReconnecting()}getDataChannelsReadiness(){return this.webrtc?.getDataChannelsReadiness()??!1}leave=()=>{if(!this.webrtc)throw this.handleWebRTCNotInitialized();this.webrtc.disconnect()};isOpen(t){return t?.readyState===1}createDataChannels(){if(!this.webrtc)throw this.handleWebRTCNotInitialized();return this.webrtc.connectDataChannels()}publishData(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();let i=vt.encode({source:"mock",destinations:["*"],binary:{data:t}}).finish();this.webrtc.publishData(i,n)}subscribeData(t,n){if(!this.webrtc)throw this.handleWebRTCNotInitialized();let i=({channelType:r,data:a})=>{if(!(n.reliable&&r!=="reliable")&&!(!n.reliable&&r!=="lossy"))try{let{binary:d}=vt.decode(a);d&&t(d.data)}catch(d){this.logger.warn(`Received invalid channel message, error: ${d}`)}};return this.webrtc.on("dataChannelPayload",i),()=>this.webrtc?.off("dataChannelPayload",i)}disconnect(){try{this.webrtc?.removeAllListeners(),this.webrtc?.disconnect(),this.webrtc?.cleanUp()}catch(t){this.logger.warn(t)}this.removeEventListeners?.(),this.removeEventListeners=null,this.isOpen(this.websocket||null)&&this.websocket?.close(),this.websocket=null,this.webrtc=null,this.cameraStream=new MediaStream,this.screenShareStream=new MediaStream,this.trackIdToTrack.clear(),this.emit("disconnected")}cleanup(){this.reconnectManager.cleanup()}getLocalTrackAudioLevel(t){return this.webrtc?.getLocalTrackAudioLevel(t)??Promise.resolve(null)}};var Jr=(r=>(r.UNAUTHORIZED="unauthorized",r.STREAM_NOT_FOUND="stream_not_found",r.UNKNOWN_ERROR="unknown_error",r.STREAMER_ALREADY_CONNECTED="streamer_already_connected",r))(Jr||{});async function Ui(e,t,n){let i=new RTCPeerConnection({bundlePolicy:"max-bundle"});i.addTransceiver("video",{direction:"recvonly"}),i.addTransceiver("audio",{direction:"recvonly"}),i.onconnectionstatechange=d=>n?.onConnectionStateChange?.(i);let{WHEPClient:r}=await Promise.resolve().then(()=>(Rr(),Cr)),a=new r;return new Promise((d,c)=>{i.ontrack=u=>{let f=u.streams[0];f&&d({getStatistics:()=>i.getStats(),stream:f,stop:async()=>{await a.stop(),n?.onConnectionStateChange?.(i)}})},a.view(i,e,t).catch(u=>{if(u instanceof Error){let f="unknown_error";u.message.includes("401")?f="unauthorized":u.message.includes("404")&&(f="stream_not_found"),c(f)}})})}async function Vi(e,t,n,i){let r=new RTCPeerConnection({bundlePolicy:"max-bundle"});r.onconnectionstatechange=f=>i?.onConnectionStateChange?.(r);let a=e.getVideoTracks().at(0),d=e.getAudioTracks().at(0);if(!a&&!d)throw Error("To publish a livestream with WHIP, you need to supply at least one video or audio track.");a&&r.addTransceiver(a,{direction:"sendonly"}),d&&r.addTransceiver(d,{direction:"sendonly"});let{WHIPClient:c}=await Promise.resolve().then(()=>(xr(),Nr)),u=new c;try{await u.publish(r,t,n)}catch(f){if(f instanceof Error){if(f.message.includes("401"))throw"unauthorized";if(f.message.includes("404"))throw"stream_not_found";if(f.message.includes("409"))throw"streamer_already_connected"}throw"unknown_error"}return{getStatistics:()=>r.getStats(),stopPublishing:async()=>{await u.stop(),i?.onConnectionStateChange?.(r)}}}export{un as AUTH_ERROR_REASONS,rn as FishjamClient,_r as JOIN_ERRORS,Jr as LivestreamError,Ue as SimulcastConfig,st as TrackTypeError,ki as Variant,gr as WebRTCEndpoint,an as getLogger,dt as isAuthError,ft as isJoinError,ot as normalizeCloseReason,Vi as publishLivestream,Ui as receiveLivestream};