@4players/odin-common 4.1.0 → 6.0.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/mod.d.ts +26 -26
- package/mod.js +1 -1
- package/mod.mjs +1 -1
- package/package.json +1 -1
- package/plugin/api.d.ts +10 -8
- package/rpc/commands.d.ts +1 -1
- package/rpc/notifications.d.ts +1 -1
- package/schema/channels.d.ts +1 -1
- package/schema/media.d.ts +1 -1
- package/schema/message.d.ts +1 -1
- package/schema/peer.d.ts +1 -1
- package/schema/room.d.ts +1 -1
- package/schema/serialization.d.ts +1 -1
- package/schema/token.d.ts +14 -14
- package/schema/webrtc.d.ts +1 -1
- package/utility/base64.d.ts +1 -1
- package/utility/bytearray.d.ts +2 -2
- package/utility/codec.d.ts +1 -1
- package/utility/json.d.ts +1 -1
- package/utility/log.d.ts +1 -1
- package/utility/result.d.ts +2 -2
- package/utility/sleep.d.ts +1 -1
- package/utility/url.d.ts +1 -1
- package/utility/validation.d.ts +1 -1
package/mod.d.ts
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
export * as zod from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from
|
|
8
|
-
export * from
|
|
9
|
-
export * from
|
|
10
|
-
export * from
|
|
11
|
-
export * from
|
|
12
|
-
export * from
|
|
13
|
-
export * from
|
|
14
|
-
export * from
|
|
15
|
-
export * from
|
|
16
|
-
export * from
|
|
17
|
-
export * from
|
|
18
|
-
export * from
|
|
19
|
-
export * from
|
|
20
|
-
export * from
|
|
21
|
-
export * from
|
|
22
|
-
export * from
|
|
23
|
-
export * from
|
|
24
|
-
export * from
|
|
25
|
-
export * from
|
|
26
|
-
export * from
|
|
1
|
+
export * as zod from 'zod';
|
|
2
|
+
export * from './schema/serialization.ts';
|
|
3
|
+
export * from './schema/token.ts';
|
|
4
|
+
export * from './schema/room.ts';
|
|
5
|
+
export * from './schema/peer.ts';
|
|
6
|
+
export * from './schema/media.ts';
|
|
7
|
+
export * from './schema/message.ts';
|
|
8
|
+
export * from './schema/webrtc.ts';
|
|
9
|
+
export * from './schema/channels.ts';
|
|
10
|
+
export * from './rpc/commands.ts';
|
|
11
|
+
export * from './rpc/notifications.ts';
|
|
12
|
+
export * from './utility/base64.ts';
|
|
13
|
+
export * from './utility/bytearray.ts';
|
|
14
|
+
export * from './utility/codec.ts';
|
|
15
|
+
export * from './utility/iterable.ts';
|
|
16
|
+
export * from './utility/environment.ts';
|
|
17
|
+
export * from './utility/json.ts';
|
|
18
|
+
export * from './utility/result.ts';
|
|
19
|
+
export * from './utility/selector.ts';
|
|
20
|
+
export * from './utility/sleep.ts';
|
|
21
|
+
export * from './utility/strand.ts';
|
|
22
|
+
export * from './utility/url.ts';
|
|
23
|
+
export * from './utility/uuid.ts';
|
|
24
|
+
export * from './utility/validation.ts';
|
|
25
|
+
export * from './utility/log.ts';
|
|
26
|
+
export * from './plugin/api.ts';
|
package/mod.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Se=Object.create;var N=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames;var ke=Object.getPrototypeOf,Pe=Object.prototype.hasOwnProperty;var we=(t,e)=>{for(var r in e)N(t,r,{get:e[r],enumerable:!0})},X=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let p of Le(e))!Pe.call(t,p)&&p!==r&&N(t,p,{get:()=>e[p],enumerable:!(s=ze(e,p))||s.enumerable});return t};var w=(t,e,r)=>(r=t!=null?Se(ke(t)):{},X(e||!t||!t.__esModule?N(r,"default",{value:t,enumerable:!0}):r,t)),Re=t=>X(N({},"__esModule",{value:!0}),t);var xt={};we(xt,{Backend:()=>me,ByteArraySchema:()=>g,ChannelSet:()=>B,ChannelSetSchema:()=>W,DEFAULT_FORMATTER:()=>le,JsonSchema:()=>A,LogFunctions:()=>ue,LogHandler:()=>q,LogLevelNames:()=>ce,LogLevels:()=>G,LogSymbols:()=>pe,LogVerbosity:()=>C,Logger:()=>$,MainCommandsRpc:()=>je,MainNotificationSchema:()=>Fe,MainNotificationsRpc:()=>Ne,MediaAudioPropertiesSchema:()=>re,MediaIdSchema:()=>T,MediaPropertiesSchema:()=>U,MediaSchema:()=>I,MediaVideoPropertiesSchema:()=>ne,MessagePackRpcSchema:()=>Ce,MessageReceivedSchema:()=>V,MinDBFS:()=>gr,PRETTY_FORMATTER:()=>yt,PeerIdSchema:()=>v,PeerPositionSchema:()=>M,PeerSchema:()=>O,PeerUpdateSchema:()=>E,RoomCommandsRpc:()=>Me,RoomNotificationSchema:()=>Ue,RoomNotificationsRpc:()=>Ie,RoomV1:()=>L,RoomV2:()=>ie,Selector:()=>Y,Strand:()=>Q,TokenAudienceSchema:()=>ee,TokenClaimsSchema:()=>Ae,TokenSubjectSchema:()=>te,VideoCodec:()=>K,WebRtcUpdateSchema:()=>_,abortableSleep:()=>Ye,assert:()=>F,debug:()=>gt,error:()=>lt,extendUrl:()=>et,fail:()=>Z,failure:()=>x,find:()=>Je,fromBase64:()=>Oe,fromBase64Url:()=>Ee,fromBytes:()=>Be,generateUUID:()=>rt,getLevelByName:()=>R,getLevelName:()=>P,getLogger:()=>k,info:()=>ft,isAudioCapable:()=>He,isBlinkBrowser:()=>se,isElectronBrowser:()=>$e,isFailure:()=>ut,isFirefoxBrowser:()=>qe,isFunction:()=>it,isNull:()=>at,isNumber:()=>H,isObject:()=>st,isProperty:()=>ot,isSafariBrowser:()=>We,isSharedArrayBufferCapable:()=>Ge,isString:()=>ct,isSuccess:()=>dt,isUndefined:()=>pt,nextTick:()=>Qe,normalizeUrl:()=>Xe,oneOrMany:()=>j,sleep:()=>Ke,success:()=>f,toBytes:()=>De,toRaw:()=>Ze,unwrap:()=>b,unwrapOr:()=>J,validateUUID:()=>nt,warn:()=>mt,zod:()=>bt});module.exports=Re(xt);var bt=w(require("zod"));var d=require("zod"),g=d.z.custom(t=>t instanceof Uint8Array),_e=d.z.union([d.z.string(),d.z.number(),d.z.boolean(),d.z.null()]),A=d.z.lazy(()=>d.z.union([_e,d.z.array(A),d.z.record(A)])),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"),ee=c.z.enum(["sfu","gateway"]),te=c.z.enum(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),Ae=c.z.object({uid:c.z.string(),cid:c.z.optional(c.z.string()),rid:j(c.z.string()).refine(t=>t.length>=1,{message:"missing rid"}),nsp:c.z.optional(c.z.string()),adr:c.z.optional(c.z.string()),aud:c.z.optional(j(ee)),sub:c.z.optional(j(te)),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(j(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 j(t){return c.z.union([t.transform(e=>[e]),c.z.array(t)])}var n=w(require("zod"));var l=w(require("zod")),T=l.number(),re=l.object({kind:l.optional(l.literal("audio")),uid:l.optional(l.string()),customType:l.optional(l.string())}),ne=l.object({kind:l.optional(l.literal("video")),codec:l.optional(l.string()),uid:l.optional(l.string()),customType:l.optional(l.string())}),U=l.union([re,ne]),I=l.object({id:T,properties:U,paused:l.boolean()});var m=w(require("zod"));var v=m.number(),M=m.union([m.tuple([m.number(),m.number(),m.number()]),m.tuple([m.number(),m.number()])]),O=m.object({id:v,user_id:m.string(),user_data:g,medias:m.array(I)}),E=m.discriminatedUnion("kind",[m.object({kind:m.literal("UserDataChanged"),peer_id:v,user_data:g}),m.object({kind:m.literal("MediaStarted"),peer_id:v,media:I}),m.object({kind:m.literal("MediaStopped"),peer_id:v,media_id:T})]);var oe=w(require("zod")),B=class t{constructor(e=BigInt(0)){this.value=e}from(...e){let r=e.reduce((s,p)=>s|D(p),BigInt(0));return new t(r)}contains(e){return(this.value&D(e))!==BigInt(0)}insert(e){this.value|=D(e)}remove(e){this.value&=~D(e)}[Symbol.iterator](){let e=-1,r=new t(this.value);return{next(){for(;e<63;)if(e+=1,r.contains(e))return{value:e,done:!1};return{value:void 0,done:!0}}}}},W=oe.bigint().transform(t=>new B(t));function D(t){return BigInt(1)<<BigInt(t)}var L;(y=>(y.RoomIdSchema=n.string(),y.RoomSchema=n.object({id:y.RoomIdSchema,customer:n.string(),user_data:g,peers:n.array(O)}),y.RoomUpdateSchema=n.discriminatedUnion("kind",[n.object({kind:n.literal("Joined"),room:y.RoomSchema,media_ids:n.array(T),own_peer_id:v}),n.object({kind:n.literal("Left"),reason:n.enum(["RoomClosing","ServerClosing","PeerKicked"])}),n.object({kind:n.literal("UserDataChanged"),user_data:n.optional(g)}),n.object({kind:n.literal("PeerJoined"),peer:O}),n.object({kind:n.literal("PeerLeft"),peer_id:v})]),y.RoomUpdatesSchema=n.object({updates:n.array(y.RoomUpdateSchema)}),y.RoomStatusSchema=n.enum(["Joining","Joined","Closed"]),y.RoomStatusChangedSchema=n.object({status:y.RoomStatusSchema,message:n.optional(n.string())})))(L||={});var ie;(i=>(i.ParametersSchema=n.record(A),i.PeerProperties=n.object({user_data:g.optional(),tags:n.array(n.string()).optional(),audio_parameters:i.ParametersSchema.optional(),video_parameters:i.ParametersSchema.optional()}),i.PingSchema=n.object({Ping:n.object({id:n.number()})}),i.ChangeSelfSchema=n.object({ChangeSelf:i.PeerProperties.omit({tags:!0})}),i.SetAudioMaskSchema=n.object({SetAudioMask:n.object({peer_id:n.number(),mask:W})}),i.SendMessageSchema=n.object({SendMessage:n.object({peer_ids:n.number().array().default([]),message:g})}),i.CallSchema=i.PingSchema.or(i.ChangeSelfSchema).or(i.SetAudioMaskSchema).or(i.SendMessageSchema),i.PongSchema=n.object({Pong:n.object({id:n.number()})}),i.JoinedSchema=n.object({Joined:n.object({own_peer_id:n.number(),room_id:n.string(),customer:n.string()})}),i.LeftSchema=n.object({Left:n.object({reason:n.enum(["room_closing","server_closing","peer_kicked"])})}),i.PeerJoinedSchema=n.object({PeerJoined:i.PeerProperties.extend({peer_id:n.number(),user_id:n.string()})}),i.PeerLeftSchema=n.object({PeerLeft:n.object({peer_id:n.number()})}),i.PeerChangedSchema=n.object({PeerChanged:i.PeerProperties.extend({peer_id:n.number()})}),i.NewReconnectTokenSchema=n.object({NewReconnectToken:n.object({token:n.string()})}),i.MessageReceivedSchema=n.object({MessageReceived:n.object({sender_peer_id:n.number(),message:g})}),i.ErrorSchema=n.object({Error:n.object({message:g})}),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)))(ie||={});var ae=require("zod");var V=ae.z.object({sender_peer_id:v,message:g});var a=w(require("zod"));var _=a.discriminatedUnion("kind",[a.object({kind:a.literal("Sdp"),type:a.enum(["Answer","Offer"]),sdp:a.string(),media_map:a.array(a.tuple([T,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:L.RoomIdSchema,user_data:g,position:M}),response:o.z.object({peer_id:v,stream_id:o.z.optional(o.z.number()),token:o.z.optional(o.z.string())})},WebRtcUpdate:{request:_,response:o.z.null()},RequestReconnectToken:{request:o.z.object({peer_id:o.z.optional(v)}),response:o.z.string()},Ping:{request:o.z.object({}),response:o.z.null()}},Me={Hello:{request:o.z.object({stream:o.z.literal("room"),token:o.z.string(),room_id:o.z.string(),user_data:g,position:M}),response:o.z.null()},UpdatePeer:{request:o.z.object({user_data:g}),response:o.z.null()},StartMedia:{request:o.z.object({media_id:T,properties:U}),response:o.z.null()},StopMedia:{request:o.z.object({media_id:T}),response:o.z.null()},PauseMedia:{request:o.z.object({media_id:T}),response:o.z.null()},ResumeMedia:{request:o.z.object({media_id:T}),response:o.z.null()},SetPeerPosition:{request:o.z.object({position:M}),response:o.z.null()},SendMessage:{request:o.z.object({target_peer_ids:o.z.optional(o.z.array(v)),message:g}),response:o.z.null()}};var h=w(require("zod"));var Fe=h.object({name:h.literal("WebRtcUpdate"),properties:_}),Ne={WebRtcUpdate:_},Ue=h.union([h.object({name:h.literal("RoomStatusChanged"),properties:L.RoomStatusChangedSchema}),h.object({name:h.literal("RoomUpdated"),properties:L.RoomUpdatesSchema}),h.object({name:h.literal("PeerUpdated"),properties:E}),h.object({name:h.literal("MessageReceived"),properties:V})]),Ie={RoomStatusChanged:L.RoomStatusChangedSchema,RoomUpdated:L.RoomUpdatesSchema,PeerUpdated:E,MessageReceived:V};function F(t,e){t||Z(e)}function Z(t){throw new Error(t)}function f(t){return{type:"Success",value:t}}function x(t){return{type:"Failure",reason:t}}function b(t){return t.type==="Failure"&&Z(t.reason),t.value}function J(t,e){return t.type==="Success"?t.value:e}function Oe(t){try{let e=atob(t),r=Uint8Array.from(e,p=>p.codePointAt(0)),s=new TextDecoder("utf8");return f(s.decode(r))}catch(e){return x(String(e))}}function Ee(t){try{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(e,p=>p.codePointAt(0)),s=new TextDecoder("utf8");return f(s.decode(r))}catch(e){return x(String(e))}}function De(t){try{F(t!==void 0,"undefined cannot be converted to byte array"),F(t!==null,"null cannot be converted to byte array");let e=JSON.stringify(t),r=new TextEncoder;return f(r.encode(e))}catch(e){return x(String(e))}}function Be(t){try{F(t.length>0,"empty byte array cannot be converted to value");let e=new TextDecoder().decode(t),r=JSON.parse(e);return f(r)}catch(e){return x(String(e))}}var Ve=["VP8","VP9","AV1","H264"],K=class{constructor(e){this.codec=e}channels=0;clockRate=9e4;isValid(){return Ve.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let e=J(this.getMimeType(),"").toLowerCase(),r=new Set(J(this.getSdpFmtpLine(),"").split(";").map(s=>s.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(s=>{let p=s.mimeType.toLowerCase(),u=new Set((s.sdpFmtpLine??"").split(";").map(y=>y.trim().toLowerCase()));if(e!==p||r.size!==u.size)return!1;for(let y of r)if(!u.has(y))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return f(96);case"VP9":return f(98);case"AV1":return f(41);case"H264":return f(102);default:return x("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return f("video/VP8");case"VP9":return f("video/VP9");case"AV1":return f("video/AV1");case"H264":return f("video/H264");default:return x("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return f("");case"VP9":return f("profile-id=2");case"AV1":return f("level-idx=5;profile=0;tier=0");case"H264":return f("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return x("invalid video codec")}}};function Je(t,e){for(let r of t)if(e(r))return r}function He(){return typeof AudioContext<"u"&&typeof Worker<"u"}function Ge(){return typeof SharedArrayBuffer<"u"}function se(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function $e(){return/electron/i.test(globalThis.navigator.userAgent)}function qe(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function We(){return se()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function Ze(t){return JSON.parse(JSON.stringify(t))}var Y=class t{constructor(e){this._Generators=e;this._Futures=e.map(t.addIndex)}_Futures;async next(){let[e,r]=await Promise.race(this._Futures);return this._Futures[r]=t.addIndex(this._Generators[r],r),e}static async addIndex(e,r){return[await e(),r]}};function Ke(t,e){return t<=0?Promise.resolve(e):new Promise(r=>setTimeout(()=>r(e),t))}function Ye(t,e){return e.aborted?Promise.resolve("aborted"):new Promise(r=>{let s=()=>r("aborted");e.addEventListener("abort",s,{once:!0}),setTimeout(()=>{e.removeEventListener("abort",s),r(void 0)},t)})}function Qe(){return new Promise(t=>setTimeout(t,0))}var Q=class{_Tasks=[];_Running=!1;_Values;constructor(...e){this._Values=e}enqueue(e){return new Promise((r,s)=>{let p=async()=>{try{let u=await e(...this._Values);r(u)}catch(u){s(u)}};this._Tasks.push(p),this._Running||this.execute()})}async execute(){for(this._Running=!0;;){let e=this._Tasks.shift();if(e===void 0)break;await e()}this._Running=!1}};function Xe(t){let e=t.trim();t.indexOf("://")===-1&&(e=`https://${e}`);try{return f(new URL(e))}catch(r){return x(String(r))}}function et(t,e){let r=t.pathname;r.endsWith("/")===!1&&(r+="/");try{return f(new URL(r+e,t))}catch(s){return x(String(s))}}var tt=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function rt(){return crypto.randomUUID()}function nt(t){return tt.test(t)}function ot(t,e){return e in t}function it(t){return typeof t=="function"}function at(t){return typeof t=="object"&&t===null}function H(t){return typeof t=="number"}function st(t){return typeof t=="object"}function ct(t){return typeof t=="string"}function pt(t){return typeof t>"u"}function ut(t){return t.type==="Failure"}function dt(t){return t.type==="Success"}var C=(u=>(u[u.NONE=0]="NONE",u[u.ERROR=1]="ERROR",u[u.WARN=2]="WARN",u[u.INFO=3]="INFO",u[u.DEBUG=4]="DEBUG",u))(C||{}),G=Object.values(C).filter(t=>!isNaN(Number(t))),ce=Object.keys(C).filter(t=>isNaN(Number(t))),pe={0:"\u26AB",1:"\u{1F534}",2:"\u{1F7E1}",3:"\u{1F535}",4:"\u{1F7E3}"},ue={0:console.log,1:console.error,2:console.warn,3:console.info,4:console.debug};function R(t){let e=C[t];return e===void 0?x(`invalid log level name '${t}'; valid names are: ${ce.join(", ")}`):f(e)}function P(t){let e=C[t];return e===void 0?x(`invalid log level ${t}; valid levels are: ${G[0]}-${G[G.length-1]}`):f(e)}var S="default",de=new Map;function k(t=S){let e=de.get(t);return e||(e=new $("WARN",t)),e}function lt(t,...e){return t instanceof Function?k(S).error(t,...e):k(S).error(t,...e)}function mt(t,...e){return t instanceof Function?k(S).warn(t,...e):k(S).warn(t,...e)}function ft(t,...e){return t instanceof Function?k(S).info(t,...e):k(S).info(t,...e)}function gt(t,...e){return t instanceof Function?k(S).debug(t,...e):k(S).debug(t,...e)}var $=class{name;_Level;_Handlers;constructor(e,r,s){this.name=r??S,H(e)?this._Level=b(R(b(P(e)))):this._Level=b(R(e)),this._Handlers=s?.handlers||[new q(e)],de.set(this.name,this)}get level(){return this._Level}set level(e){this.levelName=b(P(e))}get levelName(){return b(P(this._Level))}set levelName(e){this._Level=b(R(e)),this._Handlers.forEach(r=>r.level=this._Level)}get handlers(){return this._Handlers}addHandler(e){this._Handlers.push(e)}removeHandler(e){let r=this._Handlers.indexOf(e);r!==-1&&this._Handlers.splice(r,1)}log(e,r,...s){if(this.level<e)return r instanceof Function?void 0:r;let p,u;return r instanceof Function?(p=r(),u=this.asString(p)):u=this.asString(r),this._Handlers.forEach(y=>{y.handle({date:new Date,level:e,levelName:b(P(e)),logger:this.name,message:u,args:s})}),r instanceof Function?p:r}error(e,...r){return this.log(1,e,...r)}warn(e,...r){return this.log(2,e,...r)}info(e,...r){return this.log(3,e,...r)}debug(e,...r){return this.log(4,e,...r)}asString(e,r=!1){return typeof e=="string"?r?`"${e}"`:e:e===null||typeof e=="number"||typeof e=="bigint"||typeof e=="boolean"||typeof e>"u"||typeof e=="symbol"?String(e):e instanceof Error?e.stack:typeof e=="object"?`{${Object.entries(e).map(([s,p])=>`"${s}":${this.asString(p,!0)}`).join(",")}}`:"undefined"}},le=({message:t})=>t,yt=t=>{let e=`[${t.date.toISOString()}]`,r=`[${t.levelName}]`,s=t.logger!==S?`[${t.logger}] `:"",p=pe[t.level];return`${e} ${p} ${r.padEnd(7," ")} ${s}${t.message}`},q=class{_Level;_FormatterFn;constructor(e,r=le){H(e)?this._Level=b(R(b(P(e)))):this._Level=b(R(e)),this._FormatterFn=r}get level(){return this._Level}set level(e){this.levelName=b(P(e))}get levelName(){return b(P(this._Level))}set levelName(e){this._Level=b(R(e))}handle(e){this._Level<e.level||this.log(this._FormatterFn(e),e)}log(e,r){ue[r.level](e,...r.args)}};var gr=-758.596,me;(r=>{let t;(u=>(u.H3="h3",u.WebRTC="webrtc"))(t=r.Transport||={});let e;(z=>(z[z.InvalidPassword=-1]="InvalidPassword",z[z.Unknown=0]="Unknown",z[z.Unencrypted=1]="Unencrypted",z[z.Encrypted=2]="Encrypted"))(e=r.PeerCipherStatus||={})})(me||={});0&&(module.exports={Backend,ByteArraySchema,ChannelSet,ChannelSetSchema,DEFAULT_FORMATTER,JsonSchema,LogFunctions,LogHandler,LogLevelNames,LogLevels,LogSymbols,LogVerbosity,Logger,MainCommandsRpc,MainNotificationSchema,MainNotificationsRpc,MediaAudioPropertiesSchema,MediaIdSchema,MediaPropertiesSchema,MediaSchema,MediaVideoPropertiesSchema,MessagePackRpcSchema,MessageReceivedSchema,MinDBFS,PRETTY_FORMATTER,PeerIdSchema,PeerPositionSchema,PeerSchema,PeerUpdateSchema,RoomCommandsRpc,RoomNotificationSchema,RoomNotificationsRpc,RoomV1,RoomV2,Selector,Strand,TokenAudienceSchema,TokenClaimsSchema,TokenSubjectSchema,VideoCodec,WebRtcUpdateSchema,abortableSleep,assert,debug,error,extendUrl,fail,failure,find,fromBase64,fromBase64Url,fromBytes,generateUUID,getLevelByName,getLevelName,getLogger,info,isAudioCapable,isBlinkBrowser,isElectronBrowser,isFailure,isFirefoxBrowser,isFunction,isNull,isNumber,isObject,isProperty,isSafariBrowser,isSharedArrayBufferCapable,isString,isSuccess,isUndefined,nextTick,normalizeUrl,oneOrMany,sleep,success,toBytes,toRaw,unwrap,unwrapOr,validateUUID,warn,zod});
|
|
1
|
+
var Se=Object.create;var N=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var ke=Object.getOwnPropertyNames;var Le=Object.getPrototypeOf,Pe=Object.prototype.hasOwnProperty;var we=(t,e)=>{for(var r in e)N(t,r,{get:e[r],enumerable:!0})},X=(t,e,r,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let p of ke(e))!Pe.call(t,p)&&p!==r&&N(t,p,{get:()=>e[p],enumerable:!(s=ze(e,p))||s.enumerable});return t};var w=(t,e,r)=>(r=t!=null?Se(Le(t)):{},X(e||!t||!t.__esModule?N(r,"default",{value:t,enumerable:!0}):r,t)),Re=t=>X(N({},"__esModule",{value:!0}),t);var xt={};we(xt,{Backend:()=>me,ByteArraySchema:()=>g,ChannelSet:()=>B,ChannelSetSchema:()=>W,DEFAULT_FORMATTER:()=>le,JsonSchema:()=>A,LogFunctions:()=>ue,LogHandler:()=>q,LogLevelNames:()=>ce,LogLevels:()=>G,LogSymbols:()=>pe,LogVerbosity:()=>C,Logger:()=>$,MainCommandsRpc:()=>je,MainNotificationSchema:()=>Fe,MainNotificationsRpc:()=>Ne,MediaAudioPropertiesSchema:()=>re,MediaIdSchema:()=>T,MediaPropertiesSchema:()=>U,MediaSchema:()=>I,MediaVideoPropertiesSchema:()=>ne,MessagePackRpcSchema:()=>Ce,MessageReceivedSchema:()=>V,MinDBFS:()=>gr,PRETTY_FORMATTER:()=>yt,PeerIdSchema:()=>v,PeerPositionSchema:()=>M,PeerSchema:()=>O,PeerUpdateSchema:()=>E,RoomCommandsRpc:()=>Me,RoomNotificationSchema:()=>Ue,RoomNotificationsRpc:()=>Ie,RoomV1:()=>k,RoomV2:()=>ie,Selector:()=>Y,Strand:()=>Q,TokenAudienceSchema:()=>ee,TokenClaimsSchema:()=>Ae,TokenSubjectSchema:()=>te,VideoCodec:()=>K,WebRtcUpdateSchema:()=>_,abortableSleep:()=>Ye,assert:()=>F,debug:()=>gt,error:()=>lt,extendUrl:()=>et,fail:()=>Z,failure:()=>x,find:()=>Je,fromBase64:()=>Oe,fromBase64Url:()=>Ee,fromBytes:()=>Be,generateUUID:()=>rt,getLevelByName:()=>R,getLevelName:()=>P,getLogger:()=>L,info:()=>ft,isAudioCapable:()=>He,isBlinkBrowser:()=>se,isElectronBrowser:()=>$e,isFailure:()=>ut,isFirefoxBrowser:()=>qe,isFunction:()=>it,isNull:()=>at,isNumber:()=>H,isObject:()=>st,isProperty:()=>ot,isSafariBrowser:()=>We,isSharedArrayBufferCapable:()=>Ge,isString:()=>ct,isSuccess:()=>dt,isUndefined:()=>pt,nextTick:()=>Qe,normalizeUrl:()=>Xe,oneOrMany:()=>j,sleep:()=>Ke,success:()=>f,toBytes:()=>De,toRaw:()=>Ze,unwrap:()=>b,unwrapOr:()=>J,validateUUID:()=>nt,warn:()=>mt,zod:()=>bt});module.exports=Re(xt);var bt=w(require("zod"));var d=require("zod"),g=d.z.custom(t=>t instanceof Uint8Array),_e=d.z.union([d.z.string(),d.z.number(),d.z.boolean(),d.z.null()]),A=d.z.lazy(()=>d.z.union([_e,d.z.array(A),d.z.record(A)])),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"),ee=c.z.enum(["sfu","gateway"]),te=c.z.enum(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),Ae=c.z.object({uid:c.z.string(),cid:c.z.optional(c.z.string()),rid:j(c.z.string()).refine(t=>t.length>=1,{message:"missing rid"}),nsp:c.z.optional(c.z.string()),adr:c.z.optional(c.z.string()),aud:c.z.optional(j(ee)),sub:c.z.optional(j(te)),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(j(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 j(t){return c.z.union([t.transform(e=>[e]),c.z.array(t)])}var n=w(require("zod"));var l=w(require("zod")),T=l.number(),re=l.object({kind:l.optional(l.literal("audio")),uid:l.optional(l.string()),customType:l.optional(l.string())}),ne=l.object({kind:l.optional(l.literal("video")),codec:l.optional(l.string()),uid:l.optional(l.string()),customType:l.optional(l.string())}),U=l.union([re,ne]),I=l.object({id:T,properties:U,paused:l.boolean()});var m=w(require("zod"));var v=m.number(),M=m.union([m.tuple([m.number(),m.number(),m.number()]),m.tuple([m.number(),m.number()])]),O=m.object({id:v,user_id:m.string(),user_data:g,medias:m.array(I)}),E=m.discriminatedUnion("kind",[m.object({kind:m.literal("UserDataChanged"),peer_id:v,user_data:g}),m.object({kind:m.literal("MediaStarted"),peer_id:v,media:I}),m.object({kind:m.literal("MediaStopped"),peer_id:v,media_id:T})]);var oe=w(require("zod")),B=class t{constructor(e=BigInt(0)){this.value=e}from(...e){let r=e.reduce((s,p)=>s|D(p),BigInt(0));return new t(r)}contains(e){return(this.value&D(e))!==BigInt(0)}insert(e){this.value|=D(e)}remove(e){this.value&=~D(e)}[Symbol.iterator](){let e=-1,r=new t(this.value);return{next(){for(;e<63;)if(e+=1,r.contains(e))return{value:e,done:!1};return{value:void 0,done:!0}}}}},W=oe.bigint().transform(t=>new B(t));function D(t){return BigInt(1)<<BigInt(t)}var k;(y=>(y.RoomIdSchema=n.string(),y.RoomSchema=n.object({id:y.RoomIdSchema,customer:n.string(),user_data:g,peers:n.array(O)}),y.RoomUpdateSchema=n.discriminatedUnion("kind",[n.object({kind:n.literal("Joined"),room:y.RoomSchema,media_ids:n.array(T),own_peer_id:v}),n.object({kind:n.literal("Left"),reason:n.enum(["RoomClosing","ServerClosing","PeerKicked"])}),n.object({kind:n.literal("UserDataChanged"),user_data:n.optional(g)}),n.object({kind:n.literal("PeerJoined"),peer:O}),n.object({kind:n.literal("PeerLeft"),peer_id:v})]),y.RoomUpdatesSchema=n.object({updates:n.array(y.RoomUpdateSchema)}),y.RoomStatusSchema=n.enum(["Joining","Joined","Closed"]),y.RoomStatusChangedSchema=n.object({status:y.RoomStatusSchema,message:n.optional(n.string())})))(k||={});var ie;(i=>(i.ParametersSchema=n.record(A),i.PeerProperties=n.object({user_data:g.optional(),tags:n.array(n.string()).optional(),audio_parameters:i.ParametersSchema.optional(),video_parameters:i.ParametersSchema.optional()}),i.PingSchema=n.object({Ping:n.object({id:n.number()})}),i.ChangeSelfSchema=n.object({ChangeSelf:i.PeerProperties.omit({tags:!0})}),i.SetAudioMaskSchema=n.object({SetAudioMask:n.object({peer_id:n.number(),mask:W})}),i.SendMessageSchema=n.object({SendMessage:n.object({peer_ids:n.number().array().default([]),message:g})}),i.CallSchema=i.PingSchema.or(i.ChangeSelfSchema).or(i.SetAudioMaskSchema).or(i.SendMessageSchema),i.PongSchema=n.object({Pong:n.object({id:n.number()})}),i.JoinedSchema=n.object({Joined:n.object({own_peer_id:n.number(),room_id:n.string(),customer:n.string()})}),i.LeftSchema=n.object({Left:n.object({reason:n.enum(["room_closing","server_closing","peer_kicked"])})}),i.PeerJoinedSchema=n.object({PeerJoined:i.PeerProperties.extend({peer_id:n.number(),user_id:n.string()})}),i.PeerLeftSchema=n.object({PeerLeft:n.object({peer_id:n.number()})}),i.PeerChangedSchema=n.object({PeerChanged:i.PeerProperties.extend({peer_id:n.number()})}),i.NewReconnectTokenSchema=n.object({NewReconnectToken:n.object({token:n.string()})}),i.MessageReceivedSchema=n.object({MessageReceived:n.object({sender_peer_id:n.number(),message:g})}),i.ErrorSchema=n.object({Error:n.object({message:g})}),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)))(ie||={});var ae=require("zod");var V=ae.z.object({sender_peer_id:v,message:g});var a=w(require("zod"));var _=a.discriminatedUnion("kind",[a.object({kind:a.literal("Sdp"),type:a.enum(["Answer","Offer"]),sdp:a.string(),media_map:a.array(a.tuple([T,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:k.RoomIdSchema,user_data:g,position:M}),response:o.z.object({peer_id:v,stream_id:o.z.optional(o.z.number()),token:o.z.optional(o.z.string())})},WebRtcUpdate:{request:_,response:o.z.null()},RequestReconnectToken:{request:o.z.object({peer_id:o.z.optional(v)}),response:o.z.string()},Ping:{request:o.z.object({}),response:o.z.null()}},Me={Hello:{request:o.z.object({stream:o.z.literal("room"),token:o.z.string(),room_id:o.z.string(),user_data:g,position:M}),response:o.z.null()},UpdatePeer:{request:o.z.object({user_data:g}),response:o.z.null()},StartMedia:{request:o.z.object({media_id:T,properties:U}),response:o.z.null()},StopMedia:{request:o.z.object({media_id:T}),response:o.z.null()},PauseMedia:{request:o.z.object({media_id:T}),response:o.z.null()},ResumeMedia:{request:o.z.object({media_id:T}),response:o.z.null()},SetPeerPosition:{request:o.z.object({position:M}),response:o.z.null()},SendMessage:{request:o.z.object({target_peer_ids:o.z.optional(o.z.array(v)),message:g}),response:o.z.null()}};var h=w(require("zod"));var Fe=h.object({name:h.literal("WebRtcUpdate"),properties:_}),Ne={WebRtcUpdate:_},Ue=h.union([h.object({name:h.literal("RoomStatusChanged"),properties:k.RoomStatusChangedSchema}),h.object({name:h.literal("RoomUpdated"),properties:k.RoomUpdatesSchema}),h.object({name:h.literal("PeerUpdated"),properties:E}),h.object({name:h.literal("MessageReceived"),properties:V})]),Ie={RoomStatusChanged:k.RoomStatusChangedSchema,RoomUpdated:k.RoomUpdatesSchema,PeerUpdated:E,MessageReceived:V};function F(t,e){t||Z(e)}function Z(t){throw new Error(t)}function f(t){return{type:"Success",value:t}}function x(t){return{type:"Failure",reason:t}}function b(t){return t.type==="Failure"&&Z(t.reason),t.value}function J(t,e){return t.type==="Success"?t.value:e}function Oe(t){try{let e=atob(t),r=Uint8Array.from(e,p=>p.codePointAt(0)),s=new TextDecoder("utf8");return f(s.decode(r))}catch(e){return x(String(e))}}function Ee(t){try{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(e,p=>p.codePointAt(0)),s=new TextDecoder("utf8");return f(s.decode(r))}catch(e){return x(String(e))}}function De(t){try{F(t!==void 0,"undefined cannot be converted to byte array"),F(t!==null,"null cannot be converted to byte array");let e=JSON.stringify(t),r=new TextEncoder;return f(r.encode(e))}catch(e){return x(String(e))}}function Be(t){try{F(t.length>0,"empty byte array cannot be converted to value");let e=new TextDecoder().decode(t),r=JSON.parse(e);return f(r)}catch(e){return x(String(e))}}var Ve=["VP8","VP9","AV1","H264"],K=class{constructor(e){this.codec=e}channels=0;clockRate=9e4;isValid(){return Ve.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let e=J(this.getMimeType(),"").toLowerCase(),r=new Set(J(this.getSdpFmtpLine(),"").split(";").map(s=>s.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(s=>{let p=s.mimeType.toLowerCase(),u=new Set((s.sdpFmtpLine??"").split(";").map(y=>y.trim().toLowerCase()));if(e!==p||r.size!==u.size)return!1;for(let y of r)if(!u.has(y))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return f(96);case"VP9":return f(98);case"AV1":return f(41);case"H264":return f(102);default:return x("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return f("video/VP8");case"VP9":return f("video/VP9");case"AV1":return f("video/AV1");case"H264":return f("video/H264");default:return x("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return f("");case"VP9":return f("profile-id=2");case"AV1":return f("level-idx=5;profile=0;tier=0");case"H264":return f("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return x("invalid video codec")}}};function Je(t,e){for(let r of t)if(e(r))return r}function He(){return typeof AudioContext<"u"&&typeof Worker<"u"}function Ge(){return typeof SharedArrayBuffer<"u"}function se(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function $e(){return/electron/i.test(globalThis.navigator.userAgent)}function qe(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function We(){return se()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function Ze(t){return JSON.parse(JSON.stringify(t))}var Y=class t{constructor(e){this._Generators=e;this._Futures=e.map(t.addIndex)}_Futures;async next(){let[e,r]=await Promise.race(this._Futures);return this._Futures[r]=t.addIndex(this._Generators[r],r),e}static async addIndex(e,r){return[await e(),r]}};function Ke(t,e){return t<=0?Promise.resolve(e):new Promise(r=>setTimeout(()=>r(e),t))}function Ye(t,e){return e.aborted?Promise.resolve("aborted"):new Promise(r=>{let s=()=>r("aborted");e.addEventListener("abort",s,{once:!0}),setTimeout(()=>{e.removeEventListener("abort",s),r(void 0)},t)})}function Qe(){return new Promise(t=>setTimeout(t,0))}var Q=class{_Tasks=[];_Running=!1;_Values;constructor(...e){this._Values=e}enqueue(e){return new Promise((r,s)=>{let p=async()=>{try{let u=await e(...this._Values);r(u)}catch(u){s(u)}};this._Tasks.push(p),this._Running||this.execute()})}async execute(){for(this._Running=!0;;){let e=this._Tasks.shift();if(e===void 0)break;await e()}this._Running=!1}};function Xe(t){let e=t.trim();t.indexOf("://")===-1&&(e=`https://${e}`);try{return f(new URL(e))}catch(r){return x(String(r))}}function et(t,e){let r=t.pathname;r.endsWith("/")===!1&&(r+="/");try{return f(new URL(r+e,t))}catch(s){return x(String(s))}}var tt=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function rt(){return crypto.randomUUID()}function nt(t){return tt.test(t)}function ot(t,e){return e in t}function it(t){return typeof t=="function"}function at(t){return typeof t=="object"&&t===null}function H(t){return typeof t=="number"}function st(t){return typeof t=="object"}function ct(t){return typeof t=="string"}function pt(t){return typeof t>"u"}function ut(t){return t.type==="Failure"}function dt(t){return t.type==="Success"}var C=(u=>(u[u.NONE=0]="NONE",u[u.ERROR=1]="ERROR",u[u.WARN=2]="WARN",u[u.INFO=3]="INFO",u[u.DEBUG=4]="DEBUG",u))(C||{}),G=Object.values(C).filter(t=>!isNaN(Number(t))),ce=Object.keys(C).filter(t=>isNaN(Number(t))),pe={0:"\u26AB",1:"\u{1F534}",2:"\u{1F7E1}",3:"\u{1F535}",4:"\u{1F7E3}"},ue={0:console.log,1:console.error,2:console.warn,3:console.info,4:console.debug};function R(t){let e=C[t];return e===void 0?x(`invalid log level name '${t}'; valid names are: ${ce.join(", ")}`):f(e)}function P(t){let e=C[t];return e===void 0?x(`invalid log level ${t}; valid levels are: ${G[0]}-${G[G.length-1]}`):f(e)}var S="default",de=new Map;function L(t=S){let e=de.get(t);return e||(e=new $("WARN",t)),e}function lt(t,...e){return t instanceof Function?L(S).error(t,...e):L(S).error(t,...e)}function mt(t,...e){return t instanceof Function?L(S).warn(t,...e):L(S).warn(t,...e)}function ft(t,...e){return t instanceof Function?L(S).info(t,...e):L(S).info(t,...e)}function gt(t,...e){return t instanceof Function?L(S).debug(t,...e):L(S).debug(t,...e)}var $=class{name;_Level;_Handlers;constructor(e,r,s){this.name=r??S,H(e)?this._Level=b(R(b(P(e)))):this._Level=b(R(e)),this._Handlers=s?.handlers||[new q(e)],de.set(this.name,this)}get level(){return this._Level}set level(e){this.levelName=b(P(e))}get levelName(){return b(P(this._Level))}set levelName(e){this._Level=b(R(e)),this._Handlers.forEach(r=>r.level=this._Level)}get handlers(){return this._Handlers}addHandler(e){this._Handlers.push(e)}removeHandler(e){let r=this._Handlers.indexOf(e);r!==-1&&this._Handlers.splice(r,1)}log(e,r,...s){if(this.level<e)return r instanceof Function?void 0:r;let p,u;return r instanceof Function?(p=r(),u=this.asString(p)):u=this.asString(r),this._Handlers.forEach(y=>{y.handle({date:new Date,level:e,levelName:b(P(e)),logger:this.name,message:u,args:s})}),r instanceof Function?p:r}error(e,...r){return this.log(1,e,...r)}warn(e,...r){return this.log(2,e,...r)}info(e,...r){return this.log(3,e,...r)}debug(e,...r){return this.log(4,e,...r)}asString(e,r=!1){return typeof e=="string"?r?`"${e}"`:e:e===null||typeof e=="number"||typeof e=="bigint"||typeof e=="boolean"||typeof e>"u"||typeof e=="symbol"?String(e):e instanceof Error?e.stack:typeof e=="object"?`{${Object.entries(e).map(([s,p])=>`"${s}":${this.asString(p,!0)}`).join(",")}}`:"undefined"}},le=({message:t})=>t,yt=t=>{let e=`[${t.date.toISOString()}]`,r=`[${t.levelName}]`,s=t.logger!==S?`[${t.logger}] `:"",p=pe[t.level];return`${e} ${p} ${r.padEnd(7," ")} ${s}${t.message}`},q=class{_Level;_FormatterFn;constructor(e,r=le){H(e)?this._Level=b(R(b(P(e)))):this._Level=b(R(e)),this._FormatterFn=r}get level(){return this._Level}set level(e){this.levelName=b(P(e))}get levelName(){return b(P(this._Level))}set levelName(e){this._Level=b(R(e))}handle(e){this._Level<e.level||this.log(this._FormatterFn(e),e)}log(e,r){ue[r.level](e,...r.args)}};var gr=-758.596,me;(r=>{let t;(u=>(u.H3="h3",u.WebRTC="webrtc"))(t=r.Transport||={});let e;(z=>(z[z.InvalidPassword=-1]="InvalidPassword",z[z.Unknown=0]="Unknown",z[z.Unencrypted=1]="Unencrypted",z[z.Encrypted=2]="Encrypted"))(e=r.PeerCipherStatus||={})})(me||={});0&&(module.exports={Backend,ByteArraySchema,ChannelSet,ChannelSetSchema,DEFAULT_FORMATTER,JsonSchema,LogFunctions,LogHandler,LogLevelNames,LogLevels,LogSymbols,LogVerbosity,Logger,MainCommandsRpc,MainNotificationSchema,MainNotificationsRpc,MediaAudioPropertiesSchema,MediaIdSchema,MediaPropertiesSchema,MediaSchema,MediaVideoPropertiesSchema,MessagePackRpcSchema,MessageReceivedSchema,MinDBFS,PRETTY_FORMATTER,PeerIdSchema,PeerPositionSchema,PeerSchema,PeerUpdateSchema,RoomCommandsRpc,RoomNotificationSchema,RoomNotificationsRpc,RoomV1,RoomV2,Selector,Strand,TokenAudienceSchema,TokenClaimsSchema,TokenSubjectSchema,VideoCodec,WebRtcUpdateSchema,abortableSleep,assert,debug,error,extendUrl,fail,failure,find,fromBase64,fromBase64Url,fromBytes,generateUUID,getLevelByName,getLevelName,getLogger,info,isAudioCapable,isBlinkBrowser,isElectronBrowser,isFailure,isFirefoxBrowser,isFunction,isNull,isNumber,isObject,isProperty,isSafariBrowser,isSharedArrayBufferCapable,isString,isSuccess,isUndefined,nextTick,normalizeUrl,oneOrMany,sleep,success,toBytes,toRaw,unwrap,unwrapOr,validateUUID,warn,zod});
|
package/mod.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as pr from"zod";import{z as l}from"zod";var y=l.custom(t=>t instanceof Uint8Array),se=l.union([l.string(),l.number(),l.boolean(),l.null()]),C=l.lazy(()=>l.union([se,l.array(C),l.record(C)])),Le=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 s}from"zod";var ce=s.enum(["sfu","gateway"]),pe=s.enum(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),we=s.object({uid:s.string(),cid:s.optional(s.string()),rid:A(s.string()).refine(t=>t.length>=1,{message:"missing rid"}),nsp:s.optional(s.string()),adr:s.optional(s.string()),aud:s.optional(A(ce)),sub:s.optional(A(pe)),exp:s.optional(s.number()),nbf:s.optional(s.number()),ups:s.optional(s.string()),tgs:s.optional(A(s.string())),tsp:s.optional(s.number()),internal:s.optional(s.object({server:s.optional(s.string())}))});function A(t){return s.union([t.transform(e=>[e]),s.array(t)])}import*as n from"zod";import*as u from"zod";var T=u.number(),ue=u.object({kind:u.optional(u.literal("audio")),uid:u.optional(u.string()),customType:u.optional(u.string())}),de=u.object({kind:u.optional(u.literal("video")),codec:u.optional(u.string()),uid:u.optional(u.string()),customType:u.optional(u.string())}),N=u.union([ue,de]),U=u.object({id:T,properties:N,paused:u.boolean()});import*as d from"zod";var h=d.number(),j=d.union([d.tuple([d.number(),d.number(),d.number()]),d.tuple([d.number(),d.number()])]),I=d.object({id:h,user_id:d.string(),user_data:y,medias:d.array(U)}),O=d.discriminatedUnion("kind",[d.object({kind:d.literal("UserDataChanged"),peer_id:h,user_data:y}),d.object({kind:d.literal("MediaStarted"),peer_id:h,media:U}),d.object({kind:d.literal("MediaStopped"),peer_id:h,media_id:T})]);import*as $ from"zod";var E=class t{constructor(e=BigInt(0)){this.value=e}from(...e){let r=e.reduce((c,f)=>c|M(f),BigInt(0));return new t(r)}contains(e){return(this.value&M(e))!==BigInt(0)}insert(e){this.value|=M(e)}remove(e){this.value&=~M(e)}[Symbol.iterator](){let e=-1,r=new t(this.value);return{next(){for(;e<63;)if(e+=1,r.contains(e))return{value:e,done:!1};return{value:void 0,done:!0}}}}},q=$.bigint().transform(t=>new E(t));function M(t){return BigInt(1)<<BigInt(t)}var L;(g=>(g.RoomIdSchema=n.string(),g.RoomSchema=n.object({id:g.RoomIdSchema,customer:n.string(),user_data:y,peers:n.array(I)}),g.RoomUpdateSchema=n.discriminatedUnion("kind",[n.object({kind:n.literal("Joined"),room:g.RoomSchema,media_ids:n.array(T),own_peer_id:h}),n.object({kind:n.literal("Left"),reason:n.enum(["RoomClosing","ServerClosing","PeerKicked"])}),n.object({kind:n.literal("UserDataChanged"),user_data:n.optional(y)}),n.object({kind:n.literal("PeerJoined"),peer:I}),n.object({kind:n.literal("PeerLeft"),peer_id:h})]),g.RoomUpdatesSchema=n.object({updates:n.array(g.RoomUpdateSchema)}),g.RoomStatusSchema=n.enum(["Joining","Joined","Closed"]),g.RoomStatusChangedSchema=n.object({status:g.RoomStatusSchema,message:n.optional(n.string())})))(L||={});var le;(i=>(i.ParametersSchema=n.record(C),i.PeerProperties=n.object({user_data:y.optional(),tags:n.array(n.string()).optional(),audio_parameters:i.ParametersSchema.optional(),video_parameters:i.ParametersSchema.optional()}),i.PingSchema=n.object({Ping:n.object({id:n.number()})}),i.ChangeSelfSchema=n.object({ChangeSelf:i.PeerProperties.omit({tags:!0})}),i.SetAudioMaskSchema=n.object({SetAudioMask:n.object({peer_id:n.number(),mask:q})}),i.SendMessageSchema=n.object({SendMessage:n.object({peer_ids:n.number().array().default([]),message:y})}),i.CallSchema=i.PingSchema.or(i.ChangeSelfSchema).or(i.SetAudioMaskSchema).or(i.SendMessageSchema),i.PongSchema=n.object({Pong:n.object({id:n.number()})}),i.JoinedSchema=n.object({Joined:n.object({own_peer_id:n.number(),room_id:n.string(),customer:n.string()})}),i.LeftSchema=n.object({Left:n.object({reason:n.enum(["room_closing","server_closing","peer_kicked"])})}),i.PeerJoinedSchema=n.object({PeerJoined:i.PeerProperties.extend({peer_id:n.number(),user_id:n.string()})}),i.PeerLeftSchema=n.object({PeerLeft:n.object({peer_id:n.number()})}),i.PeerChangedSchema=n.object({PeerChanged:i.PeerProperties.extend({peer_id:n.number()})}),i.NewReconnectTokenSchema=n.object({NewReconnectToken:n.object({token:n.string()})}),i.MessageReceivedSchema=n.object({MessageReceived:n.object({sender_peer_id:n.number(),message:y})}),i.ErrorSchema=n.object({Error:n.object({message:y})}),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)))(le||={});import{z as me}from"zod";var D=me.object({sender_peer_id:h,message:y});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([T,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 Ye={Hello:{request:o.object({stream:o.literal("main")}),response:o.null()},JoinRoom:{request:o.object({token:o.string(),room_id:L.RoomIdSchema,user_data:y,position:j}),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()}},Qe={Hello:{request:o.object({stream:o.literal("room"),token:o.string(),room_id:o.string(),user_data:y,position:j}),response:o.null()},UpdatePeer:{request:o.object({user_data:y}),response:o.null()},StartMedia:{request:o.object({media_id:T,properties:N}),response:o.null()},StopMedia:{request:o.object({media_id:T}),response:o.null()},PauseMedia:{request:o.object({media_id:T}),response:o.null()},ResumeMedia:{request:o.object({media_id:T}),response:o.null()},SetPeerPosition:{request:o.object({position:j}),response:o.null()},SendMessage:{request:o.object({target_peer_ids:o.optional(o.array(h)),message:y}),response:o.null()}};import*as b from"zod";var ot=b.object({name:b.literal("WebRtcUpdate"),properties:R}),it={WebRtcUpdate:R},at=b.union([b.object({name:b.literal("RoomStatusChanged"),properties:L.RoomStatusChangedSchema}),b.object({name:b.literal("RoomUpdated"),properties:L.RoomUpdatesSchema}),b.object({name:b.literal("PeerUpdated"),properties:O}),b.object({name:b.literal("MessageReceived"),properties:D})]),st={RoomStatusChanged:L.RoomStatusChangedSchema,RoomUpdated:L.RoomUpdatesSchema,PeerUpdated:O,MessageReceived:D};function F(t,e){t||W(e)}function W(t){throw new Error(t)}function m(t){return{type:"Success",value:t}}function x(t){return{type:"Failure",reason:t}}function v(t){return t.type==="Failure"&&W(t.reason),t.value}function B(t,e){return t.type==="Success"?t.value:e}function dt(t){try{let e=atob(t),r=Uint8Array.from(e,f=>f.codePointAt(0)),c=new TextDecoder("utf8");return m(c.decode(r))}catch(e){return x(String(e))}}function lt(t){try{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(e,f=>f.codePointAt(0)),c=new TextDecoder("utf8");return m(c.decode(r))}catch(e){return x(String(e))}}function gt(t){try{F(t!==void 0,"undefined cannot be converted to byte array"),F(t!==null,"null cannot be converted to byte array");let e=JSON.stringify(t),r=new TextEncoder;return m(r.encode(e))}catch(e){return x(String(e))}}function yt(t){try{F(t.length>0,"empty byte array cannot be converted to value");let e=new TextDecoder().decode(t),r=JSON.parse(e);return m(r)}catch(e){return x(String(e))}}var fe=["VP8","VP9","AV1","H264"],Z=class{constructor(e){this.codec=e}channels=0;clockRate=9e4;isValid(){return fe.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let e=B(this.getMimeType(),"").toLowerCase(),r=new Set(B(this.getSdpFmtpLine(),"").split(";").map(c=>c.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(c=>{let f=c.mimeType.toLowerCase(),p=new Set((c.sdpFmtpLine??"").split(";").map(g=>g.trim().toLowerCase()));if(e!==f||r.size!==p.size)return!1;for(let g of r)if(!p.has(g))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return m(96);case"VP9":return m(98);case"AV1":return m(41);case"H264":return m(102);default:return x("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return m("video/VP8");case"VP9":return m("video/VP9");case"AV1":return m("video/AV1");case"H264":return m("video/H264");default:return x("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return m("");case"VP9":return m("profile-id=2");case"AV1":return m("level-idx=5;profile=0;tier=0");case"H264":return m("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return x("invalid video codec")}}};function ht(t,e){for(let r of t)if(e(r))return r}function St(){return typeof AudioContext<"u"&&typeof Worker<"u"}function zt(){return typeof SharedArrayBuffer<"u"}function ge(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function Lt(){return/electron/i.test(globalThis.navigator.userAgent)}function kt(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function Pt(){return ge()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function Rt(t){return JSON.parse(JSON.stringify(t))}var K=class t{constructor(e){this._Generators=e;this._Futures=e.map(t.addIndex)}_Futures;async next(){let[e,r]=await Promise.race(this._Futures);return this._Futures[r]=t.addIndex(this._Generators[r],r),e}static async addIndex(e,r){return[await e(),r]}};function At(t,e){return t<=0?Promise.resolve(e):new Promise(r=>setTimeout(()=>r(e),t))}function jt(t,e){return e.aborted?Promise.resolve("aborted"):new Promise(r=>{let c=()=>r("aborted");e.addEventListener("abort",c,{once:!0}),setTimeout(()=>{e.removeEventListener("abort",c),r(void 0)},t)})}function Mt(){return new Promise(t=>setTimeout(t,0))}var Y=class{_Tasks=[];_Running=!1;_Values;constructor(...e){this._Values=e}enqueue(e){return new Promise((r,c)=>{let f=async()=>{try{let p=await e(...this._Values);r(p)}catch(p){c(p)}};this._Tasks.push(f),this._Running||this.execute()})}async execute(){for(this._Running=!0;;){let e=this._Tasks.shift();if(e===void 0)break;await e()}this._Running=!1}};function It(t){let e=t.trim();t.indexOf("://")===-1&&(e=`https://${e}`);try{return m(new URL(e))}catch(r){return x(String(r))}}function Ot(t,e){let r=t.pathname;r.endsWith("/")===!1&&(r+="/");try{return m(new URL(r+e,t))}catch(c){return x(String(c))}}var ye=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Dt(){return crypto.randomUUID()}function Bt(t){return ye.test(t)}function Jt(t,e){return e in t}function Ht(t){return typeof t=="function"}function Gt(t){return typeof t=="object"&&t===null}function V(t){return typeof t=="number"}function $t(t){return typeof t=="object"}function qt(t){return typeof t=="string"}function Wt(t){return typeof t>"u"}function Zt(t){return t.type==="Failure"}function Kt(t){return t.type==="Success"}var _=(p=>(p[p.NONE=0]="NONE",p[p.ERROR=1]="ERROR",p[p.WARN=2]="WARN",p[p.INFO=3]="INFO",p[p.DEBUG=4]="DEBUG",p))(_||{}),J=Object.values(_).filter(t=>!isNaN(Number(t))),xe=Object.keys(_).filter(t=>isNaN(Number(t))),be={0:"\u26AB",1:"\u{1F534}",2:"\u{1F7E1}",3:"\u{1F535}",4:"\u{1F7E3}"},ve={0:console.log,1:console.error,2:console.warn,3:console.info,4:console.debug};function w(t){let e=_[t];return e===void 0?x(`invalid log level name '${t}'; valid names are: ${xe.join(", ")}`):m(e)}function P(t){let e=_[t];return e===void 0?x(`invalid log level ${t}; valid levels are: ${J[0]}-${J[J.length-1]}`):m(e)}var S="default",Q=new Map;function k(t=S){let e=Q.get(t);return e||(e=new H("WARN",t)),e}function er(t,...e){return t instanceof Function?k(S).error(t,...e):k(S).error(t,...e)}function tr(t,...e){return t instanceof Function?k(S).warn(t,...e):k(S).warn(t,...e)}function rr(t,...e){return t instanceof Function?k(S).info(t,...e):k(S).info(t,...e)}function nr(t,...e){return t instanceof Function?k(S).debug(t,...e):k(S).debug(t,...e)}var H=class{name;_Level;_Handlers;constructor(e,r,c){this.name=r??S,V(e)?this._Level=v(w(v(P(e)))):this._Level=v(w(e)),this._Handlers=c?.handlers||[new G(e)],Q.set(this.name,this)}get level(){return this._Level}set level(e){this.levelName=v(P(e))}get levelName(){return v(P(this._Level))}set levelName(e){this._Level=v(w(e)),this._Handlers.forEach(r=>r.level=this._Level)}get handlers(){return this._Handlers}addHandler(e){this._Handlers.push(e)}removeHandler(e){let r=this._Handlers.indexOf(e);r!==-1&&this._Handlers.splice(r,1)}log(e,r,...c){if(this.level<e)return r instanceof Function?void 0:r;let f,p;return r instanceof Function?(f=r(),p=this.asString(f)):p=this.asString(r),this._Handlers.forEach(g=>{g.handle({date:new Date,level:e,levelName:v(P(e)),logger:this.name,message:p,args:c})}),r instanceof Function?f:r}error(e,...r){return this.log(1,e,...r)}warn(e,...r){return this.log(2,e,...r)}info(e,...r){return this.log(3,e,...r)}debug(e,...r){return this.log(4,e,...r)}asString(e,r=!1){return typeof e=="string"?r?`"${e}"`:e:e===null||typeof e=="number"||typeof e=="bigint"||typeof e=="boolean"||typeof e>"u"||typeof e=="symbol"?String(e):e instanceof Error?e.stack:typeof e=="object"?`{${Object.entries(e).map(([c,f])=>`"${c}":${this.asString(f,!0)}`).join(",")}}`:"undefined"}},he=({message:t})=>t,or=t=>{let e=`[${t.date.toISOString()}]`,r=`[${t.levelName}]`,c=t.logger!==S?`[${t.logger}] `:"",f=be[t.level];return`${e} ${f} ${r.padEnd(7," ")} ${c}${t.message}`},G=class{_Level;_FormatterFn;constructor(e,r=he){V(e)?this._Level=v(w(v(P(e)))):this._Level=v(w(e)),this._FormatterFn=r}get level(){return this._Level}set level(e){this.levelName=v(P(e))}get levelName(){return v(P(this._Level))}set levelName(e){this._Level=v(w(e))}handle(e){this._Level<e.level||this.log(this._FormatterFn(e),e)}log(e,r){ve[r.level](e,...r.args)}};var ar=-758.596,Te;(r=>{let t;(p=>(p.H3="h3",p.WebRTC="webrtc"))(t=r.Transport||={});let e;(z=>(z[z.InvalidPassword=-1]="InvalidPassword",z[z.Unknown=0]="Unknown",z[z.Unencrypted=1]="Unencrypted",z[z.Encrypted=2]="Encrypted"))(e=r.PeerCipherStatus||={})})(Te||={});export{Te as Backend,y as ByteArraySchema,E as ChannelSet,q as ChannelSetSchema,he as DEFAULT_FORMATTER,C as JsonSchema,ve as LogFunctions,G as LogHandler,xe as LogLevelNames,J as LogLevels,be as LogSymbols,_ as LogVerbosity,H as Logger,Ye as MainCommandsRpc,ot as MainNotificationSchema,it as MainNotificationsRpc,ue as MediaAudioPropertiesSchema,T as MediaIdSchema,N as MediaPropertiesSchema,U as MediaSchema,de as MediaVideoPropertiesSchema,Le as MessagePackRpcSchema,D as MessageReceivedSchema,ar as MinDBFS,or as PRETTY_FORMATTER,h as PeerIdSchema,j as PeerPositionSchema,I as PeerSchema,O as PeerUpdateSchema,Qe as RoomCommandsRpc,at as RoomNotificationSchema,st as RoomNotificationsRpc,L as RoomV1,le as RoomV2,K as Selector,Y as Strand,ce as TokenAudienceSchema,we as TokenClaimsSchema,pe as TokenSubjectSchema,Z as VideoCodec,R as WebRtcUpdateSchema,jt as abortableSleep,F as assert,nr as debug,er as error,Ot as extendUrl,W as fail,x as failure,ht as find,dt as fromBase64,lt as fromBase64Url,yt as fromBytes,Dt as generateUUID,w as getLevelByName,P as getLevelName,k as getLogger,rr as info,St as isAudioCapable,ge as isBlinkBrowser,Lt as isElectronBrowser,Zt as isFailure,kt as isFirefoxBrowser,Ht as isFunction,Gt as isNull,V as isNumber,$t as isObject,Jt as isProperty,Pt as isSafariBrowser,zt as isSharedArrayBufferCapable,qt as isString,Kt as isSuccess,Wt as isUndefined,Mt as nextTick,It as normalizeUrl,A as oneOrMany,At as sleep,m as success,gt as toBytes,Rt as toRaw,v as unwrap,B as unwrapOr,Bt as validateUUID,tr as warn,pr as zod};
|
|
1
|
+
import*as pr from"zod";import{z as l}from"zod";var y=l.custom(t=>t instanceof Uint8Array),se=l.union([l.string(),l.number(),l.boolean(),l.null()]),C=l.lazy(()=>l.union([se,l.array(C),l.record(C)])),ke=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 s}from"zod";var ce=s.enum(["sfu","gateway"]),pe=s.enum(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),we=s.object({uid:s.string(),cid:s.optional(s.string()),rid:A(s.string()).refine(t=>t.length>=1,{message:"missing rid"}),nsp:s.optional(s.string()),adr:s.optional(s.string()),aud:s.optional(A(ce)),sub:s.optional(A(pe)),exp:s.optional(s.number()),nbf:s.optional(s.number()),ups:s.optional(s.string()),tgs:s.optional(A(s.string())),tsp:s.optional(s.number()),internal:s.optional(s.object({server:s.optional(s.string())}))});function A(t){return s.union([t.transform(e=>[e]),s.array(t)])}import*as n from"zod";import*as u from"zod";var T=u.number(),ue=u.object({kind:u.optional(u.literal("audio")),uid:u.optional(u.string()),customType:u.optional(u.string())}),de=u.object({kind:u.optional(u.literal("video")),codec:u.optional(u.string()),uid:u.optional(u.string()),customType:u.optional(u.string())}),N=u.union([ue,de]),U=u.object({id:T,properties:N,paused:u.boolean()});import*as d from"zod";var h=d.number(),j=d.union([d.tuple([d.number(),d.number(),d.number()]),d.tuple([d.number(),d.number()])]),I=d.object({id:h,user_id:d.string(),user_data:y,medias:d.array(U)}),O=d.discriminatedUnion("kind",[d.object({kind:d.literal("UserDataChanged"),peer_id:h,user_data:y}),d.object({kind:d.literal("MediaStarted"),peer_id:h,media:U}),d.object({kind:d.literal("MediaStopped"),peer_id:h,media_id:T})]);import*as $ from"zod";var E=class t{constructor(e=BigInt(0)){this.value=e}from(...e){let r=e.reduce((c,f)=>c|M(f),BigInt(0));return new t(r)}contains(e){return(this.value&M(e))!==BigInt(0)}insert(e){this.value|=M(e)}remove(e){this.value&=~M(e)}[Symbol.iterator](){let e=-1,r=new t(this.value);return{next(){for(;e<63;)if(e+=1,r.contains(e))return{value:e,done:!1};return{value:void 0,done:!0}}}}},q=$.bigint().transform(t=>new E(t));function M(t){return BigInt(1)<<BigInt(t)}var k;(g=>(g.RoomIdSchema=n.string(),g.RoomSchema=n.object({id:g.RoomIdSchema,customer:n.string(),user_data:y,peers:n.array(I)}),g.RoomUpdateSchema=n.discriminatedUnion("kind",[n.object({kind:n.literal("Joined"),room:g.RoomSchema,media_ids:n.array(T),own_peer_id:h}),n.object({kind:n.literal("Left"),reason:n.enum(["RoomClosing","ServerClosing","PeerKicked"])}),n.object({kind:n.literal("UserDataChanged"),user_data:n.optional(y)}),n.object({kind:n.literal("PeerJoined"),peer:I}),n.object({kind:n.literal("PeerLeft"),peer_id:h})]),g.RoomUpdatesSchema=n.object({updates:n.array(g.RoomUpdateSchema)}),g.RoomStatusSchema=n.enum(["Joining","Joined","Closed"]),g.RoomStatusChangedSchema=n.object({status:g.RoomStatusSchema,message:n.optional(n.string())})))(k||={});var le;(i=>(i.ParametersSchema=n.record(C),i.PeerProperties=n.object({user_data:y.optional(),tags:n.array(n.string()).optional(),audio_parameters:i.ParametersSchema.optional(),video_parameters:i.ParametersSchema.optional()}),i.PingSchema=n.object({Ping:n.object({id:n.number()})}),i.ChangeSelfSchema=n.object({ChangeSelf:i.PeerProperties.omit({tags:!0})}),i.SetAudioMaskSchema=n.object({SetAudioMask:n.object({peer_id:n.number(),mask:q})}),i.SendMessageSchema=n.object({SendMessage:n.object({peer_ids:n.number().array().default([]),message:y})}),i.CallSchema=i.PingSchema.or(i.ChangeSelfSchema).or(i.SetAudioMaskSchema).or(i.SendMessageSchema),i.PongSchema=n.object({Pong:n.object({id:n.number()})}),i.JoinedSchema=n.object({Joined:n.object({own_peer_id:n.number(),room_id:n.string(),customer:n.string()})}),i.LeftSchema=n.object({Left:n.object({reason:n.enum(["room_closing","server_closing","peer_kicked"])})}),i.PeerJoinedSchema=n.object({PeerJoined:i.PeerProperties.extend({peer_id:n.number(),user_id:n.string()})}),i.PeerLeftSchema=n.object({PeerLeft:n.object({peer_id:n.number()})}),i.PeerChangedSchema=n.object({PeerChanged:i.PeerProperties.extend({peer_id:n.number()})}),i.NewReconnectTokenSchema=n.object({NewReconnectToken:n.object({token:n.string()})}),i.MessageReceivedSchema=n.object({MessageReceived:n.object({sender_peer_id:n.number(),message:y})}),i.ErrorSchema=n.object({Error:n.object({message:y})}),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)))(le||={});import{z as me}from"zod";var D=me.object({sender_peer_id:h,message:y});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([T,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 Ye={Hello:{request:o.object({stream:o.literal("main")}),response:o.null()},JoinRoom:{request:o.object({token:o.string(),room_id:k.RoomIdSchema,user_data:y,position:j}),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()}},Qe={Hello:{request:o.object({stream:o.literal("room"),token:o.string(),room_id:o.string(),user_data:y,position:j}),response:o.null()},UpdatePeer:{request:o.object({user_data:y}),response:o.null()},StartMedia:{request:o.object({media_id:T,properties:N}),response:o.null()},StopMedia:{request:o.object({media_id:T}),response:o.null()},PauseMedia:{request:o.object({media_id:T}),response:o.null()},ResumeMedia:{request:o.object({media_id:T}),response:o.null()},SetPeerPosition:{request:o.object({position:j}),response:o.null()},SendMessage:{request:o.object({target_peer_ids:o.optional(o.array(h)),message:y}),response:o.null()}};import*as b from"zod";var ot=b.object({name:b.literal("WebRtcUpdate"),properties:R}),it={WebRtcUpdate:R},at=b.union([b.object({name:b.literal("RoomStatusChanged"),properties:k.RoomStatusChangedSchema}),b.object({name:b.literal("RoomUpdated"),properties:k.RoomUpdatesSchema}),b.object({name:b.literal("PeerUpdated"),properties:O}),b.object({name:b.literal("MessageReceived"),properties:D})]),st={RoomStatusChanged:k.RoomStatusChangedSchema,RoomUpdated:k.RoomUpdatesSchema,PeerUpdated:O,MessageReceived:D};function F(t,e){t||W(e)}function W(t){throw new Error(t)}function m(t){return{type:"Success",value:t}}function x(t){return{type:"Failure",reason:t}}function v(t){return t.type==="Failure"&&W(t.reason),t.value}function B(t,e){return t.type==="Success"?t.value:e}function dt(t){try{let e=atob(t),r=Uint8Array.from(e,f=>f.codePointAt(0)),c=new TextDecoder("utf8");return m(c.decode(r))}catch(e){return x(String(e))}}function lt(t){try{let e=atob(t.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(e,f=>f.codePointAt(0)),c=new TextDecoder("utf8");return m(c.decode(r))}catch(e){return x(String(e))}}function gt(t){try{F(t!==void 0,"undefined cannot be converted to byte array"),F(t!==null,"null cannot be converted to byte array");let e=JSON.stringify(t),r=new TextEncoder;return m(r.encode(e))}catch(e){return x(String(e))}}function yt(t){try{F(t.length>0,"empty byte array cannot be converted to value");let e=new TextDecoder().decode(t),r=JSON.parse(e);return m(r)}catch(e){return x(String(e))}}var fe=["VP8","VP9","AV1","H264"],Z=class{constructor(e){this.codec=e}channels=0;clockRate=9e4;isValid(){return fe.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let e=B(this.getMimeType(),"").toLowerCase(),r=new Set(B(this.getSdpFmtpLine(),"").split(";").map(c=>c.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(c=>{let f=c.mimeType.toLowerCase(),p=new Set((c.sdpFmtpLine??"").split(";").map(g=>g.trim().toLowerCase()));if(e!==f||r.size!==p.size)return!1;for(let g of r)if(!p.has(g))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return m(96);case"VP9":return m(98);case"AV1":return m(41);case"H264":return m(102);default:return x("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return m("video/VP8");case"VP9":return m("video/VP9");case"AV1":return m("video/AV1");case"H264":return m("video/H264");default:return x("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return m("");case"VP9":return m("profile-id=2");case"AV1":return m("level-idx=5;profile=0;tier=0");case"H264":return m("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return x("invalid video codec")}}};function ht(t,e){for(let r of t)if(e(r))return r}function St(){return typeof AudioContext<"u"&&typeof Worker<"u"}function zt(){return typeof SharedArrayBuffer<"u"}function ge(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function kt(){return/electron/i.test(globalThis.navigator.userAgent)}function Lt(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function Pt(){return ge()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function Rt(t){return JSON.parse(JSON.stringify(t))}var K=class t{constructor(e){this._Generators=e;this._Futures=e.map(t.addIndex)}_Futures;async next(){let[e,r]=await Promise.race(this._Futures);return this._Futures[r]=t.addIndex(this._Generators[r],r),e}static async addIndex(e,r){return[await e(),r]}};function At(t,e){return t<=0?Promise.resolve(e):new Promise(r=>setTimeout(()=>r(e),t))}function jt(t,e){return e.aborted?Promise.resolve("aborted"):new Promise(r=>{let c=()=>r("aborted");e.addEventListener("abort",c,{once:!0}),setTimeout(()=>{e.removeEventListener("abort",c),r(void 0)},t)})}function Mt(){return new Promise(t=>setTimeout(t,0))}var Y=class{_Tasks=[];_Running=!1;_Values;constructor(...e){this._Values=e}enqueue(e){return new Promise((r,c)=>{let f=async()=>{try{let p=await e(...this._Values);r(p)}catch(p){c(p)}};this._Tasks.push(f),this._Running||this.execute()})}async execute(){for(this._Running=!0;;){let e=this._Tasks.shift();if(e===void 0)break;await e()}this._Running=!1}};function It(t){let e=t.trim();t.indexOf("://")===-1&&(e=`https://${e}`);try{return m(new URL(e))}catch(r){return x(String(r))}}function Ot(t,e){let r=t.pathname;r.endsWith("/")===!1&&(r+="/");try{return m(new URL(r+e,t))}catch(c){return x(String(c))}}var ye=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Dt(){return crypto.randomUUID()}function Bt(t){return ye.test(t)}function Jt(t,e){return e in t}function Ht(t){return typeof t=="function"}function Gt(t){return typeof t=="object"&&t===null}function V(t){return typeof t=="number"}function $t(t){return typeof t=="object"}function qt(t){return typeof t=="string"}function Wt(t){return typeof t>"u"}function Zt(t){return t.type==="Failure"}function Kt(t){return t.type==="Success"}var _=(p=>(p[p.NONE=0]="NONE",p[p.ERROR=1]="ERROR",p[p.WARN=2]="WARN",p[p.INFO=3]="INFO",p[p.DEBUG=4]="DEBUG",p))(_||{}),J=Object.values(_).filter(t=>!isNaN(Number(t))),xe=Object.keys(_).filter(t=>isNaN(Number(t))),be={0:"\u26AB",1:"\u{1F534}",2:"\u{1F7E1}",3:"\u{1F535}",4:"\u{1F7E3}"},ve={0:console.log,1:console.error,2:console.warn,3:console.info,4:console.debug};function w(t){let e=_[t];return e===void 0?x(`invalid log level name '${t}'; valid names are: ${xe.join(", ")}`):m(e)}function P(t){let e=_[t];return e===void 0?x(`invalid log level ${t}; valid levels are: ${J[0]}-${J[J.length-1]}`):m(e)}var S="default",Q=new Map;function L(t=S){let e=Q.get(t);return e||(e=new H("WARN",t)),e}function er(t,...e){return t instanceof Function?L(S).error(t,...e):L(S).error(t,...e)}function tr(t,...e){return t instanceof Function?L(S).warn(t,...e):L(S).warn(t,...e)}function rr(t,...e){return t instanceof Function?L(S).info(t,...e):L(S).info(t,...e)}function nr(t,...e){return t instanceof Function?L(S).debug(t,...e):L(S).debug(t,...e)}var H=class{name;_Level;_Handlers;constructor(e,r,c){this.name=r??S,V(e)?this._Level=v(w(v(P(e)))):this._Level=v(w(e)),this._Handlers=c?.handlers||[new G(e)],Q.set(this.name,this)}get level(){return this._Level}set level(e){this.levelName=v(P(e))}get levelName(){return v(P(this._Level))}set levelName(e){this._Level=v(w(e)),this._Handlers.forEach(r=>r.level=this._Level)}get handlers(){return this._Handlers}addHandler(e){this._Handlers.push(e)}removeHandler(e){let r=this._Handlers.indexOf(e);r!==-1&&this._Handlers.splice(r,1)}log(e,r,...c){if(this.level<e)return r instanceof Function?void 0:r;let f,p;return r instanceof Function?(f=r(),p=this.asString(f)):p=this.asString(r),this._Handlers.forEach(g=>{g.handle({date:new Date,level:e,levelName:v(P(e)),logger:this.name,message:p,args:c})}),r instanceof Function?f:r}error(e,...r){return this.log(1,e,...r)}warn(e,...r){return this.log(2,e,...r)}info(e,...r){return this.log(3,e,...r)}debug(e,...r){return this.log(4,e,...r)}asString(e,r=!1){return typeof e=="string"?r?`"${e}"`:e:e===null||typeof e=="number"||typeof e=="bigint"||typeof e=="boolean"||typeof e>"u"||typeof e=="symbol"?String(e):e instanceof Error?e.stack:typeof e=="object"?`{${Object.entries(e).map(([c,f])=>`"${c}":${this.asString(f,!0)}`).join(",")}}`:"undefined"}},he=({message:t})=>t,or=t=>{let e=`[${t.date.toISOString()}]`,r=`[${t.levelName}]`,c=t.logger!==S?`[${t.logger}] `:"",f=be[t.level];return`${e} ${f} ${r.padEnd(7," ")} ${c}${t.message}`},G=class{_Level;_FormatterFn;constructor(e,r=he){V(e)?this._Level=v(w(v(P(e)))):this._Level=v(w(e)),this._FormatterFn=r}get level(){return this._Level}set level(e){this.levelName=v(P(e))}get levelName(){return v(P(this._Level))}set levelName(e){this._Level=v(w(e))}handle(e){this._Level<e.level||this.log(this._FormatterFn(e),e)}log(e,r){ve[r.level](e,...r.args)}};var ar=-758.596,Te;(r=>{let t;(p=>(p.H3="h3",p.WebRTC="webrtc"))(t=r.Transport||={});let e;(z=>(z[z.InvalidPassword=-1]="InvalidPassword",z[z.Unknown=0]="Unknown",z[z.Unencrypted=1]="Unencrypted",z[z.Encrypted=2]="Encrypted"))(e=r.PeerCipherStatus||={})})(Te||={});export{Te as Backend,y as ByteArraySchema,E as ChannelSet,q as ChannelSetSchema,he as DEFAULT_FORMATTER,C as JsonSchema,ve as LogFunctions,G as LogHandler,xe as LogLevelNames,J as LogLevels,be as LogSymbols,_ as LogVerbosity,H as Logger,Ye as MainCommandsRpc,ot as MainNotificationSchema,it as MainNotificationsRpc,ue as MediaAudioPropertiesSchema,T as MediaIdSchema,N as MediaPropertiesSchema,U as MediaSchema,de as MediaVideoPropertiesSchema,ke as MessagePackRpcSchema,D as MessageReceivedSchema,ar as MinDBFS,or as PRETTY_FORMATTER,h as PeerIdSchema,j as PeerPositionSchema,I as PeerSchema,O as PeerUpdateSchema,Qe as RoomCommandsRpc,at as RoomNotificationSchema,st as RoomNotificationsRpc,k as RoomV1,le as RoomV2,K as Selector,Y as Strand,ce as TokenAudienceSchema,we as TokenClaimsSchema,pe as TokenSubjectSchema,Z as VideoCodec,R as WebRtcUpdateSchema,jt as abortableSleep,F as assert,nr as debug,er as error,Ot as extendUrl,W as fail,x as failure,ht as find,dt as fromBase64,lt as fromBase64Url,yt as fromBytes,Dt as generateUUID,w as getLevelByName,P as getLevelName,L as getLogger,rr as info,St as isAudioCapable,ge as isBlinkBrowser,kt as isElectronBrowser,Zt as isFailure,Lt as isFirefoxBrowser,Ht as isFunction,Gt as isNull,V as isNumber,$t as isObject,Jt as isProperty,Pt as isSafariBrowser,zt as isSharedArrayBufferCapable,qt as isString,Kt as isSuccess,Wt as isUndefined,Mt as nextTick,It as normalizeUrl,A as oneOrMany,At as sleep,m as success,gt as toBytes,Rt as toRaw,v as unwrap,B as unwrapOr,Bt as validateUUID,tr as warn,pr as zod};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@4players/odin-common",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0",
|
|
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",
|
package/plugin/api.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export declare const MinDBFS = -758.596;
|
|
2
2
|
export declare namespace Backend {
|
|
3
3
|
type UID = string;
|
|
4
|
-
type OnStatusChanged = (status:
|
|
4
|
+
type OnStatusChanged = (status: 'started' | 'stopped') => void;
|
|
5
5
|
type OnEvent = (method: string, properties: unknown) => void;
|
|
6
|
-
type Version =
|
|
6
|
+
type Version = '6';
|
|
7
7
|
enum Transport {
|
|
8
8
|
H3 = "h3",
|
|
9
9
|
WebRTC = "webrtc"
|
|
@@ -23,7 +23,7 @@ export declare namespace Backend {
|
|
|
23
23
|
close(): void;
|
|
24
24
|
}
|
|
25
25
|
interface Device {
|
|
26
|
-
readonly type:
|
|
26
|
+
readonly type: 'AudioPlayback' | 'AudioCapture';
|
|
27
27
|
readonly name: string;
|
|
28
28
|
readonly id: string;
|
|
29
29
|
readonly isDefault: boolean;
|
|
@@ -37,6 +37,7 @@ export declare namespace Backend {
|
|
|
37
37
|
rmsDBFS: number;
|
|
38
38
|
}
|
|
39
39
|
interface JitterStats {
|
|
40
|
+
packetsBuffered: number;
|
|
40
41
|
packetsSeen: number;
|
|
41
42
|
packetsProcessed: number;
|
|
42
43
|
packetsTooEarly: number;
|
|
@@ -52,9 +53,10 @@ export declare namespace Backend {
|
|
|
52
53
|
packetsSent: number;
|
|
53
54
|
packetsReceived: number;
|
|
54
55
|
rtt: number;
|
|
56
|
+
packetLoss: number;
|
|
55
57
|
}
|
|
56
58
|
interface JoinRoomParameters {
|
|
57
|
-
readonly
|
|
59
|
+
readonly url: string | undefined | 'loopback';
|
|
58
60
|
readonly token: string;
|
|
59
61
|
readonly roomId?: string;
|
|
60
62
|
readonly userData?: Uint8Array;
|
|
@@ -117,7 +119,7 @@ export declare namespace Backend {
|
|
|
117
119
|
readonly uid: UID;
|
|
118
120
|
}
|
|
119
121
|
type PlaybackVolume = [number, number];
|
|
120
|
-
type CaptureVolume =
|
|
122
|
+
type CaptureVolume = 'muted' | number;
|
|
121
123
|
interface VadConfig {
|
|
122
124
|
voiceActivity?: SensitivityRange;
|
|
123
125
|
volumeGate?: SensitivityRange;
|
|
@@ -131,12 +133,12 @@ export declare namespace Backend {
|
|
|
131
133
|
highPassFilter: boolean;
|
|
132
134
|
preAmplifier: boolean;
|
|
133
135
|
captureLevelAdjustment: boolean;
|
|
134
|
-
noiseSuppression:
|
|
136
|
+
noiseSuppression: 'None' | 'Low' | 'Moderate' | 'High' | 'VeryHigh';
|
|
135
137
|
transientSuppressor: boolean;
|
|
136
138
|
gainController: boolean;
|
|
137
139
|
}
|
|
138
140
|
type SetupCipherSettings = {
|
|
139
|
-
type:
|
|
141
|
+
type: 'OdinCrypto';
|
|
140
142
|
} & OdinCryptoSettings;
|
|
141
143
|
type CipherSettings = OdinCryptoSettings;
|
|
142
144
|
interface OdinCryptoSettings {
|
|
@@ -153,7 +155,7 @@ export declare namespace Backend {
|
|
|
153
155
|
getPeerStatus(peerId: number): PeerCipherStatus;
|
|
154
156
|
}
|
|
155
157
|
type VideoInputOptions = {
|
|
156
|
-
codec?:
|
|
158
|
+
codec?: 'H264' | 'VP8' | 'VP9';
|
|
157
159
|
customType?: string;
|
|
158
160
|
};
|
|
159
161
|
}
|
package/rpc/commands.d.ts
CHANGED
package/rpc/notifications.d.ts
CHANGED
package/schema/channels.d.ts
CHANGED
package/schema/media.d.ts
CHANGED
package/schema/message.d.ts
CHANGED
package/schema/peer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as z from
|
|
1
|
+
import * as z from 'zod';
|
|
2
2
|
export declare const PeerIdSchema: z.ZodNumber;
|
|
3
3
|
export type PeerId = z.infer<typeof PeerIdSchema>;
|
|
4
4
|
export declare const PeerPositionSchema: z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>;
|
package/schema/room.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { z } from
|
|
1
|
+
import { z } from 'zod';
|
|
2
2
|
export declare const ByteArraySchema: z.ZodType<Uint8Array, z.ZodTypeDef, Uint8Array>;
|
|
3
3
|
export type ByteArray = z.infer<typeof ByteArraySchema>;
|
|
4
4
|
declare const LiteralSchema: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean, z.ZodNull]>;
|
package/schema/token.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { z } from
|
|
1
|
+
import { z } from 'zod';
|
|
2
2
|
export declare const TokenAudienceSchema: z.ZodEnum<["sfu", "gateway"]>;
|
|
3
3
|
export declare const TokenSubjectSchema: z.ZodEnum<["connect", "roomclose", "roomupdate", "roombanclient", "roomsendmessage"]>;
|
|
4
4
|
export declare const TokenClaimsSchema: z.ZodObject<{
|
|
5
5
|
uid: z.ZodString;
|
|
6
6
|
cid: z.ZodOptional<z.ZodString>;
|
|
7
|
-
rid: z.ZodEffects<z.ZodType<
|
|
7
|
+
rid: z.ZodEffects<z.ZodType<string[], z.ZodTypeDef, string[]>, string[], string[]>;
|
|
8
8
|
nsp: z.ZodOptional<z.ZodString>;
|
|
9
9
|
adr: z.ZodOptional<z.ZodString>;
|
|
10
|
-
aud: z.ZodOptional<z.ZodType<
|
|
11
|
-
sub: z.ZodOptional<z.ZodType<
|
|
10
|
+
aud: z.ZodOptional<z.ZodType<("sfu" | "gateway")[], z.ZodTypeDef, ("sfu" | "gateway")[]>>;
|
|
11
|
+
sub: z.ZodOptional<z.ZodType<("connect" | "roomclose" | "roomupdate" | "roombanclient" | "roomsendmessage")[], z.ZodTypeDef, ("connect" | "roomclose" | "roomupdate" | "roombanclient" | "roomsendmessage")[]>>;
|
|
12
12
|
exp: z.ZodOptional<z.ZodNumber>;
|
|
13
13
|
nbf: z.ZodOptional<z.ZodNumber>;
|
|
14
14
|
ups: z.ZodOptional<z.ZodString>;
|
|
15
|
-
tgs: z.ZodOptional<z.ZodType<
|
|
15
|
+
tgs: z.ZodOptional<z.ZodType<string[], z.ZodTypeDef, string[]>>;
|
|
16
16
|
tsp: z.ZodOptional<z.ZodNumber>;
|
|
17
17
|
internal: z.ZodOptional<z.ZodObject<{
|
|
18
18
|
server: z.ZodOptional<z.ZodString>;
|
|
@@ -23,36 +23,36 @@ export declare const TokenClaimsSchema: z.ZodObject<{
|
|
|
23
23
|
}>>;
|
|
24
24
|
}, "strip", z.ZodTypeAny, {
|
|
25
25
|
uid: string;
|
|
26
|
-
rid:
|
|
27
|
-
sub?:
|
|
26
|
+
rid: string[];
|
|
27
|
+
sub?: ("connect" | "roomclose" | "roomupdate" | "roombanclient" | "roomsendmessage")[] | undefined;
|
|
28
28
|
internal?: {
|
|
29
29
|
server?: string | undefined;
|
|
30
30
|
} | undefined;
|
|
31
31
|
cid?: string | undefined;
|
|
32
32
|
nsp?: string | undefined;
|
|
33
33
|
adr?: string | undefined;
|
|
34
|
-
aud?:
|
|
34
|
+
aud?: ("sfu" | "gateway")[] | undefined;
|
|
35
35
|
exp?: number | undefined;
|
|
36
36
|
nbf?: number | undefined;
|
|
37
37
|
ups?: string | undefined;
|
|
38
|
-
tgs?:
|
|
38
|
+
tgs?: string[] | undefined;
|
|
39
39
|
tsp?: number | undefined;
|
|
40
40
|
}, {
|
|
41
41
|
uid: string;
|
|
42
|
-
rid:
|
|
43
|
-
sub?:
|
|
42
|
+
rid: string[];
|
|
43
|
+
sub?: ("connect" | "roomclose" | "roomupdate" | "roombanclient" | "roomsendmessage")[] | undefined;
|
|
44
44
|
internal?: {
|
|
45
45
|
server?: string | undefined;
|
|
46
46
|
} | undefined;
|
|
47
47
|
cid?: string | undefined;
|
|
48
48
|
nsp?: string | undefined;
|
|
49
49
|
adr?: string | undefined;
|
|
50
|
-
aud?:
|
|
50
|
+
aud?: ("sfu" | "gateway")[] | undefined;
|
|
51
51
|
exp?: number | undefined;
|
|
52
52
|
nbf?: number | undefined;
|
|
53
53
|
ups?: string | undefined;
|
|
54
|
-
tgs?:
|
|
54
|
+
tgs?: string[] | undefined;
|
|
55
55
|
tsp?: number | undefined;
|
|
56
56
|
}>;
|
|
57
57
|
export type TokenClaims = z.infer<typeof TokenClaimsSchema>;
|
|
58
|
-
export declare function oneOrMany<T extends z.ZodTypeAny>(type: T): z.ZodType<T[]>;
|
|
58
|
+
export declare function oneOrMany<T extends z.ZodTypeAny>(type: T): z.ZodType<z.infer<T>[]>;
|
package/schema/webrtc.d.ts
CHANGED
package/utility/base64.d.ts
CHANGED
package/utility/bytearray.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ByteArray, JsonValue } from
|
|
2
|
-
import { type Result } from
|
|
1
|
+
import type { ByteArray, JsonValue } from '../schema/serialization.ts';
|
|
2
|
+
import { type Result } from './result.ts';
|
|
3
3
|
export declare function toBytes(value: JsonValue): Result<ByteArray>;
|
|
4
4
|
export declare function fromBytes(bytes: ByteArray): Result<JsonValue>;
|
package/utility/codec.d.ts
CHANGED
package/utility/json.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import type { JsonValue } from
|
|
1
|
+
import type { JsonValue } from '../schema/serialization.ts';
|
|
2
2
|
export declare function toRaw<T extends JsonValue>(value: T): JsonValue;
|
package/utility/log.d.ts
CHANGED
package/utility/result.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export declare function assert(condition: unknown, message: string): asserts condition;
|
|
2
2
|
export declare function fail(message: string): never;
|
|
3
3
|
export type Failure = {
|
|
4
|
-
type:
|
|
4
|
+
type: 'Failure';
|
|
5
5
|
reason: string;
|
|
6
6
|
};
|
|
7
7
|
export type Success<T> = {
|
|
8
|
-
type:
|
|
8
|
+
type: 'Success';
|
|
9
9
|
value: T;
|
|
10
10
|
};
|
|
11
11
|
export type Result<T> = Success<T> | Failure;
|
package/utility/sleep.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare function sleep(ms: number, value: void): Promise<void>;
|
|
2
2
|
export declare function sleep<T extends string>(ms: number, value: T): Promise<T>;
|
|
3
|
-
export declare function abortableSleep(ms: number, signal: AbortSignal): Promise<void |
|
|
3
|
+
export declare function abortableSleep(ms: number, signal: AbortSignal): Promise<void | 'aborted'>;
|
|
4
4
|
export declare function nextTick(): Promise<void>;
|
package/utility/url.d.ts
CHANGED
package/utility/validation.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Failure, Result, Success } from
|
|
1
|
+
import type { Failure, Result, Success } from './result.ts';
|
|
2
2
|
export declare function isProperty<T extends object>(object: T, name: string): name is Extract<keyof T, string>;
|
|
3
3
|
export declare function isFunction(value: unknown): value is (...args: [unknown]) => unknown;
|
|
4
4
|
export declare function isNull(value: unknown): boolean;
|