@fishjam-cloud/ts-client
Version:
Typescript client library for Fishjam
17 lines • 189 kB
JavaScript
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
a=ice-pwd:`+this.icePassword+`\r
`,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
a=mid:`+f.mid+`\r
`;for(let p of f.candidates)r+="a="+p.candidate+`\r
`;n&&(r+=`a=end-of-candidates\r
`)}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
`),v.sdp=v.sdp.replaceAll(/(a=ice-pwd:)(.*)\r\n/gm,"$1"+T+`\r
`),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
a=ice-pwd:`+this.icePassword+`\r
`,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
a=mid:`+f.mid+`\r
`;for(let p of f.candidates)r+="a="+p.candidate+`\r
`;n&&(r+=`a=end-of-candidates\r
`)}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
`),v.sdp=v.sdp.replaceAll(/(a=ice-pwd:)(.*)\r\n/gm,"$1"+T+`\r
`),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)?Qr(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=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 Qr(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 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.end