UNPKG

@4players/odin-common

Version:

A collection of commonly used type definitions and utility functions across ODIN web projects

34 lines (33 loc) 1.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TokenClaimsSchema = exports.TokenSubjectSchema = exports.TokenAudienceSchema = void 0; exports.oneOrMany = oneOrMany; const zod_1 = require("zod"); exports.TokenAudienceSchema = zod_1.z.enum(['sfu', 'gateway']); exports.TokenSubjectSchema = zod_1.z.enum([ 'connect', 'roomclose', 'roomupdate', 'roombanclient', 'roomsendmessage', ]); exports.TokenClaimsSchema = zod_1.z.object({ uid: zod_1.z.string(), cid: zod_1.z.optional(zod_1.z.string()), rid: oneOrMany(zod_1.z.string()), nsp: zod_1.z.optional(zod_1.z.string()), adr: zod_1.z.optional(zod_1.z.string()), aud: zod_1.z.optional(oneOrMany(exports.TokenAudienceSchema)), sub: zod_1.z.optional(oneOrMany(exports.TokenSubjectSchema)), exp: zod_1.z.optional(zod_1.z.number()), nbf: zod_1.z.optional(zod_1.z.number()), ups: zod_1.z.optional(zod_1.z.string()), tgs: zod_1.z.optional(oneOrMany(zod_1.z.string())), tsp: zod_1.z.optional(zod_1.z.number()), internal: zod_1.z.optional(zod_1.z.object({ server: zod_1.z.optional(zod_1.z.string()), })), }); function oneOrMany(type) { return zod_1.z.union([type, zod_1.z.array(type)]); }