@4players/odin-common
Version:
Commonly used type definitions and utility functions across ODIN web projects
2 lines (1 loc) • 9.34 kB
JavaScript
var b=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var $=Object.prototype.hasOwnProperty;var V=(n,a)=>{for(var u in a)b(n,u,{get:a[u],enumerable:!0})},ee=(n,a,u,m)=>{if(a&&typeof a=="object"||typeof a=="function")for(let l of Y(a))!$.call(n,l)&&l!==u&&b(n,l,{get:()=>a[l],enumerable:!(m=X(a,l))||m.enumerable});return n};var oe=n=>ee(b({},"__esModule",{value:!0}),n);var ye={};V(ye,{ByteArraySchema:()=>c,JsonSchema:()=>S,MainCommandsRpc:()=>pe,MainNotificationsRpc:()=>ce,MediaAudioPropertiesSchema:()=>A,MediaIdSchema:()=>g,MediaPropertiesSchema:()=>Z,MediaSchema:()=>C,MediaVideoPropertiesSchema:()=>q,MessagePackRpcSchema:()=>re,MessageReceivedSchema:()=>U,PeerIdSchema:()=>y,PeerPositionSchema:()=>P,PeerSchema:()=>M,PeerUpdateSchema:()=>R,RoomCommandsRpc:()=>de,RoomIdSchema:()=>T,RoomNotificationsRpc:()=>ue,RoomV1:()=>h,RoomV2:()=>N,TokenAudienceSchema:()=>I,TokenClaimsSchema:()=>te,TokenSubjectSchema:()=>v,WebRtcUpdateSchema:()=>k,oneOrMany:()=>f,parseCommand:()=>se,parseNotification:()=>me,parseRequest:()=>ie,parseResponse:()=>ae});module.exports=oe(ye);var d=require("zod");var o=require("zod"),c=(0,o.custom)(n=>n instanceof Uint8Array),S=(0,o.lazy)(()=>(0,o.union)([(0,o.union)([(0,o.string)(),(0,o.number)(),(0,o.boolean)(),(0,o.null)()]),(0,o.array)(S),(0,o.record)((0,o.string)(),S)])),re=(0,o.union)([(0,o.tuple)([(0,o.literal)(0),(0,o.number)(),(0,o.string)(),(0,o.unknown)()]),(0,o.tuple)([(0,o.literal)(1),(0,o.number)(),(0,o.nullable)((0,o.string)()),(0,o.unknown)()]),(0,o.tuple)([(0,o.literal)(2),(0,o.string)(),(0,o.unknown)()])]);function f(n){return(0,o.union)([n.transform(a=>[a]),(0,o.array)(n)])}var I=(0,d.enum)(["sfu","gateway"]),v=(0,d.enum)(["connect","roomclose","roomupdate","roombanclient","roomsendmessage"]),te=(0,d.object)({uid:(0,d.string)(),cid:(0,d.string)().optional(),rid:f((0,d.string)()).refine(n=>n.length>=1,{message:"missing rid"}),nsp:(0,d.string)().optional(),adr:(0,d.string)().optional(),aud:f(I).optional(),sub:f(v).optional(),exp:(0,d.number)().optional(),nbf:(0,d.number)().optional(),ups:(0,d.string)().optional(),tgs:f((0,d.string)()).optional(),tsp:(0,d.number)().optional(),internal:(0,d.object)({server:(0,d.string)().optional()}).optional()});var e=require("zod");var p=require("zod"),g=(0,p.number)(),A=(0,p.object)({kind:(0,p.literal)("audio").optional(),uid:(0,p.string)().optional(),ref:(0,p.string)().optional(),customType:(0,p.string)().optional()}),q=(0,p.object)({kind:(0,p.literal)("video"),codec:(0,p.string)().optional(),uid:(0,p.string)().optional(),ref:(0,p.string)().optional(),customType:(0,p.string)().optional()}),Z=(0,p.union)([A,q]),C=(0,p.object)({id:g,properties:Z,paused:(0,p.boolean)()});var i=require("zod");var y=(0,i.number)(),P=(0,i.union)([(0,i.tuple)([(0,i.number)(),(0,i.number)(),(0,i.number)()]),(0,i.tuple)([(0,i.number)(),(0,i.number)()])]),M=(0,i.object)({id:y,user_id:(0,i.string)(),user_data:c,medias:(0,i.array)(C)}),R=(0,i.discriminatedUnion)("kind",[(0,i.object)({kind:(0,i.literal)("UserDataChanged"),peer_id:y,user_data:c}),(0,i.object)({kind:(0,i.literal)("MediaStarted"),peer_id:y,media:C}),(0,i.object)({kind:(0,i.literal)("MediaStopped"),peer_id:y,media_id:g})]);var T=(0,e.string)(),h;(x=>(x.RoomSchema=(0,e.object)({id:T,customer:(0,e.string)(),user_data:c,peers:(0,e.array)(M)}),x.RoomUpdateSchema=(0,e.discriminatedUnion)("kind",[(0,e.object)({kind:(0,e.literal)("Joined"),room:x.RoomSchema,media_ids:(0,e.array)(g),own_peer_id:y}),(0,e.object)({kind:(0,e.literal)("Left"),reason:(0,e.enum)(["RoomClosing","ServerClosing","PeerKicked"])}),(0,e.object)({kind:(0,e.literal)("PeerJoined"),peer:M}),(0,e.object)({kind:(0,e.literal)("PeerLeft"),peer_id:y}),(0,e.object)({kind:(0,e.literal)("UserDataChanged"),user_data:c.optional()})]),x.RoomUpdatesSchema=(0,e.object)({updates:(0,e.array)(x.RoomUpdateSchema)}),x.RoomStatusSchema=(0,e.enum)(["Joining","Joined","Closed"]),x.RoomStatusChangedSchema=(0,e.object)({status:x.RoomStatusSchema,message:(0,e.string)().optional()})))(h||={});var N;(r=>{r.ParametersSchema=(0,e.record)((0,e.string)(),S),r.PositionSchema=(0,e.object)({x:(0,e.number)(),y:(0,e.number)(),z:(0,e.number)(),channel:(0,e.number)()}),r.ChannelMaskSchema=(0,e.bigint)().nonnegative().lte(0xFFFFFFFFFFFFFFFFn),r.HelloRoomSchema=(0,e.object)({token:(0,e.string)(),room_id:T.optional(),user_data:c.optional(),parameters:r.ParametersSchema.optional(),channel_masks:(0,e.array)((0,e.tuple)([(0,e.number)(),r.ChannelMaskSchema])).optional(),positions:(0,e.array)(r.PositionSchema).optional()}),r.ClientHelloSchema=(0,e.object)({Room:r.HelloRoomSchema}),r.ServerHelloSchema=(0,e.union)([(0,e.object)({Ok:(0,e.object)({})}),(0,e.object)({Rejected:(0,e.object)({message:(0,e.string)()})})]);let _=(0,e.object)({user_data:c.optional(),tags:(0,e.array)((0,e.string)()).optional(),parameters:r.ParametersSchema.optional()});r.PeerPropertiesSchema=_,r.PingSchema=(0,e.object)({Ping:(0,e.object)({id:(0,e.number)()})}),r.ChangeSelfSchema=(0,e.object)({ChangeSelf:_.omit({tags:!0})}),r.SetAudioMaskSchema=(0,e.object)({SetAudioMask:(0,e.object)({peer_id:(0,e.number)(),mask:r.ChannelMaskSchema})}),r.SendMessageSchema=(0,e.object)({SendMessage:(0,e.object)({peer_ids:(0,e.number)().array().default([]),message:c})}),r.CallSchema=r.PingSchema.or(r.ChangeSelfSchema).or(r.SetAudioMaskSchema).or(r.SendMessageSchema),r.PongSchema=(0,e.object)({Pong:(0,e.object)({id:(0,e.number)()})}),r.JoinedSchema=(0,e.object)({Joined:(0,e.object)({own_peer_id:(0,e.number)(),room_id:(0,e.string)(),customer:(0,e.string)()})}),r.LeftSchema=(0,e.object)({Left:(0,e.object)({reason:(0,e.enum)(["room_closing","server_closing","peer_kicked"])})}),r.PeerJoinedSchema=(0,e.object)({PeerJoined:_.extend({peer_id:(0,e.number)(),user_id:(0,e.string)()})}),r.PeerLeftSchema=(0,e.object)({PeerLeft:(0,e.object)({peer_id:(0,e.number)()})}),r.PeerChangedSchema=(0,e.object)({PeerChanged:_.extend({peer_id:(0,e.number)()})}),r.NewReconnectTokenSchema=(0,e.object)({NewReconnectToken:(0,e.object)({token:(0,e.string)()})}),r.MessageReceivedSchema=(0,e.object)({MessageReceived:(0,e.object)({sender_peer_id:(0,e.number)(),message:c})}),r.ServerErrorSchema=(0,e.object)({Error:(0,e.object)({message:(0,e.string)()})}),r.EventSchema=r.PongSchema.or(r.JoinedSchema).or(r.LeftSchema).or(r.PeerJoinedSchema).or(r.PeerLeftSchema).or(r.PeerChangedSchema).or(r.NewReconnectTokenSchema).or(r.MessageReceivedSchema).or(r.ServerErrorSchema)})(N||={});var w=require("zod");var U=(0,w.object)({sender_peer_id:y,message:c});var s=require("zod");var k=(0,s.discriminatedUnion)("kind",[(0,s.object)({kind:(0,s.literal)("Sdp"),type:(0,s.enum)(["Answer","Offer"]),sdp:(0,s.string)(),media_map:(0,s.array)((0,s.tuple)([g,(0,s.string)()]))}),(0,s.object)({kind:(0,s.literal)("Trickle"),candidate:(0,s.string)(),spd_mid:(0,s.string)().optional(),spd_mline_index:(0,s.number)().optional(),username_fragment:(0,s.union)([(0,s.string)(),(0,s.null)()]).optional()}),(0,s.object)({kind:(0,s.literal)("TrickleFinished")})]);var t=require("zod");function J(n,a){n||ne(a)}function ne(n){throw new Error(n)}function se(n,a,u){let m=u[n];if(!m)return;let l=m.request.safeParse(a);return l.success?{name:n,request:l.data}:void 0}function ie(n,a,u){let m=u[n];return J(m!==void 0,"unknown command schema"),m.request.parse(a)}function ae(n,a,u){let m=u[n]?.response.safeParse(a);return m?.success?m.data:void 0}var pe={Hello:{request:(0,t.object)({stream:(0,t.literal)("main")}),response:(0,t.null)()},JoinRoom:{request:(0,t.object)({token:(0,t.string)(),room_id:T,user_data:c,position:P}),response:(0,t.object)({peer_id:y,stream_id:(0,t.number)().optional(),token:(0,t.string)().optional()})},WebRtcUpdate:{request:k,response:(0,t.null)()},RequestReconnectToken:{request:(0,t.object)({peer_id:y.optional()}),response:(0,t.string)()},Ping:{request:(0,t.object)({}),response:(0,t.null)()}},de={Hello:{request:(0,t.object)({stream:(0,t.literal)("room"),token:(0,t.string)(),room_id:(0,t.string)(),user_data:c,position:P}),response:(0,t.null)()},UpdatePeer:{request:(0,t.object)({user_data:c}),response:(0,t.null)()},StartMedia:{request:(0,t.object)({media_id:g,properties:Z}),response:(0,t.null)()},StopMedia:{request:(0,t.object)({media_id:g}),response:(0,t.null)()},PauseMedia:{request:(0,t.object)({media_id:g}),response:(0,t.null)()},ResumeMedia:{request:(0,t.object)({media_id:g}),response:(0,t.null)()},SetPeerPosition:{request:(0,t.object)({position:P}),response:(0,t.null)()},SendMessage:{request:(0,t.object)({target_peer_ids:(0,t.array)(y).optional(),message:c}),response:(0,t.null)()}};function me(n,a,u){let m=u[n];if(!m)return;let l=m.safeParse(a);return l.success?{name:n,properties:l.data}:void 0}var ce={WebRtcUpdate:k},ue={RoomStatusChanged:h.RoomStatusChangedSchema,RoomUpdated:h.RoomUpdatesSchema,PeerUpdated:R,MessageReceived:U};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});