bookbrainz/bookbrainz-site

View on GitHub
package.json

Summary

Maintainability
Test Coverage
{
  "name": "bbsite",
  "version": "0.0.0",
  "private": true,
  "scripts": {
    "clean": "./scripts/clean.sh",
    "prepare": "npm run clean",
    "build-server-js": "babel src --out-dir lib --source-maps --ignore src/api --extensions .js,.jsx,.ts,.tsx",
    "build-api-js": "babel src --out-dir lib --ignore 'src/server','src/client' --extensions .js,.jsx,.ts,.tsx",
    "build-scss": "./scripts/build-scss.sh",
    "build": "npm run build-client && npm run build-server-js",
    "build-client": "cross-env NODE_ENV=production webpack --progress --config webpack.client.js",
    "prestart": "npm run build",
    "start": "node ./lib/server/app.js",
    "start-api": "npm run build-api-js && cross-env NODE_ENV=development node ./lib/api/app.js",
    "debug": "cross-env DEBUG=bbsite NODE_ENV=development babel-node src/server/app.js --extensions .js,.jsx,.ts,.tsx",
    "debug-watch-server": "cross-env DEBUG=bbsite NODE_ENV=development nodemon src/server/app.js --ext js,jsx,ts,tsx --watch src/server --exec 'babel-node --extensions .js,.jsx,.ts,.tsx'",
    "lint": "eslint .",
    "lint-errors": "eslint --quiet .",
    "test": "npm run lint-errors && cross-env NODE_ENV=test mocha -r jsdom-global/register",
    "test-cov": "npx nyc --reporter=text npm run test",
    "test-ci": "NODE_ENV=test mocha --reporter json --reporter-option output=test-results.json",
    "jsdoc": "npx jsdoc -r src",
    "dupreport": "npx jsinspect src/ || true"
  },
  "engines": {
    "node": ">= 18"
  },
  "browserslist": "> 0.25%, not dead",
  "overrides": {
    "react-select-fast-filter-options": {
      "react-select": "$react-select"
    }
  },
  "dependencies": {
    "@babel/runtime": "^7.17.7",
    "@cospired/i18n-iso-languages": "^4.0.0",
    "@elastic/elasticsearch": "^5.6.22",
    "@fortawesome/fontawesome-svg-core": "^6.4.2",
    "@fortawesome/free-brands-svg-icons": "^6.4.2",
    "@fortawesome/free-solid-svg-icons": "^6.4.2",
    "@fortawesome/react-fontawesome": "^0.1.11",
    "bookbrainz-data": "5.1.1",
    "chart.js": "^2.9.4",
    "chartjs-adapter-date-fns": "^1.0.0",
    "classnames": "^2.3.2",
    "compression": "^1.7.4",
    "connect-redis": "^7.0.0",
    "core-js": "^3.20.3",
    "cross-env": "^7.0.3",
    "date-fns": "^2.15.0",
    "debug": "^4.3.2",
    "express": "4.21.1",
    "express-session": "^1.18.1",
    "express-slow-down": "^1.3.1",
    "http-status": "^1.6.2",
    "immutable": "^3.8.2",
    "influx": "^5.9.3",
    "isomorphic-dompurify": "^0.13.0",
    "jsesc": "^3.0.2",
    "lobes4": "4.0.1",
    "lodash": "^4.17.21",
    "log": "^6.0.0",
    "log-node": "^8.0.3",
    "mocha-chai-jest-snapshot": "^1.1.4",
    "morgan": "^1.10.0",
    "nodemailer": "^6.9.9",
    "passport": "^0.6.0",
    "passport-musicbrainz-oauth2": "git+https://git@github.com/LordSputnik/passport-musicbrainz-oauth2.git",
    "prop-types": "^15.8.1",
    "react": "^16.13.1",
    "react-bootstrap": "^1.6.4",
    "react-chartjs-2": "^2.11.2",
    "react-datepicker": "^4.7.0",
    "react-dom": "^16.13.1",
    "react-hot-loader": "^4.13.0",
    "react-redux": "^7.2.9",
    "react-select": "^4.3.1",
    "react-select-fast-filter-options": "^0.2.3",
    "react-simple-star-rating": "^4.0.5",
    "react-sortable-hoc": "^2.0.0",
    "react-sticky": "^6.0.1",
    "react-tooltip": "^4.2.21",
    "redis": "^4.6.5",
    "redux": "^4.2.0",
    "redux-debounce": "^1.0.1",
    "redux-immutable": "^4.0.0",
    "redux-thunk": "^2.2.0",
    "serve-favicon": "^2.4.3",
    "serve-static": "1.16.1",
    "superagent": "^8.0.8",
    "swagger-jsdoc": "^6.2.8",
    "swagger-ui-express": "^4.6.0",
    "validator": "^13.7.0"
  },
  "devDependencies": {
    "@babel/cli": "^7.17.6",
    "@babel/core": "^7.20.12",
    "@babel/node": "^7.14.2",
    "@babel/plugin-proposal-class-properties": "^7.10.1",
    "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
    "@babel/plugin-transform-classes": "^7.16.7",
    "@babel/plugin-transform-runtime": "^7.17.0",
    "@babel/preset-env": "^7.10.1",
    "@babel/preset-react": "^7.22.15",
    "@babel/preset-typescript": "^7.12.1",
    "@babel/register": "^7.23.7",
    "@faker-js/faker": "^8.1.0",
    "@types/express": "^4.17.15",
    "@types/lodash": "^4.14.202",
    "@types/react-select": "^4.0.18",
    "@typescript-eslint/eslint-plugin": "^4.28.3",
    "@typescript-eslint/parser": "^4.6.1",
    "babel-loader": "^8.2.2",
    "babel-plugin-lodash": "^3.3.4",
    "babel-plugin-transform-require-ignore": "^0.1.1",
    "bootstrap": "^4.6.1",
    "chai": "^4.3.6",
    "chai-arrays": "^2.2.0",
    "chai-as-promised": "^7.0.0",
    "chai-http": "^4.3.0",
    "chai-sorted": "^0.2.0",
    "clean-webpack-plugin": "^4.0.0",
    "compression-webpack-plugin": "^9.2.0",
    "css-loader": "^6.9.1",
    "enzyme": "^3.11.0",
    "enzyme-adapter-react-16": "^1.15.6",
    "eslint": "^7.30.0",
    "eslint-plugin-babel": "^5.3.1",
    "eslint-plugin-import": "^2.31.0",
    "eslint-plugin-node": "^11.1.0",
    "eslint-plugin-react": "^7.26.1",
    "eslint-webpack-plugin": "^2.4.1",
    "file-loader": "^6.2.0",
    "jsdom": "22.1.0",
    "jsdom-global": "3.0.2",
    "mini-css-extract-plugin": "^2.7.4",
    "mocha": "^9.1.3",
    "nodemon": "^2.0.2",
    "redux-mock-store": "^1.5.4",
    "resolve-url-loader": "^5.0.0",
    "rewire": "^7.0.0",
    "sass": "^1.59.2",
    "sass-loader": "^13.2.0",
    "sinon": "^14.0.0",
    "typescript": "^4.0.5",
    "webpack": "^5.94.0",
    "webpack-bundle-analyzer": "^4.3.0",
    "webpack-cli": "^4.10.0",
    "webpack-dev-middleware": "^7.4.2",
    "webpack-hot-middleware": "^2.25.0"
  }
}