{ "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": "DISABLE_ESLINT_PLUGIN=true react-scripts start", "build": "DISABLE_ESLINT_PLUGIN=true react-scripts build && node scripts/replace-version.js", "build:dist": "npm run build && node scripts/create-dist-file.js", "build:serve": "serve -p 5000 ./build", "test": "jest --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": "^6.0.0", "@fortawesome/fontawesome-svg-core": "^1.3.0", "@fortawesome/free-regular-svg-icons": "^6.0.0", "@fortawesome/free-solid-svg-icons": "^6.0.0", "@fortawesome/react-fontawesome": "^0.1.17", "axios": "^0.26.0", "bootstrap": "^5.1.3", "bottlejs": "^2.0.0", "bowser": "^2.11.0", "chart.js": "^3.7.1", "classnames": "^2.3.1", "compare-versions": "^4.1.3", "csvtojson": "^2.0.10", "date-fns": "^2.28.0", "event-source-polyfill": "^1.0.25", "json2csv": "^5.0.7", "leaflet": "^1.7.1", "qs": "^6.9.6", "ramda": "^0.27.2", "react": "^18.1.0", "react-chartjs-2": "^4.1.0", "react-colorful": "^5.5.1", "react-copy-to-clipboard": "^5.0.4", "react-datepicker": "^4.7.0", "react-dom": "^18.1.0", "react-external-link": "^1.2.2", "react-leaflet": "^4.0.0", "react-redux": "^8.0.0", "react-router-dom": "^6.3.0", "react-swipeable": "^6.2.0", "react-tag-autocomplete": "^6.3.0", "reactstrap": "^9.0.1", "redux": "^4.2.0", "redux-localstorage-simple": "^2.4.1", "redux-thunk": "^2.4.1", "stream": "^0.0.2", "uuid": "^8.3.2", "workbox-core": "^6.5.1", "workbox-expiration": "^6.5.1", "workbox-precaching": "^6.5.1", "workbox-routing": "^6.5.1", "workbox-strategies": "^6.5.1" }, "devDependencies": { "@shlinkio/eslint-config-js-coding-standard": "~2.0.0", "@stryker-mutator/core": "^5.6.1", "@stryker-mutator/jest-runner": "^5.6.1", "@stryker-mutator/typescript-checker": "^5.6.1", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.1.1", "@types/classnames": "^2.3.1", "@types/enzyme": "^3.10.11", "@types/jest": "^27.4.1", "@types/json2csv": "^5.0.3", "@types/leaflet": "^1.7.9", "@types/qs": "^6.9.7", "@types/ramda": "0.27.38", "@types/react": "^18.0.8", "@types/react-color": "^3.0.6", "@types/react-copy-to-clipboard": "^5.0.2", "@types/react-datepicker": "^4.3.4", "@types/react-dom": "^18.0.3", "@types/react-tag-autocomplete": "^6.1.1", "@types/uuid": "^8.3.4", "@wojtekmaj/enzyme-adapter-react-17": "0.6.5", "adm-zip": "^0.5.9", "babel-jest": "^27.5.1", "chalk": "^5.0.1", "dart-sass": "^1.25.0", "enzyme": "^3.11.0", "eslint": "^8.12.0", "identity-obj-proxy": "^3.0.0", "jest": "^27.5.1", "jest-canvas-mock": "^2.4.0", "react-scripts": "^5.0.0", "resize-observer-polyfill": "^1.5.1", "sass": "^1.49.9", "serve": "^13.0.2", "stryker-cli": "^1.0.2", "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", "ts-mockery": "^1.2.0", "typescript": "^4.6.2", "webpack": "^5.70.0" }, "browserslist": [ ">0.2%", "not dead", "not ie <= 11", "not op_mini all" ] }