@4players/odin-common 9.5.1 → 9.6.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.
@@ -46,11 +46,22 @@ export declare namespace RoomV1 {
46
46
  export declare namespace RoomV2 {
47
47
  type Parameters = Record<string, JsonValue>;
48
48
  const ParametersSchema: z.ZodType<Parameters>;
49
+ type ChannelPosition = {
50
+ x: number;
51
+ y: number;
52
+ z: number;
53
+ channel: number;
54
+ };
55
+ const PositionSchema: z.ZodType<ChannelPosition>;
56
+ type ChannelMask = bigint;
57
+ const ChannelMaskSchema: z.ZodType<ChannelMask>;
49
58
  type HelloRoom = {
50
59
  token: string;
51
60
  room_id?: RoomId;
52
61
  user_data?: Uint8Array;
53
62
  parameters?: Parameters;
63
+ channel_masks?: Array<[number, ChannelMask]>;
64
+ positions?: ChannelPosition[];
54
65
  };
55
66
  const HelloRoomSchema: z.ZodType<HelloRoom>;
56
67
  type ClientHello = {
@@ -68,8 +79,7 @@ export declare namespace RoomV2 {
68
79
  type PeerProperties = {
69
80
  user_data?: Uint8Array;
70
81
  tags?: string[];
71
- audio_parameters?: Record<string, JsonValue>;
72
- video_parameters?: Record<string, JsonValue>;
82
+ parameters?: Record<string, JsonValue>;
73
83
  };
74
84
  const PeerPropertiesSchema: z.ZodType<PeerProperties>;
75
85
  type Ping = {
@@ -152,7 +162,7 @@ export declare namespace RoomV2 {
152
162
  const MessageReceivedSchema: z.ZodType<MessageReceived>;
153
163
  type ServerError = {
154
164
  Error: {
155
- message: Uint8Array;
165
+ message: string;
156
166
  };
157
167
  };
158
168
  const ServerErrorSchema: z.ZodType<ServerError>;
package/cjs/api/mod.js CHANGED
@@ -1 +1 @@
1
- var C=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var $=(r,i)=>{for(var l in i)C(r,l,{get:i[l],enumerable:!0})},V=(r,i,l,d)=>{if(i&&typeof i=="object"||typeof i=="function")for(let m of X(i))!Y.call(r,m)&&m!==l&&C(r,m,{get:()=>i[m],enumerable:!(d=Q(i,m))||d.enumerable});return r};var ee=r=>V(C({},"__esModule",{value:!0}),r);var ue={};$(ue,{ByteArraySchema:()=>a,JsonSchema:()=>b,MainCommandsRpc:()=>ae,MainNotificationsRpc:()=>me,MediaAudioPropertiesSchema:()=>U,MediaIdSchema:()=>g,MediaPropertiesSchema:()=>_,MediaSchema:()=>k,MediaVideoPropertiesSchema:()=>v,MessagePackRpcSchema:()=>te,MessageReceivedSchema:()=>R,PeerIdSchema:()=>y,PeerPositionSchema:()=>S,PeerSchema:()=>z,PeerUpdateSchema:()=>M,RoomCommandsRpc:()=>pe,RoomIdSchema:()=>P,RoomNotificationsRpc:()=>ce,RoomV1:()=>T,RoomV2:()=>A,TokenAudienceSchema:()=>Z,TokenClaimsSchema:()=>re,TokenSubjectSchema:()=>j,WebRtcUpdateSchema:()=>h,oneOrMany:()=>f,parseCommand:()=>ne,parseNotification:()=>de,parseRequest:()=>ie,parseResponse:()=>se});module.exports=ee(ue);var c=require("zod");var n=require("zod"),a=n.z.custom(r=>r instanceof Uint8Array),b=n.z.lazy(()=>n.z.union([n.z.union([n.z.string(),n.z.number(),n.z.boolean(),n.z.null()]),n.z.array(b),n.z.record(n.z.string(),b)])),te=n.z.union([n.z.tuple([n.z.literal(0),n.z.number(),n.z.string(),n.z.unknown()]),n.z.tuple([n.z.literal(1),n.z.number(),n.z.nullable(n.z.string()),n.z.unknown()]),n.z.tuple([n.z.literal(2),n.z.string(),n.z.unknown()])]);function f(r){return n.z.union([r.transform(i=>[i]),n.z.array(r)])}var Z=c.z.enum(["sfu","gateway"]),j=c.z.enum(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),re=c.z.object({uid:c.z.string(),cid:c.z.string().optional(),rid:f(c.z.string()).refine(r=>r.length>=1,{message:"missing rid"}),nsp:c.z.string().optional(),adr:c.z.string().optional(),aud:f(Z).optional(),sub:f(j).optional(),exp:c.z.number().optional(),nbf:c.z.number().optional(),ups:c.z.string().optional(),tgs:f(c.z.string()).optional(),tsp:c.z.number().optional(),internal:c.z.object({server:c.z.string().optional()}).optional()});var e=require("zod");var u=require("zod"),g=u.z.number(),U=u.z.object({kind:u.z.literal("audio").optional(),uid:u.z.string().optional(),ref:u.z.string().optional(),customType:u.z.string().optional()}),v=u.z.object({kind:u.z.literal("video"),codec:u.z.string().optional(),uid:u.z.string().optional(),ref:u.z.string().optional(),customType:u.z.string().optional()}),_=u.z.union([U,v]),k=u.z.object({id:g,properties:_,paused:u.z.boolean()});var s=require("zod");var y=s.z.number(),S=s.z.union([s.z.tuple([s.z.number(),s.z.number(),s.z.number()]),s.z.tuple([s.z.number(),s.z.number()])]),z=s.z.object({id:y,user_id:s.z.string(),user_data:a,medias:s.z.array(k)}),M=s.z.discriminatedUnion("kind",[s.z.object({kind:s.z.literal("UserDataChanged"),peer_id:y,user_data:a}),s.z.object({kind:s.z.literal("MediaStarted"),peer_id:y,media:k}),s.z.object({kind:s.z.literal("MediaStopped"),peer_id:y,media_id:g})]);var P=e.z.string(),T;(x=>(x.RoomSchema=e.z.object({id:P,customer:e.z.string(),user_data:a,peers:e.z.array(z)}),x.RoomUpdateSchema=e.z.discriminatedUnion("kind",[e.z.object({kind:e.z.literal("Joined"),room:x.RoomSchema,media_ids:e.z.array(g),own_peer_id:y}),e.z.object({kind:e.z.literal("Left"),reason:e.z.enum(["RoomClosing","ServerClosing","PeerKicked"])}),e.z.object({kind:e.z.literal("PeerJoined"),peer:z}),e.z.object({kind:e.z.literal("PeerLeft"),peer_id:y}),e.z.object({kind:e.z.literal("UserDataChanged"),user_data:a.optional()})]),x.RoomUpdatesSchema=e.z.object({updates:e.z.array(x.RoomUpdateSchema)}),x.RoomStatusSchema=e.z.enum(["Joining","Joined","Closed"]),x.RoomStatusChangedSchema=e.z.object({status:x.RoomStatusSchema,message:e.z.string().optional()})))(T||={});var A;(t=>{t.ParametersSchema=e.z.record(e.z.string(),b),t.HelloRoomSchema=e.z.object({token:e.z.string(),room_id:P.optional(),user_data:a.optional(),parameters:t.ParametersSchema.optional()}),t.ClientHelloSchema=e.z.object({Room:t.HelloRoomSchema}),t.ServerHelloSchema=e.z.union([e.z.object({Ok:e.z.object({})}),e.z.object({Rejected:e.z.object({message:e.z.string()})})]);let m=e.z.object({user_data:a.optional(),tags:e.z.array(e.z.string()).optional(),audio_parameters:t.ParametersSchema.optional(),video_parameters:t.ParametersSchema.optional()});t.PeerPropertiesSchema=m,t.PingSchema=e.z.object({Ping:e.z.object({id:e.z.number()})}),t.ChangeSelfSchema=e.z.object({ChangeSelf:m.omit({tags:!0})}),t.SetAudioMaskSchema=e.z.object({SetAudioMask:e.z.object({peer_id:e.z.number(),mask:e.z.bigint().nonnegative().lte(0xFFFFFFFFFFFFFFFFn)})}),t.SendMessageSchema=e.z.object({SendMessage:e.z.object({peer_ids:e.z.number().array().default([]),message:a})}),t.CallSchema=t.PingSchema.or(t.ChangeSelfSchema).or(t.SetAudioMaskSchema).or(t.SendMessageSchema),t.PongSchema=e.z.object({Pong:e.z.object({id:e.z.number()})}),t.JoinedSchema=e.z.object({Joined:e.z.object({own_peer_id:e.z.number(),room_id:e.z.string(),customer:e.z.string()})}),t.LeftSchema=e.z.object({Left:e.z.object({reason:e.z.enum(["room_closing","server_closing","peer_kicked"])})}),t.PeerJoinedSchema=e.z.object({PeerJoined:m.extend({peer_id:e.z.number(),user_id:e.z.string()})}),t.PeerLeftSchema=e.z.object({PeerLeft:e.z.object({peer_id:e.z.number()})}),t.PeerChangedSchema=e.z.object({PeerChanged:m.extend({peer_id:e.z.number()})}),t.NewReconnectTokenSchema=e.z.object({NewReconnectToken:e.z.object({token:e.z.string()})}),t.MessageReceivedSchema=e.z.object({MessageReceived:e.z.object({sender_peer_id:e.z.number(),message:a})}),t.ServerErrorSchema=e.z.object({Error:e.z.object({message:a})}),t.EventSchema=t.PongSchema.or(t.JoinedSchema).or(t.LeftSchema).or(t.PeerJoinedSchema).or(t.PeerLeftSchema).or(t.PeerChangedSchema).or(t.NewReconnectTokenSchema).or(t.MessageReceivedSchema).or(t.ServerErrorSchema)})(A||={});var I=require("zod");var R=I.z.object({sender_peer_id:y,message:a});var p=require("zod");var h=p.z.discriminatedUnion("kind",[p.z.object({kind:p.z.literal("Sdp"),type:p.z.enum(["Answer","Offer"]),sdp:p.z.string(),media_map:p.z.array(p.z.tuple([g,p.z.string()]))}),p.z.object({kind:p.z.literal("Trickle"),candidate:p.z.string(),spd_mid:p.z.string().optional(),spd_mline_index:p.z.number().optional(),username_fragment:p.z.union([p.z.string(),p.z.null()]).optional()}),p.z.object({kind:p.z.literal("TrickleFinished")})]);var o=require("zod");function q(r,i){r||oe(i)}function oe(r){throw new Error(r)}function ne(r,i,l){let d=l[r];if(!d)return;let m=d.request.safeParse(i);return m.success?{name:r,request:m.data}:void 0}function ie(r,i,l){let d=l[r];return q(d!==void 0,"unknown command schema"),d.request.parse(i)}function se(r,i,l){let d=l[r]?.response.safeParse(i);return d?.success?d.data:void 0}var ae={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:P,user_data:a,position:S}),response:o.z.object({peer_id:y,stream_id:o.z.number().optional(),token:o.z.string().optional()})},WebRtcUpdate:{request:h,response:o.z.null()},RequestReconnectToken:{request:o.z.object({peer_id:y.optional()}),response:o.z.string()},Ping:{request:o.z.object({}),response:o.z.null()}},pe={Hello:{request:o.z.object({stream:o.z.literal("room"),token:o.z.string(),room_id:o.z.string(),user_data:a,position:S}),response:o.z.null()},UpdatePeer:{request:o.z.object({user_data:a}),response:o.z.null()},StartMedia:{request:o.z.object({media_id:g,properties:_}),response:o.z.null()},StopMedia:{request:o.z.object({media_id:g}),response:o.z.null()},PauseMedia:{request:o.z.object({media_id:g}),response:o.z.null()},ResumeMedia:{request:o.z.object({media_id:g}),response:o.z.null()},SetPeerPosition:{request:o.z.object({position:S}),response:o.z.null()},SendMessage:{request:o.z.object({target_peer_ids:o.z.array(y).optional(),message:a}),response:o.z.null()}};function de(r,i,l){let d=l[r];if(!d)return;let m=d.safeParse(i);return m.success?{name:r,properties:m.data}:void 0}var me={WebRtcUpdate:h},ce={RoomStatusChanged:T.RoomStatusChangedSchema,RoomUpdated:T.RoomUpdatesSchema,PeerUpdated:M,MessageReceived:R};0&&(module.exports={ByteArraySchema,JsonSchema,MainCommandsRpc,MainNotificationsRpc,MediaAudioPropertiesSchema,MediaIdSchema,MediaPropertiesSchema,MediaSchema,MediaVideoPropertiesSchema,MessagePackRpcSchema,MessageReceivedSchema,PeerIdSchema,PeerPositionSchema,PeerSchema,PeerUpdateSchema,RoomCommandsRpc,RoomIdSchema,RoomNotificationsRpc,RoomV1,RoomV2,TokenAudienceSchema,TokenClaimsSchema,TokenSubjectSchema,WebRtcUpdateSchema,oneOrMany,parseCommand,parseNotification,parseRequest,parseResponse});
1
+ var M=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var V=(o,i)=>{for(var m in i)M(o,m,{get:i[m],enumerable:!0})},ee=(o,i,m,p)=>{if(i&&typeof i=="object"||typeof i=="function")for(let y of Y(i))!$.call(o,y)&&y!==m&&M(o,y,{get:()=>i[y],enumerable:!(p=X(i,y))||p.enumerable});return o};var te=o=>ee(M({},"__esModule",{value:!0}),o);var le={};V(le,{ByteArraySchema:()=>d,JsonSchema:()=>f,MainCommandsRpc:()=>pe,MainNotificationsRpc:()=>ce,MediaAudioPropertiesSchema:()=>v,MediaIdSchema:()=>g,MediaPropertiesSchema:()=>_,MediaSchema:()=>z,MediaVideoPropertiesSchema:()=>A,MessagePackRpcSchema:()=>re,MessageReceivedSchema:()=>Z,PeerIdSchema:()=>l,PeerPositionSchema:()=>S,PeerSchema:()=>C,PeerUpdateSchema:()=>R,RoomCommandsRpc:()=>de,RoomIdSchema:()=>P,RoomNotificationsRpc:()=>ue,RoomV1:()=>T,RoomV2:()=>I,TokenAudienceSchema:()=>j,TokenClaimsSchema:()=>oe,TokenSubjectSchema:()=>U,WebRtcUpdateSchema:()=>h,oneOrMany:()=>b,parseCommand:()=>ie,parseNotification:()=>me,parseRequest:()=>se,parseResponse:()=>ae});module.exports=te(le);var c=require("zod");var n=require("zod"),d=n.z.custom(o=>o instanceof Uint8Array),f=n.z.lazy(()=>n.z.union([n.z.union([n.z.string(),n.z.number(),n.z.boolean(),n.z.null()]),n.z.array(f),n.z.record(n.z.string(),f)])),re=n.z.union([n.z.tuple([n.z.literal(0),n.z.number(),n.z.string(),n.z.unknown()]),n.z.tuple([n.z.literal(1),n.z.number(),n.z.nullable(n.z.string()),n.z.unknown()]),n.z.tuple([n.z.literal(2),n.z.string(),n.z.unknown()])]);function b(o){return n.z.union([o.transform(i=>[i]),n.z.array(o)])}var j=c.z.enum(["sfu","gateway"]),U=c.z.enum(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),oe=c.z.object({uid:c.z.string(),cid:c.z.string().optional(),rid:b(c.z.string()).refine(o=>o.length>=1,{message:"missing rid"}),nsp:c.z.string().optional(),adr:c.z.string().optional(),aud:b(j).optional(),sub:b(U).optional(),exp:c.z.number().optional(),nbf:c.z.number().optional(),ups:c.z.string().optional(),tgs:b(c.z.string()).optional(),tsp:c.z.number().optional(),internal:c.z.object({server:c.z.string().optional()}).optional()});var e=require("zod");var u=require("zod"),g=u.z.number(),v=u.z.object({kind:u.z.literal("audio").optional(),uid:u.z.string().optional(),ref:u.z.string().optional(),customType:u.z.string().optional()}),A=u.z.object({kind:u.z.literal("video"),codec:u.z.string().optional(),uid:u.z.string().optional(),ref:u.z.string().optional(),customType:u.z.string().optional()}),_=u.z.union([v,A]),z=u.z.object({id:g,properties:_,paused:u.z.boolean()});var s=require("zod");var l=s.z.number(),S=s.z.union([s.z.tuple([s.z.number(),s.z.number(),s.z.number()]),s.z.tuple([s.z.number(),s.z.number()])]),C=s.z.object({id:l,user_id:s.z.string(),user_data:d,medias:s.z.array(z)}),R=s.z.discriminatedUnion("kind",[s.z.object({kind:s.z.literal("UserDataChanged"),peer_id:l,user_data:d}),s.z.object({kind:s.z.literal("MediaStarted"),peer_id:l,media:z}),s.z.object({kind:s.z.literal("MediaStopped"),peer_id:l,media_id:g})]);var P=e.z.string(),T;(x=>(x.RoomSchema=e.z.object({id:P,customer:e.z.string(),user_data:d,peers:e.z.array(C)}),x.RoomUpdateSchema=e.z.discriminatedUnion("kind",[e.z.object({kind:e.z.literal("Joined"),room:x.RoomSchema,media_ids:e.z.array(g),own_peer_id:l}),e.z.object({kind:e.z.literal("Left"),reason:e.z.enum(["RoomClosing","ServerClosing","PeerKicked"])}),e.z.object({kind:e.z.literal("PeerJoined"),peer:C}),e.z.object({kind:e.z.literal("PeerLeft"),peer_id:l}),e.z.object({kind:e.z.literal("UserDataChanged"),user_data:d.optional()})]),x.RoomUpdatesSchema=e.z.object({updates:e.z.array(x.RoomUpdateSchema)}),x.RoomStatusSchema=e.z.enum(["Joining","Joined","Closed"]),x.RoomStatusChangedSchema=e.z.object({status:x.RoomStatusSchema,message:e.z.string().optional()})))(T||={});var I;(t=>{t.ParametersSchema=e.z.record(e.z.string(),f),t.PositionSchema=e.z.object({x:e.z.number(),y:e.z.number(),z:e.z.number(),channel:e.z.number()}),t.ChannelMaskSchema=e.z.bigint().nonnegative().lte(0xFFFFFFFFFFFFFFFFn),t.HelloRoomSchema=e.z.object({token:e.z.string(),room_id:P.optional(),user_data:d.optional(),parameters:t.ParametersSchema.optional(),channel_masks:e.z.array(e.z.tuple([e.z.number(),t.ChannelMaskSchema])).optional(),positions:e.z.array(t.PositionSchema).optional()}),t.ClientHelloSchema=e.z.object({Room:t.HelloRoomSchema}),t.ServerHelloSchema=e.z.union([e.z.object({Ok:e.z.object({})}),e.z.object({Rejected:e.z.object({message:e.z.string()})})]);let k=e.z.object({user_data:d.optional(),tags:e.z.array(e.z.string()).optional(),parameters:t.ParametersSchema.optional()});t.PeerPropertiesSchema=k,t.PingSchema=e.z.object({Ping:e.z.object({id:e.z.number()})}),t.ChangeSelfSchema=e.z.object({ChangeSelf:k.omit({tags:!0})}),t.SetAudioMaskSchema=e.z.object({SetAudioMask:e.z.object({peer_id:e.z.number(),mask:t.ChannelMaskSchema})}),t.SendMessageSchema=e.z.object({SendMessage:e.z.object({peer_ids:e.z.number().array().default([]),message:d})}),t.CallSchema=t.PingSchema.or(t.ChangeSelfSchema).or(t.SetAudioMaskSchema).or(t.SendMessageSchema),t.PongSchema=e.z.object({Pong:e.z.object({id:e.z.number()})}),t.JoinedSchema=e.z.object({Joined:e.z.object({own_peer_id:e.z.number(),room_id:e.z.string(),customer:e.z.string()})}),t.LeftSchema=e.z.object({Left:e.z.object({reason:e.z.enum(["room_closing","server_closing","peer_kicked"])})}),t.PeerJoinedSchema=e.z.object({PeerJoined:k.extend({peer_id:e.z.number(),user_id:e.z.string()})}),t.PeerLeftSchema=e.z.object({PeerLeft:e.z.object({peer_id:e.z.number()})}),t.PeerChangedSchema=e.z.object({PeerChanged:k.extend({peer_id:e.z.number()})}),t.NewReconnectTokenSchema=e.z.object({NewReconnectToken:e.z.object({token:e.z.string()})}),t.MessageReceivedSchema=e.z.object({MessageReceived:e.z.object({sender_peer_id:e.z.number(),message:d})}),t.ServerErrorSchema=e.z.object({Error:e.z.object({message:e.z.string()})}),t.EventSchema=t.PongSchema.or(t.JoinedSchema).or(t.LeftSchema).or(t.PeerJoinedSchema).or(t.PeerLeftSchema).or(t.PeerChangedSchema).or(t.NewReconnectTokenSchema).or(t.MessageReceivedSchema).or(t.ServerErrorSchema)})(I||={});var q=require("zod");var Z=q.z.object({sender_peer_id:l,message:d});var a=require("zod");var h=a.z.discriminatedUnion("kind",[a.z.object({kind:a.z.literal("Sdp"),type:a.z.enum(["Answer","Offer"]),sdp:a.z.string(),media_map:a.z.array(a.z.tuple([g,a.z.string()]))}),a.z.object({kind:a.z.literal("Trickle"),candidate:a.z.string(),spd_mid:a.z.string().optional(),spd_mline_index:a.z.number().optional(),username_fragment:a.z.union([a.z.string(),a.z.null()]).optional()}),a.z.object({kind:a.z.literal("TrickleFinished")})]);var r=require("zod");function N(o,i){o||ne(i)}function ne(o){throw new Error(o)}function ie(o,i,m){let p=m[o];if(!p)return;let y=p.request.safeParse(i);return y.success?{name:o,request:y.data}:void 0}function se(o,i,m){let p=m[o];return N(p!==void 0,"unknown command schema"),p.request.parse(i)}function ae(o,i,m){let p=m[o]?.response.safeParse(i);return p?.success?p.data:void 0}var pe={Hello:{request:r.z.object({stream:r.z.literal("main")}),response:r.z.null()},JoinRoom:{request:r.z.object({token:r.z.string(),room_id:P,user_data:d,position:S}),response:r.z.object({peer_id:l,stream_id:r.z.number().optional(),token:r.z.string().optional()})},WebRtcUpdate:{request:h,response:r.z.null()},RequestReconnectToken:{request:r.z.object({peer_id:l.optional()}),response:r.z.string()},Ping:{request:r.z.object({}),response:r.z.null()}},de={Hello:{request:r.z.object({stream:r.z.literal("room"),token:r.z.string(),room_id:r.z.string(),user_data:d,position:S}),response:r.z.null()},UpdatePeer:{request:r.z.object({user_data:d}),response:r.z.null()},StartMedia:{request:r.z.object({media_id:g,properties:_}),response:r.z.null()},StopMedia:{request:r.z.object({media_id:g}),response:r.z.null()},PauseMedia:{request:r.z.object({media_id:g}),response:r.z.null()},ResumeMedia:{request:r.z.object({media_id:g}),response:r.z.null()},SetPeerPosition:{request:r.z.object({position:S}),response:r.z.null()},SendMessage:{request:r.z.object({target_peer_ids:r.z.array(l).optional(),message:d}),response:r.z.null()}};function me(o,i,m){let p=m[o];if(!p)return;let y=p.safeParse(i);return y.success?{name:o,properties:y.data}:void 0}var ce={WebRtcUpdate:h},ue={RoomStatusChanged:T.RoomStatusChangedSchema,RoomUpdated:T.RoomUpdatesSchema,PeerUpdated:R,MessageReceived:Z};0&&(module.exports={ByteArraySchema,JsonSchema,MainCommandsRpc,MainNotificationsRpc,MediaAudioPropertiesSchema,MediaIdSchema,MediaPropertiesSchema,MediaSchema,MediaVideoPropertiesSchema,MessagePackRpcSchema,MessageReceivedSchema,PeerIdSchema,PeerPositionSchema,PeerSchema,PeerUpdateSchema,RoomCommandsRpc,RoomIdSchema,RoomNotificationsRpc,RoomV1,RoomV2,TokenAudienceSchema,TokenClaimsSchema,TokenSubjectSchema,WebRtcUpdateSchema,oneOrMany,parseCommand,parseNotification,parseRequest,parseResponse});
package/cjs/mod.js CHANGED
@@ -1 +1 @@
1
- var y=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var j=(e,t)=>{for(var r in t)y(e,r,{get:t[r],enumerable:!0})},_=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of N(t))!M.call(e,s)&&s!==r&&y(e,s,{get:()=>t[s],enumerable:!(n=U(t,s))||n.enumerable});return e};var $=e=>_(y({},"__esModule",{value:!0}),e);var Ue={};j(Ue,{APM_DEFAULTS:()=>H,Backend:()=>A,CONNECTION_STATS_INITIAL:()=>G,CallbackSink:()=>S,ConsoleSink:()=>f,Formatter:()=>P,GLOBAL_LOGGER:()=>p,InteractiveConsoleSink:()=>C,JITTER_STATS_INITIAL:()=>J,LogLevel:()=>d,LogSymbols:()=>w,Logger:()=>c,MinDBFS:()=>Me,Selector:()=>L,Strand:()=>h,VAD_DEFAULTS:()=>W,VideoCodec:()=>v,abortableSleep:()=>ae,assert:()=>g,debug:()=>Ie,error:()=>Fe,extendUrl:()=>le,fail:()=>b,failure:()=>u,find:()=>Q,fromBase64:()=>Z,fromBase64Url:()=>q,fromBytes:()=>X,generateUUID:()=>pe,info:()=>Be,isAudioCapable:()=>ee,isBlinkBrowser:()=>V,isElectronBrowser:()=>re,isFailure:()=>he,isFirefoxBrowser:()=>ne,isFunction:()=>me,isNull:()=>xe,isNumber:()=>ye,isObject:()=>be,isProperty:()=>fe,isSafariBrowser:()=>oe,isSharedArrayBufferCapable:()=>te,isString:()=>ve,isSuccess:()=>Re,isUndefined:()=>Le,log:()=>Ee,nextTick:()=>ue,normalizeUrl:()=>ce,sleep:()=>se,success:()=>o,toBytes:()=>Y,toRaw:()=>ie,tryParseLogLevel:()=>Pe,unwrap:()=>z,unwrapOr:()=>m,validateUUID:()=>ge,warn:()=>De});module.exports=$(Ue);var Me=-758.596,A;(t=>{let e;(a=>(a[a.InvalidPassword=-1]="InvalidPassword",a[a.Unknown=0]="Unknown",a[a.Unencrypted=1]="Unencrypted",a[a.Encrypted=2]="Encrypted"))(e=t.PeerCipherStatus||={})})(A||={});var G={bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0,rtt:0,packetLoss:0},J={packetsBuffered:0,packetsSeen:0,packetsProcessed:0,packetsTooEarly:0,packetsTooLate:0,packetsDropped:0,packetsInvalid:0,packetsRepeated:0,packetsLost:0},W={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},H={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};function g(e,t){e||b(t)}function b(e){throw new Error(e)}function o(e){return{type:"Success",value:e}}function u(e){return{type:"Failure",reason:e}}function z(e){return e.type==="Failure"&&b(e.reason),e.value}function m(e,t){return e.type==="Success"?e.value:t}function Z(e){try{let t=atob(e),r=Uint8Array.from(t,s=>s.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return u(String(t))}}function q(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(t,s=>s.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return u(String(t))}}function Y(e){try{g(e!==void 0,"undefined cannot be converted to byte array"),g(e!==null,"null cannot be converted to byte array");let t=JSON.stringify(e),r=new TextEncoder;return o(r.encode(t))}catch(t){return u(String(t))}}function X(e){try{g(e.length>0,"empty byte array cannot be converted to value");let t=new TextDecoder().decode(e),r=JSON.parse(t);return o(r)}catch(t){return u(String(t))}}var K=["VP8","VP9","AV1","H264"],v=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return K.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=m(this.getMimeType(),"").toLowerCase(),r=new Set(m(this.getSdpFmtpLine(),"").split(";").map(n=>n.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(n=>{let s=n.mimeType.toLowerCase(),i=new Set((n.sdpFmtpLine??"").split(";").map(a=>a.trim().toLowerCase()));if(t!==s||r.size!==i.size)return!1;for(let a of r)if(!i.has(a))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return o(96);case"VP9":return o(98);case"AV1":return o(41);case"H264":return o(102);default:return u("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return o("video/VP8");case"VP9":return o("video/VP9");case"AV1":return o("video/AV1");case"H264":return o("video/H264");default:return u("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return o("");case"VP9":return o("profile-id=2");case"AV1":return o("level-idx=5;profile=0;tier=0");case"H264":return o("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return u("invalid video codec")}}};function Q(e,t){for(let r of e)if(t(r))return r}function ee(){return typeof AudioContext<"u"&&typeof Worker<"u"}function te(){return typeof SharedArrayBuffer<"u"}function V(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function re(){return/electron/i.test(globalThis.navigator.userAgent)}function ne(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function oe(){return V()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function ie(e){return JSON.parse(JSON.stringify(e))}var L=class e{constructor(t){this._Generators=t;this._Futures=t.map(e.addIndex)}_Futures;async next(){let[t,r]=await Promise.race(this._Futures);return this._Futures[r]=e.addIndex(this._Generators[r],r),t}static async addIndex(t,r){return[await t(),r]}};function se(e,t){return e<=0?Promise.resolve(t):new Promise(r=>setTimeout(()=>r(t),e))}function ae(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(r=>{let n=()=>r("aborted");t.addEventListener("abort",n,{once:!0}),setTimeout(()=>{t.removeEventListener("abort",n),r(void 0)},e)})}function ue(){return new Promise(e=>setTimeout(e,0))}var h=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((r,n)=>{let s=async()=>{try{let i=await t(...this._Values);r(i)}catch(i){n(i)}};this._Tasks.push(s),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 ce(e){let t=e.trim();e.indexOf("://")===-1&&(t=`https://${t}`);try{return o(new URL(t))}catch(r){return u(String(r))}}function le(e,t){let r=e.pathname;r.endsWith("/")===!1&&(r+="/");try{return o(new URL(r+t,e))}catch(n){return u(String(n))}}var de=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function pe(){return crypto.randomUUID()}function ge(e){return de.test(e)}function fe(e,t){return t in e}function me(e){return typeof e=="function"}function xe(e){return typeof e=="object"&&e===null}function ye(e){return typeof e=="number"}function be(e){return typeof e=="object"}function ve(e){return typeof e=="string"}function Le(e){return typeof e>"u"}function he(e){return e.type==="Failure"}function Re(e){return e.type==="Success"}var{Deno:O}=globalThis,ke=typeof O?.noColor=="boolean"?O.noColor:!1,Te=!ke;function R(e,t){return{open:`\x1B[${e.join(";")}m`,close:`\x1B[${t}m`,regexp:new RegExp(`\\x1b\\[${t}m`,"g")}}function k(e,t){return Te?`${t.open}${e.replace(t.regexp,t.open)}${t.close}`:e}function x(e){return k(e,R([0],0))}function T(e){return k(e,R([1],22))}function F(e){return k(e,R([2],22))}var ot=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 Se=new Date,d=(i=>(i[i.CRITICAL=0]="CRITICAL",i[i.ERROR=1]="ERROR",i[i.WARN=2]="WARN",i[i.INFO=3]="INFO",i[i.DEBUG=4]="DEBUG",i))(d||{}),w={0:"\u{1F4A5}",1:"\u{1F534}",2:"\u{1F7E1}",3:"\u{1F535}",4:"\u{1F7E3}"},we={4:F,3:x,2:x,1:T,0:T};function Pe(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 Ae({message:e}){return String(e)}function D(e){return JSON.stringify({timestamp:e.date.toISOString(),level:d[e.level],message:e.message,extra:e.extra})}function B(e){function t(a,l){return[Math.floor(a/l),a%l]}function r(){let a,l=e.date.valueOf()-Se.valueOf();[l,a]=t(l,1e3);let[I,E]=t(l,60);return`${I.toString().padStart(4,"0")}:${E.toString().padStart(2,"0")}.${a.toString().padStart(4,"0")}`}function n(){return e.extra===void 0?"":typeof Deno=="object"?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let s=w[e.level],i=e.logger.name!==void 0?`@${e.logger}`:"";return`${x(r())}${i} ${s} ${we[e.level](String(e.message))}${n()}`}function Ve(e){let t=`[${e.date.toISOString()}]`,r=`[${d[e.level]}]`,n=e.logger.name!==void 0?`[${e.logger.name}] `:"",s=w[e.level];return`${t} ${s} ${r.padEnd(7," ")} ${n}${e.message}`}function Oe(){return typeof Deno=="object"&&Deno.stdout.isTerminal()}var P={sparse:Ae,json:D,pretty:B,structured:Ve,default:Oe()?B:D},f=class{formatter;consoleObject;filter;constructor(t=P.default,r=4,n=console){this.filter=r,this.formatter=t,this.consoleObject=n}handle(t){let r=this.formatter(t);switch(t.level){case 1:this.consoleObject.error(r);break;case 2:this.consoleObject.warn(r);break;case 3:this.consoleObject.info(r);break;case 4:this.consoleObject.debug(r);break}}},C=class extends f{handle(t){let r=this.formatter(t),n=t.extra!==void 0?[r,t.extra]:[r];switch(t.level){case 0:case 1:this.consoleObject.error(...n);break;case 2:this.consoleObject.warn(...n);break;case 3:this.consoleObject.info(...n);break;case 4:this.consoleObject.debug(...n);break}}},S=class{formatter;cb;filter;constructor(t,r=P.default,n=4){this.cb=t,this.formatter=r,this.filter=n}handle(t){let r=this.formatter(t);this.cb(r,t)}},c=class{#e;sinks;filter;parent;get name(){return this.#e}constructor(t,r=void 0,n=[],s=void 0){this.#e=r,this.sinks=n,this.filter=t,this.parent=s}log(t,r,n=void 0){let i={date:new Date,level:t,logger:this,message:r,extra:n};this.filter<t||this.insert(i)}insert(t){if(!(this.filter<t.level)){for(let r of this.sinks)r.filter>=t.level&&r.handle(t);this.parent!==void 0&&this.parent.insert(t)}}error=this.log.bind(this,1);warn=this.log.bind(this,2);info=this.log.bind(this,3);debug=this.log.bind(this,4)},p=new c(3,void 0,[new f]),Fe=c.prototype.log.bind(p,1),De=c.prototype.log.bind(p,2),Be=c.prototype.log.bind(p,3),Ie=c.prototype.log.bind(p,4),Ee=c.prototype.log.bind(p);0&&(module.exports={APM_DEFAULTS,Backend,CONNECTION_STATS_INITIAL,CallbackSink,ConsoleSink,Formatter,GLOBAL_LOGGER,InteractiveConsoleSink,JITTER_STATS_INITIAL,LogLevel,LogSymbols,Logger,MinDBFS,Selector,Strand,VAD_DEFAULTS,VideoCodec,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,sleep,success,toBytes,toRaw,tryParseLogLevel,unwrap,unwrapOr,validateUUID,warn});
1
+ var b=Object.defineProperty;var U=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var M=Object.prototype.hasOwnProperty;var j=(e,t)=>{for(var r in t)b(e,r,{get:t[r],enumerable:!0})},_=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of N(t))!M.call(e,s)&&s!==r&&b(e,s,{get:()=>t[s],enumerable:!(n=U(t,s))||n.enumerable});return e};var $=e=>_(b({},"__esModule",{value:!0}),e);var Ue={};j(Ue,{APM_DEFAULTS:()=>H,Backend:()=>A,CONNECTION_STATS_INITIAL:()=>G,CallbackSink:()=>w,ConsoleSink:()=>m,Formatter:()=>f,GLOBAL_LOGGER:()=>p,InteractiveConsoleSink:()=>S,JITTER_STATS_INITIAL:()=>J,LogLevel:()=>d,LogSymbols:()=>P,Logger:()=>c,MinDBFS:()=>Me,Selector:()=>h,Strand:()=>R,VAD_DEFAULTS:()=>W,VideoCodec:()=>L,abortableSleep:()=>ae,assert:()=>g,debug:()=>Ie,error:()=>Fe,extendUrl:()=>le,fail:()=>v,failure:()=>u,find:()=>Q,fromBase64:()=>Z,fromBase64Url:()=>q,fromBytes:()=>X,generateUUID:()=>pe,info:()=>Be,isAudioCapable:()=>ee,isBlinkBrowser:()=>V,isElectronBrowser:()=>re,isFailure:()=>he,isFirefoxBrowser:()=>ne,isFunction:()=>me,isNull:()=>xe,isNumber:()=>ye,isObject:()=>be,isProperty:()=>fe,isSafariBrowser:()=>oe,isSharedArrayBufferCapable:()=>te,isString:()=>ve,isSuccess:()=>Re,isUndefined:()=>Le,log:()=>Ee,nextTick:()=>ue,normalizeUrl:()=>ce,sleep:()=>se,success:()=>o,toBytes:()=>Y,toRaw:()=>ie,tryParseLogLevel:()=>Pe,unwrap:()=>z,unwrapOr:()=>x,validateUUID:()=>ge,warn:()=>De});module.exports=$(Ue);var Me=-758.596,A;(t=>{let e;(a=>(a[a.InvalidPassword=-1]="InvalidPassword",a[a.Unknown=0]="Unknown",a[a.Unencrypted=1]="Unencrypted",a[a.Encrypted=2]="Encrypted"))(e=t.PeerCipherStatus||={})})(A||={});var G={bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0,rtt:0,packetLoss:0},J={packetsBuffered:0,packetsSeen:0,packetsProcessed:0,packetsTooEarly:0,packetsTooLate:0,packetsDropped:0,packetsInvalid:0,packetsRepeated:0,packetsLost:0},W={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},H={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};function g(e,t){e||v(t)}function v(e){throw new Error(e)}function o(e){return{type:"Success",value:e}}function u(e){return{type:"Failure",reason:e}}function z(e){return e.type==="Failure"&&v(e.reason),e.value}function x(e,t){return e.type==="Success"?e.value:t}function Z(e){try{let t=atob(e),r=Uint8Array.from(t,s=>s.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return u(String(t))}}function q(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(t,s=>s.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return u(String(t))}}function Y(e){try{g(e!==void 0,"undefined cannot be converted to byte array"),g(e!==null,"null cannot be converted to byte array");let t=JSON.stringify(e),r=new TextEncoder;return o(r.encode(t))}catch(t){return u(String(t))}}function X(e){try{g(e.length>0,"empty byte array cannot be converted to value");let t=new TextDecoder().decode(e),r=JSON.parse(t);return o(r)}catch(t){return u(String(t))}}var K=["VP8","VP9","AV1","H264"],L=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return K.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=x(this.getMimeType(),"").toLowerCase(),r=new Set(x(this.getSdpFmtpLine(),"").split(";").map(n=>n.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(n=>{let s=n.mimeType.toLowerCase(),i=new Set((n.sdpFmtpLine??"").split(";").map(a=>a.trim().toLowerCase()));if(t!==s||r.size!==i.size)return!1;for(let a of r)if(!i.has(a))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return o(96);case"VP9":return o(98);case"AV1":return o(41);case"H264":return o(102);default:return u("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return o("video/VP8");case"VP9":return o("video/VP9");case"AV1":return o("video/AV1");case"H264":return o("video/H264");default:return u("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return o("");case"VP9":return o("profile-id=2");case"AV1":return o("level-idx=5;profile=0;tier=0");case"H264":return o("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return u("invalid video codec")}}};function Q(e,t){for(let r of e)if(t(r))return r}function ee(){return typeof AudioContext<"u"&&typeof Worker<"u"}function te(){return typeof SharedArrayBuffer<"u"}function V(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function re(){return/electron/i.test(globalThis.navigator.userAgent)}function ne(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function oe(){return V()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function ie(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,r]=await Promise.race(this._Futures);return this._Futures[r]=e.addIndex(this._Generators[r],r),t}static async addIndex(t,r){return[await t(),r]}};function se(e,t){return e<=0?Promise.resolve(t):new Promise(r=>setTimeout(()=>r(t),e))}function ae(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(r=>{let n=()=>r("aborted");t.addEventListener("abort",n,{once:!0}),setTimeout(()=>{t.removeEventListener("abort",n),r(void 0)},e)})}function ue(){return new Promise(e=>setTimeout(e,0))}var R=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((r,n)=>{let s=async()=>{try{let i=await t(...this._Values);r(i)}catch(i){n(i)}};this._Tasks.push(s),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 ce(e){let t=e.trim();e.indexOf("://")===-1&&(t=`https://${t}`);try{return o(new URL(t))}catch(r){return u(String(r))}}function le(e,t){let r=e.pathname;r.endsWith("/")===!1&&(r+="/");try{return o(new URL(r+t,e))}catch(n){return u(String(n))}}var de=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function pe(){return crypto.randomUUID()}function ge(e){return de.test(e)}function fe(e,t){return t in e}function me(e){return typeof e=="function"}function xe(e){return typeof e=="object"&&e===null}function ye(e){return typeof e=="number"}function be(e){return typeof e=="object"}function ve(e){return typeof e=="string"}function Le(e){return typeof e>"u"}function he(e){return e.type==="Failure"}function Re(e){return e.type==="Success"}var{Deno:O}=globalThis,ke=typeof O?.noColor=="boolean"?O.noColor:!1,Te=!ke;function k(e,t){return{open:`\x1B[${e.join(";")}m`,close:`\x1B[${t}m`,regexp:new RegExp(`\\x1b\\[${t}m`,"g")}}function T(e,t){return Te?`${t.open}${e.replace(t.regexp,t.open)}${t.close}`:e}function y(e){return T(e,k([0],0))}function C(e){return T(e,k([1],22))}function F(e){return T(e,k([2],22))}var ot=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 Se=new Date,d=(i=>(i[i.CRITICAL=0]="CRITICAL",i[i.ERROR=1]="ERROR",i[i.WARN=2]="WARN",i[i.INFO=3]="INFO",i[i.DEBUG=4]="DEBUG",i))(d||{}),P={0:"\u{1F4A5}",1:"\u{1F534}",2:"\u{1F7E1}",3:"\u{1F535}",4:"\u{1F7E3}"},we={4:F,3:y,2:y,1:C,0:C};function Pe(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 Ae({message:e}){return String(e)}function D(e){return JSON.stringify({timestamp:e.date.toISOString(),level:d[e.level],message:e.message,extra:e.extra})}function B(e){function t(a,l){return[Math.floor(a/l),a%l]}function r(){let a,l=e.date.valueOf()-Se.valueOf();[l,a]=t(l,1e3);let[I,E]=t(l,60);return`${I.toString().padStart(4,"0")}:${E.toString().padStart(2,"0")}.${a.toString().padStart(4,"0")}`}function n(){return e.extra===void 0?"":typeof Deno=="object"?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let s=P[e.level],i=e.logger.name!==void 0?`@${e.logger}`:"";return`${y(r())}${i} ${s} ${we[e.level](String(e.message))}${n()}`}function Ve(e){let t=`[${e.date.toISOString()}]`,r=`[${d[e.level]}]`,n=e.logger.name!==void 0?`[${e.logger.name}] `:"",s=P[e.level];return`${t} ${s} ${r.padEnd(7," ")} ${n}${e.message}`}function Oe(){return typeof Deno=="object"&&Deno.stdout.isTerminal()}var f=class{static sparse=Ae;static json=D;static pretty=B;static structured=Ve;static default=Oe()?B:D;constructor(){}},m=class{formatter;consoleObject;filter;constructor(t=f.default,r=4,n=console){this.filter=r,this.formatter=t,this.consoleObject=n}handle(t){let r=this.formatter(t);switch(t.level){case 1:this.consoleObject.error(r);break;case 2:this.consoleObject.warn(r);break;case 3:this.consoleObject.info(r);break;case 4:this.consoleObject.debug(r);break}}},S=class extends m{handle(t){let r=this.formatter(t),n=t.extra!==void 0?[r,t.extra]:[r];switch(t.level){case 0:case 1:this.consoleObject.error(...n);break;case 2:this.consoleObject.warn(...n);break;case 3:this.consoleObject.info(...n);break;case 4:this.consoleObject.debug(...n);break}}},w=class{formatter;cb;filter;constructor(t,r=f.default,n=4){this.cb=t,this.formatter=r,this.filter=n}handle(t){let r=this.formatter(t);this.cb(r,t)}},c=class{#e;sinks;filter;parent;get name(){return this.#e}constructor(t,r=void 0,n=[],s=void 0){this.#e=r,this.sinks=n,this.filter=t,this.parent=s}log(t,r,n=void 0){let i={date:new Date,level:t,logger:this,message:r,extra:n};this.filter<t||this.insert(i)}insert(t){if(!(this.filter<t.level)){for(let r of this.sinks)r.filter>=t.level&&r.handle(t);this.parent!==void 0&&this.parent.insert(t)}}error=this.log.bind(this,1);warn=this.log.bind(this,2);info=this.log.bind(this,3);debug=this.log.bind(this,4)},p=new c(3,void 0,[new m]),Fe=c.prototype.log.bind(p,1),De=c.prototype.log.bind(p,2),Be=c.prototype.log.bind(p,3),Ie=c.prototype.log.bind(p,4),Ee=c.prototype.log.bind(p);0&&(module.exports={APM_DEFAULTS,Backend,CONNECTION_STATS_INITIAL,CallbackSink,ConsoleSink,Formatter,GLOBAL_LOGGER,InteractiveConsoleSink,JITTER_STATS_INITIAL,LogLevel,LogSymbols,Logger,MinDBFS,Selector,Strand,VAD_DEFAULTS,VideoCodec,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,sleep,success,toBytes,toRaw,tryParseLogLevel,unwrap,unwrapOr,validateUUID,warn});
package/esm/api/mod.js CHANGED
@@ -1 +1 @@
1
- import{z as d}from"zod";import{z as o}from"zod";var s=o.custom(n=>n instanceof Uint8Array),b=o.lazy(()=>o.union([o.union([o.string(),o.number(),o.boolean(),o.null()]),o.array(b),o.record(o.string(),b)])),$=o.union([o.tuple([o.literal(0),o.number(),o.string(),o.unknown()]),o.tuple([o.literal(1),o.number(),o.nullable(o.string()),o.unknown()]),o.tuple([o.literal(2),o.string(),o.unknown()])]);function f(n){return o.union([n.transform(p=>[p]),o.array(n)])}var H=d.enum(["sfu","gateway"]),W=d.enum(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),re=d.object({uid:d.string(),cid:d.string().optional(),rid:f(d.string()).refine(n=>n.length>=1,{message:"missing rid"}),nsp:d.string().optional(),adr:d.string().optional(),aud:f(H).optional(),sub:f(W).optional(),exp:d.number().optional(),nbf:d.number().optional(),ups:d.string().optional(),tgs:f(d.string()).optional(),tsp:d.number().optional(),internal:d.object({server:d.string().optional()}).optional()});import{z as e}from"zod";import{z as m}from"zod";var l=m.number(),E=m.object({kind:m.literal("audio").optional(),uid:m.string().optional(),ref:m.string().optional(),customType:m.string().optional()}),B=m.object({kind:m.literal("video"),codec:m.string().optional(),uid:m.string().optional(),ref:m.string().optional(),customType:m.string().optional()}),_=m.union([E,B]),k=m.object({id:l,properties:_,paused:m.boolean()});import{z as i}from"zod";var u=i.number(),S=i.union([i.tuple([i.number(),i.number(),i.number()]),i.tuple([i.number(),i.number()])]),z=i.object({id:u,user_id:i.string(),user_data:s,medias:i.array(k)}),C=i.discriminatedUnion("kind",[i.object({kind:i.literal("UserDataChanged"),peer_id:u,user_data:s}),i.object({kind:i.literal("MediaStarted"),peer_id:u,media:k}),i.object({kind:i.literal("MediaStopped"),peer_id:u,media_id:l})]);var P=e.string(),T;(x=>(x.RoomSchema=e.object({id:P,customer:e.string(),user_data:s,peers:e.array(z)}),x.RoomUpdateSchema=e.discriminatedUnion("kind",[e.object({kind:e.literal("Joined"),room:x.RoomSchema,media_ids:e.array(l),own_peer_id:u}),e.object({kind:e.literal("Left"),reason:e.enum(["RoomClosing","ServerClosing","PeerKicked"])}),e.object({kind:e.literal("PeerJoined"),peer:z}),e.object({kind:e.literal("PeerLeft"),peer_id:u}),e.object({kind:e.literal("UserDataChanged"),user_data:s.optional()})]),x.RoomUpdatesSchema=e.object({updates:e.array(x.RoomUpdateSchema)}),x.RoomStatusSchema=e.enum(["Joining","Joined","Closed"]),x.RoomStatusChangedSchema=e.object({status:x.RoomStatusSchema,message:e.string().optional()})))(T||={});var O;(t=>{t.ParametersSchema=e.record(e.string(),b),t.HelloRoomSchema=e.object({token:e.string(),room_id:P.optional(),user_data:s.optional(),parameters:t.ParametersSchema.optional()}),t.ClientHelloSchema=e.object({Room:t.HelloRoomSchema}),t.ServerHelloSchema=e.union([e.object({Ok:e.object({})}),e.object({Rejected:e.object({message:e.string()})})]);let y=e.object({user_data:s.optional(),tags:e.array(e.string()).optional(),audio_parameters:t.ParametersSchema.optional(),video_parameters:t.ParametersSchema.optional()});t.PeerPropertiesSchema=y,t.PingSchema=e.object({Ping:e.object({id:e.number()})}),t.ChangeSelfSchema=e.object({ChangeSelf:y.omit({tags:!0})}),t.SetAudioMaskSchema=e.object({SetAudioMask:e.object({peer_id:e.number(),mask:e.bigint().nonnegative().lte(0xFFFFFFFFFFFFFFFFn)})}),t.SendMessageSchema=e.object({SendMessage:e.object({peer_ids:e.number().array().default([]),message:s})}),t.CallSchema=t.PingSchema.or(t.ChangeSelfSchema).or(t.SetAudioMaskSchema).or(t.SendMessageSchema),t.PongSchema=e.object({Pong:e.object({id:e.number()})}),t.JoinedSchema=e.object({Joined:e.object({own_peer_id:e.number(),room_id:e.string(),customer:e.string()})}),t.LeftSchema=e.object({Left:e.object({reason:e.enum(["room_closing","server_closing","peer_kicked"])})}),t.PeerJoinedSchema=e.object({PeerJoined:y.extend({peer_id:e.number(),user_id:e.string()})}),t.PeerLeftSchema=e.object({PeerLeft:e.object({peer_id:e.number()})}),t.PeerChangedSchema=e.object({PeerChanged:y.extend({peer_id:e.number()})}),t.NewReconnectTokenSchema=e.object({NewReconnectToken:e.object({token:e.string()})}),t.MessageReceivedSchema=e.object({MessageReceived:e.object({sender_peer_id:e.number(),message:s})}),t.ServerErrorSchema=e.object({Error:e.object({message:s})}),t.EventSchema=t.PongSchema.or(t.JoinedSchema).or(t.LeftSchema).or(t.PeerJoinedSchema).or(t.PeerLeftSchema).or(t.PeerChangedSchema).or(t.NewReconnectTokenSchema).or(t.MessageReceivedSchema).or(t.ServerErrorSchema)})(O||={});import{z as D}from"zod";var M=D.object({sender_peer_id:u,message:s});import{z as a}from"zod";var h=a.discriminatedUnion("kind",[a.object({kind:a.literal("Sdp"),type:a.enum(["Answer","Offer"]),sdp:a.string(),media_map:a.array(a.tuple([l,a.string()]))}),a.object({kind:a.literal("Trickle"),candidate:a.string(),spd_mid:a.string().optional(),spd_mline_index:a.number().optional(),username_fragment:a.union([a.string(),a.null()]).optional()}),a.object({kind:a.literal("TrickleFinished")})]);import{z as r}from"zod";function R(n,p){n||G(p)}function G(n){throw new Error(n)}function je(n,p,g){let c=g[n];if(!c)return;let y=c.request.safeParse(p);return y.success?{name:n,request:y.data}:void 0}function Ue(n,p,g){let c=g[n];return R(c!==void 0,"unknown command schema"),c.request.parse(p)}function ve(n,p,g){let c=g[n]?.response.safeParse(p);return c?.success?c.data:void 0}var Ae={Hello:{request:r.object({stream:r.literal("main")}),response:r.null()},JoinRoom:{request:r.object({token:r.string(),room_id:P,user_data:s,position:S}),response:r.object({peer_id:u,stream_id:r.number().optional(),token:r.string().optional()})},WebRtcUpdate:{request:h,response:r.null()},RequestReconnectToken:{request:r.object({peer_id:u.optional()}),response:r.string()},Ping:{request:r.object({}),response:r.null()}},Ie={Hello:{request:r.object({stream:r.literal("room"),token:r.string(),room_id:r.string(),user_data:s,position:S}),response:r.null()},UpdatePeer:{request:r.object({user_data:s}),response:r.null()},StartMedia:{request:r.object({media_id:l,properties:_}),response:r.null()},StopMedia:{request:r.object({media_id:l}),response:r.null()},PauseMedia:{request:r.object({media_id:l}),response:r.null()},ResumeMedia:{request:r.object({media_id:l}),response:r.null()},SetPeerPosition:{request:r.object({position:S}),response:r.null()},SendMessage:{request:r.object({target_peer_ids:r.array(u).optional(),message:s}),response:r.null()}};function Fe(n,p,g){let c=g[n];if(!c)return;let y=c.safeParse(p);return y.success?{name:n,properties:y.data}:void 0}var Le={WebRtcUpdate:h},He={RoomStatusChanged:T.RoomStatusChangedSchema,RoomUpdated:T.RoomUpdatesSchema,PeerUpdated:C,MessageReceived:M};export{s as ByteArraySchema,b as JsonSchema,Ae as MainCommandsRpc,Le as MainNotificationsRpc,E as MediaAudioPropertiesSchema,l as MediaIdSchema,_ as MediaPropertiesSchema,k as MediaSchema,B as MediaVideoPropertiesSchema,$ as MessagePackRpcSchema,M as MessageReceivedSchema,u as PeerIdSchema,S as PeerPositionSchema,z as PeerSchema,C as PeerUpdateSchema,Ie as RoomCommandsRpc,P as RoomIdSchema,He as RoomNotificationsRpc,T as RoomV1,O as RoomV2,H as TokenAudienceSchema,re as TokenClaimsSchema,W as TokenSubjectSchema,h as WebRtcUpdateSchema,f as oneOrMany,je as parseCommand,Fe as parseNotification,Ue as parseRequest,ve as parseResponse};
1
+ import{z as m}from"zod";import{z as o}from"zod";var a=o.custom(n=>n instanceof Uint8Array),S=o.lazy(()=>o.union([o.union([o.string(),o.number(),o.boolean(),o.null()]),o.array(S),o.record(o.string(),S)])),ee=o.union([o.tuple([o.literal(0),o.number(),o.string(),o.unknown()]),o.tuple([o.literal(1),o.number(),o.nullable(o.string()),o.unknown()]),o.tuple([o.literal(2),o.string(),o.unknown()])]);function b(n){return o.union([n.transform(p=>[p]),o.array(n)])}var W=m.enum(["sfu","gateway"]),E=m.enum(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),ne=m.object({uid:m.string(),cid:m.string().optional(),rid:b(m.string()).refine(n=>n.length>=1,{message:"missing rid"}),nsp:m.string().optional(),adr:m.string().optional(),aud:b(W).optional(),sub:b(E).optional(),exp:m.number().optional(),nbf:m.number().optional(),ups:m.string().optional(),tgs:b(m.string()).optional(),tsp:m.number().optional(),internal:m.object({server:m.string().optional()}).optional()});import{z as e}from"zod";import{z as c}from"zod";var l=c.number(),O=c.object({kind:c.literal("audio").optional(),uid:c.string().optional(),ref:c.string().optional(),customType:c.string().optional()}),B=c.object({kind:c.literal("video"),codec:c.string().optional(),uid:c.string().optional(),ref:c.string().optional(),customType:c.string().optional()}),_=c.union([O,B]),z=c.object({id:l,properties:_,paused:c.boolean()});import{z as i}from"zod";var u=i.number(),P=i.union([i.tuple([i.number(),i.number(),i.number()]),i.tuple([i.number(),i.number()])]),C=i.object({id:u,user_id:i.string(),user_data:a,medias:i.array(z)}),M=i.discriminatedUnion("kind",[i.object({kind:i.literal("UserDataChanged"),peer_id:u,user_data:a}),i.object({kind:i.literal("MediaStarted"),peer_id:u,media:z}),i.object({kind:i.literal("MediaStopped"),peer_id:u,media_id:l})]);var T=e.string(),h;(g=>(g.RoomSchema=e.object({id:T,customer:e.string(),user_data:a,peers:e.array(C)}),g.RoomUpdateSchema=e.discriminatedUnion("kind",[e.object({kind:e.literal("Joined"),room:g.RoomSchema,media_ids:e.array(l),own_peer_id:u}),e.object({kind:e.literal("Left"),reason:e.enum(["RoomClosing","ServerClosing","PeerKicked"])}),e.object({kind:e.literal("PeerJoined"),peer:C}),e.object({kind:e.literal("PeerLeft"),peer_id:u}),e.object({kind:e.literal("UserDataChanged"),user_data:a.optional()})]),g.RoomUpdatesSchema=e.object({updates:e.array(g.RoomUpdateSchema)}),g.RoomStatusSchema=e.enum(["Joining","Joined","Closed"]),g.RoomStatusChangedSchema=e.object({status:g.RoomStatusSchema,message:e.string().optional()})))(h||={});var D;(t=>{t.ParametersSchema=e.record(e.string(),S),t.PositionSchema=e.object({x:e.number(),y:e.number(),z:e.number(),channel:e.number()}),t.ChannelMaskSchema=e.bigint().nonnegative().lte(0xFFFFFFFFFFFFFFFFn),t.HelloRoomSchema=e.object({token:e.string(),room_id:T.optional(),user_data:a.optional(),parameters:t.ParametersSchema.optional(),channel_masks:e.array(e.tuple([e.number(),t.ChannelMaskSchema])).optional(),positions:e.array(t.PositionSchema).optional()}),t.ClientHelloSchema=e.object({Room:t.HelloRoomSchema}),t.ServerHelloSchema=e.union([e.object({Ok:e.object({})}),e.object({Rejected:e.object({message:e.string()})})]);let f=e.object({user_data:a.optional(),tags:e.array(e.string()).optional(),parameters:t.ParametersSchema.optional()});t.PeerPropertiesSchema=f,t.PingSchema=e.object({Ping:e.object({id:e.number()})}),t.ChangeSelfSchema=e.object({ChangeSelf:f.omit({tags:!0})}),t.SetAudioMaskSchema=e.object({SetAudioMask:e.object({peer_id:e.number(),mask:t.ChannelMaskSchema})}),t.SendMessageSchema=e.object({SendMessage:e.object({peer_ids:e.number().array().default([]),message:a})}),t.CallSchema=t.PingSchema.or(t.ChangeSelfSchema).or(t.SetAudioMaskSchema).or(t.SendMessageSchema),t.PongSchema=e.object({Pong:e.object({id:e.number()})}),t.JoinedSchema=e.object({Joined:e.object({own_peer_id:e.number(),room_id:e.string(),customer:e.string()})}),t.LeftSchema=e.object({Left:e.object({reason:e.enum(["room_closing","server_closing","peer_kicked"])})}),t.PeerJoinedSchema=e.object({PeerJoined:f.extend({peer_id:e.number(),user_id:e.string()})}),t.PeerLeftSchema=e.object({PeerLeft:e.object({peer_id:e.number()})}),t.PeerChangedSchema=e.object({PeerChanged:f.extend({peer_id:e.number()})}),t.NewReconnectTokenSchema=e.object({NewReconnectToken:e.object({token:e.string()})}),t.MessageReceivedSchema=e.object({MessageReceived:e.object({sender_peer_id:e.number(),message:a})}),t.ServerErrorSchema=e.object({Error:e.object({message:e.string()})}),t.EventSchema=t.PongSchema.or(t.JoinedSchema).or(t.LeftSchema).or(t.PeerJoinedSchema).or(t.PeerLeftSchema).or(t.PeerChangedSchema).or(t.NewReconnectTokenSchema).or(t.MessageReceivedSchema).or(t.ServerErrorSchema)})(D||={});import{z as G}from"zod";var R=G.object({sender_peer_id:u,message:a});import{z as s}from"zod";var k=s.discriminatedUnion("kind",[s.object({kind:s.literal("Sdp"),type:s.enum(["Answer","Offer"]),sdp:s.string(),media_map:s.array(s.tuple([l,s.string()]))}),s.object({kind:s.literal("Trickle"),candidate:s.string(),spd_mid:s.string().optional(),spd_mline_index:s.number().optional(),username_fragment:s.union([s.string(),s.null()]).optional()}),s.object({kind:s.literal("TrickleFinished")})]);import{z as r}from"zod";function Z(n,p){n||Q(p)}function Q(n){throw new Error(n)}function ve(n,p,y){let d=y[n];if(!d)return;let x=d.request.safeParse(p);return x.success?{name:n,request:x.data}:void 0}function Ae(n,p,y){let d=y[n];return Z(d!==void 0,"unknown command schema"),d.request.parse(p)}function Ie(n,p,y){let d=y[n]?.response.safeParse(p);return d?.success?d.data:void 0}var qe={Hello:{request:r.object({stream:r.literal("main")}),response:r.null()},JoinRoom:{request:r.object({token:r.string(),room_id:T,user_data:a,position:P}),response:r.object({peer_id:u,stream_id:r.number().optional(),token:r.string().optional()})},WebRtcUpdate:{request:k,response:r.null()},RequestReconnectToken:{request:r.object({peer_id:u.optional()}),response:r.string()},Ping:{request:r.object({}),response:r.null()}},Ne={Hello:{request:r.object({stream:r.literal("room"),token:r.string(),room_id:r.string(),user_data:a,position:P}),response:r.null()},UpdatePeer:{request:r.object({user_data:a}),response:r.null()},StartMedia:{request:r.object({media_id:l,properties:_}),response:r.null()},StopMedia:{request:r.object({media_id:l}),response:r.null()},PauseMedia:{request:r.object({media_id:l}),response:r.null()},ResumeMedia:{request:r.object({media_id:l}),response:r.null()},SetPeerPosition:{request:r.object({position:P}),response:r.null()},SendMessage:{request:r.object({target_peer_ids:r.array(u).optional(),message:a}),response:r.null()}};function He(n,p,y){let d=y[n];if(!d)return;let x=d.safeParse(p);return x.success?{name:n,properties:x.data}:void 0}var We={WebRtcUpdate:k},Ee={RoomStatusChanged:h.RoomStatusChangedSchema,RoomUpdated:h.RoomUpdatesSchema,PeerUpdated:M,MessageReceived:R};export{a as ByteArraySchema,S as JsonSchema,qe as MainCommandsRpc,We as MainNotificationsRpc,O as MediaAudioPropertiesSchema,l as MediaIdSchema,_ as MediaPropertiesSchema,z as MediaSchema,B as MediaVideoPropertiesSchema,ee as MessagePackRpcSchema,R as MessageReceivedSchema,u as PeerIdSchema,P as PeerPositionSchema,C as PeerSchema,M as PeerUpdateSchema,Ne as RoomCommandsRpc,T as RoomIdSchema,Ee as RoomNotificationsRpc,h as RoomV1,D as RoomV2,W as TokenAudienceSchema,ne as TokenClaimsSchema,E as TokenSubjectSchema,k as WebRtcUpdateSchema,b as oneOrMany,ve as parseCommand,He as parseNotification,Ae as parseRequest,Ie as parseResponse};
package/esm/mod.js CHANGED
@@ -1 +1 @@
1
- var H=-758.596,B;(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||={})})(B||={});var z={bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0,rtt:0,packetLoss:0},Z={packetsBuffered:0,packetsSeen:0,packetsProcessed:0,packetsTooEarly:0,packetsTooLate:0,packetsDropped:0,packetsInvalid:0,packetsRepeated:0,packetsLost:0},q={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},Y={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};function g(e,t){e||L(t)}function L(e){throw new Error(e)}function o(e){return{type:"Success",value:e}}function u(e){return{type:"Failure",reason:e}}function K(e){return e.type==="Failure"&&L(e.reason),e.value}function x(e,t){return e.type==="Success"?e.value:t}function te(e){try{let t=atob(e),r=Uint8Array.from(t,a=>a.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return u(String(t))}}function re(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(t,a=>a.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return u(String(t))}}function ie(e){try{g(e!==void 0,"undefined cannot be converted to byte array"),g(e!==null,"null cannot be converted to byte array");let t=JSON.stringify(e),r=new TextEncoder;return o(r.encode(t))}catch(t){return u(String(t))}}function se(e){try{g(e.length>0,"empty byte array cannot be converted to value");let t=new TextDecoder().decode(e),r=JSON.parse(t);return o(r)}catch(t){return u(String(t))}}var I=["VP8","VP9","AV1","H264"],h=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return I.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=x(this.getMimeType(),"").toLowerCase(),r=new Set(x(this.getSdpFmtpLine(),"").split(";").map(n=>n.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(n=>{let a=n.mimeType.toLowerCase(),i=new Set((n.sdpFmtpLine??"").split(";").map(s=>s.trim().toLowerCase()));if(t!==a||r.size!==i.size)return!1;for(let s of r)if(!i.has(s))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return o(96);case"VP9":return o(98);case"AV1":return o(41);case"H264":return o(102);default:return u("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return o("video/VP8");case"VP9":return o("video/VP9");case"AV1":return o("video/AV1");case"H264":return o("video/H264");default:return u("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return o("");case"VP9":return o("profile-id=2");case"AV1":return o("level-idx=5;profile=0;tier=0");case"H264":return o("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return u("invalid video codec")}}};function le(e,t){for(let r of e)if(t(r))return r}function pe(){return typeof AudioContext<"u"&&typeof Worker<"u"}function ge(){return typeof SharedArrayBuffer<"u"}function E(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function fe(){return/electron/i.test(globalThis.navigator.userAgent)}function me(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function xe(){return E()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function be(e){return JSON.parse(JSON.stringify(e))}var R=class e{constructor(t){this._Generators=t;this._Futures=t.map(e.addIndex)}_Futures;async next(){let[t,r]=await Promise.race(this._Futures);return this._Futures[r]=e.addIndex(this._Generators[r],r),t}static async addIndex(t,r){return[await t(),r]}};function he(e,t){return e<=0?Promise.resolve(t):new Promise(r=>setTimeout(()=>r(t),e))}function Re(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(r=>{let n=()=>r("aborted");t.addEventListener("abort",n,{once:!0}),setTimeout(()=>{t.removeEventListener("abort",n),r(void 0)},e)})}function ke(){return new Promise(e=>setTimeout(e,0))}var k=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((r,n)=>{let a=async()=>{try{let i=await t(...this._Values);r(i)}catch(i){n(i)}};this._Tasks.push(a),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 we(e){let t=e.trim();e.indexOf("://")===-1&&(t=`https://${t}`);try{return o(new URL(t))}catch(r){return u(String(r))}}function Pe(e,t){let r=e.pathname;r.endsWith("/")===!1&&(r+="/");try{return o(new URL(r+t,e))}catch(n){return u(String(n))}}var U=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Ve(){return crypto.randomUUID()}function Oe(e){return U.test(e)}function De(e,t){return t in e}function Be(e){return typeof e=="function"}function Ie(e){return typeof e=="object"&&e===null}function Ee(e){return typeof e=="number"}function Ue(e){return typeof e=="object"}function Ne(e){return typeof e=="string"}function Me(e){return typeof e>"u"}function je(e){return e.type==="Failure"}function _e(e){return e.type==="Success"}var{Deno:T}=globalThis,N=typeof T?.noColor=="boolean"?T.noColor:!1,M=!N;function y(e,t){return{open:`\x1B[${e.join(";")}m`,close:`\x1B[${t}m`,regexp:new RegExp(`\\x1b\\[${t}m`,"g")}}function b(e,t){return M?`${t.open}${e.replace(t.regexp,t.open)}${t.close}`:e}function f(e){return b(e,y([0],0))}function v(e){return b(e,y([1],22))}function C(e){return b(e,y([2],22))}var Ge=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 _=new Date,d=(i=>(i[i.CRITICAL=0]="CRITICAL",i[i.ERROR=1]="ERROR",i[i.WARN=2]="WARN",i[i.INFO=3]="INFO",i[i.DEBUG=4]="DEBUG",i))(d||{}),V={0:"\u{1F4A5}",1:"\u{1F534}",2:"\u{1F7E1}",3:"\u{1F535}",4:"\u{1F7E3}"},$={4:C,3:f,2:f,1:v,0:v};function Je(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 G({message:e}){return String(e)}function S(e){return JSON.stringify({timestamp:e.date.toISOString(),level:d[e.level],message:e.message,extra:e.extra})}function w(e){function t(s,l){return[Math.floor(s/l),s%l]}function r(){let s,l=e.date.valueOf()-_.valueOf();[l,s]=t(l,1e3);let[F,D]=t(l,60);return`${F.toString().padStart(4,"0")}:${D.toString().padStart(2,"0")}.${s.toString().padStart(4,"0")}`}function n(){return e.extra===void 0?"":typeof Deno=="object"?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let a=V[e.level],i=e.logger.name!==void 0?`@${e.logger}`:"";return`${f(r())}${i} ${a} ${$[e.level](String(e.message))}${n()}`}function J(e){let t=`[${e.date.toISOString()}]`,r=`[${d[e.level]}]`,n=e.logger.name!==void 0?`[${e.logger.name}] `:"",a=V[e.level];return`${t} ${a} ${r.padEnd(7," ")} ${n}${e.message}`}function W(){return typeof Deno=="object"&&Deno.stdout.isTerminal()}var O={sparse:G,json:S,pretty:w,structured:J,default:W()?w:S},m=class{formatter;consoleObject;filter;constructor(t=O.default,r=4,n=console){this.filter=r,this.formatter=t,this.consoleObject=n}handle(t){let r=this.formatter(t);switch(t.level){case 1:this.consoleObject.error(r);break;case 2:this.consoleObject.warn(r);break;case 3:this.consoleObject.info(r);break;case 4:this.consoleObject.debug(r);break}}},P=class extends m{handle(t){let r=this.formatter(t),n=t.extra!==void 0?[r,t.extra]:[r];switch(t.level){case 0:case 1:this.consoleObject.error(...n);break;case 2:this.consoleObject.warn(...n);break;case 3:this.consoleObject.info(...n);break;case 4:this.consoleObject.debug(...n);break}}},A=class{formatter;cb;filter;constructor(t,r=O.default,n=4){this.cb=t,this.formatter=r,this.filter=n}handle(t){let r=this.formatter(t);this.cb(r,t)}},c=class{#e;sinks;filter;parent;get name(){return this.#e}constructor(t,r=void 0,n=[],a=void 0){this.#e=r,this.sinks=n,this.filter=t,this.parent=a}log(t,r,n=void 0){let i={date:new Date,level:t,logger:this,message:r,extra:n};this.filter<t||this.insert(i)}insert(t){if(!(this.filter<t.level)){for(let r of this.sinks)r.filter>=t.level&&r.handle(t);this.parent!==void 0&&this.parent.insert(t)}}error=this.log.bind(this,1);warn=this.log.bind(this,2);info=this.log.bind(this,3);debug=this.log.bind(this,4)},p=new c(3,void 0,[new m]),We=c.prototype.log.bind(p,1),He=c.prototype.log.bind(p,2),ze=c.prototype.log.bind(p,3),Ze=c.prototype.log.bind(p,4),qe=c.prototype.log.bind(p);export{Y as APM_DEFAULTS,B as Backend,z as CONNECTION_STATS_INITIAL,A as CallbackSink,m as ConsoleSink,O as Formatter,p as GLOBAL_LOGGER,P as InteractiveConsoleSink,Z as JITTER_STATS_INITIAL,d as LogLevel,V as LogSymbols,c as Logger,H as MinDBFS,R as Selector,k as Strand,q as VAD_DEFAULTS,h as VideoCodec,Re as abortableSleep,g as assert,Ze as debug,We as error,Pe as extendUrl,L as fail,u as failure,le as find,te as fromBase64,re as fromBase64Url,se as fromBytes,Ve as generateUUID,ze as info,pe as isAudioCapable,E as isBlinkBrowser,fe as isElectronBrowser,je as isFailure,me as isFirefoxBrowser,Be as isFunction,Ie as isNull,Ee as isNumber,Ue as isObject,De as isProperty,xe as isSafariBrowser,ge as isSharedArrayBufferCapable,Ne as isString,_e as isSuccess,Me as isUndefined,qe as log,ke as nextTick,we as normalizeUrl,he as sleep,o as success,ie as toBytes,be as toRaw,Je as tryParseLogLevel,K as unwrap,x as unwrapOr,Oe as validateUUID,He as warn};
1
+ var H=-758.596,B;(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||={})})(B||={});var z={bytesSent:0,bytesReceived:0,packetsSent:0,packetsReceived:0,rtt:0,packetLoss:0},Z={packetsBuffered:0,packetsSeen:0,packetsProcessed:0,packetsTooEarly:0,packetsTooLate:0,packetsDropped:0,packetsInvalid:0,packetsRepeated:0,packetsLost:0},q={voiceActivity:{attackThreshold:.9,releaseThreshold:.8},volumeGate:{attackThreshold:-30,releaseThreshold:-40}},Y={echoCanceller:!0,highPassFilter:!1,noiseSuppression:"Moderate",transientSuppressor:!1,gainController:!0};function g(e,t){e||h(t)}function h(e){throw new Error(e)}function o(e){return{type:"Success",value:e}}function u(e){return{type:"Failure",reason:e}}function K(e){return e.type==="Failure"&&h(e.reason),e.value}function y(e,t){return e.type==="Success"?e.value:t}function te(e){try{let t=atob(e),r=Uint8Array.from(t,a=>a.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return u(String(t))}}function re(e){try{let t=atob(e.replace(/-/g,"+").replace(/_/g,"/")),r=Uint8Array.from(t,a=>a.codePointAt(0)),n=new TextDecoder("utf8");return o(n.decode(r))}catch(t){return u(String(t))}}function ie(e){try{g(e!==void 0,"undefined cannot be converted to byte array"),g(e!==null,"null cannot be converted to byte array");let t=JSON.stringify(e),r=new TextEncoder;return o(r.encode(t))}catch(t){return u(String(t))}}function se(e){try{g(e.length>0,"empty byte array cannot be converted to value");let t=new TextDecoder().decode(e),r=JSON.parse(t);return o(r)}catch(t){return u(String(t))}}var I=["VP8","VP9","AV1","H264"],R=class{constructor(t){this.codec=t}channels=0;clockRate=9e4;isValid(){return I.includes(this.codec)}isSupported(){if(typeof RTCRtpReceiver>"u"||typeof RTCRtpReceiver.getCapabilities>"u")return null;let t=y(this.getMimeType(),"").toLowerCase(),r=new Set(y(this.getSdpFmtpLine(),"").split(";").map(n=>n.trim().toLowerCase()));return RTCRtpReceiver.getCapabilities("video")?.codecs?.find(n=>{let a=n.mimeType.toLowerCase(),i=new Set((n.sdpFmtpLine??"").split(";").map(s=>s.trim().toLowerCase()));if(t!==a||r.size!==i.size)return!1;for(let s of r)if(!i.has(s))return!1;return!0})??null}getPayloadType(){switch(this.codec){case"VP8":return o(96);case"VP9":return o(98);case"AV1":return o(41);case"H264":return o(102);default:return u("invalid video codec")}}getMimeType(){switch(this.codec){case"VP8":return o("video/VP8");case"VP9":return o("video/VP9");case"AV1":return o("video/AV1");case"H264":return o("video/H264");default:return u("invalid video codec")}}getSdpFmtpLine(){switch(this.codec){case"VP8":return o("");case"VP9":return o("profile-id=2");case"AV1":return o("level-idx=5;profile=0;tier=0");case"H264":return o("level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f");default:return u("invalid video codec")}}};function le(e,t){for(let r of e)if(t(r))return r}function pe(){return typeof AudioContext<"u"&&typeof Worker<"u"}function ge(){return typeof SharedArrayBuffer<"u"}function E(){return/(apple)?webkit\/537\.36/i.test(globalThis.navigator.userAgent)}function fe(){return/electron/i.test(globalThis.navigator.userAgent)}function me(){return/firefox|iceweasel|fxios/i.test(globalThis.navigator.userAgent)}function xe(){return E()?!1:/safari|applewebkit/i.test(globalThis.navigator.userAgent)}function be(e){return JSON.parse(JSON.stringify(e))}var k=class e{constructor(t){this._Generators=t;this._Futures=t.map(e.addIndex)}_Futures;async next(){let[t,r]=await Promise.race(this._Futures);return this._Futures[r]=e.addIndex(this._Generators[r],r),t}static async addIndex(t,r){return[await t(),r]}};function he(e,t){return e<=0?Promise.resolve(t):new Promise(r=>setTimeout(()=>r(t),e))}function Re(e,t){return t.aborted?Promise.resolve("aborted"):new Promise(r=>{let n=()=>r("aborted");t.addEventListener("abort",n,{once:!0}),setTimeout(()=>{t.removeEventListener("abort",n),r(void 0)},e)})}function ke(){return new Promise(e=>setTimeout(e,0))}var T=class{_Tasks=[];_Running=!1;_Values;constructor(...t){this._Values=t}enqueue(t){return new Promise((r,n)=>{let a=async()=>{try{let i=await t(...this._Values);r(i)}catch(i){n(i)}};this._Tasks.push(a),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 we(e){let t=e.trim();e.indexOf("://")===-1&&(t=`https://${t}`);try{return o(new URL(t))}catch(r){return u(String(r))}}function Pe(e,t){let r=e.pathname;r.endsWith("/")===!1&&(r+="/");try{return o(new URL(r+t,e))}catch(n){return u(String(n))}}var U=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Ve(){return crypto.randomUUID()}function Oe(e){return U.test(e)}function De(e,t){return t in e}function Be(e){return typeof e=="function"}function Ie(e){return typeof e=="object"&&e===null}function Ee(e){return typeof e=="number"}function Ue(e){return typeof e=="object"}function Ne(e){return typeof e=="string"}function Me(e){return typeof e>"u"}function je(e){return e.type==="Failure"}function _e(e){return e.type==="Success"}var{Deno:C}=globalThis,N=typeof C?.noColor=="boolean"?C.noColor:!1,M=!N;function b(e,t){return{open:`\x1B[${e.join(";")}m`,close:`\x1B[${t}m`,regexp:new RegExp(`\\x1b\\[${t}m`,"g")}}function v(e,t){return M?`${t.open}${e.replace(t.regexp,t.open)}${t.close}`:e}function f(e){return v(e,b([0],0))}function L(e){return v(e,b([1],22))}function S(e){return v(e,b([2],22))}var Ge=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 _=new Date,d=(i=>(i[i.CRITICAL=0]="CRITICAL",i[i.ERROR=1]="ERROR",i[i.WARN=2]="WARN",i[i.INFO=3]="INFO",i[i.DEBUG=4]="DEBUG",i))(d||{}),O={0:"\u{1F4A5}",1:"\u{1F534}",2:"\u{1F7E1}",3:"\u{1F535}",4:"\u{1F7E3}"},$={4:S,3:f,2:f,1:L,0:L};function Je(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 G({message:e}){return String(e)}function w(e){return JSON.stringify({timestamp:e.date.toISOString(),level:d[e.level],message:e.message,extra:e.extra})}function P(e){function t(s,l){return[Math.floor(s/l),s%l]}function r(){let s,l=e.date.valueOf()-_.valueOf();[l,s]=t(l,1e3);let[F,D]=t(l,60);return`${F.toString().padStart(4,"0")}:${D.toString().padStart(2,"0")}.${s.toString().padStart(4,"0")}`}function n(){return e.extra===void 0?"":typeof Deno=="object"?" "+Deno.inspect(e.extra,{compact:!1,colors:!0,trailingComma:!0}).trimStart():" "+JSON.stringify(e.extra)}let a=O[e.level],i=e.logger.name!==void 0?`@${e.logger}`:"";return`${f(r())}${i} ${a} ${$[e.level](String(e.message))}${n()}`}function J(e){let t=`[${e.date.toISOString()}]`,r=`[${d[e.level]}]`,n=e.logger.name!==void 0?`[${e.logger.name}] `:"",a=O[e.level];return`${t} ${a} ${r.padEnd(7," ")} ${n}${e.message}`}function W(){return typeof Deno=="object"&&Deno.stdout.isTerminal()}var m=class{static sparse=G;static json=w;static pretty=P;static structured=J;static default=W()?P:w;constructor(){}},x=class{formatter;consoleObject;filter;constructor(t=m.default,r=4,n=console){this.filter=r,this.formatter=t,this.consoleObject=n}handle(t){let r=this.formatter(t);switch(t.level){case 1:this.consoleObject.error(r);break;case 2:this.consoleObject.warn(r);break;case 3:this.consoleObject.info(r);break;case 4:this.consoleObject.debug(r);break}}},A=class extends x{handle(t){let r=this.formatter(t),n=t.extra!==void 0?[r,t.extra]:[r];switch(t.level){case 0:case 1:this.consoleObject.error(...n);break;case 2:this.consoleObject.warn(...n);break;case 3:this.consoleObject.info(...n);break;case 4:this.consoleObject.debug(...n);break}}},V=class{formatter;cb;filter;constructor(t,r=m.default,n=4){this.cb=t,this.formatter=r,this.filter=n}handle(t){let r=this.formatter(t);this.cb(r,t)}},c=class{#e;sinks;filter;parent;get name(){return this.#e}constructor(t,r=void 0,n=[],a=void 0){this.#e=r,this.sinks=n,this.filter=t,this.parent=a}log(t,r,n=void 0){let i={date:new Date,level:t,logger:this,message:r,extra:n};this.filter<t||this.insert(i)}insert(t){if(!(this.filter<t.level)){for(let r of this.sinks)r.filter>=t.level&&r.handle(t);this.parent!==void 0&&this.parent.insert(t)}}error=this.log.bind(this,1);warn=this.log.bind(this,2);info=this.log.bind(this,3);debug=this.log.bind(this,4)},p=new c(3,void 0,[new x]),We=c.prototype.log.bind(p,1),He=c.prototype.log.bind(p,2),ze=c.prototype.log.bind(p,3),Ze=c.prototype.log.bind(p,4),qe=c.prototype.log.bind(p);export{Y as APM_DEFAULTS,B as Backend,z as CONNECTION_STATS_INITIAL,V as CallbackSink,x as ConsoleSink,m as Formatter,p as GLOBAL_LOGGER,A as InteractiveConsoleSink,Z as JITTER_STATS_INITIAL,d as LogLevel,O as LogSymbols,c as Logger,H as MinDBFS,k as Selector,T as Strand,q as VAD_DEFAULTS,R as VideoCodec,Re as abortableSleep,g as assert,Ze as debug,We as error,Pe as extendUrl,h as fail,u as failure,le as find,te as fromBase64,re as fromBase64Url,se as fromBytes,Ve as generateUUID,ze as info,pe as isAudioCapable,E as isBlinkBrowser,fe as isElectronBrowser,je as isFailure,me as isFirefoxBrowser,Be as isFunction,Ie as isNull,Ee as isNumber,Ue as isObject,De as isProperty,xe as isSafariBrowser,ge as isSharedArrayBufferCapable,Ne as isString,_e as isSuccess,Me as isUndefined,qe as log,ke as nextTick,we as normalizeUrl,he as sleep,o as success,ie as toBytes,be as toRaw,Je as tryParseLogLevel,K as unwrap,y as unwrapOr,Oe as validateUUID,He as warn};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@4players/odin-common",
3
- "version": "9.5.1",
3
+ "version": "9.6.0",
4
4
  "description": "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/utility/log.d.ts CHANGED
@@ -15,7 +15,14 @@ export interface LogSink {
15
15
  }
16
16
  export type ConsoleObject = Pick<typeof console, 'error' | 'warn' | 'info' | 'debug'>;
17
17
  export type LogFormatter = (record: LogRecord) => string;
18
- export declare const Formatter: Record<string, LogFormatter>;
18
+ export declare class Formatter {
19
+ static readonly sparse: LogFormatter;
20
+ static readonly json: LogFormatter;
21
+ static readonly pretty: LogFormatter;
22
+ static readonly structured: LogFormatter;
23
+ static readonly default: LogFormatter;
24
+ private constructor();
25
+ }
19
26
  export declare class ConsoleSink implements LogSink {
20
27
  protected formatter: LogFormatter;
21
28
  protected consoleObject: ConsoleObject;