feat: initial elysium idle game prototype

Sets up the full monorepo with pnpm workspaces. Includes shared types
package, Hono API with Discord OAuth/JWT auth, Prisma v6 + MongoDB
Atlas, and React + Vite frontend with game loop, five tabs, and
Discord-linked save/load.
This commit is contained in:
2026-03-06 11:26:19 -08:00
committed by Naomi Carrigan
parent c69e155de3
commit a3daed1683
64 changed files with 9011 additions and 0 deletions
+23
View File
@@ -0,0 +1,23 @@
import type { Context, Next } from "hono";
import { verifyToken } from "../services/jwt.js";
export const authMiddleware = async (context: Context, next: Next): Promise<void> => {
const authorization = context.req.header("Authorization");
if (!authorization?.startsWith("Bearer ")) {
context.status(401);
context.json({ error: "Missing or invalid Authorization header" });
return;
}
const token = authorization.slice(7);
try {
const payload = verifyToken(token);
context.set("discordId", payload.discordId);
await next();
} catch {
context.status(401);
context.json({ error: "Invalid or expired token" });
}
};