{ "name": "PixelPlanet", "version": "1.0.0", "private": true, "engines": { "node": ">=16" }, "description": "Unlimited planet canvas for placing pixels", "main": "server.js", "scripts": { "build": "node scripts/build.js", "build:server": "webpack --config ./webpack.config.server.js", "build:client": "node scripts/build.js --client", "build:dev": "webpack --config ./webpack.config.server.js && webpack --env development --config ./webpack.config.client.js && npm run minify-css", "update-browserlist": "browserslist --update-db", "deploy": "ssh pixelplanet /home/pixelpla/rebuild.sh", "minify-css": "node scripts/minifyCss.js", "babel-node": "babel-node", "lint": "cd $INIT_CWD && eslint --ext .jsx --ext .js", "lint:src": "eslint --ext .jsx --ext .js src" }, "author": "HF ", "browserslist": [ "defaults", "not IE 11", "not IE_Mob 11" ], "dependencies": { "bcrypt": "^5.1.1", "chart.js": "^3.9.1", "compression": "^1.7.3", "cookie": "^0.5.0", "core-js": "^3.34.0", "etag": "^1.8.1", "express": "^4.17.2", "express-session": "^1.17.2", "image-q": "^4.0.0", "js-file-download": "^0.4.12", "morgan": "^1.10.0", "multer": "^1.4.5-lts.1", "mysql2": "^2.3.3", "nodemailer": "^6.9.7", "passport": "^0.6.0", "passport-discord": "^0.1.4", "passport-facebook": "^3.0.0", "passport-google-oauth2": "^0.2.0", "passport-json": "^1.2.0", "passport-reddit": "^1.1.0", "passport-vkontakte": "^0.5.0", "ppfun-captcha": "^1.6.6", "react": "^18.2.0", "react-chartjs-2": "^4.3.1", "react-dom": "^18.2.0", "react-icons": "^4.12.0", "react-redux": "^8.0.2", "react-stay-scrolled": "^8.0.0", "react-toggle": "^4.1.3", "redis": "^4.6.11", "redux": "^4.1.2", "redux-persist": "^6.0.0", "redux-thunk": "^2.4.1", "reselect": "^4.1.6", "sequelize": "^6.35.2", "sharp": "^0.31.0", "startaudiocontext": "^1.2.1", "three": "^0.143.0", "three-trackballcontrols": "^0.9.0", "ttag": "^1.8.3", "url-search-params-polyfill": "^8.2.5", "winston": "^3.11.0", "winston-daily-rotate-file": "^4.5.5", "ws": "^8.15.1" }, "devDependencies": { "@babel/cli": "^7.23.4", "@babel/core": "^7.23.6", "@babel/eslint-parser": "^7.23.3", "@babel/node": "^7.22.19", "@babel/plugin-transform-react-constant-elements": "^7.23.3", "@babel/plugin-transform-react-inline-elements": "^7.23.3", "@babel/preset-env": "^7.23.6", "@babel/preset-react": "^7.23.3", "babel-loader": "^9.1.3", "babel-plugin-transform-react-pure-class-to-function": "^1.0.1", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", "babel-plugin-ttag": "^1.8.5", "clean-css": "^5.2.2", "clean-css-loader": "^4.2.1", "copy-webpack-plugin": "^11.0.0", "css-loader": "^6.8.1", "eslint": "^8.55.0", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-base": "^15.0.0", "eslint-plugin-import": "^2.29.0", "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-react": "^7.33.2", "eslint-plugin-react-hooks": "^4.6.0", "generate-package-json-webpack-plugin": "^2.6.0", "ttag-cli": "^1.10.9", "ttag-po-loader": "0.0.2", "webpack": "^5.89.0", "webpack-bundle-analyzer": "^4.10.1", "webpack-cli": "^5.1.4", "webpack-node-externals": "^3.0.0" }, "optionalDependencies": { "bufferutil": "^4.0.6", "utf-8-validate": "^5.0.8" } }