{"_id":"thunk-ratelimiter","_rev":"30-2e7403ed246153f24f7d81c6b2e88205","name":"thunk-ratelimiter","description":"The fastest abstract rate limiter.","dist-tags":{"latest":"3.1.0"},"versions":{"1.0.0":{"name":"thunk-ratelimiter","version":"1.0.0","description":"Abstract rate limiter backed by thunk-redis.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && gulp test"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^3.3.1"},"devDependencies":{"gulp":"^3.9.0","gulp-mocha":"^2.1.1","gulp-sequence":"^0.3.2","mocha":"^2.2.5","thunk-redis":"^0.10.2","standard":"^4.2.1"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","ignore":["**/.*","node_modules","test","gulpfile.js"],"gitHead":"a54b74b086db8220a436a5cc7ac3a72481ad4c24","_id":"thunk-ratelimiter@1.0.0","_shasum":"52471c2fbf09a1b726383ff6407d1310516b5da1","_from":".","_npmVersion":"2.11.1","_nodeVersion":"2.2.1","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"52471c2fbf09a1b726383ff6407d1310516b5da1","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-1.0.0.tgz","integrity":"sha512-BscwYt+nJNW9G2KwjTQ8kID8h0CYl1WA+R7CKouuTqwe7fdfx+3Ht0UejU90PQofCloRnllTHVoWZ+Z9/cpRSQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCExvTLod0d2YxB2VPyoKSe2XIUsHezxWmSqxCGQ8a9XgIhAPXOsPqXm4xj6KtOgalraFkSSL4wxEU4ltDuvVeNCVDM"}]},"directories":{}},"1.0.1":{"name":"thunk-ratelimiter","version":"1.0.1","description":"Abstract rate limiter backed by thunk-redis.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && gulp test"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^3.3.1"},"devDependencies":{"gulp":"^3.9.0","gulp-mocha":"^2.1.1","gulp-sequence":"^0.3.2","mocha":"^2.2.5","thunk-redis":"^0.10.2","standard":"^4.2.1"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","ignore":["**/.*","node_modules","test","gulpfile.js"],"gitHead":"e67963462425942b6dcac22a9ed9d831b06bfbca","_id":"thunk-ratelimiter@1.0.1","_shasum":"8b9335ec9c242b2c58d2d6a1d67f4a78083dd7ce","_from":".","_npmVersion":"2.11.1","_nodeVersion":"2.2.1","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"8b9335ec9c242b2c58d2d6a1d67f4a78083dd7ce","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-1.0.1.tgz","integrity":"sha512-Ji037/uojolsEncguTBAVbT3L9lgKRyNzUvhtvv24/ZFuyziIuoc+hby/3/s6W4sGGPYiIaxwR4QBj95SYMDjg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFWu7H4adpzd3n73xZ/Tc1fbGgTxYM0LO/tZzicG/YcOAiA3NpMNVpbn7IpmK0oQMcKxU1FH0xtD19usG6FjS34BBQ=="}]},"directories":{}},"1.1.0":{"name":"thunk-ratelimiter","version":"1.1.0","description":"Abstract rate limiter backed by thunk-redis.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && gulp test"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^3.3.1"},"devDependencies":{"gulp":"^3.9.0","gulp-mocha":"^2.1.1","gulp-sequence":"^0.3.2","mocha":"^2.2.5","thunk-redis":"^0.10.2","standard":"^4.2.1"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","ignore":["**/.*","node_modules","test","gulpfile.js"],"gitHead":"887c4f5ed232e70e256a8e3109d225b24e098098","_id":"thunk-ratelimiter@1.1.0","_shasum":"b632f2a77242cebd15877e109a924b7e1c950c99","_from":".","_npmVersion":"2.11.1","_nodeVersion":"2.2.1","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"b632f2a77242cebd15877e109a924b7e1c950c99","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-1.1.0.tgz","integrity":"sha512-sAuFOr9D8xXcuZccI4CMgo7/v5RYNss528Sf+PUUoVpLC9tk3qijCmqo7I7gl/pLQGmNNKzzt9gfIOPV0C9EXQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICkLcqMPy68fhEoP8WwO5cqOJVjAFT/R4usu4vyzC1mLAiB7i1Umy/M10+tOYY//yERrwHzQxJJoZXkM2s0ytT9P3A=="}]},"directories":{}},"1.1.1":{"name":"thunk-ratelimiter","version":"1.1.1","description":"Abstract rate limiter backed by thunk-redis.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && gulp test"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^3.5.0"},"devDependencies":{"gulp":"^3.9.0","gulp-mocha":"^2.1.3","gulp-sequence":"^0.4.1","mocha":"^2.2.5","thunk-redis":"^0.11.0","standard":"^5.1.0"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","ignore":["**/.*","node_modules","test","gulpfile.js"],"gitHead":"30a71238ed13d07325a0a4a3ef54e0be7afdd8e9","_id":"thunk-ratelimiter@1.1.1","_shasum":"ab7af8f37e3458e1c2c1b10591a22c02ce1c658c","_from":".","_npmVersion":"2.13.3","_nodeVersion":"3.2.0","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"ab7af8f37e3458e1c2c1b10591a22c02ce1c658c","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-1.1.1.tgz","integrity":"sha512-mtKGYmxugF+62x9ELxZSt0XD/vBOWU5A4DdWHc75RInqX/QGYFwzYmgQVeXwSFx5Uti7fECZlu5DlwTTEuIxLg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIB056OWkkZMSVJPnryGZs47qASjfg9zU5nk/2aVGjMFNAiEAsKGOvvjUdAZFEKSuLbsYf3Muz50hwQHPV2KjayMfvU8="}]},"directories":{}},"1.2.0":{"name":"thunk-ratelimiter","version":"1.2.0","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && mocha -t 10000 test/index.js"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^4.0.1","thunk-redis":"^1.2.2"},"devDependencies":{"mocha":"^2.3.4","standard":"^5.4.1"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"f4f945b6acb570010555a9e46a925badcf33e339","_id":"thunk-ratelimiter@1.2.0","_shasum":"ff6c64c7ae8a39d6ee7840efd9fbd6d29093c283","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"ff6c64c7ae8a39d6ee7840efd9fbd6d29093c283","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-1.2.0.tgz","integrity":"sha512-onGADo/DD1WLjPSbfxIBNu4OzZX8UrjCCUxFoNIjwajKbm9KMhtNIfin0TnVvsRuc6c24k/iX7HeQE1d9V9yiA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB8iyR+vd6b6KgL4Oh+oRQeZZ786XuEPgJOQ5K8ked1YAiBH0GCJGxA3eOTAPNXX3goUl1V5ZiMxSu3NF8bnHJDutQ=="}]},"directories":{}},"1.2.1":{"name":"thunk-ratelimiter","version":"1.2.1","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && mocha -t 10000 test/index.js"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^4.1.0","thunk-redis":"^1.2.4"},"devDependencies":{"mocha":"^2.3.4","standard":"^5.4.1"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"2eff2f9b87e03241ad74252147504fa06ff699e6","_id":"thunk-ratelimiter@1.2.1","_shasum":"544fbe2b9b0c4358e42d35dcd557b7ec7f9a9d3b","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"544fbe2b9b0c4358e42d35dcd557b7ec7f9a9d3b","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-1.2.1.tgz","integrity":"sha512-htq51H5OZKAqr3dgcgmHLhqYRAOO6VPOIUA1XeqjBTEEEAzzWTIi9iCM1mNL24pp760wzQrllGUrnftP1vr/5g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCpKQNt1yw/HJAwcFfyA0NLhmz6/18/ux5ZfMU7qijtjgIhAJYJWqtt82uJBcR8z9k6EMTPRhM2DcZx/XmdQOuZ/cFx"}]},"directories":{}},"2.0.0":{"name":"thunk-ratelimiter","version":"2.0.0","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && mocha -t 10000 -r thunk-mocha test/index.js","test-cluster":"standard && mocha -t 100000 -r thunk-mocha test/cluster.js"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^4.1.0","thunk-redis":"^1.2.4"},"devDependencies":{"mocha":"^2.3.4","standard":"^5.4.1","thunk-mocha":"^1.0.1"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"40447f92df2329641a35b7e10127828681a0dadd","_id":"thunk-ratelimiter@2.0.0","_shasum":"26424bdd60cf200a5febe0f2058b7edbadef1b9b","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"26424bdd60cf200a5febe0f2058b7edbadef1b9b","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.0.0.tgz","integrity":"sha512-Pgh66bWWzoHas5m8VOi38VApPNUNrpm7N2cBkUbsLZjEehIhAMvNY1naz1JqHZydyiZjXxUXvVmqE/4r4a6ADA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDZPasq2RCawWTp13ijDSAyeaHh6cylgRB/0PdlAel+RgIgNBm1vvxxn/wTaNmTkfk/hZ6DuCzcGUG8WpZ+7N8jsVU="}]},"directories":{}},"2.0.1":{"name":"thunk-ratelimiter","version":"2.0.1","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && mocha -t 10000 -r thunk-mocha test/index.js","test-cluster":"standard && mocha -t 100000 -r thunk-mocha test/cluster.js"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^4.1.0","thunk-redis":"^1.2.4"},"devDependencies":{"mocha":"^2.3.4","standard":"^5.4.1","thunk-mocha":"^1.0.1"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"28d558c97c1ec81dbe7e630d6631734d9d4a1a4d","_id":"thunk-ratelimiter@2.0.1","_shasum":"c830e353dba47f35ced0278ec445341b1b97e385","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.2","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"c830e353dba47f35ced0278ec445341b1b97e385","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.0.1.tgz","integrity":"sha512-PQHvUKs5aY5QJRNgrSzpxvhKYx6B/x43/umAgeKldCjufvyUnETC/4zLlebGtiM+ldv2As+zezNeeOAtOZjGEQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDScj61fP4bMzBM+jC3Cs9fqwFBh6G6AkPTg6JeeDcpQwIhAMNM5qUKceTyICpYGVCgeuPtg8mGUFm5C4CBHEEvZl/w"}]},"directories":{}},"2.0.2":{"name":"thunk-ratelimiter","version":"2.0.2","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && mocha -t 10000 -r thunk-mocha test/index.js","test-cluster":"standard && mocha -t 100000 -r thunk-mocha test/cluster.js"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^4.1.0","thunk-redis":"^1.3.0"},"devDependencies":{"mocha":"^2.3.4","standard":"^5.4.1","thunk-mocha":"^1.0.1"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"96636fefa90a2e667960599e5466201633cc4dae","_id":"thunk-ratelimiter@2.0.2","_shasum":"8e59e41afad39a9b9300b251786ac1b3e23baab0","_from":".","_npmVersion":"2.14.7","_nodeVersion":"4.2.3","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"8e59e41afad39a9b9300b251786ac1b3e23baab0","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.0.2.tgz","integrity":"sha512-C2/BsRgFlwrSwvb3XIqA23NH/WAnoTWFtHlWk8RUYZly8t2XzJFzCuTF6S+23waSHdbdJQa1SYR+IXVcsH3DYw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDhry3M82vcUq6RoFbl+UzN+e0mDhC4uNSHRnh4d57ZRwIgd7TGdeF+4n5IHrC7ljV7+U9ohpQ4gCGDLUVSYtCnXNw="}]},"directories":{}},"2.0.3":{"name":"thunk-ratelimiter","version":"2.0.3","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && mocha -t 10000 -r thunk-mocha test/index.js","test-cluster":"standard && mocha -t 100000 -r thunk-mocha test/cluster.js"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^4.1.2","thunk-redis":"^1.4.1"},"devDependencies":{"mocha":"^2.3.4","standard":"^5.4.1","thunk-mocha":"^1.0.2"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"b4e71361da793a778ae0a6af4344e026db226902","_id":"thunk-ratelimiter@2.0.3","_shasum":"2459f383b77a24cd9cc8cc9583b698be5f4732b3","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.2.6","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"2459f383b77a24cd9cc8cc9583b698be5f4732b3","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.0.3.tgz","integrity":"sha512-HQoIeSFEpZhSt7MEphkzwroTOuYbYL6peYGGWYHJBtPFb3IByteaoHJPFggNYvwZw0VJ+qj4lgiBQdCN+wuw+A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB2GD4zE+F38bUOjAqAqT5KqfKQbStO7h5yZ+8KCc6qKAiA4Lw6Bb4+v+uPMMafNG/qvurfaJ1Jq6Ct14X3s3B1cZg=="}]},"directories":{}},"2.1.0":{"name":"thunk-ratelimiter","version":"2.1.0","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && mocha -t 10000 -r thunk-mocha test/index.js","test-cluster":"standard && mocha -t 100000 -r thunk-mocha test/cluster.js"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^4.1.4","thunk-redis":"^1.5.3"},"devDependencies":{"mocha":"^2.4.5","standard":"^6.0.8","thunk-mocha":"^1.0.3"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"a013aa696058daade60ecd87c451e0da4fa95d73","_id":"thunk-ratelimiter@2.1.0","_shasum":"3c69bef899d2ee4126ccfbe0fe4b4a39e1907fbd","_from":".","_npmVersion":"2.14.12","_nodeVersion":"4.3.0","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"3c69bef899d2ee4126ccfbe0fe4b4a39e1907fbd","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.1.0.tgz","integrity":"sha512-AnhZGWd3YkkkLDkHWYa1Mq8PvsvZiKJPOs1lzwZNdtki0fSJ5G46lMandO6Fc4b046lRUnR5isRmghqsU9esnw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDMTShqcsZKsgR7EoKZ4sZL00bTiiPX9OrJrAfiyRBeXAiEAqWVS2hHKxjPcQyuNDkuyKfE9elPpkXwgo+lk1SlwtpA="}]},"_npmOperationalInternal":{"host":"packages-13-west.internal.npmjs.com","tmp":"tmp/thunk-ratelimiter-2.1.0.tgz_1457956086783_0.3194912397302687"},"directories":{}},"2.1.1":{"name":"thunk-ratelimiter","version":"2.1.1","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^4.1.5","thunk-redis":"^1.5.5"},"devDependencies":{"standard":"^6.0.8","tman":"^0.5.2"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"1d912accac103eaf6569ba0ccaf0e8abdb076bc3","_id":"thunk-ratelimiter@2.1.1","_shasum":"686c3cd2b813dcfc93824ddfdd0c9f87d53cca6c","_from":".","_npmVersion":"2.15.0","_nodeVersion":"4.4.2","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"686c3cd2b813dcfc93824ddfdd0c9f87d53cca6c","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.1.1.tgz","integrity":"sha512-BIORbdBayvI+2TMktnN6lZouR5AQ0hNHKm1ES0nOimUerdAS1sPcwWsdzIfDg9ecsxSHgAZuFOyjDkE+sJyiuA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDJfV3Y6Owqw/3dYDhkJhKWsYUH1AxKbWG0RNE4km9XEgIhANon8BZFOekJ16s2SIBNHlCkC//4e7VNr6lpYhSl3sXw"}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/thunk-ratelimiter-2.1.1.tgz_1459762185457_0.029322193237021565"},"directories":{}},"2.1.2":{"name":"thunk-ratelimiter","version":"2.1.2","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^4.2.0","thunk-redis":"^1.6.2"},"devDependencies":{"standard":"^7.1.1","tman":"^0.9.8"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"2334bd24d658baddb80ab3d2d5889adfee9db9a7","_id":"thunk-ratelimiter@2.1.2","_shasum":"52d2d0f5f243dd41f6122ba826430c3b44d972c9","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"52d2d0f5f243dd41f6122ba826430c3b44d972c9","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.1.2.tgz","integrity":"sha512-N2M3zI2zl0u8cPMyLBKgxmEW+Wi3KwvzUqNJLFDjeRJNm/aPJwBOGOfwb2thdVymX5kQt+dSd5h88LgJfUA8Aw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHEJ9jhTijhzF5NthhVt42ZOk0fKaMCZm3eqtm8Q1xn+AiBMGhoJooE9KoaXTIx2xFY3341ZIQD2qD1JBngAu/KrzQ=="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/thunk-ratelimiter-2.1.2.tgz_1464407342363_0.5037828555796295"},"directories":{}},"2.1.3":{"name":"thunk-ratelimiter","version":"2.1.3","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.10.x"},"dependencies":{"thunks":"^4.2.1","thunk-redis":"^1.6.5"},"devDependencies":{"standard":"^7.1.2","tman":"^0.9.9"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"b3f2e6193e2b0337f5d2b8df4d32b8b305e7b93c","_id":"thunk-ratelimiter@2.1.3","_shasum":"12b65580f0e8ba2a48f6301365da4b2656402a0f","_from":".","_npmVersion":"2.15.1","_nodeVersion":"4.4.4","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"12b65580f0e8ba2a48f6301365da4b2656402a0f","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.1.3.tgz","integrity":"sha512-dxwCjxvVsyfPq/yRaVRSfOJxo+Lh1r5mo2E1Xt+GaRIUCga9a8pCTZ3syJ3tOrTtumMH6yYQ/OdEOhP6ANHggg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDFW0wbJaa2+206Kg1r3f56piQNOyP+tRq5V/iLAKHkfwIhAOjsO3Jqk+XIHzNkJcaBg+RxHIPkLxbiuRzdnrUpdjQ4"}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/thunk-ratelimiter-2.1.3.tgz_1466089525940_0.8508347575552762"},"directories":{}},"2.1.4":{"name":"thunk-ratelimiter","version":"2.1.4","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 0.12"},"dependencies":{"thunks":"^4.3.0","thunk-redis":"^1.6.6"},"devDependencies":{"standard":"^7.1.2","tman":"^1.0.2"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"ae3d1d794745627ada8243d60f7d8512c0752e2c","_id":"thunk-ratelimiter@2.1.4","_shasum":"849ec1014a429b5b9bc906abf16ea62b64c59fd4","_from":".","_npmVersion":"2.15.8","_nodeVersion":"4.4.7","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"849ec1014a429b5b9bc906abf16ea62b64c59fd4","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.1.4.tgz","integrity":"sha512-DW3ohz3d3gOqjD0hIPEKnfxTN/j/bq+zlaqUy6LFqfmRpRtlNDwwbJDs0Gy08MpwNMRB0OeZ0W3n4lldGhrUeA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAmwnanDq69AJOYRtujR0i8bfxk6Dqt2t633VNp7hfA4AiEA+v0heUSxTa61qLIBT208wK290O0xtVhIP9UFekzGgjk="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/thunk-ratelimiter-2.1.4.tgz_1469330977210_0.7333186597097665"},"directories":{}},"2.1.5":{"name":"thunk-ratelimiter","version":"2.1.5","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">=0.12"},"dependencies":{"thunks":"^4.7.1","thunk-redis":"^1.7.1"},"devDependencies":{"standard":"^8.0.0","tman":"^1.4.5"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"493b5e60a6de41d3a3df23b981e699c8075115c4","_id":"thunk-ratelimiter@2.1.5","_shasum":"4be6f6ea78d432304b9e86ccbd324d6341b70394","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.5.0","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"4be6f6ea78d432304b9e86ccbd324d6341b70394","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.1.5.tgz","integrity":"sha512-KA16WtAOslwoZxcRwjTZJzcAKL6KtNiug16Athj7m6A5ANnzmRpA0DkUbqvoKAbfyzI8mUfNRfj3j8uMc5NilA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIA1/3LGWLHOdNBWhQhrmZDk30SYR+gBjMrdIxxFdBhYTAiEAxxxw6y2mX+E8h4l30Suw/CFpKP8wixi70k2SWQCIR9g="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/thunk-ratelimiter-2.1.5.tgz_1473845171909_0.6931739021092653"},"directories":{}},"2.1.6":{"name":"thunk-ratelimiter","version":"2.1.6","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">=0.12"},"dependencies":{"thunks":"^4.7.5","thunk-redis":"^1.7.2"},"devDependencies":{"standard":"^8.3.0","tman":"^1.6.0"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"a123b28dbe643656af7fac77fbd6facd99b8af1d","_id":"thunk-ratelimiter@2.1.6","_shasum":"d3e566146e6d2037b66548410f09074a29a6103e","_from":".","_npmVersion":"2.15.9","_nodeVersion":"4.5.0","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"d3e566146e6d2037b66548410f09074a29a6103e","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.1.6.tgz","integrity":"sha512-HJWDxzkYe9fuCKefh3yjfy9GtHd/9xP0LuGa4ej/u89wHFaXfYA0yEJHglKPkheX02bPvUSDotiD1Udp5324Dw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHgxdhNz4mizNWNUy7aFNWMCnGnyfOT/Te9QDVzPk4PqAiEA/drnQaTDI8vfWmHgEnRyGy77n1nI9YaooeEOwilUwF4="}]},"_npmOperationalInternal":{"host":"packages-16-east.internal.npmjs.com","tmp":"tmp/thunk-ratelimiter-2.1.6.tgz_1475630728759_0.40957392915152013"},"directories":{}},"2.2.0":{"name":"thunk-ratelimiter","version":"2.2.0","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">=0.12"},"dependencies":{"thunks":"^4.7.5","thunk-redis":"^1.7.3"},"devDependencies":{"standard":"^8.6.0","tman":"^1.6.4"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"52c89fe0b6446ea6bcea443c8f22cc6e4fccb85b","_id":"thunk-ratelimiter@2.2.0","_shasum":"0289f1a6781f91ebfd08d2daf751f8ba1f676d25","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.6.2","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"0289f1a6781f91ebfd08d2daf751f8ba1f676d25","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.2.0.tgz","integrity":"sha512-r+gYQkAOeSjEM4nV77ErQ5Z1cIgv7JdzLblWLghVniKZ2VW1NeuAvDuTEBeozZMxNdIK706BjXi7K9MLbbRuBg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHAyYQ0Nyxi2KBxQvoF5laiOmKHZWYrOTDGhekKdMOxaAiEA4X/iaDgTkqnoykMIRzQPqD/kLy9p26PEhTFkw8C5LlQ="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/thunk-ratelimiter-2.2.0.tgz_1481638073962_0.27459809673018754"},"directories":{}},"2.2.1":{"name":"thunk-ratelimiter","version":"2.2.1","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">=0.12"},"dependencies":{"thunks":"^4.7.5","thunk-redis":"^1.7.3"},"devDependencies":{"standard":"^9.0.1","tman":"^1.6.6"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"30b5f9b68cf79ebdf7fbb8ca1c4a30592bf309d8","_id":"thunk-ratelimiter@2.2.1","_shasum":"0864daa1772d9fd952983c3ad67583bbb5d9e025","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.7.3","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"0864daa1772d9fd952983c3ad67583bbb5d9e025","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.2.1.tgz","integrity":"sha512-CEjBN0HmhI9Y9SXDLkBGUSBO/8KrygOxs6o1wE3cmHLsolg2biZdnNDHyBKoCl3MEm9/+iiu9A2LYLIotYohvg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIEhKlTS7GJ9zZCvTbn5uM/CdEdC7MePfULJhffVjCnjFAiAKY4ApJsh4D7yDTrzwo1pb4PGwgWR7S9/nub2+mBk8AA=="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/thunk-ratelimiter-2.2.1.tgz_1489130136549_0.8928563478402793"},"directories":{}},"2.2.2":{"name":"thunk-ratelimiter","version":"2.2.2","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">=0.12"},"dependencies":{"thunks":"^4.7.5","thunk-redis":"^1.7.3"},"devDependencies":{"standard":"^9.0.1","tman":"^1.6.6"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"062bb500c7feb05634284ee009c89e3d5206bee4","_id":"thunk-ratelimiter@2.2.2","_shasum":"bea2599b29d84d385f46b5b965da5dc41326edbc","_from":".","_npmVersion":"2.15.11","_nodeVersion":"4.7.3","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"bea2599b29d84d385f46b5b965da5dc41326edbc","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.2.2.tgz","integrity":"sha512-Eb2d7jL7OqM4Ba8jl4YZ8dFitw3npQFEpI6Pask+4PhntAF18usbEg4kS0JEANvX76HIWz6hb+LUuQ8T3VM99A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCNish1nxbL6bSPa8XPnv3L0RMOCz3gxiq33jlTjXpFEAIgL2PGkB6KONFFRyNJVZOZ7Ti9q9S0luq8HoY+PUYNzYI="}]},"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/thunk-ratelimiter-2.2.2.tgz_1489131691625_0.4948311650659889"},"directories":{}},"2.3.0":{"name":"thunk-ratelimiter","version":"2.3.0","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 4.5.0"},"dependencies":{"thunks":"^4.7.6","thunk-redis":"^2.1.0"},"devDependencies":{"standard":"^10.0.2","tman":"^1.6.7"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"e10c53be43e5a71aa238c4157e4b3ebb98b4c9fc","_id":"thunk-ratelimiter@2.3.0","_shasum":"f7397b8d7ee569064582f43ed9536a2ce4429329","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.2","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"f7397b8d7ee569064582f43ed9536a2ce4429329","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.3.0.tgz","integrity":"sha512-OJfS3L6M6ygwz2LTgBxNavqv3S0pXfGycWq/6qU4kil3mPJ3r1dT1Ddc3yZb3JDz30f4wnKg7KyoNB9ZDEQHgw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDPYgjNBjeKc156EsE1YIFdpOjYFHQRme1MiP68GzW4kwIgS5Og1CgBs+Y2iMoFVlQ11qNwyJ0sNtHKVQ/FAhrRPxc="}]},"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/thunk-ratelimiter-2.3.0.tgz_1494250085668_0.6025858181528747"},"directories":{}},"2.3.1":{"name":"thunk-ratelimiter","version":"2.3.1","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 4.5.0"},"dependencies":{"thunks":"^4.8.0","thunk-redis":"^2.1.2"},"devDependencies":{"standard":"^10.0.2","tman":"^1.6.9"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"d6ca4027303aad78fdc0f47c844f2c981ac26580","_id":"thunk-ratelimiter@2.3.1","_shasum":"74050b3fea1a28d828674b9dfcdddaa748af086f","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.10.2","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"74050b3fea1a28d828674b9dfcdddaa748af086f","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.3.1.tgz","integrity":"sha512-lMHSLr9ge0l6HG7FIl4SRtb2rEOC9Hdkon9YM15boB1hlDDkk4d7lAqcHHUJA55i1PPh+EyDl+eeicle2K43Yg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWDvvTG2LNRbJiqENklNJtx1Fr0Y6gukhIoTs/eB/RyAIgHdn+xSuC3eRdlG7Jzy+njTyqWTBezVFOeQIH0Wy35Q8="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thunk-ratelimiter-2.3.1.tgz_1496670844284_0.025973584270104766"},"directories":{}},"2.3.2":{"name":"thunk-ratelimiter","version":"2.3.2","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 4.5.0"},"dependencies":{"thunks":"^4.9.0","thunk-redis":"^2.1.6"},"devDependencies":{"standard":"^10.0.3","tman":"^1.7.2"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"4d70d5f4af2f08f9cba4140b5f4431cfe583cd01","_id":"thunk-ratelimiter@2.3.2","_shasum":"2cb263303edc7d4a57ca290b4f6dd3b2d53ef20a","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.11.3","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"shasum":"2cb263303edc7d4a57ca290b4f6dd3b2d53ef20a","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.3.2.tgz","integrity":"sha512-7s351AbDLpTduobwsD55oU8zKiiBNoyO/+YFF4fDuRuV2otGhe2cwlxkIVUtNo+YSk9BjztUHUxRiNE+jamazA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDFGILrpbjKqaXum0oyOZckGX/d0WdOA0lN52m/N9o2/AiEA10Z7X6Xg8z39JUJKVzVVVbfxCqHD5oGoGm3/YU8RNVY="}]},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thunk-ratelimiter-2.3.2.tgz_1507815022149_0.9259915391448885"},"directories":{}},"2.3.3":{"name":"thunk-ratelimiter","version":"2.3.3","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 4.5.0"},"dependencies":{"thunks":"^4.9.0","thunk-redis":"^2.1.6"},"devDependencies":{"standard":"^10.0.3","tman":"^1.7.2"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"4538dd5b9c55593c1cee6ae719d284ddff1b6ba4","_id":"thunk-ratelimiter@2.3.3","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"integrity":"sha512-yTiXalrdthVgCmB8pwZn4pr6tbVpH3yYLUOmMILl+LGY+KGvyN6Nz9bGBVKP0ihNepJzMoWkvSmeBf8ZJslYaw==","shasum":"82898e2871bf2d13dd732a3f3773ab37c8ea3f1c","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-2.3.3.tgz","fileCount":5,"unpackedSize":9734,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC1lAQdooytDkqU9JxeC8PUcWi7s8RWCY9osa48iNmWFwIhAK2D7rwzCpnphtCFxILQLrg7SG7yynVafS/d3sB6N+j9"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thunk-ratelimiter_2.3.3_1522754057701_0.497156569570669"},"_hasShrinkwrap":false},"3.0.0":{"name":"thunk-ratelimiter","version":"3.0.0","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 4.5.0"},"dependencies":{"thunks":"^4.9.2","thunk-redis":"^2.1.6"},"devDependencies":{"standard":"^11.0.1","tman":"^1.7.4"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","files":["README.md","index.js","ratelimite.lua"],"gitHead":"911babdd59d6099c9a1717c36af152790460c1a0","_id":"thunk-ratelimiter@3.0.0","_npmVersion":"5.6.0","_nodeVersion":"8.10.0","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"integrity":"sha512-fEzwGl0XRzU8xyVch49RGHZu+N3ZMG7QmapG31TRegSUVkAQexYdQd1vRlsXJKRKPvwCe5PeN29qju3M0lp/9w==","shasum":"73c4cbc094f63aa5caf541332d535459f58e80e7","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-3.0.0.tgz","fileCount":5,"unpackedSize":9660,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDoXnhXBwhYhpBxPJtnw5IMcL05WDq/ahf4mvGYogDV9AIgfgCWMNFJAc4iCowifv1iS0GqlQLA21hekNOOOCkeoPI="}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thunk-ratelimiter_3.0.0_1522758623761_0.88055208762765"},"_hasShrinkwrap":false},"3.0.1":{"name":"thunk-ratelimiter","version":"3.0.1","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 4.5.0"},"dependencies":{"thunks":"^4.9.2","thunk-redis":"^2.1.6"},"devDependencies":{"standard":"^11.0.1","tman":"^1.8.0"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","gitHead":"172e2a5788d41fe480b75b999ad25db10a25b7e8","_id":"thunk-ratelimiter@3.0.1","_npmVersion":"6.2.0","_nodeVersion":"10.9.0","_npmUser":{"name":"zensh","email":"admin@zensh.com"},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"dist":{"integrity":"sha512-W5BGjTb+jlG8Qne/hvpPgu4qmAv1DXdG3MZCHQxbdVTokixWA5sAL7YbAFY3JgETO+GvDv/auTVorS0OiUO8RQ==","shasum":"8fbe1b12b63fe728aa1b4faf6c55ca4fdf04eb77","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-3.0.1.tgz","fileCount":5,"unpackedSize":9660,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbmKXECRA9TVsSAnZWagAA3PIP/2M+seAbSPolX7+B9b73\nHNca0ezQ5cei7JvGUFPY5fOzfQPA4Q7CHv/JjPm6wygni39wu4aHAFDZaPLG\nQ5FtbcIQMtNcGN50qii8EwCesOEew+r/hOsKwiDQ9eacbXKXesGRAJpAawSn\nH63V5FFfrAzJ50t5VzI9Pfi7i2KTBYpxqb/ynuGRyefYblicCPIZxI2kqVfn\nP3iq5Ltieytf75/A3i5kvcuXVTyVFlg4l0+qEKAyT6EaVjmzmKb/Xr/CNa2k\n8Ulfak8/R6Ipwux4OAoc5oWkNqmhFYo8m559JH2V96LcH6tN8iqq7M1QD/Bu\ntPnHHZhZxgPhjhGUB3XCea1/iT2jfYZthX9r790g3SJdLzDuoGEEsICztRzU\nozI6l+nXyfy8lj8ly4/6Ryglh5oNWuyuXbFnuxnbEhN5g9Jsiu/36V66h6xb\nG9bFMwx4bZpmv/OsC20dl5JLKRc+vWNEeJ/DyUC731f8LRAi1BWiE8KUGqLl\ne0l3RhDqJYjkozeGSmaN2gV3TznIH1cPIH3D2fHhVRPGyMGKEpzkkYhLukbu\nUyItNKu6wvgUt6OyQi+3pCznKVe2yOZ1MZFjuQYkhW3VGmfWcVKs8bA756XN\nfxwH462CRAvN74x/3yF9E1XedvU0DfDHFcscUCBiuafOEXXnfEOQzj2uKY4s\nyRsy\r\n=MTek\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTtnuBjY1MxaRInO4YzePS6Uv8mgXRP2HCJehzlgktzQIhAMyAu8F9shwFzDZiYD9sLvt1izG8BSCvrkme7i0BslJf"}]},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thunk-ratelimiter_3.0.1_1536730563585_0.43526297486338805"},"_hasShrinkwrap":false},"3.1.0":{"name":"thunk-ratelimiter","version":"3.1.0","description":"The fastest abstract rate limiter.","main":"index.js","authors":["Yan Qing <admin@zensh.com>"],"scripts":{"test":"standard && tman test/index","test-cluster":"tman test/cluster"},"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"keywords":["ratelimiter","redis","thunk"],"engines":{"node":">= 8.0.0"},"dependencies":{"thunks":"^4.9.6","thunk-redis":"^2.2.4"},"devDependencies":{"ioredis":"^4.17.3","standard":"^14.3.4","tman":"^1.10.0"},"license":"MIT","bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"homepage":"https://github.com/thunks/thunk-ratelimiter","gitHead":"17b762b81e9f50e1bf6c123783053676470d9c55","_id":"thunk-ratelimiter@3.1.0","_nodeVersion":"10.19.0","_npmVersion":"6.13.4","dist":{"integrity":"sha512-FRZ9P/PBJGItTPhwRtxWmZRpCbDzUJirvyXOTkxtLAdkrb5cMF5PJK2vIHbx5+KxrdHu/VE1V9WvlGFzSeonSg==","shasum":"8d66d15304422aac18faa3500656d3db3652a753","tarball":"https://registry.npmjs.org/thunk-ratelimiter/-/thunk-ratelimiter-3.1.0.tgz","fileCount":5,"unpackedSize":9980,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfiC4oCRA9TVsSAnZWagAAN6oP/iHtc6opuQtmedX/v0gt\nebADx4Ahd976DXqH82ZbCMRgvrSRtGAA9BJg2kcga/lv4Ypx9cn2nXBcqfGK\nUjF80Ic2QYcG00F/UM0N//dAaE6mIx1Sx3a10++6Ts+tlHbCKS+iyPOQE5+E\nlsVFXvhQM70DEwvkiUiSV1VuK1/KbKwFpL/P0NXXomgUc4Uc/djP1mUY6Err\nKlB0Y6zpcNWA6sDyKC+VD5bpYGGUUhqX9SwmXdWWq9UlSxN4fYH13a0vwdIJ\nhx9xzmtoKaa/wUjyVm8TV2auoH0MD7+4wRntlfhinJtFjm76P7att5VUEnob\n/AiE5C+oPTUESavMwiwWF6MM/Okq3S1mRTKhBKaz6cY/05hJh2bMn0pXxAl/\newBhxSun5U6jOkru78BmDSZFDIaB/A40XU3f7kVuExj+xIXQTvXU12Gz+c2e\nAVg3l5m/8bZuVl1Qk9hIzOul5xhYnroctMo6ViZP/y0FmGGKMsQ9NEcsiMNS\nbJwmBe6S3FM/a+vjzwyQwX2BEAI9Crx3U7naeSGVRrrBljd1zfWllu5eOJ/Y\nrxPyEMhelS/1ldSbXwplG320CpOnutFaO4/KaedJ4Wm3ufE3Sn377ldX+9nD\nqX/PcPOHhQS/em4+JtWuLoMDgCk/96TWVAUXME3cn3+BEGVf2DwTdb4BICF9\nkctl\r\n=hVTd\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDVbwqEYnlVHohsqxhhB1IbE3I4XcmVapwwZ3BOZvQAvwIhAJd8Fo9FC+90hjv5WwTInWS18LUdkNyCsqZh6WQKIpVm"}]},"maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"_npmUser":{"name":"zensh","email":"admin@zensh.com"},"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/thunk-ratelimiter_3.1.0_1602760232363_0.11857663174796018"},"_hasShrinkwrap":false}},"readme":"# thunk-ratelimiter\n\nThe fastest abstract rate limiter.\n\n[![NPM version][npm-image]][npm-url]\n[![Build Status][travis-image]][travis-url]\n[![Downloads][downloads-image]][downloads-url]\n\n## [thunks](https://github.com/thunks/thunks)\n\n## Implementations:\n\n- [smart-limiter](https://github.com/teambition/smart-limiter) Smart rate limiter middleware for express.\n- [toa-ratelimit](https://github.com/toajs/toa-ratelimit) Smart rate limiter module for toa.\n\n## Requirements\n\n- Redis 2.8+\n\n## Installation\n\n```sh\nnpm install thunk-ratelimiter\n```\n\n## Example\n\n Example Connect middleware implementation limiting against a `user._id`:\n\n```js\nconst limiter = new Limiter()\n\nlimiter.connect(redisClient) // connect to a thunk-redis instance\nlimiter.get(req.user._id).then(function (limit) {\n  response.set('X-RateLimit-Limit', limit.total)\n  response.set('X-RateLimit-Remaining', limit.remaining)\n  response.set('X-RateLimit-Reset', Math.ceil(limit.reset / 1000))\n\n  // all good\n  debug('remaining %s/%s %s', limit.remaining, limit.total, id)\n  if (limit.remaining >= 0) return\n\n  // not good\n  let after = Math.ceil((limit.reset - Date.now()) / 1000)\n  response.set('Retry-After', after)\n  response.end(429, 'Rate limit exceeded, retry in ' + after + ' seconds')\n})\n```\n\n## API\n\n### new Limiter(options)\n\nReturn a limiter instance.\n\n```js\nconst limiter = new Limiter()\n```\n\n- `options.max`: *Optional*, Type: `Number`, max requests within `duration`, default to `2500`.\n- `options.duration`: *Optional*, Type: `Number`, of limit in milliseconds, **should greater than `100` ms**, default to `3600000`.\n- `options.prefix`: *Optional*, Type: `String`, redis key namespace, default to `LIMIT`.\n\n### Limiter.prototype.connect([host, options]) => `this`\n### Limiter.prototype.connect(redisClient) => `this`\n\nConnect to redis. Arguments are the same as [thunk-redis](https://github.com/thunks/thunk-redis)'s `createClient`, or give a thunk-redis instance.\n\n```js\nlimiter.connect(6379)\n```\n\n### Limiter.prototype.get(id, max, duration, max, duration, ...)\n### Limiter.prototype.get([id, max, duration, max, duration, ...])\n\nReturn a promise that guarantee a limiter result. it support more `max` and `duration` pairs ad limit policy. The first pairs will be used as default. If some trigger limit, then the limiter will apply the next pair policy.\n\n```js\nlimiter.get('_userIdxxx').then(function (limit) {\n  console.log(limit)\n})\n```\n\n```js\nlimiter.get('_userIdxxx:POST /files', 100, 60000, 50, 60000).then(function (limit) {\n  console.log(limit)\n})\n```\n\n- `id`: *required*, Type: `String`, the identifier to limit against (typically a user id)\n- `max`: *Optional*, Type: `Number`, max requests within `duration`, default to `options.max`.\n- `duration`: *Optional*, Type: `Number`, of limit in milliseconds, default to `options.duration`.\n\n**Result Object:**\n\n- `limit.remaining` - number of calls left in current `duration` without decreasing current `get`\n- `limit.total` - `max` value\n- `limit.duration` - current `duration` in milliseconds\n- `limit.reset` - timestamp in milliseconds\n\n### Limiter.prototype.remove(id)\n\n```js\nlimiter.remove('_userIdxxx').then(function (res) {\n  console.log(err, res)\n})\n```\n\n[npm-url]: https://npmjs.org/package/thunk-ratelimiter\n[npm-image]: http://img.shields.io/npm/v/thunk-ratelimiter.svg\n\n[travis-url]: https://travis-ci.org/thunks/thunk-ratelimiter\n[travis-image]: http://img.shields.io/travis/thunks/thunk-ratelimiter.svg\n\n[downloads-url]: https://npmjs.org/package/thunk-ratelimiter\n[downloads-image]: http://img.shields.io/npm/dm/thunk-ratelimiter.svg?style=flat-square\n","maintainers":[{"name":"zensh","email":"admin@zensh.com"}],"time":{"modified":"2022-06-27T06:27:59.016Z","created":"2015-06-13T11:15:37.632Z","1.0.0":"2015-06-13T11:15:37.632Z","1.0.1":"2015-06-13T11:48:07.996Z","1.1.0":"2015-06-15T01:55:55.522Z","1.1.1":"2015-08-26T15:16:01.074Z","1.2.0":"2015-11-19T13:22:04.802Z","1.2.1":"2015-11-29T10:24:16.461Z","2.0.0":"2015-12-03T10:58:08.554Z","2.0.1":"2015-12-04T02:04:21.305Z","2.0.2":"2015-12-17T13:41:32.382Z","2.0.3":"2016-01-25T12:11:19.646Z","2.1.0":"2016-03-14T11:48:07.267Z","2.1.1":"2016-04-04T09:29:45.967Z","2.1.2":"2016-05-28T03:49:02.866Z","2.1.3":"2016-06-16T15:05:28.239Z","2.1.4":"2016-07-24T03:29:40.270Z","2.1.5":"2016-09-14T09:26:13.585Z","2.1.6":"2016-10-05T01:25:31.787Z","2.2.0":"2016-12-13T14:07:54.198Z","2.2.1":"2017-03-10T07:15:38.447Z","2.2.2":"2017-03-10T07:41:33.499Z","2.3.0":"2017-05-08T13:28:05.916Z","2.3.1":"2017-06-05T13:54:04.370Z","2.3.2":"2017-10-12T13:30:22.275Z","2.3.3":"2018-04-03T11:14:17.754Z","3.0.0":"2018-04-03T12:30:23.843Z","3.0.1":"2018-09-12T05:36:03.675Z","3.1.0":"2020-10-15T11:10:32.461Z"},"homepage":"https://github.com/thunks/thunk-ratelimiter","keywords":["ratelimiter","redis","thunk"],"repository":{"type":"git","url":"git://github.com/thunks/thunk-ratelimiter.git"},"bugs":{"url":"https://github.com/thunks/thunk-ratelimiter/issues"},"license":"MIT","readmeFilename":"README.md"}