Files
modstagram-back/package.json
payacom e1abb40cc6 Reduce media bandwidth: compress uploads, add long-lived cache headers, gzip API
- Resize/re-encode every uploaded image server-side (posts, avatars, stories,
  shop products/logo, chat messages) via a shared sharp-based optimizer —
  caps dimensions to what's actually displayed and re-compresses in place,
  cutting a typical raw camera photo by ~90% with no visible quality loss
- Cap uploaded video resolution/bitrate (re-encode only when above 1280px/
  ~2.5Mbps) alongside the existing faststart step; apply faststart+cap to
  story and chat videos too (previously stored completely raw)
- Add long-lived Cache-Control to all /storage static routes so clients stop
  re-downloading unchanged media on every request
- Add gzip/brotli compression for JSON API responses (feed/explore/chat)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-15 17:55:09 +03:30

58 lines
1.7 KiB
JSON

{
"name": "modstagram-back",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node server.js",
"dev": "cross-env NODE_ENV=development nodemon index.js",
"build": "webpack",
"prod": "node dist/final.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"axios": "^1.6.7",
"bcryptjs": "^2.4.3",
"body-parser": "^1.20.2",
"compression": "^1.8.2",
"connect-redis": "^10.0.0",
"cors": "^2.8.5",
"dotenv": "^16.4.5",
"express": "^4.18.3",
"express-form-data": "^2.0.23",
"express-rate-limit": "^7.2.0",
"express-session": "^1.18.0",
"express-validator": "^7.0.1",
"firebase-admin": "^14.2.0",
"google-auth-library": "^10.9.0",
"helmet": "^7.1.0",
"jsonwebtoken": "^9.0.2",
"lodash": "^4.17.21",
"moment-jalaali": "^0.10.0",
"mongoose": "^8.2.1",
"mongoose-paginate-v2": "^1.8.0",
"mongoose-timestamp": "^0.6.0",
"multer": "^2.0.2",
"node-cron": "^3.0.3",
"nodemailer": "^9.0.3",
"nodemon": "^3.1.0",
"rate-limit-redis": "^4.3.1",
"redis": "^6.2.1",
"sharp": "^0.35.4",
"socket.io": "^4.7.5",
"socket.io-client": "^4.7.5"
},
"devDependencies": {
"cross-env": "^7.0.3",
"eslint": "^8.57.0",
"eslint-config-standard": "^17.1.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-n": "^16.6.2",
"eslint-plugin-promise": "^6.1.1",
"webpack": "^5.90.3",
"webpack-cli": "^5.1.4"
}
}