{ "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:css && npm run lint:js", "lint:css": "stylelint src/*.scss src/**/*.scss", "lint:js": "eslint --ext .js,.ts,.tsx src test", "lint:fix": "npm run lint:css:fix && npm run lint:js:fix", "lint:css:fix": "npm run lint:css -- --fix", "lint:js:fix": "npm run lint:js -- --fix", "start": "node scripts/start.js", "serve:build": "serve ./build", "build": "node scripts/build.js && node scripts/replace-version.js", "build:dist": "npm run build && node scripts/create-dist-file.js", "test": "node scripts/test.js --env=jsdom --colors --verbose", "test:coverage": "npm run test -- --coverage --coverageReporters=text --coverageReporters=text-summary", "test:ci": "npm run test:coverage -- --coverageReporters=clover", "test:pretty": "npm run test:coverage -- --coverageReporters=html", "mutate": "./node_modules/.bin/stryker run --concurrency 4" }, "dependencies": { "@fortawesome/fontawesome-free": "^5.15.2", "@fortawesome/fontawesome-svg-core": "^1.2.34", "@fortawesome/free-regular-svg-icons": "^5.15.2", "@fortawesome/free-solid-svg-icons": "^5.15.2", "@fortawesome/react-fontawesome": "^0.1.14", "axios": "^0.21.2", "bootstrap": "^5.1.3", "bottlejs": "^2.0.0", "bowser": "^2.11.0", "chart.js": "^3.5.1", "classnames": "^2.2.6", "compare-versions": "^3.6.0", "csvjson": "^5.1.0", "date-fns": "^2.22.1", "event-source-polyfill": "^1.0.22", "leaflet": "^1.7.1", "promise": "^8.1.0", "qs": "^6.9.6", "ramda": "^0.27.1", "react": "^17.0.1", "react-chartjs-2": "^3.0.4", "react-colorful": "^5.5.1", "react-copy-to-clipboard": "^5.0.2", "react-datepicker": "^3.6.0", "react-dom": "^17.0.1", "react-external-link": "^1.2.0", "react-leaflet": "^3.1.0", "react-redux": "^7.2.2", "react-router-dom": "^6.2.1", "react-swipeable": "^6.0.1", "react-tag-autocomplete": "^6.1.0", "reactstrap": "^9.0.1", "redux": "^4.0.5", "redux-localstorage-simple": "^2.4.0", "redux-thunk": "^2.3.0", "uuid": "^8.3.2", "workbox-core": "^6.1.5", "workbox-expiration": "^6.1.5", "workbox-precaching": "^6.1.5", "workbox-routing": "^6.1.5", "workbox-strategies": "^6.1.5" }, "devDependencies": { "@babel/core": "^7.13.8", "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", "@babel/plugin-proposal-optional-chaining": "^7.13.8", "@shlinkio/eslint-config-js-coding-standard": "~1.2.2", "@stryker-mutator/core": "^5.4.1", "@stryker-mutator/jest-runner": "^5.4.1", "@stryker-mutator/typescript-checker": "^5.4.1", "@svgr/webpack": "^5.5.0", "@types/classnames": "^2.2.11", "@types/enzyme": "^3.10.10", "@types/jest": "^27.4.1", "@types/leaflet": "^1.5.23", "@types/qs": "^6.9.5", "@types/ramda": "^0.27.38", "@types/react": "^17.0.2", "@types/react-color": "^3.0.4", "@types/react-copy-to-clipboard": "^5.0.0", "@types/react-datepicker": "^3.1.5", "@types/react-dom": "^17.0.1", "@types/react-leaflet": "^2.5.2", "@types/react-redux": "^7.1.16", "@types/react-tag-autocomplete": "^6.1.0", "@types/uuid": "^8.3.0", "@wojtekmaj/enzyme-adapter-react-17": "^0.6.5", "adm-zip": "^0.4.16", "autoprefixer": "^10.0.2", "babel-core": "7.0.0-bridge.0", "babel-jest": "^27.5.1", "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.2", "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": "^27.3.1", "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.2.13", "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-dev-utils": "^11.0.0", "resolve": "^1.19.0", "sass": "^1.29.0", "sass-loader": "^10.1.0", "serve": "^12.0.0", "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-mockery": "^1.2.0", "typescript": "^4.4.4", "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", "workbox-webpack-plugin": "^6.1.5" }, "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" ] }