mirror of
https://github.com/vas3k/TaxHacker.git
synced 2026-07-03 10:52:28 +08:00
The GHCR Docker build was failing on `npm ci` because package-lock.json was out of sync with package.json (the lock was generated with npm 11 / Node 24, while the build image node:23-slim ships npm 10.9, which rejects the inconsistent optional-dependency entries for esbuild/webpack/picomatch). Regenerating the lock with npm 10.9 unmasked two further pre-existing build failures, both caused by `next build` running under the Dockerfile's NODE_ENV=production (which makes `npm ci` omit devDependencies): - @types/imap and @types/mailparser were in devDependencies, so they were absent during the production build and the type-check failed on the mailparser/imap-simple imports. Moved them to dependencies, matching the existing convention already used for @types/mime-types and @types/sharp. - vitest.config.ts and the *.test.ts files import the vitest devDependency, which next build type-checked and could not resolve. Excluded them from tsconfig so the production build does not type-check test files. Verified by building the image end-to-end (linux/amd64) with node:23-slim: npm ci, npm run build, and image export all succeed.
88 lines
2.5 KiB
JSON
88 lines
2.5 KiB
JSON
{
|
|
"name": "taxhacker",
|
|
"version": "0.5.5",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "next dev -p 7331 --turbopack",
|
|
"build": "next build",
|
|
"start": "prisma migrate deploy && next start",
|
|
"lint": "next lint",
|
|
"email:sync": "npx tsx \"app/(app)/apps/email/scripts/fetch-emails.ts\"",
|
|
"test": "vitest run",
|
|
"test:watch": "vitest"
|
|
},
|
|
"dependencies": {
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@fast-csv/format": "^5.0.2",
|
|
"@fast-csv/parse": "^5.0.2",
|
|
"@langchain/core": "^0.3.80",
|
|
"@langchain/google-genai": "^0.2.14",
|
|
"@langchain/mistralai": "^0.2.1",
|
|
"@langchain/openai": "^0.6.1",
|
|
"@prisma/client": "^6.6.0",
|
|
"@radix-ui/colors": "^3.0.0",
|
|
"@radix-ui/react-avatar": "^1.1.3",
|
|
"@radix-ui/react-checkbox": "^1.1.4",
|
|
"@radix-ui/react-collapsible": "^1.1.3",
|
|
"@radix-ui/react-dialog": "^1.1.6",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.6",
|
|
"@radix-ui/react-label": "^2.1.2",
|
|
"@radix-ui/react-popover": "^1.1.6",
|
|
"@radix-ui/react-select": "^2.1.6",
|
|
"@radix-ui/react-separator": "^1.1.2",
|
|
"@radix-ui/react-slot": "^1.2.0",
|
|
"@radix-ui/react-tooltip": "^1.1.8",
|
|
"@react-pdf/renderer": "^4.3.0",
|
|
"@sentry/nextjs": "^9.11.0",
|
|
"@types/imap": "^0.8.43",
|
|
"@types/mailparser": "^3.4.6",
|
|
"@types/mime-types": "^2.1.4",
|
|
"@types/sharp": "^0.31.1",
|
|
"better-auth": "^1.2.10",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"date-fns": "^3.6.0",
|
|
"imap-simple": "^5.1.0",
|
|
"jszip": "^3.10.1",
|
|
"langchain": "^0.3.30",
|
|
"lucide-react": "^0.475.0",
|
|
"mailparser": "^3.9.9",
|
|
"mime-types": "^3.0.1",
|
|
"next": "^15.2.4",
|
|
"next-themes": "^0.4.4",
|
|
"pdf2pic": "^3.1.4",
|
|
"react": "^19.0.0",
|
|
"react-day-picker": "^8.10.1",
|
|
"react-dom": "^19.0.0",
|
|
"react-resizable-panels": "^2.1.7",
|
|
"resend": "^4.2.0",
|
|
"sharp": "^0.33.5",
|
|
"slugify": "^1.6.6",
|
|
"sonner": "^2.0.1",
|
|
"stripe": "^18.0.0",
|
|
"tailwind-merge": "^3.0.1",
|
|
"tailwindcss-animate": "^1.0.7",
|
|
"zod": "^3.24.2"
|
|
},
|
|
"devDependencies": {
|
|
"@eslint/eslintrc": "^3",
|
|
"@types/node": "^20",
|
|
"@types/react": "^19",
|
|
"@types/react-dom": "^19",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "15.1.7",
|
|
"postcss": "^8",
|
|
"prisma": "^6.6.0",
|
|
"tailwindcss": "^3.4.1",
|
|
"typescript": "^5",
|
|
"vitest": "^4.1.8"
|
|
},
|
|
"overrides": {
|
|
"react-day-picker": {
|
|
"react": "^19.0.0"
|
|
}
|
|
}
|
|
}
|