@4players/odin-common 9.0.2 → 9.0.4

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/cjs/mod.js CHANGED
@@ -1 +1 @@
1
- var he=Object.create;var w=Object.defineProperty;var Se=Object.getOwnPropertyDescriptor;var ze=Object.getOwnPropertyNames;var ve=Object.getPrototypeOf,ke=Object.prototype.hasOwnProperty;var Re=(e,t)=>{for(var n in t)w(e,n,{get:t[n],enumerable:!0})},Y=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let m of ze(t))!ke.call(e,m)&&m!==n&&w(e,m,{get:()=>t[m],enumerable:!(s=Se(t,m))||s.enumerable});return e};var k=(e,t,n)=>(n=e!=null?he(ve(e)):{},Y(t||!e||!e.__esModule?w(n,"default",{value:e,enumerable:!0}):n,e)),Pe=e=>Y(w({},"__esModule",{value:!0}),e);var Lt={};Re(Lt,{APM_DEFAULTS:()=>At,Backend:()=>le,ByteArraySchema:()=>b,CONNECTION_STATS_INITIAL:()=>Pt,ChannelSet:()=>B,ChannelSetSchema:()=>W,ConsoleSink:()=>E,Formatter:()=>ue,GLOBAL_LOGGER:()=>de,JITTER_STATS_INITIAL:()=>Tt,JsonSchema:()=>P,LogFilter:()=>D,LogLevel:()=>Z,Logger:()=>F,MainCommandsRpc:()=>Le,MainNotificationSchema:()=>Me,MainNotificationsRpc:()=>je,MediaAudioPropertiesSchema:()=>Q,MediaIdSchema:()=>z,MediaPropertiesSchema:()=>M,MediaSchema:()=>j,MediaVideoPropertiesSchema:()=>ee,MessagePackRpcSchema:()=>Ce,MessageReceivedSchema:()=>O,MinDBFS:()=>Pr,PeerIdSchema:()=>x,PeerPositionSchema:()=>C,PeerSchema:()=>U,PeerUpdateSchema:()=>_,RoomCommandsRpc:()=>we,RoomNotificationSchema:()=>Ue,RoomNotificationsRpc:()=>_e,RoomV1:()=>v,RoomV2:()=>re,Selector:()=>G,Strand:()=>H,TokenAudienceSchema:()=>K,TokenClaimsSchema:()=>Ae,TokenSubjectSchema:()=>X,VAD_DEFAULTS:()=>Ct,VideoCodec:()=>$,WebRtcUpdateSchema:()=>R,abortableSleep:()=>Ze,assert:()=>A,debug:()=>Rt,error:()=>zt,extendUrl:()=>Xe,fail:()=>q,failure:()=>S,find:()=>Fe,fromBase64:()=>Be,fromBase64Url:()=>Oe,fromBytes:()=>De,generateUUID:()=>et,info:()=>kt,isAudioCapable:()=>Je,isBlinkBrowser:()=>oe,isElectronBrowser:()=>We,isFailure:()=>ct,isFirefoxBrowser:()=>qe,isFunction:()=>nt,isNull:()=>ot,isNumber:()=>it,isObject:()=>at,isProperty:()=>rt,isSafariBrowser:()=>$e,isSharedArrayBufferCapable:()=>Ve,isString:()=>st,isSuccess:()=>ut,isUndefined:()=>pt,log:()=>L,nextTick:()=>Ye,normalizeUrl:()=>Ke,oneOrMany:()=>T,sleep:()=>He,success:()=>y,toBytes:()=>Ne,toRaw:()=>Ge,tryParseLogFilter:()=>ht,unwrap:()=>Ie,unwrapOr:()=>N,validateUUID:()=>tt,warn:()=>vt});module.exports=Pe(Lt);var d=require("zod"),b=d.z.custom(e=>e instanceof Uint8Array),Te=d.z.union([d.z.string(),d.z.number(),d.z.boolean(),d.z.null()]),P=d.z.lazy(()=>d.z.union([Te,d.z.array(P),d.z.record(P)])),Ce=d.z.union([d.z.tuple([d.z.literal(0),d.z.number(),d.z.string(),d.z.unknown()]),d.z.tuple([d.z.literal(1),d.z.number(),d.z.nullable(d.z.string()),d.z.unknown()]),d.z.tuple([d.z.literal(2),d.z.string(),d.z.unknown()])]);var c=require("zod"),K=c.z.enum(["sfu","gateway"]),X=c.z.enum(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),Ae=c.z.object({uid:c.z.string(),cid:c.z.optional(c.z.string()),rid:T(c.z.string()).refine(e=>e.length>=1,{message:"missing rid"}),nsp:c.z.optional(c.z.string()),adr:c.z.optional(c.z.string()),aud:c.z.optional(T(K)),sub:c.z.optional(T(X)),exp:c.z.optional(c.z.number()),nbf:c.z.optional(c.z.number()),ups:c.z.optional(c.z.string()),tgs:c.z.optional(T(c.z.string())),tsp:c.z.optional(c.z.number()),internal:c.z.optional(c.z.object({server:c.z.optional(c.z.string())}))});function T(e){return c.z.union([e.transform(t=>[t]),c.z.array(e)])}var r=k(require("zod"));var u=k(require("zod")),z=u.number(),Q=u.object({kind:u.optional(u.literal("audio")),uid:u.optional(u.string()),customType:u.optional(u.string())}),ee=u.object({kind:u.optional(u.literal("video")),codec:u.optional(u.string()),uid:u.optional(u.string()),customType:u.optional(u.string()),id:u.optional(u.string())}),M=u.union([Q,ee]),j=u.object({id:z,properties:M,paused:u.boolean()});var l=k(require("zod"));var x=l.number(),C=l.union([l.tuple([l.number(),l.number(),l.number()]),l.tuple([l.number(),l.number()])]),U=l.object({id:x,user_id:l.string(),user_data:b,medias:l.array(j)}),_=l.discriminatedUnion("kind",[l.object({kind:l.literal("UserDataChanged"),peer_id:x,user_data:b}),l.object({kind:l.literal("MediaStarted"),peer_id:x,media:j}),l.object({kind:l.literal("MediaStopped"),peer_id:x,media_id:z})]);var te=k(require("zod")),B=class e{constructor(t=BigInt(0)){this.value=t}from(...t){let n=t.reduce((s,m)=>s|I(m),BigInt(0));return new e(n)}contains(t){return(this.value&I(t))!==BigInt(0)}insert(t){this.value|=I(t)}remove(t){this.value&=~I(t)}[Symbol.iterator](){let t=-1,n=new e(this.value);return{next(){for(;t<63;)if(t+=1,n.contains(t))return{value:t,done:!1};return{value:void 0,done:!0}}}}},W=te.bigint().transform(e=>new B(e));function I(e){return BigInt(1)<<BigInt(e)}var v;(p=>(p.RoomIdSchema=r.string(),p.RoomSchema=r.object({id:p.RoomIdSchema,customer:r.string(),user_data:b,peers:r.array(U)}),p.RoomUpdateSchema=r.discriminatedUnion("kind",[r.object({kind:r.literal("Joined"),room:p.RoomSchema,media_ids:r.array(z),own_peer_id:x}),r.object({kind:r.literal("Left"),reason:r.enum(["RoomClosing","ServerClosing","PeerKicked"])}),r.object({kind:r.literal("UserDataChanged"),user_data:r.optional(b)}),r.object({kind:r.literal("PeerJoined"),peer:U}),r.object({kind:r.literal("PeerLeft"),peer_id:x})]),p.RoomUpdatesSchema=r.object({updates:r.array(p.RoomUpdateSchema)}),p.RoomStatusSchema=r.enum(["Joining","Joined","Closed"]),p.RoomStatusChangedSchema=r.object({status:p.RoomStatusSchema,message:r.optional(r.string())})))(v||={});var re;(i=>(i.ParametersSchema=r.record(P),i.PeerProperties=r.object({user_data:b.optional(),tags:r.array(r.string()).optional(),audio_parameters:i.ParametersSchema.optional(),video_parameters:i.ParametersSchema.optional()}),i.PingSchema=r.object({Ping:r.object({id:r.number()})}),i.ChangeSelfSchema=r.object({ChangeSelf:i.PeerProperties.omit({tags:!0})}),i.SetAudioMaskSchema=r.object({SetAudioMask:r.object({peer_id:r.number(),mask:W})}),i.SendMessageSchema=r.object({SendMessage:r.object({peer_ids:r.number().array().default([]),message:b})}),i.CallSchema=i.PingSchema.or(i.ChangeSelfSchema).or(i.SetAudioMaskSchema).or(i.SendMessageSchema),i.PongSchema=r.object({Pong:r.object({id:r.number()})}),i.JoinedSchema=r.object({Joined:r.object({own_peer_id:r.number(),room_id:r.string(),customer:r.string()})}),i.LeftSchema=r.object({Left:r.object({reason:r.enum(["room_closing","server_closing","peer_kicked"])})}),i.PeerJoinedSchema=r.object({PeerJoined:i.PeerProperties.extend({peer_id:r.number(),user_id:r.string()})}),i.PeerLeftSchema=r.object({PeerLeft:r.object({peer_id:r.number()})}),i.PeerChangedSchema=r.object({PeerChanged:i.PeerProperties.extend({peer_id:r.number()})}),i.NewReconnectTokenSchema=r.object({NewReconnectToken:r.object({token:r.string()})}),i.MessageReceivedSchema=r.object({MessageReceived:r.object({sender_peer_id:r.number(),message:b})}),i.ErrorSchema=r.object({Error:r.object({message:b})}),i.EventSchema=i.PongSchema.or(i.JoinedSchema).or(i.LeftSchema).or(i.PeerJoinedSchema).or(i.PeerLeftSchema).or(i.PeerChangedSchema).or(i.NewReconnectTokenSchema).or(i.MessageReceivedSchema).or(i.ErrorSchema)))(re||={});var ne=require("zod");var O=ne.z.object({sender_peer_id:x,message:b});var a=k(require("zod"));var R=a.discriminatedUnion("kind",[a.object({kind:a.literal("Sdp"),type:a.enum(["Answer","Offer"]),sdp:a.string(),media_map:a.array(a.tuple([z,a.string()]))}),a.object({kind:a.literal("Trickle"),candidate:a.string(),spd_mid:a.optional(a.string()),spd_mline_index:a.optional(a.number()),username_fragment:a.optional(a.union([a.string(),a.null()]))}),a.object({kind:a.literal("TrickleFinished")})]);var o=require("zod");var Le={Hello:{request:o.z.object({stream:o.z.literal("main")}),response:o.z.null()},JoinRoom:{request:o.z.object({token:o.z.string(),room_id:v.RoomIdSchema,user_data:b,position:C}),response:o.z.object({peer_id:x,stream_id:o.z.optional(o.z.number()),token:o.z.optional(o.z.string())})},WebRtcUpdate:{request:R,response:o.z.null()},RequestReconnectToken:{request:o.z.object({peer_id:o.z.optional(x)}),response:o.z.string()},Ping:{request:o.z.object({}),response:o.z.null()}},we={Hello:{request:o.z.object({stream:o.z.literal("room"),token:o.z.string(),room_id:o.z.string(),user_data:b,position:C}),response:o.z.null()},UpdatePeer:{request:o.z.object({user_data:b}),response:o.z.null()},StartMedia:{request:o.z.object({media_id:z,properties:M}),response:o.z.null()},StopMedia:{request:o.z.object({media_id:z}),response:o.z.null()},PauseMedia:{request:o.z.object({media_id:z}),response:o.z.null()},ResumeMedia:{request:o.z.object({media_id:z}),response:o.z.null()},SetPeerPosition:{request:o.z.object({position:C}),response:o.z.null()},SendMessage:{request:o.z.object({target_peer_ids:o.z.optional(o.z.array(x)),message:b}),response:o.z.null()}};var h=k(require("zod"));var Me=h.object({name:h.literal("WebRtcUpdate"),properties:R}),je={WebRtcUpdate:R},Ue=h.union([h.object({name:h.literal("RoomStatusChanged"),properties:v.RoomStatusChangedSchema}),h.object({name:h.literal("RoomUpdated"),properties:v.RoomUpdatesSchema}),h.object({name:h.literal("PeerUpdated"),properties:_}),h.object({name:h.literal("MessageReceived"),properties:O})]),_e={RoomStatusChanged:v.RoomStatusChangedSchema,RoomUpdated:v.RoomUpdatesSchema,PeerUpdated:_,MessageReceived:O};function A(e,t){e||q(t)}function q(e){throw new Error(e)}function y(e){return{type:"Success",value:e}}function S(e){return{type:"Failure",reason:e}}function Ie(e){return e.type==="Failure"&&q(e.reason),e.value}function N(e,t){return e.type==="Success"?e.value:t}function Be(e){try{let t=atob(e),n=Uint8Array.from(t,m=>m.codePointAt(0)),s=new TextDecoder("utf8");return y(s.decode(n))}catch(t){return S(String(t))}}function Oe(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),n=Uint8Array.from(t,m=>m.codePointAt(0)),s=new TextDecoder("utf8");return y(s.decode(n))}catch(t){return S(String(t))}}function Ne(e){try{A(e!==void 0,"undefined cannot be converted to byte array"),A(e!==null,"null cannot be converted to byte array");let t=JSON.stringify(e),n=new TextEncoder;return y(n.encode(t))}catch(t){return S(String(t))}}function De(e){try{A(e.length>0,"empty byte array cannot be converted to value");let t=new TextDecoder().decode(e),n=JSON.parse(t);return y(n)}catch(t){return S(String(t))}}var Ee=["VP8","VP9","AV1","H264"],$=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return Ee.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=N(this.getMimeType(),"").toLowerCase(),n=new Set(N(this.getSdpFmtpLine(),"").split(";").map(s=>s.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(s=>{let m=s.mimeType.toLowerCase(),f=new Set((s.sdpFmtpLine??"").split(";").map(p=>p.trim().toLowerCase()));if(t!==m||n.size!==f.size)return!1;for(let p of n)if(!f.has(p))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return y(96);case"VP9":return y(98);case"AV1":return y(41);case"H264":return y(102);default:return S("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return y("video/VP8");case"VP9":return y("video/VP9");case"AV1":return y("video/AV1");case"H264":return y("video/H264");default:return S("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return y("");case"VP9":return y("profile-id=2");case"AV1":return y("level-idx=5;profile=0;tier=0");case"H264":return y("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return S("invalid video codec")}}};function Fe(e,t){for(let n of e)if(t(n))return n}function Je(){return typeof AudioContext<"u"&&typeof Worker<"u"}function Ve(){return typeof SharedArrayBuffer<"u"}function oe(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function We(){return/electron/i.test(globalThis.navigator.userAgent)}function qe(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function $e(){return oe()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function Ge(e){return JSON.parse(JSON.stringify(e))}var G=class e{constructor(t){this._Generators=t;this._Futures=t.map(e.addIndex)}_Futures;async next(){let[t,n]=await Promise.race(this._Futures);return this._Futures[n]=e.addIndex(this._Generators[n],n),t}static async addIndex(t,n){return[await t(),n]}};function He(e,t){return e<=0?Promise.resolve(t):new Promise(n=>setTimeout(()=>n(t),e))}function Ze(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(n=>{let s=()=>n("aborted");t.addEventListener("abort",s,{once:!0}),setTimeout(()=>{t.removeEventListener("abort",s),n(void 0)},e)})}function Ye(){return new Promise(e=>setTimeout(e,0))}var H=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((n,s)=>{let m=async()=>{try{let f=await t(...this._Values);n(f)}catch(f){s(f)}};this._Tasks.push(m),this._Running||this.execute()})}async execute(){for(this._Running=!0;;){let t=this._Tasks.shift();if(t===void 0)break;await t()}this._Running=!1}};function Ke(e){let t=e.trim();e.indexOf("://")===-1&&(t=`https://${t}`);try{return y(new URL(t))}catch(n){return S(String(n))}}function Xe(e,t){let n=e.pathname;n.endsWith("/")===!1&&(n+="/");try{return y(new URL(n+t,e))}catch(s){return S(String(s))}}var Qe=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function et(){return crypto.randomUUID()}function tt(e){return Qe.test(e)}function rt(e,t){return t in e}function nt(e){return typeof e=="function"}function ot(e){return typeof e=="object"&&e===null}function it(e){return typeof e=="number"}function at(e){return typeof e=="object"}function st(e){return typeof e=="string"}function pt(e){return typeof e>"u"}function ct(e){return e.type==="Failure"}function ut(e){return e.type==="Success"}var{Deno:ie}=globalThis,dt=typeof ie?.noColor=="boolean"?ie.noColor:!1,lt=!dt;function mt(e,t){return{open:`\x1B[${e.join(";")}m`,close:`\x1B[${t}m`,regexp:new RegExp(`\\x1b\\[${t}m`,"g")}}function ft(e,t){return lt?`${t.open}${e.replace(t.regexp,t.open)}${t.close}`:e}function ae(e){return ft(e,mt([0],0))}var kr=new RegExp(["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TXZcf-nq-uy=><~]))"].join("|"),"g");var D=(g=>(g[g.Nothing=0]="Nothing",g[g.CRITICAL=1]="CRITICAL",g[g.ERROR=2]="ERROR",g[g.WARN=3]="WARN",g[g.INFO=4]="INFO",g[g.DEBUG=5]="DEBUG",g[g.Everything=6]="Everything",g))(D||{}),yt=new Date,Z=(f=>(f[f.CRITICAL=1]="CRITICAL",f[f.ERROR=2]="ERROR",f[f.WARN=3]="WARN",f[f.INFO=4]="INFO",f[f.DEBUG=5]="DEBUG",f))(Z||{}),bt={1:"\u{1F4A5}",2:"\u{1F534}",3:"\u{1F7E1}",4:"\u{1F535}",5:"\u{1F7E3}"},xt={5:e=>e,4:e=>e,3:e=>e,2:e=>e,1:e=>e};function ht(e){for(let t of Object.keys(D))if(isNaN(Number(t))!==!1&&t.localeCompare(e,void 0,{sensitivity:"accent"})===0)return D[t]}function St({message:e}){return String(e)}function se(e){return JSON.stringify({timestamp:e.date.toISOString(),level:Z[e.level],message:e.message,extra:e.extra})}function pe(e){function t(p,g){return[Math.floor(p/g),p%g]}function n(){let p,g=e.date.valueOf()-yt.valueOf();[g,p]=t(g,1e3);let[J,V]=t(g,60);return`${J.toString().padStart(4,"0")}:${V.toString().padStart(2,"0")}.${p.toString().padStart(4,"0")}`}function s(){return e.extra===void 0?"":"Deno"in globalThis?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let m=bt[e.level],f=e.logger.name!==void 0?`@${e.logger}`:"";return`${ae(n())}${f} ${m} ${xt[e.level](String(e.message))}${s()}`}var ue={sparse:St,json:se,pretty:pe,default:Deno.stdout.isTerminal()?pe:se},E=class{#e;#t;filter;constructor(t=ue.default,n=6,s=console){this.filter=n,this.#e=t,this.#t=s}handle(t){let n=this.#e(t);switch(t.level){case 2:this.#t.error(n);break;case 3:this.#t.warn(n);break;case 4:this.#t.info(n);break;case 5:this.#t.debug(n);break}}},F=class{#e;sinks;filter;get name(){return this.#e}constructor(t,n=void 0,s=[new E]){this.#e=n,this.sinks=s,this.filter=t}log(t,n,s=void 0){if(this.filter<t)return;let m=ce;for(let f of this.sinks)f.filter<t||(m===ce&&(m={date:new Date,level:t,logger:this,message:typeof n=="function"?n():n,extra:s}),f.handle(m))}},de=new F(4);function L(e,t,n=void 0){de.log(e,t,n)}var zt=L.bind(void 0,2),vt=L.bind(void 0,3),kt=L.bind(void 0,4),Rt=L.bind(void 0,5),ce=Symbol();var Pr=-758.596,le;(t=>{let e;(p=>(p[p.InvalidPassword=-1]="InvalidPassword",p[p.Unknown=0]="Unknown",p[p.Unencrypted=1]="Unencrypted",p[p.Encrypted=2]="Encrypted"))(e=t.PeerCipherStatus||={})})(le||={});var Pt={bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0,rtt:0,packetLoss:0},Tt={packetsBuffered:0,packetsSeen:0,packetsProcessed:0,packetsTooEarly:0,packetsTooLate:0,packetsDropped:0,packetsInvalid:0,packetsRepeated:0,packetsLost:0},Ct={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},At={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};0&&(module.exports={APM_DEFAULTS,Backend,ByteArraySchema,CONNECTION_STATS_INITIAL,ChannelSet,ChannelSetSchema,ConsoleSink,Formatter,GLOBAL_LOGGER,JITTER_STATS_INITIAL,JsonSchema,LogFilter,LogLevel,Logger,MainCommandsRpc,MainNotificationSchema,MainNotificationsRpc,MediaAudioPropertiesSchema,MediaIdSchema,MediaPropertiesSchema,MediaSchema,MediaVideoPropertiesSchema,MessagePackRpcSchema,MessageReceivedSchema,MinDBFS,PeerIdSchema,PeerPositionSchema,PeerSchema,PeerUpdateSchema,RoomCommandsRpc,RoomNotificationSchema,RoomNotificationsRpc,RoomV1,RoomV2,Selector,Strand,TokenAudienceSchema,TokenClaimsSchema,TokenSubjectSchema,VAD_DEFAULTS,VideoCodec,WebRtcUpdateSchema,abortableSleep,assert,debug,error,extendUrl,fail,failure,find,fromBase64,fromBase64Url,fromBytes,generateUUID,info,isAudioCapable,isBlinkBrowser,isElectronBrowser,isFailure,isFirefoxBrowser,isFunction,isNull,isNumber,isObject,isProperty,isSafariBrowser,isSharedArrayBufferCapable,isString,isSuccess,isUndefined,log,nextTick,normalizeUrl,oneOrMany,sleep,success,toBytes,toRaw,tryParseLogFilter,unwrap,unwrapOr,validateUUID,warn});
1
+ var ve=Object.create;var M=Object.defineProperty;var ke=Object.getOwnPropertyDescriptor;var Re=Object.getOwnPropertyNames;var Pe=Object.getPrototypeOf,Te=Object.prototype.hasOwnProperty;var Ce=(e,t)=>{for(var n in t)M(e,n,{get:t[n],enumerable:!0})},ee=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let m of Re(t))!Te.call(e,m)&&m!==n&&M(e,m,{get:()=>t[m],enumerable:!(s=ke(t,m))||s.enumerable});return e};var R=(e,t,n)=>(n=e!=null?ve(Pe(e)):{},ee(t||!e||!e.__esModule?M(n,"default",{value:e,enumerable:!0}):n,e)),Ae=e=>ee(M({},"__esModule",{value:!0}),e);var Mt={};Ce(Mt,{APM_DEFAULTS:()=>wt,Backend:()=>ge,ByteArraySchema:()=>b,CONNECTION_STATS_INITIAL:()=>Ct,ChannelSet:()=>O,ChannelSetSchema:()=>q,ConsoleSink:()=>J,Formatter:()=>fe,GLOBAL_LOGGER:()=>T,JITTER_STATS_INITIAL:()=>At,JsonSchema:()=>C,LogFilter:()=>F,LogLevel:()=>Q,Logger:()=>k,MainCommandsRpc:()=>je,MainNotificationSchema:()=>_e,MainNotificationsRpc:()=>Ie,MediaAudioPropertiesSchema:()=>ne,MediaIdSchema:()=>z,MediaPropertiesSchema:()=>j,MediaSchema:()=>U,MediaVideoPropertiesSchema:()=>oe,MessagePackRpcSchema:()=>we,MessageReceivedSchema:()=>N,MinDBFS:()=>Cr,PeerIdSchema:()=>x,PeerPositionSchema:()=>L,PeerSchema:()=>_,PeerUpdateSchema:()=>I,RoomCommandsRpc:()=>Ue,RoomNotificationSchema:()=>Be,RoomNotificationsRpc:()=>Oe,RoomV1:()=>v,RoomV2:()=>ae,Selector:()=>H,Strand:()=>Z,TokenAudienceSchema:()=>te,TokenClaimsSchema:()=>Me,TokenSubjectSchema:()=>re,VAD_DEFAULTS:()=>Lt,VideoCodec:()=>$,WebRtcUpdateSchema:()=>P,abortableSleep:()=>Xe,assert:()=>w,debug:()=>Pt,error:()=>vt,extendUrl:()=>tt,fail:()=>G,failure:()=>S,find:()=>We,fromBase64:()=>Ee,fromBase64Url:()=>De,fromBytes:()=>Je,generateUUID:()=>nt,info:()=>Rt,isAudioCapable:()=>qe,isBlinkBrowser:()=>pe,isElectronBrowser:()=>$e,isFailure:()=>lt,isFirefoxBrowser:()=>He,isFunction:()=>at,isNull:()=>st,isNumber:()=>pt,isObject:()=>ct,isProperty:()=>it,isSafariBrowser:()=>Ze,isSharedArrayBufferCapable:()=>Ge,isString:()=>ut,isSuccess:()=>mt,isUndefined:()=>dt,log:()=>Tt,nextTick:()=>Qe,normalizeUrl:()=>et,oneOrMany:()=>A,sleep:()=>Ke,success:()=>y,toBytes:()=>Fe,toRaw:()=>Ye,tryParseLogFilter:()=>St,unwrap:()=>Ne,unwrapOr:()=>E,validateUUID:()=>ot,warn:()=>kt});module.exports=Ae(Mt);var d=require("zod"),b=d.z.custom(e=>e instanceof Uint8Array),Le=d.z.union([d.z.string(),d.z.number(),d.z.boolean(),d.z.null()]),C=d.z.lazy(()=>d.z.union([Le,d.z.array(C),d.z.record(d.z.string(),C)])),we=d.z.union([d.z.tuple([d.z.literal(0),d.z.number(),d.z.string(),d.z.unknown()]),d.z.tuple([d.z.literal(1),d.z.number(),d.z.nullable(d.z.string()),d.z.unknown()]),d.z.tuple([d.z.literal(2),d.z.string(),d.z.unknown()])]);var c=require("zod"),te=c.z.enum(["sfu","gateway"]),re=c.z.enum(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),Me=c.z.object({uid:c.z.string(),cid:c.z.optional(c.z.string()),rid:A(c.z.string()).refine(e=>e.length>=1,{message:"missing rid"}),nsp:c.z.optional(c.z.string()),adr:c.z.optional(c.z.string()),aud:c.z.optional(A(te)),sub:c.z.optional(A(re)),exp:c.z.optional(c.z.number()),nbf:c.z.optional(c.z.number()),ups:c.z.optional(c.z.string()),tgs:c.z.optional(A(c.z.string())),tsp:c.z.optional(c.z.number()),internal:c.z.optional(c.z.object({server:c.z.optional(c.z.string())}))});function A(e){return c.z.union([e.transform(t=>[t]),c.z.array(e)])}var r=R(require("zod"));var u=R(require("zod")),z=u.number(),ne=u.object({kind:u.optional(u.literal("audio")),uid:u.optional(u.string()),customType:u.optional(u.string())}),oe=u.object({kind:u.optional(u.literal("video")),codec:u.optional(u.string()),uid:u.optional(u.string()),customType:u.optional(u.string()),id:u.optional(u.string())}),j=u.union([ne,oe]),U=u.object({id:z,properties:j,paused:u.boolean()});var l=R(require("zod"));var x=l.number(),L=l.union([l.tuple([l.number(),l.number(),l.number()]),l.tuple([l.number(),l.number()])]),_=l.object({id:x,user_id:l.string(),user_data:b,medias:l.array(U)}),I=l.discriminatedUnion("kind",[l.object({kind:l.literal("UserDataChanged"),peer_id:x,user_data:b}),l.object({kind:l.literal("MediaStarted"),peer_id:x,media:U}),l.object({kind:l.literal("MediaStopped"),peer_id:x,media_id:z})]);var ie=R(require("zod")),O=class e{constructor(t=BigInt(0)){this.value=t}from(...t){let n=t.reduce((s,m)=>s|B(m),BigInt(0));return new e(n)}contains(t){return(this.value&B(t))!==BigInt(0)}insert(t){this.value|=B(t)}remove(t){this.value&=~B(t)}[Symbol.iterator](){let t=-1,n=new e(this.value);return{next(){for(;t<63;)if(t+=1,n.contains(t))return{value:t,done:!1};return{value:void 0,done:!0}}}}},q=ie.bigint().transform(e=>new O(e));function B(e){return BigInt(1)<<BigInt(e)}var v;(p=>(p.RoomIdSchema=r.string(),p.RoomSchema=r.object({id:p.RoomIdSchema,customer:r.string(),user_data:b,peers:r.array(_)}),p.RoomUpdateSchema=r.discriminatedUnion("kind",[r.object({kind:r.literal("Joined"),room:p.RoomSchema,media_ids:r.array(z),own_peer_id:x}),r.object({kind:r.literal("Left"),reason:r.enum(["RoomClosing","ServerClosing","PeerKicked"])}),r.object({kind:r.literal("UserDataChanged"),user_data:r.optional(b)}),r.object({kind:r.literal("PeerJoined"),peer:_}),r.object({kind:r.literal("PeerLeft"),peer_id:x})]),p.RoomUpdatesSchema=r.object({updates:r.array(p.RoomUpdateSchema)}),p.RoomStatusSchema=r.enum(["Joining","Joined","Closed"]),p.RoomStatusChangedSchema=r.object({status:p.RoomStatusSchema,message:r.optional(r.string())})))(v||={});var ae;(i=>(i.ParametersSchema=r.record(r.string(),C),i.PeerProperties=r.object({user_data:b.optional(),tags:r.array(r.string()).optional(),audio_parameters:i.ParametersSchema.optional(),video_parameters:i.ParametersSchema.optional()}),i.PingSchema=r.object({Ping:r.object({id:r.number()})}),i.ChangeSelfSchema=r.object({ChangeSelf:i.PeerProperties.omit({tags:!0})}),i.SetAudioMaskSchema=r.object({SetAudioMask:r.object({peer_id:r.number(),mask:q})}),i.SendMessageSchema=r.object({SendMessage:r.object({peer_ids:r.number().array().default([]),message:b})}),i.CallSchema=i.PingSchema.or(i.ChangeSelfSchema).or(i.SetAudioMaskSchema).or(i.SendMessageSchema),i.PongSchema=r.object({Pong:r.object({id:r.number()})}),i.JoinedSchema=r.object({Joined:r.object({own_peer_id:r.number(),room_id:r.string(),customer:r.string()})}),i.LeftSchema=r.object({Left:r.object({reason:r.enum(["room_closing","server_closing","peer_kicked"])})}),i.PeerJoinedSchema=r.object({PeerJoined:i.PeerProperties.extend({peer_id:r.number(),user_id:r.string()})}),i.PeerLeftSchema=r.object({PeerLeft:r.object({peer_id:r.number()})}),i.PeerChangedSchema=r.object({PeerChanged:i.PeerProperties.extend({peer_id:r.number()})}),i.NewReconnectTokenSchema=r.object({NewReconnectToken:r.object({token:r.string()})}),i.MessageReceivedSchema=r.object({MessageReceived:r.object({sender_peer_id:r.number(),message:b})}),i.ErrorSchema=r.object({Error:r.object({message:b})}),i.EventSchema=i.PongSchema.or(i.JoinedSchema).or(i.LeftSchema).or(i.PeerJoinedSchema).or(i.PeerLeftSchema).or(i.PeerChangedSchema).or(i.NewReconnectTokenSchema).or(i.MessageReceivedSchema).or(i.ErrorSchema)))(ae||={});var se=require("zod");var N=se.z.object({sender_peer_id:x,message:b});var a=R(require("zod"));var P=a.discriminatedUnion("kind",[a.object({kind:a.literal("Sdp"),type:a.enum(["Answer","Offer"]),sdp:a.string(),media_map:a.array(a.tuple([z,a.string()]))}),a.object({kind:a.literal("Trickle"),candidate:a.string(),spd_mid:a.optional(a.string()),spd_mline_index:a.optional(a.number()),username_fragment:a.optional(a.union([a.string(),a.null()]))}),a.object({kind:a.literal("TrickleFinished")})]);var o=require("zod");var je={Hello:{request:o.z.object({stream:o.z.literal("main")}),response:o.z.null()},JoinRoom:{request:o.z.object({token:o.z.string(),room_id:v.RoomIdSchema,user_data:b,position:L}),response:o.z.object({peer_id:x,stream_id:o.z.optional(o.z.number()),token:o.z.optional(o.z.string())})},WebRtcUpdate:{request:P,response:o.z.null()},RequestReconnectToken:{request:o.z.object({peer_id:o.z.optional(x)}),response:o.z.string()},Ping:{request:o.z.object({}),response:o.z.null()}},Ue={Hello:{request:o.z.object({stream:o.z.literal("room"),token:o.z.string(),room_id:o.z.string(),user_data:b,position:L}),response:o.z.null()},UpdatePeer:{request:o.z.object({user_data:b}),response:o.z.null()},StartMedia:{request:o.z.object({media_id:z,properties:j}),response:o.z.null()},StopMedia:{request:o.z.object({media_id:z}),response:o.z.null()},PauseMedia:{request:o.z.object({media_id:z}),response:o.z.null()},ResumeMedia:{request:o.z.object({media_id:z}),response:o.z.null()},SetPeerPosition:{request:o.z.object({position:L}),response:o.z.null()},SendMessage:{request:o.z.object({target_peer_ids:o.z.optional(o.z.array(x)),message:b}),response:o.z.null()}};var h=R(require("zod"));var _e=h.object({name:h.literal("WebRtcUpdate"),properties:P}),Ie={WebRtcUpdate:P},Be=h.union([h.object({name:h.literal("RoomStatusChanged"),properties:v.RoomStatusChangedSchema}),h.object({name:h.literal("RoomUpdated"),properties:v.RoomUpdatesSchema}),h.object({name:h.literal("PeerUpdated"),properties:I}),h.object({name:h.literal("MessageReceived"),properties:N})]),Oe={RoomStatusChanged:v.RoomStatusChangedSchema,RoomUpdated:v.RoomUpdatesSchema,PeerUpdated:I,MessageReceived:N};function w(e,t){e||G(t)}function G(e){throw new Error(e)}function y(e){return{type:"Success",value:e}}function S(e){return{type:"Failure",reason:e}}function Ne(e){return e.type==="Failure"&&G(e.reason),e.value}function E(e,t){return e.type==="Success"?e.value:t}function Ee(e){try{let t=atob(e),n=Uint8Array.from(t,m=>m.codePointAt(0)),s=new TextDecoder("utf8");return y(s.decode(n))}catch(t){return S(String(t))}}function De(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),n=Uint8Array.from(t,m=>m.codePointAt(0)),s=new TextDecoder("utf8");return y(s.decode(n))}catch(t){return S(String(t))}}function Fe(e){try{w(e!==void 0,"undefined cannot be converted to byte array"),w(e!==null,"null cannot be converted to byte array");let t=JSON.stringify(e),n=new TextEncoder;return y(n.encode(t))}catch(t){return S(String(t))}}function Je(e){try{w(e.length>0,"empty byte array cannot be converted to value");let t=new TextDecoder().decode(e),n=JSON.parse(t);return y(n)}catch(t){return S(String(t))}}var Ve=["VP8","VP9","AV1","H264"],$=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return Ve.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=E(this.getMimeType(),"").toLowerCase(),n=new Set(E(this.getSdpFmtpLine(),"").split(";").map(s=>s.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(s=>{let m=s.mimeType.toLowerCase(),f=new Set((s.sdpFmtpLine??"").split(";").map(p=>p.trim().toLowerCase()));if(t!==m||n.size!==f.size)return!1;for(let p of n)if(!f.has(p))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return y(96);case"VP9":return y(98);case"AV1":return y(41);case"H264":return y(102);default:return S("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return y("video/VP8");case"VP9":return y("video/VP9");case"AV1":return y("video/AV1");case"H264":return y("video/H264");default:return S("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return y("");case"VP9":return y("profile-id=2");case"AV1":return y("level-idx=5;profile=0;tier=0");case"H264":return y("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return S("invalid video codec")}}};function We(e,t){for(let n of e)if(t(n))return n}function qe(){return typeof AudioContext<"u"&&typeof Worker<"u"}function Ge(){return typeof SharedArrayBuffer<"u"}function pe(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function $e(){return/electron/i.test(globalThis.navigator.userAgent)}function He(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function Ze(){return pe()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function Ye(e){return JSON.parse(JSON.stringify(e))}var H=class e{constructor(t){this._Generators=t;this._Futures=t.map(e.addIndex)}_Futures;async next(){let[t,n]=await Promise.race(this._Futures);return this._Futures[n]=e.addIndex(this._Generators[n],n),t}static async addIndex(t,n){return[await t(),n]}};function Ke(e,t){return e<=0?Promise.resolve(t):new Promise(n=>setTimeout(()=>n(t),e))}function Xe(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(n=>{let s=()=>n("aborted");t.addEventListener("abort",s,{once:!0}),setTimeout(()=>{t.removeEventListener("abort",s),n(void 0)},e)})}function Qe(){return new Promise(e=>setTimeout(e,0))}var Z=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((n,s)=>{let m=async()=>{try{let f=await t(...this._Values);n(f)}catch(f){s(f)}};this._Tasks.push(m),this._Running||this.execute()})}async execute(){for(this._Running=!0;;){let t=this._Tasks.shift();if(t===void 0)break;await t()}this._Running=!1}};function et(e){let t=e.trim();e.indexOf("://")===-1&&(t=`https://${t}`);try{return y(new URL(t))}catch(n){return S(String(n))}}function tt(e,t){let n=e.pathname;n.endsWith("/")===!1&&(n+="/");try{return y(new URL(n+t,e))}catch(s){return S(String(s))}}var rt=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function nt(){return crypto.randomUUID()}function ot(e){return rt.test(e)}function it(e,t){return t in e}function at(e){return typeof e=="function"}function st(e){return typeof e=="object"&&e===null}function pt(e){return typeof e=="number"}function ct(e){return typeof e=="object"}function ut(e){return typeof e=="string"}function dt(e){return typeof e>"u"}function lt(e){return e.type==="Failure"}function mt(e){return e.type==="Success"}var{Deno:ce}=globalThis,ft=typeof ce?.noColor=="boolean"?ce.noColor:!1,gt=!ft;function Y(e,t){return{open:`\x1B[${e.join(";")}m`,close:`\x1B[${t}m`,regexp:new RegExp(`\\x1b\\[${t}m`,"g")}}function K(e,t){return gt?`${t.open}${e.replace(t.regexp,t.open)}${t.close}`:e}function D(e){return K(e,Y([0],0))}function X(e){return K(e,Y([1],22))}function ue(e){return K(e,Y([2],22))}var Pr=new RegExp(["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TXZcf-nq-uy=><~]))"].join("|"),"g");var F=(g=>(g[g.Nothing=0]="Nothing",g[g.CRITICAL=1]="CRITICAL",g[g.ERROR=2]="ERROR",g[g.WARN=3]="WARN",g[g.INFO=4]="INFO",g[g.DEBUG=5]="DEBUG",g[g.Everything=6]="Everything",g))(F||{}),bt=new Date,Q=(f=>(f[f.CRITICAL=1]="CRITICAL",f[f.ERROR=2]="ERROR",f[f.WARN=3]="WARN",f[f.INFO=4]="INFO",f[f.DEBUG=5]="DEBUG",f))(Q||{}),xt={1:"\u{1F4A5}",2:"\u{1F534}",3:"\u{1F7E1}",4:"\u{1F535}",5:"\u{1F7E3}"},ht={5:ue,4:D,3:D,2:X,1:X};function St(e){for(let t of Object.keys(F))if(isNaN(Number(t))!==!1&&t.localeCompare(e,void 0,{sensitivity:"accent"})===0)return F[t]}function zt({message:e}){return String(e)}function de(e){return JSON.stringify({timestamp:e.date.toISOString(),level:Q[e.level],message:e.message,extra:e.extra})}function le(e){function t(p,g){return[Math.floor(p/g),p%g]}function n(){let p,g=e.date.valueOf()-bt.valueOf();[g,p]=t(g,1e3);let[V,W]=t(g,60);return`${V.toString().padStart(4,"0")}:${W.toString().padStart(2,"0")}.${p.toString().padStart(4,"0")}`}function s(){return e.extra===void 0?"":"Deno"in globalThis?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let m=xt[e.level],f=e.logger.name!==void 0?`@${e.logger}`:"";return`${D(n())}${f} ${m} ${ht[e.level](String(e.message))}${s()}`}var fe={sparse:zt,json:de,pretty:le,default:"Deno"in globalThis&&Deno.stdout.isTerminal()?le:de},J=class{#e;#t;filter;constructor(t=fe.default,n=6,s=console){this.filter=n,this.#e=t,this.#t=s}handle(t){let n=this.#e(t);switch(t.level){case 2:this.#t.error(n);break;case 3:this.#t.warn(n);break;case 4:this.#t.info(n);break;case 5:this.#t.debug(n);break}}},k=class{#e;sinks;filter;get name(){return this.#e}constructor(t,n=void 0,s=[new J]){this.#e=n,this.sinks=s,this.filter=t}log(t,n,s=void 0){if(this.filter<t)return;let m=me;for(let f of this.sinks)f.filter<t||(m===me&&(m={date:new Date,level:t,logger:this,message:typeof n=="function"?n():n,extra:s}),f.handle(m))}error=this.log.bind(this,2);warn=this.log.bind(this,3);info=this.log.bind(this,4);debug=this.log.bind(this,5)},T=new k(4),vt=k.prototype.log.bind(T,2),kt=k.prototype.log.bind(T,3),Rt=k.prototype.log.bind(T,4),Pt=k.prototype.log.bind(T,5),Tt=k.prototype.log.bind(T),me=Symbol();var Cr=-758.596,ge;(t=>{let e;(p=>(p[p.InvalidPassword=-1]="InvalidPassword",p[p.Unknown=0]="Unknown",p[p.Unencrypted=1]="Unencrypted",p[p.Encrypted=2]="Encrypted"))(e=t.PeerCipherStatus||={})})(ge||={});var Ct={bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0,rtt:0,packetLoss:0},At={packetsBuffered:0,packetsSeen:0,packetsProcessed:0,packetsTooEarly:0,packetsTooLate:0,packetsDropped:0,packetsInvalid:0,packetsRepeated:0,packetsLost:0},Lt={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},wt={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};0&&(module.exports={APM_DEFAULTS,Backend,ByteArraySchema,CONNECTION_STATS_INITIAL,ChannelSet,ChannelSetSchema,ConsoleSink,Formatter,GLOBAL_LOGGER,JITTER_STATS_INITIAL,JsonSchema,LogFilter,LogLevel,Logger,MainCommandsRpc,MainNotificationSchema,MainNotificationsRpc,MediaAudioPropertiesSchema,MediaIdSchema,MediaPropertiesSchema,MediaSchema,MediaVideoPropertiesSchema,MessagePackRpcSchema,MessageReceivedSchema,MinDBFS,PeerIdSchema,PeerPositionSchema,PeerSchema,PeerUpdateSchema,RoomCommandsRpc,RoomNotificationSchema,RoomNotificationsRpc,RoomV1,RoomV2,Selector,Strand,TokenAudienceSchema,TokenClaimsSchema,TokenSubjectSchema,VAD_DEFAULTS,VideoCodec,WebRtcUpdateSchema,abortableSleep,assert,debug,error,extendUrl,fail,failure,find,fromBase64,fromBase64Url,fromBytes,generateUUID,info,isAudioCapable,isBlinkBrowser,isElectronBrowser,isFailure,isFirefoxBrowser,isFunction,isNull,isNumber,isObject,isProperty,isSafariBrowser,isSharedArrayBufferCapable,isString,isSuccess,isUndefined,log,nextTick,normalizeUrl,oneOrMany,sleep,success,toBytes,toRaw,tryParseLogFilter,unwrap,unwrapOr,validateUUID,warn});
package/esm/mod.js CHANGED
@@ -1 +1 @@
1
- import{z as l}from"zod";var b=l.custom(e=>e instanceof Uint8Array),ae=l.union([l.string(),l.number(),l.boolean(),l.null()]),R=l.lazy(()=>l.union([ae,l.array(R),l.record(R)])),we=l.union([l.tuple([l.literal(0),l.number(),l.string(),l.unknown()]),l.tuple([l.literal(1),l.number(),l.nullable(l.string()),l.unknown()]),l.tuple([l.literal(2),l.string(),l.unknown()])]);import{z as p}from"zod";var se=p.enum(["sfu","gateway"]),pe=p.enum(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),Ue=p.object({uid:p.string(),cid:p.optional(p.string()),rid:P(p.string()).refine(e=>e.length>=1,{message:"missing rid"}),nsp:p.optional(p.string()),adr:p.optional(p.string()),aud:p.optional(P(se)),sub:p.optional(P(pe)),exp:p.optional(p.number()),nbf:p.optional(p.number()),ups:p.optional(p.string()),tgs:p.optional(P(p.string())),tsp:p.optional(p.number()),internal:p.optional(p.object({server:p.optional(p.string())}))});function P(e){return p.union([e.transform(t=>[t]),p.array(e)])}import*as r from"zod";import*as c from"zod";var z=c.number(),ce=c.object({kind:c.optional(c.literal("audio")),uid:c.optional(c.string()),customType:c.optional(c.string())}),ue=c.object({kind:c.optional(c.literal("video")),codec:c.optional(c.string()),uid:c.optional(c.string()),customType:c.optional(c.string()),id:c.optional(c.string())}),j=c.union([ce,ue]),U=c.object({id:z,properties:j,paused:c.boolean()});import*as d from"zod";var h=d.number(),T=d.union([d.tuple([d.number(),d.number(),d.number()]),d.tuple([d.number(),d.number()])]),_=d.object({id:h,user_id:d.string(),user_data:b,medias:d.array(U)}),I=d.discriminatedUnion("kind",[d.object({kind:d.literal("UserDataChanged"),peer_id:h,user_data:b}),d.object({kind:d.literal("MediaStarted"),peer_id:h,media:U}),d.object({kind:d.literal("MediaStopped"),peer_id:h,media_id:z})]);import*as J from"zod";var B=class e{constructor(t=BigInt(0)){this.value=t}from(...t){let n=t.reduce((u,y)=>u|C(y),BigInt(0));return new e(n)}contains(t){return(this.value&C(t))!==BigInt(0)}insert(t){this.value|=C(t)}remove(t){this.value&=~C(t)}[Symbol.iterator](){let t=-1,n=new e(this.value);return{next(){for(;t<63;)if(t+=1,n.contains(t))return{value:t,done:!1};return{value:void 0,done:!0}}}}},V=J.bigint().transform(e=>new B(e));function C(e){return BigInt(1)<<BigInt(e)}var v;(s=>(s.RoomIdSchema=r.string(),s.RoomSchema=r.object({id:s.RoomIdSchema,customer:r.string(),user_data:b,peers:r.array(_)}),s.RoomUpdateSchema=r.discriminatedUnion("kind",[r.object({kind:r.literal("Joined"),room:s.RoomSchema,media_ids:r.array(z),own_peer_id:h}),r.object({kind:r.literal("Left"),reason:r.enum(["RoomClosing","ServerClosing","PeerKicked"])}),r.object({kind:r.literal("UserDataChanged"),user_data:r.optional(b)}),r.object({kind:r.literal("PeerJoined"),peer:_}),r.object({kind:r.literal("PeerLeft"),peer_id:h})]),s.RoomUpdatesSchema=r.object({updates:r.array(s.RoomUpdateSchema)}),s.RoomStatusSchema=r.enum(["Joining","Joined","Closed"]),s.RoomStatusChangedSchema=r.object({status:s.RoomStatusSchema,message:r.optional(r.string())})))(v||={});var de;(i=>(i.ParametersSchema=r.record(R),i.PeerProperties=r.object({user_data:b.optional(),tags:r.array(r.string()).optional(),audio_parameters:i.ParametersSchema.optional(),video_parameters:i.ParametersSchema.optional()}),i.PingSchema=r.object({Ping:r.object({id:r.number()})}),i.ChangeSelfSchema=r.object({ChangeSelf:i.PeerProperties.omit({tags:!0})}),i.SetAudioMaskSchema=r.object({SetAudioMask:r.object({peer_id:r.number(),mask:V})}),i.SendMessageSchema=r.object({SendMessage:r.object({peer_ids:r.number().array().default([]),message:b})}),i.CallSchema=i.PingSchema.or(i.ChangeSelfSchema).or(i.SetAudioMaskSchema).or(i.SendMessageSchema),i.PongSchema=r.object({Pong:r.object({id:r.number()})}),i.JoinedSchema=r.object({Joined:r.object({own_peer_id:r.number(),room_id:r.string(),customer:r.string()})}),i.LeftSchema=r.object({Left:r.object({reason:r.enum(["room_closing","server_closing","peer_kicked"])})}),i.PeerJoinedSchema=r.object({PeerJoined:i.PeerProperties.extend({peer_id:r.number(),user_id:r.string()})}),i.PeerLeftSchema=r.object({PeerLeft:r.object({peer_id:r.number()})}),i.PeerChangedSchema=r.object({PeerChanged:i.PeerProperties.extend({peer_id:r.number()})}),i.NewReconnectTokenSchema=r.object({NewReconnectToken:r.object({token:r.string()})}),i.MessageReceivedSchema=r.object({MessageReceived:r.object({sender_peer_id:r.number(),message:b})}),i.ErrorSchema=r.object({Error:r.object({message:b})}),i.EventSchema=i.PongSchema.or(i.JoinedSchema).or(i.LeftSchema).or(i.PeerJoinedSchema).or(i.PeerLeftSchema).or(i.PeerChangedSchema).or(i.NewReconnectTokenSchema).or(i.MessageReceivedSchema).or(i.ErrorSchema)))(de||={});import{z as le}from"zod";var O=le.object({sender_peer_id:h,message:b});import*as a from"zod";var k=a.discriminatedUnion("kind",[a.object({kind:a.literal("Sdp"),type:a.enum(["Answer","Offer"]),sdp:a.string(),media_map:a.array(a.tuple([z,a.string()]))}),a.object({kind:a.literal("Trickle"),candidate:a.string(),spd_mid:a.optional(a.string()),spd_mline_index:a.optional(a.number()),username_fragment:a.optional(a.union([a.string(),a.null()]))}),a.object({kind:a.literal("TrickleFinished")})]);import{z as o}from"zod";var nt={Hello:{request:o.object({stream:o.literal("main")}),response:o.null()},JoinRoom:{request:o.object({token:o.string(),room_id:v.RoomIdSchema,user_data:b,position:T}),response:o.object({peer_id:h,stream_id:o.optional(o.number()),token:o.optional(o.string())})},WebRtcUpdate:{request:k,response:o.null()},RequestReconnectToken:{request:o.object({peer_id:o.optional(h)}),response:o.string()},Ping:{request:o.object({}),response:o.null()}},ot={Hello:{request:o.object({stream:o.literal("room"),token:o.string(),room_id:o.string(),user_data:b,position:T}),response:o.null()},UpdatePeer:{request:o.object({user_data:b}),response:o.null()},StartMedia:{request:o.object({media_id:z,properties:j}),response:o.null()},StopMedia:{request:o.object({media_id:z}),response:o.null()},PauseMedia:{request:o.object({media_id:z}),response:o.null()},ResumeMedia:{request:o.object({media_id:z}),response:o.null()},SetPeerPosition:{request:o.object({position:T}),response:o.null()},SendMessage:{request:o.object({target_peer_ids:o.optional(o.array(h)),message:b}),response:o.null()}};import*as x from"zod";var ut=x.object({name:x.literal("WebRtcUpdate"),properties:k}),dt={WebRtcUpdate:k},lt=x.union([x.object({name:x.literal("RoomStatusChanged"),properties:v.RoomStatusChangedSchema}),x.object({name:x.literal("RoomUpdated"),properties:v.RoomUpdatesSchema}),x.object({name:x.literal("PeerUpdated"),properties:I}),x.object({name:x.literal("MessageReceived"),properties:O})]),mt={RoomStatusChanged:v.RoomStatusChangedSchema,RoomUpdated:v.RoomUpdatesSchema,PeerUpdated:I,MessageReceived:O};function A(e,t){e||W(t)}function W(e){throw new Error(e)}function g(e){return{type:"Success",value:e}}function S(e){return{type:"Failure",reason:e}}function gt(e){return e.type==="Failure"&&W(e.reason),e.value}function N(e,t){return e.type==="Success"?e.value:t}function xt(e){try{let t=atob(e),n=Uint8Array.from(t,y=>y.codePointAt(0)),u=new TextDecoder("utf8");return g(u.decode(n))}catch(t){return S(String(t))}}function ht(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),n=Uint8Array.from(t,y=>y.codePointAt(0)),u=new TextDecoder("utf8");return g(u.decode(n))}catch(t){return S(String(t))}}function vt(e){try{A(e!==void 0,"undefined cannot be converted to byte array"),A(e!==null,"null cannot be converted to byte array");let t=JSON.stringify(e),n=new TextEncoder;return g(n.encode(t))}catch(t){return S(String(t))}}function kt(e){try{A(e.length>0,"empty byte array cannot be converted to value");let t=new TextDecoder().decode(e),n=JSON.parse(t);return g(n)}catch(t){return S(String(t))}}var me=["VP8","VP9","AV1","H264"],q=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return me.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=N(this.getMimeType(),"").toLowerCase(),n=new Set(N(this.getSdpFmtpLine(),"").split(";").map(u=>u.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(u=>{let y=u.mimeType.toLowerCase(),m=new Set((u.sdpFmtpLine??"").split(";").map(s=>s.trim().toLowerCase()));if(t!==y||n.size!==m.size)return!1;for(let s of n)if(!m.has(s))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return g(96);case"VP9":return g(98);case"AV1":return g(41);case"H264":return g(102);default:return S("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return g("video/VP8");case"VP9":return g("video/VP9");case"AV1":return g("video/AV1");case"H264":return g("video/H264");default:return S("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return g("");case"VP9":return g("profile-id=2");case"AV1":return g("level-idx=5;profile=0;tier=0");case"H264":return g("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return S("invalid video codec")}}};function Ct(e,t){for(let n of e)if(t(n))return n}function Lt(){return typeof AudioContext<"u"&&typeof Worker<"u"}function wt(){return typeof SharedArrayBuffer<"u"}function fe(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function Mt(){return/electron/i.test(globalThis.navigator.userAgent)}function jt(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function Ut(){return fe()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function It(e){return JSON.parse(JSON.stringify(e))}var $=class e{constructor(t){this._Generators=t;this._Futures=t.map(e.addIndex)}_Futures;async next(){let[t,n]=await Promise.race(this._Futures);return this._Futures[n]=e.addIndex(this._Generators[n],n),t}static async addIndex(t,n){return[await t(),n]}};function Nt(e,t){return e<=0?Promise.resolve(t):new Promise(n=>setTimeout(()=>n(t),e))}function Dt(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(n=>{let u=()=>n("aborted");t.addEventListener("abort",u,{once:!0}),setTimeout(()=>{t.removeEventListener("abort",u),n(void 0)},e)})}function Et(){return new Promise(e=>setTimeout(e,0))}var G=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((n,u)=>{let y=async()=>{try{let m=await t(...this._Values);n(m)}catch(m){u(m)}};this._Tasks.push(y),this._Running||this.execute()})}async execute(){for(this._Running=!0;;){let t=this._Tasks.shift();if(t===void 0)break;await t()}this._Running=!1}};function Wt(e){let t=e.trim();e.indexOf("://")===-1&&(t=`https://${t}`);try{return g(new URL(t))}catch(n){return S(String(n))}}function qt(e,t){let n=e.pathname;n.endsWith("/")===!1&&(n+="/");try{return g(new URL(n+t,e))}catch(u){return S(String(u))}}var ge=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Gt(){return crypto.randomUUID()}function Ht(e){return ge.test(e)}function Yt(e,t){return t in e}function Kt(e){return typeof e=="function"}function Xt(e){return typeof e=="object"&&e===null}function Qt(e){return typeof e=="number"}function er(e){return typeof e=="object"}function tr(e){return typeof e=="string"}function rr(e){return typeof e>"u"}function nr(e){return e.type==="Failure"}function or(e){return e.type==="Success"}var{Deno:H}=globalThis,ye=typeof H?.noColor=="boolean"?H.noColor:!1,be=!ye;function xe(e,t){return{open:`\x1B[${e.join(";")}m`,close:`\x1B[${t}m`,regexp:new RegExp(`\\x1b\\[${t}m`,"g")}}function he(e,t){return be?`${t.open}${e.replace(t.regexp,t.open)}${t.close}`:e}function Z(e){return he(e,xe([0],0))}var ar=new RegExp(["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TXZcf-nq-uy=><~]))"].join("|"),"g");var D=(f=>(f[f.Nothing=0]="Nothing",f[f.CRITICAL=1]="CRITICAL",f[f.ERROR=2]="ERROR",f[f.WARN=3]="WARN",f[f.INFO=4]="INFO",f[f.DEBUG=5]="DEBUG",f[f.Everything=6]="Everything",f))(D||{}),ze=new Date,Q=(m=>(m[m.CRITICAL=1]="CRITICAL",m[m.ERROR=2]="ERROR",m[m.WARN=3]="WARN",m[m.INFO=4]="INFO",m[m.DEBUG=5]="DEBUG",m))(Q||{}),ve={1:"\u{1F4A5}",2:"\u{1F534}",3:"\u{1F7E1}",4:"\u{1F535}",5:"\u{1F7E3}"},ke={5:e=>e,4:e=>e,3:e=>e,2:e=>e,1:e=>e};function sr(e){for(let t of Object.keys(D))if(isNaN(Number(t))!==!1&&t.localeCompare(e,void 0,{sensitivity:"accent"})===0)return D[t]}function Re({message:e}){return String(e)}function Y(e){return JSON.stringify({timestamp:e.date.toISOString(),level:Q[e.level],message:e.message,extra:e.extra})}function K(e){function t(s,f){return[Math.floor(s/f),s%f]}function n(){let s,f=e.date.valueOf()-ze.valueOf();[f,s]=t(f,1e3);let[w,M]=t(f,60);return`${w.toString().padStart(4,"0")}:${M.toString().padStart(2,"0")}.${s.toString().padStart(4,"0")}`}function u(){return e.extra===void 0?"":"Deno"in globalThis?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let y=ve[e.level],m=e.logger.name!==void 0?`@${e.logger}`:"";return`${Z(n())}${m} ${y} ${ke[e.level](String(e.message))}${u()}`}var Pe={sparse:Re,json:Y,pretty:K,default:Deno.stdout.isTerminal()?K:Y},E=class{#e;#t;filter;constructor(t=Pe.default,n=6,u=console){this.filter=n,this.#e=t,this.#t=u}handle(t){let n=this.#e(t);switch(t.level){case 2:this.#t.error(n);break;case 3:this.#t.warn(n);break;case 4:this.#t.info(n);break;case 5:this.#t.debug(n);break}}},F=class{#e;sinks;filter;get name(){return this.#e}constructor(t,n=void 0,u=[new E]){this.#e=n,this.sinks=u,this.filter=t}log(t,n,u=void 0){if(this.filter<t)return;let y=X;for(let m of this.sinks)m.filter<t||(y===X&&(y={date:new Date,level:t,logger:this,message:typeof n=="function"?n():n,extra:u}),m.handle(y))}},Te=new F(4);function L(e,t,n=void 0){Te.log(e,t,n)}var pr=L.bind(void 0,2),cr=L.bind(void 0,3),ur=L.bind(void 0,4),dr=L.bind(void 0,5),X=Symbol();var mr=-758.596,Ce;(t=>{let e;(s=>(s[s.InvalidPassword=-1]="InvalidPassword",s[s.Unknown=0]="Unknown",s[s.Unencrypted=1]="Unencrypted",s[s.Encrypted=2]="Encrypted"))(e=t.PeerCipherStatus||={})})(Ce||={});var fr={bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0,rtt:0,packetLoss:0},gr={packetsBuffered:0,packetsSeen:0,packetsProcessed:0,packetsTooEarly:0,packetsTooLate:0,packetsDropped:0,packetsInvalid:0,packetsRepeated:0,packetsLost:0},yr={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},br={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};export{br as APM_DEFAULTS,Ce as Backend,b as ByteArraySchema,fr as CONNECTION_STATS_INITIAL,B as ChannelSet,V as ChannelSetSchema,E as ConsoleSink,Pe as Formatter,Te as GLOBAL_LOGGER,gr as JITTER_STATS_INITIAL,R as JsonSchema,D as LogFilter,Q as LogLevel,F as Logger,nt as MainCommandsRpc,ut as MainNotificationSchema,dt as MainNotificationsRpc,ce as MediaAudioPropertiesSchema,z as MediaIdSchema,j as MediaPropertiesSchema,U as MediaSchema,ue as MediaVideoPropertiesSchema,we as MessagePackRpcSchema,O as MessageReceivedSchema,mr as MinDBFS,h as PeerIdSchema,T as PeerPositionSchema,_ as PeerSchema,I as PeerUpdateSchema,ot as RoomCommandsRpc,lt as RoomNotificationSchema,mt as RoomNotificationsRpc,v as RoomV1,de as RoomV2,$ as Selector,G as Strand,se as TokenAudienceSchema,Ue as TokenClaimsSchema,pe as TokenSubjectSchema,yr as VAD_DEFAULTS,q as VideoCodec,k as WebRtcUpdateSchema,Dt as abortableSleep,A as assert,dr as debug,pr as error,qt as extendUrl,W as fail,S as failure,Ct as find,xt as fromBase64,ht as fromBase64Url,kt as fromBytes,Gt as generateUUID,ur as info,Lt as isAudioCapable,fe as isBlinkBrowser,Mt as isElectronBrowser,nr as isFailure,jt as isFirefoxBrowser,Kt as isFunction,Xt as isNull,Qt as isNumber,er as isObject,Yt as isProperty,Ut as isSafariBrowser,wt as isSharedArrayBufferCapable,tr as isString,or as isSuccess,rr as isUndefined,L as log,Et as nextTick,Wt as normalizeUrl,P as oneOrMany,Nt as sleep,g as success,vt as toBytes,It as toRaw,sr as tryParseLogFilter,gt as unwrap,N as unwrapOr,Ht as validateUUID,cr as warn};
1
+ import{z as d}from"zod";var b=d.custom(e=>e instanceof Uint8Array),ue=d.union([d.string(),d.number(),d.boolean(),d.null()]),T=d.lazy(()=>d.union([ue,d.array(T),d.record(d.string(),T)])),Me=d.union([d.tuple([d.literal(0),d.number(),d.string(),d.unknown()]),d.tuple([d.literal(1),d.number(),d.nullable(d.string()),d.unknown()]),d.tuple([d.literal(2),d.string(),d.unknown()])]);import{z as p}from"zod";var de=p.enum(["sfu","gateway"]),le=p.enum(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),_e=p.object({uid:p.string(),cid:p.optional(p.string()),rid:C(p.string()).refine(e=>e.length>=1,{message:"missing rid"}),nsp:p.optional(p.string()),adr:p.optional(p.string()),aud:p.optional(C(de)),sub:p.optional(C(le)),exp:p.optional(p.number()),nbf:p.optional(p.number()),ups:p.optional(p.string()),tgs:p.optional(C(p.string())),tsp:p.optional(p.number()),internal:p.optional(p.object({server:p.optional(p.string())}))});function C(e){return p.union([e.transform(t=>[t]),p.array(e)])}import*as r from"zod";import*as c from"zod";var z=c.number(),me=c.object({kind:c.optional(c.literal("audio")),uid:c.optional(c.string()),customType:c.optional(c.string())}),fe=c.object({kind:c.optional(c.literal("video")),codec:c.optional(c.string()),uid:c.optional(c.string()),customType:c.optional(c.string()),id:c.optional(c.string())}),_=c.union([me,fe]),I=c.object({id:z,properties:_,paused:c.boolean()});import*as l from"zod";var h=l.number(),A=l.union([l.tuple([l.number(),l.number(),l.number()]),l.tuple([l.number(),l.number()])]),B=l.object({id:h,user_id:l.string(),user_data:b,medias:l.array(I)}),O=l.discriminatedUnion("kind",[l.object({kind:l.literal("UserDataChanged"),peer_id:h,user_data:b}),l.object({kind:l.literal("MediaStarted"),peer_id:h,media:I}),l.object({kind:l.literal("MediaStopped"),peer_id:h,media_id:z})]);import*as G from"zod";var N=class e{constructor(t=BigInt(0)){this.value=t}from(...t){let n=t.reduce((u,y)=>u|L(y),BigInt(0));return new e(n)}contains(t){return(this.value&L(t))!==BigInt(0)}insert(t){this.value|=L(t)}remove(t){this.value&=~L(t)}[Symbol.iterator](){let t=-1,n=new e(this.value);return{next(){for(;t<63;)if(t+=1,n.contains(t))return{value:t,done:!1};return{value:void 0,done:!0}}}}},$=G.bigint().transform(e=>new N(e));function L(e){return BigInt(1)<<BigInt(e)}var v;(s=>(s.RoomIdSchema=r.string(),s.RoomSchema=r.object({id:s.RoomIdSchema,customer:r.string(),user_data:b,peers:r.array(B)}),s.RoomUpdateSchema=r.discriminatedUnion("kind",[r.object({kind:r.literal("Joined"),room:s.RoomSchema,media_ids:r.array(z),own_peer_id:h}),r.object({kind:r.literal("Left"),reason:r.enum(["RoomClosing","ServerClosing","PeerKicked"])}),r.object({kind:r.literal("UserDataChanged"),user_data:r.optional(b)}),r.object({kind:r.literal("PeerJoined"),peer:B}),r.object({kind:r.literal("PeerLeft"),peer_id:h})]),s.RoomUpdatesSchema=r.object({updates:r.array(s.RoomUpdateSchema)}),s.RoomStatusSchema=r.enum(["Joining","Joined","Closed"]),s.RoomStatusChangedSchema=r.object({status:s.RoomStatusSchema,message:r.optional(r.string())})))(v||={});var ge;(i=>(i.ParametersSchema=r.record(r.string(),T),i.PeerProperties=r.object({user_data:b.optional(),tags:r.array(r.string()).optional(),audio_parameters:i.ParametersSchema.optional(),video_parameters:i.ParametersSchema.optional()}),i.PingSchema=r.object({Ping:r.object({id:r.number()})}),i.ChangeSelfSchema=r.object({ChangeSelf:i.PeerProperties.omit({tags:!0})}),i.SetAudioMaskSchema=r.object({SetAudioMask:r.object({peer_id:r.number(),mask:$})}),i.SendMessageSchema=r.object({SendMessage:r.object({peer_ids:r.number().array().default([]),message:b})}),i.CallSchema=i.PingSchema.or(i.ChangeSelfSchema).or(i.SetAudioMaskSchema).or(i.SendMessageSchema),i.PongSchema=r.object({Pong:r.object({id:r.number()})}),i.JoinedSchema=r.object({Joined:r.object({own_peer_id:r.number(),room_id:r.string(),customer:r.string()})}),i.LeftSchema=r.object({Left:r.object({reason:r.enum(["room_closing","server_closing","peer_kicked"])})}),i.PeerJoinedSchema=r.object({PeerJoined:i.PeerProperties.extend({peer_id:r.number(),user_id:r.string()})}),i.PeerLeftSchema=r.object({PeerLeft:r.object({peer_id:r.number()})}),i.PeerChangedSchema=r.object({PeerChanged:i.PeerProperties.extend({peer_id:r.number()})}),i.NewReconnectTokenSchema=r.object({NewReconnectToken:r.object({token:r.string()})}),i.MessageReceivedSchema=r.object({MessageReceived:r.object({sender_peer_id:r.number(),message:b})}),i.ErrorSchema=r.object({Error:r.object({message:b})}),i.EventSchema=i.PongSchema.or(i.JoinedSchema).or(i.LeftSchema).or(i.PeerJoinedSchema).or(i.PeerLeftSchema).or(i.PeerChangedSchema).or(i.NewReconnectTokenSchema).or(i.MessageReceivedSchema).or(i.ErrorSchema)))(ge||={});import{z as ye}from"zod";var E=ye.object({sender_peer_id:h,message:b});import*as a from"zod";var R=a.discriminatedUnion("kind",[a.object({kind:a.literal("Sdp"),type:a.enum(["Answer","Offer"]),sdp:a.string(),media_map:a.array(a.tuple([z,a.string()]))}),a.object({kind:a.literal("Trickle"),candidate:a.string(),spd_mid:a.optional(a.string()),spd_mline_index:a.optional(a.number()),username_fragment:a.optional(a.union([a.string(),a.null()]))}),a.object({kind:a.literal("TrickleFinished")})]);import{z as o}from"zod";var ot={Hello:{request:o.object({stream:o.literal("main")}),response:o.null()},JoinRoom:{request:o.object({token:o.string(),room_id:v.RoomIdSchema,user_data:b,position:A}),response:o.object({peer_id:h,stream_id:o.optional(o.number()),token:o.optional(o.string())})},WebRtcUpdate:{request:R,response:o.null()},RequestReconnectToken:{request:o.object({peer_id:o.optional(h)}),response:o.string()},Ping:{request:o.object({}),response:o.null()}},it={Hello:{request:o.object({stream:o.literal("room"),token:o.string(),room_id:o.string(),user_data:b,position:A}),response:o.null()},UpdatePeer:{request:o.object({user_data:b}),response:o.null()},StartMedia:{request:o.object({media_id:z,properties:_}),response:o.null()},StopMedia:{request:o.object({media_id:z}),response:o.null()},PauseMedia:{request:o.object({media_id:z}),response:o.null()},ResumeMedia:{request:o.object({media_id:z}),response:o.null()},SetPeerPosition:{request:o.object({position:A}),response:o.null()},SendMessage:{request:o.object({target_peer_ids:o.optional(o.array(h)),message:b}),response:o.null()}};import*as x from"zod";var dt=x.object({name:x.literal("WebRtcUpdate"),properties:R}),lt={WebRtcUpdate:R},mt=x.union([x.object({name:x.literal("RoomStatusChanged"),properties:v.RoomStatusChangedSchema}),x.object({name:x.literal("RoomUpdated"),properties:v.RoomUpdatesSchema}),x.object({name:x.literal("PeerUpdated"),properties:O}),x.object({name:x.literal("MessageReceived"),properties:E})]),ft={RoomStatusChanged:v.RoomStatusChangedSchema,RoomUpdated:v.RoomUpdatesSchema,PeerUpdated:O,MessageReceived:E};function w(e,t){e||H(t)}function H(e){throw new Error(e)}function g(e){return{type:"Success",value:e}}function S(e){return{type:"Failure",reason:e}}function yt(e){return e.type==="Failure"&&H(e.reason),e.value}function D(e,t){return e.type==="Success"?e.value:t}function ht(e){try{let t=atob(e),n=Uint8Array.from(t,y=>y.codePointAt(0)),u=new TextDecoder("utf8");return g(u.decode(n))}catch(t){return S(String(t))}}function St(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),n=Uint8Array.from(t,y=>y.codePointAt(0)),u=new TextDecoder("utf8");return g(u.decode(n))}catch(t){return S(String(t))}}function kt(e){try{w(e!==void 0,"undefined cannot be converted to byte array"),w(e!==null,"null cannot be converted to byte array");let t=JSON.stringify(e),n=new TextEncoder;return g(n.encode(t))}catch(t){return S(String(t))}}function Rt(e){try{w(e.length>0,"empty byte array cannot be converted to value");let t=new TextDecoder().decode(e),n=JSON.parse(t);return g(n)}catch(t){return S(String(t))}}var be=["VP8","VP9","AV1","H264"],Z=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return be.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=D(this.getMimeType(),"").toLowerCase(),n=new Set(D(this.getSdpFmtpLine(),"").split(";").map(u=>u.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(u=>{let y=u.mimeType.toLowerCase(),m=new Set((u.sdpFmtpLine??"").split(";").map(s=>s.trim().toLowerCase()));if(t!==y||n.size!==m.size)return!1;for(let s of n)if(!m.has(s))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return g(96);case"VP9":return g(98);case"AV1":return g(41);case"H264":return g(102);default:return S("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return g("video/VP8");case"VP9":return g("video/VP9");case"AV1":return g("video/AV1");case"H264":return g("video/H264");default:return S("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return g("");case"VP9":return g("profile-id=2");case"AV1":return g("level-idx=5;profile=0;tier=0");case"H264":return g("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return S("invalid video codec")}}};function At(e,t){for(let n of e)if(t(n))return n}function wt(){return typeof AudioContext<"u"&&typeof Worker<"u"}function Mt(){return typeof SharedArrayBuffer<"u"}function xe(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function jt(){return/electron/i.test(globalThis.navigator.userAgent)}function Ut(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function _t(){return xe()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function Bt(e){return JSON.parse(JSON.stringify(e))}var Y=class e{constructor(t){this._Generators=t;this._Futures=t.map(e.addIndex)}_Futures;async next(){let[t,n]=await Promise.race(this._Futures);return this._Futures[n]=e.addIndex(this._Generators[n],n),t}static async addIndex(t,n){return[await t(),n]}};function Et(e,t){return e<=0?Promise.resolve(t):new Promise(n=>setTimeout(()=>n(t),e))}function Dt(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(n=>{let u=()=>n("aborted");t.addEventListener("abort",u,{once:!0}),setTimeout(()=>{t.removeEventListener("abort",u),n(void 0)},e)})}function Ft(){return new Promise(e=>setTimeout(e,0))}var K=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((n,u)=>{let y=async()=>{try{let m=await t(...this._Values);n(m)}catch(m){u(m)}};this._Tasks.push(y),this._Running||this.execute()})}async execute(){for(this._Running=!0;;){let t=this._Tasks.shift();if(t===void 0)break;await t()}this._Running=!1}};function qt(e){let t=e.trim();e.indexOf("://")===-1&&(t=`https://${t}`);try{return g(new URL(t))}catch(n){return S(String(n))}}function Gt(e,t){let n=e.pathname;n.endsWith("/")===!1&&(n+="/");try{return g(new URL(n+t,e))}catch(u){return S(String(u))}}var he=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Ht(){return crypto.randomUUID()}function Zt(e){return he.test(e)}function Kt(e,t){return t in e}function Xt(e){return typeof e=="function"}function Qt(e){return typeof e=="object"&&e===null}function er(e){return typeof e=="number"}function tr(e){return typeof e=="object"}function rr(e){return typeof e=="string"}function nr(e){return typeof e>"u"}function or(e){return e.type==="Failure"}function ir(e){return e.type==="Success"}var{Deno:X}=globalThis,Se=typeof X?.noColor=="boolean"?X.noColor:!1,ze=!Se;function F(e,t){return{open:`\x1B[${e.join(";")}m`,close:`\x1B[${t}m`,regexp:new RegExp(`\\x1b\\[${t}m`,"g")}}function J(e,t){return ze?`${t.open}${e.replace(t.regexp,t.open)}${t.close}`:e}function M(e){return J(e,F([0],0))}function V(e){return J(e,F([1],22))}function Q(e){return J(e,F([2],22))}var sr=new RegExp(["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TXZcf-nq-uy=><~]))"].join("|"),"g");var W=(f=>(f[f.Nothing=0]="Nothing",f[f.CRITICAL=1]="CRITICAL",f[f.ERROR=2]="ERROR",f[f.WARN=3]="WARN",f[f.INFO=4]="INFO",f[f.DEBUG=5]="DEBUG",f[f.Everything=6]="Everything",f))(W||{}),ke=new Date,ne=(m=>(m[m.CRITICAL=1]="CRITICAL",m[m.ERROR=2]="ERROR",m[m.WARN=3]="WARN",m[m.INFO=4]="INFO",m[m.DEBUG=5]="DEBUG",m))(ne||{}),Re={1:"\u{1F4A5}",2:"\u{1F534}",3:"\u{1F7E1}",4:"\u{1F535}",5:"\u{1F7E3}"},Pe={5:Q,4:M,3:M,2:V,1:V};function pr(e){for(let t of Object.keys(W))if(isNaN(Number(t))!==!1&&t.localeCompare(e,void 0,{sensitivity:"accent"})===0)return W[t]}function Te({message:e}){return String(e)}function ee(e){return JSON.stringify({timestamp:e.date.toISOString(),level:ne[e.level],message:e.message,extra:e.extra})}function te(e){function t(s,f){return[Math.floor(s/f),s%f]}function n(){let s,f=e.date.valueOf()-ke.valueOf();[f,s]=t(f,1e3);let[j,U]=t(f,60);return`${j.toString().padStart(4,"0")}:${U.toString().padStart(2,"0")}.${s.toString().padStart(4,"0")}`}function u(){return e.extra===void 0?"":"Deno"in globalThis?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let y=Re[e.level],m=e.logger.name!==void 0?`@${e.logger}`:"";return`${M(n())}${m} ${y} ${Pe[e.level](String(e.message))}${u()}`}var Ce={sparse:Te,json:ee,pretty:te,default:"Deno"in globalThis&&Deno.stdout.isTerminal()?te:ee},q=class{#e;#t;filter;constructor(t=Ce.default,n=6,u=console){this.filter=n,this.#e=t,this.#t=u}handle(t){let n=this.#e(t);switch(t.level){case 2:this.#t.error(n);break;case 3:this.#t.warn(n);break;case 4:this.#t.info(n);break;case 5:this.#t.debug(n);break}}},k=class{#e;sinks;filter;get name(){return this.#e}constructor(t,n=void 0,u=[new q]){this.#e=n,this.sinks=u,this.filter=t}log(t,n,u=void 0){if(this.filter<t)return;let y=re;for(let m of this.sinks)m.filter<t||(y===re&&(y={date:new Date,level:t,logger:this,message:typeof n=="function"?n():n,extra:u}),m.handle(y))}error=this.log.bind(this,2);warn=this.log.bind(this,3);info=this.log.bind(this,4);debug=this.log.bind(this,5)},P=new k(4),cr=k.prototype.log.bind(P,2),ur=k.prototype.log.bind(P,3),dr=k.prototype.log.bind(P,4),lr=k.prototype.log.bind(P,5),mr=k.prototype.log.bind(P),re=Symbol();var gr=-758.596,Ae;(t=>{let e;(s=>(s[s.InvalidPassword=-1]="InvalidPassword",s[s.Unknown=0]="Unknown",s[s.Unencrypted=1]="Unencrypted",s[s.Encrypted=2]="Encrypted"))(e=t.PeerCipherStatus||={})})(Ae||={});var yr={bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0,rtt:0,packetLoss:0},br={packetsBuffered:0,packetsSeen:0,packetsProcessed:0,packetsTooEarly:0,packetsTooLate:0,packetsDropped:0,packetsInvalid:0,packetsRepeated:0,packetsLost:0},xr={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},hr={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};export{hr as APM_DEFAULTS,Ae as Backend,b as ByteArraySchema,yr as CONNECTION_STATS_INITIAL,N as ChannelSet,$ as ChannelSetSchema,q as ConsoleSink,Ce as Formatter,P as GLOBAL_LOGGER,br as JITTER_STATS_INITIAL,T as JsonSchema,W as LogFilter,ne as LogLevel,k as Logger,ot as MainCommandsRpc,dt as MainNotificationSchema,lt as MainNotificationsRpc,me as MediaAudioPropertiesSchema,z as MediaIdSchema,_ as MediaPropertiesSchema,I as MediaSchema,fe as MediaVideoPropertiesSchema,Me as MessagePackRpcSchema,E as MessageReceivedSchema,gr as MinDBFS,h as PeerIdSchema,A as PeerPositionSchema,B as PeerSchema,O as PeerUpdateSchema,it as RoomCommandsRpc,mt as RoomNotificationSchema,ft as RoomNotificationsRpc,v as RoomV1,ge as RoomV2,Y as Selector,K as Strand,de as TokenAudienceSchema,_e as TokenClaimsSchema,le as TokenSubjectSchema,xr as VAD_DEFAULTS,Z as VideoCodec,R as WebRtcUpdateSchema,Dt as abortableSleep,w as assert,lr as debug,cr as error,Gt as extendUrl,H as fail,S as failure,At as find,ht as fromBase64,St as fromBase64Url,Rt as fromBytes,Ht as generateUUID,dr as info,wt as isAudioCapable,xe as isBlinkBrowser,jt as isElectronBrowser,or as isFailure,Ut as isFirefoxBrowser,Xt as isFunction,Qt as isNull,er as isNumber,tr as isObject,Kt as isProperty,_t as isSafariBrowser,Mt as isSharedArrayBufferCapable,rr as isString,ir as isSuccess,nr as isUndefined,mr as log,Ft as nextTick,qt as normalizeUrl,C as oneOrMany,Et as sleep,g as success,kt as toBytes,Bt as toRaw,pr as tryParseLogFilter,yt as unwrap,D as unwrapOr,Zt as validateUUID,ur as warn};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@4players/odin-common",
3
- "version": "9.0.2",
3
+ "version": "9.0.4",
4
4
  "description": "A collection of commonly used type definitions and utility functions across ODIN web projects",
5
5
  "author": "Josho Bleicker <josho.bleicker@4players.io> (https://www.4players.io)",
6
6
  "homepage": "https://www.4players.io",
@@ -42,6 +42,6 @@
42
42
  }
43
43
  },
44
44
  "dependencies": {
45
- "zod": "~3.25.0"
45
+ "zod": "~4.3.0"
46
46
  }
47
47
  }
package/rpc/commands.d.ts CHANGED
@@ -8,99 +8,50 @@ export declare const MainCommandsRpc: {
8
8
  Hello: {
9
9
  request: z.ZodObject<{
10
10
  stream: z.ZodLiteral<"main">;
11
- }, "strip", z.ZodTypeAny, {
12
- stream: "main";
13
- }, {
14
- stream: "main";
15
- }>;
11
+ }, z.core.$strip>;
16
12
  response: z.ZodNull;
17
13
  };
18
14
  JoinRoom: {
19
15
  request: z.ZodObject<{
20
16
  token: z.ZodString;
21
17
  room_id: z.ZodString;
22
- user_data: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
23
- position: z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>;
24
- }, "strip", z.ZodTypeAny, {
25
- position: [number, number] | [number, number, number];
26
- user_data: Uint8Array;
27
- room_id: string;
28
- token: string;
29
- }, {
30
- position: [number, number] | [number, number, number];
31
- user_data: Uint8Array;
32
- room_id: string;
33
- token: string;
34
- }>;
18
+ user_data: z.ZodCustom<Uint8Array, Uint8Array>;
19
+ position: z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>;
20
+ }, z.core.$strip>;
35
21
  response: z.ZodObject<{
36
22
  peer_id: z.ZodNumber;
37
23
  stream_id: z.ZodOptional<z.ZodNumber>;
38
24
  token: z.ZodOptional<z.ZodString>;
39
- }, "strip", z.ZodTypeAny, {
40
- peer_id: number;
41
- token?: string | undefined;
42
- stream_id?: number | undefined;
43
- }, {
44
- peer_id: number;
45
- token?: string | undefined;
46
- stream_id?: number | undefined;
47
- }>;
25
+ }, z.core.$strip>;
48
26
  };
49
27
  WebRtcUpdate: {
50
- request: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
28
+ request: z.ZodDiscriminatedUnion<[z.ZodObject<{
51
29
  kind: z.ZodLiteral<"Sdp">;
52
- type: z.ZodEnum<["Answer", "Offer"]>;
30
+ type: z.ZodEnum<{
31
+ Answer: "Answer";
32
+ Offer: "Offer";
33
+ }>;
53
34
  sdp: z.ZodString;
54
- media_map: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodString], null>, "many">;
55
- }, "strip", z.ZodTypeAny, {
56
- type: "Answer" | "Offer";
57
- kind: "Sdp";
58
- sdp: string;
59
- media_map: [number, string][];
60
- }, {
61
- type: "Answer" | "Offer";
62
- kind: "Sdp";
63
- sdp: string;
64
- media_map: [number, string][];
65
- }>, z.ZodObject<{
35
+ media_map: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodString], null>>;
36
+ }, z.core.$strip>, z.ZodObject<{
66
37
  kind: z.ZodLiteral<"Trickle">;
67
38
  candidate: z.ZodString;
68
39
  spd_mid: z.ZodOptional<z.ZodString>;
69
40
  spd_mline_index: z.ZodOptional<z.ZodNumber>;
70
- username_fragment: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNull]>>;
71
- }, "strip", z.ZodTypeAny, {
72
- candidate: string;
73
- kind: "Trickle";
74
- spd_mid?: string | undefined;
75
- spd_mline_index?: number | undefined;
76
- username_fragment?: string | null | undefined;
77
- }, {
78
- candidate: string;
79
- kind: "Trickle";
80
- spd_mid?: string | undefined;
81
- spd_mline_index?: number | undefined;
82
- username_fragment?: string | null | undefined;
83
- }>, z.ZodObject<{
41
+ username_fragment: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNull]>>;
42
+ }, z.core.$strip>, z.ZodObject<{
84
43
  kind: z.ZodLiteral<"TrickleFinished">;
85
- }, "strip", z.ZodTypeAny, {
86
- kind: "TrickleFinished";
87
- }, {
88
- kind: "TrickleFinished";
89
- }>]>;
44
+ }, z.core.$strip>], "kind">;
90
45
  response: z.ZodNull;
91
46
  };
92
47
  RequestReconnectToken: {
93
48
  request: z.ZodObject<{
94
49
  peer_id: z.ZodOptional<z.ZodNumber>;
95
- }, "strip", z.ZodTypeAny, {
96
- peer_id?: number | undefined;
97
- }, {
98
- peer_id?: number | undefined;
99
- }>;
50
+ }, z.core.$strip>;
100
51
  response: z.ZodString;
101
52
  };
102
53
  Ping: {
103
- request: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
54
+ request: z.ZodObject<{}, z.core.$strip>;
104
55
  response: z.ZodNull;
105
56
  };
106
57
  };
@@ -111,147 +62,63 @@ export declare const RoomCommandsRpc: {
111
62
  stream: z.ZodLiteral<"room">;
112
63
  token: z.ZodString;
113
64
  room_id: z.ZodString;
114
- user_data: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
115
- position: z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>;
116
- }, "strip", z.ZodTypeAny, {
117
- stream: "room";
118
- position: [number, number] | [number, number, number];
119
- user_data: Uint8Array;
120
- room_id: string;
121
- token: string;
122
- }, {
123
- stream: "room";
124
- position: [number, number] | [number, number, number];
125
- user_data: Uint8Array;
126
- room_id: string;
127
- token: string;
128
- }>;
65
+ user_data: z.ZodCustom<Uint8Array, Uint8Array>;
66
+ position: z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>;
67
+ }, z.core.$strip>;
129
68
  response: z.ZodNull;
130
69
  };
131
70
  UpdatePeer: {
132
71
  request: z.ZodObject<{
133
- user_data: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
134
- }, "strip", z.ZodTypeAny, {
135
- user_data: Uint8Array;
136
- }, {
137
- user_data: Uint8Array;
138
- }>;
72
+ user_data: z.ZodCustom<Uint8Array, Uint8Array>;
73
+ }, z.core.$strip>;
139
74
  response: z.ZodNull;
140
75
  };
