94 lines
2.5 KiB
JSON
94 lines
2.5 KiB
JSON
{
|
|
"name": "invoice-generation-api",
|
|
"version": "1.0.0",
|
|
"description": "Enterprise Invoice Generation Backend API",
|
|
"main": "src/app.js",
|
|
"scripts": {
|
|
"start": "node src/server.js",
|
|
"dev": "nodemon src/server.js",
|
|
"test": "jest --coverage --detectOpenHandles",
|
|
"lint": "eslint . --fix",
|
|
"migrate": "sequelize-cli db:migrate",
|
|
"seed": "sequelize-cli db:seed:all",
|
|
"security-check": "snyk test",
|
|
"prepare": "husky install",
|
|
"audit": "npm audit",
|
|
"docs": "jsdoc -c jsdoc.json",
|
|
"format": "prettier --write 'src/**/*.js'"
|
|
},
|
|
"dependencies": {
|
|
"express": "^4.18.2",
|
|
"helmet": "^7.0.0",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^16.0.3",
|
|
"winston": "^3.8.2",
|
|
"express-rate-limit": "^6.7.0",
|
|
"pg": "^8.10.0",
|
|
"sequelize": "^6.31.1",
|
|
"joi": "^17.9.2",
|
|
"jsonwebtoken": "^9.0.0",
|
|
"bcryptjs": "^2.4.3",
|
|
"compression": "^1.7.4",
|
|
"swagger-ui-express": "^4.6.3",
|
|
"express-async-handler": "^1.2.0",
|
|
"morgan": "^1.10.0",
|
|
"express-validator": "^7.0.1",
|
|
"uuid": "^9.0.0",
|
|
"sanitize-html": "^2.10.0",
|
|
"express-mongo-sanitize": "^2.2.0",
|
|
"hpp": "^0.2.3",
|
|
"helmet-csp": "^3.4.0",
|
|
"express-brute": "^1.0.1",
|
|
"express-slow-down": "^1.5.0",
|
|
"rate-limit-redis": "^3.0.1",
|
|
"ioredis": "^5.3.2",
|
|
"prom-client": "^14.2.0",
|
|
"express-openapi-validator": "^5.0.4",
|
|
"class-validator": "^0.14.0",
|
|
"class-transformer": "^0.5.1",
|
|
"celebrate": "^15.0.1",
|
|
"express-jwt": "^8.4.1",
|
|
"express-rate-limit-flexible": "^3.0.0",
|
|
"express-validator": "^7.0.1",
|
|
"helmet-csp": "^3.4.0",
|
|
"rate-limit-redis": "^3.0.1"
|
|
},
|
|
"devDependencies": {
|
|
"jest": "^29.5.0",
|
|
"nodemon": "^2.0.22",
|
|
"supertest": "^6.3.3",
|
|
"eslint": "^8.40.0",
|
|
"eslint-config-airbnb-base": "^15.0.0",
|
|
"husky": "^8.0.3",
|
|
"lint-staged": "^13.2.2",
|
|
"snyk": "^1.1130.0",
|
|
"jest-sonar-reporter": "^2.0.0",
|
|
"prettier": "^2.8.8",
|
|
"jsdoc": "^4.0.2",
|
|
"typescript": "^5.0.4",
|
|
"@types/express": "^4.17.17",
|
|
"@types/jest": "^29.5.2",
|
|
"ts-jest": "^29.1.0",
|
|
"@typescript-eslint/parser": "^5.59.9",
|
|
"@typescript-eslint/eslint-plugin": "^5.59.9"
|
|
},
|
|
"lint-staged": {
|
|
"*.js": ["eslint --fix", "prettier --write"]
|
|
},
|
|
"jest": {
|
|
"testEnvironment": "node",
|
|
"coverageThreshold": {
|
|
"global": {
|
|
"branches": 90,
|
|
"functions": 90,
|
|
"lines": 90,
|
|
"statements": 90
|
|
}
|
|
},
|
|
"collectCoverageFrom": [
|
|
"src/**/*.js",
|
|
"!src/docs/**",
|
|
"!src/tests/**"
|
|
]
|
|
}
|
|
} |