Add ESLint to all packages and reorganize CLI

ESLint:
- Add @macalinao/eslint-config and eslint to all packages/apps
- Add lint scripts to all package.json files
- Create eslint.config.js for all apps
- Add lint task to turbo.json
- Add @macalinao/eslint-config and @types/bun to catalog

Biome:
- Exclude docs/ from biome checks

CLI Reorganization:
- Restructure CLI to use route maps with one command per file
- Move commands to routes/ directory structure
- Use func property instead of async loaders
- Route maps in _command.ts files for each directory

Environment:
- Use Bun.env instead of process.env for env vars
- Add DATABASE_URL and PORT to turbo.json globalEnv

Lint Fixes:
- Fix nullish coalescing operator usage
- Update deprecated Zod API (z.email() instead of .string().email())
- Fix import sorting

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
RevIQ
2026-01-09 12:01:41 +08:00
parent b687d9cd1d
commit 8f3f711af0
42 changed files with 3291 additions and 279 deletions

View File

@@ -0,0 +1,25 @@
import type { LocalContext } from "../context.js";
import { buildCommand } from "@stricli/core";
function bootstrap(this: LocalContext): void {
console.log("RevIQ Bootstrap - Create Superuser");
console.log("===================================\n");
console.log("TODO: Implement bootstrap command");
console.log("\nThis command will:");
console.log(" 1. Prompt for email address");
console.log(" 2. Prompt for password (with confirmation)");
console.log(" 3. Hash password using scrypt (@noble/hashes)");
console.log(" 4. Create user in database with is_superuser=true");
console.log("\nRequirements:");
console.log(" - Database must be migrated (run 'dbmate up' first)");
console.log(" - DATABASE_URL environment variable must be set");
}
export const bootstrapCommand = buildCommand({
func: bootstrap,
parameters: {},
docs: {
brief: "Create a superuser account",
},
});