tooling: add ESLint 9 flat config and a typecheck script

- eslint.config.mjs: flat config built on eslint-config-next's flat array
  (core-web-vitals + typescript + Next plugin), with build/generated artifacts
  ignored and the aggressive react-hooks v6 React-Compiler rules downgraded to
  warnings so `pnpm run lint` passes clean (0 errors, 88 warnings of burn-down
  debt) instead of failing. Previously `eslint .` failed outright — no config
  and no eslint binary were installed.
- Install eslint, @eslint/js, eslint-config-next, typescript-eslint, globals as
  devDeps (dev-only; prod Docker build is unaffected).
- package.json: add `typecheck` (tsc --noEmit) and `test:run` scripts.
- app/not-found.tsx: escape apostrophes (react/no-unescaped-entities).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
This commit is contained in:
Moheeb Zara
2026-08-01 20:37:56 -07:00
co-authored by Claude Opus 4.8
parent b1edb5c460
commit 624a708d8c
4 changed files with 2125 additions and 3 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ export default function NotFound() {
</h2>
<p className="text-muted-foreground mb-8">
The page you're looking for doesn't exist or has been moved.
The page you&rsquo;re looking for doesn&rsquo;t exist or has been moved.
</p>
<div className="flex flex-col sm:flex-row gap-3 justify-center">