{ "type": "module", "scripts": { "start": "npx tsx src/server.ts", "prestart": "prisma generate", "start:dev": "tsx src/scripts/startDev.ts", "prestart:dev": "prisma generate", "build": "prisma generate && tsc", "lint": "biome lint .", "lint:fix": "biome lint --write .", "format": "biome format .", "format:fix": "biome format --write .", "check": "biome check .", "check:fix": "biome check --write .", "db:deploy": "prisma migrate deploy", "db:generate": "prisma generate", "db:migrate": "prisma migrate dev && prisma generate", "db:reset": "prisma migrate reset && prisma generate", "db:migrate-from-db": "prisma db pull && prisma migrate dev && prisma generate", "db:seed": "prisma db seed", "audit:invest-snapshots": "tsx src/scripts/auditInvestmentSnapshots.ts", "test:unit": "prisma generate && vitest -c ./vitest.config.unit.ts", "test:unit:run": "prisma generate && vitest run -c ./vitest.config.unit.ts", "test:unit:ui": "prisma generate && vitest -c ./vitest.config.unit.ts --ui --coverage", "_comment_test_integration": "Run all integration tests by default. Example usage: npm run test:integration (all tests), npm run test:integration user (runs tests matching 'user'), npm run test:integration 'user.integration.test.ts' (specific test file)", "test:integration": "sh scripts/test-integration.sh" }, "name": "myfin-api", "version": "5.5.2", "description": "NodeJS API for Myfin", "main": "src/server.js", "devDependencies": { "@biomejs/biome": "^1.9.4", "@types/cors": "^2.8.13", "@types/express": "^5.0.3", "@types/i18next": "^13.0.0", "@types/node": "^24.0.10", "@types/swagger-ui-express": "^4.1.8", "@vitest/coverage-v8": "4.1.12", "@vitest/ui": "4.1.12", "dotenv-cli": "11.0.0", "globals": "^16.3.0", "magicast": "0.3.5", "nodemon": "^3.0.1", "tsx": "^4.19.2", "typescript": "^5.9.2", "vitest": "4.1.12", "vitest-mock-extended": "^3.1.0" }, "repository": { "type": "git", "url": "git+https://github.com/aFaneca/myfin.git" }, "author": "António Faneca", "license": "GPL-3.0", "bugs": { "url": "https://github.com/aFaneca/myfin/issues" }, "homepage": "https://github.com/aFaneca/myfin#readme", "dependencies": { "@prisma/adapter-mariadb": "7.10.1", "@prisma/client": "7.10.1", "@types/nodemailer": "8.0.1", "bcrypt": "^6.0.0", "cors": "^2.8.5", "dayjs": "^1.10.6", "dotenv": "^17.2.1", "express": "^5.1.0", "express-rate-limit": "^8.0.1", "fuzzball": "^2.2.0", "helmet": "^8.0.0", "i18next": "^25.4.2", "i18next-http-middleware": "3.9.7", "joi": "^18.0.1", "joi-to-swagger": "^6.2.0", "mysql2": "^3.11.5", "nodemailer": "10.2.1", "prisma": "7.10.1", "swagger-ui-express": "^5.0.1", "ts-node": "^10.9.2" }, "engines": { "node": "^20.19.0 || ^22.12.0 || ^24.0.0" } }