{
    "name": "intranet",
    "version": "2.0.0",
    "private": true,
    "description": "A starter boilerplate for a universal web application with the best development experience and best practices.",
    "license": "MIT",
    "homepage": "https://github.com/forceoranj/intranet",
    "repository": "https://github.com/forceoranj/intranet",
    "bugs": "https://github.com/forceoranj/intranet/issues",
    "keywords": [
        "starter",
        "boilerplate",
        "universal",
        "react",
        "react-hooks",
        "redux",
        "redux-toolkit",
        "react-router",
        "express",
        "webpack",
        "es6+",
        "typescript",
        "code-splitting",
        "react-refresh",
        "babel",
        "postcss",
        "jest",
        "unit-testing",
        "react-testing-library",
        "performance-optimization",
        "best-practices",
        "eslint",
        "stylelint",
        "prettier"
    ],
    "author": "Paris est Ludique <forceoranj@gmail.com> (https://github.com/forceoranj)",
    "engines": {
        "node": ">=12",
        "npm": ">=6"
    },
    "scripts": {
        "dev": "yarn dev:build && nodemon ./public/server",
        "dev:build": "cross-env NODE_ENV=development webpack --config ./webpack/server.config.ts",
        "local-start": "cross-env LOCAL=true node ./public/server",
        "start": "node ./public/server",
        "local-build": "cross-env LOCAL=true run-s build:*",
        "build": "run-s build:*",
        "build:server": "cross-env NODE_ENV=production webpack --config ./webpack/server.config.ts",
        "build:client": "cross-env NODE_ENV=production webpack --config ./webpack/client.config.ts",
        "analyze:server": "cross-env NODE_ENV=analyze webpack --config ./webpack/server.config.ts",
        "analyze:client": "cross-env NODE_ENV=analyze webpack --config ./webpack/client.config.ts",
        "lint": "run-s lint:*",
        "lint:code": "eslint --fix . --ext .js,.jsx,.ts,.tsx",
        "lint:type": "tsc",
        "lint:style": "stylelint --fix \"**/*.{css,scss,sass,ts,tsx}\"",
        "lint:format": "prettier -w . -u --loglevel silent",
        "test": "cross-env NODE_ENV=test jest --config ./jest/config.js",
        "test:watch": "yarn test --watch",
        "test:cov": "yarn test --coverage",
        "test:update": "yarn test -u",
        "prepare": "husky install"
    },
    "lint-staged": {
        "*.{js,jsx,ts,tsx}": "eslint --fix",
        "*.{css,sass,ts,tsx}": "stylelint --fix",
        "**/*": "prettier -w -u"
    },
    "browserslist": [
        "> 1%",
        "last 2 versions"
    ],
    "dependencies": {
        "@babel/runtime": "^7.14.6",
        "@loadable/component": "^5.15.0",
        "@loadable/server": "^5.15.0",
        "@reduxjs/toolkit": "^1.6.0",
        "@types/lodash": "^4.14.177",
        "autoprefixer": "^10.2.6",
        "axios": "^0.21.1",
        "bcrypt": "^5.0.1",
        "chalk": "^4.1.1",
        "compression": "^1.7.4",
        "connected-react-router": "^6.9.1",
        "core-js": "^3.15.2",
        "cross-env": "^7.0.3",
        "express": "^4.17.1",
        "fs": "^0.0.1-security",
        "google-auth-library": "^7.10.1",
        "google-spreadsheet": "^3.1.15",
        "googleapis": "^88.2.0",
        "helmet": "^4.6.0",
        "history": "^4.10.1",
        "hpp": "^0.2.3",
        "html-minifier": "^4.0.0",
        "https": "^1.0.0",
        "jsonwebtoken": "^8.5.1",
        "lodash": "^4.17.21",
        "morgan": "^1.10.0",
        "normalize.css": "^8.0.1",
        "process": "^0.11.10",
        "react": "^17.0.2",
        "react-dom": "^17.0.2",
        "react-helmet": "^6.1.0",
        "react-redux": "^7.2.4",
        "react-router": "^5.2.0",
        "react-router-config": "^5.1.1",
        "react-router-dom": "^5.3.0",
        "react-toastify": "^8.1.0",
        "readline": "^1.3.0",
        "redux-thunk": "^2.3.0",
        "serialize-javascript": "^6.0.0",
        "serve-favicon": "^2.5.0"
    },
    "devDependencies": {
        "@babel/core": "^7.14.6",
        "@babel/plugin-transform-runtime": "^7.14.5",
        "@babel/preset-env": "^7.14.7",
        "@babel/preset-react": "^7.14.5",
        "@babel/preset-typescript": "^7.14.5",
        "@loadable/babel-plugin": "^5.13.2",
        "@loadable/webpack-plugin": "^5.15.0",
        "@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
        "@testing-library/jest-dom": "^5.14.1",
        "@testing-library/react": "^12.0.0",
        "@types/bcrypt": "^5.0.0",
        "@types/compression": "^1.7.1",
        "@types/compression-webpack-plugin": "^6.0.6",
        "@types/css-minimizer-webpack-plugin": "^3.0.2",
        "@types/express": "4.17.1",
        "@types/google-spreadsheet": "^3.1.5",
        "@types/hpp": "^0.2.1",
        "@types/html-minifier": "^4.0.1",
        "@types/jest": "^26.0.24",
        "@types/jsonwebtoken": "^8.5.6",
        "@types/loadable__component": "^5.13.4",
        "@types/loadable__server": "^5.12.6",
        "@types/loadable__webpack-plugin": "^5.7.3",
        "@types/mini-css-extract-plugin": "^2.0.1",
        "@types/morgan": "^1.9.3",
        "@types/react-dom": "^17.0.8",
        "@types/react-helmet": "^6.1.1",
        "@types/react-router-config": "^5.0.2",
        "@types/react-router-dom": "^5.1.7",
        "@types/react-test-renderer": "^17.0.1",
        "@types/redux-mock-store": "^1.0.2",
        "@types/serialize-javascript": "^5.0.1",
        "@types/serve-favicon": "^2.5.3",
        "@types/terser-webpack-plugin": "^5.0.4",
        "@types/webpack-bundle-analyzer": "^4.4.1",
        "@types/webpack-manifest-plugin": "^3.0.5",
        "@types/webpack-node-externals": "^2.5.2",
        "@typescript-eslint/eslint-plugin": "^4.28.2",
        "@typescript-eslint/parser": "^4.28.2",
        "babel-loader": "^8.2.2",
        "compression-webpack-plugin": "^8.0.1",
        "css-loader": "^5.2.6",
        "css-minimizer-webpack-plugin": "^3.0.2",
        "eslint": "^7.14.0",
        "eslint-config-airbnb": "^18.2.1",
        "eslint-config-prettier": "^8.3.0",
        "eslint-import-resolver-typescript": "^2.4.0",
        "eslint-plugin-import": "^2.22.1",
        "eslint-plugin-jest": "^24.3.6",
        "eslint-plugin-jest-dom": "^3.9.0",
        "eslint-plugin-jsx-a11y": "^6.4.1",
        "eslint-plugin-react": "^7.23.2",
        "eslint-plugin-react-hooks": "^4",
        "eslint-plugin-testing-library": "^4.9.0",
        "fork-ts-checker-webpack-plugin": "^6.2.12",
        "husky": "^7.0.1",
        "identity-obj-proxy": "^3.0.0",
        "image-minimizer-webpack-plugin": "^2.2.0",
        "imagemin-gifsicle": "^7.0.0",
        "imagemin-jpegtran": "^7.0.0",
        "imagemin-optipng": "^8.0.0",
        "imagemin-svgo": "^9.0.0",
        "jest": "^27.0.6",
        "lint-staged": "^11.0.0",
        "mini-css-extract-plugin": "^2.1.0",
        "node-sass": "^6.0.1",
        "nodemon": "^2.0.9",
        "npm-run-all": "^4.1.5",
        "postcss": "^8.3.5",
        "postcss-loader": "^6.1.1",
        "prettier": "^2.3.2",
        "react-refresh": "^0.10.0",
        "react-test-renderer": "^17.0.2",
        "redux-mock-store": "^1.5.4",
        "sass-loader": "^12.1.0",
        "source-map-support": "^0.5.19",
        "stylelint": "^13.13.1",
        "stylelint-config-prettier": "^8.0.2",
        "stylelint-config-sass-guidelines": "^8.0.0",
        "stylelint-config-standard": "^22.0.0",
        "stylelint-order": "^4.1.0",
        "terser-webpack-plugin": "^5.1.4",
        "ts-jest": "^27.0.3",
        "ts-node": "^10.0.0",
        "typescript": "^4.3.5",
        "webpack": "^5.43.0",
        "webpack-bundle-analyzer": "^4.4.2",
        "webpack-cli": "^4.7.2",
        "webpack-dev-middleware": "^5.0.0",
        "webpack-hot-middleware": "^2.25.0",
        "webpack-manifest-plugin": "^3.1.1",
        "webpack-merge": "^5.8.0",
        "webpack-node-externals": "^3.0.0"
    }
}
