{ "name": "server", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "postinstall": "prisma generate", "dev": "node src/index.js", "start": "node src/index.js", "worker": "node src/worker.js", "test": "vitest run", "prisma:format": "prisma format", "prisma:validate": "prisma validate", "prisma:generate": "prisma generate", "prisma:check-generated": "node src/scripts/check-prisma-client-generated.js", "prisma:migrate:dev": "prisma migrate dev", "prisma:migrate:deploy": "prisma migrate deploy", "deploy:init": "node src/scripts/deploy-init.js", "seed:config": "node src/scripts/seed-config.js", "apply:ceo-finance-fallback": "node src/scripts/apply-ceo-finance-fallback.js", "seed:dev-users": "node src/scripts/seed-dev.js", "seed:dev": "node src/scripts/dev-seed-safety.js && npm run seed:config && npm run seed:dev-users", "seed:trialrun": "node src/scripts/seed-trialrun.js", "report:small-team-observation": "node src/scripts/export-small-team-observation.js", "job:revoke-expired-delegations": "node src/scripts/revoke-expired-delegations.js", "job:ocr-once": "node src/scripts/run-ocr-once.js", "job:archive-unused-invoices": "node src/scripts/run-invoice-archive-once.js", "job:integration-outbox-once": "node src/scripts/run-integration-outbox-once.js", "job:verification-once": "node src/scripts/run-verification-once.js", "job:workflow-overdue-reminders": "node src/scripts/run-workflow-overdue-reminders.js", "audit:smoke-data": "node src/scripts/audit-smoke-data.js", "audit:org-master-data": "node src/scripts/audit-org-master-data.js", "audit:wecom-oa-users": "node src/scripts/audit-wecom-oa-user-consistency.js", "import:wecom-directory-export": "node src/scripts/import-wecom-directory-export.js", "repair:oa-only-smoke": "node src/scripts/repair-oa-only-smoke-accounts.js", "check:wecom-approval-fixtures": "node src/scripts/check-wecom-approval-fixtures.js", "check:wecom-approval-callback-poc": "node src/scripts/check-wecom-approval-callback-poc.js", "check:wecom-approval-compensation-poc": "node src/scripts/check-wecom-approval-compensation-poc.js", "check:wecom-approval-archive": "node src/scripts/check-wecom-approval-archive.js", "check:wecom-approval-readability-gate": "node src/scripts/check-wecom-approval-readability-gate.js", "check:wecom-approval-rule-validator": "node src/scripts/check-wecom-approval-rule-validator.js", "check:wecom-approval-poc": "node src/scripts/check-wecom-approval-poc.js", "check:wecom-checkin-summary-archive": "node src/scripts/check-wecom-checkin-summary-archive.js", "check:wecom-runtime-ready": "node src/scripts/check-wecom-runtime-ready.js", "send:wecom-ops-alert": "node src/scripts/send-wecom-ops-alert.js", "resolve:wecom-oa-users": "node src/scripts/resolve-wecom-oa-user-consistency.js", "test:watch": "vitest", "test:coverage": "vitest run --coverage" }, "keywords": [], "author": "", "license": "ISC", "engines": { "node": ">=22 <23" }, "dependencies": { "@aws-sdk/client-s3": "^3.1087.0", "@fastify/cookie": "^11.0.2", "@fastify/cors": "^11.2.0", "@fastify/helmet": "^13.0.2", "@fastify/jwt": "^10.2.0", "@fastify/multipart": "^9.3.0", "@fastify/rate-limit": "^10.3.0", "@fastify/static": "^9.0.0", "@fastify/swagger": "^9.5.2", "@fastify/swagger-ui": "^5.2.3", "@opentelemetry/api": "^1.9.0", "@opentelemetry/auto-instrumentations-node": "^0.78.0", "@opentelemetry/sdk-node": "^0.220.0", "@opentelemetry/semantic-conventions": "^1.40.0", "@prisma/adapter-pg": "^7.8.0", "@prisma/client": "^7.8.0", "bcryptjs": "^3.0.3", "exceljs": "^4.4.0", "fast-xml-parser": "5.10.0", "fastify": "^5.10.0", "fastify-plugin": "^5.1.0", "node-cron": "^4.2.1", "nodemailer": "^9.0.3", "openid-client": "^6.8.2", "pdf-lib": "1.17.1", "pdfjs-dist": "6.4.299", "pg": "^8.18.0", "pg-boss": "^10.3.0", "prisma": "^7.8.0", "prom-client": "^15.1.0", "sharp": "^0.34.5", "tencentcloud-sdk-nodejs": "^4.1.14", "zod": "^4.3.6", "zxcvbn": "^4.4.2" }, "devDependencies": { "@vitest/coverage-v8": "^2.1.8", "dotenv": "^16.4.5", "vitest": "^2.1.8" } }