package.json
{
"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"
}
}