{ "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", "mutate:ci": "npm run mutate -- --mutate=$MUTATION_FILES" }, "dependencies": { "@fortawesome/fontawesome-free": "^5.14.0", "@fortawesome/fontawesome-svg-core": "^1.2.30", "@fortawesome/free-regular-svg-icons": "^5.14.0", "@fortawesome/free-solid-svg-icons": "^5.14.0", "@fortawesome/react-fontawesome": "^0.1.11", "array-filter": "^1.0.0", "array-map": "^0.0.0", "array-reduce": "^0.0.0", "axios": "^0.20.0", "bootstrap": "^4.5.2", "bottlejs": "^2.0.0", "bowser": "^2.10.0", "chart.js": "^2.9.3", "classnames": "^2.2.6", "compare-versions": "^3.6.0", "csvjson": "^5.1.0", "event-source-polyfill": "^1.0.17", "leaflet": "^1.7.1", "moment": "^2.27.0", "promise": "^8.0.3", "qs": "^6.9.4", "ramda": "^0.27.1", "react": "^16.13.1", "react-autosuggest": "^10.0.2", "react-chartjs-2": "^2.10.0", "react-color": "^2.18.1", "react-copy-to-clipboard": "^5.0.2", "react-datepicker": "~1.5.0", "react-dom": "^16.13.1", "react-external-link": "^1.1.1", "react-leaflet": "^2.7.0", "react-moment": "^0.9.7", "react-redux": "^7.2.1", "react-router-dom": "^5.2.0", "react-swipeable": "^5.5.1", "react-tagsinput": "^3.19.0", "reactstrap": "^8.0.1", "redux": "^4.0.4", "redux-localstorage-simple": "^2.2.0", "redux-thunk": "^2.3.0", "uuid": "^3.3.3" }, "devDependencies": { "@babel/core": "^7.6.2", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.10.4", "@babel/plugin-proposal-optional-chaining": "^7.11.0", "@shlinkio/eslint-config-js-coding-standard": "~1.1.0", "@stryker-mutator/core": "^3.2.4", "@stryker-mutator/typescript": "^3.2.4", "@stryker-mutator/jest-runner": "^3.2.4", "@svgr/webpack": "^4.3.3", "@types/chart.js": "^2.9.24", "@types/classnames": "^2.2.10", "@types/enzyme": "^3.10.5", "@types/jest": "^26.0.10", "@types/leaflet": "^1.5.17", "@types/moment": "^2.13.0", "@types/qs": "^6.9.4", "@types/ramda": "^0.27.14", "@types/react": "^16.9.46", "@types/react-autosuggest": "^10.0.0", "@types/react-color": "^2.17.4", "@types/react-copy-to-clipboard": "^4.3.0", "@types/react-datepicker": "~1.8.0", "@types/react-dom": "^16.9.8", "@types/react-leaflet": "^2.5.2", "@types/react-redux": "^7.1.9", "@types/react-router-dom": "^5.1.5", "@types/react-tagsinput": "^3.19.7", "@types/reactstrap": "^8.5.1", "@types/uuid": "^8.3.0", "adm-zip": "^0.4.13", "autoprefixer": "^9.6.3", "babel-core": "7.0.0-bridge.0", "babel-jest": "^26.3.0", "babel-loader": "^8.0.6", "babel-plugin-named-asset-import": "^0.3.4", "babel-preset-react-app": "^9.0.2", "babel-runtime": "^6.26.0", "bfj": "^7.0.1", "case-sensitive-paths-webpack-plugin": "^2.2.0", "chalk": "^2.4.2", "css-loader": "^3.2.0", "dotenv": "^8.1.0", "dotenv-expand": "^5.1.0", "enzyme": "^3.11.0", "enzyme-adapter-react-16": "^1.15.2", "eslint": "^6.8.0", "eslint-loader": "^3.0.2", "file-loader": "^4.2.0", "fork-ts-checker-webpack-plugin-alt": "^0.4.14", "fs-extra": "^8.1.0", "html-webpack-plugin": "^4.0.0-beta.8", "identity-obj-proxy": "^3.0.0", "jest": "^26.4.2", "jest-pnp-resolver": "^1.2.2", "jest-resolve": "^26.4.0", "mini-css-extract-plugin": "^0.8.0", "node-sass": "^4.14.1", "object-assign": "^4.1.1", "ocular.js": "^0.1.0", "optimize-css-assets-webpack-plugin": "^5.0.3", "pnp-webpack-plugin": "^1.5.0", "postcss": "^7.0.18", "postcss-flexbugs-fixes": "^4.1.0", "postcss-loader": "^3.0.0", "postcss-preset-env": "^6.7.0", "postcss-safe-parser": "^4.0.1", "raf": "^3.4.1", "react-app-polyfill": "^1.0.6", "react-dev-utils": "^9.1.0", "resolve": "^1.12.0", "sass-loader": "^10.0.2", "serve": "^11.3.2", "stryker-cli": "^1.0.0", "style-loader": "^1.2.1", "stylelint": "^13.7.0", "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": "^0.11.5", "terser-webpack-plugin": "^2.1.2", "ts-jest": "^26.3.0", "ts-mockery": "^1.2.0", "typescript": "^3.9.7", "url-loader": "^2.2.0", "webpack": "^4.41.0", "webpack-dev-server": "^3.8.2", "webpack-manifest-plugin": "^2.2.0", "whatwg-fetch": "^3.0.0", "workbox-webpack-plugin": "^4.3.1" }, "babel": { "presets": [ "react-app" ], "plugins": [ "@babel/plugin-proposal-optional-chaining", "@babel/plugin-proposal-nullish-coalescing-operator" ] }, "browserslist": [ ">0.2%", "not dead", "not ie <= 11", "not op_mini all" ] }