{"/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/ConstantBackoff.ts":{"path":"/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/ConstantBackoff.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":33}},"2":{"start":{"line":4,"column":15},"end":{"line":4,"column":32}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":35}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":29}},"5":{"start":{"line":11,"column":8},"end":{"line":11,"column":49}},"6":{"start":{"line":14,"column":0},"end":{"line":14,"column":42}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":6,"column":4},"end":{"line":6,"column":5}},"loc":{"start":{"line":6,"column":49},"end":{"line":9,"column":5}},"line":6},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":20},"end":{"line":12,"column":5}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":6,"column":27},"end":{"line":6,"column":47}},"type":"default-arg","locations":[{"start":{"line":6,"column":36},"end":{"line":6,"column":47}}],"line":6}},"s":{"0":1,"1":1,"2":1,"3":6,"4":6,"5":14,"6":1},"f":{"0":6,"1":14},"b":{"0":[4]},"inputSourceMap":{"version":3,"file":"/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/ConstantBackoff.ts","sources":["/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/ConstantBackoff.ts"],"names":[],"mappings":";;;AACA,iCAA8B;AAE9B,MAAa,eAAe;IACxB,YACa,SAAiB,EACjB,SAA+C,WAAI;QADnD,cAAS,GAAT,SAAS,CAAQ;QACjB,WAAM,GAAN,MAAM,CAA6C;IAC7D,CAAC;IAEG,KAAK,CAAC,OAAO;QAChB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;CACJ;AATD,0CASC","sourcesContent":["import { IBackoffStrategy } from \"./BackoffStrategy\";\nimport { wait } from \"./Wait\";\n\nexport class ConstantBackoff implements IBackoffStrategy {\n    constructor(\n        readonly timeoutMs: number,\n        readonly waitFn: (timeoutMs: number) => Promise<void> = wait,\n    ) {}\n\n    public async backoff(): Promise<void> {\n        return await this.waitFn(this.timeoutMs);\n    }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"c217b263ceacc18911e612b2e928a98a35daf211"},"/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/Wait.ts":{"path":"/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/Wait.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":22}},"2":{"start":{"line":5,"column":4},"end":{"line":5,"column":64}},"3":{"start":{"line":5,"column":34},"end":{"line":5,"column":62}},"4":{"start":{"line":7,"column":0},"end":{"line":7,"column":20}}},"fnMap":{"0":{"name":"wait","decl":{"start":{"line":4,"column":9},"end":{"line":4,"column":13}},"loc":{"start":{"line":4,"column":23},"end":{"line":6,"column":1}},"line":4},"1":{"name":"(anonymous_1)","decl":{"start":{"line":5,"column":23},"end":{"line":5,"column":24}},"loc":{"start":{"line":5,"column":34},"end":{"line":5,"column":62}},"line":5}},"branchMap":{},"s":{"0":1,"1":1,"2":11,"3":11,"4":1},"f":{"0":11,"1":11},"b":{},"inputSourceMap":{"version":3,"file":"/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/Wait.ts","sources":["/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/Wait.ts"],"names":[],"mappings":";;;AAAA,SAAgB,IAAI,CAAC,OAAe;IAChC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC;AAFD,oBAEC","sourcesContent":["export function wait(timeout: number): Promise<void> {\n    return new Promise(resolve => setTimeout(resolve, timeout));\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"16c207c4d5b98ec8d74cf07368c53a2f6e84e750"},"/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/ExponentialBackoff.ts":{"path":"/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/ExponentialBackoff.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":36}},"2":{"start":{"line":4,"column":15},"end":{"line":4,"column":32}},"3":{"start":{"line":16,"column":8},"end":{"line":16,"column":31}},"4":{"start":{"line":17,"column":8},"end":{"line":17,"column":25}},"5":{"start":{"line":18,"column":8},"end":{"line":18,"column":29}},"6":{"start":{"line":19,"column":8},"end":{"line":19,"column":21}},"7":{"start":{"line":22,"column":24},"end":{"line":22,"column":68}},"8":{"start":{"line":23,"column":8},"end":{"line":23,"column":35}},"9":{"start":{"line":24,"column":8},"end":{"line":24,"column":19}},"10":{"start":{"line":27,"column":0},"end":{"line":27,"column":48}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":15,"column":4},"end":{"line":15,"column":5}},"loc":{"start":{"line":15,"column":53},"end":{"line":20,"column":5}},"line":15},"1":{"name":"(anonymous_1)","decl":{"start":{"line":21,"column":4},"end":{"line":21,"column":5}},"loc":{"start":{"line":21,"column":20},"end":{"line":25,"column":5}},"line":21}},"branchMap":{"0":{"loc":{"start":{"line":15,"column":31},"end":{"line":15,"column":51}},"type":"default-arg","locations":[{"start":{"line":15,"column":40},"end":{"line":15,"column":51}}],"line":15}},"s":{"0":1,"1":1,"2":1,"3":2,"4":2,"5":2,"6":2,"7":5,"8":5,"9":5,"10":1},"f":{"0":2,"1":5},"b":{"0":[0]},"inputSourceMap":{"version":3,"file":"/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/ExponentialBackoff.ts","sources":["/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/ExponentialBackoff.ts"],"names":[],"mappings":";;;AACA,iCAA8B;AAE9B;;;;;;;;GAQG;AACH,MAAa,kBAAkB;IAI3B,YACa,OAAe,EACf,IAAY,EACZ,SAA+C,WAAI;QAFnD,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAA6C;QAE5D,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,CAAC;CACJ;AAjBD,gDAiBC","sourcesContent":["import { IBackoffStrategy } from \"./BackoffStrategy\";\nimport { wait } from \"./Wait\";\n\n/**\n * Exponential backoff strategy that when supplied with a startMs value will\n * increment the timeout based on powers of the base. It uses the general\n * exponential function equation:\n *\n * ```\n * timeout = ab^x\n * ```\n */\nexport class ExponentialBackoff implements IBackoffStrategy {\n    public timeout: number;\n    public exp: number;\n\n    constructor(\n        readonly startMs: number,\n        readonly base: number,\n        readonly waitFn: (timeoutMs: number) => Promise<void> = wait,\n    ) {\n        this.exp = 0;\n    }\n\n    public async backoff(): Promise<void> {\n        const timeout = this.startMs * Math.pow(this.base, this.exp);\n        await this.waitFn(timeout);\n        this.exp++;\n    }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"06ca0150fe0f50c2c19f2fa886ef6d93a652f07f"},"/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/RetryPolicy.ts":{"path":"/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/RetryPolicy.ts","statementMap":{"0":{"start":{"line":2,"column":0},"end":{"line":2,"column":62}},"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":29}},"2":{"start":{"line":6,"column":8},"end":{"line":6,"column":39}},"3":{"start":{"line":7,"column":8},"end":{"line":7,"column":47}},"4":{"start":{"line":8,"column":8},"end":{"line":8,"column":29}},"5":{"start":{"line":11,"column":8},"end":{"line":21,"column":9}},"6":{"start":{"line":12,"column":12},"end":{"line":20,"column":13}},"7":{"start":{"line":13,"column":16},"end":{"line":13,"column":34}},"8":{"start":{"line":16,"column":16},"end":{"line":16,"column":38}},"9":{"start":{"line":18,"column":16},"end":{"line":18,"column":38}},"10":{"start":{"line":19,"column":16},"end":{"line":19,"column":53}},"11":{"start":{"line":22,"column":8},"end":{"line":22,"column":31}},"12":{"start":{"line":25,"column":0},"end":{"line":25,"column":34}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":5,"column":4},"end":{"line":5,"column":5}},"loc":{"start":{"line":5,"column":46},"end":{"line":9,"column":5}},"line":5},"1":{"name":"(anonymous_1)","decl":{"start":{"line":10,"column":4},"end":{"line":10,"column":5}},"loc":{"start":{"line":10,"column":22},"end":{"line":23,"column":5}},"line":10}},"branchMap":{},"s":{"0":1,"1":1,"2":4,"3":4,"4":4,"5":4,"6":13,"7":13,"8":10,"9":10,"10":10,"11":1,"12":1},"f":{"0":4,"1":4},"b":{},"inputSourceMap":{"version":3,"file":"/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/RetryPolicy.ts","sources":["/Users/bmancini/code/altangent/node-lightning/packages/bitcoind/lib/policies/RetryPolicy.ts"],"names":[],"mappings":";;;AAGA,MAAa,WAAW;IAIpB,YAAqB,WAAmB,EAAW,eAAiC;QAA/D,gBAAW,GAAX,WAAW,CAAQ;QAAW,oBAAe,GAAf,eAAe,CAAkB;QAChF,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;IACzB,CAAC;IAEM,KAAK,CAAC,OAAO,CAAC,EAAoB;QACrC,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE;YACxC,IAAI;gBACA,OAAO,MAAM,EAAE,EAAE,CAAC;aACrB;YAAC,OAAO,EAAE,EAAE;gBACT,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;gBACtB,mEAAmE;gBACnE,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;gBACtB,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;aACxC;SACJ;QACD,MAAM,IAAI,CAAC,WAAW,CAAC;IAC3B,CAAC;CACJ;AArBD,kCAqBC","sourcesContent":["import { IBackoffStrategy } from \"./BackoffStrategy\";\nimport { IPolicy } from \"./Policy\";\n\nexport class RetryPolicy<T> implements IPolicy<T> {\n    private numFailures: number;\n    private lastFailure: Error;\n\n    constructor(readonly maxFailures: number, readonly backoffStrategy: IBackoffStrategy) {\n        this.numFailures = 0;\n    }\n\n    public async execute(fn: () => Promise<T>): Promise<T> {\n        while (this.numFailures < this.maxFailures) {\n            try {\n                return await fn();\n            } catch (ex) {\n                this.numFailures += 1;\n                // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n                this.lastFailure = ex;\n                await this.backoffStrategy.backoff();\n            }\n        }\n        throw this.lastFailure;\n    }\n}\n"]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"91a96abe01312b6889922b4f45c100304993894a"}}