141
76
  StartMedia: {
142
77
  request: z.ZodObject<{
143
78
  media_id: z.ZodNumber;
144
- properties: z.ZodUnion<[z.ZodObject<{
79
+ properties: z.ZodUnion<readonly [z.ZodObject<{
145
80
  kind: z.ZodOptional<z.ZodLiteral<"audio">>;
146
81
  uid: z.ZodOptional<z.ZodString>;
147
82
  customType: z.ZodOptional<z.ZodString>;
148
- }, "strip", z.ZodTypeAny, {
149
- uid?: string | undefined;
150
- kind?: "audio" | undefined;
151
- customType?: string | undefined;
152
- }, {
153
- uid?: string | undefined;
154
- kind?: "audio" | undefined;
155
- customType?: string | undefined;
156
- }>, z.ZodObject<{
83
+ }, z.core.$strip>, z.ZodObject<{
157
84
  kind: z.ZodOptional<z.ZodLiteral<"video">>;
158
85
  codec: z.ZodOptional<z.ZodString>;
159
86
  uid: z.ZodOptional<z.ZodString>;
160
87
  customType: z.ZodOptional<z.ZodString>;
161
88
  id: z.ZodOptional<z.ZodString>;
162
- }, "strip", z.ZodTypeAny, {
163
- id?: string | undefined;
164
- codec?: string | undefined;
165
- uid?: string | undefined;
166
- kind?: "video" | undefined;
167
- customType?: string | undefined;
168
- }, {
169
- id?: string | undefined;
170
- codec?: string | undefined;
171
- uid?: string | undefined;
172
- kind?: "video" | undefined;
173
- customType?: string | undefined;
174
- }>]>;
175
- }, "strip", z.ZodTypeAny, {
176
- properties: {
177
- uid?: string | undefined;
178
- kind?: "audio" | undefined;
179
- customType?: string | undefined;
180
- } | {
181
- id?: string | undefined;
182
- codec?: string | undefined;
183
- uid?: string | undefined;
184
- kind?: "video" | undefined;
185
- customType?: string | undefined;
186
- };
187
- media_id: number;
188
- }, {
189
- properties: {
190
- uid?: string | undefined;
191
- kind?: "audio" | undefined;
192
- customType?: string | undefined;
193
- } | {
194
- id?: string | undefined;
195
- codec?: string | undefined;
196
- uid?: string | undefined;
197
- kind?: "video" | undefined;
198
- customType?: string | undefined;
199
- };
200
- media_id: number;
201
- }>;
89
+ }, z.core.$strip>]>;
90
+ }, z.core.$strip>;
202
91
  response: z.ZodNull;
