A Typescript server emulator for Box Critters, a defunct virtual world.
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().nonempty().max(25),
9 critterId: z.enum([
10 "hamster",
11 "beaver",
12 "lizard",
13 "raccoon",
14 "penguin",
15 "snail",
16 "snow_greeter",
17 "snowkeeper",
18 "snowgirl",
19 "snow_patrol",
20 "snowgrandma",
21 ]).default("hamster"),
22 partyId: z.enum([
23 ...Object.keys(parties) as [string, ...string[]],
24 "today2019",
25 "today2020",
26 "today2021"
27 ]).default("default"),
28 persistent: z.boolean().default(false),
29 mods: z.array(z.enum(["roomExits"])).default([]),
30}).strict(); // Strict to disallow extra keys