From 55a4f1fc869e41aca748c63d3018f0448b1606e0 Mon Sep 17 00:00:00 2001 From: pack Date: Sun, 9 Aug 2026 10:37:07 +0000 Subject: first commit --- .../dist/delay/always/always.delay.d.ts | 3 + .../dist/delay/always/always.delay.js | 25 +++++++ .../exponential-backoff/dist/delay/delay.base.d.ts | 12 ++++ .../exponential-backoff/dist/delay/delay.base.js | 45 ++++++++++++ .../dist/delay/delay.factory.d.ts | 3 + .../dist/delay/delay.factory.js | 17 +++++ .../dist/delay/delay.interface.d.ts | 4 ++ .../dist/delay/delay.interface.js | 3 + .../dist/delay/skip-first/skip-first.delay.d.ts | 6 ++ .../dist/delay/skip-first/skip-first.delay.js | 82 ++++++++++++++++++++++ 10 files changed, 200 insertions(+) create mode 100644 node_modules/exponential-backoff/dist/delay/always/always.delay.d.ts create mode 100644 node_modules/exponential-backoff/dist/delay/always/always.delay.js create mode 100644 node_modules/exponential-backoff/dist/delay/delay.base.d.ts create mode 100644 node_modules/exponential-backoff/dist/delay/delay.base.js create mode 100644 node_modules/exponential-backoff/dist/delay/delay.factory.d.ts create mode 100644 node_modules/exponential-backoff/dist/delay/delay.factory.js create mode 100644 node_modules/exponential-backoff/dist/delay/delay.interface.d.ts create mode 100644 node_modules/exponential-backoff/dist/delay/delay.interface.js create mode 100644 node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.d.ts create mode 100644 node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js (limited to 'node_modules/exponential-backoff/dist/delay') diff --git a/node_modules/exponential-backoff/dist/delay/always/always.delay.d.ts b/node_modules/exponential-backoff/dist/delay/always/always.delay.d.ts new file mode 100644 index 0000000..641d0bc --- /dev/null +++ b/node_modules/exponential-backoff/dist/delay/always/always.delay.d.ts @@ -0,0 +1,3 @@ +import { Delay } from "../delay.base"; +export declare class AlwaysDelay extends Delay { +} diff --git a/node_modules/exponential-backoff/dist/delay/always/always.delay.js b/node_modules/exponential-backoff/dist/delay/always/always.delay.js new file mode 100644 index 0000000..40e3407 --- /dev/null +++ b/node_modules/exponential-backoff/dist/delay/always/always.delay.js @@ -0,0 +1,25 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +Object.defineProperty(exports, "__esModule", { value: true }); +var delay_base_1 = require("../delay.base"); +var AlwaysDelay = /** @class */ (function (_super) { + __extends(AlwaysDelay, _super); + function AlwaysDelay() { + return _super !== null && _super.apply(this, arguments) || this; + } + return AlwaysDelay; +}(delay_base_1.Delay)); +exports.AlwaysDelay = AlwaysDelay; +//# sourceMappingURL=always.delay.js.map \ No newline at end of file diff --git a/node_modules/exponential-backoff/dist/delay/delay.base.d.ts b/node_modules/exponential-backoff/dist/delay/delay.base.d.ts new file mode 100644 index 0000000..3cdd15d --- /dev/null +++ b/node_modules/exponential-backoff/dist/delay/delay.base.d.ts @@ -0,0 +1,12 @@ +import { IDelay } from "./delay.interface"; +import { IBackOffOptions } from "../options"; +export declare abstract class Delay implements IDelay { + private options; + protected attempt: number; + constructor(options: IBackOffOptions); + apply(): Promise; + setAttemptNumber(attempt: number): void; + private readonly jitteredDelay; + private readonly delay; + protected readonly numOfDelayedAttempts: number; +} diff --git a/node_modules/exponential-backoff/dist/delay/delay.base.js b/node_modules/exponential-backoff/dist/delay/delay.base.js new file mode 100644 index 0000000..b146c2f --- /dev/null +++ b/node_modules/exponential-backoff/dist/delay/delay.base.js @@ -0,0 +1,45 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var jitter_factory_1 = require("../jitter/jitter.factory"); +var Delay = /** @class */ (function () { + function Delay(options) { + this.options = options; + this.attempt = 0; + } + Delay.prototype.apply = function () { + var _this = this; + return new Promise(function (resolve) { return setTimeout(resolve, _this.jitteredDelay); }); + }; + Delay.prototype.setAttemptNumber = function (attempt) { + this.attempt = attempt; + }; + Object.defineProperty(Delay.prototype, "jitteredDelay", { + get: function () { + var jitter = jitter_factory_1.JitterFactory(this.options); + return jitter(this.delay); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Delay.prototype, "delay", { + get: function () { + var constant = this.options.startingDelay; + var base = this.options.timeMultiple; + var power = this.numOfDelayedAttempts; + var delay = constant * Math.pow(base, power); + return Math.min(delay, this.options.maxDelay); + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(Delay.prototype, "numOfDelayedAttempts", { + get: function () { + return this.attempt; + }, + enumerable: true, + configurable: true + }); + return Delay; +}()); +exports.Delay = Delay; +//# sourceMappingURL=delay.base.js.map \ No newline at end of file diff --git a/node_modules/exponential-backoff/dist/delay/delay.factory.d.ts b/node_modules/exponential-backoff/dist/delay/delay.factory.d.ts new file mode 100644 index 0000000..618ca4e --- /dev/null +++ b/node_modules/exponential-backoff/dist/delay/delay.factory.d.ts @@ -0,0 +1,3 @@ +import { IBackOffOptions } from "../options"; +import { IDelay } from "./delay.interface"; +export declare function DelayFactory(options: IBackOffOptions, attempt: number): IDelay; diff --git a/node_modules/exponential-backoff/dist/delay/delay.factory.js b/node_modules/exponential-backoff/dist/delay/delay.factory.js new file mode 100644 index 0000000..33008db --- /dev/null +++ b/node_modules/exponential-backoff/dist/delay/delay.factory.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +var skip_first_delay_1 = require("./skip-first/skip-first.delay"); +var always_delay_1 = require("./always/always.delay"); +function DelayFactory(options, attempt) { + var delay = initDelayClass(options); + delay.setAttemptNumber(attempt); + return delay; +} +exports.DelayFactory = DelayFactory; +function initDelayClass(options) { + if (!options.delayFirstAttempt) { + return new skip_first_delay_1.SkipFirstDelay(options); + } + return new always_delay_1.AlwaysDelay(options); +} +//# sourceMappingURL=delay.factory.js.map \ No newline at end of file diff --git a/node_modules/exponential-backoff/dist/delay/delay.interface.d.ts b/node_modules/exponential-backoff/dist/delay/delay.interface.d.ts new file mode 100644 index 0000000..6f2a10b --- /dev/null +++ b/node_modules/exponential-backoff/dist/delay/delay.interface.d.ts @@ -0,0 +1,4 @@ +export interface IDelay { + apply: () => Promise; + setAttemptNumber: (attempt: number) => void; +} diff --git a/node_modules/exponential-backoff/dist/delay/delay.interface.js b/node_modules/exponential-backoff/dist/delay/delay.interface.js new file mode 100644 index 0000000..6fe2a5a --- /dev/null +++ b/node_modules/exponential-backoff/dist/delay/delay.interface.js @@ -0,0 +1,3 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +//# sourceMappingURL=delay.interface.js.map \ No newline at end of file diff --git a/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.d.ts b/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.d.ts new file mode 100644 index 0000000..d4d7caf --- /dev/null +++ b/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.d.ts @@ -0,0 +1,6 @@ +import { Delay } from "../delay.base"; +export declare class SkipFirstDelay extends Delay { + apply(): Promise; + private readonly isFirstAttempt; + protected readonly numOfDelayedAttempts: number; +} diff --git a/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js b/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js new file mode 100644 index 0000000..73f8841 --- /dev/null +++ b/node_modules/exponential-backoff/dist/delay/skip-first/skip-first.delay.js @@ -0,0 +1,82 @@ +"use strict"; +var __extends = (this && this.__extends) || (function () { + var extendStatics = function (d, b) { + extendStatics = Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || + function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + return extendStatics(d, b); + }; + return function (d, b) { + extendStatics(d, b); + function __() { this.constructor = d; } + d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); + }; +})(); +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", { value: true }); +var delay_base_1 = require("../delay.base"); +var SkipFirstDelay = /** @class */ (function (_super) { + __extends(SkipFirstDelay, _super); + function SkipFirstDelay() { + return _super !== null && _super.apply(this, arguments) || this; + } + SkipFirstDelay.prototype.apply = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + return [2 /*return*/, this.isFirstAttempt ? true : _super.prototype.apply.call(this)]; + }); + }); + }; + Object.defineProperty(SkipFirstDelay.prototype, "isFirstAttempt", { + get: function () { + return this.attempt === 0; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(SkipFirstDelay.prototype, "numOfDelayedAttempts", { + get: function () { + return this.attempt - 1; + }, + enumerable: true, + configurable: true + }); + return SkipFirstDelay; +}(delay_base_1.Delay)); +exports.SkipFirstDelay = SkipFirstDelay; +//# sourceMappingURL=skip-first.delay.js.map \ No newline at end of file -- cgit v1.2.3