@dbx-tools/shared-core 0.6.119 → 0.6.123
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/src/async.d.ts +1 -0
- package/lib/src/async.js +7 -1
- package/package.json +2 -2
- package/src/async.ts +10 -0
package/lib/src/async.d.ts
CHANGED
package/lib/src/async.js
CHANGED
|
@@ -7,6 +7,12 @@
|
|
|
7
7
|
* @module
|
|
8
8
|
*/
|
|
9
9
|
import { deepEqual } from "./object.js";
|
|
10
|
+
const DEFAULT_RETRY_DELAYS_MS = [1_000, 2_000, 5_000, 10_000, 30_000];
|
|
11
|
+
export function boundedRetryDelay(attempt, delaysMs = DEFAULT_RETRY_DELAYS_MS) {
|
|
12
|
+
if (!delaysMs.length)
|
|
13
|
+
return 0;
|
|
14
|
+
return delaysMs[Math.min(Math.max(0, attempt), delaysMs.length - 1)];
|
|
15
|
+
}
|
|
10
16
|
/**
|
|
11
17
|
* Async iterable that drives a periodic poll. Each iteration:
|
|
12
18
|
*
|
|
@@ -163,4 +169,4 @@ export function sleep(ms, signal) {
|
|
|
163
169
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
164
170
|
});
|
|
165
171
|
}
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFrRnhDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0NHO0FBQ0gsTUFBTSxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsSUFBSSxDQUN6QixRQUE0QixFQUM1QixPQUEwQjtJQUUxQixNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUN6RSxNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO0lBQ3pDLElBQUksTUFBTTtRQUFFLGNBQWMsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0MsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7UUFDNUIsY0FBYyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELG1FQUFtRTtJQUNuRSxtRUFBbUU7SUFDbkUsZ0VBQWdFO0lBQ2hFLGtEQUFrRDtJQUNsRCxNQUFNLGdCQUFnQixHQUFHLFVBQVUsSUFBSyxFQUFRLENBQUM7SUFDakQsSUFBSSxDQUFDO1FBQ0gsSUFBSSxRQUF1QixDQUFDO1FBQzVCLEtBQUssSUFBSSxPQUFPLEdBQUcsQ0FBQyxHQUFJLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDbEMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEdBQUcsR0FBc0I7Z0JBQzdCLE9BQU87Z0JBQ1AsUUFBUTtnQkFDUixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07Z0JBQ3pCLFVBQVUsRUFBRSxnQkFBZ0I7YUFDN0IsQ0FBQztZ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R0FBRyxFQUFFO1lBQzVCLE1BQU0sRUFBRSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDUCxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ2FuY2VsbGF0aW9uLWF3YXJlIGFzeW5jIHByaW1pdGl2ZXM6IGFuIGFib3J0YWJsZSB7QGxpbmsgc2xlZXB9LCBhblxuICoge0BsaW5rIEFib3J0Q29udHJvbGxlcn0gbGlua2VyICh7QGxpbmsgdGllQWJvcnRTaWduYWx9KSwgYW5kIGEgcGVyaW9kaWNcbiAqIHtAbGluayBwb2xsfSBnZW5lcmF0b3IuIERlcGVuZGVuY3ktZnJlZTsgYHBvbGxgJ3MgYFwiZGlzdGluY3RcImAgZmlsdGVyXG4gKiB1c2VzIHRoZSBsb2NhbCB7QGxpbmsgZGVlcEVxdWFsfS5cbiAqXG4gKiBAbW9kdWxlXG4gKi9cbmltcG9ydCB7IGRlZXBFcXVhbCB9IGZyb20gXCIuL29iamVjdC50c1wiO1xuXG4vKipcbiAqIFBlci1pdGVyYXRpb24gY29udGV4dCBoYW5kZWQgdG8ge0BsaW5rIFBvbGxQcm9kdWNlcn0gYW5kIHRoZVxuICogcHJlZGljYXRlIG9uIGVhY2ggc3RlcCBvZiBhIHtAbGluayBwb2xsfSBsb29wLiBCdW5kbGVzIHRoZVxuICogaXRlcmF0aW9uIG1ldGFkYXRhIHNvIHRoZSBjYWxsIHNpZ25hdHVyZXMgc3RheSBzdGFibGUgYXMgYHBvbGxgXG4gKiBncm93cyBhZGRpdGlvbmFsIGZpZWxkcy5cbiAqXG4gKiBgc2lnbmFsYCBpcyBvd25lZCBieSBgcG9sbGA6IGl0IHRyYWNrcyB0aGUgZXh0ZXJuYWxcbiAqIGBQb2xsT3B0aW9ucy5zaWduYWxgICh3aGVuIHN1cHBsaWVkKSBhbmQgYWxzbyBmaXJlcyB3aGVuIHRoZVxuICogY29uc3VtZXIgYnJlYWtzIG91dCBvZiB0aGUgbG9vcCwgc28gcHJvZHVjZXJzIGNhbiBmb3J3YXJkIGl0IHRvXG4gKiBhbnkgaW4tZmxpZ2h0IHdvcmsgKGBmZXRjaGAsIFNESyBjYWxscywgZXRjLikgYW5kIGhhdmUgYSBzaW5nbGVcbiAqIGNhbmNlbGxhdGlvbiBzb3VyY2UgdGVhciBkb3duIGJvdGggdGhlIHJlcXVlc3QgYW5kIHRoZSBsb29wLlxuICpcbiAqIGBhdHRyaWJ1dGVzYCBpcyBhIG11dGFibGUgc2NyYXRjaHBhZCBzaGFyZWQgYWNyb3NzIGV2ZXJ5XG4gKiBpdGVyYXRpb24gb2YgYSBzaW5nbGUgYHBvbGxgIHJ1bi4gVGhlIHNhbWUgb2JqZWN0IHJlZmVyZW5jZSBpc1xuICogcGFzc2VkIGVhY2ggY2FsbCBzbyB3cml0ZXMgZnJvbSBvbmUgaXRlcmF0aW9uIGFyZSB2aXNpYmxlIHRvIHRoZVxuICogbmV4dCAtIHVzZWZ1bCBmb3Igc3Rhc2hpbmcgcGVyLWxvb3Agc3RhdGUgKHJldHJ5IGNvdW50ZXJzLCBzdGFydFxuICogdGltZXN0YW1wcywgYW55dGhpbmcgeW91J2Qgb3RoZXJ3aXNlIGNsb3NlIG92ZXIgdmlhIGEgbGV0KS5cbiAqIEdlbmVyaWMgYEFgIGxldHMgY2FsbGVycyB0eXBlIHRoZSBiYWc7IGRlZmF1bHRzIHRvXG4gKiBgUmVjb3JkPHN0cmluZywgdW5rbm93bj5gLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvbGxDb250ZXh0PFQsIEEgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAvKiogWmVyby1iYXNlZCBpdGVyYXRpb24gaW5kZXggKGAwYCBvbiB0aGUgZmlyc3QgY2FsbCkuICovXG4gIGF0dGVtcHQ6IG51bWJlcjtcbiAgLyoqIFZhbHVlIHlpZWxkZWQgb24gdGhlIHByaW9yIGl0ZXJhdGlvbjsgYHVuZGVmaW5lZGAgb24gdGhlIGZpcnN0LiAqL1xuICBwcmV2aW91czogVCB8IHVuZGVmaW5lZDtcbiAgLyoqIENhbmNlbGxhdGlvbiBoYW5kbGUuIEFsd2F5cyBkZWZpbmVkOyBmb3J3YXJkIHRvIGluLWZsaWdodCB3b3JrLiAqL1xuICBzaWduYWw6IEFib3J0U2lnbmFsO1xuICAvKiogUGVyLXJ1biBtdXRhYmxlIHNjcmF0Y2hwYWQgc2hhcmVkIGFjcm9zcyBpdGVyYXRpb25zLiAqL1xuICBhdHRyaWJ1dGVzOiBBO1xufVxuXG4vKiogT25lIHN0ZXAgb2YgYSB7QGxpbmsgcG9sbH0gbG9vcC4gU2VlIHtAbGluayBQb2xsQ29udGV4dH0uICovXG5leHBvcnQgdHlwZSBQb2xsUHJvZHVjZXI8VCwgQSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+PiA9IChcbiAgY3R4OiBQb2xsQ29udGV4dDxULCBBPixcbikgPT4gVCB8IFByb21pc2VMaWtlPFQ+O1xuXG5leHBvcnQgaW50ZXJmYWNlIFBvbGxPcHRpb25zPFQsIEEgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4ge1xuICAvKiogTWlsbGlzZWNvbmRzIHRvIHdhaXQgYmV0d2VlbiBwb2xscy4gKi9cbiAgaW50ZXJ2YWxNczogbnVtYmVyO1xuICAvKipcbiAgICogUHJlZGljYXRlIGV2YWx1YXRlZCBhZ2FpbnN0IGVhY2ggeWllbGRlZCB2YWx1ZTogcmV0dXJuIGB0cnVlYCB0b1xuICAgKiBrZWVwIGl0LCBgZmFsc2VgIHRvIHNraXAgaXQgKHdpdGhvdXQgc3RvcHBpbmcgdGhlIGxvb3ApLiBNYXkgYmVcbiAgICogc3luYyBvciBhc3luYyAtIGEgYFByb21pc2VMaWtlPGJvb2xlYW4+YCBpcyBhd2FpdGVkIGJlZm9yZSB0aGVcbiAgICogZGVjaXNpb24gaXMgbWFkZS4gUmVjZWl2ZXMgdGhlIHNhbWUge0BsaW5rIFBvbGxDb250ZXh0fSBhcyB0aGVcbiAgICogcHJvZHVjZXIgKHNhbWUgYHNpZ25hbGAsIHNhbWUgYGF0dHJpYnV0ZXNgIGJhZykuIFRoZSBzcGVjaWFsXG4gICAqIHZhbHVlIGBcImRpc3RpbmN0XCJgIHNraXBzIGEgdmFsdWUgdGhhdCBkZWVwLWVxdWFscyB0aGUgcHJldmlvdXNcbiAgICogb25lLlxuICAgKi9cbiAgZmlsdGVyPzogKCh2YWx1ZTogVCwgY3R4OiBQb2xsQ29udGV4dDxULCBBPikgPT4gYm9vbGVhbiB8IFByb21pc2VMaWtlPGJvb2xlYW4+KSB8IFwiZGlzdGluY3RcIjtcbiAgLyoqXG4gICAqIFByZWRpY2F0ZSBldmFsdWF0ZWQgYWdhaW5zdCBlYWNoIHlpZWxkZWQgdmFsdWU6IHJldHVybiBgdHJ1ZWAgdG9cbiAgICoga2VlcCBwb2xsaW5nLCBgZmFsc2VgIHRvIHN0b3AuIE1heSBiZSBzeW5jIG9yIGFzeW5jLiBPbWl0IHRvIHBvbGxcbiAgICogZm9yZXZlciAodGhlIGNvbnN1bWVyIHN0b3BzIGJ5IGJyZWFraW5nIG91dCBvZiB0aGUgbG9vcCBvciBieVxuICAgKiBhYm9ydGluZyBgc2lnbmFsYCkuXG4gICAqL1xuICBwcmVkaWNhdGU/OiAodmFsdWU6IFQsIGN0eDogUG9sbENvbnRleHQ8VCwgQT4pID0+IGJvb2xlYW4gfCBQcm9taXNlTGlrZTxib29sZWFuPjtcbiAgLyoqXG4gICAqIEV4dGVybmFsIGNhbmNlbGxhdGlvbiBoYW5kbGUuIFRpZWQgaW50byB0aGUgaW50ZXJuYWwgc2lnbmFsIHRoYXRcbiAgICogYHBvbGxgIGhhbmRzIHRvIGBwcm9kdWNlcmAsIHNvIGFib3J0aW5nIGl0IHRlYXJzIGRvd24gYm90aCB0aGVcbiAgICogaW4tZmxpZ2h0IHJlcXVlc3QgYW5kIHRoZSBpbnRlci1wb2xsIHNsZWVwLlxuICAgKi9cbiAgc2lnbmFsPzogQWJvcnRTaWduYWw7XG4gIC8qKlxuICAgKiBIYXJkIHVwcGVyIGJvdW5kIG9uIHRoZSB0b3RhbCBsaWZldGltZSBvZiB0aGUgcG9sbCBsb29wLCBpblxuICAgKiBtaWxsaXNlY29uZHMuIFdoZW4gdGhlIGJ1ZGdldCBlbGFwc2VzLCBgcG9sbGAgYWJvcnRzIGl0cyBpbnRlcm5hbFxuICAgKiBzaWduYWwgc28gdGhlIGluLWZsaWdodCBwcm9kdWNlciBhbmQgaW50ZXItcG9sbCBzbGVlcCBib3RoIHRlYXJcbiAgICogZG93biBwcm9tcHRseSwgYW5kIHRoZSBsb29wIHRocm93cyB0aGUgYFRpbWVvdXRFcnJvcmBcbiAgICogYERPTUV4Y2VwdGlvbmAgcHJvZHVjZWQgYnkgYEFib3J0U2lnbmFsLnRpbWVvdXQodGltZW91dE1zKWAuIFRoZVxuICAgKiBidWRnZXQgc3RhcnRzIHRpY2tpbmcgdGhlIG1vbWVudCB0aGUgZ2VuZXJhdG9yIGlzIGNyZWF0ZWQuXG4gICAqL1xuICB0aW1lb3V0TXM/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBJbml0aWFsIHZhbHVlIGZvciBgY3R4LmF0dHJpYnV0ZXNgLiBEZWZhdWx0cyB0byBge31gLiBUaGUgc2FtZVxuICAgKiBvYmplY3QgaXMgcmV1c2VkIGFjcm9zcyBpdGVyYXRpb25zLCBzbyBjYWxsZXJzIGNhbiBwcmUtcG9wdWxhdGVcbiAgICogZmllbGRzICh0aW1lcnMsIHJldHJ5IGNvdW50ZXJzLCBldGMuKSBhbmQgdGhlIHByb2R1Y2VyIC9cbiAgICogcHJlZGljYXRlIGNhbiBtdXRhdGUgdGhlbSBpbiBwbGFjZS5cbiAgICovXG4gIGF0dHJpYnV0ZXM/OiBBO1xufVxuXG4vKipcbiAqIEFzeW5jIGl0ZXJhYmxlIHRoYXQgZHJpdmVzIGEgcGVyaW9kaWMgcG9sbC4gRWFjaCBpdGVyYXRpb246XG4gKlxuICogICAxLiBCdWlsZHMgYSB7QGxpbmsgUG9sbENvbnRleHR9IChgYXR0ZW1wdGAsIGBwcmV2aW91c2AsIGBzaWduYWxgLFxuICogICAgICBzaGFyZWQgYGF0dHJpYnV0ZXNgKSBhbmQgY2FsbHMgYHByb2R1Y2VyKGN0eClgOyB5aWVsZHMgdGhlXG4gKiAgICAgIHJlc29sdmVkIHZhbHVlIChzdWJqZWN0IHRvIGBmaWx0ZXJgKS5cbiAqICAgMi4gRXZhbHVhdGVzIGBvcHRpb25zLnByZWRpY2F0ZSh2YWx1ZSwgY3R4KWA7IHN0b3BzIHdoZW4gaXRcbiAqICAgICAgcmV0dXJucyAob3IgcmVzb2x2ZXMgdG8pIGBmYWxzZWAuXG4gKiAgIDMuIFNsZWVwcyBgb3B0aW9ucy5pbnRlcnZhbE1zYCBiZWZvcmUgdGhlIG5leHQgYXR0ZW1wdC5cbiAqXG4gKiBUaGUgZmlyc3QgY2FsbCBydW5zIGltbWVkaWF0ZWx5IChubyBsZWFkaW5nIHNsZWVwKSBzbyB0aGUgY29uc3VtZXJcbiAqIHNlZXMgYSB2YWx1ZSB3aXRob3V0IHdhaXRpbmcgYW4gaW50ZXJ2YWwuIEVycm9ycyB0aHJvd24gYnlcbiAqIGBwcm9kdWNlcmAgcHJvcGFnYXRlIHRocm91Z2ggdGhlIGdlbmVyYXRvci5cbiAqXG4gKiBgcG9sbGAgYWx3YXlzIGNyZWF0ZXMgYW4gaW50ZXJuYWwgYEFib3J0Q29udHJvbGxlcmAgYW5kIGV4cG9zZXNcbiAqIGBpbnRlcm5hbC5zaWduYWxgIGFzIGBjdHguc2lnbmFsYCwgc28gcHJvZHVjZXJzIGNhbiByZWx5IG9uIGFcbiAqIGRlZmluZWQgc2lnbmFsIHdpdGhvdXQgYSBudWxsaXNoIGNoZWNrLiBUaGUgZXh0ZXJuYWxcbiAqIGBvcHRpb25zLnNpZ25hbGAgaXMgdGllZCBpbiwgYW5kIGEgYHRyeS9maW5hbGx5YCBhYm9ydHMgdGhlXG4gKiBpbnRlcm5hbCBzaWduYWwgd2hlbiB0aGUgY29uc3VtZXIgYnJlYWtzIG91dCBvZiB0aGUgYGZvciBhd2FpdGBcbiAqIChvciB0aGUgbG9vcCB0aHJvd3MpLCBzbyBhbnkgcHJvZHVjZXIgd29yayBzdGlsbCBob2xkaW5nIHRoZVxuICogc2lnbmFsIHNlZXMgdGhlIGNhbmNlbGxhdGlvbiB0b28uXG4gKlxuICogQGV4YW1wbGVcbiAqIGZvciBhd2FpdCAoY29uc3QgbXNnIG9mIHBvbGwoXG4gKiAgIGFzeW5jICh7IHNpZ25hbCB9KSA9PlxuICogICAgIGNsaWVudC5nZW5pZS5nZXRNZXNzYWdlKHsgLi4uIH0sIHsgYWJvcnRTaWduYWw6IHNpZ25hbCB9KSxcbiAqICAge1xuICogICAgIGludGVydmFsTXM6IDI1MCxcbiAqICAgICBwcmVkaWNhdGU6IChtKSA9PiAhVEVSTUlOQUxfU1RBVFVTRVMuaGFzKG0uc3RhdHVzKSxcbiAqICAgICBzaWduYWw6IGNvbnRyb2xsZXIuc2lnbmFsLFxuICogICB9LFxuICogKSkge1xuICogICByZW5kZXIobXNnKTtcbiAqIH1cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uKiBwb2xsPFQsIEEgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gIHByb2R1Y2VyOiBQb2xsUHJvZHVjZXI8VCwgQT4sXG4gIG9wdGlvbnM6IFBvbGxPcHRpb25zPFQsIEE+LFxuKTogQXN5bmNHZW5lcmF0b3I8VCwgdm9pZCwgdm9pZD4ge1xuICBjb25zdCB7IGludGVydmFsTXMsIHByZWRpY2F0ZSwgc2lnbmFsLCBhdHRyaWJ1dGVzLCB0aW1lb3V0TXMgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIGlmIChzaWduYWwpIHRpZUFib3J0U2lnbmFsKGNvbnRyb2xsZXIsIHNpZ25hbCk7XG4gIGlmICh0aW1lb3V0TXMgIT09IHVuZGVmaW5lZCkge1xuICAgIHRpZUFib3J0U2lnbmFsKGNvbnRyb2xsZXIsIEFib3J0U2lnbmFsLnRpbWVvdXQodGltZW91dE1zKSk7XG4gIH1cbiAgLy8gU2luZ2xlIHNoYXJlZCBhdHRyaWJ1dGVzIG9iamVjdCBzbyB3cml0ZXMgZnJvbSBvbmUgaXRlcmF0aW9uIGFyZVxuICAvLyB2aXNpYmxlIG9uIHRoZSBuZXh0LiBge30gYXMgQWAgaXMgc2FmZSBiZWNhdXNlIGVpdGhlciB0aGUgY2FsbGVyXG4gIC8vIHN1cHBsaWVkIGBhdHRyaWJ1dGVzYCAodHlwZWQpIG9yIGBBYCBkZWZhdWx0ZWQgdG8gdGhlIHVua25vd25cbiAgLy8gcmVjb3JkIHNoYXBlIChpbiB3aGljaCBjYXNlIGB7fWAgc2F0aXNmaWVzIGl0KS5cbiAgY29uc3Qgc2hhcmVkQXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMgPz8gKHt9IGFzIEEpO1xuICB0cnkge1xuICAgIGxldCBwcmV2aW91czogVCB8IHVuZGVmaW5lZDtcbiAgICBmb3IgKGxldCBhdHRlbXB0ID0gMDsgOyBhdHRlbXB0KyspIHtcbiAgICAgIGNvbnRyb2xsZXIuc2lnbmFsLnRocm93SWZBYm9ydGVkKCk7XG4gICAgICBjb25zdCBjdHg6IFBvbGxDb250ZXh0PFQsIEE+ID0ge1xuICAgICAgICBhdHRlbXB0LFxuICAgICAgICBwcmV2aW91cyxcbiAgICAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgYXR0cmlidXRlczogc2hhcmVkQXR0cmlidXRlcyxcbiAgICAgIH07XG4gICAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IHByb2R1Y2VyKGN0eCk7XG4gICAgICBpZiAob3B0aW9ucy5maWx0ZXIpIHtcbiAgICAgICAgaWYgKG9wdGlvbnMuZmlsdGVyID09PSBcImRpc3RpbmN0XCIpIHtcbiAgICAgICAgICBpZiAoZGVlcEVxdWFsKHByZXZpb3VzLCB2YWx1ZSkpIHtcbiAgICAgICAgICAgIGF3YWl0IHNsZWVwKGludGVydmFsTXMsIGNvbnRyb2xsZXIuc2lnbmFsKTtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghKGF3YWl0IG9wdGlvbnMuZmlsdGVyKHZhbHVlLCBjdHgpKSkge1xuICAgICAgICAgIGF3YWl0IHNsZWVwKGludGVydmFsTXMsIGNvbnRyb2xsZXIuc2lnbmFsKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgeWllbGQgdmFsdWU7XG4gICAgICBpZiAocHJlZGljYXRlICYmICEoYXdhaXQgcHJlZGljYXRlKHZhbHVlLCBjdHgpKSkgcmV0dXJuO1xuICAgICAgYXdhaXQgc2xlZXAoaW50ZXJ2YWxNcywgY29udHJvbGxlci5zaWduYWwpO1xuICAgICAgcHJldmlvdXMgPSB2YWx1ZTtcbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgY29udHJvbGxlci5hYm9ydCgpO1xuICB9XG59XG5cbi8qKlxuICogVGllIGEgY2hpbGQgYEFib3J0Q29udHJvbGxlcmAgdG8gYSBwYXJlbnQgc2lnbmFsLiBUaGUgY2hpbGQgYWJvcnRzXG4gKiB3aGVuZXZlciB0aGUgcGFyZW50IGFib3J0czsgYWJvcnRpbmcgdGhlIGNoaWxkIGRvZXMgbm90IGFmZmVjdCB0aGVcbiAqIHBhcmVudCAoc28gYSBmZXRjaC1sZXZlbCBjYW5jZWwgZG9lc24ndCB0ZWFyIGRvd24gdGhlIG1haW4gcG9sbCBsb29wKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRpZUFib3J0U2lnbmFsKGNoaWxkOiBBYm9ydENvbnRyb2xsZXIsIHBhcmVudD86IEFib3J0U2lnbmFsKTogdm9pZCB7XG4gIGlmICghcGFyZW50KSB7XG4gICAgcmV0dXJuO1xuICB9IGVsc2UgaWYgKHBhcmVudC5hYm9ydGVkKSB7XG4gICAgY2hpbGQuYWJvcnQocGFyZW50LnJlYXNvbik7XG4gICAgcmV0dXJuO1xuICB9XG4gIHBhcmVudC5hZGRFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgKCkgPT4gY2hpbGQuYWJvcnQocGFyZW50LnJlYXNvbiksIHtcbiAgICBvbmNlOiB0cnVlLFxuICB9KTtcbn1cblxuLyoqXG4gKiBDb21iaW5lIHNldmVyYWwgb3B0aW9uYWwgY2FuY2VsbGF0aW9uIHNvdXJjZXMgaW50byBvbmUgc2lnbmFsIHRoYXQgYWJvcnRzXG4gKiBhcyBzb29uIGFzIGFueSBvZiB0aGVtIGRvZXMuXG4gKlxuICogVGhlIHVzdWFsIGNhbGxlciBpcyBhbiBvcGVyYXRpb24gdGhhdCBoYXMgdG8gaG9ub3IgbW9yZSB0aGFuIG9uZSBzb3VyY2UgYXRcbiAqIG9uY2UgLSBhIGNhbGxlcidzIG93biBzaWduYWwgKGEgY2xvc2VkIGNvbm5lY3Rpb24sIGFuIGFnZW50IHJ1biBiZWluZ1xuICogY2FuY2VsbGVkKSBwbHVzIG9uZSBkZXJpdmVkIGZyb20gYSB0aW1lb3V0IC0gd2hlcmUgdGhlIGF3YWl0ZWQgSS9PIGFjY2VwdHNcbiAqIG9ubHkgYSBzaW5nbGUgc2lnbmFsLiBBYnNlbnQgc291cmNlcyBhcmUgaWdub3JlZCwgYW5kIGEgbG9uZSBzaWduYWwgaXNcbiAqIHJldHVybmVkIGFzLWlzIHNvIHRoZSBjb21tb24gcGF0aCBhbGxvY2F0ZXMgbm90aGluZy4gUmV0dXJucyBgdW5kZWZpbmVkYFxuICogb25seSB3aGVuIGV2ZXJ5IGlucHV0IGlzIGFic2VudCwgd2hpY2ggY2FsbGVycyBjYW4gcGFzcyBzdHJhaWdodCB0aHJvdWdoXG4gKiB0byBhbiBvcHRpb25hbCBgc2lnbmFsYCBwYXJhbWV0ZXIuXG4gKlxuICogQWJvcnRpbmcgYW4gaW5wdXQgYWJvcnRzIHRoZSByZXN1bHQgKGNhcnJ5aW5nIHRoYXQgaW5wdXQncyBgcmVhc29uYCk7XG4gKiBub3RoaW5nIHByb3BhZ2F0ZXMgYmFjayB0aGUgb3RoZXIgd2F5LlxuICpcbiAqIEBleGFtcGxlXG4gKiBhd2FpdCBmZXRjaCh1cmwsIHsgc2lnbmFsOiBjb21iaW5lQWJvcnRTaWduYWxzKHJlcS5zaWduYWwsIHRpbWVvdXQuc2lnbmFsKSB9KTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbWJpbmVBYm9ydFNpZ25hbHMoXG4gIC4uLnNpZ25hbHM6IChBYm9ydFNpZ25hbCB8IHVuZGVmaW5lZClbXVxuKTogQWJvcnRTaWduYWwgfCB1bmRlZmluZWQge1xuICBjb25zdCBwcmVzZW50ID0gc2lnbmFscy5maWx0ZXIoKHNpZ25hbCk6IHNpZ25hbCBpcyBBYm9ydFNpZ25hbCA9PiBzaWduYWwgIT09IHVuZGVmaW5lZCk7XG4gIGlmIChwcmVzZW50Lmxlbmd0aCA8PSAxKSByZXR1cm4gcHJlc2VudFswXTtcbiAgY29uc3QgY29tYmluZWQgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gIGZvciAoY29uc3Qgc2lnbmFsIG9mIHByZXNlbnQpIHRpZUFib3J0U2lnbmFsKGNvbWJpbmVkLCBzaWduYWwpO1xuICByZXR1cm4gY29tYmluZWQuc2lnbmFsO1xufVxuXG4vKipcbiAqIFByb21pc2lmaWVkIGBzZXRUaW1lb3V0YCB0aGF0IHdha2VzIHVwIGVhcmx5IChhbmQgcmVqZWN0cyB3aXRoXG4gKiBgc2lnbmFsLnJlYXNvbmApIHdoZW4gYHNpZ25hbGAgYWJvcnRzIG1pZC13YWl0LiBTaG9ydC1jaXJjdWl0cyB0byBhXG4gKiByZWplY3RlZCBwcm9taXNlIHdoZW4gdGhlIHNpZ25hbCBpcyBhbHJlYWR5IGFib3J0ZWQgb24gZW50cnksIHNvIHRoZVxuICogYWJvcnQgcGF0aCBpcyBjb25zaXN0ZW50IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgd2FpdCBhY3R1YWxseVxuICogc3RhcnRlZC5cbiAqXG4gKiBVc2UgYXMgdGhlIGJ1aWxkaW5nIGJsb2NrIGZvciBhbnkgXCJ3YWl0LCBidXQgY2FuY2VsIGNsZWFubHlcIiBwYXR0ZXJuIC1cbiAqIGludGVyLXBvbGwgYmFja29mZiwgcGFjaW5nIGxvb3BzLCByZXRyeSB0aW1lcnMsIGxvbmctcG9sbCBidWRnZXRzIC0gc29cbiAqIGNhbmNlbGxhdGlvbiBhbHdheXMgcmVqZWN0cyB3aXRoIHRoZSBjYWxsZXIncyBgc2lnbmFsLnJlYXNvbmAgcmF0aGVyXG4gKiB0aGFuIHNpbGVudGx5IHJlc29sdmluZyBhZnRlciB0aGUgdGltZXIgZXhwaXJlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogYXdhaXQgc2xlZXAoMjUwLCByZXEuc2lnbmFsKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNsZWVwKG1zOiBudW1iZXIsIHNpZ25hbD86IEFib3J0U2lnbmFsKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChzaWduYWw/LmFib3J0ZWQpIHJldHVybiBQcm9taXNlLnJlamVjdChzaWduYWwucmVhc29uKTtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCBvbkFib3J0ID0gKCk6IHZvaWQgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcbiAgICAgIHJlamVjdChzaWduYWwhLnJlYXNvbik7XG4gICAgfTtcbiAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2lnbmFsPy5yZW1vdmVFdmVudExpc3RlbmVyKFwiYWJvcnRcIiwgb25BYm9ydCk7XG4gICAgICByZXNvbHZlKCk7XG4gICAgfSwgbXMpO1xuICAgIHNpZ25hbD8uYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIG9uQWJvcnQsIHsgb25jZTogdHJ1ZSB9KTtcbiAgfSk7XG59XG4iXX0=
|
|
172
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7R0FPRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQVUsQ0FBQztBQUUvRSxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLE9BQWUsRUFDZixXQUE4Qix1QkFBdUI7SUFFckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNO1FBQUUsT0FBTyxDQUFDLENBQUM7SUFDL0IsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFFLENBQUM7QUFDeEUsQ0FBQztBQWtGRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtDRztBQUNILE1BQU0sQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FDekIsUUFBNEIsRUFDNUIsT0FBMEI7SUFFMUIsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDekUsTUFBTSxVQUFVLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztJQUN6QyxJQUFJLE1BQU07UUFBRSxjQUFjLENBQUMsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLElBQUksU0FBUyxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQzVCLGNBQWMsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFDRCxtRUFBbUU7SUFDbkUs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TUFBTSxVQUFVLEtBQUssQ0FBQyxFQUFVLEVBQUUsTUFBb0I7SUFDcEQsSUFBSSxNQUFNLEVBQUUsT0FBTztRQUFFLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUQsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUNyQyxNQUFNLE9BQU8sR0FBRyxHQUFTLEVBQUU7WUFDekIsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLE1BQU0sQ0FBQyxNQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDekIsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLEVBQUUsbUJBQW1CLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzlDLE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxFQUFFLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENhbmNlbGxhdGlvbi1hd2FyZSBhc3luYyBwcmltaXRpdmVzOiBhbiBhYm9ydGFibGUge0BsaW5rIHNsZWVwfSwgYW5cbiAqIHtAbGluayBBYm9ydENvbnRyb2xsZXJ9IGxpbmtlciAoe0BsaW5rIHRpZUFib3J0U2lnbmFsfSksIGFuZCBhIHBlcmlvZGljXG4gKiB7QGxpbmsgcG9sbH0gZ2VuZXJhdG9yLiBEZXBlbmRlbmN5LWZyZWU7IGBwb2xsYCdzIGBcImRpc3RpbmN0XCJgIGZpbHRlclxuICogdXNlcyB0aGUgbG9jYWwge0BsaW5rIGRlZXBFcXVhbH0uXG4gKlxuICogQG1vZHVsZVxuICovXG5pbXBvcnQgeyBkZWVwRXF1YWwgfSBmcm9tIFwiLi9vYmplY3QudHNcIjtcblxuY29uc3QgREVGQVVMVF9SRVRSWV9ERUxBWVNfTVMgPSBbMV8wMDAsIDJfMDAwLCA1XzAwMCwgMTBfMDAwLCAzMF8wMDBdIGFzIGNvbnN0O1xuXG5leHBvcnQgZnVuY3Rpb24gYm91bmRlZFJldHJ5RGVsYXkoXG4gIGF0dGVtcHQ6IG51bWJlcixcbiAgZGVsYXlzTXM6IHJlYWRvbmx5IG51bWJlcltdID0gREVGQVVMVF9SRVRSWV9ERUxBWVNfTVMsXG4pOiBudW1iZXIge1xuICBpZiAoIWRlbGF5c01zLmxlbmd0aCkgcmV0dXJuIDA7XG4gIHJldHVybiBkZWxheXNNc1tNYXRoLm1pbihNYXRoLm1heCgwLCBhdHRlbXB0KSwgZGVsYXlzTXMubGVuZ3RoIC0gMSldITtcbn1cblxuLyoqXG4gKiBQZXItaXRlcmF0aW9uIGNvbnRleHQgaGFuZGVkIHRvIHtAbGluayBQb2xsUHJvZHVjZXJ9IGFuZCB0aGVcbiAqIHByZWRpY2F0ZSBvbiBlYWNoIHN0ZXAgb2YgYSB7QGxpbmsgcG9sbH0gbG9vcC4gQnVuZGxlcyB0aGVcbiAqIGl0ZXJhdGlvbiBtZXRhZGF0YSBzbyB0aGUgY2FsbCBzaWduYXR1cmVzIHN0YXkgc3RhYmxlIGFzIGBwb2xsYFxuICogZ3Jvd3MgYWRkaXRpb25hbCBmaWVsZHMuXG4gKlxuICogYHNpZ25hbGAgaXMgb3duZWQgYnkgYHBvbGxgOiBpdCB0cmFja3MgdGhlIGV4dGVybmFsXG4gKiBgUG9sbE9wdGlvbnMuc2lnbmFsYCAod2hlbiBzdXBwbGllZCkgYW5kIGFsc28gZmlyZXMgd2hlbiB0aGVcbiAqIGNvbnN1bWVyIGJyZWFrcyBvdXQgb2YgdGhlIGxvb3AsIHNvIHByb2R1Y2VycyBjYW4gZm9yd2FyZCBpdCB0b1xuICogYW55IGluLWZsaWdodCB3b3JrIChgZmV0Y2hgLCBTREsgY2FsbHMsIGV0Yy4pIGFuZCBoYXZlIGEgc2luZ2xlXG4gKiBjYW5jZWxsYXRpb24gc291cmNlIHRlYXIgZG93biBib3RoIHRoZSByZXF1ZXN0IGFuZCB0aGUgbG9vcC5cbiAqXG4gKiBgYXR0cmlidXRlc2AgaXMgYSBtdXRhYmxlIHNjcmF0Y2hwYWQgc2hhcmVkIGFjcm9zcyBldmVyeVxuICogaXRlcmF0aW9uIG9mIGEgc2luZ2xlIGBwb2xsYCBydW4uIFRoZSBzYW1lIG9iamVjdCByZWZlcmVuY2UgaXNcbiAqIHBhc3NlZCBlYWNoIGNhbGwgc28gd3JpdGVzIGZyb20gb25lIGl0ZXJhdGlvbiBhcmUgdmlzaWJsZSB0byB0aGVcbiAqIG5leHQgLSB1c2VmdWwgZm9yIHN0YXNoaW5nIHBlci1sb29wIHN0YXRlIChyZXRyeSBjb3VudGVycywgc3RhcnRcbiAqIHRpbWVzdGFtcHMsIGFueXRoaW5nIHlvdSdkIG90aGVyd2lzZSBjbG9zZSBvdmVyIHZpYSBhIGxldCkuXG4gKiBHZW5lcmljIGBBYCBsZXRzIGNhbGxlcnMgdHlwZSB0aGUgYmFnOyBkZWZhdWx0cyB0b1xuICogYFJlY29yZDxzdHJpbmcsIHVua25vd24+YC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQb2xsQ29udGV4dDxULCBBID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgLyoqIFplcm8tYmFzZWQgaXRlcmF0aW9uIGluZGV4IChgMGAgb24gdGhlIGZpcnN0IGNhbGwpLiAqL1xuICBhdHRlbXB0OiBudW1iZXI7XG4gIC8qKiBWYWx1ZSB5aWVsZGVkIG9uIHRoZSBwcmlvciBpdGVyYXRpb247IGB1bmRlZmluZWRgIG9uIHRoZSBmaXJzdC4gKi9cbiAgcHJldmlvdXM6IFQgfCB1bmRlZmluZWQ7XG4gIC8qKiBDYW5jZWxsYXRpb24gaGFuZGxlLiBBbHdheXMgZGVmaW5lZDsgZm9yd2FyZCB0byBpbi1mbGlnaHQgd29yay4gKi9cbiAgc2lnbmFsOiBBYm9ydFNpZ25hbDtcbiAgLyoqIFBlci1ydW4gbXV0YWJsZSBzY3JhdGNocGFkIHNoYXJlZCBhY3Jvc3MgaXRlcmF0aW9ucy4gKi9cbiAgYXR0cmlidXRlczogQTtcbn1cblxuLyoqIE9uZSBzdGVwIG9mIGEge0BsaW5rIHBvbGx9IGxvb3AuIFNlZSB7QGxpbmsgUG9sbENvbnRleHR9LiAqL1xuZXhwb3J0IHR5cGUgUG9sbFByb2R1Y2VyPFQsIEEgPSBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4gPSAoXG4gIGN0eDogUG9sbENvbnRleHQ8VCwgQT4sXG4pID0+IFQgfCBQcm9taXNlTGlrZTxUPjtcblxuZXhwb3J0IGludGVyZmFjZSBQb2xsT3B0aW9uczxULCBBID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgLyoqIE1pbGxpc2Vjb25kcyB0byB3YWl0IGJldHdlZW4gcG9sbHMuICovXG4gIGludGVydmFsTXM6IG51bWJlcjtcbiAgLyoqXG4gICAqIFByZWRpY2F0ZSBldmFsdWF0ZWQgYWdhaW5zdCBlYWNoIHlpZWxkZWQgdmFsdWU6IHJldHVybiBgdHJ1ZWAgdG9cbiAgICoga2VlcCBpdCwgYGZhbHNlYCB0byBza2lwIGl0ICh3aXRob3V0IHN0b3BwaW5nIHRoZSBsb29wKS4gTWF5IGJlXG4gICAqIHN5bmMgb3IgYXN5bmMgLSBhIGBQcm9taXNlTGlrZTxib29sZWFuPmAgaXMgYXdhaXRlZCBiZWZvcmUgdGhlXG4gICAqIGRlY2lzaW9uIGlzIG1hZGUuIFJlY2VpdmVzIHRoZSBzYW1lIHtAbGluayBQb2xsQ29udGV4dH0gYXMgdGhlXG4gICAqIHByb2R1Y2VyIChzYW1lIGBzaWduYWxgLCBzYW1lIGBhdHRyaWJ1dGVzYCBiYWcpLiBUaGUgc3BlY2lhbFxuICAgKiB2YWx1ZSBgXCJkaXN0aW5jdFwiYCBza2lwcyBhIHZhbHVlIHRoYXQgZGVlcC1lcXVhbHMgdGhlIHByZXZpb3VzXG4gICAqIG9uZS5cbiAgICovXG4gIGZpbHRlcj86ICgodmFsdWU6IFQsIGN0eDogUG9sbENvbnRleHQ8VCwgQT4pID0+IGJvb2xlYW4gfCBQcm9taXNlTGlrZTxib29sZWFuPikgfCBcImRpc3RpbmN0XCI7XG4gIC8qKlxuICAgKiBQcmVkaWNhdGUgZXZhbHVhdGVkIGFnYWluc3QgZWFjaCB5aWVsZGVkIHZhbHVlOiByZXR1cm4gYHRydWVgIHRvXG4gICAqIGtlZXAgcG9sbGluZywgYGZhbHNlYCB0byBzdG9wLiBNYXkgYmUgc3luYyBvciBhc3luYy4gT21pdCB0byBwb2xsXG4gICAqIGZvcmV2ZXIgKHRoZSBjb25zdW1lciBzdG9wcyBieSBicmVha2luZyBvdXQgb2YgdGhlIGxvb3Agb3IgYnlcbiAgICogYWJvcnRpbmcgYHNpZ25hbGApLlxuICAgKi9cbiAgcHJlZGljYXRlPzogKHZhbHVlOiBULCBjdHg6IFBvbGxDb250ZXh0PFQsIEE+KSA9PiBib29sZWFuIHwgUHJvbWlzZUxpa2U8Ym9vbGVhbj47XG4gIC8qKlxuICAgKiBFeHRlcm5hbCBjYW5jZWxsYXRpb24gaGFuZGxlLiBUaWVkIGludG8gdGhlIGludGVybmFsIHNpZ25hbCB0aGF0XG4gICAqIGBwb2xsYCBoYW5kcyB0byBgcHJvZHVjZXJgLCBzbyBhYm9ydGluZyBpdCB0ZWFycyBkb3duIGJvdGggdGhlXG4gICAqIGluLWZsaWdodCByZXF1ZXN0IGFuZCB0aGUgaW50ZXItcG9sbCBzbGVlcC5cbiAgICovXG4gIHNpZ25hbD86IEFib3J0U2lnbmFsO1xuICAvKipcbiAgICogSGFyZCB1cHBlciBib3VuZCBvbiB0aGUgdG90YWwgbGlmZXRpbWUgb2YgdGhlIHBvbGwgbG9vcCwgaW5cbiAgICogbWlsbGlzZWNvbmRzLiBXaGVuIHRoZSBidWRnZXQgZWxhcHNlcywgYHBvbGxgIGFib3J0cyBpdHMgaW50ZXJuYWxcbiAgICogc2lnbmFsIHNvIHRoZSBpbi1mbGlnaHQgcHJvZHVjZXIgYW5kIGludGVyLXBvbGwgc2xlZXAgYm90aCB0ZWFyXG4gICAqIGRvd24gcHJvbXB0bHksIGFuZCB0aGUgbG9vcCB0aHJvd3MgdGhlIGBUaW1lb3V0RXJyb3JgXG4gICAqIGBET01FeGNlcHRpb25gIHByb2R1Y2VkIGJ5IGBBYm9ydFNpZ25hbC50aW1lb3V0KHRpbWVvdXRNcylgLiBUaGVcbiAgICogYnVkZ2V0IHN0YXJ0cyB0aWNraW5nIHRoZSBtb21lbnQgdGhlIGdlbmVyYXRvciBpcyBjcmVhdGVkLlxuICAgKi9cbiAgdGltZW91dE1zPzogbnVtYmVyO1xuICAvKipcbiAgICogSW5pdGlhbCB2YWx1ZSBmb3IgYGN0eC5hdHRyaWJ1dGVzYC4gRGVmYXVsdHMgdG8gYHt9YC4gVGhlIHNhbWVcbiAgICogb2JqZWN0IGlzIHJldXNlZCBhY3Jvc3MgaXRlcmF0aW9ucywgc28gY2FsbGVycyBjYW4gcHJlLXBvcHVsYXRlXG4gICAqIGZpZWxkcyAodGltZXJzLCByZXRyeSBjb3VudGVycywgZXRjLikgYW5kIHRoZSBwcm9kdWNlciAvXG4gICAqIHByZWRpY2F0ZSBjYW4gbXV0YXRlIHRoZW0gaW4gcGxhY2UuXG4gICAqL1xuICBhdHRyaWJ1dGVzPzogQTtcbn1cblxuLyoqXG4gKiBBc3luYyBpdGVyYWJsZSB0aGF0IGRyaXZlcyBhIHBlcmlvZGljIHBvbGwuIEVhY2ggaXRlcmF0aW9uOlxuICpcbiAqICAgMS4gQnVpbGRzIGEge0BsaW5rIFBvbGxDb250ZXh0fSAoYGF0dGVtcHRgLCBgcHJldmlvdXNgLCBgc2lnbmFsYCxcbiAqICAgICAgc2hhcmVkIGBhdHRyaWJ1dGVzYCkgYW5kIGNhbGxzIGBwcm9kdWNlcihjdHgpYDsgeWllbGRzIHRoZVxuICogICAgICByZXNvbHZlZCB2YWx1ZSAoc3ViamVjdCB0byBgZmlsdGVyYCkuXG4gKiAgIDIuIEV2YWx1YXRlcyBgb3B0aW9ucy5wcmVkaWNhdGUodmFsdWUsIGN0eClgOyBzdG9wcyB3aGVuIGl0XG4gKiAgICAgIHJldHVybnMgKG9yIHJlc29sdmVzIHRvKSBgZmFsc2VgLlxuICogICAzLiBTbGVlcHMgYG9wdGlvbnMuaW50ZXJ2YWxNc2AgYmVmb3JlIHRoZSBuZXh0IGF0dGVtcHQuXG4gKlxuICogVGhlIGZpcnN0IGNhbGwgcnVucyBpbW1lZGlhdGVseSAobm8gbGVhZGluZyBzbGVlcCkgc28gdGhlIGNvbnN1bWVyXG4gKiBzZWVzIGEgdmFsdWUgd2l0aG91dCB3YWl0aW5nIGFuIGludGVydmFsLiBFcnJvcnMgdGhyb3duIGJ5XG4gKiBgcHJvZHVjZXJgIHByb3BhZ2F0ZSB0aHJvdWdoIHRoZSBnZW5lcmF0b3IuXG4gKlxuICogYHBvbGxgIGFsd2F5cyBjcmVhdGVzIGFuIGludGVybmFsIGBBYm9ydENvbnRyb2xsZXJgIGFuZCBleHBvc2VzXG4gKiBgaW50ZXJuYWwuc2lnbmFsYCBhcyBgY3R4LnNpZ25hbGAsIHNvIHByb2R1Y2VycyBjYW4gcmVseSBvbiBhXG4gKiBkZWZpbmVkIHNpZ25hbCB3aXRob3V0IGEgbnVsbGlzaCBjaGVjay4gVGhlIGV4dGVybmFsXG4gKiBgb3B0aW9ucy5zaWduYWxgIGlzIHRpZWQgaW4sIGFuZCBhIGB0cnkvZmluYWxseWAgYWJvcnRzIHRoZVxuICogaW50ZXJuYWwgc2lnbmFsIHdoZW4gdGhlIGNvbnN1bWVyIGJyZWFrcyBvdXQgb2YgdGhlIGBmb3IgYXdhaXRgXG4gKiAob3IgdGhlIGxvb3AgdGhyb3dzKSwgc28gYW55IHByb2R1Y2VyIHdvcmsgc3RpbGwgaG9sZGluZyB0aGVcbiAqIHNpZ25hbCBzZWVzIHRoZSBjYW5jZWxsYXRpb24gdG9vLlxuICpcbiAqIEBleGFtcGxlXG4gKiBmb3IgYXdhaXQgKGNvbnN0IG1zZyBvZiBwb2xsKFxuICogICBhc3luYyAoeyBzaWduYWwgfSkgPT5cbiAqICAgICBjbGllbnQuZ2VuaWUuZ2V0TWVzc2FnZSh7IC4uLiB9LCB7IGFib3J0U2lnbmFsOiBzaWduYWwgfSksXG4gKiAgIHtcbiAqICAgICBpbnRlcnZhbE1zOiAyNTAsXG4gKiAgICAgcHJlZGljYXRlOiAobSkgPT4gIVRFUk1JTkFMX1NUQVRVU0VTLmhhcyhtLnN0YXR1cyksXG4gKiAgICAgc2lnbmFsOiBjb250cm9sbGVyLnNpZ25hbCxcbiAqICAgfSxcbiAqICkpIHtcbiAqICAgcmVuZGVyKG1zZyk7XG4gKiB9XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiogcG9sbDxULCBBID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KFxuICBwcm9kdWNlcjogUG9sbFByb2R1Y2VyPFQsIEE+LFxuICBvcHRpb25zOiBQb2xsT3B0aW9uczxULCBBPixcbik6IEFzeW5jR2VuZXJhdG9yPFQsIHZvaWQsIHZvaWQ+IHtcbiAgY29uc3QgeyBpbnRlcnZhbE1zLCBwcmVkaWNhdGUsIHNpZ25hbCwgYXR0cmlidXRlcywgdGltZW91dE1zIH0gPSBvcHRpb25zO1xuICBjb25zdCBjb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBpZiAoc2lnbmFsKSB0aWVBYm9ydFNpZ25hbChjb250cm9sbGVyLCBzaWduYWwpO1xuICBpZiAodGltZW91dE1zICE9PSB1bmRlZmluZWQpIHtcbiAgICB0aWVBYm9ydFNpZ25hbChjb250cm9sbGVyLCBBYm9ydFNpZ25hbC50aW1lb3V0KHRpbWVvdXRNcykpO1xuICB9XG4gIC8vIFNpbmdsZSBzaGFyZWQgYXR0cmlidXRlcyBvYmplY3Qgc28gd3JpdGVzIGZyb20gb25lIGl0ZXJhdGlvbiBhcmVcbiAgLy8gdmlzaWJsZSBvbiB0aGUgbmV4dC4gYHt9IGFzIEFgIGlzIHNhZmUgYmVjYXVzZSBlaXRoZXIgdGhlIGNhbGxlclxuICAvLyBzdXBwbGllZCBgYXR0cmlidXRlc2AgKHR5cGVkKSBvciBgQWAgZGVmYXVsdGVkIHRvIHRoZSB1bmtub3duXG4gIC8vIHJlY29yZCBzaGFwZSAoaW4gd2hpY2ggY2FzZSBge31gIHNhdGlzZmllcyBpdCkuXG4gIGNvbnN0IHNoYXJlZEF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzID8/ICh7fSBhcyBBKTtcbiAgdHJ5IHtcbiAgICBsZXQgcHJldmlvdXM6IFQgfCB1bmRlZmluZWQ7XG4gICAgZm9yIChsZXQgYXR0ZW1wdCA9IDA7IDsgYXR0ZW1wdCsrKSB7XG4gICAgICBjb250cm9sbGVyLnNpZ25hbC50aHJvd0lmQWJvcnRlZCgpO1xuICAgICAgY29uc3QgY3R4OiBQb2xsQ29udGV4dDxULCBBPiA9IHtcbiAgICAgICAgYXR0ZW1wdCxcbiAgICAgICAgcHJldmlvdXMsXG4gICAgICAgIHNpZ25hbDogY29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIGF0dHJpYnV0ZXM6IHNoYXJlZEF0dHJpYnV0ZXMsXG4gICAgICB9O1xuICAgICAgY29uc3QgdmFsdWUgPSBhd2FpdCBwcm9kdWNlcihjdHgpO1xuICAgICAgaWYgKG9wdGlvbnMuZmlsdGVyKSB7XG4gICAgICAgIGlmIChvcHRpb25zLmZpbHRlciA9PT0gXCJkaXN0aW5jdFwiKSB7XG4gICAgICAgICAgaWYgKGRlZXBFcXVhbChwcmV2aW91cywgdmFsdWUpKSB7XG4gICAgICAgICAgICBhd2FpdCBzbGVlcChpbnRlcnZhbE1zLCBjb250cm9sbGVyLnNpZ25hbCk7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoIShhd2FpdCBvcHRpb25zLmZpbHRlcih2YWx1ZSwgY3R4KSkpIHtcbiAgICAgICAgICBhd2FpdCBzbGVlcChpbnRlcnZhbE1zLCBjb250cm9sbGVyLnNpZ25hbCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHlpZWxkIHZhbHVlO1xuICAgICAgaWYgKHByZWRpY2F0ZSAmJiAhKGF3YWl0IHByZWRpY2F0ZSh2YWx1ZSwgY3R4KSkpIHJldHVybjtcbiAgICAgIGF3YWl0IHNsZWVwKGludGVydmFsTXMsIGNvbnRyb2xsZXIuc2lnbmFsKTtcbiAgICAgIHByZXZpb3VzID0gdmFsdWU7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIGNvbnRyb2xsZXIuYWJvcnQoKTtcbiAgfVxufVxuXG4vKipcbiAqIFRpZSBhIGNoaWxkIGBBYm9ydENvbnRyb2xsZXJgIHRvIGEgcGFyZW50IHNpZ25hbC4gVGhlIGNoaWxkIGFib3J0c1xuICogd2hlbmV2ZXIgdGhlIHBhcmVudCBhYm9ydHM7IGFib3J0aW5nIHRoZSBjaGlsZCBkb2VzIG5vdCBhZmZlY3QgdGhlXG4gKiBwYXJlbnQgKHNvIGEgZmV0Y2gtbGV2ZWwgY2FuY2VsIGRvZXNuJ3QgdGVhciBkb3duIHRoZSBtYWluIHBvbGwgbG9vcCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0aWVBYm9ydFNpZ25hbChjaGlsZDogQWJvcnRDb250cm9sbGVyLCBwYXJlbnQ/OiBBYm9ydFNpZ25hbCk6IHZvaWQge1xuICBpZiAoIXBhcmVudCkge1xuICAgIHJldHVybjtcbiAgfSBlbHNlIGlmIChwYXJlbnQuYWJvcnRlZCkge1xuICAgIGNoaWxkLmFib3J0KHBhcmVudC5yZWFzb24pO1xuICAgIHJldHVybjtcbiAgfVxuICBwYXJlbnQuYWRkRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsICgpID0+IGNoaWxkLmFib3J0KHBhcmVudC5yZWFzb24pLCB7XG4gICAgb25jZTogdHJ1ZSxcbiAgfSk7XG59XG5cbi8qKlxuICogQ29tYmluZSBzZXZlcmFsIG9wdGlvbmFsIGNhbmNlbGxhdGlvbiBzb3VyY2VzIGludG8gb25lIHNpZ25hbCB0aGF0IGFib3J0c1xuICogYXMgc29vbiBhcyBhbnkgb2YgdGhlbSBkb2VzLlxuICpcbiAqIFRoZSB1c3VhbCBjYWxsZXIgaXMgYW4gb3BlcmF0aW9uIHRoYXQgaGFzIHRvIGhvbm9yIG1vcmUgdGhhbiBvbmUgc291cmNlIGF0XG4gKiBvbmNlIC0gYSBjYWxsZXIncyBvd24gc2lnbmFsIChhIGNsb3NlZCBjb25uZWN0aW9uLCBhbiBhZ2VudCBydW4gYmVpbmdcbiAqIGNhbmNlbGxlZCkgcGx1cyBvbmUgZGVyaXZlZCBmcm9tIGEgdGltZW91dCAtIHdoZXJlIHRoZSBhd2FpdGVkIEkvTyBhY2NlcHRzXG4gKiBvbmx5IGEgc2luZ2xlIHNpZ25hbC4gQWJzZW50IHNvdXJjZXMgYXJlIGlnbm9yZWQsIGFuZCBhIGxvbmUgc2lnbmFsIGlzXG4gKiByZXR1cm5lZCBhcy1pcyBzbyB0aGUgY29tbW9uIHBhdGggYWxsb2NhdGVzIG5vdGhpbmcuIFJldHVybnMgYHVuZGVmaW5lZGBcbiAqIG9ubHkgd2hlbiBldmVyeSBpbnB1dCBpcyBhYnNlbnQsIHdoaWNoIGNhbGxlcnMgY2FuIHBhc3Mgc3RyYWlnaHQgdGhyb3VnaFxuICogdG8gYW4gb3B0aW9uYWwgYHNpZ25hbGAgcGFyYW1ldGVyLlxuICpcbiAqIEFib3J0aW5nIGFuIGlucHV0IGFib3J0cyB0aGUgcmVzdWx0IChjYXJyeWluZyB0aGF0IGlucHV0J3MgYHJlYXNvbmApO1xuICogbm90aGluZyBwcm9wYWdhdGVzIGJhY2sgdGhlIG90aGVyIHdheS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYXdhaXQgZmV0Y2godXJsLCB7IHNpZ25hbDogY29tYmluZUFib3J0U2lnbmFscyhyZXEuc2lnbmFsLCB0aW1lb3V0LnNpZ25hbCkgfSk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21iaW5lQWJvcnRTaWduYWxzKFxuICAuLi5zaWduYWxzOiAoQWJvcnRTaWduYWwgfCB1bmRlZmluZWQpW11cbik6IEFib3J0U2lnbmFsIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcHJlc2VudCA9IHNpZ25hbHMuZmlsdGVyKChzaWduYWwpOiBzaWduYWwgaXMgQWJvcnRTaWduYWwgPT4gc2lnbmFsICE9PSB1bmRlZmluZWQpO1xuICBpZiAocHJlc2VudC5sZW5ndGggPD0gMSkgcmV0dXJuIHByZXNlbnRbMF07XG4gIGNvbnN0IGNvbWJpbmVkID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICBmb3IgKGNvbnN0IHNpZ25hbCBvZiBwcmVzZW50KSB0aWVBYm9ydFNpZ25hbChjb21iaW5lZCwgc2lnbmFsKTtcbiAgcmV0dXJuIGNvbWJpbmVkLnNpZ25hbDtcbn1cblxuLyoqXG4gKiBQcm9taXNpZmllZCBgc2V0VGltZW91dGAgdGhhdCB3YWtlcyB1cCBlYXJseSAoYW5kIHJlamVjdHMgd2l0aFxuICogYHNpZ25hbC5yZWFzb25gKSB3aGVuIGBzaWduYWxgIGFib3J0cyBtaWQtd2FpdC4gU2hvcnQtY2lyY3VpdHMgdG8gYVxuICogcmVqZWN0ZWQgcHJvbWlzZSB3aGVuIHRoZSBzaWduYWwgaXMgYWxyZWFkeSBhYm9ydGVkIG9uIGVudHJ5LCBzbyB0aGVcbiAqIGFib3J0IHBhdGggaXMgY29uc2lzdGVudCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHdhaXQgYWN0dWFsbHlcbiAqIHN0YXJ0ZWQuXG4gKlxuICogVXNlIGFzIHRoZSBidWlsZGluZyBibG9jayBmb3IgYW55IFwid2FpdCwgYnV0IGNhbmNlbCBjbGVhbmx5XCIgcGF0dGVybiAtXG4gKiBpbnRlci1wb2xsIGJhY2tvZmYsIHBhY2luZyBsb29wcywgcmV0cnkgdGltZXJzLCBsb25nLXBvbGwgYnVkZ2V0cyAtIHNvXG4gKiBjYW5jZWxsYXRpb24gYWx3YXlzIHJlamVjdHMgd2l0aCB0aGUgY2FsbGVyJ3MgYHNpZ25hbC5yZWFzb25gIHJhdGhlclxuICogdGhhbiBzaWxlbnRseSByZXNvbHZpbmcgYWZ0ZXIgdGhlIHRpbWVyIGV4cGlyZXMuXG4gKlxuICogQGV4YW1wbGVcbiAqIGF3YWl0IHNsZWVwKDI1MCwgcmVxLnNpZ25hbCk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbGVlcChtczogbnVtYmVyLCBzaWduYWw/OiBBYm9ydFNpZ25hbCk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoc2lnbmFsPy5hYm9ydGVkKSByZXR1cm4gUHJvbWlzZS5yZWplY3Qoc2lnbmFsLnJlYXNvbik7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3Qgb25BYm9ydCA9ICgpOiB2b2lkID0+IHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICByZWplY3Qoc2lnbmFsIS5yZWFzb24pO1xuICAgIH07XG4gICAgY29uc3QgdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHNpZ25hbD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImFib3J0XCIsIG9uQWJvcnQpO1xuICAgICAgcmVzb2x2ZSgpO1xuICAgIH0sIG1zKTtcbiAgICBzaWduYWw/LmFkZEV2ZW50TGlzdGVuZXIoXCJhYm9ydFwiLCBvbkFib3J0LCB7IG9uY2U6IHRydWUgfSk7XG4gIH0pO1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"projen": "projen"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@dbx-tools/test-polyglot": "0.6.
|
|
21
|
+
"@dbx-tools/test-polyglot": "0.6.123",
|
|
22
22
|
"@types/bun": "^1.3.14",
|
|
23
23
|
"@types/node": "^24.6.0",
|
|
24
24
|
"consola": "^3.4.2",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"./package.json": "./package.json"
|
|
45
45
|
}
|
|
46
46
|
},
|
|
47
|
-
"version": "0.6.
|
|
47
|
+
"version": "0.6.123",
|
|
48
48
|
"types": "./lib/index.d.ts",
|
|
49
49
|
"type": "module",
|
|
50
50
|
"exports": {
|
package/src/async.ts
CHANGED
|
@@ -8,6 +8,16 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { deepEqual } from "./object.ts";
|
|
10
10
|
|
|
11
|
+
const DEFAULT_RETRY_DELAYS_MS = [1_000, 2_000, 5_000, 10_000, 30_000] as const;
|
|
12
|
+
|
|
13
|
+
export function boundedRetryDelay(
|
|
14
|
+
attempt: number,
|
|
15
|
+
delaysMs: readonly number[] = DEFAULT_RETRY_DELAYS_MS,
|
|
16
|
+
): number {
|
|
17
|
+
if (!delaysMs.length) return 0;
|
|
18
|
+
return delaysMs[Math.min(Math.max(0, attempt), delaysMs.length - 1)]!;
|
|
19
|
+
}
|
|
20
|
+
|
|
11
21
|
/**
|
|
12
22
|
* Per-iteration context handed to {@link PollProducer} and the
|
|
13
23
|
* predicate on each step of a {@link poll} loop. Bundles the
|