- Document that 402 QUOTA_EXCEEDED (51/50) is the verae-zapier-middleware shared tenant free-plan quota, not a customer balance gate; edge passes it through fail-closed (no mock certs). - tests/negative-balance.test.ts locks in: negative balance_cents still stamps. - src/jobs/overdue-balances.ts: effective balance = prepaid - unpaid issued invoices - unbilled usage; dry-run by default, --send uses existing mailer (SMTP_FROM). systemd unit/timer stubs in deploy/systemd. - src/billing/signup-credit.ts: SIGNUP_CREDIT_CENTS (default 5000) granted on new portal signup and admin create via credit ledger + ledgerAdjust; idempotent, no double grant on claim; admin create 409 on existing id. - docs/NEGATIVE-BALANCE.md
43 lines
1.1 KiB
JSON
43 lines
1.1 KiB
JSON
{
|
|
"name": "zappier",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"build": "tsc -p tsconfig.json",
|
|
"start": "node dist/index.js",
|
|
"dev": "ts-node src/index.ts",
|
|
"test": "jest",
|
|
"overdue": "node dist/jobs/overdue-balances.js"
|
|
},
|
|
"dependencies": {
|
|
"@libsql/client": "^0.18.0",
|
|
"@types/qrcode": "^1.5.6",
|
|
"better-sqlite3": "^12.11.1",
|
|
"dotenv": "^17.4.2",
|
|
"express": "^4.19.2",
|
|
"express-openapi-validator": "^5.3.0",
|
|
"nats": "^2.29.3",
|
|
"nodemailer": "^6.10.1",
|
|
"qrcode": "^1.5.4",
|
|
"stripe": "^16.0.0",
|
|
"swagger-ui-express": "^5.0.0",
|
|
"yamljs": "^0.3.0"
|
|
},
|
|
"devDependencies": {
|
|
"@types/better-sqlite3": "^7.6.13",
|
|
"@types/dotenv": "^6.1.1",
|
|
"@types/express": "^4.17.21",
|
|
"@types/jest": "^29.5.12",
|
|
"@types/multer": "^1.4.11",
|
|
"@types/node": "^20.14.0",
|
|
"@types/nodemailer": "^6.4.24",
|
|
"@types/supertest": "^6.0.2",
|
|
"@types/swagger-ui-express": "^4.1.6",
|
|
"@types/yamljs": "^0.2.34",
|
|
"jest": "^29.7.0",
|
|
"supertest": "^7.0.0",
|
|
"ts-jest": "^29.1.4",
|
|
"ts-node": "^10.9.2",
|
|
"typescript": "^5.5.0"
|
|
}
|
|
}
|