{
  "name": "blessing-skin-server",
  "version": "4.0.0-rc.1",
  "description": "A web application brings your custom skins back in offline Minecraft servers.",
  "repository": {
    "type": "git",
    "url": "https://github.com/bs-community/blessing-skin-server"
  },
  "author": "printempw",
  "license": "MIT",
  "private": true,
  "scripts": {
    "dev": "webpack-dev-server",
    "build": "rimraf public/app && webpack --mode=production -p",
    "lint": "eslint --ext=.js,.vue,.ts -f=beauty .",
    "test": "tsc -p . && jest",
    "codecov": "codecov -F js"
  },
  "dependencies": {
    "@babel/runtime": "^7.4.2",
    "@fortawesome/fontawesome-free": "^5.7.2",
    "@tweenjs/tween.js": "^17.3.0",
    "admin-lte": "^2.4.10",
    "echarts": "^4.1.0",
    "element-theme-chalk": "^2.6.3",
    "element-ui": "^2.7.0",
    "jquery": "^3.3.1",
    "skinview3d": "^1.1.0",
    "vue": "^2.6.10",
    "vue-good-table": "^2.16.3",
    "vue-recaptcha": "^1.1.1",
    "vue-upload-component": "^2.8.19",
    "vuejs-paginate": "^2.1.0"
  },
  "devDependencies": {
    "@babel/core": "^7.4.0",
    "@babel/plugin-proposal-optional-catch-binding": "^7.2.0",
    "@babel/plugin-syntax-dynamic-import": "^7.2.0",
    "@babel/plugin-transform-runtime": "^7.4.0",
    "@babel/preset-env": "^7.4.2",
    "@babel/preset-typescript": "^7.3.3",
    "@gplane/tsconfig": "^1.0.0",
    "@types/echarts": "^4.1.7",
    "@types/jest": "^24.0.11",
    "@types/jquery": "^3.3.9",
    "@types/webpack": "^4.4.25",
    "@typescript-eslint/eslint-plugin": "^1.4.2",
    "@typescript-eslint/parser": "^1.5.0",
    "@vue/test-utils": "^1.0.0-beta.29",
    "autoprefixer": "^9.5.0",
    "babel-eslint": "^10.0.1",
    "babel-jest": "^24.5.0",
    "babel-loader": "^8.0.5",
    "babel-plugin-dynamic-import-node": "^2.2.0",
    "cache-loader": "^2.0.1",
    "codecov": "^3.1.0",
    "copy-webpack-plugin": "^5.0.1",
    "css-loader": "^2.1.0",
    "cssnano": "^4.1.10",
    "eslint": "^5.16.0",
    "eslint-config-gplane": "^5.1.3",
    "eslint-formatter-beauty": "^3.0.0",
    "eslint-plugin-project": "^0.2.2",
    "eslint-plugin-vue": "^5.2.2",
    "expose-loader": "^0.7.5",
    "file-loader": "^3.0.1",
    "jest": "^24.5.0",
    "jest-extended": "^0.11.1",
    "json-loader": "^0.5.7",
    "mini-css-extract-plugin": "^0.5.0",
    "node-sass": "^4.11.0",
    "postcss-loader": "^3.0.0",
    "rimraf": "^2.6.3",
    "sass-loader": "^7.1.0",
    "style-loader": "^0.23.1",
    "stylus": "^0.54.5",
    "stylus-loader": "^3.0.2",
    "typescript": "^3.4.1",
    "url-loader": "^1.1.2",
    "vue-jest": "^4.0.0-beta.2",
    "vue-loader": "^15.7.0",
    "vue-template-compiler": "^2.6.10",
    "webpack": "^4.29.6",
    "webpack-cli": "^3.2.3",
    "webpack-dev-server": "^3.2.1",
    "webpack-manifest-plugin": "^2.0.4",
    "webpackbar": "^3.1.5",
    "yaml-loader": "^0.5.0"
  },
  "browserslist": [
    "> 1%",
    "not dead",
    "not ie 11",
    "Chrome > 52"
  ],
  "prettier": {
    "printWidth": 80,
    "semi": false,
    "singleQuote": true,
    "trailingComma": "es5",
    "arrowParens": "avoid",
    "tabWidth": 2
  },
  "eslintConfig": {
    "root": true,
    "extends": [
      "gplane",
      "gplane/vue"
    ],
    "parser": "vue-eslint-parser",
    "parserOptions": {
      "ecmaVersion": 2018,
      "sourceType": "module",
      "parser": "babel-eslint"
    },
    "env": {
      "node": true,
      "es6": true,
      "jquery": true
    },
    "globals": {
      "blessing": "readonly"
    },
    "plugins": [
      "project"
    ],
    "settings": {
      "projectRulesDir": "resources/assets/eslint-rules"
    },
    "rules": {
      "camelcase": [
        2,
        {
          "properties": "never",
          "ignoreDestructuring": true
        }
      ],
      "max-len": [
        2,
        120
      ],
      "prefer-object-spread": 0,
      "import/no-unresolved": 0,
      "project/linebreak-between-tests": 2
    },
    "overrides": [
      {
        "files": [
          "*.ts"
        ],
        "parserOptions": {
          "parser": "@typescript-eslint/parser"
        },
        "plugins": [
          "@typescript-eslint"
        ],
        "rules": {
          "no-undef": 0,
          "no-unused-vars": 0,
          "no-invalid-this": 0,
          "indent": 0,
          "@typescript-eslint/indent": [
            2,
            2,
            {
              "SwitchCase": 1
            }
          ]
        }
      }
    ]
  },
  "jest": {
    "resetMocks": true,
    "timers": "fake",
    "transform": {
      ".*\\.(t|j)s$": "babel-jest",
      ".*\\.vue$": "vue-jest"
    },
    "moduleFileExtensions": [
      "js",
      "vue",
      "ts",
      "json",
      "node"
    ],
    "moduleNameMapper": {
      "^@/(.*)$": "<rootDir>/resources/assets/src/$1",
      "\\.css$": "<rootDir>/resources/assets/tests/__mocks__/style.ts",
      "\\.(png|jpg)$": "<rootDir>/resources/assets/tests/__mocks__/file.ts"
    },
    "setupFilesAfterEnv": [
      "<rootDir>/resources/assets/tests/setup.js"
    ],
    "coveragePathIgnorePatterns": [
      "/node_modules/",
      "<rootDir>/resources/assets/tests/setup",
      "<rootDir>/resources/assets/tests/utils"
    ],
    "testRegex": "resources/assets/tests/.*\\.(spec|test)\\.(t|j)s$"
  }
}