{ "name": "shlink-web-client", "description": "A React-based progressive web application for shlink", "private": false, "homepage": "", "repository": "https://github.com/shlinkio/shlink-web-client", "license": "MIT", "scripts": { "lint": "npm run lint:js && npm run lint:css", "lint:js": "eslint --ext .js,.ts,.tsx src test scripts config", "lint:js:fix": "npm run lint:js -- --fix", "lint:css": "stylelint src/*.scss src/**/*.scss", "lint:css:fix": "npm run lint:css -- --fix", "start": "node scripts/start.js", "serve:build": "serve ./build", "build": "node scripts/build.js", "test": "node scripts/test.js --env=jsdom --colors", "test:ci": "npm run test -- --coverage --coverageReporters=text --coverageReporters=text-summary --coverageReporters=clover", "test:pretty": "npm run test -- --coverage --coverageReporters=text --coverageReporters=text-summary --coverageReporters=html", "mutate": "./node_modules/.bin/stryker run --concurrency 4" }, "dependencies": { "@fortawesome/fontawesome-free": "^5.15.1", "@fortawesome/fontawesome-svg-core": "^1.2.32", "@fortawesome/free-regular-svg-icons": "^5.15.1", "@fortawesome/free-solid-svg-icons": "^5.15.1", "@fortawesome/react-fontawesome": "^0.1.12", "axios": "^0.21.0", "bootstrap": "^4.5.3", "bottlejs": "^2.0.0", "bowser": "^2.11.0", "chart.js": "^2.9.4", "classnames": "^2.2.6", "compare-versions": "^3.6.0", "csvjson": "^5.1.0", "event-source-polyfill": "^1.0.21", "leaflet": "^1.7.1", "moment": "^2.29.1", "promise": "^8.1.0", "qs": "^6.9.4", "ramda": "^0.27.1", "react": "^17.0.1", "react-autosuggest": "^10.0.3", "react-chartjs-2": "^2.11.1", "react-color": "^2.19.3", "react-copy-to-clipboard": "^5.0.2", "react-datepicker": "^3.3.0", "react-dom": "^17.0.1", "react-external-link": "^1.2.0", "react-leaflet": "^3.0.2", "react-moment": "^1.0.0", "react-redux": "^7.2.2", "react-router-dom": "^5.2.0", "react-swipeable": "^6.0.0", "react-tagsinput": "^3.19.0", "reactstrap": "^8.7.1", "redux": "^4.0.5", "redux-localstorage-simple": "^2.3.1", "redux-thunk": "^2.3.0", "uuid": "^8.3.1" }, "devDependencies": { "@babel/core": "^7.12.3", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", "@babel/plugin-proposal-optional-chaining": "^7.12.1", "@shlinkio/eslint-config-js-coding-standard": "~1.1.0", "@stryker-mutator/core": "^4.3.1", "@stryker-mutator/jest-runner": "^4.3.1", "@stryker-mutator/typescript-checker": "^4.3.1", "@svgr/webpack": "^5.4.0", "@types/chart.js": "^2.9.27", "@types/classnames": "^2.2.11", "@types/enzyme": "^3.10.8", "@types/jest": "^26.0.15", "@types/leaflet": "^1.5.19", "@types/moment": "^2.13.0", "@types/qs": "^6.9.5", "@types/ramda": "^0.27.32", "@types/react": "^16.9.56", "@types/react-autosuggest": "^10.0.1", "@types/react-color": "^3.0.4", "@types/react-copy-to-clipboard": "^4.3.0", "@types/react-datepicker": "^3.1.1", "@types/react-dom": "^16.9.9", "@types/react-leaflet": "^2.5.2", "@types/react-redux": "^7.1.11", "@types/react-router-dom": "^5.1.6", "@types/react-tagsinput": "^3.19.7", "@types/uuid": "^8.3.0", "@typescript-eslint/parser": "^4.7.0", "@wojtekmaj/enzyme-adapter-react-17": "^0.3.1", "adm-zip": "^0.4.16", "autoprefixer": "^10.0.2", "babel-core": "7.0.0-bridge.0", "babel-jest": "^26.6.3", "babel-loader": "^8.2.1", "babel-plugin-named-asset-import": "^0.3.7", "babel-preset-react-app": "^10.0.0", "babel-runtime": "^6.26.0", "bfj": "^7.0.2", "case-sensitive-paths-webpack-plugin": "^2.3.0", "chalk": "^4.1.0", "css-loader": "^5.0.1", "dart-sass": "^1.25.0", "dotenv": "^8.2.0", "dotenv-expand": "^5.1.0", "enzyme": "^3.11.0", "eslint": "^7.13.0", "eslint-loader": "^4.0.2", "file-loader": "^6.2.0", "fork-ts-checker-webpack-plugin-alt": "^0.4.14", "fs-extra": "^9.0.1", "html-webpack-plugin": "^4.5.0", "identity-obj-proxy": "^3.0.0", "jest": "^26.6.3", "jest-pnp-resolver": "^1.2.2", "jest-resolve": "^26.6.2", "mini-css-extract-plugin": "^1.3.1", "object-assign": "^4.1.1", "optimize-css-assets-webpack-plugin": "^5.0.4", "pnp-webpack-plugin": "^1.6.4", "postcss": "^8.1.7", "postcss-flexbugs-fixes": "^4.2.1", "postcss-loader": "^3.0.0", "postcss-preset-env": "^6.7.0", "postcss-safe-parser": "^5.0.2", "raf": "^3.4.1", "react-app-polyfill": "^2.0.0", "react-dev-utils": "^11.0.0", "resolve": "^1.19.0", "sass": "^1.29.0", "sass-loader": "^10.1.0", "serve": "^11.3.2", "stryker-cli": "^1.0.0", "style-loader": "^2.0.0", "stylelint": "^13.7.2", "stylelint-config-adidas": "^1.3.0", "stylelint-config-adidas-bem": "^1.2.0", "stylelint-config-recommended-scss": "^4.2.0", "stylelint-scss": "^3.18.0", "sw-precache-webpack-plugin": "^1.0.0", "terser-webpack-plugin": "^4.2.3", "ts-jest": "^26.4.4", "ts-mockery": "^1.2.0", "typescript": "^4.0.5", "url-loader": "^4.1.1", "webpack": "^4.44.2", "webpack-dev-server": "^3.11.0", "webpack-manifest-plugin": "^2.2.0", "whatwg-fetch": "^3.5.0" }, "babel": { "presets": [ [ "react-app", { "runtime": "automatic" } ] ], "plugins": [ "@babel/plugin-proposal-optional-chaining", "@babel/plugin-proposal-nullish-coalescing-operator" ] }, "browserslist": [ ">0.2%", "not dead", "not ie <= 11", "not op_mini all" ] }