{
"name": "cockpit-composer",
"version": "0.0.1",
"private": true,
"engines": {
"node": ">=6",
"npm": ">=5.0"
},
"dependencies": {
"@patternfly/patternfly": "4.65.6",
"@patternfly/react-core": "4.79.2",
"@patternfly/react-icons": "4.7.18",
"@patternfly/react-table": "4.19.24",
"bootstrap": "3.4.1",
"core-js": "3.8.0",
"core-js-compat": "3.8.0",
"fastclick": "1.0.6",
"history": "3.3.0",
"jquery": "3.5.1",
"patternfly-react": "1.19.1",
"prop-types": "15.7.2",
"react": "16.14.0",
"react-dom": "16.14.0",
"react-intl": "2.9.0",
"react-redux": "5.1.2",
"redux": "3.7.2",
"redux-saga": "0.15.6",
"regenerator-runtime": "0.13.7",
"reselect": "3.0.1",
"whatwg-fetch": "1.1.1"
},
"devDependencies": {
"@babel/cli": "^7.2.3",
"@babel/core": "^7.2.2",
"@babel/preset-env": "^7.2.3",
"@babel/preset-react": "^7.0.0",
"assets-webpack-plugin": "^3.9.6",
"babel-eslint": "^10.0.1",
"babel-loader": "^8.0.5",
"babel-plugin-istanbul": "^5.1.0",
"babel-plugin-react-intl": "3.0.1",
"babel-plugin-react-intl-auto": "^1.5.0",
"chrome-remote-interface": "^0.28.1",
"clean-webpack-plugin": "^1.0.0",
"connect-history-api-fallback": "^1.2.0",
"copy-webpack-plugin": "^4.6.0",
"css-loader": "^1.0.0",
"del": "^2.2.1",
"ejs": "^2.5.1",
"eslint": "^7.2.0",
"eslint-config-airbnb": "^18.2.0",
"eslint-config-prettier": "^6.11.0",
"eslint-plugin-babel": "^5.3.1",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-jsx-a11y": "^6.3.1",
"eslint-plugin-prettier": "^3.1.4",
"eslint-plugin-react": "^7.20.2",
"eslint-plugin-react-hooks": "^4.0.0",
"eslint-plugin-redux-saga": "^1.1.3",
"eslint-webpack-plugin": "^2.2.1",
"faker": "^4.1.0",
"glob": "^6.0.4",
"html-webpack-plugin": "^3.2.0",
"jed": "^1.1.1",
"jsel": "^1.1.6",
"mini-css-extract-plugin": "^0.8.0",
"mkdirp": "^0.5.1",
"node-sass": "^4.14.1",
"path-to-regexp": "^1.5.3",
"po2json": "^0.4.5",
"postcss": "^7.0.14",
"prettier": "2.0.5",
"react-intl-po": "^2.2.2",
"sass": "^1.27.1",
"sass-loader": "^10.0.4",
"sizzle": "^2.3.5",
"stdio": "^0.2.7",
"string-replace-loader": "^2.3.0",
"stylelint": "^9.5.0",
"stylelint-config-standard": "^18.2.0",
"webpack": "^4.28.4",
"webpack-cli": "^3.2.1"
},
"eslintConfig": {
"globals": {
"cockpit": true,
"$": false,
"document": false
},
"parser": "babel-eslint",
"parserOptions": {
"ecmaVersion": 2018,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"plugins": [
"prettier",
"redux-saga"
],
"extends": [
"airbnb",
"eslint:recommended",
"plugin:react/recommended",
"plugin:jsx-a11y/recommended",
"plugin:import/recommended",
"plugin:redux-saga/recommended",
"prettier",
"prettier/react"
],
"rules": {
"prettier/prettier": "error",
"max-len": [
"error",
{
"code": 120,
"ignoreStrings": true,
"ignoreTemplateLiterals": true,
"ignoreTrailingComments": true
}
],
"no-console": 0,
"react/jsx-filename-extension": [
1,
{
"extensions": [
".js",
".jsx"
]
}
],
"import/no-extraneous-dependencies": [
"error",
{
"devDependencies": [
"test/**/*.js",
"webpack.config.js",
"run.js",
"utils/*.js"
]
}
],
"import/no-unresolved": [
"error",
{
"ignore": [
"./build/*",
"chai",
"cockpit"
]
}
],
"react/jsx-wrap-multilines": [
"error",
{
"declaration": false,
"assignment": false
}
],
"jsx-a11y/label-has-associated-control": [
"error",
{
"labelComponents": [
"label"
],
"labelAttributes": [
"htmlFor"
],
"controlComponents": [
"input"
]
}
],
"react/destructuring-assignment": "off",
"react/no-multi-comp": "off",
"jsx-a11y/no-onchange": "off",
"jsx-a11y/label-has-for": "off",
"redux-saga/no-unhandled-errors": 0,
"jsx-a11y/anchor-is-valid": "off",
"jsx-a11y/no-autofocus": "off",
"class-methods-use-this": "off",
"global-require": "off",
"no-restricted-syntax": 0,
"no-shadow": "off",
"no-return-assign": "off",
"no-param-reassign": "off",
"array-callback-return": "off",
"react/jsx-props-no-spreading": "off",
"no-useless-constructor": "off",
"no-nested-ternary": "off",
"max-classes-per-file": "off",
"react/no-deprecated": "off",
"no-prototype-builtins": "off",
"no-redeclare": "off",
"no-restricted-globals": "off",
"no-use-before-define": "off",
"no-useless-concat": "off",
"prefer-promise-reject-errors": "off",
"no-underscore-dangle": "off",
"consistent-return": "off",
"no-continue": "off",
"func-names": "off",
"prefer-destructuring": "off",
"no-unused-expressions": "off",
"guard-for-in": "off",
"react/forbid-prop-types": "off"
},
"env": {
"browser": true,
"commonjs": true,
"es6": true,
"node": true
}
},
"prettier": {
"printWidth": 120
},
"stylelint": {
"extends": "stylelint-config-standard",
"rules": {
"string-quotes": "single"
}
},
"scripts": {
"eslint": "eslint components core data pages utils main.js webpack.config.js",
"stylelint": "stylelint \"components/**/*.css\" \"pages/**/*.css\"",
"lint": "npm run eslint && npm run stylelint",
"clean": "node run clean",
"build": "npm run translations:po2json && webpack",
"watch": "npm run build -- --watch",
"translations:extract": "babel 'components/**/*.js' 'core/**/*.js' 'pages/**/*.js' 'data/**/*.js' main.js >/dev/null",
"translations:json2pot": "mkdirp build/messages && rip json2pot 'build/messages/**/*.json' -o po/cockpit-composer.pot && node utils/add-title.js ./public/manifest.json po/cockpit-composer.pot",
"translations:po2json": "npm run translations:extract && rip po2json 'po/*.po' -m 'build/messages/**/*.json' -o build/translations.json"
}
}