{
  "name": "skyline-console",
  "version": "0.1.0",
  "description": "",
  "author": "OpenStack <openstack-discuss@lists.openstack.org>",
  "license": "Apache-2.0",
  "scripts": {
    "mock": "webpack-dev-server --open --config config/webpack.dev.js",
    "dev": "cross-env NODE_ENV=development webpack-dev-server --open --config config/webpack.dev.js --env.API=dev",
    "build": "cross-env NODE_ENV=production NODE_OPTIONS=--max-old-space-size=2048 webpack --progress --config config/webpack.prod.js",
    "build:win": "set NODE_OPTIONS=--max-old-space-size=2048 && webpack --progress --config config/webpack.prod.js",
    "build:test": "cross-env NODE_ENV=test NODE_OPTIONS=--max-old-space-size=2048 webpack --progress --config config/webpack.e2e.js",
    "i18n": "grunt",
    "lint": "eslint src --fix --quiet --ext .js,.jsx",
    "lint:test": "eslint test --fix --quiet --ext .js",
    "lint:style": "stylelint --fix \"src/**/*.less\" --custom-syntax postcss-less",
    "report:delete-json": "rm -rf test/e2e/results/* || true",
    "report:delete-html": "rm -rf test/e2e/report || true",
    "report:pre": "npm run report:delete-json && npm run report:delete-html && mkdir test/e2e/report",
    "report:merge": "npx mochawesome-merge test/e2e/results/*.json > test/e2e/report/merge-report.json",
    "report:generate": "npm run report:merge && npx mochawesome-report-generator test/e2e/report/merge-report.json -o test/e2e/report",
    "test:e2e:run": "npm run report:pre && cypress run || true",
    "test:e2e": "npm run test:e2e:run && npm run report:generate",
    "test:e2e:open": "cypress open",
    "test:e2e:server": "cross-env NODE_ENV=test webpack-dev-server --open --progress --config config/webpack.e2e.js",
    "test:unit": "cross-env NODE_ENV=development jest",
    "test:unit:coverage": "cross-env NODE_ENV=development jest --coverage"
  },
  "husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "*.{css,less}": [
      "stylelint --fix",
      "git add"
    ],
    "*.{js,jsx}": [
      "eslint --fix",
      "git add"
    ],
    "*.{html,css,scss,less,md,json}": [
      "prettier --write",
      "git add"
    ]
  },
  "dependencies": {
    "@ant-design/icons": "^4.0.6",
    "@antv/data-set": "^0.11.4",
    "@antv/g6": "^3.5.10",
    "@babel/runtime-corejs3": "^7.14.0",
    "ace-builds": "^1.4.12",
    "antd": "^4.1.3",
    "axios": "^0.21.1",
    "bizcharts": "^4.0.6",
    "cidr-regex": "^3.1.1",
    "classnames": "^2.2.6",
    "cookie": "^0.4.1",
    "escape-html": "^1.0.3",
    "file-saver": "^2.0.2",
    "history": "4.7.2",
    "intersection-observer": "^0.11.0",
    "intl-messageformat": "7.8.4",
    "invariant": "^2.2.4",
    "ip-address": "^7.1.0",
    "js-yaml": "^4.0.0",
    "json2csv": "^5.0.1",
    "libphonenumber-js": "^1.9.42",
    "lodash": "^4.17.19",
    "mobx": "^5.1.0",
    "mobx-react": "^5.2.8",
    "mobx-react-router": "^4.1.0",
    "moment": "^2.24.0",
    "nanoid": "^3.0.2",
    "prop-types": "^15.7.2",
    "qs": "^6.9.4",
    "react": "^16.2.0",
    "react-ace": "^9.2.0",
    "react-document-title": "^2.0.3",
    "react-dom": "^16.2.0",
    "react-fast-compare": "^3.0.1",
    "react-router": "^4.3.1",
    "react-router-dom": "^4.3.1",
    "uuid": "^8.3.2"
  },
  "devDependencies": {
    "@babel/core": "^7.14.3",
    "@babel/plugin-proposal-class-properties": "^7.13.0",
    "@babel/plugin-proposal-decorators": "^7.14.2",
    "@babel/plugin-proposal-throw-expressions": "^7.12.13",
    "@babel/plugin-syntax-dynamic-import": "^7.8.3",
    "@babel/plugin-syntax-import-meta": "^7.10.4",
    "@babel/plugin-transform-modules-commonjs": "^7.14.0",
    "@babel/plugin-transform-runtime": "^7.14.3",
    "@babel/preset-env": "^7.14.2",
    "@babel/preset-react": "^7.13.13",
    "@cypress/code-coverage": "^3.9.5",
    "@cypress/skip-test": "^2.6.1",
    "autoprefixer": "^9.3.1",
    "babel-eslint": "^9.0.0",
    "babel-jest": "^26.6.3",
    "babel-loader": "^8.1.0",
    "babel-plugin-import": "^1.8.0",
    "babel-plugin-istanbul": "^6.0.0",
    "babel-plugin-react-css-modules": "^3.4.2",
    "cache-loader": "^4.1.0",
    "clean-webpack-plugin": "^1.0.0",
    "compression-webpack-plugin": "5.0.1",
    "cross-env": "^7.0.3",
    "css-loader": "1.0.1",
    "cypress": "6.8.0",
    "cypress-downloadfile": "^1.2.1",
    "cypress-file-upload": "^5.0.6",
    "enzyme": "^3.11.0",
    "enzyme-adapter-react-16": "^1.15.6",
    "eslint": "^7.2.0",
    "eslint-config-airbnb": "18.2.1",
    "eslint-config-prettier": "^8.3.0",
    "eslint-import-resolver-alias": "^1.1.2",
    "eslint-plugin-babel": "^5.3.1",
    "eslint-plugin-cypress": "^2.11.2",
    "eslint-plugin-import": "^2.22.1",
    "eslint-plugin-jsx-a11y": "^6.4.1",
    "eslint-plugin-prettier": "^3.4.0",
    "eslint-plugin-react": "^7.23.2",
    "eslint-plugin-spellcheck": "^0.0.19",
    "file-loader": "^6.0.0",
    "grunt": "^1.2.1",
    "happypack": "^5.0.1",
    "html-webpack-plugin": "^3.1.0",
    "husky": "^1.0.0-rc.14",
    "i18next-scanner": "2.9.2",
    "identity-obj-proxy": "^3.0.0",
    "istanbul-lib-coverage": "^3.0.0",
    "jest": "^26.6.3",
    "jest-enzyme": "^7.1.2",
    "less": "3.13.0",
    "less-loader": "5.0.0",
    "lint-staged": "^11.0.0",
    "mochawesome": "^6.2.2",
    "mochawesome-merge": "^4.2.0",
    "mochawesome-report-generator": "^5.2.0",
    "postcss-less": "2.0.0",
    "postcss-loader": "3.0.0",
    "prettier": "^2.3.0",
    "react-css-modules": "^4.7.7",
    "react-hot-loader": "^4.12.20",
    "style-loader": "^0.20.3",
    "stylelint": "^14.2.0",
    "stylelint-config-css-modules": "^2.3.0",
    "stylelint-config-prettier": "^9.0.3",
    "stylelint-config-rational-order": "^0.1.2",
    "stylelint-config-standard": "^24.0.0",
    "stylelint-order": "^5.0.0",
    "terser-webpack-plugin": "4.2.3",
    "url-loader": "^4.1.1",
    "webpack": "^4.42.1",
    "webpack-cli": "3.3.0",
    "webpack-dev-server": "^3.1.10",
    "webpack-merge": "^4.1.4"
  },
  "engines": {
    "node": ">=10.22.0",
    "yarn": ">=1.22.4"
  }
}
