{"_id":"@adarshguptadev/exbackend-kit","_rev":"2-591333a1ce6683537c7885f0180af619","name":"@adarshguptadev/exbackend-kit","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@adarshguptadev/exbackend-kit","version":"1.0.0","keywords":["express","backend","logger","winston","morgan","security","helmet","rate-limit","jwt","bcrypt","nodejs","expressjs"],"author":{"name":"Adarsh Gupta"},"license":"MIT","_id":"@adarshguptadev/exbackend-kit@1.0.0","maintainers":[{"name":"adarshguptadev","email":"adarshgupta6925@gmail.com"}],"dist":{"shasum":"eeb3fc2661308d0b95ffa5ab88ced17465b38ed3","tarball":"https://registry.npmjs.org/@adarshguptadev/exbackend-kit/-/exbackend-kit-1.0.0.tgz","fileCount":12,"integrity":"sha512-n5fxK5/vq10422EsSK5klV2GHqDblhhOfHd60TAtr5N14DMLpK0P7dcGm4obgxZ4YPszXgWEB5niir47aZxBKQ==","signatures":[{"sig":"MEUCIQC7W2My9E97uHcpu/yqfXBKyZlLOemLgZLc8sYNGRvZDAIgZKm/Lh84tSvwg76ZlYCY93O+Mb32/w2TIULZltCO/gg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11911},"main":"index.js","type":"commonjs","engines":{"node":">=18"},"_npmUser":{"name":"adarshguptadev","email":"adarshgupta6925@gmail.com"},"_npmVersion":"10.9.0","description":"Production-ready Express.js toolkit with logger, security, password hashing, and JWT utilities.","directories":{},"_nodeVersion":"22.12.0","dependencies":{"bcrypt":"^6.0.0","helmet":"^8.1.0","morgan":"^1.10.1","winston":"^3.19.0","jsonwebtoken":"^9.0.3","express-rate-limit":"^8.5.2","winston-daily-rotate-file":"^5.0.0"},"_hasShrinkwrap":false,"peerDependencies":{"express":">=4"},"_npmOperationalInternal":{"tmp":"tmp/exbackend-kit_1.0.0_1779268120135_0.5623308325081922","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@adarshguptadev/exbackend-kit","version":"1.0.1","description":"Production-ready Express.js toolkit with logger, security, password hashing, and JWT utilities.","main":"index.js","type":"commonjs","keywords":["express","backend","logger","winston","morgan","security","helmet","rate-limit","jwt","bcrypt","nodejs","expressjs"],"author":{"name":"Adarsh Gupta"},"license":"MIT","engines":{"node":">=18"},"peerDependencies":{"express":">=4"},"dependencies":{"bcrypt":"^6.0.0","express-rate-limit":"^8.5.2","helmet":"^8.1.0","jsonwebtoken":"^9.0.3","lodash.merge":"^4.6.2","morgan":"^1.10.1","winston":"^3.19.0","winston-daily-rotate-file":"^5.0.0"},"_id":"@adarshguptadev/exbackend-kit@1.0.1","gitHead":"12548a11e23dad63bf11c83e24f580dc80bb226a","_nodeVersion":"22.12.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-7Kkgbb2OuvynQFrVERQElmeqQ467hEqfYYzCYUn0wH07hyGdqBos580Rd/OpTbBXsKeon5c0PvQ4nvGxmnSvuQ==","shasum":"3fb9fc869bff7046a281f0bb76c59e20c087a2b5","tarball":"https://registry.npmjs.org/@adarshguptadev/exbackend-kit/-/exbackend-kit-1.0.1.tgz","fileCount":12,"unpackedSize":12366,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCmt4lkEoaVu9LVhWmwJEZ2Esd3+qtBRYy4SW/Bn5DSegIhAKMA24kxPTtnNFQ0fb3YeYExe10RBjDW+/oIferiJDpS"}]},"_npmUser":{"name":"adarshguptadev","email":"adarshgupta6925@gmail.com"},"directories":{},"maintainers":[{"name":"adarshguptadev","email":"adarshgupta6925@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/exbackend-kit_1.0.1_1780742355030_0.9135496835194574"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-20T09:08:39.950Z","modified":"2026-06-06T10:39:15.281Z","1.0.0":"2026-05-20T09:08:40.309Z","1.0.1":"2026-06-06T10:39:15.186Z"},"author":{"name":"Adarsh Gupta"},"license":"MIT","keywords":["express","backend","logger","winston","morgan","security","helmet","rate-limit","jwt","bcrypt","nodejs","expressjs"],"description":"Production-ready Express.js toolkit with logger, security, password hashing, and JWT utilities.","maintainers":[{"name":"adarshguptadev","email":"adarshgupta6925@gmail.com"}],"readme":"#  exbackend-kit\r\n\r\n![npm](https://img.shields.io/npm/v/@adarshguptadev/exbackend-kit)\r\n![license](https://img.shields.io/npm/l/@adarshguptadev/exbackend-kit)\r\n\r\nProduction-ready Express.js toolkit with Logger, Security and Authentication utilities.\r\n\r\n---\r\n\r\n# Installation\r\n\r\n```bash\r\nnpm install @adarshguptadev/exbackend-kit\r\n```\r\n\r\n---\r\n\r\n#  Basic Usage\r\n\r\n```js\r\nconst express = require(\"express\");\r\n\r\nconst {\r\n  setupLogger,\r\n  setupHelmet,\r\n  setupRateLimit\r\n} = require(\"@adarshguptadev/exbackend-kit\");\r\n\r\nconst app = express();\r\n\r\n// Logger\r\nsetupLogger(app);\r\n\r\n// Security\r\nsetupHelmet(app);\r\nsetupRateLimit(app);\r\n\r\napp.listen(3000, () => {\r\n  console.log(\"Server running on port 3000\");\r\n});\r\n```\r\n\r\n---\r\n\r\n#  Features\r\n\r\n##  Logger\r\n- Winston logging\r\n- Morgan request logger\r\n- Daily log rotation\r\n- Error logs\r\n- Auto log cleanup\r\n- Production-ready defaults\r\n- Fully customizable\r\n\r\n---\r\n\r\n##  Security\r\n- Helmet middleware\r\n- Express rate limit\r\n- Secure production defaults\r\n- Fully customizable\r\n\r\n---\r\n\r\n##  Authentication\r\n- Password hashing\r\n- Password compare\r\n- JWT generate\r\n- JWT verify\r\n\r\n---\r\n\r\n\r\n#  Logger Setup\r\n\r\n### Default Behavior\r\n- logs folder auto create\r\n- daily rotate logs\r\n- auto delete old logs\r\n- request logging\r\n- error logging\r\n- console logs disabled by default\r\n\r\n---\r\n\r\n##  Advanced Usage\r\n\r\n```js\r\n// import\r\nconst { setupLogger } = require(\"@adarshguptadev/exbackend-kit\");\r\n\r\n// use\r\nsetupLogger(app, {\r\n  logDir: \"logs\",\r\n  retainDays: 7,\r\n\r\n  // Enable console logs in development\r\n  consoleLog: process.env.NODE_ENV !== \"production\",\r\n\r\n  // Add more custom options here\r\n});\r\n```\r\n\r\n---\r\n\r\n#  Helmet Setup\r\n\r\n##  Advanced Usage\r\n\r\n```js\r\n// import\r\nconst { setupHelmet } = require(\"@adarshguptadev/exbackend-kit\");\r\n\r\n// use\r\nsetupHelmet(app, {\r\n  contentSecurityPolicy: true,\r\n  crossOriginEmbedderPolicy: false,\r\n\r\n  // Add more custom options here\r\n});\r\n```\r\n\r\n---\r\n\r\n#  Rate Limit Setup\r\n\r\n### Default Behavior\r\n- 100 requests per 5 minutes\r\n- standard headers enabled\r\n- legacy headers disabled\r\n\r\n---\r\n\r\n##  Advanced Usage\r\n\r\n```js\r\n// import\r\nconst { setupRateLimit } = require(\"@adarshguptadev/exbackend-kit\");\r\n\r\n// use\r\nsetupRateLimit(app, {\r\n  windowMs: 10 * 60 * 1000,\r\n  max: 50,\r\n\r\n  // Add more custom options here\r\n});\r\n```\r\n\r\n---\r\n\r\n#  Authentication\r\n\r\n##  Hash Password\r\n\r\n```js\r\n// import\r\nconst { hashPassword } = require(\"@adarshguptadev/exbackend-kit\");\r\n\r\n// use\r\nconst hashed = await hashPassword(password);\r\n```\r\n\r\n---\r\n\r\n##  Compare Password\r\n\r\n```js\r\n// import\r\nconst { comparePassword } = require(\"@adarshguptadev/exbackend-kit\");\r\n\r\n// use\r\nconst isMatch = await comparePassword(\r\n  password,\r\n  hashedPassword\r\n);\r\n```\r\n\r\n---\r\n\r\n##  Generate JWT\r\n\r\n```js\r\n// import\r\nconst { generateToken } = require(\"@adarshguptadev/exbackend-kit\");\r\n\r\n// use\r\nconst token = generateToken(\r\n  { id: user._id },\r\n  process.env.JWT_SECRET\r\n);\r\n```\r\n\r\n---\r\n\r\n##  Advanced Usage\r\n\r\n```js\r\n// import\r\nconst { generateToken } = require(\"@adarshguptadev/exbackend-kit\");\r\n\r\n// use\r\nconst token = generateToken(\r\n  { id: user._id },\r\n  process.env.JWT_SECRET,\r\n  {\r\n    expiresIn: \"30d\",\r\n\r\n    // Add more custom options here\r\n  }\r\n);\r\n```\r\n\r\n---\r\n\r\n##  Verify JWT\r\n\r\n```js\r\n// import\r\nconst { verifyToken } = require(\"@adarshguptadev/exbackend-kit\");\r\n\r\n// use\r\nconst decoded = verifyToken(\r\n  token,\r\n  process.env.JWT_SECRET\r\n);\r\n```\r\n\r\n---\r\n\r\n#  Default Logger Files\r\n\r\n```txt\r\nlogs/\r\n├── app-2026-05-19.log\r\n└── error-2026-05-19.log\r\n```\r\n\r\n---\r\n\r\n##  Author\r\n\r\n**Adarsh Gupta**\r\n\r\n- [GitHub Repository](https://github.com/adarshguptadev/exbackend-kit)\r\n\r\n- [Official Website](https://exbackend-kit.adarshguptadev.in)\r\n\r\n- [npm Package](https://www.npmjs.com/package/@adarshguptadev/exbackend-kit)\r\n\r\n---\r\n\r\n#  License\r\n\r\nMIT","readmeFilename":"readme.md"}