{
  "name": "node-express-mongodb-jwt-rest-api-skeleton",
  "version": "9.0.5",
  "description": "Node.js express.js MongoDB JWT REST API - This is a basic API REST skeleton written on JavaScript using async/await. Great for building a starter web API for your front-end (Android, iOS, Vue, react, angular, or anything that can consume an API)",
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/davellanedam/node-express-mongodb-jwt-rest-api-skeleton.git"
  },
  "scripts": {
    "start": "cross-env NODE_ENV=production pm2 start server.js",
    "mocha": "nyc mocha --timeout=5000 --exit",
    "test": "npm run coverage:clean && npm run test:unit && npm run test:e2e && npm run coverage",
    "test:unit": "cross-env NODE_ENV=test jest --coverage",
    "test:e2e": "cross-env NODE_ENV=test npm run fresh && npm run mocha",
    "dev": "cross-env NODE_ENV=development nodemon --inspect=9230 server.js",
    "fresh": "npm run clean && npm run seed",
    "clean": "node clean.js",
    "seed": "node seed.js",
    "prettier": "prettier --write --config .prettierrc.json \"**/*.js\"",
    "lint": "eslint --fix --config .eslintrc.json \"**/*.js\"",
    "remark": "remark . -o",
    "coverage": "npm run coverage:merge && npm run coverage:merge-report",
    "coverage:clean": "rm -rf .nyc_output && rm -rf coverage",
    "coverage:merge": "istanbul-merge --out coverage/merged/coverage-final.json ./coverage/unit/coverage-final.json ./coverage/e2e/coverage-final.json",
    "coverage:merge-report": "nyc report --reporter=lcov --reporter=text --reporter=json --temp-dir=./coverage/merged --report-dir=./coverage/merged"
  },
  "nyc": {
    "reporter": [
      "json",
      "text",
      "lcov"
    ],
    "report-dir": "coverage/e2e",
    "include": [
      "**/*.js"
    ],
    "exclude": [
      "**/*.test.js",
      "jest.config.js",
      "**/data/**",
      "**/node_modules/**",
      "**/.history/**",
      "**/test/**",
      "**/coverage/**",
      "**/tmp/**"
    ],
    "all": true
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged && npm run remark",
      "pre-push": "npm run test"
    }
  },
  "lint-staged": {
    "*.js": [
      "prettier --write",
      "eslint --fix"
    ]
  },
  "dependencies": {
    "babel-eslint": "^10.1.0",
    "bcrypt": "^5.0.1",
    "body-parser": "^1.20.0",
    "compression": "^1.7.4",
    "cors": "^2.8.5",
    "date-fns": "^2.28.0",
    "dotenv-safe": "^8.2.0",
    "ejs": "^3.1.7",
    "expeditious-engine-redis": "^0.1.2",
    "express": "^4.18.1",
    "express-expeditious": "^5.1.1",
    "express-validator": "^6.14.0",
    "helmet": "^4.6.0",
    "i18n": "^0.13.4",
    "jsonwebtoken": "^8.5.1",
    "mongoose": "^5.13.14",
    "mongoose-paginate-v2": "^1.6.3",
    "morgan": "^1.10.0",
    "nodemailer": "^6.7.4",
    "nodemailer-mailgun-transport": "^2.1.3",
    "passport": "^0.4.1",
    "passport-jwt": "^4.0.0",
    "request-ip": "^2.1.3",
    "trim-request": "^1.0.6",
    "uuid": "^8.3.2",
    "validator": "^13.7.0"
  },
  "devDependencies": {
    "chai": "^4.3.6",
    "chai-http": "^4.3.0",
    "cross-env": "^7.0.3",
    "eslint": "^7.32.0",
    "eslint-config-formidable": "^4.0.0",
    "eslint-config-prettier": "^7.2.0",
    "eslint-plugin-prettier": "^3.4.1",
    "faker": "^5.5.3",
    "husky": "^4.3.8",
    "istanbul-merge": "^1.1.1",
    "jest": "^26.6.3",
    "lint-staged": "^10.5.4",
    "mocha": "^8.4.0",
    "mongo-seeding": "^3.7.1",
    "nodemon": "^2.0.16",
    "nyc": "^15.1.0",
    "prettier": "^2.6.2",
    "prettier-eslint": "^12.0.0",
    "remark-cli": "^9.0.0"
  },
  "keywords": [
    "javascript",
    "api",
    "node",
    "express",
    "mongo",
    "mongodb",
    "jwt",
    "postman",
    "i18n",
    "jwt-authentication",
    "token",
    "eslint",
    "starter",
    "web",
    "app",
    "mongoose",
    "rest",
    "skeleton",
    "async",
    "await",
    "mvp",
    "front-end",
    "testing",
    "prettier",
    "mocha",
    "chai",
    "redis",
    "JSDoc"
  ]
}
