- POST / manual PO creation with PurchaseOrderLines + auto totalAmount - DELETE /:id for DRAFT POs only - POST /generate-from-tender/:tenderId from TenderLineAwards grouped by supplier - GET /:id/pdf generates PDF via pdfkit (po-pdf.service.ts) - send-email now attaches PDF + QR code - SMTP_FROM added to .env - 18 API e2e + 6 Playwright UI tests pass Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
52 lines
1.4 KiB
JSON
52 lines
1.4 KiB
JSON
{
|
|
"name": "metallkart-erp",
|
|
"version": "1.0.0",
|
|
"type": "module",
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"start": "node dist/server.js",
|
|
"dev": "tsx src/server.ts",
|
|
"prisma:migrate": "prisma migrate dev",
|
|
"prisma:generate": "prisma generate",
|
|
"prisma:seed": "tsx src/seed.ts",
|
|
"test:e2e": "tsx tests/e2e-workflow.ts",
|
|
"test:ui": "npx playwright test",
|
|
"test:ui:headed": "npx playwright test --headed",
|
|
"test:all": "npm run test:e2e && npm run test:ui"
|
|
},
|
|
"dependencies": {
|
|
"@anthropic-ai/sdk": "^0.80.0",
|
|
"@fastify/cookie": "^9.3.1",
|
|
"@fastify/jwt": "^8.0.1",
|
|
"@fastify/multipart": "^8.3.1",
|
|
"@prisma/client": "^5.22.0",
|
|
"@types/nodemailer": "^7.0.11",
|
|
"@types/pdfkit": "^0.17.5",
|
|
"@types/qrcode": "^1.5.6",
|
|
"adm-zip": "^0.5.16",
|
|
"bcryptjs": "^2.4.3",
|
|
"exceljs": "^4.4.0",
|
|
"fastify": "^4.28.1",
|
|
"fastify-plugin": "^4.5.1",
|
|
"imapflow": "^1.2.15",
|
|
"jsonwebtoken": "^9.0.2",
|
|
"nodemailer": "^8.0.2",
|
|
"pdf-parse": "^2.4.5",
|
|
"pdfkit": "^0.18.0",
|
|
"qrcode": "^1.5.4",
|
|
"xlsx": "^0.18.5",
|
|
"xstate": "^5.28.0",
|
|
"zod": "^3.23.8"
|
|
},
|
|
"devDependencies": {
|
|
"@playwright/test": "^1.58.2",
|
|
"@types/adm-zip": "^0.5.8",
|
|
"@types/bcryptjs": "^2.4.6",
|
|
"@types/jsonwebtoken": "^9.0.7",
|
|
"@types/node": "^20.17.6",
|
|
"prisma": "^5.22.0",
|
|
"tsx": "^4.19.1",
|
|
"typescript": "^5.6.3"
|
|
}
|
|
}
|