{"_id":"@codice-progressio/express-brute-mongoose","_rev":"2-065ac3a7f9515827ec150822d9908227","name":"@codice-progressio/express-brute-mongoose","dist-tags":{"latest":"3.0.0"},"versions":{"2.0.0":{"name":"@codice-progressio/express-brute-mongoose","version":"2.0.0","author":{"name":"Chris Bargren","email":"cbargren@gmail.com"},"license":"MIT","_id":"@codice-progressio/express-brute-mongoose@2.0.0","maintainers":[{"name":"angelr","email":"rafa.yael@gmail.com"}],"homepage":"https://github.com/RafaelAngelRamirez/express-brute-mongoose.git","dist":{"shasum":"a6e9e84b2fc98e1318f8a4157667e4751275b10b","tarball":"https://registry.npmjs.org/@codice-progressio/express-brute-mongoose/-/express-brute-mongoose-2.0.0.tgz","fileCount":6,"integrity":"sha512-VX1q/5wbafBje0Gvpc+SOhUIlz/Onka2DT6bzo1hlfH/C3P05v6IjkoP/JiMpTLUvnocQ1sAOwm7q+AWspTHTw==","signatures":[{"sig":"MEYCIQD+EwPA8kwpGpHh/vi9RbTWcl9IjJlase5iXVerRKjlhQIhAKry/wX3fxc13BLm0WmHjedMB9oBapTbid1suDUKDXFW","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":8327,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgnbacCRA9TVsSAnZWagAAG6YP/2Gs8h2Mn7eHpPSqex2w\nkDM9X9UMCmmKuijRDkNXGPYFqnUUDUZ5LAhXjTa9/EM2gcmkSqnycfExe3jY\nMw1pANKr1eXb4iPaIK2M9n4R604K99qOcGeWsLXE/nGZ3r7BNOwVzG5cqK1H\nsN02WbJZ3WbsKNdZgtbkgsMTwuPDVnzmWT478TJEcJXVNFZpYEusxr/h/aQx\nWOLTKmvQz0vUSjQcIuuDc8ZlLBlbQiBT5aaf59CEmQsqWWYzvec+YKW9Laq5\nZv4wulbl+Y4xzapXvee3Nnw7txfXowCB3lzHA3S9EZlZsiaNPlIFtiaBge4c\nG2rVqVH5uruUihhoeisdPusMEWBfpRWutdeoFITyFubGmg9qbM8egFgTMiWq\nOKY08DdlohyYqZ1JB9EjIhrKNA0gPfSdWqyUElL8LxudGhWVghy5xbeGQt3f\nLUIZf4So41oFFSDIwtQX67dZ+gS5pSbmAe7xO9/fzV1Ukhf+Yy6MVMePfQR6\n9cBYDg1Xdp07mCl/u6TOvI2VvsAHZxH6XHtSUJIvD2em+sc+AyaQQ6pklaiw\n3OinNKWYQ0k52jWCWQ0EVeDjqq9gQXON1VKFFygCDl+j8SWHgnfMbmgWaJN2\nR2/EPsphxahD28ZZC14SGR/jCgs0+quJdHgbrv8sIApLKqu5isBi8dOQpLpL\ndY6w\r\n=gXd3\r\n-----END PGP SIGNATURE-----\r\n"},"main":"dist/index.js","engine":{"node":">=0.4.0"},"scripts":{"lint":"eslint ./lib ./test --quiet","test":"yarn compile && mocha ./test --recursive --require babel-register --reporter spec","compile":"babel --presets es2015 -d ./dist ./lib","prepare":"rm -rf ./dist; yarn compile"},"_npmUser":{"name":"angelr","email":"rafa.yael@gmail.com"},"repository":{"url":"http://github.com/RafaelAngelRamirez/express-brute-mongoose.git","type":"git"},"description":"Mongoose store for express-brute.","directories":{},"dependencies":{"moment":"^2.18.1","@codice-progressio/express-brute":"^2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"mocha":"^8.4.0","eslint":"^4.6.0","expect":"^26.6.2","mongoose":"^5.4.8","prettier":"^1.16.3","babel-cli":"^6.6.5","babel-eslint":"^8.0.0","@babel/register":"^7.13.16","babel-preset-es2015":"^6.6.0","eslint-config-prettier":"^4.0.0","eslint-plugin-prettier":"^3.0.1","babel-plugin-transform-regenerator":"^6.9.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-plugin-transform-es2015-destructuring":"^6.9.0"},"_npmOperationalInternal":{"tmp":"tmp/express-brute-mongoose_2.0.0_1620948635733_0.05538805189596818","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"@codice-progressio/express-brute-mongoose","version":"3.0.0","description":"Mongoose store for express-brute.","author":{"name":"Chris Bargren","email":"cbargren@gmail.com"},"homepage":"https://github.com/RafaelAngelRamirez/express-brute-mongoose.git","main":"dist/index.js","scripts":{"compile":"babel --presets es2015 -d ./dist ./lib","lint":"eslint ./lib ./test --quiet","prepare":"rm -rf ./dist; yarn compile","test":"yarn compile && mocha ./test --recursive --require babel-register --reporter spec"},"repository":{"type":"git","url":"git+ssh://git@github.com/RafaelAngelRamirez/express-brute-mongoose.git"},"engine":{"node":"x"},"license":"MIT","devDependencies":{"@babel/register":"^7.13.16","babel-cli":"^6.6.5","babel-eslint":"^8.0.0","babel-plugin-transform-es2015-destructuring":"^6.9.0","babel-plugin-transform-object-rest-spread":"^6.8.0","babel-plugin-transform-regenerator":"^6.9.0","babel-preset-es2015":"^6.6.0","eslint":"^4.6.0","eslint-config-prettier":"^4.0.0","eslint-plugin-prettier":"^3.0.1","expect":"^26.6.2","mocha":"^8.4.0","mongoose":"^5.4.8","prettier":"^1.16.3"},"dependencies":{"@codice-progressio/express-brute":"latest","moment":"^2.18.1"},"publishConfig":{"access":"public"},"_id":"@codice-progressio/express-brute-mongoose@3.0.0","gitHead":"f50ca4ac22921d44c918c1129a61b9b534d40bec","bugs":{"url":"https://github.com/RafaelAngelRamirez/express-brute-mongoose/issues"},"_nodeVersion":"22.11.0","_npmVersion":"10.9.0","dist":{"integrity":"sha512-/3F4kDnzOaGQf67KVn5HHiPPDMWxwfN7sNz3j7J6M5cSJN1zZ5Rl9OaPSlqSzGD67E/k5IdDHlkqLtedCgIpdQ==","shasum":"e0db1bf6f1c84a18dc41c2ae9359365a13e7b98d","tarball":"https://registry.npmjs.org/@codice-progressio/express-brute-mongoose/-/express-brute-mongoose-3.0.0.tgz","fileCount":4,"unpackedSize":8199,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGBiH3wpXx5lZLPzJ6FJg8tiM999jWTKIi4PFDUtiSZFAiA9iBCVlkkMpiQ897zvY2wS9ZvMTzy2quQLFSYF5HtaRA=="}]},"_npmUser":{"name":"angelr","email":"rafa.yael@gmail.com"},"directories":{},"maintainers":[{"name":"angelr","email":"rafa.yael@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/express-brute-mongoose_3.0.0_1738445897813_0.507463734884783"},"_hasShrinkwrap":false}},"time":{"created":"2021-05-13T23:30:35.423Z","modified":"2025-02-01T21:38:18.207Z","2.0.0":"2021-05-13T23:30:35.867Z","3.0.0":"2025-02-01T21:38:17.995Z"},"author":{"name":"Chris Bargren","email":"cbargren@gmail.com"},"license":"MIT","homepage":"https://github.com/RafaelAngelRamirez/express-brute-mongoose.git","repository":{"type":"git","url":"git+ssh://git@github.com/RafaelAngelRamirez/express-brute-mongoose.git"},"description":"Mongoose store for express-brute.","maintainers":[{"name":"angelr","email":"rafa.yael@gmail.com"}],"readme":"Mongoose store adapter for [express-brute](https://github.com/AdamPflug/express-brute).\n\n>Version parcheada\n\n\n[![NPM](https://nodei.co/npm/express-brute-mongoose.png?compact=true)](https://npmjs.org/package/express-brute-mongoose)\n\n## Installation\n\n```\nyarn add express-brute-mongoose\n```\n\n## Usage\n\n```javascript\nconst ExpressBrute = require(\"@codice-progressio/express-brute\");\nconst MongooseStore = require(\"@codice-progressio/express-brute-mongoose\");\nconst BruteForceSchema = require(\"@codice-progressio/express-brute-mongoose/dist/schema\");\nconst mongoose = require(\"mongoose\");\n\nconst model = mongoose.model(\n  \"bruteforce\",\n  new mongoose.Schema(BruteForceSchema)\n);\nconst store = new MongooseStore(model);\n\nconst bruteforce = new ExpressBrute(store);\n\napp.post(\n  \"/auth\",\n  bruteforce.prevent, // error 403 if we hit this route too often\n  function(req, res, next) {\n    res.send(\"Success!\");\n  }\n);\n```\n\n## Defining your Mongoose Schema\n\nYou can either use the default schema provided at `express-brute-mongoose/dist/schema` or roll your own, as long as it matches the basic structural requirements of the schema as follows:\n\n```javascript\n{\n  \"_id\": String,\n  \"data\": {\n    \"count\": Number,\n    \"lastRequest\": Date,\n    \"firstRequest\": Date\n  },\n  \"expires\": Date\n}\n```\n\nThe **default schema** included in the package includes a Mongo index on the `_id` field and another index that will automatically delete each entry 1 day after it has passed its `expires` time, in an effort to keep the collection clean.\n\n## Development\n\nBuild the package with\n`yarn compile`\n\nRun tests with\n`yarn test`\n\nRun the linter with\n`yarn lint`\n\n## Running Tests\n\nYou should have mongo running on port `27017` before running tests. If you have docker-compose and docker installed, you can get mongo up and running by using the following command:\n\n```bash\ndocker-compose up\n```\n","readmeFilename":"README.md","bugs":{"url":"https://github.com/RafaelAngelRamirez/express-brute-mongoose/issues"}}