{
  "name": "kutt",
  "version": "2.7.2",
  "description": "Modern URL shortener",
  "main": "./production-server/server.js",
  "engines": {
    "node": "12.x",
    "npm": "7.x"
  },
  "scripts": {
    "test": "mocha --compilers js:@babel/register ./client/**/__test__/*.js",
    "docker:build": "docker build -t kutt .",
    "docker:run": "docker run -p 3000:3000 --env-file .env -d kutt:latest",
    "dev": "npm run migrate && nodemon server/server.ts",
    "build": "rimraf production-server && tsc --project tsconfig.json && copyfiles -f \"server/mail/*.html\" production-server/mail && next build client/ ",
    "start": "npm run migrate && cross-env NODE_ENV=production node production-server/server.js",
    "migrate": "knex migrate:latest --env production",
    "migrate:make": "knex migrate:make --env production",
    "lint": "eslint server/ --ext .js,.ts --fix",
    "lint:nofix": "eslint server/ --ext .js,.ts",
    "docs:build": "cd docs/api && tsc generate.ts --resolveJsonModule && node generate && cd ../.."
  },
  "cacheDirectories": [
    "node_modules/",
    ".next/cache/"
  ],
  "husky": {
    "hooks": {
      "pre-commit": "npm run lint:nofix"
    }
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/TheDevs-Network/kutt.git"
  },
  "keywords": [
    "url-shortener"
  ],
  "author": "Pouria Ezzati <ezzati.upt@gmail.com>",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/TheDevs-Network/kutt/issues"
  },
  "homepage": "https://github.com/TheDevs-Network/kutt#readme",
  "dependencies": {
    "@sentry/apm": "^5.21.1",
    "@sentry/node": "^5.21.1",
    "@sentry/react": "^5.21.1",
    "axios": "^0.19.1",
    "babel-plugin-inline-react-svg": "^1.1.0",
    "bcryptjs": "^2.4.3",
    "bull": "^3.12.1",
    "cookie-parser": "^1.4.4",
    "cors": "^2.8.5",
    "cross-env": "^7.0.2",
    "date-fns": "^2.9.0",
    "dotenv": "^8.2.0",
    "easy-peasy": "^3.3.0",
    "email-validator": "^1.2.3",
    "envalid": "^6.0.0",
    "express": "^4.17.1",
    "express-async-handler": "^1.1.4",
    "express-validator": "^6.3.1",
    "geoip-lite": "^1.4.0",
    "helmet": "^3.21.2",
    "isbot": "^2.5.4",
    "js-cookie": "^2.2.1",
    "jsonwebtoken": "^8.4.0",
    "jwt-decode": "^2.2.0",
    "knex": "^0.21.1",
    "morgan": "^1.9.1",
    "ms": "^2.1.2",
    "nanoid": "^1.3.4",
    "neo4j-driver": "^1.7.6",
    "next": "^9.4.4",
    "node-cron": "^2.0.3",
    "nodemailer": "^6.4.2",
    "p-queue": "^6.2.1",
    "passport": "^0.4.1",
    "passport-jwt": "^4.0.0",
    "passport-local": "^1.0.0",
    "passport-localapikey-update": "^0.6.0",
    "pg": "7.x",
    "pg-query-stream": "^2.1.2",
    "prop-types": "^15.7.2",
    "qrcode.react": "^0.8.0",
    "query-string": "^6.10.1",
    "react": "^16.12.0",
    "react-copy-to-clipboard": "^5.0.2",
    "react-dom": "^16.12.0",
    "react-ga": "^2.7.0",
    "react-inlinesvg": "^1.2.0",
    "react-tippy": "^1.3.1",
    "react-tooltip": "^3.11.2",
    "react-use-form-state": "^0.12.1",
    "recharts": "^1.8.5",
    "redis": "^2.8.0",
    "reflexbox": "^4.0.6",
    "signale": "^1.4.0",
    "styled-components": "^5.0.0",
    "styled-tools": "^1.7.1",
    "universal-analytics": "^0.4.20",
    "url-regex": "^4.1.1",
    "use-media": "^1.4.0",
    "useragent": "^2.2.1",
    "uuid": "^3.4.0"
  },
  "devDependencies": {
    "@babel/cli": "^7.8.3",
    "@babel/core": "^7.8.3",
    "@babel/node": "^7.8.3",
    "@babel/preset-env": "^7.8.3",
    "@babel/register": "^7.8.3",
    "@types/bcryptjs": "^2.4.2",
    "@types/body-parser": "^1.17.1",
    "@types/bull": "^3.12.0",
    "@types/cookie-parser": "^1.4.2",
    "@types/cors": "^2.8.6",
    "@types/date-fns": "^2.6.0",
    "@types/dotenv": "^4.0.3",
    "@types/express": "^4.17.2",
    "@types/helmet": "0.0.38",
    "@types/jsonwebtoken": "^7.2.8",
    "@types/jwt-decode": "^2.2.1",
    "@types/mongodb": "^3.3.14",
    "@types/morgan": "^1.7.37",
    "@types/ms": "^0.7.31",
    "@types/next": "^9.0.0",
    "@types/node-cron": "^2.0.2",
    "@types/nodemailer": "^6.4.0",
    "@types/pg": "^7.14.1",
    "@types/pg-query-stream": "^1.0.3",
    "@types/qrcode.react": "^1.0.0",
    "@types/react": "^16.9.17",
    "@types/react-dom": "^16.9.4",
    "@types/react-tooltip": "^3.11.0",
    "@types/redis": "^2.8.14",
    "@types/reflexbox": "^4.0.0",
    "@types/styled-components": "^4.1.8",
    "@typescript-eslint/eslint-plugin": "^2.16.0",
    "@typescript-eslint/parser": "^2.16.0",
    "babel": "^6.23.0",
    "babel-cli": "^6.26.0",
    "babel-core": "^6.26.3",
    "babel-eslint": "^8.2.6",
    "babel-plugin-styled-components": "^1.10.6",
    "babel-preset-env": "^1.7.0",
    "chai": "^4.1.2",
    "copyfiles": "^2.2.0",
    "deep-freeze": "^0.0.1",
    "eslint": "^5.16.0",
    "eslint-config-airbnb": "^16.1.0",
    "eslint-config-prettier": "^6.9.0",
    "eslint-plugin-import": "^2.20.0",
    "eslint-plugin-jsx-a11y": "^6.2.3",
    "eslint-plugin-prettier": "^3.1.2",
    "eslint-plugin-react": "^7.18.0",
    "husky": "^0.15.0-rc.13",
    "mocha": "^5.2.0",
    "nock": "^9.3.3",
    "nodemon": "^1.19.4",
    "prettier": "^1.19.1",
    "redoc": "^2.0.0-rc.20",
    "rimraf": "^3.0.0",
    "sinon": "^6.0.0",
    "typescript": "^3.7.5"
  }
}