{"_id":"@beevk/express-common","_rev":"3-e26889316ff990ba2c4c2e2ea635e72b","name":"@beevk/express-common","dist-tags":{"latest":"1.0.0"},"versions":{"0.0.0":{"name":"@beevk/express-common","version":"0.0.0","description":"Library that contains common functionalities for my node projects","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/NodeMicroServices/common.git"},"keywords":[],"author":"","license":"ISC","bugs":{"url":"https://github.com/NodeMicroServices/common/issues"},"homepage":"https://github.com/NodeMicroServices/common#readme","gitHead":"071dc7ae5d89d9f0ef65293db0bcb3b6c843d4e4","_id":"@beevk/express-common@0.0.0","_nodeVersion":"16.3.0","_npmVersion":"7.15.1","dist":{"integrity":"sha512-0iZjM6kCRr4uRdNTz4EZn/6P5f1mtxtsm5XvKJ7dV0f7LTUB6p05Cm+H5eIYLWoJGNH1akuC54CDppIGrLgEKA==","shasum":"150cf8b140a84bf204a6f800b2be95ca869f0079","tarball":"https://registry.npmjs.org/@beevk/express-common/-/express-common-0.0.0.tgz","fileCount":2,"unpackedSize":778,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOdo6CRA9TVsSAnZWagAAlfUP/2VqiIWX+nH5c+zH70ir\n+BhnRU8J7AITML5qmx/J/x3LplA0l1/AicTOjAm0GU6ZUjNWvnUhPawlpdnW\nYh/X8zg6c2WjE0KvLn/56MmoV6/bUviquXgMlTXB6K6oVEFlpQt/EUL0LDB3\nBe/S2rdmd+BrybFoIZptMOw34R7d1o7X8GM4g5HrXb7ddz1DU7so5iqDB7gK\ndTdTtK7Mpy6yNtWVQtJh33merx8YzmDok9E9PBpZX5YbpSuCW3pRIGFLDgNb\nKwUKcVM1ALQyakpjjm/9JLi2YKfJMIlNaVgGOxkke5oaRP6AYZMdi5E+m6Tu\nIR3R9aUkpSKHV6sEyiQ6ntyMaSonsdgqeMuV64A7PAdec05Jq+HtXk5EZDVL\nyjwNHMfVom3J3a3RCXZEiHx+4qLejv5y5qrfPYyX6/4jsPmiFGJhKppTQXlK\nMfv75rPyJ9Ey0Cc+NgdkIlTd0Jl9jdyXSMKGMsSgV6wJMxE4zerb3jtdLvft\nu2Ux6UuAHGwyn7aK7UAc/TMOlTOhgYR6vPXSh1c48p9ZF5clb5KqDRrYmtmp\nzj9t99qxIewfm1VxQjCvM3dbeTvZ4OoFrJOfvg/6+gybcfT2mSh76RoQX9JG\nCZuegow4XFB21eB0Qn6y2Zj92W306o2w2MXu0TgAKsxhHouat+1TQHO9laPP\nJk38\r\n=lXQM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQClIXnMknHVnEhuzQHvZeeGQ2DMfNBjhF9NLzYBrRr9WgIgdIH/euzeRqWxw1FpBIybvQGG03Ba8NeW9ss/tU7+YDE="}]},"_npmUser":{"name":"beevk","email":"beevk.singh@gmail.com"},"directories":{},"maintainers":[{"name":"beevk","email":"beevk.singh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-common_0.0.0_1631181370533_0.673994428814473"},"_hasShrinkwrap":false},"0.0.1":{"name":"@beevk/express-common","version":"0.0.1","description":"Library that contains common functionalities for my node projects","main":"./build/index.js","types":"./build/index.d.ts","scripts":{"clean":"del ./build/*","build":"npm run clean && tsc","pub:patch":"npm version patch && npm run build && npm publish"},"repository":{"type":"git","url":"git+https://github.com/NodeMicroServices/common.git"},"keywords":[],"author":"","license":"ISC","bugs":{"url":"https://github.com/NodeMicroServices/common/issues"},"homepage":"https://github.com/NodeMicroServices/common#readme","devDependencies":{"del-cli":"^4.0.1","typescript":"^4.4.2"},"gitHead":"d4af6a430d63589eab6efead9628897cbb6d58b0","_id":"@beevk/express-common@0.0.1","_nodeVersion":"16.3.0","_npmVersion":"7.15.1","dist":{"integrity":"sha512-t0lfVlEDLQlc0DQY+xJIISYnwA0y8pDTFduenH5mPNnmICWoHkG7cWVNgutjzFlOP3ZSOlp+geuZfa9jpqkyoA==","shasum":"49c27affe16b2d9f6108c7804ee4a1559bd18c42","tarball":"https://registry.npmjs.org/@beevk/express-common/-/express-common-0.0.1.tgz","fileCount":4,"unpackedSize":1285,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOd+9CRA9TVsSAnZWagAA1a0P/3HksViDdirro63I6Ovo\no/EQnFkKUbME1VklHTWc8spW8uB/f45YrE+blKLr0niXifwBCpuis/9pLGyl\n5bn4hj6bQjzkZQvkwWrZf+TmsQRnoNviPjFYGZaJ6efOgn9lZ2YNS6XZoHKe\n07PEIFke0JFX1Ds2mvEIp31s71Zg5de6EEBEDr70Gr8G+UpTBb1BPgge0ByF\nALd8ckItChze5rSkFKuD5oAQfGXeXT8wbLAKSilZjzzdZFv75vodUY7W1p9D\nyhy4c2GK5MzHwpNBhURBW1+OC8HiiqxLqpHZ+iQdfSaqQhtvPeD+SRTHXz8W\nVyaxbGAR/uStb70ea14oNJHomD9+5NVOIPVIfog83/6KeUY78ySkAjPNG5i/\ndTEQVTF/VngGkPbVIcoxLzdiMMZD3acBdazLZIocdIzFTa4riWjZSLgj79yf\nd5OfKBJ4lzKTod/1M2OlB+Ehwigqe1jPKLTSBDhdYKka73o01wxt3uzTl9dn\nFTS5ccAKLQYPntIbvTgPHjmEixDf4C9dDHEtLjsmJKgQDAb5k1MIndv7FQJ+\nrP0tKUFMjAPKjpvIogXeQdYh77uossb4lvdGGrPEUhApARCLgFdz3XkQTdIq\n4qOhpHQMe5WzqsDMqLKLrA25MaTghI+TO6K9ycZvWuiu5IWXRvv5rp/swrjQ\nU/BP\r\n=zOWZ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpgk6e/RJqxh+CeRFu/1X2AeIXVZ7QWpxwcOyQEpEauwIhANGNHE5VDsPmbLfzRVmcD6IpaQPkBayo+cUGZ0T+RGNb"}]},"_npmUser":{"name":"beevk","email":"beevk.singh@gmail.com"},"directories":{},"maintainers":[{"name":"beevk","email":"beevk.singh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-common_0.0.1_1631182781033_0.6610894780092409"},"_hasShrinkwrap":false},"1.0.0":{"name":"@beevk/express-common","version":"1.0.0","description":"Library that contains common functionalities for my node projects","main":"./build/index.js","types":"./build/index.d.ts","scripts":{"clean":"del ./build/*","build":"npm run clean && tsc","pub:patch":"npm version patch && npm run build && npm publish"},"repository":{"type":"git","url":"git+https://github.com/NodeMicroServices/common.git"},"keywords":["Express","NodeJS","Middleware","CustomErrors","ErrorHandler"],"author":{"name":"Bivek Singh"},"license":"MIT","bugs":{"url":"https://github.com/NodeMicroServices/common/issues"},"homepage":"https://github.com/NodeMicroServices/common#readme","devDependencies":{"@types/cookie-session":"^2.0.43","@types/express":"^4.17.13","@types/express-validator":"^3.0.0","@types/jsonwebtoken":"^8.5.5","del-cli":"^4.0.1","typescript":"^4.4.2"},"dependencies":{"cookie-session":"^1.4.0","express":"^4.17.1","express-validator":"^6.12.1","jsonwebtoken":"^8.5.1"},"gitHead":"b13f7697a0dfdbf0973c1740b7102e8eafef2d3d","_id":"@beevk/express-common@1.0.0","_nodeVersion":"15.12.0","_npmVersion":"7.6.3","dist":{"integrity":"sha512-2gR75ILNl5RYuNvqT4jv95HZzNLdQpbJl47AU4pZJ9AJVA3RMlvgBrQghGl2OZCJczG2dhNDWikl4uODCiBGDQ==","shasum":"84c303c431bfbf22f0ec71cffb68aeae6553a88b","tarball":"https://registry.npmjs.org/@beevk/express-common/-/express-common-1.0.0.tgz","fileCount":28,"unpackedSize":17225,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhOi2eCRA9TVsSAnZWagAAYF4P+gOwv53HqKfboXck2SmF\naBWzMhM0DzeRhQaESCK2OYmzyPXLg7WLUGSvD1HUIhtT1aw/4LU2kNoWOumP\nrZhPHfek7zrbv8rStiFETBSA54dU+TGBkeb1i4pJYuxzq3cowvGYYydQF3Il\noicgcA9CPV3I1kj1y9DU8WLYjiH2CGHlzWGTcDcsKUa+HJ/2BTgmVmawVQiT\nyJN/2YVG0EmdDGdIvOAfir0evvvL+Boqu4Owh09U+ELo7MuBFOJAMdMVcEvV\n8Bwa0+xMKBmLkPmMFUc+zQkxog5xF3qIQ5P3mrCKMsJg8qdGZ+/oczMo+WnK\n5dixcnDW8i+aUhCpKSY3B2+OO7Fuqk2WdxqHIAfICdDwPknthh9RionfRqBo\ntlMX8DP1RzebcAI08tPsM8nekzbpP0M3pR3mY1ep+cDgAV20ByfXZAJT1Cad\n7K/q1WEHZbAxIhCcF1HjHuFjJA55b+nBoXV6ONhFN/t2IehwnNsSzVMrMR8N\n2dc6XqA46K5UDssL2t2WlN5y7ZtRVJgAsIdn6WxoWs/ahzorhoKrkdbl306e\njXRdUtWTYOCT6bVGZ9F8EytS4f6KKK+iwv8tuQqi/SCZAyPv+YuckR3iBC46\nSw4xrksxjsmCw+DCNCBmU7L+xEYmIiYvH0hNNPkd6g9HKPFc/Nk3WIOywjPK\nGOiV\r\n=KZkz\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG4WFV3W5ueKgTrVI1u+jv8Wj5AEXHpUVZ6P/OR9CUkYAiEA3LF145fDa9uSKdcOuKOXHJUgLvPRsbiouunOcwL4QCU="}]},"_npmUser":{"name":"beevk","email":"beevk.singh@gmail.com"},"directories":{},"maintainers":[{"name":"beevk","email":"beevk.singh@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/express-common_1.0.0_1631202718045_0.10689931216452786"},"_hasShrinkwrap":false}},"time":{"created":"2021-09-09T09:56:10.483Z","0.0.0":"2021-09-09T09:56:10.678Z","modified":"2022-04-04T18:10:58.501Z","0.0.1":"2021-09-09T10:19:41.168Z","1.0.0":"2021-09-09T15:51:58.180Z"},"maintainers":[{"name":"beevk","email":"beevk.singh@gmail.com"}],"description":"Library that contains common functionalities for my node projects","homepage":"https://github.com/NodeMicroServices/common#readme","keywords":["Express","NodeJS","Middleware","CustomErrors","ErrorHandler"],"repository":{"type":"git","url":"git+https://github.com/NodeMicroServices/common.git"},"bugs":{"url":"https://github.com/NodeMicroServices/common/issues"},"license":"MIT","readme":"# Node Micro-Services Common Code\nFor ease of code sharing between different projects\n\n**Warning: It is for private use and might be pretty useless to you. \nDon't use it in your project unless you know what you're doing.**\n\n---\n\n### Install\n```shell\n$ npm i @beevk/express-common\n```\n\n### Usage Example:\n\n```javascript\n// Other imports\nimport { notFoundError, currentUser } from '@beevk/express-common';\n\nconst app = express();\n\napp.get('/', currentUser, (req, res) => {\n    // if user is logged in, this would be defined\n    const userInfo = req.user;\n    // Rest of stuffs\n});\n\n// Other routes\n\n// route for 404\napp.all('*', async () => {\n    throw new NotFoundError();\n})\n```\n\n## Custom Errors available\n`authorizationError` **:** 401, Can use for unauthorized request.\n\n`badRequestError` **:** 400, expects a `string` as parameter.\n\n`databaseError` **:** 500, Failed to connect to DB.\n\n`notFoundError` **:** 404, Not Found.\n\n`requestValidationError` **:** 400, For failed validation (express-validator) requests.\n\n## Custom Middlewares\n`currentUser` **:**\n- Checks cookie in request to see if user JWT is sent along with request.\n- Attaches data in JWT to request as `req.user`.\n\n\n`authorize` **:** fn\n- Should only be used after `currentUser` middleware.\n- Takes an optional array of roles (string) as parameter.\n- Checks if that role is present in req.user.\n\n`errorHandler` **:** \n- Global catch block.\n- Use as last middleware for the App.\n\n`validateRequest` **:** fn\n- Accepts validation Schema (from express-validator) as parameter\n- Validates incoming data in request against schema & throws error if data is invalid\n\n---\n### The middlewares marked as `fn` should be used as a function.\n\nExample:\n```javascript\nconst validRolesToCreateArticle = ['author', 'admin'];\n\napp.post('/article', currentUser, authorize(validRolesToCreateArticle), (req, res) => {\n    // Implementation for this route    \n})\n```\n\n---\n## License\nThis package is created & published under [MIT License](https://opensource.org/licenses/MIT).\n","readmeFilename":"README.md","author":{"name":"Bivek Singh"}}