@fishjam-cloud/ts-client 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +6 -1
- package/dist/index.mjs +1 -1
- package/package.json +3 -3
package/dist/index.d.mts
CHANGED
|
@@ -1329,6 +1329,11 @@ type ReceiveLivestreamResult = {
|
|
|
1329
1329
|
stream: MediaStream;
|
|
1330
1330
|
stop: () => Promise<void>;
|
|
1331
1331
|
};
|
|
1332
|
+
declare enum LivestreamError {
|
|
1333
|
+
UNAUTHORIZED = "unauthorized",
|
|
1334
|
+
STREAM_NOT_FOUND = "stream_not_found",
|
|
1335
|
+
UNKNOWN_ERROR = "unknown_error"
|
|
1336
|
+
}
|
|
1332
1337
|
declare function receiveLivestream(url: string, token: string): Promise<ReceiveLivestreamResult>;
|
|
1333
1338
|
|
|
1334
|
-
export { AUTH_ERROR_REASONS, type AuthErrorReason, type BandwidthLimit, type Component, type ConnectConfig, type CreateConfig, type EncodingReason, type Endpoint, FishjamClient, type FishjamTrackContext, type GenericMetadata, JOIN_ERRORS, type JoinErrorReason, type MediaEvent, type MessageEvents, type Metadata, type Peer, type ReceiveLivestreamResult, type ReconnectConfig, type ReconnectionStatus, type SerializedMediaEvent, type SimulcastBandwidthLimit, MediaEvent_Track_SimulcastConfig as SimulcastConfig, type TrackBandwidthLimit, type TrackContext, type TrackContextEvents, type TrackKind, type TrackMetadata, TrackTypeError, type VadStatus, Variant, WebRTCEndpoint, type WebRTCEndpointEvents, isAuthError, isJoinError, receiveLivestream };
|
|
1339
|
+
export { AUTH_ERROR_REASONS, type AuthErrorReason, type BandwidthLimit, type Component, type ConnectConfig, type CreateConfig, type EncodingReason, type Endpoint, FishjamClient, type FishjamTrackContext, type GenericMetadata, JOIN_ERRORS, type JoinErrorReason, LivestreamError, type MediaEvent, type MessageEvents, type Metadata, type Peer, type ReceiveLivestreamResult, type ReconnectConfig, type ReconnectionStatus, type SerializedMediaEvent, type SimulcastBandwidthLimit, MediaEvent_Track_SimulcastConfig as SimulcastConfig, type TrackBandwidthLimit, type TrackContext, type TrackContextEvents, type TrackKind, type TrackMetadata, TrackTypeError, type VadStatus, Variant, WebRTCEndpoint, type WebRTCEndpointEvents, isAuthError, isJoinError, receiveLivestream };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var wt=["missing token","invalid token","expired token","room not found","peer not found"],Qe=e=>wt.includes(e);var ze=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")}};import{BinaryReader as N,BinaryWriter as Ze}from"@bufbuild/protobuf/wire";import{BinaryReader as l,BinaryWriter as h}from"@bufbuild/protobuf/wire";import{BinaryReader as Jt,BinaryWriter as Sa}from"@bufbuild/protobuf/wire";function P(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 w(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 bt(){return{candidate:"",sdpMLineIndex:0,sdpMid:"",usernameFragment:""}}var _={encode(e,t=new Sa){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 Jt?e:new Jt(e),i=t===void 0?n.len:n.pos+t,r=bt();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:tt(e.candidate)?globalThis.String(e.candidate):"",sdpMLineIndex:tt(e.sdpMLineIndex)?globalThis.Number(e.sdpMLineIndex):0,sdpMid:tt(e.sdpMid)?globalThis.String(e.sdpMid):"",usernameFragment:tt(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 _.fromPartial(e??{})},fromPartial(e){let t=bt();return t.candidate=e.candidate??"",t.sdpMLineIndex=e.sdpMLineIndex??0,t.sdpMid=e.sdpMid??"",t.usernameFragment=e.usernameFragment??"",t}};function tt(e){return e!=null}function Nt(){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 C={encode(e,t=new h){return e.connect!==void 0&&Z.encode(e.connect,t.uint32(10).fork()).join(),e.disconnect!==void 0&&X.encode(e.disconnect,t.uint32(18).fork()).join(),e.updateEndpointMetadata!==void 0&&j.encode(e.updateEndpointMetadata,t.uint32(26).fork()).join(),e.updateTrackMetadata!==void 0&&ee.encode(e.updateTrackMetadata,t.uint32(34).fork()).join(),e.renegotiateTracks!==void 0&&te.encode(e.renegotiateTracks,t.uint32(42).fork()).join(),e.candidate!==void 0&&_.encode(e.candidate,t.uint32(50).fork()).join(),e.sdpOffer!==void 0&&ne.encode(e.sdpOffer,t.uint32(58).fork()).join(),e.trackBitrates!==void 0&&S.encode(e.trackBitrates,t.uint32(66).fork()).join(),e.enableTrackVariant!==void 0&&re.encode(e.enableTrackVariant,t.uint32(74).fork()).join(),e.disableTrackVariant!==void 0&&ae.encode(e.disableTrackVariant,t.uint32(82).fork()).join(),e.setTargetTrackVariant!==void 0&&ie.encode(e.setTargetTrackVariant,t.uint32(90).fork()).join(),e.unmuteTrack!==void 0&&de.encode(e.unmuteTrack,t.uint32(98).fork()).join(),t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Nt();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.connect=Z.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.disconnect=X.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.updateEndpointMetadata=j.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.updateTrackMetadata=ee.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.renegotiateTracks=te.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.candidate=_.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.sdpOffer=ne.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.trackBitrates=S.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.enableTrackVariant=re.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.disableTrackVariant=ae.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.setTargetTrackVariant=ie.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.unmuteTrack=de.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{connect:f(e.connect)?Z.fromJSON(e.connect):void 0,disconnect:f(e.disconnect)?X.fromJSON(e.disconnect):void 0,updateEndpointMetadata:f(e.updateEndpointMetadata)?j.fromJSON(e.updateEndpointMetadata):void 0,updateTrackMetadata:f(e.updateTrackMetadata)?ee.fromJSON(e.updateTrackMetadata):void 0,renegotiateTracks:f(e.renegotiateTracks)?te.fromJSON(e.renegotiateTracks):void 0,candidate:f(e.candidate)?_.fromJSON(e.candidate):void 0,sdpOffer:f(e.sdpOffer)?ne.fromJSON(e.sdpOffer):void 0,trackBitrates:f(e.trackBitrates)?S.fromJSON(e.trackBitrates):void 0,enableTrackVariant:f(e.enableTrackVariant)?re.fromJSON(e.enableTrackVariant):void 0,disableTrackVariant:f(e.disableTrackVariant)?ae.fromJSON(e.disableTrackVariant):void 0,setTargetTrackVariant:f(e.setTargetTrackVariant)?ie.fromJSON(e.setTargetTrackVariant):void 0,unmuteTrack:f(e.unmuteTrack)?de.fromJSON(e.unmuteTrack):void 0}},toJSON(e){let t={};return e.connect!==void 0&&(t.connect=Z.toJSON(e.connect)),e.disconnect!==void 0&&(t.disconnect=X.toJSON(e.disconnect)),e.updateEndpointMetadata!==void 0&&(t.updateEndpointMetadata=j.toJSON(e.updateEndpointMetadata)),e.updateTrackMetadata!==void 0&&(t.updateTrackMetadata=ee.toJSON(e.updateTrackMetadata)),e.renegotiateTracks!==void 0&&(t.renegotiateTracks=te.toJSON(e.renegotiateTracks)),e.candidate!==void 0&&(t.candidate=_.toJSON(e.candidate)),e.sdpOffer!==void 0&&(t.sdpOffer=ne.toJSON(e.sdpOffer)),e.trackBitrates!==void 0&&(t.trackBitrates=S.toJSON(e.trackBitrates)),e.enableTrackVariant!==void 0&&(t.enableTrackVariant=re.toJSON(e.enableTrackVariant)),e.disableTrackVariant!==void 0&&(t.disableTrackVariant=ae.toJSON(e.disableTrackVariant)),e.setTargetTrackVariant!==void 0&&(t.setTargetTrackVariant=ie.toJSON(e.setTargetTrackVariant)),e.unmuteTrack!==void 0&&(t.unmuteTrack=de.toJSON(e.unmuteTrack)),t},create(e){return C.fromPartial(e??{})},fromPartial(e){let t=Nt();return t.connect=e.connect!==void 0&&e.connect!==null?Z.fromPartial(e.connect):void 0,t.disconnect=e.disconnect!==void 0&&e.disconnect!==null?X.fromPartial(e.disconnect):void 0,t.updateEndpointMetadata=e.updateEndpointMetadata!==void 0&&e.updateEndpointMetadata!==null?j.fromPartial(e.updateEndpointMetadata):void 0,t.updateTrackMetadata=e.updateTrackMetadata!==void 0&&e.updateTrackMetadata!==null?ee.fromPartial(e.updateTrackMetadata):void 0,t.renegotiateTracks=e.renegotiateTracks!==void 0&&e.renegotiateTracks!==null?te.fromPartial(e.renegotiateTracks):void 0,t.candidate=e.candidate!==void 0&&e.candidate!==null?_.fromPartial(e.candidate):void 0,t.sdpOffer=e.sdpOffer!==void 0&&e.sdpOffer!==null?ne.fromPartial(e.sdpOffer):void 0,t.trackBitrates=e.trackBitrates!==void 0&&e.trackBitrates!==null?S.fromPartial(e.trackBitrates):void 0,t.enableTrackVariant=e.enableTrackVariant!==void 0&&e.enableTrackVariant!==null?re.fromPartial(e.enableTrackVariant):void 0,t.disableTrackVariant=e.disableTrackVariant!==void 0&&e.disableTrackVariant!==null?ae.fromPartial(e.disableTrackVariant):void 0,t.setTargetTrackVariant=e.setTargetTrackVariant!==void 0&&e.setTargetTrackVariant!==null?ie.fromPartial(e.setTargetTrackVariant):void 0,t.unmuteTrack=e.unmuteTrack!==void 0&&e.unmuteTrack!==null?de.fromPartial(e.unmuteTrack):void 0,t}};function Rt(){return{variant:0,bitrate:0}}var z={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Rt();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:f(e.variant)?P(e.variant):0,bitrate:f(e.bitrate)?globalThis.Number(e.bitrate):0}},toJSON(e){let t={};return e.variant!==0&&(t.variant=w(e.variant)),e.bitrate!==0&&(t.bitrate=Math.round(e.bitrate)),t},create(e){return z.fromPartial(e??{})},fromPartial(e){let t=Rt();return t.variant=e.variant??0,t.bitrate=e.bitrate??0,t}};function Ct(){return{metadataJson:""}}var Z={encode(e,t=new h){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Ct();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:f(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=Ct();return t.metadataJson=e.metadataJson??"",t}};function xt(){return{}}var X={encode(e,t=new h){return t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=xt();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 xt()}};function At(){return{metadataJson:""}}var j={encode(e,t=new h){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=At();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:f(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return j.fromPartial(e??{})},fromPartial(e){let t=At();return t.metadataJson=e.metadataJson??"",t}};function Bt(){return{trackId:"",metadataJson:""}}var ee={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Bt();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:f(e.trackId)?globalThis.String(e.trackId):"",metadataJson:f(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 ee.fromPartial(e??{})},fromPartial(e){let t=Bt();return t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function Vt(){return{}}var te={encode(e,t=new h){return t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Vt();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 te.fromPartial(e??{})},fromPartial(e){return Vt()}};function Dt(){return{sdp:"",trackIdToMetadataJson:{},trackIdToBitrates:{},midToTrackId:{}}}var ne={encode(e,t=new h){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.trackIdToMetadataJson).forEach(([n,i])=>{st.encode({key:n,value:i},t.uint32(18).fork()).join()}),Object.entries(e.trackIdToBitrates).forEach(([n,i])=>{ut.encode({key:n,value:i},t.uint32(26).fork()).join()}),Object.entries(e.midToTrackId).forEach(([n,i])=>{ft.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Dt();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=st.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToMetadataJson[d.key]=d.value);continue}case 3:{if(a!==26)break;let d=ut.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToBitrates[d.key]=d.value);continue}case 4:{if(a!==34)break;let d=ft.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):"",trackIdToMetadataJson:ct(e.trackIdToMetadataJson)?Object.entries(e.trackIdToMetadataJson).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{},trackIdToBitrates:ct(e.trackIdToBitrates)?Object.entries(e.trackIdToBitrates).reduce((t,[n,i])=>(t[n]=S.fromJSON(i),t),{}):{},midToTrackId:ct(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]=S.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 ne.fromPartial(e??{})},fromPartial(e){let t=Dt();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]=S.fromPartial(r)),n),{}),t.midToTrackId=Object.entries(e.midToTrackId??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t}};function Ut(){return{key:"",value:""}}var st={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Ut();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 st.fromPartial(e??{})},fromPartial(e){let t=Ut();return t.key=e.key??"",t.value=e.value??"",t}};function Lt(){return{key:"",value:void 0}}var ut={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Lt();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:f(e.key)?globalThis.String(e.key):"",value:f(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 ut.fromPartial(e??{})},fromPartial(e){let t=Lt();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?S.fromPartial(e.value):void 0,t}};function Ft(){return{key:"",value:""}}var ft={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Ft();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 ft.fromPartial(e??{})},fromPartial(e){let t=Ft();return t.key=e.key??"",t.value=e.value??"",t}};function Wt(){return{trackId:"",variantBitrates:[]}}var S={encode(e,t=new h){e.trackId!==""&&t.uint32(10).string(e.trackId);for(let n of e.variantBitrates)z.encode(n,t.uint32(18).fork()).join();return t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Wt();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(z.decode(n,n.uint32()));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):"",variantBitrates:globalThis.Array.isArray(e?.variantBitrates)?e.variantBitrates.map(t=>z.fromJSON(t)):[]}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variantBitrates?.length&&(t.variantBitrates=e.variantBitrates.map(n=>z.toJSON(n))),t},create(e){return S.fromPartial(e??{})},fromPartial(e){let t=Wt();return t.trackId=e.trackId??"",t.variantBitrates=e.variantBitrates?.map(n=>z.fromPartial(n))||[],t}};function qt(){return{trackId:"",variant:0}}var ae={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=qt();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:f(e.trackId)?globalThis.String(e.trackId):"",variant:f(e.variant)?P(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=w(e.variant)),t},create(e){return ae.fromPartial(e??{})},fromPartial(e){let t=qt();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Ht(){return{trackId:"",variant:0}}var re={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Ht();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:f(e.trackId)?globalThis.String(e.trackId):"",variant:f(e.variant)?P(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=w(e.variant)),t},create(e){return re.fromPartial(e??{})},fromPartial(e){let t=Ht();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function $t(){return{trackId:"",variant:0}}var ie={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=$t();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:f(e.trackId)?globalThis.String(e.trackId):"",variant:f(e.variant)?P(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=w(e.variant)),t},create(e){return ie.fromPartial(e??{})},fromPartial(e){let t=$t();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Kt(){return{trackId:""}}var de={encode(e,t=new h){return e.trackId!==""&&t.uint32(10).string(e.trackId),t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Kt();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:f(e.trackId)?globalThis.String(e.trackId):""}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),t},create(e){return de.fromPartial(e??{})},fromPartial(e){let t=Kt();return t.trackId=e.trackId??"",t}};function ct(e){return typeof e=="object"&&e!==null}function f(e){return e!=null}import{BinaryReader as s,BinaryWriter as v}from"@bufbuild/protobuf/wire";function _a(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 ga(e){switch(e){case 0:return"STATUS_UNSPECIFIED";case 1:return"STATUS_SILENCE";case 2:return"STATUS_SPEECH";case-1:default:return"UNRECOGNIZED"}}function Gt(){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 A={encode(e,t=new v){return e.endpointUpdated!==void 0&&se.encode(e.endpointUpdated,t.uint32(10).fork()).join(),e.trackUpdated!==void 0&&ue.encode(e.trackUpdated,t.uint32(18).fork()).join(),e.tracksAdded!==void 0&&fe.encode(e.tracksAdded,t.uint32(26).fork()).join(),e.tracksRemoved!==void 0&&ke.encode(e.tracksRemoved,t.uint32(34).fork()).join(),e.endpointAdded!==void 0&&le.encode(e.endpointAdded,t.uint32(42).fork()).join(),e.endpointRemoved!==void 0&&ve.encode(e.endpointRemoved,t.uint32(50).fork()).join(),e.connected!==void 0&&pe.encode(e.connected,t.uint32(58).fork()).join(),e.error!==void 0&&Te.encode(e.error,t.uint32(66).fork()).join(),e.offerData!==void 0&&Ee.encode(e.offerData,t.uint32(74).fork()).join(),e.candidate!==void 0&&_.encode(e.candidate,t.uint32(82).fork()).join(),e.sdpAnswer!==void 0&&Me.encode(e.sdpAnswer,t.uint32(90).fork()).join(),e.vadNotification!==void 0&&he.encode(e.vadNotification,t.uint32(98).fork()).join(),e.trackVariantSwitched!==void 0&&me.encode(e.trackVariantSwitched,t.uint32(106).fork()).join(),e.trackVariantDisabled!==void 0&&ye.encode(e.trackVariantDisabled,t.uint32(114).fork()).join(),e.trackVariantEnabled!==void 0&&Se.encode(e.trackVariantEnabled,t.uint32(122).fork()).join(),t},decode(e,t){let n=e instanceof s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=Gt();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointUpdated=se.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.trackUpdated=ue.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.tracksAdded=fe.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.tracksRemoved=ke.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.endpointAdded=le.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.endpointRemoved=ve.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.connected=pe.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.error=Te.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.offerData=Ee.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.candidate=_.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.sdpAnswer=Me.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.vadNotification=he.decode(n,n.uint32());continue}case 13:{if(a!==106)break;r.trackVariantSwitched=me.decode(n,n.uint32());continue}case 14:{if(a!==114)break;r.trackVariantDisabled=ye.decode(n,n.uint32());continue}case 15:{if(a!==122)break;r.trackVariantEnabled=Se.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointUpdated:o(e.endpointUpdated)?se.fromJSON(e.endpointUpdated):void 0,trackUpdated:o(e.trackUpdated)?ue.fromJSON(e.trackUpdated):void 0,tracksAdded:o(e.tracksAdded)?fe.fromJSON(e.tracksAdded):void 0,tracksRemoved:o(e.tracksRemoved)?ke.fromJSON(e.tracksRemoved):void 0,endpointAdded:o(e.endpointAdded)?le.fromJSON(e.endpointAdded):void 0,endpointRemoved:o(e.endpointRemoved)?ve.fromJSON(e.endpointRemoved):void 0,connected:o(e.connected)?pe.fromJSON(e.connected):void 0,error:o(e.error)?Te.fromJSON(e.error):void 0,offerData:o(e.offerData)?Ee.fromJSON(e.offerData):void 0,candidate:o(e.candidate)?_.fromJSON(e.candidate):void 0,sdpAnswer:o(e.sdpAnswer)?Me.fromJSON(e.sdpAnswer):void 0,vadNotification:o(e.vadNotification)?he.fromJSON(e.vadNotification):void 0,trackVariantSwitched:o(e.trackVariantSwitched)?me.fromJSON(e.trackVariantSwitched):void 0,trackVariantDisabled:o(e.trackVariantDisabled)?ye.fromJSON(e.trackVariantDisabled):void 0,trackVariantEnabled:o(e.trackVariantEnabled)?Se.fromJSON(e.trackVariantEnabled):void 0}},toJSON(e){let t={};return e.endpointUpdated!==void 0&&(t.endpointUpdated=se.toJSON(e.endpointUpdated)),e.trackUpdated!==void 0&&(t.trackUpdated=ue.toJSON(e.trackUpdated)),e.tracksAdded!==void 0&&(t.tracksAdded=fe.toJSON(e.tracksAdded)),e.tracksRemoved!==void 0&&(t.tracksRemoved=ke.toJSON(e.tracksRemoved)),e.endpointAdded!==void 0&&(t.endpointAdded=le.toJSON(e.endpointAdded)),e.endpointRemoved!==void 0&&(t.endpointRemoved=ve.toJSON(e.endpointRemoved)),e.connected!==void 0&&(t.connected=pe.toJSON(e.connected)),e.error!==void 0&&(t.error=Te.toJSON(e.error)),e.offerData!==void 0&&(t.offerData=Ee.toJSON(e.offerData)),e.candidate!==void 0&&(t.candidate=_.toJSON(e.candidate)),e.sdpAnswer!==void 0&&(t.sdpAnswer=Me.toJSON(e.sdpAnswer)),e.vadNotification!==void 0&&(t.vadNotification=he.toJSON(e.vadNotification)),e.trackVariantSwitched!==void 0&&(t.trackVariantSwitched=me.toJSON(e.trackVariantSwitched)),e.trackVariantDisabled!==void 0&&(t.trackVariantDisabled=ye.toJSON(e.trackVariantDisabled)),e.trackVariantEnabled!==void 0&&(t.trackVariantEnabled=Se.toJSON(e.trackVariantEnabled)),t},create(e){return A.fromPartial(e??{})},fromPartial(e){let t=Gt();return t.endpointUpdated=e.endpointUpdated!==void 0&&e.endpointUpdated!==null?se.fromPartial(e.endpointUpdated):void 0,t.trackUpdated=e.trackUpdated!==void 0&&e.trackUpdated!==null?ue.fromPartial(e.trackUpdated):void 0,t.tracksAdded=e.tracksAdded!==void 0&&e.tracksAdded!==null?fe.fromPartial(e.tracksAdded):void 0,t.tracksRemoved=e.tracksRemoved!==void 0&&e.tracksRemoved!==null?ke.fromPartial(e.tracksRemoved):void 0,t.endpointAdded=e.endpointAdded!==void 0&&e.endpointAdded!==null?le.fromPartial(e.endpointAdded):void 0,t.endpointRemoved=e.endpointRemoved!==void 0&&e.endpointRemoved!==null?ve.fromPartial(e.endpointRemoved):void 0,t.connected=e.connected!==void 0&&e.connected!==null?pe.fromPartial(e.connected):void 0,t.error=e.error!==void 0&&e.error!==null?Te.fromPartial(e.error):void 0,t.offerData=e.offerData!==void 0&&e.offerData!==null?Ee.fromPartial(e.offerData):void 0,t.candidate=e.candidate!==void 0&&e.candidate!==null?_.fromPartial(e.candidate):void 0,t.sdpAnswer=e.sdpAnswer!==void 0&&e.sdpAnswer!==null?Me.fromPartial(e.sdpAnswer):void 0,t.vadNotification=e.vadNotification!==void 0&&e.vadNotification!==null?he.fromPartial(e.vadNotification):void 0,t.trackVariantSwitched=e.trackVariantSwitched!==void 0&&e.trackVariantSwitched!==null?me.fromPartial(e.trackVariantSwitched):void 0,t.trackVariantDisabled=e.trackVariantDisabled!==void 0&&e.trackVariantDisabled!==null?ye.fromPartial(e.trackVariantDisabled):void 0,t.trackVariantEnabled=e.trackVariantEnabled!==void 0&&e.trackVariantEnabled!==null?Se.fromPartial(e.trackVariantEnabled):void 0,t}};function Yt(){return{metadataJson:"",simulcastConfig:void 0}}var I={encode(e,t=new v){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),e.simulcastConfig!==void 0&&oe.encode(e.simulcastConfig,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=Yt();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=oe.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:o(e.metadataJson)?globalThis.String(e.metadataJson):"",simulcastConfig:o(e.simulcastConfig)?oe.fromJSON(e.simulcastConfig):void 0}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),e.simulcastConfig!==void 0&&(t.simulcastConfig=oe.toJSON(e.simulcastConfig)),t},create(e){return I.fromPartial(e??{})},fromPartial(e){let t=Yt();return t.metadataJson=e.metadataJson??"",t.simulcastConfig=e.simulcastConfig!==void 0&&e.simulcastConfig!==null?oe.fromPartial(e.simulcastConfig):void 0,t}};function Qt(){return{enabled:!1,enabledVariants:[],disabledVariants:[]}}var oe={encode(e,t=new v){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 s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=Qt();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:o(e.enabled)?globalThis.Boolean(e.enabled):!1,enabledVariants:globalThis.Array.isArray(e?.enabledVariants)?e.enabledVariants.map(t=>P(t)):[],disabledVariants:globalThis.Array.isArray(e?.disabledVariants)?e.disabledVariants.map(t=>P(t)):[]}},toJSON(e){let t={};return e.enabled!==!1&&(t.enabled=e.enabled),e.enabledVariants?.length&&(t.enabledVariants=e.enabledVariants.map(n=>w(n))),e.disabledVariants?.length&&(t.disabledVariants=e.disabledVariants.map(n=>w(n))),t},create(e){return oe.fromPartial(e??{})},fromPartial(e){let t=Qt();return t.enabled=e.enabled??!1,t.enabledVariants=e.enabledVariants?.map(n=>n)||[],t.disabledVariants=e.disabledVariants?.map(n=>n)||[],t}};function zt(){return{endpointType:"",metadataJson:"",trackIdToTrack:{}}}var x={encode(e,t=new v){return e.endpointType!==""&&t.uint32(18).string(e.endpointType),e.metadataJson!==""&&t.uint32(26).string(e.metadataJson),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{kt.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=zt();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=kt.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:o(e.endpointType)?globalThis.String(e.endpointType):"",metadataJson:o(e.metadataJson)?globalThis.String(e.metadataJson):"",trackIdToTrack:nt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=I.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]=I.toJSON(r)}))}return t},create(e){return x.fromPartial(e??{})},fromPartial(e){let t=zt();return t.endpointType=e.endpointType??"",t.metadataJson=e.metadataJson??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=I.fromPartial(r)),n),{}),t}};function Zt(){return{key:"",value:void 0}}var kt={encode(e,t=new v){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&I.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=Zt();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=I.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:o(e.key)?globalThis.String(e.key):"",value:o(e.value)?I.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=I.toJSON(e.value)),t},create(e){return kt.fromPartial(e??{})},fromPartial(e){let t=Zt();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?I.fromPartial(e.value):void 0,t}};function Xt(){return{credential:"",urls:[],username:""}}var ce={encode(e,t=new v){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 s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=Xt();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:o(e.credential)?globalThis.String(e.credential):"",urls:globalThis.Array.isArray(e?.urls)?e.urls.map(t=>globalThis.String(t)):[],username:o(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 ce.fromPartial(e??{})},fromPartial(e){let t=Xt();return t.credential=e.credential??"",t.urls=e.urls?.map(n=>n)||[],t.username=e.username??"",t}};function jt(){return{endpointId:"",metadataJson:""}}var se={encode(e,t=new v){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 s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=jt();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:o(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:o(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 se.fromPartial(e??{})},fromPartial(e){let t=jt();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function en(){return{endpointId:"",trackId:"",metadataJson:""}}var ue={encode(e,t=new v){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 s?e:new s(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.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:o(e.endpointId)?globalThis.String(e.endpointId):"",trackId:o(e.trackId)?globalThis.String(e.trackId):"",metadataJson:o(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 ue.fromPartial(e??{})},fromPartial(e){let t=en();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function tn(){return{endpointId:"",trackIdToTrack:{}}}var fe={encode(e,t=new v){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{lt.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=tn();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=lt.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:o(e.endpointId)?globalThis.String(e.endpointId):"",trackIdToTrack:nt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=I.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]=I.toJSON(r)}))}return t},create(e){return fe.fromPartial(e??{})},fromPartial(e){let t=tn();return t.endpointId=e.endpointId??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=I.fromPartial(r)),n),{}),t}};function nn(){return{key:"",value:void 0}}var lt={encode(e,t=new v){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&I.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof s?e:new s(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=I.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:o(e.key)?globalThis.String(e.key):"",value:o(e.value)?I.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=I.toJSON(e.value)),t},create(e){return lt.fromPartial(e??{})},fromPartial(e){let t=nn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?I.fromPartial(e.value):void 0,t}};function an(){return{endpointId:"",trackIds:[]}}var ke={encode(e,t=new v){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 s?e:new s(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.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:o(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 ke.fromPartial(e??{})},fromPartial(e){let t=an();return t.endpointId=e.endpointId??"",t.trackIds=e.trackIds?.map(n=>n)||[],t}};function rn(){return{endpointId:"",metadataJson:""}}var le={encode(e,t=new v){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 s?e:new s(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.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:o(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:o(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=rn();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function dn(){return{endpointId:"",endpointIdToEndpoint:{},iceServers:[]}}var pe={encode(e,t=new v){e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.endpointIdToEndpoint).forEach(([n,i])=>{pt.encode({key:n,value:i},t.uint32(18).fork()).join()});for(let n of e.iceServers)ce.encode(n,t.uint32(26).fork()).join();return t},decode(e,t){let n=e instanceof s?e:new s(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.endpointId=n.string();continue}case 2:{if(a!==18)break;let d=pt.decode(n,n.uint32());d.value!==void 0&&(r.endpointIdToEndpoint[d.key]=d.value);continue}case 3:{if(a!==26)break;r.iceServers.push(ce.decode(n,n.uint32()));continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:o(e.endpointId)?globalThis.String(e.endpointId):"",endpointIdToEndpoint:nt(e.endpointIdToEndpoint)?Object.entries(e.endpointIdToEndpoint).reduce((t,[n,i])=>(t[n]=x.fromJSON(i),t),{}):{},iceServers:globalThis.Array.isArray(e?.iceServers)?e.iceServers.map(t=>ce.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]=x.toJSON(r)}))}return e.iceServers?.length&&(t.iceServers=e.iceServers.map(n=>ce.toJSON(n))),t},create(e){return pe.fromPartial(e??{})},fromPartial(e){let t=dn();return t.endpointId=e.endpointId??"",t.endpointIdToEndpoint=Object.entries(e.endpointIdToEndpoint??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=x.fromPartial(r)),n),{}),t.iceServers=e.iceServers?.map(n=>ce.fromPartial(n))||[],t}};function on(){return{key:"",value:void 0}}var pt={encode(e,t=new v){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&x.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof s?e:new s(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.key=n.string();continue}case 2:{if(a!==18)break;r.value=x.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:o(e.key)?globalThis.String(e.key):"",value:o(e.value)?x.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=x.toJSON(e.value)),t},create(e){return pt.fromPartial(e??{})},fromPartial(e){let t=on();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?x.fromPartial(e.value):void 0,t}};function cn(){return{endpointId:""}}var ve={encode(e,t=new v){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),t},decode(e,t){let n=e instanceof s?e:new s(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.endpointId=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:o(e.endpointId)?globalThis.String(e.endpointId):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),t},create(e){return ve.fromPartial(e??{})},fromPartial(e){let t=cn();return t.endpointId=e.endpointId??"",t}};function sn(){return{message:""}}var Te={encode(e,t=new v){return e.message!==""&&t.uint32(10).string(e.message),t},decode(e,t){let n=e instanceof s?e:new s(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.message=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{message:o(e.message)?globalThis.String(e.message):""}},toJSON(e){let t={};return e.message!==""&&(t.message=e.message),t},create(e){return Te.fromPartial(e??{})},fromPartial(e){let t=sn();return t.message=e.message??"",t}};function un(){return{tracksTypes:void 0}}var Ee={encode(e,t=new v){return e.tracksTypes!==void 0&&Ie.encode(e.tracksTypes,t.uint32(10).fork()).join(),t},decode(e,t){let n=e instanceof s?e:new s(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.tracksTypes=Ie.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{tracksTypes:o(e.tracksTypes)?Ie.fromJSON(e.tracksTypes):void 0}},toJSON(e){let t={};return e.tracksTypes!==void 0&&(t.tracksTypes=Ie.toJSON(e.tracksTypes)),t},create(e){return Ee.fromPartial(e??{})},fromPartial(e){let t=un();return t.tracksTypes=e.tracksTypes!==void 0&&e.tracksTypes!==null?Ie.fromPartial(e.tracksTypes):void 0,t}};function fn(){return{audio:0,video:0}}var Ie={encode(e,t=new v){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 s?e:new s(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!==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:o(e.audio)?globalThis.Number(e.audio):0,video:o(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 Ie.fromPartial(e??{})},fromPartial(e){let t=fn();return t.audio=e.audio??0,t.video=e.video??0,t}};function kn(){return{sdp:"",midToTrackId:{}}}var Me={encode(e,t=new v){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 s?e:new s(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.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:o(e.sdp)?globalThis.String(e.sdp):"",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.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 Me.fromPartial(e??{})},fromPartial(e){let t=kn();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 ln(){return{key:"",value:""}}var vt={encode(e,t=new v){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 s?e:new s(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!==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:o(e.key)?globalThis.String(e.key):"",value:o(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=ln();return t.key=e.key??"",t.value=e.value??"",t}};function pn(){return{trackId:"",status:0}}var he={encode(e,t=new v){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 s?e:new s(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.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:o(e.trackId)?globalThis.String(e.trackId):"",status:o(e.status)?_a(e.status):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.status!==0&&(t.status=ga(e.status)),t},create(e){return he.fromPartial(e??{})},fromPartial(e){let t=pn();return t.trackId=e.trackId??"",t.status=e.status??0,t}};function vn(){return{endpointId:"",trackId:"",variant:0}}var me={encode(e,t=new v){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 s?e:new s(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.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:o(e.endpointId)?globalThis.String(e.endpointId):"",trackId:o(e.trackId)?globalThis.String(e.trackId):"",variant:o(e.variant)?P(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=w(e.variant)),t},create(e){return me.fromPartial(e??{})},fromPartial(e){let t=vn();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Tn(){return{endpointId:"",trackId:"",variant:0}}var ye={encode(e,t=new v){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 s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=Tn();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:o(e.endpointId)?globalThis.String(e.endpointId):"",trackId:o(e.trackId)?globalThis.String(e.trackId):"",variant:o(e.variant)?P(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=w(e.variant)),t},create(e){return ye.fromPartial(e??{})},fromPartial(e){let t=Tn();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function En(){return{endpointId:"",trackId:"",variant:0}}var Se={encode(e,t=new v){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 s?e:new s(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.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:o(e.endpointId)?globalThis.String(e.endpointId):"",trackId:o(e.trackId)?globalThis.String(e.trackId):"",variant:o(e.variant)?P(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=w(e.variant)),t},create(e){return Se.fromPartial(e??{})},fromPartial(e){let t=En();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function nt(e){return typeof e=="object"&&e!==null}function o(e){return e!=null}function Oa(e){switch(e){case 0:case"ROOM_TYPE_UNSPECIFIED":return 0;case 1:case"ROOM_TYPE_FULL_FEATURE":return 1;case 2:case"ROOM_TYPE_AUDIO_ONLY":return 2;case 3:case"ROOM_TYPE_BROADCASTER":return 3;case-1:case"UNRECOGNIZED":default:return-1}}function Pa(e){switch(e){case 0:return"ROOM_TYPE_UNSPECIFIED";case 1:return"ROOM_TYPE_FULL_FEATURE";case 2:return"ROOM_TYPE_AUDIO_ONLY";case 3:return"ROOM_TYPE_BROADCASTER";case-1:default:return"UNRECOGNIZED"}}function In(){return{authenticated:void 0,authRequest:void 0,mediaEvent:void 0,rtcStatsReport:void 0,peerMediaEvent:void 0,serverMediaEvent:void 0}}var we={encode(e,t=new Ze){return e.authenticated!==void 0&&_e.encode(e.authenticated,t.uint32(10).fork()).join(),e.authRequest!==void 0&&ge.encode(e.authRequest,t.uint32(18).fork()).join(),e.mediaEvent!==void 0&&Pe.encode(e.mediaEvent,t.uint32(26).fork()).join(),e.rtcStatsReport!==void 0&&Oe.encode(e.rtcStatsReport,t.uint32(34).fork()).join(),e.peerMediaEvent!==void 0&&C.encode(e.peerMediaEvent,t.uint32(42).fork()).join(),e.serverMediaEvent!==void 0&&A.encode(e.serverMediaEvent,t.uint32(50).fork()).join(),t},decode(e,t){let n=e instanceof N?e:new N(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.authenticated=_e.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.authRequest=ge.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.mediaEvent=Pe.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.rtcStatsReport=Oe.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.peerMediaEvent=C.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.serverMediaEvent=A.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{authenticated:J(e.authenticated)?_e.fromJSON(e.authenticated):void 0,authRequest:J(e.authRequest)?ge.fromJSON(e.authRequest):void 0,mediaEvent:J(e.mediaEvent)?Pe.fromJSON(e.mediaEvent):void 0,rtcStatsReport:J(e.rtcStatsReport)?Oe.fromJSON(e.rtcStatsReport):void 0,peerMediaEvent:J(e.peerMediaEvent)?C.fromJSON(e.peerMediaEvent):void 0,serverMediaEvent:J(e.serverMediaEvent)?A.fromJSON(e.serverMediaEvent):void 0}},toJSON(e){let t={};return e.authenticated!==void 0&&(t.authenticated=_e.toJSON(e.authenticated)),e.authRequest!==void 0&&(t.authRequest=ge.toJSON(e.authRequest)),e.mediaEvent!==void 0&&(t.mediaEvent=Pe.toJSON(e.mediaEvent)),e.rtcStatsReport!==void 0&&(t.rtcStatsReport=Oe.toJSON(e.rtcStatsReport)),e.peerMediaEvent!==void 0&&(t.peerMediaEvent=C.toJSON(e.peerMediaEvent)),e.serverMediaEvent!==void 0&&(t.serverMediaEvent=A.toJSON(e.serverMediaEvent)),t},create(e){return we.fromPartial(e??{})},fromPartial(e){let t=In();return t.authenticated=e.authenticated!==void 0&&e.authenticated!==null?_e.fromPartial(e.authenticated):void 0,t.authRequest=e.authRequest!==void 0&&e.authRequest!==null?ge.fromPartial(e.authRequest):void 0,t.mediaEvent=e.mediaEvent!==void 0&&e.mediaEvent!==null?Pe.fromPartial(e.mediaEvent):void 0,t.rtcStatsReport=e.rtcStatsReport!==void 0&&e.rtcStatsReport!==null?Oe.fromPartial(e.rtcStatsReport):void 0,t.peerMediaEvent=e.peerMediaEvent!==void 0&&e.peerMediaEvent!==null?C.fromPartial(e.peerMediaEvent):void 0,t.serverMediaEvent=e.serverMediaEvent!==void 0&&e.serverMediaEvent!==null?A.fromPartial(e.serverMediaEvent):void 0,t}};function Mn(){return{roomType:0}}var _e={encode(e,t=new Ze){return e.roomType!==0&&t.uint32(8).int32(e.roomType),t},decode(e,t){let n=e instanceof N?e:new N(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!==8)break;r.roomType=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{roomType:J(e.roomType)?Oa(e.roomType):0}},toJSON(e){let t={};return e.roomType!==0&&(t.roomType=Pa(e.roomType)),t},create(e){return _e.fromPartial(e??{})},fromPartial(e){let t=Mn();return t.roomType=e.roomType??0,t}};function hn(){return{token:"",sdkVersion:""}}var ge={encode(e,t=new Ze){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 N?e:new N(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.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:J(e.token)?globalThis.String(e.token):"",sdkVersion:J(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 ge.fromPartial(e??{})},fromPartial(e){let t=hn();return t.token=e.token??"",t.sdkVersion=e.sdkVersion??"",t}};function mn(){return{data:""}}var Oe={encode(e,t=new Ze){return e.data!==""&&t.uint32(10).string(e.data),t},decode(e,t){let n=e instanceof N?e:new N(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.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{data:J(e.data)?globalThis.String(e.data):""}},toJSON(e){let t={};return e.data!==""&&(t.data=e.data),t},create(e){return Oe.fromPartial(e??{})},fromPartial(e){let t=mn();return t.data=e.data??"",t}};function yn(){return{data:""}}var Pe={encode(e,t=new Ze){return e.data!==""&&t.uint32(10).string(e.data),t},decode(e,t){let n=e instanceof N?e:new N(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.data=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{data:J(e.data)?globalThis.String(e.data):""}},toJSON(e){let t={};return e.data!==""&&(t.data=e.data),t},create(e){return Pe.fromPartial(e??{})},fromPartial(e){let t=yn();return t.data=e.data??"",t}};function J(e){return e!=null}import{BinaryReader as p,BinaryWriter as y}from"@bufbuild/protobuf/wire";import{BinaryReader as Sn,BinaryWriter as wa}from"@bufbuild/protobuf/wire";import ba from"events";import{v4 as Na}from"uuid";import{BinaryReader as u,BinaryWriter as T}from"@bufbuild/protobuf/wire";import Va from"events";var Ja=(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))(Ja||{});function D(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 U(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 _n(){return{candidate:"",sdpMLineIndex:0,sdpMid:"",usernameFragment:""}}var O={encode(e,t=new wa){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 Sn?e:new Sn(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.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:at(e.candidate)?globalThis.String(e.candidate):"",sdpMLineIndex:at(e.sdpMLineIndex)?globalThis.Number(e.sdpMLineIndex):0,sdpMid:at(e.sdpMid)?globalThis.String(e.sdpMid):"",usernameFragment:at(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=_n();return t.candidate=e.candidate??"",t.sdpMLineIndex=e.sdpMLineIndex??0,t.sdpMid=e.sdpMid??"",t.usernameFragment=e.usernameFragment??"",t}};function at(e){return e!=null}function gn(){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 Ge={encode(e,t=new y){return e.connect!==void 0&&W.encode(e.connect,t.uint32(10).fork()).join(),e.disconnect!==void 0&&q.encode(e.disconnect,t.uint32(18).fork()).join(),e.updateEndpointMetadata!==void 0&&H.encode(e.updateEndpointMetadata,t.uint32(26).fork()).join(),e.updateTrackMetadata!==void 0&&F.encode(e.updateTrackMetadata,t.uint32(34).fork()).join(),e.renegotiateTracks!==void 0&&B.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&&$.encode(e.sdpOffer,t.uint32(58).fork()).join(),e.trackBitrates!==void 0&&m.encode(e.trackBitrates,t.uint32(66).fork()).join(),e.enableTrackVariant!==void 0&&G.encode(e.enableTrackVariant,t.uint32(74).fork()).join(),e.disableTrackVariant!==void 0&&K.encode(e.disableTrackVariant,t.uint32(82).fork()).join(),e.setTargetTrackVariant!==void 0&&Y.encode(e.setTargetTrackVariant,t.uint32(90).fork()).join(),e.unmuteTrack!==void 0&&Q.encode(e.unmuteTrack,t.uint32(98).fork()).join(),t},decode(e,t){let n=e instanceof p?e:new p(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.connect=W.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.disconnect=q.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.updateEndpointMetadata=H.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.updateTrackMetadata=F.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.renegotiateTracks=B.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=$.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.trackBitrates=m.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.enableTrackVariant=G.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.disableTrackVariant=K.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.setTargetTrackVariant=Y.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.unmuteTrack=Q.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{connect:k(e.connect)?W.fromJSON(e.connect):void 0,disconnect:k(e.disconnect)?q.fromJSON(e.disconnect):void 0,updateEndpointMetadata:k(e.updateEndpointMetadata)?H.fromJSON(e.updateEndpointMetadata):void 0,updateTrackMetadata:k(e.updateTrackMetadata)?F.fromJSON(e.updateTrackMetadata):void 0,renegotiateTracks:k(e.renegotiateTracks)?B.fromJSON(e.renegotiateTracks):void 0,candidate:k(e.candidate)?O.fromJSON(e.candidate):void 0,sdpOffer:k(e.sdpOffer)?$.fromJSON(e.sdpOffer):void 0,trackBitrates:k(e.trackBitrates)?m.fromJSON(e.trackBitrates):void 0,enableTrackVariant:k(e.enableTrackVariant)?G.fromJSON(e.enableTrackVariant):void 0,disableTrackVariant:k(e.disableTrackVariant)?K.fromJSON(e.disableTrackVariant):void 0,setTargetTrackVariant:k(e.setTargetTrackVariant)?Y.fromJSON(e.setTargetTrackVariant):void 0,unmuteTrack:k(e.unmuteTrack)?Q.fromJSON(e.unmuteTrack):void 0}},toJSON(e){let t={};return e.connect!==void 0&&(t.connect=W.toJSON(e.connect)),e.disconnect!==void 0&&(t.disconnect=q.toJSON(e.disconnect)),e.updateEndpointMetadata!==void 0&&(t.updateEndpointMetadata=H.toJSON(e.updateEndpointMetadata)),e.updateTrackMetadata!==void 0&&(t.updateTrackMetadata=F.toJSON(e.updateTrackMetadata)),e.renegotiateTracks!==void 0&&(t.renegotiateTracks=B.toJSON(e.renegotiateTracks)),e.candidate!==void 0&&(t.candidate=O.toJSON(e.candidate)),e.sdpOffer!==void 0&&(t.sdpOffer=$.toJSON(e.sdpOffer)),e.trackBitrates!==void 0&&(t.trackBitrates=m.toJSON(e.trackBitrates)),e.enableTrackVariant!==void 0&&(t.enableTrackVariant=G.toJSON(e.enableTrackVariant)),e.disableTrackVariant!==void 0&&(t.disableTrackVariant=K.toJSON(e.disableTrackVariant)),e.setTargetTrackVariant!==void 0&&(t.setTargetTrackVariant=Y.toJSON(e.setTargetTrackVariant)),e.unmuteTrack!==void 0&&(t.unmuteTrack=Q.toJSON(e.unmuteTrack)),t},create(e){return Ge.fromPartial(e??{})},fromPartial(e){let t=gn();return t.connect=e.connect!==void 0&&e.connect!==null?W.fromPartial(e.connect):void 0,t.disconnect=e.disconnect!==void 0&&e.disconnect!==null?q.fromPartial(e.disconnect):void 0,t.updateEndpointMetadata=e.updateEndpointMetadata!==void 0&&e.updateEndpointMetadata!==null?H.fromPartial(e.updateEndpointMetadata):void 0,t.updateTrackMetadata=e.updateTrackMetadata!==void 0&&e.updateTrackMetadata!==null?F.fromPartial(e.updateTrackMetadata):void 0,t.renegotiateTracks=e.renegotiateTracks!==void 0&&e.renegotiateTracks!==null?B.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?$.fromPartial(e.sdpOffer):void 0,t.trackBitrates=e.trackBitrates!==void 0&&e.trackBitrates!==null?m.fromPartial(e.trackBitrates):void 0,t.enableTrackVariant=e.enableTrackVariant!==void 0&&e.enableTrackVariant!==null?G.fromPartial(e.enableTrackVariant):void 0,t.disableTrackVariant=e.disableTrackVariant!==void 0&&e.disableTrackVariant!==null?K.fromPartial(e.disableTrackVariant):void 0,t.setTargetTrackVariant=e.setTargetTrackVariant!==void 0&&e.setTargetTrackVariant!==null?Y.fromPartial(e.setTargetTrackVariant):void 0,t.unmuteTrack=e.unmuteTrack!==void 0&&e.unmuteTrack!==null?Q.fromPartial(e.unmuteTrack):void 0,t}};function On(){return{variant:0,bitrate:0}}var Je={encode(e,t=new y){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 p?e:new p(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!==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:k(e.variant)?D(e.variant):0,bitrate:k(e.bitrate)?globalThis.Number(e.bitrate):0}},toJSON(e){let t={};return e.variant!==0&&(t.variant=U(e.variant)),e.bitrate!==0&&(t.bitrate=Math.round(e.bitrate)),t},create(e){return Je.fromPartial(e??{})},fromPartial(e){let t=On();return t.variant=e.variant??0,t.bitrate=e.bitrate??0,t}};function Pn(){return{metadataJson:""}}var W={encode(e,t=new y){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof p?e:new p(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.metadataJson=n.string();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):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return W.fromPartial(e??{})},fromPartial(e){let t=Pn();return t.metadataJson=e.metadataJson??"",t}};function wn(){return{}}var q={encode(e,t=new y){return t},decode(e,t){let n=e instanceof p?e:new p(e),i=t===void 0?n.len:n.pos+t,r=wn();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 q.fromPartial(e??{})},fromPartial(e){return wn()}};function Jn(){return{metadataJson:""}}var H={encode(e,t=new y){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof p?e:new p(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.metadataJson=n.string();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):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return H.fromPartial(e??{})},fromPartial(e){let t=Jn();return t.metadataJson=e.metadataJson??"",t}};function bn(){return{trackId:"",metadataJson:""}}var F={encode(e,t=new y){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 p?e:new p(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:k(e.trackId)?globalThis.String(e.trackId):"",metadataJson:k(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 F.fromPartial(e??{})},fromPartial(e){let t=bn();return t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function Nn(){return{}}var B={encode(e,t=new y){return t},decode(e,t){let n=e instanceof p?e:new p(e),i=t===void 0?n.len:n.pos+t,r=Nn();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 B.fromPartial(e??{})},fromPartial(e){return Nn()}};function Rn(){return{sdp:"",trackIdToMetadataJson:{},trackIdToBitrates:{},midToTrackId:{}}}var $={encode(e,t=new y){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.trackIdToMetadataJson).forEach(([n,i])=>{Mt.encode({key:n,value:i},t.uint32(18).fork()).join()}),Object.entries(e.trackIdToBitrates).forEach(([n,i])=>{ht.encode({key:n,value:i},t.uint32(26).fork()).join()}),Object.entries(e.midToTrackId).forEach(([n,i])=>{mt.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof p?e:new p(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.sdp=n.string();continue}case 2:{if(a!==18)break;let d=Mt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToMetadataJson[d.key]=d.value);continue}case 3:{if(a!==26)break;let d=ht.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToBitrates[d.key]=d.value);continue}case 4:{if(a!==34)break;let d=mt.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):"",trackIdToMetadataJson:Tt(e.trackIdToMetadataJson)?Object.entries(e.trackIdToMetadataJson).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{},trackIdToBitrates:Tt(e.trackIdToBitrates)?Object.entries(e.trackIdToBitrates).reduce((t,[n,i])=>(t[n]=m.fromJSON(i),t),{}):{},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.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]=m.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 $.fromPartial(e??{})},fromPartial(e){let t=Rn();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]=m.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 Mt={encode(e,t=new y){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 p?e:new p(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: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 Mt.fromPartial(e??{})},fromPartial(e){let t=Cn();return t.key=e.key??"",t.value=e.value??"",t}};function xn(){return{key:"",value:void 0}}var ht={encode(e,t=new y){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&m.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof p?e:new p(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.key=n.string();continue}case 2:{if(a!==18)break;r.value=m.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)?m.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=m.toJSON(e.value)),t},create(e){return ht.fromPartial(e??{})},fromPartial(e){let t=xn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?m.fromPartial(e.value):void 0,t}};function An(){return{key:"",value:""}}var mt={encode(e,t=new y){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 p?e:new p(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.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 mt.fromPartial(e??{})},fromPartial(e){let t=An();return t.key=e.key??"",t.value=e.value??"",t}};function Bn(){return{trackId:"",variantBitrates:[]}}var m={encode(e,t=new y){e.trackId!==""&&t.uint32(10).string(e.trackId);for(let n of e.variantBitrates)Je.encode(n,t.uint32(18).fork()).join();return t},decode(e,t){let n=e instanceof p?e:new p(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.variantBitrates.push(Je.decode(n,n.uint32()));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):"",variantBitrates:globalThis.Array.isArray(e?.variantBitrates)?e.variantBitrates.map(t=>Je.fromJSON(t)):[]}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variantBitrates?.length&&(t.variantBitrates=e.variantBitrates.map(n=>Je.toJSON(n))),t},create(e){return m.fromPartial(e??{})},fromPartial(e){let t=Bn();return t.trackId=e.trackId??"",t.variantBitrates=e.variantBitrates?.map(n=>Je.fromPartial(n))||[],t}};function Vn(){return{trackId:"",variant:0}}var K={encode(e,t=new y){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 p?e:new p(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.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:k(e.trackId)?globalThis.String(e.trackId):"",variant:k(e.variant)?D(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=U(e.variant)),t},create(e){return K.fromPartial(e??{})},fromPartial(e){let t=Vn();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Dn(){return{trackId:"",variant:0}}var G={encode(e,t=new y){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 p?e:new p(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}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:k(e.trackId)?globalThis.String(e.trackId):"",variant:k(e.variant)?D(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=U(e.variant)),t},create(e){return G.fromPartial(e??{})},fromPartial(e){let t=Dn();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Un(){return{trackId:"",variant:0}}var Y={encode(e,t=new y){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 p?e:new p(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.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:k(e.trackId)?globalThis.String(e.trackId):"",variant:k(e.variant)?D(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=U(e.variant)),t},create(e){return Y.fromPartial(e??{})},fromPartial(e){let t=Un();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Ln(){return{trackId:""}}var Q={encode(e,t=new y){return e.trackId!==""&&t.uint32(10).string(e.trackId),t},decode(e,t){let n=e instanceof p?e:new p(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!==10)break;r.trackId=n.string();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):""}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),t},create(e){return Q.fromPartial(e??{})},fromPartial(e){let t=Ln();return t.trackId=e.trackId??"",t}};function Tt(e){return typeof e=="object"&&e!==null}function k(e){return e!=null}var Ra=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?.()}},Ca=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)}},Et=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 xa(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 Aa(e){switch(e){case 0:return"STATUS_UNSPECIFIED";case 1:return"STATUS_SILENCE";case 2:return"STATUS_SPEECH";case-1:default:return"UNRECOGNIZED"}}function Fn(){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 ka={encode(e,t=new T){return e.endpointUpdated!==void 0&&Re.encode(e.endpointUpdated,t.uint32(10).fork()).join(),e.trackUpdated!==void 0&&Ce.encode(e.trackUpdated,t.uint32(18).fork()).join(),e.tracksAdded!==void 0&&xe.encode(e.tracksAdded,t.uint32(26).fork()).join(),e.tracksRemoved!==void 0&&Ae.encode(e.tracksRemoved,t.uint32(34).fork()).join(),e.endpointAdded!==void 0&&Be.encode(e.endpointAdded,t.uint32(42).fork()).join(),e.endpointRemoved!==void 0&&De.encode(e.endpointRemoved,t.uint32(50).fork()).join(),e.connected!==void 0&&Ve.encode(e.connected,t.uint32(58).fork()).join(),e.error!==void 0&&Ue.encode(e.error,t.uint32(66).fork()).join(),e.offerData!==void 0&&Le.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&&We.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&&He.encode(e.trackVariantSwitched,t.uint32(106).fork()).join(),e.trackVariantDisabled!==void 0&&$e.encode(e.trackVariantDisabled,t.uint32(114).fork()).join(),e.trackVariantEnabled!==void 0&&Ke.encode(e.trackVariantEnabled,t.uint32(122).fork()).join(),t},decode(e,t){let n=e instanceof u?e:new u(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.endpointUpdated=Re.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.trackUpdated=Ce.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.tracksAdded=xe.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.tracksRemoved=Ae.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.endpointAdded=Be.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.endpointRemoved=De.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.connected=Ve.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.error=Ue.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.offerData=Le.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=We.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=He.decode(n,n.uint32());continue}case 14:{if(a!==114)break;r.trackVariantDisabled=$e.decode(n,n.uint32());continue}case 15:{if(a!==122)break;r.trackVariantEnabled=Ke.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointUpdated:c(e.endpointUpdated)?Re.fromJSON(e.endpointUpdated):void 0,trackUpdated:c(e.trackUpdated)?Ce.fromJSON(e.trackUpdated):void 0,tracksAdded:c(e.tracksAdded)?xe.fromJSON(e.tracksAdded):void 0,tracksRemoved:c(e.tracksRemoved)?Ae.fromJSON(e.tracksRemoved):void 0,endpointAdded:c(e.endpointAdded)?Be.fromJSON(e.endpointAdded):void 0,endpointRemoved:c(e.endpointRemoved)?De.fromJSON(e.endpointRemoved):void 0,connected:c(e.connected)?Ve.fromJSON(e.connected):void 0,error:c(e.error)?Ue.fromJSON(e.error):void 0,offerData:c(e.offerData)?Le.fromJSON(e.offerData):void 0,candidate:c(e.candidate)?O.fromJSON(e.candidate):void 0,sdpAnswer:c(e.sdpAnswer)?We.fromJSON(e.sdpAnswer):void 0,vadNotification:c(e.vadNotification)?qe.fromJSON(e.vadNotification):void 0,trackVariantSwitched:c(e.trackVariantSwitched)?He.fromJSON(e.trackVariantSwitched):void 0,trackVariantDisabled:c(e.trackVariantDisabled)?$e.fromJSON(e.trackVariantDisabled):void 0,trackVariantEnabled:c(e.trackVariantEnabled)?Ke.fromJSON(e.trackVariantEnabled):void 0}},toJSON(e){let t={};return e.endpointUpdated!==void 0&&(t.endpointUpdated=Re.toJSON(e.endpointUpdated)),e.trackUpdated!==void 0&&(t.trackUpdated=Ce.toJSON(e.trackUpdated)),e.tracksAdded!==void 0&&(t.tracksAdded=xe.toJSON(e.tracksAdded)),e.tracksRemoved!==void 0&&(t.tracksRemoved=Ae.toJSON(e.tracksRemoved)),e.endpointAdded!==void 0&&(t.endpointAdded=Be.toJSON(e.endpointAdded)),e.endpointRemoved!==void 0&&(t.endpointRemoved=De.toJSON(e.endpointRemoved)),e.connected!==void 0&&(t.connected=Ve.toJSON(e.connected)),e.error!==void 0&&(t.error=Ue.toJSON(e.error)),e.offerData!==void 0&&(t.offerData=Le.toJSON(e.offerData)),e.candidate!==void 0&&(t.candidate=O.toJSON(e.candidate)),e.sdpAnswer!==void 0&&(t.sdpAnswer=We.toJSON(e.sdpAnswer)),e.vadNotification!==void 0&&(t.vadNotification=qe.toJSON(e.vadNotification)),e.trackVariantSwitched!==void 0&&(t.trackVariantSwitched=He.toJSON(e.trackVariantSwitched)),e.trackVariantDisabled!==void 0&&(t.trackVariantDisabled=$e.toJSON(e.trackVariantDisabled)),e.trackVariantEnabled!==void 0&&(t.trackVariantEnabled=Ke.toJSON(e.trackVariantEnabled)),t},create(e){return ka.fromPartial(e??{})},fromPartial(e){let t=Fn();return t.endpointUpdated=e.endpointUpdated!==void 0&&e.endpointUpdated!==null?Re.fromPartial(e.endpointUpdated):void 0,t.trackUpdated=e.trackUpdated!==void 0&&e.trackUpdated!==null?Ce.fromPartial(e.trackUpdated):void 0,t.tracksAdded=e.tracksAdded!==void 0&&e.tracksAdded!==null?xe.fromPartial(e.tracksAdded):void 0,t.tracksRemoved=e.tracksRemoved!==void 0&&e.tracksRemoved!==null?Ae.fromPartial(e.tracksRemoved):void 0,t.endpointAdded=e.endpointAdded!==void 0&&e.endpointAdded!==null?Be.fromPartial(e.endpointAdded):void 0,t.endpointRemoved=e.endpointRemoved!==void 0&&e.endpointRemoved!==null?De.fromPartial(e.endpointRemoved):void 0,t.connected=e.connected!==void 0&&e.connected!==null?Ve.fromPartial(e.connected):void 0,t.error=e.error!==void 0&&e.error!==null?Ue.fromPartial(e.error):void 0,t.offerData=e.offerData!==void 0&&e.offerData!==null?Le.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?We.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?He.fromPartial(e.trackVariantSwitched):void 0,t.trackVariantDisabled=e.trackVariantDisabled!==void 0&&e.trackVariantDisabled!==null?$e.fromPartial(e.trackVariantDisabled):void 0,t.trackVariantEnabled=e.trackVariantEnabled!==void 0&&e.trackVariantEnabled!==null?Ke.fromPartial(e.trackVariantEnabled):void 0,t}};function Wn(){return{metadataJson:"",simulcastConfig:void 0}}var M={encode(e,t=new T){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),e.simulcastConfig!==void 0&&be.encode(e.simulcastConfig,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof u?e:new u(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}case 2:{if(a!==18)break;r.simulcastConfig=be.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:c(e.metadataJson)?globalThis.String(e.metadataJson):"",simulcastConfig:c(e.simulcastConfig)?be.fromJSON(e.simulcastConfig):void 0}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),e.simulcastConfig!==void 0&&(t.simulcastConfig=be.toJSON(e.simulcastConfig)),t},create(e){return M.fromPartial(e??{})},fromPartial(e){let t=Wn();return t.metadataJson=e.metadataJson??"",t.simulcastConfig=e.simulcastConfig!==void 0&&e.simulcastConfig!==null?be.fromPartial(e.simulcastConfig):void 0,t}};function qn(){return{enabled:!1,enabledVariants:[],disabledVariants:[]}}var be={encode(e,t=new T){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 u?e:new u(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!==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:c(e.enabled)?globalThis.Boolean(e.enabled):!1,enabledVariants:globalThis.Array.isArray(e?.enabledVariants)?e.enabledVariants.map(t=>D(t)):[],disabledVariants:globalThis.Array.isArray(e?.disabledVariants)?e.disabledVariants.map(t=>D(t)):[]}},toJSON(e){let t={};return e.enabled!==!1&&(t.enabled=e.enabled),e.enabledVariants?.length&&(t.enabledVariants=e.enabledVariants.map(n=>U(n))),e.disabledVariants?.length&&(t.disabledVariants=e.disabledVariants.map(n=>U(n))),t},create(e){return be.fromPartial(e??{})},fromPartial(e){let t=qn();return t.enabled=e.enabled??!1,t.enabledVariants=e.enabledVariants?.map(n=>n)||[],t.disabledVariants=e.disabledVariants?.map(n=>n)||[],t}};function Hn(){return{endpointType:"",metadataJson:"",trackIdToTrack:{}}}var V={encode(e,t=new T){return e.endpointType!==""&&t.uint32(18).string(e.endpointType),e.metadataJson!==""&&t.uint32(26).string(e.metadataJson),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{yt.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof u?e:new u(e),i=t===void 0?n.len:n.pos+t,r=Hn();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=yt.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:c(e.endpointType)?globalThis.String(e.endpointType):"",metadataJson:c(e.metadataJson)?globalThis.String(e.metadataJson):"",trackIdToTrack:rt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=M.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]=M.toJSON(r)}))}return t},create(e){return V.fromPartial(e??{})},fromPartial(e){let t=Hn();return t.endpointType=e.endpointType??"",t.metadataJson=e.metadataJson??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=M.fromPartial(r)),n),{}),t}};function $n(){return{key:"",value:void 0}}var yt={encode(e,t=new T){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&M.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof u?e:new u(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.key=n.string();continue}case 2:{if(a!==18)break;r.value=M.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:c(e.key)?globalThis.String(e.key):"",value:c(e.value)?M.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=M.toJSON(e.value)),t},create(e){return yt.fromPartial(e??{})},fromPartial(e){let t=$n();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?M.fromPartial(e.value):void 0,t}};function Kn(){return{credential:"",urls:[],username:""}}var Ne={encode(e,t=new T){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 u?e:new u(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.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:c(e.credential)?globalThis.String(e.credential):"",urls:globalThis.Array.isArray(e?.urls)?e.urls.map(t=>globalThis.String(t)):[],username:c(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 Ne.fromPartial(e??{})},fromPartial(e){let t=Kn();return t.credential=e.credential??"",t.urls=e.urls?.map(n=>n)||[],t.username=e.username??"",t}};function Gn(){return{endpointId:"",metadataJson:""}}var Re={encode(e,t=new T){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 u?e:new u(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;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:c(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:c(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 Re.fromPartial(e??{})},fromPartial(e){let t=Gn();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function Yn(){return{endpointId:"",trackId:"",metadataJson:""}}var Ce={encode(e,t=new T){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 u?e:new u(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;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:c(e.endpointId)?globalThis.String(e.endpointId):"",trackId:c(e.trackId)?globalThis.String(e.trackId):"",metadataJson:c(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 Ce.fromPartial(e??{})},fromPartial(e){let t=Yn();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function Qn(){return{endpointId:"",trackIdToTrack:{}}}var xe={encode(e,t=new T){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{St.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof u?e:new u(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=St.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:c(e.endpointId)?globalThis.String(e.endpointId):"",trackIdToTrack:rt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=M.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]=M.toJSON(r)}))}return t},create(e){return xe.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]=M.fromPartial(r)),n),{}),t}};function zn(){return{key:"",value:void 0}}var St={encode(e,t=new T){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&M.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof u?e:new u(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.key=n.string();continue}case 2:{if(a!==18)break;r.value=M.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:c(e.key)?globalThis.String(e.key):"",value:c(e.value)?M.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=M.toJSON(e.value)),t},create(e){return St.fromPartial(e??{})},fromPartial(e){let t=zn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?M.fromPartial(e.value):void 0,t}};function Zn(){return{endpointId:"",trackIds:[]}}var Ae={encode(e,t=new T){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 u?e:new u(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:c(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 Ae.fromPartial(e??{})},fromPartial(e){let t=Zn();return t.endpointId=e.endpointId??"",t.trackIds=e.trackIds?.map(n=>n)||[],t}};function Xn(){return{endpointId:"",metadataJson:""}}var Be={encode(e,t=new T){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 u?e:new u(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}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:c(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:c(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 Be.fromPartial(e??{})},fromPartial(e){let t=Xn();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function jn(){return{endpointId:"",endpointIdToEndpoint:{},iceServers:[]}}var Ve={encode(e,t=new T){e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.endpointIdToEndpoint).forEach(([n,i])=>{_t.encode({key:n,value:i},t.uint32(18).fork()).join()});for(let n of e.iceServers)Ne.encode(n,t.uint32(26).fork()).join();return t},decode(e,t){let n=e instanceof u?e:new u(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.endpointId=n.string();continue}case 2:{if(a!==18)break;let d=_t.decode(n,n.uint32());d.value!==void 0&&(r.endpointIdToEndpoint[d.key]=d.value);continue}case 3:{if(a!==26)break;r.iceServers.push(Ne.decode(n,n.uint32()));continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:c(e.endpointId)?globalThis.String(e.endpointId):"",endpointIdToEndpoint:rt(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=>Ne.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=>Ne.toJSON(n))),t},create(e){return Ve.fromPartial(e??{})},fromPartial(e){let t=jn();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=>Ne.fromPartial(n))||[],t}};function ea(){return{key:"",value:void 0}}var _t={encode(e,t=new T){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 u?e:new u(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.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:c(e.key)?globalThis.String(e.key):"",value:c(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 _t.fromPartial(e??{})},fromPartial(e){let t=ea();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?V.fromPartial(e.value):void 0,t}};function ta(){return{endpointId:""}}var De={encode(e,t=new T){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),t},decode(e,t){let n=e instanceof u?e:new u(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.endpointId=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:c(e.endpointId)?globalThis.String(e.endpointId):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),t},create(e){return De.fromPartial(e??{})},fromPartial(e){let t=ta();return t.endpointId=e.endpointId??"",t}};function na(){return{message:""}}var Ue={encode(e,t=new T){return e.message!==""&&t.uint32(10).string(e.message),t},decode(e,t){let n=e instanceof u?e:new u(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.message=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{message:c(e.message)?globalThis.String(e.message):""}},toJSON(e){let t={};return e.message!==""&&(t.message=e.message),t},create(e){return Ue.fromPartial(e??{})},fromPartial(e){let t=na();return t.message=e.message??"",t}};function aa(){return{tracksTypes:void 0}}var Le={encode(e,t=new T){return e.tracksTypes!==void 0&&Fe.encode(e.tracksTypes,t.uint32(10).fork()).join(),t},decode(e,t){let n=e instanceof u?e:new u(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.tracksTypes=Fe.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{tracksTypes:c(e.tracksTypes)?Fe.fromJSON(e.tracksTypes):void 0}},toJSON(e){let t={};return e.tracksTypes!==void 0&&(t.tracksTypes=Fe.toJSON(e.tracksTypes)),t},create(e){return Le.fromPartial(e??{})},fromPartial(e){let t=aa();return t.tracksTypes=e.tracksTypes!==void 0&&e.tracksTypes!==null?Fe.fromPartial(e.tracksTypes):void 0,t}};function ra(){return{audio:0,video:0}}var Fe={encode(e,t=new T){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 u?e:new u(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!==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:c(e.audio)?globalThis.Number(e.audio):0,video:c(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 Fe.fromPartial(e??{})},fromPartial(e){let t=ra();return t.audio=e.audio??0,t.video=e.video??0,t}};function ia(){return{sdp:"",midToTrackId:{}}}var We={encode(e,t=new T){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.midToTrackId).forEach(([n,i])=>{gt.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof u?e:new u(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.sdp=n.string();continue}case 2:{if(a!==18)break;let d=gt.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:c(e.sdp)?globalThis.String(e.sdp):"",midToTrackId:rt(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 We.fromPartial(e??{})},fromPartial(e){let t=ia();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 da(){return{key:"",value:""}}var gt={encode(e,t=new T){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 u?e:new u(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.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:c(e.key)?globalThis.String(e.key):"",value:c(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 gt.fromPartial(e??{})},fromPartial(e){let t=da();return t.key=e.key??"",t.value=e.value??"",t}};function oa(){return{trackId:"",status:0}}var qe={encode(e,t=new T){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 u?e:new u(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.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:c(e.trackId)?globalThis.String(e.trackId):"",status:c(e.status)?xa(e.status):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.status!==0&&(t.status=Aa(e.status)),t},create(e){return qe.fromPartial(e??{})},fromPartial(e){let t=oa();return t.trackId=e.trackId??"",t.status=e.status??0,t}};function ca(){return{endpointId:"",trackId:"",variant:0}}var He={encode(e,t=new T){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 u?e:new u(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.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:c(e.endpointId)?globalThis.String(e.endpointId):"",trackId:c(e.trackId)?globalThis.String(e.trackId):"",variant:c(e.variant)?D(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=U(e.variant)),t},create(e){return He.fromPartial(e??{})},fromPartial(e){let t=ca();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function sa(){return{endpointId:"",trackId:"",variant:0}}var $e={encode(e,t=new T){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 u?e:new u(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.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:c(e.endpointId)?globalThis.String(e.endpointId):"",trackId:c(e.trackId)?globalThis.String(e.trackId):"",variant:c(e.variant)?D(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=U(e.variant)),t},create(e){return $e.fromPartial(e??{})},fromPartial(e){let t=sa();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function ua(){return{endpointId:"",trackId:"",variant:0}}var Ke={encode(e,t=new T){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 u?e:new u(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.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:c(e.endpointId)?globalThis.String(e.endpointId):"",trackId:c(e.trackId)?globalThis.String(e.trackId):"",variant:c(e.variant)?D(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=U(e.variant)),t},create(e){return Ke.fromPartial(e??{})},fromPartial(e){let t=ua();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function rt(e){return typeof e=="object"&&e!==null}function c(e){return e!=null}function la(e){return Ge.encode(e).finish()}function Ba(e){return ka.decode(e)}var pa=e=>e==="audio"||e==="video",va=class extends Va{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}},fa={audio:5e4,video:25e5},Da=0,Ua={3:25e5,2:5e5,1:15e4,0:0,[-1]:0},Ta=(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,E)=>d+(i/(E.scaleResolutionDownBy||1))**2,0),a=n/r;return e.map(d=>({...d,maxBitrate:a*(i/(d.scaleResolutionDownBy||1))**2}))},La=(e,t)=>{let n=[{}];return e.encodings.length===0?n:Ta(e.encodings,t)},Xe={l:1,m:2,h:3};function It(e,t,n){let i=e==="mute"?"localTrackMuted":"localTrackUnmuted";if(e=="unmute"){let r=Q.create({trackId:n});t.emit("sendMediaEvent",la({unmuteTrack:r}))}t.emit(i,{trackId:n})}function Fa(e,t){return e&&!t?"mute":!e&&t?"unmute":"replace"}var Wa=e=>{if(!e.track)throw new Error("Cannot create transceiver config for ");return e.track.kind==="audio"?qa(e.stream):Ha(e,e.maxBandwidth)},qa=e=>({direction:"sendonly",streams:e?[e]:[]}),Ha=(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 Ka(e,n)}if(typeof t=="number")return $a(e,t);throw new Error("LocalTrack is in invalid state!")},$a=(e,t)=>({direction:"sendonly",sendEncodings:Ta([{active:!0}],t),streams:e.stream?[e.stream]:[]}),Ka=(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:Ga(i,t)}},Ga=(e,t)=>e.filter(n=>n.rid).map(n=>{let i=!!n.rid&&Xe[n.rid]||0,r=t.get(i)||0;return{...n,maxBitrate:r>0?r*1024:void 0}}),Ya=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&&Xe[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=Wa(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!");i?.getTracks().forEach(d=>{i?.removeTrack(d)}),e&&i?.addTrack(e);let a=Fa(this.trackContext.track,e);this.trackContext.track=e,this.mediaStreamTrackId=e?.id??null,(a==="mute"||a==="unmute")&&It(a,t,n);try{await this.sender.replaceTrack(e)}catch{a==="mute"?It("unmute",t,n):a==="unmute"&&It("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=La(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&&Xe[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&&Xe[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 fa[e.trackKind]}if(!this.sender)return;let n=this.sender.getParameters().encodings;if(this.isNotSimulcastTrack(n))return n[0].maxBitrate||(t?fa[t]:Da);if(t==="audio")throw"Audio track cannot have multiple encodings";return n.filter(i=>i.rid).reduce((i,r)=>{let a=Xe[r.rid]??0;return i[a]=r.maxBitrate||Ua[a],i},{})};createTrackVariantBitratesEvent=()=>{}},Qa=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 $.create({sdp:e.sdp,midToTrackId:i,trackIdToBitrates:n,trackIdToMetadataJson:t})};addTrack=(e,t,n,i,r,a,d)=>{let E=new va(this.localEndpoint,t,r,a);if(E.track=n,E.stream=i,E.maxBandwidth=d,!pa(n.kind))throw new Error("Track has no kind");E.trackKind=n.kind,this.localEndpoint.tracks.set(t,E);let b=new Ya(e,t,E);return this.localTracks[t]=b,b};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=B.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=m.create({trackId:e,variantBitrates:[{variant:0,bitrate:t}]});this.sendMediaEvent(Ge.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(([E,b])=>({variant:Number(E),bitrate:b})));let d=m.create({trackId:e,variantBitrates:a});this.sendMediaEvent(Ge.create({trackBitrates:d})),this.emit("localTrackEncodingBandwidthSet",{trackId:e,rid:t,bandwidth:n})};updateEndpointMetadata=e=>{this.localEndpoint.metadata=e;let t=H.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=F.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=K.create({trackId:e,variant:t});this.sendMediaEvent(Ge.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=G.create({trackId:e,variant:t});this.sendMediaEvent(Ge.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()})}},za=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:B.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()}},Za=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(!pa(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}`)}},Xa=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,E=new va(n,i,d,a);return new Za(i,E)}).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=Y.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)})}},Ea=class extends ba{localTrackManager;remote;local;commandsQueue;proposedIceServers=[];bandwidthEstimation=BigInt(0);connectionManager;clearConnectionCallbacks=null;constructor(){super();let e=n=>this.sendMediaEvent(n),t=(n,...i)=>{this.emit(n,...i)};this.remote=new Xa(t,e),this.local=new Qa(t,e),this.localTrackManager=new za(this.local,e),this.commandsQueue=new Ra(this.localTrackManager)}connect=e=>{this.local.setEndpointMetadata(e);let t=W.create({metadataJson:JSON.stringify(e)});this.sendMediaEvent({connect:t})};receiveMediaEvent=async e=>{let t=Ba(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,E])=>{this.remote.addRemoteEndpoint(d,E.metadataJson,E.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}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)console.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=F.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){console.error(t)}};async addTrack(e,t,n={enabled:!1,enabledVariants:[],disabledVariants:[]},i=0){let r=new Et,a=this.getTrackId(Na()),d=new MediaStream;try{d.addTrack(e),this.commandsQueue.pushCommand({handler:async()=>this.localTrackManager.addTrackHandler(a,e,d,t,n,i),parse:()=>this.localTrackManager.parseAddTrack(e,n,i),resolve:"after-renegotiation",resolutionNotifier:r})}catch(E){r.reject(E)}return await r.promise,this.emit("localTrackAdded",{trackId:a,track:e,stream:d,trackMetadata:t,simulcastConfig:n,maxBandwidth:i}),a}async replaceTrack(e,t){let n=new Et;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 Et;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=q.create();this.sendMediaEvent({disconnect:e}),this.emit("disconnectRequested",{}),this.cleanUp()};cleanUp=()=>{this.connectionManager&&(this.clearConnectionCallbacks?.(),this.connectionManager?.getConnection().close(),this.commandsQueue.cleanUp(),this.localTrackManager.cleanUp()),this.connectionManager=void 0};getTrackId(e){return`${this.getEndpointId()}:${e}`}sendMediaEvent=e=>{this.emit("sendMediaEvent",la(e))};async createAndSendOffer(){let e=this.connectionManager;if(e)try{this.localTrackManager.updateSenders();let t=await e.getConnection().createOffer();if(!this.connectionManager){console.warn("RTCPeerConnection stopped or restarted");return}if(await e.getConnection().setLocalDescription(t),!this.connectionManager){console.warn("RTCPeerConnection stopped or restarted");return}let n=this.local.createSdpOfferEvent(t);this.sendMediaEvent({sdpOffer:n}),this.local.setLocalTrackStatusToOffered()}catch(t){console.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 Ca(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){console.error(t)}};onLocalCandidate=e=>{if(!e.candidate)return;let t=O.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=>{console.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":console.warn("ICE connection: disconnected"),this.sendMediaEvent({renegotiateTracks:B.create()});break;case"failed":this.emit("connectionError",{message:"ICE connection failed",event:e});break}}};import{EventEmitter as nr}from"events";function Ia(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 R=e=>e.type==="webrtc"||e.type==="exwebrtc",Ye=e=>e.type==="recording"||e.type==="hls"||e.type==="file"||e.type==="rtsp"||e.type==="sip",Ma=["reached peers limit","room not found","node not found","Invalid SDK version"],je=e=>Ma.some(t=>e.trim().toLowerCase().includes(t.trim().toLowerCase()));var it=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 ja={maxAttempts:0,initialDelay:0,delay:0,addTracksOnReconnect:!1},et={maxAttempts:3,initialDelay:500,delay:500,addTracksOnReconnect:!1},dt=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=er(i);let r=()=>{this.reconnect()};this.client.on("socketError",r);let a=()=>{this.reconnect()};this.client.on("connectionError",a);let d=b=>{Qe(b.reason)||je(b.reason)||this.reconnect()};this.client.on("socketClose",d);let E=()=>{this.reset(this.initialPeerMetadata)};this.client.on("authSuccess",E),this.removeEventListeners=()=>{this.client.off("socketError",r),this.client.off("connectionError",a),this.client.off("socketClose",d),this.client.off("authSuccess",E)}}isReconnecting(){return this.status==="reconnecting"}reset(t){this.initialPeerMetadata=t,this.reconnectAttempt=0,this.reconnectTimeoutId&&clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=null}getLastPeerMetadata(){return this.lastLocalEndpoint?.metadata?.peer}reconnect(){if(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=()=>{}}},er=e=>e?e===!0?et:{maxAttempts:e?.maxAttempts??et.maxAttempts,initialDelay:e?.initialDelay??et.initialDelay,delay:e?.delay??et.delay,addTracksOnReconnect:e?.addTracksOnReconnect??et.addTracksOnReconnect}:ja;var ha="0.18.0";var ma=ha;var ar=1e4,ya="socket/peer/websocket",Ot=class extends nr{websocket=null;webrtc=null;removeEventListeners=null;status="new";connectConfig=null;isAudioOnlyConnection=!1;reconnectManager;peerMessageQueue;sendStatisticsInterval=void 0;constructor(t){super(),this.reconnectManager=new dt(this,n=>this.initConnection(n),t?.reconnect??!0),this.peerMessageQueue=new it({sendMessage:n=>this.websocket?.send(n),checkIsReconnecting:()=>this.reconnectManager.isReconnecting()}),this.on("reconnected",()=>this.peerMessageQueue.attemptToSendAll())}async connect(t){this.emit("connectionStarted");let n=Ia(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 Ea,this.initWebsocket(t),this.setupCallbacks(),this.status="initialized"}getUrl(t){return t.endsWith("/")?`${t}${ya}`:`${t}/${ya}`}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=g=>{this.emit("socketOpen",g);let ot=`web-${ma}`,L=we.encode({authRequest:{token:n,sdkVersion:ot}}).finish();this.websocket?.send(L)},d=g=>{this.emit("socketError",g)},E=g=>{Qe(g.reason)&&this.emit("authError",g.reason),je(g.reason)&&this.emit("joinError",g.reason),console.warn(`Socket closed with reason: ${g.reason}`),this.emit("socketClose",g)};this.websocket.addEventListener("open",a),this.websocket.addEventListener("error",d),this.websocket.addEventListener("close",E);let b=g=>{let ot=new Uint8Array(g.data);try{let L=we.decode(ot),Pt=L.serverMediaEvent;L.authenticated?(this.isAudioOnlyConnection=L.authenticated.roomType===2,this.emit("authSuccess"),this.webrtc?.connect(t)):L.authRequest?console.warn("Received unexpected control message: authRequest"):Pt&&this.webrtc?.receiveMediaEvent(A.encode(Pt).finish())}catch(L){console.warn(`Received invalid control message, error: ${L}`)}};this.websocket.addEventListener("message",b),this.removeEventListeners=()=>{this.websocket?.removeEventListener("open",a),this.websocket?.removeEventListener("error",d),this.websocket?.removeEventListener("close",E),this.websocket?.removeEventListener("message",b)}}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])=>R(i)?{...t,[n]:i}:t,{})}getRemoteComponents(){return Object.entries(this.webrtc?.getRemoteEndpoints()??{}).reduce((t,[n,i])=>Ye(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=C.decode(t),i=we.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=>R(a)).map(a=>a),r=n.filter(a=>Ye(a)).map(a=>a);await this.reconnectManager.handleReconnect(),this.sendStatisticsInterval=setInterval(()=>this.sendStatistics(),ar),this.emit("joined",t,i,r)}),this.webrtc?.on("disconnected",()=>{this.emit("disconnected"),clearInterval(this.sendStatisticsInterval)}),this.webrtc?.on("endpointAdded",t=>{R(t)&&this.emit("peerJoined",t),Ye(t)&&this.emit("componentAdded",t)}),this.webrtc?.on("endpointRemoved",t=>{R(t)&&this.emit("peerLeft",t),Ye(t)&&this.emit("componentRemoved",t)}),this.webrtc?.on("endpointUpdated",t=>{R(t)&&this.emit("peerUpdated",t),Ye(t)&&this.emit("componentUpdated",t)}),this.webrtc?.on("trackReady",t=>{R(t.endpoint)&&this.emit("trackReady",t)}),this.webrtc?.on("trackAdded",t=>{R(t.endpoint)&&this.emit("trackAdded",t)}),this.webrtc?.on("trackRemoved",t=>{R(t.endpoint)&&(this.emit("trackRemoved",t),t.removeAllListeners())}),this.webrtc?.on("trackUpdated",t=>{R(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.emit("localTrackAdded",t)}),this.webrtc?.on("localTrackRemoved",t=>{this.emit("localTrackRemoved",t)}),this.webrtc?.on("localTrackReplaced",t=>{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)})}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=we.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 ze;return this.webrtc.addTrack(t,n,i,r)}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()}leave=()=>{if(!this.webrtc)throw this.handleWebRTCNotInitialized();this.webrtc.disconnect()};isOpen(t){return t?.readyState===1}disconnect(){try{this.webrtc?.removeAllListeners(),this.webrtc?.disconnect(),this.webrtc?.cleanUp()}catch(t){console.warn(t)}this.removeEventListeners?.(),this.removeEventListeners=null,this.isOpen(this.websocket||null)&&this.websocket?.close(),this.websocket=null,this.webrtc=null,this.emit("disconnected")}cleanup(){this.reconnectManager.cleanup()}};import{WHEPClient as rr}from"@binbat/whip-whep/whep";function ir(e,t){let n=new RTCPeerConnection({bundlePolicy:"max-bundle"});n.addTransceiver("audio",{direction:"recvonly"}),n.addTransceiver("video",{direction:"recvonly"});let i=new rr;return new Promise(r=>{n.ontrack=a=>{if(a.track.kind=="video"){let d=a.streams[0];d&&r({stream:d,stop:()=>i.stop()})}},i.view(n,e,t)})}export{wt as AUTH_ERROR_REASONS,Ot as FishjamClient,Ma as JOIN_ERRORS,be as SimulcastConfig,ze as TrackTypeError,Ja as Variant,Ea as WebRTCEndpoint,Qe as isAuthError,je as isJoinError,ir as receiveLivestream};
|
|
1
|
+
var wt=["missing token","invalid token","expired token","room not found","peer not found"],ze=e=>wt.includes(e);var Qe=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")}};import{BinaryReader as b,BinaryWriter as Ze}from"@bufbuild/protobuf/wire";import{BinaryReader as l,BinaryWriter as h}from"@bufbuild/protobuf/wire";import{BinaryReader as Jt,BinaryWriter as _a}from"@bufbuild/protobuf/wire";function P(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 w(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 Nt(){return{candidate:"",sdpMLineIndex:0,sdpMid:"",usernameFragment:""}}var _={encode(e,t=new _a){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 Jt?e:new Jt(e),i=t===void 0?n.len:n.pos+t,r=Nt();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:tt(e.candidate)?globalThis.String(e.candidate):"",sdpMLineIndex:tt(e.sdpMLineIndex)?globalThis.Number(e.sdpMLineIndex):0,sdpMid:tt(e.sdpMid)?globalThis.String(e.sdpMid):"",usernameFragment:tt(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 _.fromPartial(e??{})},fromPartial(e){let t=Nt();return t.candidate=e.candidate??"",t.sdpMLineIndex=e.sdpMLineIndex??0,t.sdpMid=e.sdpMid??"",t.usernameFragment=e.usernameFragment??"",t}};function tt(e){return e!=null}function bt(){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 C={encode(e,t=new h){return e.connect!==void 0&&Z.encode(e.connect,t.uint32(10).fork()).join(),e.disconnect!==void 0&&X.encode(e.disconnect,t.uint32(18).fork()).join(),e.updateEndpointMetadata!==void 0&&j.encode(e.updateEndpointMetadata,t.uint32(26).fork()).join(),e.updateTrackMetadata!==void 0&&ee.encode(e.updateTrackMetadata,t.uint32(34).fork()).join(),e.renegotiateTracks!==void 0&&te.encode(e.renegotiateTracks,t.uint32(42).fork()).join(),e.candidate!==void 0&&_.encode(e.candidate,t.uint32(50).fork()).join(),e.sdpOffer!==void 0&&ne.encode(e.sdpOffer,t.uint32(58).fork()).join(),e.trackBitrates!==void 0&&S.encode(e.trackBitrates,t.uint32(66).fork()).join(),e.enableTrackVariant!==void 0&&re.encode(e.enableTrackVariant,t.uint32(74).fork()).join(),e.disableTrackVariant!==void 0&&ae.encode(e.disableTrackVariant,t.uint32(82).fork()).join(),e.setTargetTrackVariant!==void 0&&ie.encode(e.setTargetTrackVariant,t.uint32(90).fork()).join(),e.unmuteTrack!==void 0&&de.encode(e.unmuteTrack,t.uint32(98).fork()).join(),t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=bt();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.connect=Z.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.disconnect=X.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.updateEndpointMetadata=j.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.updateTrackMetadata=ee.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.renegotiateTracks=te.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.candidate=_.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.sdpOffer=ne.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.trackBitrates=S.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.enableTrackVariant=re.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.disableTrackVariant=ae.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.setTargetTrackVariant=ie.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.unmuteTrack=de.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{connect:f(e.connect)?Z.fromJSON(e.connect):void 0,disconnect:f(e.disconnect)?X.fromJSON(e.disconnect):void 0,updateEndpointMetadata:f(e.updateEndpointMetadata)?j.fromJSON(e.updateEndpointMetadata):void 0,updateTrackMetadata:f(e.updateTrackMetadata)?ee.fromJSON(e.updateTrackMetadata):void 0,renegotiateTracks:f(e.renegotiateTracks)?te.fromJSON(e.renegotiateTracks):void 0,candidate:f(e.candidate)?_.fromJSON(e.candidate):void 0,sdpOffer:f(e.sdpOffer)?ne.fromJSON(e.sdpOffer):void 0,trackBitrates:f(e.trackBitrates)?S.fromJSON(e.trackBitrates):void 0,enableTrackVariant:f(e.enableTrackVariant)?re.fromJSON(e.enableTrackVariant):void 0,disableTrackVariant:f(e.disableTrackVariant)?ae.fromJSON(e.disableTrackVariant):void 0,setTargetTrackVariant:f(e.setTargetTrackVariant)?ie.fromJSON(e.setTargetTrackVariant):void 0,unmuteTrack:f(e.unmuteTrack)?de.fromJSON(e.unmuteTrack):void 0}},toJSON(e){let t={};return e.connect!==void 0&&(t.connect=Z.toJSON(e.connect)),e.disconnect!==void 0&&(t.disconnect=X.toJSON(e.disconnect)),e.updateEndpointMetadata!==void 0&&(t.updateEndpointMetadata=j.toJSON(e.updateEndpointMetadata)),e.updateTrackMetadata!==void 0&&(t.updateTrackMetadata=ee.toJSON(e.updateTrackMetadata)),e.renegotiateTracks!==void 0&&(t.renegotiateTracks=te.toJSON(e.renegotiateTracks)),e.candidate!==void 0&&(t.candidate=_.toJSON(e.candidate)),e.sdpOffer!==void 0&&(t.sdpOffer=ne.toJSON(e.sdpOffer)),e.trackBitrates!==void 0&&(t.trackBitrates=S.toJSON(e.trackBitrates)),e.enableTrackVariant!==void 0&&(t.enableTrackVariant=re.toJSON(e.enableTrackVariant)),e.disableTrackVariant!==void 0&&(t.disableTrackVariant=ae.toJSON(e.disableTrackVariant)),e.setTargetTrackVariant!==void 0&&(t.setTargetTrackVariant=ie.toJSON(e.setTargetTrackVariant)),e.unmuteTrack!==void 0&&(t.unmuteTrack=de.toJSON(e.unmuteTrack)),t},create(e){return C.fromPartial(e??{})},fromPartial(e){let t=bt();return t.connect=e.connect!==void 0&&e.connect!==null?Z.fromPartial(e.connect):void 0,t.disconnect=e.disconnect!==void 0&&e.disconnect!==null?X.fromPartial(e.disconnect):void 0,t.updateEndpointMetadata=e.updateEndpointMetadata!==void 0&&e.updateEndpointMetadata!==null?j.fromPartial(e.updateEndpointMetadata):void 0,t.updateTrackMetadata=e.updateTrackMetadata!==void 0&&e.updateTrackMetadata!==null?ee.fromPartial(e.updateTrackMetadata):void 0,t.renegotiateTracks=e.renegotiateTracks!==void 0&&e.renegotiateTracks!==null?te.fromPartial(e.renegotiateTracks):void 0,t.candidate=e.candidate!==void 0&&e.candidate!==null?_.fromPartial(e.candidate):void 0,t.sdpOffer=e.sdpOffer!==void 0&&e.sdpOffer!==null?ne.fromPartial(e.sdpOffer):void 0,t.trackBitrates=e.trackBitrates!==void 0&&e.trackBitrates!==null?S.fromPartial(e.trackBitrates):void 0,t.enableTrackVariant=e.enableTrackVariant!==void 0&&e.enableTrackVariant!==null?re.fromPartial(e.enableTrackVariant):void 0,t.disableTrackVariant=e.disableTrackVariant!==void 0&&e.disableTrackVariant!==null?ae.fromPartial(e.disableTrackVariant):void 0,t.setTargetTrackVariant=e.setTargetTrackVariant!==void 0&&e.setTargetTrackVariant!==null?ie.fromPartial(e.setTargetTrackVariant):void 0,t.unmuteTrack=e.unmuteTrack!==void 0&&e.unmuteTrack!==null?de.fromPartial(e.unmuteTrack):void 0,t}};function Rt(){return{variant:0,bitrate:0}}var Q={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Rt();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:f(e.variant)?P(e.variant):0,bitrate:f(e.bitrate)?globalThis.Number(e.bitrate):0}},toJSON(e){let t={};return e.variant!==0&&(t.variant=w(e.variant)),e.bitrate!==0&&(t.bitrate=Math.round(e.bitrate)),t},create(e){return Q.fromPartial(e??{})},fromPartial(e){let t=Rt();return t.variant=e.variant??0,t.bitrate=e.bitrate??0,t}};function Ct(){return{metadataJson:""}}var Z={encode(e,t=new h){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Ct();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:f(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=Ct();return t.metadataJson=e.metadataJson??"",t}};function xt(){return{}}var X={encode(e,t=new h){return t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=xt();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 xt()}};function At(){return{metadataJson:""}}var j={encode(e,t=new h){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=At();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:f(e.metadataJson)?globalThis.String(e.metadataJson):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return j.fromPartial(e??{})},fromPartial(e){let t=At();return t.metadataJson=e.metadataJson??"",t}};function Bt(){return{trackId:"",metadataJson:""}}var ee={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Bt();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:f(e.trackId)?globalThis.String(e.trackId):"",metadataJson:f(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 ee.fromPartial(e??{})},fromPartial(e){let t=Bt();return t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function Vt(){return{}}var te={encode(e,t=new h){return t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Vt();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 te.fromPartial(e??{})},fromPartial(e){return Vt()}};function Dt(){return{sdp:"",trackIdToMetadataJson:{},trackIdToBitrates:{},midToTrackId:{}}}var ne={encode(e,t=new h){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.trackIdToMetadataJson).forEach(([n,i])=>{st.encode({key:n,value:i},t.uint32(18).fork()).join()}),Object.entries(e.trackIdToBitrates).forEach(([n,i])=>{ut.encode({key:n,value:i},t.uint32(26).fork()).join()}),Object.entries(e.midToTrackId).forEach(([n,i])=>{ft.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Dt();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=st.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToMetadataJson[d.key]=d.value);continue}case 3:{if(a!==26)break;let d=ut.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToBitrates[d.key]=d.value);continue}case 4:{if(a!==34)break;let d=ft.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):"",trackIdToMetadataJson:ct(e.trackIdToMetadataJson)?Object.entries(e.trackIdToMetadataJson).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{},trackIdToBitrates:ct(e.trackIdToBitrates)?Object.entries(e.trackIdToBitrates).reduce((t,[n,i])=>(t[n]=S.fromJSON(i),t),{}):{},midToTrackId:ct(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]=S.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 ne.fromPartial(e??{})},fromPartial(e){let t=Dt();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]=S.fromPartial(r)),n),{}),t.midToTrackId=Object.entries(e.midToTrackId??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=globalThis.String(r)),n),{}),t}};function Ut(){return{key:"",value:""}}var st={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Ut();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 st.fromPartial(e??{})},fromPartial(e){let t=Ut();return t.key=e.key??"",t.value=e.value??"",t}};function Lt(){return{key:"",value:void 0}}var ut={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Lt();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:f(e.key)?globalThis.String(e.key):"",value:f(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 ut.fromPartial(e??{})},fromPartial(e){let t=Lt();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?S.fromPartial(e.value):void 0,t}};function Ft(){return{key:"",value:""}}var ft={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Ft();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 ft.fromPartial(e??{})},fromPartial(e){let t=Ft();return t.key=e.key??"",t.value=e.value??"",t}};function Wt(){return{trackId:"",variantBitrates:[]}}var S={encode(e,t=new h){e.trackId!==""&&t.uint32(10).string(e.trackId);for(let n of e.variantBitrates)Q.encode(n,t.uint32(18).fork()).join();return t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Wt();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(Q.decode(n,n.uint32()));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):"",variantBitrates:globalThis.Array.isArray(e?.variantBitrates)?e.variantBitrates.map(t=>Q.fromJSON(t)):[]}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variantBitrates?.length&&(t.variantBitrates=e.variantBitrates.map(n=>Q.toJSON(n))),t},create(e){return S.fromPartial(e??{})},fromPartial(e){let t=Wt();return t.trackId=e.trackId??"",t.variantBitrates=e.variantBitrates?.map(n=>Q.fromPartial(n))||[],t}};function qt(){return{trackId:"",variant:0}}var ae={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=qt();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:f(e.trackId)?globalThis.String(e.trackId):"",variant:f(e.variant)?P(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=w(e.variant)),t},create(e){return ae.fromPartial(e??{})},fromPartial(e){let t=qt();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Ht(){return{trackId:"",variant:0}}var re={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Ht();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:f(e.trackId)?globalThis.String(e.trackId):"",variant:f(e.variant)?P(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=w(e.variant)),t},create(e){return re.fromPartial(e??{})},fromPartial(e){let t=Ht();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Kt(){return{trackId:"",variant:0}}var ie={encode(e,t=new h){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 l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=Kt();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:f(e.trackId)?globalThis.String(e.trackId):"",variant:f(e.variant)?P(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=w(e.variant)),t},create(e){return ie.fromPartial(e??{})},fromPartial(e){let t=Kt();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function $t(){return{trackId:""}}var de={encode(e,t=new h){return e.trackId!==""&&t.uint32(10).string(e.trackId),t},decode(e,t){let n=e instanceof l?e:new l(e),i=t===void 0?n.len:n.pos+t,r=$t();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:f(e.trackId)?globalThis.String(e.trackId):""}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),t},create(e){return de.fromPartial(e??{})},fromPartial(e){let t=$t();return t.trackId=e.trackId??"",t}};function ct(e){return typeof e=="object"&&e!==null}function f(e){return e!=null}import{BinaryReader as s,BinaryWriter as T}from"@bufbuild/protobuf/wire";function ga(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 Oa(e){switch(e){case 0:return"STATUS_UNSPECIFIED";case 1:return"STATUS_SILENCE";case 2:return"STATUS_SPEECH";case-1:default:return"UNRECOGNIZED"}}function Gt(){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 A={encode(e,t=new T){return e.endpointUpdated!==void 0&&se.encode(e.endpointUpdated,t.uint32(10).fork()).join(),e.trackUpdated!==void 0&&ue.encode(e.trackUpdated,t.uint32(18).fork()).join(),e.tracksAdded!==void 0&&fe.encode(e.tracksAdded,t.uint32(26).fork()).join(),e.tracksRemoved!==void 0&&ke.encode(e.tracksRemoved,t.uint32(34).fork()).join(),e.endpointAdded!==void 0&&le.encode(e.endpointAdded,t.uint32(42).fork()).join(),e.endpointRemoved!==void 0&&ve.encode(e.endpointRemoved,t.uint32(50).fork()).join(),e.connected!==void 0&&pe.encode(e.connected,t.uint32(58).fork()).join(),e.error!==void 0&&Te.encode(e.error,t.uint32(66).fork()).join(),e.offerData!==void 0&&Ee.encode(e.offerData,t.uint32(74).fork()).join(),e.candidate!==void 0&&_.encode(e.candidate,t.uint32(82).fork()).join(),e.sdpAnswer!==void 0&&Me.encode(e.sdpAnswer,t.uint32(90).fork()).join(),e.vadNotification!==void 0&&he.encode(e.vadNotification,t.uint32(98).fork()).join(),e.trackVariantSwitched!==void 0&&me.encode(e.trackVariantSwitched,t.uint32(106).fork()).join(),e.trackVariantDisabled!==void 0&&ye.encode(e.trackVariantDisabled,t.uint32(114).fork()).join(),e.trackVariantEnabled!==void 0&&Se.encode(e.trackVariantEnabled,t.uint32(122).fork()).join(),t},decode(e,t){let n=e instanceof s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=Gt();for(;n.pos<i;){let a=n.uint32();switch(a>>>3){case 1:{if(a!==10)break;r.endpointUpdated=se.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.trackUpdated=ue.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.tracksAdded=fe.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.tracksRemoved=ke.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.endpointAdded=le.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.endpointRemoved=ve.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.connected=pe.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.error=Te.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.offerData=Ee.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.candidate=_.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.sdpAnswer=Me.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.vadNotification=he.decode(n,n.uint32());continue}case 13:{if(a!==106)break;r.trackVariantSwitched=me.decode(n,n.uint32());continue}case 14:{if(a!==114)break;r.trackVariantDisabled=ye.decode(n,n.uint32());continue}case 15:{if(a!==122)break;r.trackVariantEnabled=Se.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointUpdated:o(e.endpointUpdated)?se.fromJSON(e.endpointUpdated):void 0,trackUpdated:o(e.trackUpdated)?ue.fromJSON(e.trackUpdated):void 0,tracksAdded:o(e.tracksAdded)?fe.fromJSON(e.tracksAdded):void 0,tracksRemoved:o(e.tracksRemoved)?ke.fromJSON(e.tracksRemoved):void 0,endpointAdded:o(e.endpointAdded)?le.fromJSON(e.endpointAdded):void 0,endpointRemoved:o(e.endpointRemoved)?ve.fromJSON(e.endpointRemoved):void 0,connected:o(e.connected)?pe.fromJSON(e.connected):void 0,error:o(e.error)?Te.fromJSON(e.error):void 0,offerData:o(e.offerData)?Ee.fromJSON(e.offerData):void 0,candidate:o(e.candidate)?_.fromJSON(e.candidate):void 0,sdpAnswer:o(e.sdpAnswer)?Me.fromJSON(e.sdpAnswer):void 0,vadNotification:o(e.vadNotification)?he.fromJSON(e.vadNotification):void 0,trackVariantSwitched:o(e.trackVariantSwitched)?me.fromJSON(e.trackVariantSwitched):void 0,trackVariantDisabled:o(e.trackVariantDisabled)?ye.fromJSON(e.trackVariantDisabled):void 0,trackVariantEnabled:o(e.trackVariantEnabled)?Se.fromJSON(e.trackVariantEnabled):void 0}},toJSON(e){let t={};return e.endpointUpdated!==void 0&&(t.endpointUpdated=se.toJSON(e.endpointUpdated)),e.trackUpdated!==void 0&&(t.trackUpdated=ue.toJSON(e.trackUpdated)),e.tracksAdded!==void 0&&(t.tracksAdded=fe.toJSON(e.tracksAdded)),e.tracksRemoved!==void 0&&(t.tracksRemoved=ke.toJSON(e.tracksRemoved)),e.endpointAdded!==void 0&&(t.endpointAdded=le.toJSON(e.endpointAdded)),e.endpointRemoved!==void 0&&(t.endpointRemoved=ve.toJSON(e.endpointRemoved)),e.connected!==void 0&&(t.connected=pe.toJSON(e.connected)),e.error!==void 0&&(t.error=Te.toJSON(e.error)),e.offerData!==void 0&&(t.offerData=Ee.toJSON(e.offerData)),e.candidate!==void 0&&(t.candidate=_.toJSON(e.candidate)),e.sdpAnswer!==void 0&&(t.sdpAnswer=Me.toJSON(e.sdpAnswer)),e.vadNotification!==void 0&&(t.vadNotification=he.toJSON(e.vadNotification)),e.trackVariantSwitched!==void 0&&(t.trackVariantSwitched=me.toJSON(e.trackVariantSwitched)),e.trackVariantDisabled!==void 0&&(t.trackVariantDisabled=ye.toJSON(e.trackVariantDisabled)),e.trackVariantEnabled!==void 0&&(t.trackVariantEnabled=Se.toJSON(e.trackVariantEnabled)),t},create(e){return A.fromPartial(e??{})},fromPartial(e){let t=Gt();return t.endpointUpdated=e.endpointUpdated!==void 0&&e.endpointUpdated!==null?se.fromPartial(e.endpointUpdated):void 0,t.trackUpdated=e.trackUpdated!==void 0&&e.trackUpdated!==null?ue.fromPartial(e.trackUpdated):void 0,t.tracksAdded=e.tracksAdded!==void 0&&e.tracksAdded!==null?fe.fromPartial(e.tracksAdded):void 0,t.tracksRemoved=e.tracksRemoved!==void 0&&e.tracksRemoved!==null?ke.fromPartial(e.tracksRemoved):void 0,t.endpointAdded=e.endpointAdded!==void 0&&e.endpointAdded!==null?le.fromPartial(e.endpointAdded):void 0,t.endpointRemoved=e.endpointRemoved!==void 0&&e.endpointRemoved!==null?ve.fromPartial(e.endpointRemoved):void 0,t.connected=e.connected!==void 0&&e.connected!==null?pe.fromPartial(e.connected):void 0,t.error=e.error!==void 0&&e.error!==null?Te.fromPartial(e.error):void 0,t.offerData=e.offerData!==void 0&&e.offerData!==null?Ee.fromPartial(e.offerData):void 0,t.candidate=e.candidate!==void 0&&e.candidate!==null?_.fromPartial(e.candidate):void 0,t.sdpAnswer=e.sdpAnswer!==void 0&&e.sdpAnswer!==null?Me.fromPartial(e.sdpAnswer):void 0,t.vadNotification=e.vadNotification!==void 0&&e.vadNotification!==null?he.fromPartial(e.vadNotification):void 0,t.trackVariantSwitched=e.trackVariantSwitched!==void 0&&e.trackVariantSwitched!==null?me.fromPartial(e.trackVariantSwitched):void 0,t.trackVariantDisabled=e.trackVariantDisabled!==void 0&&e.trackVariantDisabled!==null?ye.fromPartial(e.trackVariantDisabled):void 0,t.trackVariantEnabled=e.trackVariantEnabled!==void 0&&e.trackVariantEnabled!==null?Se.fromPartial(e.trackVariantEnabled):void 0,t}};function Yt(){return{metadataJson:"",simulcastConfig:void 0}}var I={encode(e,t=new T){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),e.simulcastConfig!==void 0&&oe.encode(e.simulcastConfig,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=Yt();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=oe.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:o(e.metadataJson)?globalThis.String(e.metadataJson):"",simulcastConfig:o(e.simulcastConfig)?oe.fromJSON(e.simulcastConfig):void 0}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),e.simulcastConfig!==void 0&&(t.simulcastConfig=oe.toJSON(e.simulcastConfig)),t},create(e){return I.fromPartial(e??{})},fromPartial(e){let t=Yt();return t.metadataJson=e.metadataJson??"",t.simulcastConfig=e.simulcastConfig!==void 0&&e.simulcastConfig!==null?oe.fromPartial(e.simulcastConfig):void 0,t}};function zt(){return{enabled:!1,enabledVariants:[],disabledVariants:[]}}var oe={encode(e,t=new T){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 s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=zt();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:o(e.enabled)?globalThis.Boolean(e.enabled):!1,enabledVariants:globalThis.Array.isArray(e?.enabledVariants)?e.enabledVariants.map(t=>P(t)):[],disabledVariants:globalThis.Array.isArray(e?.disabledVariants)?e.disabledVariants.map(t=>P(t)):[]}},toJSON(e){let t={};return e.enabled!==!1&&(t.enabled=e.enabled),e.enabledVariants?.length&&(t.enabledVariants=e.enabledVariants.map(n=>w(n))),e.disabledVariants?.length&&(t.disabledVariants=e.disabledVariants.map(n=>w(n))),t},create(e){return oe.fromPartial(e??{})},fromPartial(e){let t=zt();return t.enabled=e.enabled??!1,t.enabledVariants=e.enabledVariants?.map(n=>n)||[],t.disabledVariants=e.disabledVariants?.map(n=>n)||[],t}};function Qt(){return{endpointType:"",metadataJson:"",trackIdToTrack:{}}}var x={encode(e,t=new T){return e.endpointType!==""&&t.uint32(18).string(e.endpointType),e.metadataJson!==""&&t.uint32(26).string(e.metadataJson),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{kt.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=Qt();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=kt.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:o(e.endpointType)?globalThis.String(e.endpointType):"",metadataJson:o(e.metadataJson)?globalThis.String(e.metadataJson):"",trackIdToTrack:nt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=I.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]=I.toJSON(r)}))}return t},create(e){return x.fromPartial(e??{})},fromPartial(e){let t=Qt();return t.endpointType=e.endpointType??"",t.metadataJson=e.metadataJson??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=I.fromPartial(r)),n),{}),t}};function Zt(){return{key:"",value:void 0}}var kt={encode(e,t=new T){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&I.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=Zt();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=I.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:o(e.key)?globalThis.String(e.key):"",value:o(e.value)?I.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=I.toJSON(e.value)),t},create(e){return kt.fromPartial(e??{})},fromPartial(e){let t=Zt();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?I.fromPartial(e.value):void 0,t}};function Xt(){return{credential:"",urls:[],username:""}}var ce={encode(e,t=new T){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 s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=Xt();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:o(e.credential)?globalThis.String(e.credential):"",urls:globalThis.Array.isArray(e?.urls)?e.urls.map(t=>globalThis.String(t)):[],username:o(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 ce.fromPartial(e??{})},fromPartial(e){let t=Xt();return t.credential=e.credential??"",t.urls=e.urls?.map(n=>n)||[],t.username=e.username??"",t}};function jt(){return{endpointId:"",metadataJson:""}}var se={encode(e,t=new T){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 s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=jt();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:o(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:o(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 se.fromPartial(e??{})},fromPartial(e){let t=jt();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function en(){return{endpointId:"",trackId:"",metadataJson:""}}var ue={encode(e,t=new T){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 s?e:new s(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.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:o(e.endpointId)?globalThis.String(e.endpointId):"",trackId:o(e.trackId)?globalThis.String(e.trackId):"",metadataJson:o(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 ue.fromPartial(e??{})},fromPartial(e){let t=en();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function tn(){return{endpointId:"",trackIdToTrack:{}}}var fe={encode(e,t=new T){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{lt.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=tn();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=lt.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:o(e.endpointId)?globalThis.String(e.endpointId):"",trackIdToTrack:nt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=I.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]=I.toJSON(r)}))}return t},create(e){return fe.fromPartial(e??{})},fromPartial(e){let t=tn();return t.endpointId=e.endpointId??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=I.fromPartial(r)),n),{}),t}};function nn(){return{key:"",value:void 0}}var lt={encode(e,t=new T){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&I.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof s?e:new s(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=I.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:o(e.key)?globalThis.String(e.key):"",value:o(e.value)?I.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=I.toJSON(e.value)),t},create(e){return lt.fromPartial(e??{})},fromPartial(e){let t=nn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?I.fromPartial(e.value):void 0,t}};function an(){return{endpointId:"",trackIds:[]}}var ke={encode(e,t=new T){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 s?e:new s(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.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:o(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 ke.fromPartial(e??{})},fromPartial(e){let t=an();return t.endpointId=e.endpointId??"",t.trackIds=e.trackIds?.map(n=>n)||[],t}};function rn(){return{endpointId:"",metadataJson:""}}var le={encode(e,t=new T){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 s?e:new s(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.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:o(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:o(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=rn();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function dn(){return{endpointId:"",endpointIdToEndpoint:{},iceServers:[]}}var pe={encode(e,t=new T){e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.endpointIdToEndpoint).forEach(([n,i])=>{pt.encode({key:n,value:i},t.uint32(18).fork()).join()});for(let n of e.iceServers)ce.encode(n,t.uint32(26).fork()).join();return t},decode(e,t){let n=e instanceof s?e:new s(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.endpointId=n.string();continue}case 2:{if(a!==18)break;let d=pt.decode(n,n.uint32());d.value!==void 0&&(r.endpointIdToEndpoint[d.key]=d.value);continue}case 3:{if(a!==26)break;r.iceServers.push(ce.decode(n,n.uint32()));continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:o(e.endpointId)?globalThis.String(e.endpointId):"",endpointIdToEndpoint:nt(e.endpointIdToEndpoint)?Object.entries(e.endpointIdToEndpoint).reduce((t,[n,i])=>(t[n]=x.fromJSON(i),t),{}):{},iceServers:globalThis.Array.isArray(e?.iceServers)?e.iceServers.map(t=>ce.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]=x.toJSON(r)}))}return e.iceServers?.length&&(t.iceServers=e.iceServers.map(n=>ce.toJSON(n))),t},create(e){return pe.fromPartial(e??{})},fromPartial(e){let t=dn();return t.endpointId=e.endpointId??"",t.endpointIdToEndpoint=Object.entries(e.endpointIdToEndpoint??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=x.fromPartial(r)),n),{}),t.iceServers=e.iceServers?.map(n=>ce.fromPartial(n))||[],t}};function on(){return{key:"",value:void 0}}var pt={encode(e,t=new T){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&x.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof s?e:new s(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.key=n.string();continue}case 2:{if(a!==18)break;r.value=x.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:o(e.key)?globalThis.String(e.key):"",value:o(e.value)?x.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=x.toJSON(e.value)),t},create(e){return pt.fromPartial(e??{})},fromPartial(e){let t=on();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?x.fromPartial(e.value):void 0,t}};function cn(){return{endpointId:""}}var ve={encode(e,t=new T){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),t},decode(e,t){let n=e instanceof s?e:new s(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.endpointId=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:o(e.endpointId)?globalThis.String(e.endpointId):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),t},create(e){return ve.fromPartial(e??{})},fromPartial(e){let t=cn();return t.endpointId=e.endpointId??"",t}};function sn(){return{message:""}}var Te={encode(e,t=new T){return e.message!==""&&t.uint32(10).string(e.message),t},decode(e,t){let n=e instanceof s?e:new s(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.message=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{message:o(e.message)?globalThis.String(e.message):""}},toJSON(e){let t={};return e.message!==""&&(t.message=e.message),t},create(e){return Te.fromPartial(e??{})},fromPartial(e){let t=sn();return t.message=e.message??"",t}};function un(){return{tracksTypes:void 0}}var Ee={encode(e,t=new T){return e.tracksTypes!==void 0&&Ie.encode(e.tracksTypes,t.uint32(10).fork()).join(),t},decode(e,t){let n=e instanceof s?e:new s(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.tracksTypes=Ie.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{tracksTypes:o(e.tracksTypes)?Ie.fromJSON(e.tracksTypes):void 0}},toJSON(e){let t={};return e.tracksTypes!==void 0&&(t.tracksTypes=Ie.toJSON(e.tracksTypes)),t},create(e){return Ee.fromPartial(e??{})},fromPartial(e){let t=un();return t.tracksTypes=e.tracksTypes!==void 0&&e.tracksTypes!==null?Ie.fromPartial(e.tracksTypes):void 0,t}};function fn(){return{audio:0,video:0}}var Ie={encode(e,t=new T){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 s?e:new s(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!==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:o(e.audio)?globalThis.Number(e.audio):0,video:o(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 Ie.fromPartial(e??{})},fromPartial(e){let t=fn();return t.audio=e.audio??0,t.video=e.video??0,t}};function kn(){return{sdp:"",midToTrackId:{}}}var Me={encode(e,t=new T){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 s?e:new s(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.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:o(e.sdp)?globalThis.String(e.sdp):"",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.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 Me.fromPartial(e??{})},fromPartial(e){let t=kn();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 ln(){return{key:"",value:""}}var vt={encode(e,t=new T){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 s?e:new s(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!==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:o(e.key)?globalThis.String(e.key):"",value:o(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=ln();return t.key=e.key??"",t.value=e.value??"",t}};function pn(){return{trackId:"",status:0}}var he={encode(e,t=new T){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 s?e:new s(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.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:o(e.trackId)?globalThis.String(e.trackId):"",status:o(e.status)?ga(e.status):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.status!==0&&(t.status=Oa(e.status)),t},create(e){return he.fromPartial(e??{})},fromPartial(e){let t=pn();return t.trackId=e.trackId??"",t.status=e.status??0,t}};function vn(){return{endpointId:"",trackId:"",variant:0}}var me={encode(e,t=new T){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 s?e:new s(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.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:o(e.endpointId)?globalThis.String(e.endpointId):"",trackId:o(e.trackId)?globalThis.String(e.trackId):"",variant:o(e.variant)?P(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=w(e.variant)),t},create(e){return me.fromPartial(e??{})},fromPartial(e){let t=vn();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Tn(){return{endpointId:"",trackId:"",variant:0}}var ye={encode(e,t=new T){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 s?e:new s(e),i=t===void 0?n.len:n.pos+t,r=Tn();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:o(e.endpointId)?globalThis.String(e.endpointId):"",trackId:o(e.trackId)?globalThis.String(e.trackId):"",variant:o(e.variant)?P(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=w(e.variant)),t},create(e){return ye.fromPartial(e??{})},fromPartial(e){let t=Tn();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function En(){return{endpointId:"",trackId:"",variant:0}}var Se={encode(e,t=new T){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 s?e:new s(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.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:o(e.endpointId)?globalThis.String(e.endpointId):"",trackId:o(e.trackId)?globalThis.String(e.trackId):"",variant:o(e.variant)?P(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=w(e.variant)),t},create(e){return Se.fromPartial(e??{})},fromPartial(e){let t=En();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function nt(e){return typeof e=="object"&&e!==null}function o(e){return e!=null}function Pa(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 wa(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 In(){return{authenticated:void 0,authRequest:void 0,mediaEvent:void 0,rtcStatsReport:void 0,peerMediaEvent:void 0,serverMediaEvent:void 0}}var we={encode(e,t=new Ze){return e.authenticated!==void 0&&_e.encode(e.authenticated,t.uint32(10).fork()).join(),e.authRequest!==void 0&&ge.encode(e.authRequest,t.uint32(18).fork()).join(),e.mediaEvent!==void 0&&Pe.encode(e.mediaEvent,t.uint32(26).fork()).join(),e.rtcStatsReport!==void 0&&Oe.encode(e.rtcStatsReport,t.uint32(34).fork()).join(),e.peerMediaEvent!==void 0&&C.encode(e.peerMediaEvent,t.uint32(42).fork()).join(),e.serverMediaEvent!==void 0&&A.encode(e.serverMediaEvent,t.uint32(50).fork()).join(),t},decode(e,t){let n=e instanceof b?e:new b(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.authenticated=_e.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.authRequest=ge.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.mediaEvent=Pe.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.rtcStatsReport=Oe.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.peerMediaEvent=C.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.serverMediaEvent=A.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{authenticated:J(e.authenticated)?_e.fromJSON(e.authenticated):void 0,authRequest:J(e.authRequest)?ge.fromJSON(e.authRequest):void 0,mediaEvent:J(e.mediaEvent)?Pe.fromJSON(e.mediaEvent):void 0,rtcStatsReport:J(e.rtcStatsReport)?Oe.fromJSON(e.rtcStatsReport):void 0,peerMediaEvent:J(e.peerMediaEvent)?C.fromJSON(e.peerMediaEvent):void 0,serverMediaEvent:J(e.serverMediaEvent)?A.fromJSON(e.serverMediaEvent):void 0}},toJSON(e){let t={};return e.authenticated!==void 0&&(t.authenticated=_e.toJSON(e.authenticated)),e.authRequest!==void 0&&(t.authRequest=ge.toJSON(e.authRequest)),e.mediaEvent!==void 0&&(t.mediaEvent=Pe.toJSON(e.mediaEvent)),e.rtcStatsReport!==void 0&&(t.rtcStatsReport=Oe.toJSON(e.rtcStatsReport)),e.peerMediaEvent!==void 0&&(t.peerMediaEvent=C.toJSON(e.peerMediaEvent)),e.serverMediaEvent!==void 0&&(t.serverMediaEvent=A.toJSON(e.serverMediaEvent)),t},create(e){return we.fromPartial(e??{})},fromPartial(e){let t=In();return t.authenticated=e.authenticated!==void 0&&e.authenticated!==null?_e.fromPartial(e.authenticated):void 0,t.authRequest=e.authRequest!==void 0&&e.authRequest!==null?ge.fromPartial(e.authRequest):void 0,t.mediaEvent=e.mediaEvent!==void 0&&e.mediaEvent!==null?Pe.fromPartial(e.mediaEvent):void 0,t.rtcStatsReport=e.rtcStatsReport!==void 0&&e.rtcStatsReport!==null?Oe.fromPartial(e.rtcStatsReport):void 0,t.peerMediaEvent=e.peerMediaEvent!==void 0&&e.peerMediaEvent!==null?C.fromPartial(e.peerMediaEvent):void 0,t.serverMediaEvent=e.serverMediaEvent!==void 0&&e.serverMediaEvent!==null?A.fromPartial(e.serverMediaEvent):void 0,t}};function Mn(){return{roomType:0}}var _e={encode(e,t=new Ze){return e.roomType!==0&&t.uint32(8).int32(e.roomType),t},decode(e,t){let n=e instanceof b?e:new b(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!==8)break;r.roomType=n.int32();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{roomType:J(e.roomType)?Pa(e.roomType):0}},toJSON(e){let t={};return e.roomType!==0&&(t.roomType=wa(e.roomType)),t},create(e){return _e.fromPartial(e??{})},fromPartial(e){let t=Mn();return t.roomType=e.roomType??0,t}};function hn(){return{token:"",sdkVersion:""}}var ge={encode(e,t=new Ze){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 b?e:new b(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.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:J(e.token)?globalThis.String(e.token):"",sdkVersion:J(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 ge.fromPartial(e??{})},fromPartial(e){let t=hn();return t.token=e.token??"",t.sdkVersion=e.sdkVersion??"",t}};function mn(){return{data:""}}var Oe={encode(e,t=new Ze){return e.data!==""&&t.uint32(10).string(e.data),t},decode(e,t){let n=e instanceof b?e:new b(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.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{data:J(e.data)?globalThis.String(e.data):""}},toJSON(e){let t={};return e.data!==""&&(t.data=e.data),t},create(e){return Oe.fromPartial(e??{})},fromPartial(e){let t=mn();return t.data=e.data??"",t}};function yn(){return{data:""}}var Pe={encode(e,t=new Ze){return e.data!==""&&t.uint32(10).string(e.data),t},decode(e,t){let n=e instanceof b?e:new b(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.data=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{data:J(e.data)?globalThis.String(e.data):""}},toJSON(e){let t={};return e.data!==""&&(t.data=e.data),t},create(e){return Pe.fromPartial(e??{})},fromPartial(e){let t=yn();return t.data=e.data??"",t}};function J(e){return e!=null}import{BinaryReader as p,BinaryWriter as y}from"@bufbuild/protobuf/wire";import{BinaryReader as Sn,BinaryWriter as Ja}from"@bufbuild/protobuf/wire";import ba from"events";import{v4 as Ra}from"uuid";import{BinaryReader as u,BinaryWriter as E}from"@bufbuild/protobuf/wire";import Da from"events";var Na=(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))(Na||{});function D(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 U(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 _n(){return{candidate:"",sdpMLineIndex:0,sdpMid:"",usernameFragment:""}}var O={encode(e,t=new Ja){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 Sn?e:new Sn(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.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:at(e.candidate)?globalThis.String(e.candidate):"",sdpMLineIndex:at(e.sdpMLineIndex)?globalThis.Number(e.sdpMLineIndex):0,sdpMid:at(e.sdpMid)?globalThis.String(e.sdpMid):"",usernameFragment:at(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=_n();return t.candidate=e.candidate??"",t.sdpMLineIndex=e.sdpMLineIndex??0,t.sdpMid=e.sdpMid??"",t.usernameFragment=e.usernameFragment??"",t}};function at(e){return e!=null}function gn(){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 Ge={encode(e,t=new y){return e.connect!==void 0&&W.encode(e.connect,t.uint32(10).fork()).join(),e.disconnect!==void 0&&q.encode(e.disconnect,t.uint32(18).fork()).join(),e.updateEndpointMetadata!==void 0&&H.encode(e.updateEndpointMetadata,t.uint32(26).fork()).join(),e.updateTrackMetadata!==void 0&&F.encode(e.updateTrackMetadata,t.uint32(34).fork()).join(),e.renegotiateTracks!==void 0&&B.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&&K.encode(e.sdpOffer,t.uint32(58).fork()).join(),e.trackBitrates!==void 0&&m.encode(e.trackBitrates,t.uint32(66).fork()).join(),e.enableTrackVariant!==void 0&&G.encode(e.enableTrackVariant,t.uint32(74).fork()).join(),e.disableTrackVariant!==void 0&&$.encode(e.disableTrackVariant,t.uint32(82).fork()).join(),e.setTargetTrackVariant!==void 0&&Y.encode(e.setTargetTrackVariant,t.uint32(90).fork()).join(),e.unmuteTrack!==void 0&&z.encode(e.unmuteTrack,t.uint32(98).fork()).join(),t},decode(e,t){let n=e instanceof p?e:new p(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.connect=W.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.disconnect=q.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.updateEndpointMetadata=H.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.updateTrackMetadata=F.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.renegotiateTracks=B.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=K.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.trackBitrates=m.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.enableTrackVariant=G.decode(n,n.uint32());continue}case 10:{if(a!==82)break;r.disableTrackVariant=$.decode(n,n.uint32());continue}case 11:{if(a!==90)break;r.setTargetTrackVariant=Y.decode(n,n.uint32());continue}case 12:{if(a!==98)break;r.unmuteTrack=z.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{connect:k(e.connect)?W.fromJSON(e.connect):void 0,disconnect:k(e.disconnect)?q.fromJSON(e.disconnect):void 0,updateEndpointMetadata:k(e.updateEndpointMetadata)?H.fromJSON(e.updateEndpointMetadata):void 0,updateTrackMetadata:k(e.updateTrackMetadata)?F.fromJSON(e.updateTrackMetadata):void 0,renegotiateTracks:k(e.renegotiateTracks)?B.fromJSON(e.renegotiateTracks):void 0,candidate:k(e.candidate)?O.fromJSON(e.candidate):void 0,sdpOffer:k(e.sdpOffer)?K.fromJSON(e.sdpOffer):void 0,trackBitrates:k(e.trackBitrates)?m.fromJSON(e.trackBitrates):void 0,enableTrackVariant:k(e.enableTrackVariant)?G.fromJSON(e.enableTrackVariant):void 0,disableTrackVariant:k(e.disableTrackVariant)?$.fromJSON(e.disableTrackVariant):void 0,setTargetTrackVariant:k(e.setTargetTrackVariant)?Y.fromJSON(e.setTargetTrackVariant):void 0,unmuteTrack:k(e.unmuteTrack)?z.fromJSON(e.unmuteTrack):void 0}},toJSON(e){let t={};return e.connect!==void 0&&(t.connect=W.toJSON(e.connect)),e.disconnect!==void 0&&(t.disconnect=q.toJSON(e.disconnect)),e.updateEndpointMetadata!==void 0&&(t.updateEndpointMetadata=H.toJSON(e.updateEndpointMetadata)),e.updateTrackMetadata!==void 0&&(t.updateTrackMetadata=F.toJSON(e.updateTrackMetadata)),e.renegotiateTracks!==void 0&&(t.renegotiateTracks=B.toJSON(e.renegotiateTracks)),e.candidate!==void 0&&(t.candidate=O.toJSON(e.candidate)),e.sdpOffer!==void 0&&(t.sdpOffer=K.toJSON(e.sdpOffer)),e.trackBitrates!==void 0&&(t.trackBitrates=m.toJSON(e.trackBitrates)),e.enableTrackVariant!==void 0&&(t.enableTrackVariant=G.toJSON(e.enableTrackVariant)),e.disableTrackVariant!==void 0&&(t.disableTrackVariant=$.toJSON(e.disableTrackVariant)),e.setTargetTrackVariant!==void 0&&(t.setTargetTrackVariant=Y.toJSON(e.setTargetTrackVariant)),e.unmuteTrack!==void 0&&(t.unmuteTrack=z.toJSON(e.unmuteTrack)),t},create(e){return Ge.fromPartial(e??{})},fromPartial(e){let t=gn();return t.connect=e.connect!==void 0&&e.connect!==null?W.fromPartial(e.connect):void 0,t.disconnect=e.disconnect!==void 0&&e.disconnect!==null?q.fromPartial(e.disconnect):void 0,t.updateEndpointMetadata=e.updateEndpointMetadata!==void 0&&e.updateEndpointMetadata!==null?H.fromPartial(e.updateEndpointMetadata):void 0,t.updateTrackMetadata=e.updateTrackMetadata!==void 0&&e.updateTrackMetadata!==null?F.fromPartial(e.updateTrackMetadata):void 0,t.renegotiateTracks=e.renegotiateTracks!==void 0&&e.renegotiateTracks!==null?B.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?K.fromPartial(e.sdpOffer):void 0,t.trackBitrates=e.trackBitrates!==void 0&&e.trackBitrates!==null?m.fromPartial(e.trackBitrates):void 0,t.enableTrackVariant=e.enableTrackVariant!==void 0&&e.enableTrackVariant!==null?G.fromPartial(e.enableTrackVariant):void 0,t.disableTrackVariant=e.disableTrackVariant!==void 0&&e.disableTrackVariant!==null?$.fromPartial(e.disableTrackVariant):void 0,t.setTargetTrackVariant=e.setTargetTrackVariant!==void 0&&e.setTargetTrackVariant!==null?Y.fromPartial(e.setTargetTrackVariant):void 0,t.unmuteTrack=e.unmuteTrack!==void 0&&e.unmuteTrack!==null?z.fromPartial(e.unmuteTrack):void 0,t}};function On(){return{variant:0,bitrate:0}}var Je={encode(e,t=new y){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 p?e:new p(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!==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:k(e.variant)?D(e.variant):0,bitrate:k(e.bitrate)?globalThis.Number(e.bitrate):0}},toJSON(e){let t={};return e.variant!==0&&(t.variant=U(e.variant)),e.bitrate!==0&&(t.bitrate=Math.round(e.bitrate)),t},create(e){return Je.fromPartial(e??{})},fromPartial(e){let t=On();return t.variant=e.variant??0,t.bitrate=e.bitrate??0,t}};function Pn(){return{metadataJson:""}}var W={encode(e,t=new y){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof p?e:new p(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.metadataJson=n.string();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):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return W.fromPartial(e??{})},fromPartial(e){let t=Pn();return t.metadataJson=e.metadataJson??"",t}};function wn(){return{}}var q={encode(e,t=new y){return t},decode(e,t){let n=e instanceof p?e:new p(e),i=t===void 0?n.len:n.pos+t,r=wn();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 q.fromPartial(e??{})},fromPartial(e){return wn()}};function Jn(){return{metadataJson:""}}var H={encode(e,t=new y){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),t},decode(e,t){let n=e instanceof p?e:new p(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.metadataJson=n.string();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):""}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),t},create(e){return H.fromPartial(e??{})},fromPartial(e){let t=Jn();return t.metadataJson=e.metadataJson??"",t}};function Nn(){return{trackId:"",metadataJson:""}}var F={encode(e,t=new y){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 p?e:new p(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.metadataJson=n.string();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):"",metadataJson:k(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 F.fromPartial(e??{})},fromPartial(e){let t=Nn();return t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function bn(){return{}}var B={encode(e,t=new y){return t},decode(e,t){let n=e instanceof p?e:new p(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 B.fromPartial(e??{})},fromPartial(e){return bn()}};function Rn(){return{sdp:"",trackIdToMetadataJson:{},trackIdToBitrates:{},midToTrackId:{}}}var K={encode(e,t=new y){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.trackIdToMetadataJson).forEach(([n,i])=>{Mt.encode({key:n,value:i},t.uint32(18).fork()).join()}),Object.entries(e.trackIdToBitrates).forEach(([n,i])=>{ht.encode({key:n,value:i},t.uint32(26).fork()).join()}),Object.entries(e.midToTrackId).forEach(([n,i])=>{mt.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof p?e:new p(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.sdp=n.string();continue}case 2:{if(a!==18)break;let d=Mt.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToMetadataJson[d.key]=d.value);continue}case 3:{if(a!==26)break;let d=ht.decode(n,n.uint32());d.value!==void 0&&(r.trackIdToBitrates[d.key]=d.value);continue}case 4:{if(a!==34)break;let d=mt.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):"",trackIdToMetadataJson:Tt(e.trackIdToMetadataJson)?Object.entries(e.trackIdToMetadataJson).reduce((t,[n,i])=>(t[n]=String(i),t),{}):{},trackIdToBitrates:Tt(e.trackIdToBitrates)?Object.entries(e.trackIdToBitrates).reduce((t,[n,i])=>(t[n]=m.fromJSON(i),t),{}):{},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.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]=m.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 K.fromPartial(e??{})},fromPartial(e){let t=Rn();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]=m.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 Mt={encode(e,t=new y){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 p?e:new p(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: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 Mt.fromPartial(e??{})},fromPartial(e){let t=Cn();return t.key=e.key??"",t.value=e.value??"",t}};function xn(){return{key:"",value:void 0}}var ht={encode(e,t=new y){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&m.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof p?e:new p(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.key=n.string();continue}case 2:{if(a!==18)break;r.value=m.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)?m.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=m.toJSON(e.value)),t},create(e){return ht.fromPartial(e??{})},fromPartial(e){let t=xn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?m.fromPartial(e.value):void 0,t}};function An(){return{key:"",value:""}}var mt={encode(e,t=new y){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 p?e:new p(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.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 mt.fromPartial(e??{})},fromPartial(e){let t=An();return t.key=e.key??"",t.value=e.value??"",t}};function Bn(){return{trackId:"",variantBitrates:[]}}var m={encode(e,t=new y){e.trackId!==""&&t.uint32(10).string(e.trackId);for(let n of e.variantBitrates)Je.encode(n,t.uint32(18).fork()).join();return t},decode(e,t){let n=e instanceof p?e:new p(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.variantBitrates.push(Je.decode(n,n.uint32()));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):"",variantBitrates:globalThis.Array.isArray(e?.variantBitrates)?e.variantBitrates.map(t=>Je.fromJSON(t)):[]}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variantBitrates?.length&&(t.variantBitrates=e.variantBitrates.map(n=>Je.toJSON(n))),t},create(e){return m.fromPartial(e??{})},fromPartial(e){let t=Bn();return t.trackId=e.trackId??"",t.variantBitrates=e.variantBitrates?.map(n=>Je.fromPartial(n))||[],t}};function Vn(){return{trackId:"",variant:0}}var $={encode(e,t=new y){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 p?e:new p(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.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:k(e.trackId)?globalThis.String(e.trackId):"",variant:k(e.variant)?D(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=U(e.variant)),t},create(e){return $.fromPartial(e??{})},fromPartial(e){let t=Vn();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Dn(){return{trackId:"",variant:0}}var G={encode(e,t=new y){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 p?e:new p(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}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:k(e.trackId)?globalThis.String(e.trackId):"",variant:k(e.variant)?D(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=U(e.variant)),t},create(e){return G.fromPartial(e??{})},fromPartial(e){let t=Dn();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Un(){return{trackId:"",variant:0}}var Y={encode(e,t=new y){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 p?e:new p(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.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:k(e.trackId)?globalThis.String(e.trackId):"",variant:k(e.variant)?D(e.variant):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.variant!==0&&(t.variant=U(e.variant)),t},create(e){return Y.fromPartial(e??{})},fromPartial(e){let t=Un();return t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function Ln(){return{trackId:""}}var z={encode(e,t=new y){return e.trackId!==""&&t.uint32(10).string(e.trackId),t},decode(e,t){let n=e instanceof p?e:new p(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!==10)break;r.trackId=n.string();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):""}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),t},create(e){return z.fromPartial(e??{})},fromPartial(e){let t=Ln();return t.trackId=e.trackId??"",t}};function Tt(e){return typeof e=="object"&&e!==null}function k(e){return e!=null}var Ca=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?.()}},xa=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)}},Et=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 Aa(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 Ba(e){switch(e){case 0:return"STATUS_UNSPECIFIED";case 1:return"STATUS_SILENCE";case 2:return"STATUS_SPEECH";case-1:default:return"UNRECOGNIZED"}}function Fn(){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 ka={encode(e,t=new E){return e.endpointUpdated!==void 0&&Re.encode(e.endpointUpdated,t.uint32(10).fork()).join(),e.trackUpdated!==void 0&&Ce.encode(e.trackUpdated,t.uint32(18).fork()).join(),e.tracksAdded!==void 0&&xe.encode(e.tracksAdded,t.uint32(26).fork()).join(),e.tracksRemoved!==void 0&&Ae.encode(e.tracksRemoved,t.uint32(34).fork()).join(),e.endpointAdded!==void 0&&Be.encode(e.endpointAdded,t.uint32(42).fork()).join(),e.endpointRemoved!==void 0&&De.encode(e.endpointRemoved,t.uint32(50).fork()).join(),e.connected!==void 0&&Ve.encode(e.connected,t.uint32(58).fork()).join(),e.error!==void 0&&Ue.encode(e.error,t.uint32(66).fork()).join(),e.offerData!==void 0&&Le.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&&We.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&&He.encode(e.trackVariantSwitched,t.uint32(106).fork()).join(),e.trackVariantDisabled!==void 0&&Ke.encode(e.trackVariantDisabled,t.uint32(114).fork()).join(),e.trackVariantEnabled!==void 0&&$e.encode(e.trackVariantEnabled,t.uint32(122).fork()).join(),t},decode(e,t){let n=e instanceof u?e:new u(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.endpointUpdated=Re.decode(n,n.uint32());continue}case 2:{if(a!==18)break;r.trackUpdated=Ce.decode(n,n.uint32());continue}case 3:{if(a!==26)break;r.tracksAdded=xe.decode(n,n.uint32());continue}case 4:{if(a!==34)break;r.tracksRemoved=Ae.decode(n,n.uint32());continue}case 5:{if(a!==42)break;r.endpointAdded=Be.decode(n,n.uint32());continue}case 6:{if(a!==50)break;r.endpointRemoved=De.decode(n,n.uint32());continue}case 7:{if(a!==58)break;r.connected=Ve.decode(n,n.uint32());continue}case 8:{if(a!==66)break;r.error=Ue.decode(n,n.uint32());continue}case 9:{if(a!==74)break;r.offerData=Le.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=We.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=He.decode(n,n.uint32());continue}case 14:{if(a!==114)break;r.trackVariantDisabled=Ke.decode(n,n.uint32());continue}case 15:{if(a!==122)break;r.trackVariantEnabled=$e.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointUpdated:c(e.endpointUpdated)?Re.fromJSON(e.endpointUpdated):void 0,trackUpdated:c(e.trackUpdated)?Ce.fromJSON(e.trackUpdated):void 0,tracksAdded:c(e.tracksAdded)?xe.fromJSON(e.tracksAdded):void 0,tracksRemoved:c(e.tracksRemoved)?Ae.fromJSON(e.tracksRemoved):void 0,endpointAdded:c(e.endpointAdded)?Be.fromJSON(e.endpointAdded):void 0,endpointRemoved:c(e.endpointRemoved)?De.fromJSON(e.endpointRemoved):void 0,connected:c(e.connected)?Ve.fromJSON(e.connected):void 0,error:c(e.error)?Ue.fromJSON(e.error):void 0,offerData:c(e.offerData)?Le.fromJSON(e.offerData):void 0,candidate:c(e.candidate)?O.fromJSON(e.candidate):void 0,sdpAnswer:c(e.sdpAnswer)?We.fromJSON(e.sdpAnswer):void 0,vadNotification:c(e.vadNotification)?qe.fromJSON(e.vadNotification):void 0,trackVariantSwitched:c(e.trackVariantSwitched)?He.fromJSON(e.trackVariantSwitched):void 0,trackVariantDisabled:c(e.trackVariantDisabled)?Ke.fromJSON(e.trackVariantDisabled):void 0,trackVariantEnabled:c(e.trackVariantEnabled)?$e.fromJSON(e.trackVariantEnabled):void 0}},toJSON(e){let t={};return e.endpointUpdated!==void 0&&(t.endpointUpdated=Re.toJSON(e.endpointUpdated)),e.trackUpdated!==void 0&&(t.trackUpdated=Ce.toJSON(e.trackUpdated)),e.tracksAdded!==void 0&&(t.tracksAdded=xe.toJSON(e.tracksAdded)),e.tracksRemoved!==void 0&&(t.tracksRemoved=Ae.toJSON(e.tracksRemoved)),e.endpointAdded!==void 0&&(t.endpointAdded=Be.toJSON(e.endpointAdded)),e.endpointRemoved!==void 0&&(t.endpointRemoved=De.toJSON(e.endpointRemoved)),e.connected!==void 0&&(t.connected=Ve.toJSON(e.connected)),e.error!==void 0&&(t.error=Ue.toJSON(e.error)),e.offerData!==void 0&&(t.offerData=Le.toJSON(e.offerData)),e.candidate!==void 0&&(t.candidate=O.toJSON(e.candidate)),e.sdpAnswer!==void 0&&(t.sdpAnswer=We.toJSON(e.sdpAnswer)),e.vadNotification!==void 0&&(t.vadNotification=qe.toJSON(e.vadNotification)),e.trackVariantSwitched!==void 0&&(t.trackVariantSwitched=He.toJSON(e.trackVariantSwitched)),e.trackVariantDisabled!==void 0&&(t.trackVariantDisabled=Ke.toJSON(e.trackVariantDisabled)),e.trackVariantEnabled!==void 0&&(t.trackVariantEnabled=$e.toJSON(e.trackVariantEnabled)),t},create(e){return ka.fromPartial(e??{})},fromPartial(e){let t=Fn();return t.endpointUpdated=e.endpointUpdated!==void 0&&e.endpointUpdated!==null?Re.fromPartial(e.endpointUpdated):void 0,t.trackUpdated=e.trackUpdated!==void 0&&e.trackUpdated!==null?Ce.fromPartial(e.trackUpdated):void 0,t.tracksAdded=e.tracksAdded!==void 0&&e.tracksAdded!==null?xe.fromPartial(e.tracksAdded):void 0,t.tracksRemoved=e.tracksRemoved!==void 0&&e.tracksRemoved!==null?Ae.fromPartial(e.tracksRemoved):void 0,t.endpointAdded=e.endpointAdded!==void 0&&e.endpointAdded!==null?Be.fromPartial(e.endpointAdded):void 0,t.endpointRemoved=e.endpointRemoved!==void 0&&e.endpointRemoved!==null?De.fromPartial(e.endpointRemoved):void 0,t.connected=e.connected!==void 0&&e.connected!==null?Ve.fromPartial(e.connected):void 0,t.error=e.error!==void 0&&e.error!==null?Ue.fromPartial(e.error):void 0,t.offerData=e.offerData!==void 0&&e.offerData!==null?Le.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?We.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?He.fromPartial(e.trackVariantSwitched):void 0,t.trackVariantDisabled=e.trackVariantDisabled!==void 0&&e.trackVariantDisabled!==null?Ke.fromPartial(e.trackVariantDisabled):void 0,t.trackVariantEnabled=e.trackVariantEnabled!==void 0&&e.trackVariantEnabled!==null?$e.fromPartial(e.trackVariantEnabled):void 0,t}};function Wn(){return{metadataJson:"",simulcastConfig:void 0}}var M={encode(e,t=new E){return e.metadataJson!==""&&t.uint32(10).string(e.metadataJson),e.simulcastConfig!==void 0&&Ne.encode(e.simulcastConfig,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof u?e:new u(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}case 2:{if(a!==18)break;r.simulcastConfig=Ne.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{metadataJson:c(e.metadataJson)?globalThis.String(e.metadataJson):"",simulcastConfig:c(e.simulcastConfig)?Ne.fromJSON(e.simulcastConfig):void 0}},toJSON(e){let t={};return e.metadataJson!==""&&(t.metadataJson=e.metadataJson),e.simulcastConfig!==void 0&&(t.simulcastConfig=Ne.toJSON(e.simulcastConfig)),t},create(e){return M.fromPartial(e??{})},fromPartial(e){let t=Wn();return t.metadataJson=e.metadataJson??"",t.simulcastConfig=e.simulcastConfig!==void 0&&e.simulcastConfig!==null?Ne.fromPartial(e.simulcastConfig):void 0,t}};function qn(){return{enabled:!1,enabledVariants:[],disabledVariants:[]}}var Ne={encode(e,t=new E){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 u?e:new u(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!==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:c(e.enabled)?globalThis.Boolean(e.enabled):!1,enabledVariants:globalThis.Array.isArray(e?.enabledVariants)?e.enabledVariants.map(t=>D(t)):[],disabledVariants:globalThis.Array.isArray(e?.disabledVariants)?e.disabledVariants.map(t=>D(t)):[]}},toJSON(e){let t={};return e.enabled!==!1&&(t.enabled=e.enabled),e.enabledVariants?.length&&(t.enabledVariants=e.enabledVariants.map(n=>U(n))),e.disabledVariants?.length&&(t.disabledVariants=e.disabledVariants.map(n=>U(n))),t},create(e){return Ne.fromPartial(e??{})},fromPartial(e){let t=qn();return t.enabled=e.enabled??!1,t.enabledVariants=e.enabledVariants?.map(n=>n)||[],t.disabledVariants=e.disabledVariants?.map(n=>n)||[],t}};function Hn(){return{endpointType:"",metadataJson:"",trackIdToTrack:{}}}var V={encode(e,t=new E){return e.endpointType!==""&&t.uint32(18).string(e.endpointType),e.metadataJson!==""&&t.uint32(26).string(e.metadataJson),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{yt.encode({key:n,value:i},t.uint32(34).fork()).join()}),t},decode(e,t){let n=e instanceof u?e:new u(e),i=t===void 0?n.len:n.pos+t,r=Hn();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=yt.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:c(e.endpointType)?globalThis.String(e.endpointType):"",metadataJson:c(e.metadataJson)?globalThis.String(e.metadataJson):"",trackIdToTrack:rt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=M.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]=M.toJSON(r)}))}return t},create(e){return V.fromPartial(e??{})},fromPartial(e){let t=Hn();return t.endpointType=e.endpointType??"",t.metadataJson=e.metadataJson??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=M.fromPartial(r)),n),{}),t}};function Kn(){return{key:"",value:void 0}}var yt={encode(e,t=new E){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&M.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof u?e:new u(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=M.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:c(e.key)?globalThis.String(e.key):"",value:c(e.value)?M.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=M.toJSON(e.value)),t},create(e){return yt.fromPartial(e??{})},fromPartial(e){let t=Kn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?M.fromPartial(e.value):void 0,t}};function $n(){return{credential:"",urls:[],username:""}}var be={encode(e,t=new E){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 u?e:new u(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:c(e.credential)?globalThis.String(e.credential):"",urls:globalThis.Array.isArray(e?.urls)?e.urls.map(t=>globalThis.String(t)):[],username:c(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 be.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 Gn(){return{endpointId:"",metadataJson:""}}var Re={encode(e,t=new E){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 u?e:new u(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;r.metadataJson=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:c(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:c(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 Re.fromPartial(e??{})},fromPartial(e){let t=Gn();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function Yn(){return{endpointId:"",trackId:"",metadataJson:""}}var Ce={encode(e,t=new E){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 u?e:new u(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;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:c(e.endpointId)?globalThis.String(e.endpointId):"",trackId:c(e.trackId)?globalThis.String(e.trackId):"",metadataJson:c(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 Ce.fromPartial(e??{})},fromPartial(e){let t=Yn();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.metadataJson=e.metadataJson??"",t}};function zn(){return{endpointId:"",trackIdToTrack:{}}}var xe={encode(e,t=new E){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.trackIdToTrack).forEach(([n,i])=>{St.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof u?e:new u(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=St.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:c(e.endpointId)?globalThis.String(e.endpointId):"",trackIdToTrack:rt(e.trackIdToTrack)?Object.entries(e.trackIdToTrack).reduce((t,[n,i])=>(t[n]=M.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]=M.toJSON(r)}))}return t},create(e){return xe.fromPartial(e??{})},fromPartial(e){let t=zn();return t.endpointId=e.endpointId??"",t.trackIdToTrack=Object.entries(e.trackIdToTrack??{}).reduce((n,[i,r])=>(r!==void 0&&(n[i]=M.fromPartial(r)),n),{}),t}};function Qn(){return{key:"",value:void 0}}var St={encode(e,t=new E){return e.key!==""&&t.uint32(10).string(e.key),e.value!==void 0&&M.encode(e.value,t.uint32(18).fork()).join(),t},decode(e,t){let n=e instanceof u?e:new u(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=M.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{key:c(e.key)?globalThis.String(e.key):"",value:c(e.value)?M.fromJSON(e.value):void 0}},toJSON(e){let t={};return e.key!==""&&(t.key=e.key),e.value!==void 0&&(t.value=M.toJSON(e.value)),t},create(e){return St.fromPartial(e??{})},fromPartial(e){let t=Qn();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?M.fromPartial(e.value):void 0,t}};function Zn(){return{endpointId:"",trackIds:[]}}var Ae={encode(e,t=new E){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 u?e:new u(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:c(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 Ae.fromPartial(e??{})},fromPartial(e){let t=Zn();return t.endpointId=e.endpointId??"",t.trackIds=e.trackIds?.map(n=>n)||[],t}};function Xn(){return{endpointId:"",metadataJson:""}}var Be={encode(e,t=new E){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 u?e:new u(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}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:c(e.endpointId)?globalThis.String(e.endpointId):"",metadataJson:c(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 Be.fromPartial(e??{})},fromPartial(e){let t=Xn();return t.endpointId=e.endpointId??"",t.metadataJson=e.metadataJson??"",t}};function jn(){return{endpointId:"",endpointIdToEndpoint:{},iceServers:[]}}var Ve={encode(e,t=new E){e.endpointId!==""&&t.uint32(10).string(e.endpointId),Object.entries(e.endpointIdToEndpoint).forEach(([n,i])=>{_t.encode({key:n,value:i},t.uint32(18).fork()).join()});for(let n of e.iceServers)be.encode(n,t.uint32(26).fork()).join();return t},decode(e,t){let n=e instanceof u?e:new u(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.endpointId=n.string();continue}case 2:{if(a!==18)break;let d=_t.decode(n,n.uint32());d.value!==void 0&&(r.endpointIdToEndpoint[d.key]=d.value);continue}case 3:{if(a!==26)break;r.iceServers.push(be.decode(n,n.uint32()));continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:c(e.endpointId)?globalThis.String(e.endpointId):"",endpointIdToEndpoint:rt(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=>be.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=>be.toJSON(n))),t},create(e){return Ve.fromPartial(e??{})},fromPartial(e){let t=jn();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=>be.fromPartial(n))||[],t}};function ea(){return{key:"",value:void 0}}var _t={encode(e,t=new E){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 u?e:new u(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.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:c(e.key)?globalThis.String(e.key):"",value:c(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 _t.fromPartial(e??{})},fromPartial(e){let t=ea();return t.key=e.key??"",t.value=e.value!==void 0&&e.value!==null?V.fromPartial(e.value):void 0,t}};function ta(){return{endpointId:""}}var De={encode(e,t=new E){return e.endpointId!==""&&t.uint32(10).string(e.endpointId),t},decode(e,t){let n=e instanceof u?e:new u(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.endpointId=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{endpointId:c(e.endpointId)?globalThis.String(e.endpointId):""}},toJSON(e){let t={};return e.endpointId!==""&&(t.endpointId=e.endpointId),t},create(e){return De.fromPartial(e??{})},fromPartial(e){let t=ta();return t.endpointId=e.endpointId??"",t}};function na(){return{message:""}}var Ue={encode(e,t=new E){return e.message!==""&&t.uint32(10).string(e.message),t},decode(e,t){let n=e instanceof u?e:new u(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.message=n.string();continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{message:c(e.message)?globalThis.String(e.message):""}},toJSON(e){let t={};return e.message!==""&&(t.message=e.message),t},create(e){return Ue.fromPartial(e??{})},fromPartial(e){let t=na();return t.message=e.message??"",t}};function aa(){return{tracksTypes:void 0}}var Le={encode(e,t=new E){return e.tracksTypes!==void 0&&Fe.encode(e.tracksTypes,t.uint32(10).fork()).join(),t},decode(e,t){let n=e instanceof u?e:new u(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.tracksTypes=Fe.decode(n,n.uint32());continue}}if((a&7)===4||a===0)break;n.skip(a&7)}return r},fromJSON(e){return{tracksTypes:c(e.tracksTypes)?Fe.fromJSON(e.tracksTypes):void 0}},toJSON(e){let t={};return e.tracksTypes!==void 0&&(t.tracksTypes=Fe.toJSON(e.tracksTypes)),t},create(e){return Le.fromPartial(e??{})},fromPartial(e){let t=aa();return t.tracksTypes=e.tracksTypes!==void 0&&e.tracksTypes!==null?Fe.fromPartial(e.tracksTypes):void 0,t}};function ra(){return{audio:0,video:0}}var Fe={encode(e,t=new E){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 u?e:new u(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!==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:c(e.audio)?globalThis.Number(e.audio):0,video:c(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 Fe.fromPartial(e??{})},fromPartial(e){let t=ra();return t.audio=e.audio??0,t.video=e.video??0,t}};function ia(){return{sdp:"",midToTrackId:{}}}var We={encode(e,t=new E){return e.sdp!==""&&t.uint32(10).string(e.sdp),Object.entries(e.midToTrackId).forEach(([n,i])=>{gt.encode({key:n,value:i},t.uint32(18).fork()).join()}),t},decode(e,t){let n=e instanceof u?e:new u(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.sdp=n.string();continue}case 2:{if(a!==18)break;let d=gt.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:c(e.sdp)?globalThis.String(e.sdp):"",midToTrackId:rt(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 We.fromPartial(e??{})},fromPartial(e){let t=ia();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 da(){return{key:"",value:""}}var gt={encode(e,t=new E){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 u?e:new u(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.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:c(e.key)?globalThis.String(e.key):"",value:c(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 gt.fromPartial(e??{})},fromPartial(e){let t=da();return t.key=e.key??"",t.value=e.value??"",t}};function oa(){return{trackId:"",status:0}}var qe={encode(e,t=new E){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 u?e:new u(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.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:c(e.trackId)?globalThis.String(e.trackId):"",status:c(e.status)?Aa(e.status):0}},toJSON(e){let t={};return e.trackId!==""&&(t.trackId=e.trackId),e.status!==0&&(t.status=Ba(e.status)),t},create(e){return qe.fromPartial(e??{})},fromPartial(e){let t=oa();return t.trackId=e.trackId??"",t.status=e.status??0,t}};function ca(){return{endpointId:"",trackId:"",variant:0}}var He={encode(e,t=new E){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 u?e:new u(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.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:c(e.endpointId)?globalThis.String(e.endpointId):"",trackId:c(e.trackId)?globalThis.String(e.trackId):"",variant:c(e.variant)?D(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=U(e.variant)),t},create(e){return He.fromPartial(e??{})},fromPartial(e){let t=ca();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function sa(){return{endpointId:"",trackId:"",variant:0}}var Ke={encode(e,t=new E){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 u?e:new u(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.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:c(e.endpointId)?globalThis.String(e.endpointId):"",trackId:c(e.trackId)?globalThis.String(e.trackId):"",variant:c(e.variant)?D(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=U(e.variant)),t},create(e){return Ke.fromPartial(e??{})},fromPartial(e){let t=sa();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function ua(){return{endpointId:"",trackId:"",variant:0}}var $e={encode(e,t=new E){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 u?e:new u(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.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:c(e.endpointId)?globalThis.String(e.endpointId):"",trackId:c(e.trackId)?globalThis.String(e.trackId):"",variant:c(e.variant)?D(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=U(e.variant)),t},create(e){return $e.fromPartial(e??{})},fromPartial(e){let t=ua();return t.endpointId=e.endpointId??"",t.trackId=e.trackId??"",t.variant=e.variant??0,t}};function rt(e){return typeof e=="object"&&e!==null}function c(e){return e!=null}function la(e){return Ge.encode(e).finish()}function Va(e){return ka.decode(e)}var pa=e=>e==="audio"||e==="video",va=class extends Da{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}},fa={audio:5e4,video:25e5},Ua=0,La={3:25e5,2:5e5,1:15e4,0:0,[-1]:0},Ta=(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,v)=>d+(i/(v.scaleResolutionDownBy||1))**2,0),a=n/r;return e.map(d=>({...d,maxBitrate:a*(i/(d.scaleResolutionDownBy||1))**2}))},Fa=(e,t)=>{let n=[{}];return e.encodings.length===0?n:Ta(e.encodings,t)},Xe={l:1,m:2,h:3};function It(e,t,n){let i=e==="mute"?"localTrackMuted":"localTrackUnmuted";if(e=="unmute"){let r=z.create({trackId:n});t.emit("sendMediaEvent",la({unmuteTrack:r}))}t.emit(i,{trackId:n})}function Wa(e,t){return e&&!t?"mute":!e&&t?"unmute":"replace"}var qa=e=>{if(!e.track)throw new Error("Cannot create transceiver config for ");return e.track.kind==="audio"?Ha(e.stream):Ka(e,e.maxBandwidth)},Ha=e=>({direction:"sendonly",streams:e?[e]:[]}),Ka=(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 Ga(e,n)}if(typeof t=="number")return $a(e,t);throw new Error("LocalTrack is in invalid state!")},$a=(e,t)=>({direction:"sendonly",sendEncodings:Ta([{active:!0}],t),streams:e.stream?[e.stream]:[]}),Ga=(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:Ya(i,t)}},Ya=(e,t)=>e.filter(n=>n.rid).map(n=>{let i=!!n.rid&&Xe[n.rid]||0,r=t.get(i)||0;return{...n,maxBitrate:r>0?r*1024:void 0}}),za=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&&Xe[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=qa(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!");i?.getTracks().forEach(d=>{i?.removeTrack(d)}),e&&i?.addTrack(e);let a=Wa(this.trackContext.track,e);this.trackContext.track=e,this.mediaStreamTrackId=e?.id??null,(a==="mute"||a==="unmute")&&It(a,t,n);try{await this.sender.replaceTrack(e)}catch{a==="mute"?It("unmute",t,n):a==="unmute"&&It("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=Fa(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&&Xe[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&&Xe[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 fa[e.trackKind]}if(!this.sender)return;let n=this.sender.getParameters().encodings;if(this.isNotSimulcastTrack(n))return n[0].maxBitrate||(t?fa[t]:Ua);if(t==="audio")throw"Audio track cannot have multiple encodings";return n.filter(i=>i.rid).reduce((i,r)=>{let a=Xe[r.rid]??0;return i[a]=r.maxBitrate||La[a],i},{})};createTrackVariantBitratesEvent=()=>{}},Qa=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 K.create({sdp:e.sdp,midToTrackId:i,trackIdToBitrates:n,trackIdToMetadataJson:t})};addTrack=(e,t,n,i,r,a,d)=>{let v=new va(this.localEndpoint,t,r,a);if(v.track=n,v.stream=i,v.maxBandwidth=d,!pa(n.kind))throw new Error("Track has no kind");v.trackKind=n.kind,this.localEndpoint.tracks.set(t,v);let N=new za(e,t,v);return this.localTracks[t]=N,N};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=B.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=m.create({trackId:e,variantBitrates:[{variant:0,bitrate:t}]});this.sendMediaEvent(Ge.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(([v,N])=>({variant:Number(v),bitrate:N})));let d=m.create({trackId:e,variantBitrates:a});this.sendMediaEvent(Ge.create({trackBitrates:d})),this.emit("localTrackEncodingBandwidthSet",{trackId:e,rid:t,bandwidth:n})};updateEndpointMetadata=e=>{this.localEndpoint.metadata=e;let t=H.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=F.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=$.create({trackId:e,variant:t});this.sendMediaEvent(Ge.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=G.create({trackId:e,variant:t});this.sendMediaEvent(Ge.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()})}},Za=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:B.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()}},Xa=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(!pa(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}`)}},ja=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,v=new va(n,i,d,a);return new Xa(i,v)}).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=Y.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)})}},Ea=class extends ba{localTrackManager;remote;local;commandsQueue;proposedIceServers=[];bandwidthEstimation=BigInt(0);connectionManager;clearConnectionCallbacks=null;constructor(){super();let e=n=>this.sendMediaEvent(n),t=(n,...i)=>{this.emit(n,...i)};this.remote=new ja(t,e),this.local=new Qa(t,e),this.localTrackManager=new Za(this.local,e),this.commandsQueue=new Ca(this.localTrackManager)}connect=e=>{this.local.setEndpointMetadata(e);let t=W.create({metadataJson:JSON.stringify(e)});this.sendMediaEvent({connect:t})};receiveMediaEvent=async e=>{let t=Va(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,v])=>{this.remote.addRemoteEndpoint(d,v.metadataJson,v.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}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)console.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=F.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){console.error(t)}};async addTrack(e,t,n={enabled:!1,enabledVariants:[],disabledVariants:[]},i=0){let r=new Et,a=this.getTrackId(Ra()),d=new MediaStream;try{d.addTrack(e),this.commandsQueue.pushCommand({handler:async()=>this.localTrackManager.addTrackHandler(a,e,d,t,n,i),parse:()=>this.localTrackManager.parseAddTrack(e,n,i),resolve:"after-renegotiation",resolutionNotifier:r})}catch(v){r.reject(v)}return await r.promise,this.emit("localTrackAdded",{trackId:a,track:e,stream:d,trackMetadata:t,simulcastConfig:n,maxBandwidth:i}),a}async replaceTrack(e,t){let n=new Et;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 Et;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=q.create();this.sendMediaEvent({disconnect:e}),this.emit("disconnectRequested",{}),this.cleanUp()};cleanUp=()=>{this.connectionManager&&(this.clearConnectionCallbacks?.(),this.connectionManager?.getConnection().close(),this.commandsQueue.cleanUp(),this.localTrackManager.cleanUp()),this.connectionManager=void 0};getTrackId(e){return`${this.getEndpointId()}:${e}`}sendMediaEvent=e=>{this.emit("sendMediaEvent",la(e))};async createAndSendOffer(){let e=this.connectionManager;if(e)try{this.localTrackManager.updateSenders();let t=await e.getConnection().createOffer();if(!this.connectionManager){console.warn("RTCPeerConnection stopped or restarted");return}if(await e.getConnection().setLocalDescription(t),!this.connectionManager){console.warn("RTCPeerConnection stopped or restarted");return}let n=this.local.createSdpOfferEvent(t);this.sendMediaEvent({sdpOffer:n}),this.local.setLocalTrackStatusToOffered()}catch(t){console.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 xa(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){console.error(t)}};onLocalCandidate=e=>{if(!e.candidate)return;let t=O.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=>{console.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":console.warn("ICE connection: disconnected"),this.sendMediaEvent({renegotiateTracks:B.create()});break;case"failed":this.emit("connectionError",{message:"ICE connection failed",event:e});break}}};import{EventEmitter as ar}from"events";function Ia(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 R=e=>e.type==="webrtc"||e.type==="exwebrtc",Ye=e=>e.type==="recording"||e.type==="hls"||e.type==="file"||e.type==="rtsp"||e.type==="sip",Ma=["reached peers limit","room not found","node not found","Invalid SDK version"],je=e=>Ma.some(t=>e.trim().toLowerCase().includes(t.trim().toLowerCase()));var it=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 er={maxAttempts:0,initialDelay:0,delay:0,addTracksOnReconnect:!1},et={maxAttempts:3,initialDelay:500,delay:500,addTracksOnReconnect:!1},dt=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=tr(i);let r=()=>{this.reconnect()};this.client.on("socketError",r);let a=()=>{this.reconnect()};this.client.on("connectionError",a);let d=N=>{ze(N.reason)||je(N.reason)||this.reconnect()};this.client.on("socketClose",d);let v=()=>{this.reset(this.initialPeerMetadata)};this.client.on("authSuccess",v),this.removeEventListeners=()=>{this.client.off("socketError",r),this.client.off("connectionError",a),this.client.off("socketClose",d),this.client.off("authSuccess",v)}}isReconnecting(){return this.status==="reconnecting"}reset(t){this.initialPeerMetadata=t,this.reconnectAttempt=0,this.reconnectTimeoutId&&clearTimeout(this.reconnectTimeoutId),this.reconnectTimeoutId=null}getLastPeerMetadata(){return this.lastLocalEndpoint?.metadata?.peer}reconnect(){if(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=()=>{}}},tr=e=>e?e===!0?et:{maxAttempts:e?.maxAttempts??et.maxAttempts,initialDelay:e?.initialDelay??et.initialDelay,delay:e?.delay??et.delay,addTracksOnReconnect:e?.addTracksOnReconnect??et.addTracksOnReconnect}:er;var ha="0.19.0";var ma=ha;var rr=1e4,ya="socket/peer/websocket",Ot=class extends ar{websocket=null;webrtc=null;removeEventListeners=null;status="new";connectConfig=null;isAudioOnlyConnection=!1;reconnectManager;peerMessageQueue;sendStatisticsInterval=void 0;constructor(t){super(),this.reconnectManager=new dt(this,n=>this.initConnection(n),t?.reconnect??!0),this.peerMessageQueue=new it({sendMessage:n=>this.websocket?.send(n),checkIsReconnecting:()=>this.reconnectManager.isReconnecting()}),this.on("reconnected",()=>this.peerMessageQueue.attemptToSendAll())}async connect(t){this.emit("connectionStarted");let n=Ia(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 Ea,this.initWebsocket(t),this.setupCallbacks(),this.status="initialized"}getUrl(t){return t.endsWith("/")?`${t}${ya}`:`${t}/${ya}`}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=g=>{this.emit("socketOpen",g);let ot=`web-${ma}`,L=we.encode({authRequest:{token:n,sdkVersion:ot}}).finish();this.websocket?.send(L)},d=g=>{this.emit("socketError",g)},v=g=>{ze(g.reason)&&this.emit("authError",g.reason),je(g.reason)&&this.emit("joinError",g.reason),console.warn(`Socket closed with reason: ${g.reason}`),this.emit("socketClose",g)};this.websocket.addEventListener("open",a),this.websocket.addEventListener("error",d),this.websocket.addEventListener("close",v);let N=g=>{let ot=new Uint8Array(g.data);try{let L=we.decode(ot),Pt=L.serverMediaEvent;L.authenticated?(this.isAudioOnlyConnection=L.authenticated.roomType===2,this.emit("authSuccess"),this.webrtc?.connect(t)):L.authRequest?console.warn("Received unexpected control message: authRequest"):Pt&&this.webrtc?.receiveMediaEvent(A.encode(Pt).finish())}catch(L){console.warn(`Received invalid control message, error: ${L}`)}};this.websocket.addEventListener("message",N),this.removeEventListeners=()=>{this.websocket?.removeEventListener("open",a),this.websocket?.removeEventListener("error",d),this.websocket?.removeEventListener("close",v),this.websocket?.removeEventListener("message",N)}}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])=>R(i)?{...t,[n]:i}:t,{})}getRemoteComponents(){return Object.entries(this.webrtc?.getRemoteEndpoints()??{}).reduce((t,[n,i])=>Ye(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=C.decode(t),i=we.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=>R(a)).map(a=>a),r=n.filter(a=>Ye(a)).map(a=>a);await this.reconnectManager.handleReconnect(),this.sendStatisticsInterval=setInterval(()=>this.sendStatistics(),rr),this.emit("joined",t,i,r)}),this.webrtc?.on("disconnected",()=>{this.emit("disconnected"),clearInterval(this.sendStatisticsInterval)}),this.webrtc?.on("endpointAdded",t=>{R(t)&&this.emit("peerJoined",t),Ye(t)&&this.emit("componentAdded",t)}),this.webrtc?.on("endpointRemoved",t=>{R(t)&&this.emit("peerLeft",t),Ye(t)&&this.emit("componentRemoved",t)}),this.webrtc?.on("endpointUpdated",t=>{R(t)&&this.emit("peerUpdated",t),Ye(t)&&this.emit("componentUpdated",t)}),this.webrtc?.on("trackReady",t=>{R(t.endpoint)&&this.emit("trackReady",t)}),this.webrtc?.on("trackAdded",t=>{R(t.endpoint)&&this.emit("trackAdded",t)}),this.webrtc?.on("trackRemoved",t=>{R(t.endpoint)&&(this.emit("trackRemoved",t),t.removeAllListeners())}),this.webrtc?.on("trackUpdated",t=>{R(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.emit("localTrackAdded",t)}),this.webrtc?.on("localTrackRemoved",t=>{this.emit("localTrackRemoved",t)}),this.webrtc?.on("localTrackReplaced",t=>{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)})}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=we.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 Qe;return this.webrtc.addTrack(t,n,i,r)}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()}leave=()=>{if(!this.webrtc)throw this.handleWebRTCNotInitialized();this.webrtc.disconnect()};isOpen(t){return t?.readyState===1}disconnect(){try{this.webrtc?.removeAllListeners(),this.webrtc?.disconnect(),this.webrtc?.cleanUp()}catch(t){console.warn(t)}this.removeEventListeners?.(),this.removeEventListeners=null,this.isOpen(this.websocket||null)&&this.websocket?.close(),this.websocket=null,this.webrtc=null,this.emit("disconnected")}cleanup(){this.reconnectManager.cleanup()}};import{WHEPClient as ir}from"@binbat/whip-whep/whep";var Sa=(i=>(i.UNAUTHORIZED="unauthorized",i.STREAM_NOT_FOUND="stream_not_found",i.UNKNOWN_ERROR="unknown_error",i))(Sa||{});function dr(e,t){let n=new RTCPeerConnection({bundlePolicy:"max-bundle"});n.addTransceiver("audio",{direction:"recvonly"}),n.addTransceiver("video",{direction:"recvonly"});let i=new ir;return new Promise((r,a)=>{n.ontrack=d=>{if(d.track.kind=="video"){let v=d.streams[0];v&&r({stream:v,stop:()=>i.stop()})}},i.view(n,e,t).catch(d=>{if(d instanceof Error){let v="unknown_error";d.message.includes("401")?v="unauthorized":d.message.includes("404")&&(v="stream_not_found"),a(v)}})})}export{wt as AUTH_ERROR_REASONS,Ot as FishjamClient,Ma as JOIN_ERRORS,Sa as LivestreamError,Ne as SimulcastConfig,Qe as TrackTypeError,Na as Variant,Ea as WebRTCEndpoint,ze as isAuthError,je as isJoinError,dr as receiveLivestream};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fishjam-cloud/ts-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "Typescript client library for Fishjam",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Fishjam Team",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@fishjam-cloud/protobufs": "0.10.2",
|
|
49
|
-
"@fishjam-cloud/webrtc-client": "0.
|
|
49
|
+
"@fishjam-cloud/webrtc-client": "0.19.0",
|
|
50
50
|
"@playwright/test": "^1.51.1",
|
|
51
51
|
"@types/events": "^3.0.3",
|
|
52
52
|
"@types/node": "^22.14.0",
|
|
@@ -71,5 +71,5 @@
|
|
|
71
71
|
"yarn lint:check"
|
|
72
72
|
]
|
|
73
73
|
},
|
|
74
|
-
"packageManager": "yarn@4.
|
|
74
|
+
"packageManager": "yarn@4.9.2+sha256.ca4310f8ba997b4643a000ce512d9772e01c1485df35511114b325315960acb7"
|
|
75
75
|
}
|