A Typescript server emulator for Box Critters, a defunct virtual world.
at main 912 B view raw
1import { z } from "zod"; 2import parties from "@/constants/parties.json" with { type: "json" }; 3 4/* 5 LOGIN API 6*/ 7export const login = z.object({ 8 nickname: z.string() 9 .transform((s) => s.trim()) 10 .pipe( 11 z.string() 12 .min(3, "The nickname must be at least 3 characters long.") 13 .max(25, "The nickname must be less than 25 characters long."), 14 ), 15 critterId: z.enum([ 16 "hamster", 17 "beaver", 18 "lizard", 19 "raccoon", 20 "penguin", 21 "snail", 22 "snow_greeter", 23 "snowkeeper", 24 "snowgirl", 25 "snow_patrol", 26 "snowgrandma", 27 "alpha_hamster", 28 ]).default("hamster"), 29 partyId: z.enum([ 30 ...Object.keys(parties) as [string, ...string[]], 31 "today2019", 32 "today2020", 33 "today2021", 34 ]).default("default"), 35 persistent: z.boolean().default(false), 36 mods: z.array(z.enum(["roomExits"])).default([]), 37}).strict(); // Strict to disallow extra keys