Inflows (claims) now shows only Certified invoice (VAT incl) and Retention (ex VAT), fed by an Import certificate dialog that reads the PDF (INVOICE TOTAL, this month's Less RETENTION, valuation number, date) for review before saving. Adds a monthly + cumulative chart and a certificates table linking each stored PDF. - income_claims gains retention_amount and certificate (migration applied) - pdftotext with an unpdf fallback for machines without poppler Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
86 lines
2.6 KiB
JSON
86 lines
2.6 KiB
JSON
{
|
|
"name": "mega-infrastructure-dashboard",
|
|
"version": "1.0.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"dev": "next dev -H 0.0.0.0 -p 6004 --webpack",
|
|
"build": "npm run icons && npm run og-image && next build --webpack",
|
|
"icons": "node scripts/build-icons.mjs",
|
|
"og-image": "node scripts/build-og-image.mjs",
|
|
"start": "next start -H 0.0.0.0 -p 3000",
|
|
"lint": "eslint .",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest",
|
|
"test:run": "vitest run",
|
|
"mcp": "tsx --env-file=.env.local src/mcp/server.ts",
|
|
"postinstall": "node scripts/patch-next-dev-blocker.cjs"
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/sdk": "^0.122.0",
|
|
"@ducanh2912/next-pwa": "^10.2.9",
|
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
"@n8n/workflow-sdk": "^0.29.3",
|
|
"@radix-ui/react-dialog": "^1.1.4",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.4",
|
|
"@radix-ui/react-label": "^2.1.1",
|
|
"@radix-ui/react-select": "^2.1.4",
|
|
"@radix-ui/react-slot": "^1.1.1",
|
|
"@radix-ui/react-tabs": "^1.1.2",
|
|
"@radix-ui/react-tooltip": "^1.1.6",
|
|
"@tanstack/react-table": "^8.20.6",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"date-fns": "^4.1.0",
|
|
"exceljs": "^4.4.0",
|
|
"jsqr": "^1.4.0",
|
|
"leaflet": "^1.9.4",
|
|
"leaflet.markercluster": "^1.5.3",
|
|
"lucide-react": "^0.469.0",
|
|
"next": "^16",
|
|
"openai": "^7.8.0",
|
|
"papaparse": "^5.4.1",
|
|
"pdf-lib": "^1.17.1",
|
|
"pdfmake": "^0.2.23",
|
|
"pocketbase": "^0.27.3",
|
|
"qrcode": "^1.5.4",
|
|
"react": "^19.0.0",
|
|
"react-dom": "^19.0.0",
|
|
"react-leaflet": "^5.0.0",
|
|
"react-leaflet-cluster": "^4.1.3",
|
|
"react-markdown": "^10.1.0",
|
|
"recharts": "^2.15.0",
|
|
"remark-gfm": "^4.0.1",
|
|
"remark-parse": "^11.0.0",
|
|
"sharp": "^0.35.4",
|
|
"tailwind-merge": "^2.6.0",
|
|
"three": "0.160.0",
|
|
"unified": "^11.0.5",
|
|
"unpdf": "1.8.1",
|
|
"xlsx": "^0.18.5",
|
|
"zod": "^3.25.76",
|
|
"zod-to-json-schema": "^3.25.2"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/postcss": "^4.0.0",
|
|
"@testing-library/jest-dom": "^7.0.1",
|
|
"@testing-library/react": "^16.3.3",
|
|
"@testing-library/user-event": "^14.6.8",
|
|
"@types/leaflet": "^1.9.22",
|
|
"@types/node": "^22.10.5",
|
|
"@types/papaparse": "^5.3.15",
|
|
"@types/pdfkit": "^0.17.6",
|
|
"@types/pdfmake": "^0.3.3",
|
|
"@types/qrcode": "^1.5.6",
|
|
"@types/react": "^19.0.2",
|
|
"@types/react-dom": "^19.0.2",
|
|
"@types/three": "0.160.0",
|
|
"eslint": "^9.17.0",
|
|
"eslint-config-next": "^16",
|
|
"jsdom": "^30.1.3",
|
|
"postcss": "^8.4.49",
|
|
"tailwindcss": "^4.0.0",
|
|
"tsx": "^4.23.12",
|
|
"typescript": "^5.7.2",
|
|
"vitest": "^2.1.9"
|
|
}
|
|
}
|