{"_id":"@d3vision/ip-token-bucket","name":"@d3vision/ip-token-bucket","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.1":{"name":"@d3vision/ip-token-bucket","version":"1.0.1","description":"IP based token bucket rate limiter / throttler.","main":"index.js","directories":{"lib":"lib","test":"test"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/D3visionNL/ip-token-bucket.git"},"keywords":["algorithms","token bucket","ip"],"author":{"name":"D3vision","email":"info@d3vision.dev","url":"https://d3vision.dev/"},"license":"MIT","bugs":{"url":"https://github.com/D3visionNL/ip-token-bucket/issues"},"homepage":"https://github.com/D3visionNL/ip-token-bucket#readme","gitHead":"5381ba578e42afd5bd7be4fdf5df10597f9a09aa","_id":"@d3vision/ip-token-bucket@1.0.1","_nodeVersion":"18.14.2","_npmVersion":"9.5.0","dist":{"integrity":"sha512-biHaY95U5i4lAoJ7PpCAeh9t5iuBG1CcjQw7DW2hofVLNQhbzZduIM09N6LCmbAJ20yghIHVx4lMRzG4GRpyNQ==","shasum":"29617adc1bd781e7ba69d57d453673dea49b20b9","tarball":"https://registry.npmjs.org/@d3vision/ip-token-bucket/-/ip-token-bucket-1.0.1.tgz","fileCount":4,"unpackedSize":3215,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCID/Fr2dTzLu/LWYOnkCbrxZ0Mx+LVGF7SOPwo000GuXrAiB09EFmtDvKBraffCtZmwBewxzL3yuSm13Y+iDm0L0HXg=="}]},"_npmUser":{"name":"d3visionnl","email":"info@d3vision.dev"},"maintainers":[{"name":"d3visionnl","email":"info@d3vision.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/ip-token-bucket_1.0.1_1691507092482_0.9157600214705826"},"_hasShrinkwrap":false}},"time":{"created":"2023-08-08T15:04:52.366Z","1.0.1":"2023-08-08T15:04:52.659Z","modified":"2023-08-08T15:04:52.996Z"},"maintainers":[{"name":"d3visionnl","email":"info@d3vision.dev"}],"description":"IP based token bucket rate limiter / throttler.","homepage":"https://github.com/D3visionNL/ip-token-bucket#readme","keywords":["algorithms","token bucket","ip"],"repository":{"type":"git","url":"git+https://github.com/D3visionNL/ip-token-bucket.git"},"author":{"name":"D3vision","email":"info@d3vision.dev","url":"https://d3vision.dev/"},"bugs":{"url":"https://github.com/D3visionNL/ip-token-bucket/issues"},"license":"MIT","readme":"# ip-token-bucket\r\n\r\nIP based token bucket rate limiter / throttler. Read more about [Token Buckets](https://en.wikipedia.org/wiki/Token_bucket).\r\n\r\n## Usage\r\n\r\nInstall the package by typing `npm i @d3vision/ip-token-bucket` in your project folder.\r\n\r\n### Setup\r\n\r\n```javascript\r\nconst TokenBucket = require(\"ip-token-bucket\");\r\n\r\nconst bucket = new TokenBucket({\r\n  maxBurst: 5, // Maximum burst (bucket size) that is accepted\r\n  perSecond: 1, // How many tokens will be added every 1s\r\n});\r\n\r\n// Take one token out if 127.0.0.1 ip's bucket\r\nconst hasTokens = bucket.take(\"127.0.0.1\");\r\n\r\nif (hasTokens) {\r\n  console.log(\"User had atleast one token!\");\r\n} else {\r\n  console.log(\"User didn't have tokens left.\");\r\n}\r\n```\r\n","readmeFilename":"README.md"}