tsx runs tests without type checking and tsconfig.json covers only src, so 71 type errors had accumulated unnoticed. tsconfig.tests.json now checks every test and helper, and npm run typecheck includes it. Fixtures gain the fields the DTOs have grown since they were written (manualQuantity, circuit apparent power/cos phi, downstream board loads, section totals, building, cover and board info fields). Repository lookups that return "row ?? null" now declare the null in their type, which their callers already handle. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
68 lines
2.4 KiB
JSON
68 lines
2.4 KiB
JSON
{
|
|
"name": "leistungsbilanz",
|
|
"version": "1.0.0",
|
|
"description": "Spreadsheet-style circuit list editor for electrical distribution planning",
|
|
"main": "dist/server/index.js",
|
|
"engines": {
|
|
"node": "24.x"
|
|
},
|
|
"scripts": {
|
|
"dev": "npm run dev:api",
|
|
"dev:api": "tsx watch src/server/index.ts",
|
|
"dev:web": "next dev -p 3001",
|
|
"docker:up": "docker compose up --build --detach",
|
|
"docker:down": "docker compose down",
|
|
"docker:logs": "docker compose logs --follow",
|
|
"docker:dev:up": "docker compose -f compose.dev.yaml up --build --detach",
|
|
"docker:dev:down": "docker compose -f compose.dev.yaml down",
|
|
"docker:dev:logs": "docker compose -f compose.dev.yaml logs --follow",
|
|
"build": "npm run build:api",
|
|
"build:api": "tsc -p tsconfig.json",
|
|
"build:web": "next build",
|
|
"typecheck:scripts": "tsc --noEmit -p tsconfig.scripts.json",
|
|
"typecheck:tests": "tsc --noEmit -p tsconfig.tests.json",
|
|
"start": "node dist/server/index.js",
|
|
"test": "node scripts/run-tests.mjs",
|
|
"test:watch": "node scripts/run-tests.mjs --watch",
|
|
"db:generate": "drizzle-kit generate",
|
|
"db:migrate": "node scripts/run-migrations.js",
|
|
"db:backup": "tsx scripts/db-backup.ts",
|
|
"db:verify:circuit-schema": "node scripts/db-verify-circuit-schema.js",
|
|
"revit:verify-reference": "tsx scripts/verify-revit-reference-xlsx.ts",
|
|
"lint": "eslint .",
|
|
"typecheck": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.next.json && tsc --noEmit -p tsconfig.scripts.json && tsc --noEmit -p tsconfig.tests.json"
|
|
},
|
|
"keywords": [],
|
|
"author": "",
|
|
"license": "ISC",
|
|
"dependencies": {
|
|
"better-sqlite3": "^12.9.0",
|
|
"bootstrap": "^5.3.8",
|
|
"drizzle-orm": "^0.45.2",
|
|
"exceljs": "^4.4.0",
|
|
"express": "^5.2.1",
|
|
"lucide-react": "^1.14.0",
|
|
"next": "^16.2.4",
|
|
"react": "^19.2.5",
|
|
"react-dom": "^19.2.5",
|
|
"zod": "^4.4.1"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/js": "9.39.5",
|
|
"@types/better-sqlite3": "^7.6.13",
|
|
"@types/express": "^5.0.6",
|
|
"@types/node": "^24.10.1",
|
|
"@types/react": "^19.2.14",
|
|
"@types/react-dom": "^19.2.3",
|
|
"drizzle-kit": "^0.31.10",
|
|
"eslint": "9.39.5",
|
|
"eslint-plugin-no-unsanitized": "4.1.5",
|
|
"eslint-plugin-react": "7.37.5",
|
|
"eslint-plugin-react-hooks": "7.1.1",
|
|
"eslint-plugin-security": "4.2.0",
|
|
"globals": "17.13.0",
|
|
"tsx": "^4.21.0",
|
|
"typescript": "^6.0.3",
|
|
"typescript-eslint": "8.71.2"
|
|
}
|
|
}
|