203
92
  };
204
93
  StopMedia: {
205
94
  request: z.ZodObject<{
206
95
  media_id: z.ZodNumber;
207
- }, "strip", z.ZodTypeAny, {
208
- media_id: number;
209
- }, {
210
- media_id: number;
211
- }>;
96
+ }, z.core.$strip>;
212
97
  response: z.ZodNull;
213
98
  };
214
99
  PauseMedia: {
215
100
  request: z.ZodObject<{
216
101
  media_id: z.ZodNumber;
217
- }, "strip", z.ZodTypeAny, {
218
- media_id: number;
219
- }, {
220
- media_id: number;
221
- }>;
102
+ }, z.core.$strip>;
222
103
  response: z.ZodNull;
223
104
  };
224
105
  ResumeMedia: {
225
106
  request: z.ZodObject<{
226
107
  media_id: z.ZodNumber;
227
- }, "strip", z.ZodTypeAny, {
228
- media_id: number;
229
- }, {
230
- media_id: number;
231
- }>;
108
+ }, z.core.$strip>;
232
109
  response: z.ZodNull;
233
110
  };
234
111
  SetPeerPosition: {
235
112
  request: z.ZodObject<{
236
- position: z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>;
237
- }, "strip", z.ZodTypeAny, {
238
- position: [number, number] | [number, number, number];
239
- }, {
240
- position: [number, number] | [number, number, number];
241
- }>;
113
+ position: z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>;
114
+ }, z.core.$strip>;
242
115
  response: z.ZodNull;
243
116
  };
244
117
  SendMessage: {
245
118
  request: z.ZodObject<{
246
- target_peer_ids: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
247
- message: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
248
- }, "strip", z.ZodTypeAny, {
249
- message: Uint8Array;
250
- target_peer_ids?: number[] | undefined;
251
- }, {
252
- message: Uint8Array;
253
- target_peer_ids?: number[] | undefined;
254
- }>;
119
+ target_peer_ids: z.ZodOptional<z.ZodArray<z.ZodNumber>>;
120
+ message: z.ZodCustom<Uint8Array, Uint8Array>;
121
+ }, z.core.$strip>;
255
122
  response: z.ZodNull;
256
123
  };
257
124
  };