- root deno.json workspace (nodeModulesDir auto), npm versions registered once in imports, deno.lock; remove pnpm-lock/pnpm-workspace/root package.json; members keep minimal package.json (name/type/exports) - tasks: dev, typecheck (tsc 7.0.2 per member + deno check), lint/fmt (biome, useImportExtensions), test (vitest via deno), check:tokens, build (web + deno compile), ci, db:migrate/reset, gen:types - tsconfig base moved to config/ (no root tsconfig.json); deno types -> types/deno.d.ts; web drops baseUrl - server: Deno.serve entry with graceful shutdown, --role migrate|preflight|probe, WEB_ROOT static SPA hosting; drop @hono/node-server, tsx, esbuild build.mjs - logger: redact child() bindings and serialize err by message/stack; sync stdout destination; tests - relative imports get explicit extensions (sites/mp-sync paths left for follow-up) - crash-recovery tests spawn `deno run -A`; tasks tests use unique per-file schemas - single-container Dockerfile + entrypoint (migrate -> preflight -> api+worker watchdog), docker-compose.yml - docs: README, runbook, ADR-001 superseded, plan §1 validation row Co-Authored-By: Claude Fable 5.1 <[email protected]>
48 lines
1.4 KiB
JSON
48 lines
1.4 KiB
JSON
{
|
|
"name": "@umt/web",
|
|
"version": "0.0.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "react-router dev --host 0.0.0.0 --port 5180",
|
|
"build": "react-router build",
|
|
"preview": "vite preview --host 0.0.0.0 --port 5180",
|
|
"typecheck": "react-router typegen && tsc -p tsconfig.json",
|
|
"test": "vitest run",
|
|
"gen:tokens": "deno run -A scripts/gen-design-tokens.mjs",
|
|
"check:tokens": "deno run -A scripts/gen-design-tokens.mjs --check && sh scripts/check-design-tokens.sh"
|
|
},
|
|
"dependencies": {
|
|
"@fontsource-variable/inter-tight": "^5.2.7",
|
|
"@fontsource-variable/space-grotesk": "^5.2.10",
|
|
"@react-router/node": "7.12.0",
|
|
"@tanstack/react-query": "^5.90.21",
|
|
"@umt/contracts": "workspace:*",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"date-fns": "^4.1.0",
|
|
"isbot": "^5.1.31",
|
|
"lucide-react": "^0.576.0",
|
|
"next-themes": "^0.4.6",
|
|
"radix-ui": "^1.4.3",
|
|
"react": "^19.2.4",
|
|
"react-day-picker": "^10.0.1",
|
|
"react-dom": "^19.2.4",
|
|
"react-router": "7.12.0",
|
|
"sonner": "^2.0.7",
|
|
"tailwind-merge": "^3.5.0",
|
|
"zod": "^4.3.6"
|
|
},
|
|
"devDependencies": {
|
|
"@react-router/dev": "7.12.0",
|
|
"@tailwindcss/vite": "^4.1.13",
|
|
"@types/react": "^19.2.7",
|
|
"@types/react-dom": "^19.2.3",
|
|
"shadcn": "^3.8.5",
|
|
"tailwindcss": "^4.1.13",
|
|
"tw-animate-css": "^1.4.0",
|
|
"vite": "^7.1.7",
|
|
"vite-tsconfig-paths": "^5.1.4"
|
|
}
|
|
}
|