Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

request-rate-clock

Package Overview
Dependencies
Maintainers
0
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

request-rate-clock - npm Package Compare versions

Comparing version 0.1.4 to 0.1.5

8

CHANGELOG.md
# request-rate-clock
## 0.1.5
### Patch Changes
- b42ab97: Update dependencies
- Updated dependencies [b42ab97]
- timeout-promise-wrapper@0.1.9
## 0.1.4

@@ -4,0 +12,0 @@

4

lib/rateclock.js

@@ -8,3 +8,3 @@ "use strict";

var _timeoutPromiseWrapper = _interopRequireDefault(require("timeout-promise-wrapper"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/**

@@ -140,2 +140,2 @@ * A RateClock is a class that allows you to limit the rate of a certain operation.

var _default = exports.default = RateClock;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGltZW91dFByb21pc2VXcmFwcGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlJhdGVDbG9jayIsImNyZWF0ZSIsImFtb3VudCIsInRpbWVvdXQiLCJFbnRpdHlSYXRlQ2xvY2siLCJleHBvcnRzIiwiRW50aXR5UmF0ZUNsb2NrRW50aXR5IiwicHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiY29uc3RydWN0b3IiLCJ1c2UiLCJ0aGVuIiwiZW50aXRpZXMiLCJ1bnVzZWQiLCJ3YWl0aW5nIiwidWlkIiwiQXJyYXkiLCJmcm9tIiwibGVuZ3RoIiwiTWF0aCIsInJhbmRvbSIsInRvU3RyaW5nIiwiam9pbiIsImkiLCJwdXNoIiwiZW50aXR5UmVhZHkiLCJlbnRpdHkiLCJzcGxpY2UiLCJlIiwiY29uc29sZSIsImxvZyIsImFjcXVpcmUiLCJjbG9jayIsInBvcCIsInJzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvcmF0ZWNsb2NrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0aW1lb3V0IGZyb20gXCJ0aW1lb3V0LXByb21pc2Utd3JhcHBlclwiO1xuXG4vKipcbiAqIEEgUmF0ZUNsb2NrIGlzIGEgY2xhc3MgdGhhdCBhbGxvd3MgeW91IHRvIGxpbWl0IHRoZSByYXRlIG9mIGEgY2VydGFpbiBvcGVyYXRpb24uXG4gKiBGb3IgZXhhbXBsZSB5b3UgY2FuIGxpbWl0IHRoZSByYXRlIG9mIEFQSSBjYWxscyB0byAxMCBwZXIgc2Vjb25kLlxuICogQGF1dGhvciBOaWNvbGFzIFNjaG1pZHRcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJhdGVDbG9jayB7XG4gIC8qKlxuICAgKiBBY3F1aXJlIGEgc2xvdCBpbiB0aGUgcmF0ZSBjbG9jay4gVGhpcyBtZXRob2Qgd2lsbCBibG9jayB1bnRpbCBhIHNsb3QgaXMgYXZhaWxhYmxlLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGEgc2xvdCBpcyBhdmFpbGFibGUuXG4gICAqL1xuICBhYnN0cmFjdCBhY3F1aXJlKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBSYXRlQ2xvY2sgd2l0aCB0aGUgZ2l2ZW4gYW1vdW50IG9mIG9wZXJhdGlvbnMgcGVyIHRpbWVvdXQuXG4gICAqIEBwYXJhbSBhbW91bnQgVGhlIGFtb3VudCBvZiBvcGVyYXRpb25zIHRoYXQgYXJlIGFsbG93ZWQgcGVyIHRpbWVvdXQuXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy4gVGhpcyBpcyB0aGUgdGltZSB0aGF0IGhhcyB0byBwYXNzIGJlZm9yZSBvbmUgb3BlcmF0aW9uIHNsb3QgaXMgZnJlZSBhZ2Fpbi5cbiAgICogQHJldHVybnMgQSBuZXcgUmF0ZUNsb2NrIGluc3RhbmNlLlxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZShhbW91bnQ6IG51bWJlciwgdGltZW91dDogbnVtYmVyKTogUmF0ZUNsb2NrIHtcbiAgICByZXR1cm4gbmV3IEVudGl0eVJhdGVDbG9jayhhbW91bnQsIHRpbWVvdXQpO1xuICB9XG59XG5cbi8qKlxuICogQW4gZW50aXR5IGZvciB0aGUgRW50aXR5UmF0ZUNsb2NrLiBUaGlzIGVudGl0eSBmaXJlcyBhIHByb21pc2Ugd2hlbiBpdCBpcyByZWFkeS5cbiAqIEBhdXRob3IgTmljb2xhcyBTY2htaWR0XG4gKi9cbmNsYXNzIEVudGl0eVJhdGVDbG9ja0VudGl0eSB7XG4gIC8qKlxuICAgKiBUaGUgcHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIHdoZW4gdGhlIGVudGl0eSBpcyByZWFkeS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHByb21pc2U6IFByb21pc2U8RW50aXR5UmF0ZUNsb2NrRW50aXR5PiA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgdGltZW91dDogbnVtYmVyKSB7fVxuXG4gIC8qKlxuICAgKiBVc2UgdGhlIGVudGl0eS4gVGhpcyBtZXRob2QgcmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBlbnRpdHkgaXMgcmVhZHkuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGVudGl0eSBpcyByZWFkeS5cbiAgICovXG4gIHVzZSgpIHtcbiAgICB0aGlzLnByb21pc2UgPSB0aW1lb3V0KHRoaXMudGltZW91dCkudGhlbigoKSA9PiB0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5wcm9taXNlO1xuICB9XG59XG5cbi8qKlxuICogQW4gRW50aXR5UmF0ZUNsb2NrIGlzIGEgUmF0ZUNsb2NrIGltcGxlbWVudGF0aW9uIHRoYXQgYWxsb3dzIHlvdSB0byBsaW1pdCB0byB7QGxpbmsgYW1vdW50fSBvcGVyYXRpb25zIHBlciB7QGxpbmsgdGltZW91dH0uXG4gKiBAYXV0aG9yIE5pY29sYXMgU2NobWlkdFxuICovXG5leHBvcnQgY2xhc3MgRW50aXR5UmF0ZUNsb2NrIGV4dGVuZHMgUmF0ZUNsb2NrIHtcbiAgLyoqXG4gICAqIFRoZSBlbnRpdGllcyB0aGF0IGFyZSB1c2VkIGJ5IHRoZSBjbG9jay5cbiAgICogQWxsd2F5cyBjb250YWlucyB7QGxpbmsgYW1vdW50fSBlbnRpdGllcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGVudGl0aWVzOiBFbnRpdHlSYXRlQ2xvY2tFbnRpdHlbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgZW50aXRpZXMgdGhhdCBhcmUgbm90IHVzZWQgLyBmcmVlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdW51c2VkOiBFbnRpdHlSYXRlQ2xvY2tFbnRpdHlbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgd2FpdGluZyBxdWV1ZSBmb3IgYWNxdWlyZSBjYWxscyAoY29udGFpbnMgdGhlIHJlc29sdmVycyBvZiB0aGUgcHJvbWlzZXMgdGhhdCBhcmUgcmV0dXJuZWQgYnkgYWNxdWlyZSlcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHdhaXRpbmc6ICgoKSA9PiB2b2lkKVtdID0gW107XG5cbiAgcHVibGljIHJlYWRvbmx5IHVpZCA9IEFycmF5LmZyb20oXG4gICAgeyBsZW5ndGg6IDE2IH0sXG4gICAgKCkgPT4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNilbMl0sXG4gICkuam9pbihcIlwiKTtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIG5ldyB7QGxpbmsgRW50aXR5UmF0ZUNsb2NrfSB3aXRoIHRoZSBnaXZlbiBhbW91bnQgb2YgZW50aXRpZXMgYW5kIHRoZSBnaXZlbiB0aW1lb3V0LlxuICAgKiBAcGFyYW0gYW1vdW50IFRoZSBhbW91bnQgb2YgZW50aXRpZXMgdGhhdCBhcmUgdXNlZCBieSB0aGUgY2xvY2sgKGZvciBleGFtcGxlIDEwIGZvciAxMCBvcGVyYXRpb25zIHBlciB7QGxpbmsgdGltZW91dH0pXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBiZWZvcmUgb25lIG9wZXJhdGlvbiBzbG90IGlzIGZyZWUgYWdhaW4gKGZvciBleGFtcGxlIDEwMDAgZm9yIDEgb3BlcmF0aW9uIHBlciBzZWNvbmQpXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBUaGUgYW1vdW50IG9mIGVudGl0aWVzIHRoYXQgYXJlIHVzZWQgYnkgdGhlIGNsb2NrIChmb3IgZXhhbXBsZSAxMCBmb3IgMTAgb3BlcmF0aW9ucyBwZXIge0BsaW5rIHRpbWVvdXR9KVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFtb3VudDogbnVtYmVyLFxuXG4gICAgLyoqXG4gICAgICogVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSBvbmUgb3BlcmF0aW9uIHNsb3QgaXMgZnJlZSBhZ2FpblxuICAgICAqIChmb3IgZXhhbXBsZSAxMDAwIGZvciAxIG9wZXJhdGlvbiBwZXIgc2Vjb25kKVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHRpbWVvdXQ6IG51bWJlcixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBDcmVhdGUgc2luZ3VsYXIgY2xvY2tzXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbW91bnQ7IGkrKylcbiAgICAgIHRoaXMuZW50aXRpZXMucHVzaChuZXcgRW50aXR5UmF0ZUNsb2NrRW50aXR5KHRpbWVvdXQpKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbnRpdGllcy5sZW5ndGg7IGkrKylcbiAgICAgIHRoaXMudW51c2VkLnB1c2godGhpcy5lbnRpdGllc1tpXSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYW4gZW50aXR5IGlzIHJlYWR5IHRvIGJlIHVzZWQgYWdhaW4uXG4gICAqIEBwYXJhbSBlbnRpdHkgVGhlIGVudGl0eSB0aGF0IGlzIHJlYWR5IHRvIGJlIHVzZWQgYWdhaW4uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSBlbnRpdHlSZWFkeShlbnRpdHk6IEVudGl0eVJhdGVDbG9ja0VudGl0eSkge1xuICAgIGlmICh0aGlzLndhaXRpbmcubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy53YWl0aW5nLnNwbGljZSgwLCAxKVswXSgpO1xuICAgICAgZW50aXR5LnVzZSgpLnRoZW4oKGUpID0+IHRoaXMuZW50aXR5UmVhZHkoZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudW51c2VkLnB1c2goZW50aXR5KTtcbiAgICBjb25zb2xlLmxvZyhcInVudXNlZFwiLCB0aGlzLnVudXNlZC5sZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjcXVpcmUgYSBzbG90IGluIHRoZSByYXRlIGNsb2NrLiBUaGlzIG1ldGhvZCB3aWxsIGJsb2NrIHVudGlsIGEgc2xvdCBpcyBhdmFpbGFibGUuXG4gICAqIEltcGxlbWVudHMge0BsaW5rIFJhdGVDbG9jay5hY3F1aXJlfVxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGEgc2xvdCBpcyBhdmFpbGFibGUuXG4gICAqL1xuICBhY3F1aXJlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnVudXNlZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBjbG9jayA9IHRoaXMudW51c2VkLnBvcCgpITtcbiAgICAgIGNsb2NrLnVzZSgpLnRoZW4oKGUpID0+IHRoaXMuZW50aXR5UmVhZHkoZSkpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocnMpID0+IHtcbiAgICAgIHRoaXMud2FpdGluZy5wdXNoKHJzKTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSYXRlQ2xvY2s7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLHNCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBOEMsU0FBQUQsdUJBQUFFLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRSxPQUFBLEVBQUFGLEdBQUE7QUFFOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQWVHLFNBQVMsQ0FBQztFQUM5QjtBQUNGO0FBQ0E7QUFDQTs7RUFHRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRSxPQUFPQyxNQUFNQSxDQUFDQyxNQUFjLEVBQUVDLE9BQWUsRUFBYTtJQUN4RCxPQUFPLElBQUlDLGVBQWUsQ0FBQ0YsTUFBTSxFQUFFQyxPQUFPLENBQUM7RUFDN0M7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUhBRSxPQUFBLENBQUFMLFNBQUEsR0FBQUEsU0FBQTtBQUlBLE1BQU1NLHFCQUFxQixDQUFDO0VBQzFCO0FBQ0Y7QUFDQTtBQUNBO0VBQ1VDLE9BQU8sR0FBbUNDLE9BQU8sQ0FBQ0MsT0FBTyxD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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfdGltZW91dFByb21pc2VXcmFwcGVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJSYXRlQ2xvY2siLCJjcmVhdGUiLCJhbW91bnQiLCJ0aW1lb3V0IiwiRW50aXR5UmF0ZUNsb2NrIiwiZXhwb3J0cyIsIkVudGl0eVJhdGVDbG9ja0VudGl0eSIsInByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsImNvbnN0cnVjdG9yIiwidXNlIiwidGhlbiIsImVudGl0aWVzIiwidW51c2VkIiwid2FpdGluZyIsInVpZCIsIkFycmF5IiwiZnJvbSIsImxlbmd0aCIsIk1hdGgiLCJyYW5kb20iLCJ0b1N0cmluZyIsImpvaW4iLCJpIiwicHVzaCIsImVudGl0eVJlYWR5IiwiZW50aXR5Iiwic3BsaWNlIiwiY29uc29sZSIsImxvZyIsImFjcXVpcmUiLCJjbG9jayIsInBvcCIsInJzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi9zcmMvcmF0ZWNsb2NrLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0aW1lb3V0IGZyb20gXCJ0aW1lb3V0LXByb21pc2Utd3JhcHBlclwiO1xuXG4vKipcbiAqIEEgUmF0ZUNsb2NrIGlzIGEgY2xhc3MgdGhhdCBhbGxvd3MgeW91IHRvIGxpbWl0IHRoZSByYXRlIG9mIGEgY2VydGFpbiBvcGVyYXRpb24uXG4gKiBGb3IgZXhhbXBsZSB5b3UgY2FuIGxpbWl0IHRoZSByYXRlIG9mIEFQSSBjYWxscyB0byAxMCBwZXIgc2Vjb25kLlxuICogQGF1dGhvciBOaWNvbGFzIFNjaG1pZHRcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFJhdGVDbG9jayB7XG4gIC8qKlxuICAgKiBBY3F1aXJlIGEgc2xvdCBpbiB0aGUgcmF0ZSBjbG9jay4gVGhpcyBtZXRob2Qgd2lsbCBibG9jayB1bnRpbCBhIHNsb3QgaXMgYXZhaWxhYmxlLlxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGEgc2xvdCBpcyBhdmFpbGFibGUuXG4gICAqL1xuICBhYnN0cmFjdCBhY3F1aXJlKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBSYXRlQ2xvY2sgd2l0aCB0aGUgZ2l2ZW4gYW1vdW50IG9mIG9wZXJhdGlvbnMgcGVyIHRpbWVvdXQuXG4gICAqIEBwYXJhbSBhbW91bnQgVGhlIGFtb3VudCBvZiBvcGVyYXRpb25zIHRoYXQgYXJlIGFsbG93ZWQgcGVyIHRpbWVvdXQuXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcy4gVGhpcyBpcyB0aGUgdGltZSB0aGF0IGhhcyB0byBwYXNzIGJlZm9yZSBvbmUgb3BlcmF0aW9uIHNsb3QgaXMgZnJlZSBhZ2Fpbi5cbiAgICogQHJldHVybnMgQSBuZXcgUmF0ZUNsb2NrIGluc3RhbmNlLlxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZShhbW91bnQ6IG51bWJlciwgdGltZW91dDogbnVtYmVyKTogUmF0ZUNsb2NrIHtcbiAgICByZXR1cm4gbmV3IEVudGl0eVJhdGVDbG9jayhhbW91bnQsIHRpbWVvdXQpO1xuICB9XG59XG5cbi8qKlxuICogQW4gZW50aXR5IGZvciB0aGUgRW50aXR5UmF0ZUNsb2NrLiBUaGlzIGVudGl0eSBmaXJlcyBhIHByb21pc2Ugd2hlbiBpdCBpcyByZWFkeS5cbiAqIEBhdXRob3IgTmljb2xhcyBTY2htaWR0XG4gKi9cbmNsYXNzIEVudGl0eVJhdGVDbG9ja0VudGl0eSB7XG4gIC8qKlxuICAgKiBUaGUgcHJvbWlzZSB0aGF0IGlzIHJlc29sdmVkIHdoZW4gdGhlIGVudGl0eSBpcyByZWFkeS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHByb21pc2U6IFByb21pc2U8RW50aXR5UmF0ZUNsb2NrRW50aXR5PiA9IFByb21pc2UucmVzb2x2ZSh0aGlzKTtcbiAgY29uc3RydWN0b3IocmVhZG9ubHkgdGltZW91dDogbnVtYmVyKSB7fVxuXG4gIC8qKlxuICAgKiBVc2UgdGhlIGVudGl0eS4gVGhpcyBtZXRob2QgcmV0dXJucyBhIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIHRoZSBlbnRpdHkgaXMgcmVhZHkuXG4gICAqIEByZXR1cm5zIEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzIHdoZW4gdGhlIGVudGl0eSBpcyByZWFkeS5cbiAgICovXG4gIHVzZSgpIHtcbiAgICB0aGlzLnByb21pc2UgPSB0aW1lb3V0KHRoaXMudGltZW91dCkudGhlbigoKSA9PiB0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5wcm9taXNlO1xuICB9XG59XG5cbi8qKlxuICogQW4gRW50aXR5UmF0ZUNsb2NrIGlzIGEgUmF0ZUNsb2NrIGltcGxlbWVudGF0aW9uIHRoYXQgYWxsb3dzIHlvdSB0byBsaW1pdCB0byB7QGxpbmsgYW1vdW50fSBvcGVyYXRpb25zIHBlciB7QGxpbmsgdGltZW91dH0uXG4gKiBAYXV0aG9yIE5pY29sYXMgU2NobWlkdFxuICovXG5leHBvcnQgY2xhc3MgRW50aXR5UmF0ZUNsb2NrIGV4dGVuZHMgUmF0ZUNsb2NrIHtcbiAgLyoqXG4gICAqIFRoZSBlbnRpdGllcyB0aGF0IGFyZSB1c2VkIGJ5IHRoZSBjbG9jay5cbiAgICogQWxsd2F5cyBjb250YWlucyB7QGxpbmsgYW1vdW50fSBlbnRpdGllcy5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGVudGl0aWVzOiBFbnRpdHlSYXRlQ2xvY2tFbnRpdHlbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgZW50aXRpZXMgdGhhdCBhcmUgbm90IHVzZWQgLyBmcmVlLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdW51c2VkOiBFbnRpdHlSYXRlQ2xvY2tFbnRpdHlbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBUaGUgd2FpdGluZyBxdWV1ZSBmb3IgYWNxdWlyZSBjYWxscyAoY29udGFpbnMgdGhlIHJlc29sdmVycyBvZiB0aGUgcHJvbWlzZXMgdGhhdCBhcmUgcmV0dXJuZWQgYnkgYWNxdWlyZSlcbiAgICogQGludGVybmFsXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHdhaXRpbmc6ICgoKSA9PiB2b2lkKVtdID0gW107XG5cbiAgcHVibGljIHJlYWRvbmx5IHVpZCA9IEFycmF5LmZyb20oXG4gICAgeyBsZW5ndGg6IDE2IH0sXG4gICAgKCkgPT4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNilbMl0sXG4gICkuam9pbihcIlwiKTtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIG5ldyB7QGxpbmsgRW50aXR5UmF0ZUNsb2NrfSB3aXRoIHRoZSBnaXZlbiBhbW91bnQgb2YgZW50aXRpZXMgYW5kIHRoZSBnaXZlbiB0aW1lb3V0LlxuICAgKiBAcGFyYW0gYW1vdW50IFRoZSBhbW91bnQgb2YgZW50aXRpZXMgdGhhdCBhcmUgdXNlZCBieSB0aGUgY2xvY2sgKGZvciBleGFtcGxlIDEwIGZvciAxMCBvcGVyYXRpb25zIHBlciB7QGxpbmsgdGltZW91dH0pXG4gICAqIEBwYXJhbSB0aW1lb3V0IFRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyBiZWZvcmUgb25lIG9wZXJhdGlvbiBzbG90IGlzIGZyZWUgYWdhaW4gKGZvciBleGFtcGxlIDEwMDAgZm9yIDEgb3BlcmF0aW9uIHBlciBzZWNvbmQpXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICAvKipcbiAgICAgKiBUaGUgYW1vdW50IG9mIGVudGl0aWVzIHRoYXQgYXJlIHVzZWQgYnkgdGhlIGNsb2NrIChmb3IgZXhhbXBsZSAxMCBmb3IgMTAgb3BlcmF0aW9ucyBwZXIge0BsaW5rIHRpbWVvdXR9KVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGFtb3VudDogbnVtYmVyLFxuXG4gICAgLyoqXG4gICAgICogVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIGJlZm9yZSBvbmUgb3BlcmF0aW9uIHNsb3QgaXMgZnJlZSBhZ2FpblxuICAgICAqIChmb3IgZXhhbXBsZSAxMDAwIGZvciAxIG9wZXJhdGlvbiBwZXIgc2Vjb25kKVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHRpbWVvdXQ6IG51bWJlcixcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBDcmVhdGUgc2luZ3VsYXIgY2xvY2tzXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhbW91bnQ7IGkrKylcbiAgICAgIHRoaXMuZW50aXRpZXMucHVzaChuZXcgRW50aXR5UmF0ZUNsb2NrRW50aXR5KHRpbWVvdXQpKTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5lbnRpdGllcy5sZW5ndGg7IGkrKylcbiAgICAgIHRoaXMudW51c2VkLnB1c2godGhpcy5lbnRpdGllc1tpXSk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW4gYW4gZW50aXR5IGlzIHJlYWR5IHRvIGJlIHVzZWQgYWdhaW4uXG4gICAqIEBwYXJhbSBlbnRpdHkgVGhlIGVudGl0eSB0aGF0IGlzIHJlYWR5IHRvIGJlIHVzZWQgYWdhaW4uXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcHJpdmF0ZSBlbnRpdHlSZWFkeShlbnRpdHk6IEVudGl0eVJhdGVDbG9ja0VudGl0eSkge1xuICAgIGlmICh0aGlzLndhaXRpbmcubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy53YWl0aW5nLnNwbGljZSgwLCAxKVswXSgpO1xuICAgICAgZW50aXR5LnVzZSgpLnRoZW4oKGUpID0+IHRoaXMuZW50aXR5UmVhZHkoZSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudW51c2VkLnB1c2goZW50aXR5KTtcbiAgICBjb25zb2xlLmxvZyhcInVudXNlZFwiLCB0aGlzLnVudXNlZC5sZW5ndGgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFjcXVpcmUgYSBzbG90IGluIHRoZSByYXRlIGNsb2NrLiBUaGlzIG1ldGhvZCB3aWxsIGJsb2NrIHVudGlsIGEgc2xvdCBpcyBhdmFpbGFibGUuXG4gICAqIEltcGxlbWVudHMge0BsaW5rIFJhdGVDbG9jay5hY3F1aXJlfVxuICAgKiBAcmV0dXJucyBBIHByb21pc2UgdGhhdCByZXNvbHZlcyB3aGVuIGEgc2xvdCBpcyBhdmFpbGFibGUuXG4gICAqL1xuICBhY3F1aXJlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnVudXNlZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBjbG9jayA9IHRoaXMudW51c2VkLnBvcCgpITtcbiAgICAgIGNsb2NrLnVzZSgpLnRoZW4oKGUpID0+IHRoaXMuZW50aXR5UmVhZHkoZSkpO1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocnMpID0+IHtcbiAgICAgIHRoaXMud2FpdGluZy5wdXNoKHJzKTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSYXRlQ2xvY2s7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLHNCQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFBOEMsU0FBQUQsdUJBQUFFLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFFOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQWVHLFNBQVMsQ0FBQztFQUM5QjtBQUNGO0FBQ0E7QUFDQTs7RUFHRTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRSxPQUFPQyxNQUFNQSxDQUFDQyxNQUFjLEVBQUVDLE9BQWUsRUFBYTtJQUN4RCxPQUFPLElBQUlDLGVBQWUsQ0FBQ0YsTUFBTSxFQUFFQyxPQUFPLENBQUM7RUFDN0M7QUFDRjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUhBRSxPQUFBLENBQUFMLFNBQUEsR0FBQUEsU0FBQTtBQUlBLE1BQU1NLHFCQUFxQixDQUFDO0VBQzFCO0FBQ0Y7QUFDQTtBQUNBO0VBQ1VDLE9BQU8sR0FBbUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLElB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
{
"name": "request-rate-clock",
"version": "0.1.4",
"version": "0.1.5",
"description": "Rateclock provides a clock mechanism to work with api rate limits",

@@ -9,23 +9,23 @@ "main": "lib/index.js",

"devDependencies": {
"@babel/cli": "^7.23.4",
"@babel/core": "^7.23.3",
"@babel/cli": "^7.25.9",
"@babel/core": "^7.26.0",
"@babel/plugin-proposal-class-properties": "^7.18.6",
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
"@babel/preset-env": "^7.23.7",
"@babel/preset-typescript": "^7.24.1",
"@babel/preset-env": "^7.26.0",
"@babel/preset-typescript": "^7.25.7",
"@types/debug": "^4.1.12",
"@types/jest": "^29.5.11",
"@types/node": "^20.12.2",
"@typescript-eslint/eslint-plugin": "^7.4.0",
"@typescript-eslint/parser": "^7.4.0",
"@types/jest": "^29.5.13",
"@types/node": "^22.8.1",
"@typescript-eslint/eslint-plugin": "^7.16.1",
"@typescript-eslint/parser": "^7.18.0",
"babel-jest": "^29.7.0",
"eslint": "^8.56.0",
"eslint-plugin-jest": "^27.6.0",
"eslint": "^8.57.1",
"eslint-plugin-jest": "^28.8.3",
"jest": "^29.7.0",
"source-map-support": "^0.5.21",
"typedoc": "^0.25.4",
"typescript": "^5.3.3"
"typedoc": "^0.26.11",
"typescript": "^5.6.3"
},
"dependencies": {
"timeout-promise-wrapper": "^0.1.8"
"timeout-promise-wrapper": "^0.1.9"
},

@@ -32,0 +32,0 @@ "scripts": {

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc