{"version":3,"sources":["jsdelivr-header.js","/npm/repeatable-promise@1.9.3/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACLA,SAAS,QACL,IAAI,EAAK,EAWT,OATA,KAAO,IAAI,SAAQ,CAAC,EAAS,KACzB,EAAM,EACN,EAAM,CAAM,IAGhB,KAAK,QAAU,EACf,KAAK,UAAY,EACjB,KAAK,OAAS,EACd,KAAK,KAAO,EACL,IACX,CAGA,SAAS,MAAM,EAAG,GACd,IACI,EADA,EAAK,IAAI,MAQb,OANA,EAAG,MAAK,SAAW,OAAM,SAAW,SAAQ,KAAQ,aAAa,EAAE,IACnE,EAAG,MAAQ,CAAC,EAAG,KACX,aAAa,IACT,GAAQ,GAAH,KAAQ,EAAK,YAAW,KAAQ,EAAG,QAAQ,EAAG,GAAK,GAAE,EAElE,EAAG,MAAM,EAAE,GACJ,CAEX,CAGA,SAAS,QAAQ,EAAG,GAChB,IACI,EADA,EAAK,IAAI,MAQb,OANA,EAAG,MAAK,SAAW,OAAM,SAAW,SAAQ,KAAQ,aAAa,EAAE,IACnE,EAAG,MAAQ,CAAC,EAAG,KACX,aAAa,IACT,GAAU,GAAL,KAAU,EAAK,YAAW,KAAQ,EAAG,KAAK,EAAG,GAAK,GAAG,EAElE,EAAG,MAAM,EAAG,GACL,CAEX,CAGA,SAAS,QACL,IAAI,EAAW,QAAQ,UAEvB,KAAK,QAAW,IACZ,IAAI,EAAK,IAAI,MAQb,OAPA,EAAG,OAAM,SAEL,EADA,aAAa,QACF,EAAS,MAAK,IAAe,IAAK,KAAK,EAAG,QAAS,EAAG,MAGtD,EAAS,KAAK,GAAG,KAAK,EAAG,QAAS,EAAG,MAE7C,EAGf,CAGA,MAAM,QAAU,KAEZ,IAAI,EAAU,IAAI,MAsDlB,OApDA,EAAQ,OAAU,IACd,EAAQ,UAAY,UACpB,EAAQ,QAAQ,GACT,EAAQ,WAGnB,EAAQ,UAAa,IACjB,EAAQ,QAAQ,EAAG,EAIvB,EAAQ,KAAQ,IACZ,EAAQ,OAAO,EAAG,EAItB,EAAQ,MAAQ,CAAC,EAAI,EAAG,EAAS,KACzB,EAAK,OACT,EAAE,GAEF,EAAQ,UACH,MAAM,IACC,EAAQ,UAAU,UAClB,EAAQ,UAAU,MAAM,EAAI,EAAG,EAAS,GAErC,EAAQ,QAAQ,EAAI,IAE9B,OAAO,IAAS,EAAQ,OAAO,EAAE,IAAG,EAG7C,EAAQ,UAAa,IAEjB,IAAI,EAAU,IAAI,MACd,EAAO,CAAC,EAcZ,OAZA,EACK,MAAK,KAAQ,EAAK,MAAO,KACzB,OAAM,SAEX,EACK,MAAM,IACC,EAAQ,UACR,EAAQ,MAAM,EAAI,EAAG,EAAS,GAE3B,EAAQ,QAAQ,EAAI,IAE9B,OAAO,IAAS,EAAQ,OAAO,EAAE,IAC/B,GAGX,EAAQ,SAAY,GAAe,EAAQ,KAAK,GAEzC,CAAO,EAIlB,SAAS,QAEL,IAAI,EAAQ,QAAQ,UAEhB,EAAS,UAET,EAAO,IAAI,MAgDf,OA9CA,EAAK,OAAU,GACX,EAAQ,EAAM,MAAK,KACf,EAAS,EAAO,OAAO,EAAE,IAKjC,EAAK,UAAa,GACP,EAAO,UAAU,GAG5B,EAAK,SAAY,GACN,EAAO,SAAS,GAI3B,EAAK,MACA,IACG,EAAQ,EAAM,MAAK,KACf,EAAO,UAAU,EAAG,GACvB,IAEJ,IACG,EAAQ,EAAM,MAAK,KACf,EAAO,KAAK,EAAC,GAChB,IAIT,EAAK,UAAa,GACd,EAAQ,EAAM,MAAK,KACf,EAAO,UAAU,GACjB,EAAK,QAAQ,EAAE,IAKvB,EAAK,KAAQ,GACT,EAAQ,EAAM,MAAK,KACf,EAAO,KAAK,GACZ,EAAK,KAAK,EAAE,IAMb,CAEX,CAKA,OAAO,QAAU,CACb,YACA,YACA,YACA,gBACA","file":"/npm/repeatable-promise@1.9.3/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/repeatable-promise@1.9.3/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\r\nfunction Defer() {\r\n    var res, rej;\r\n\r\n    prom = new Promise((resolve, reject) => {\r\n        res = resolve;\r\n        rej = reject;\r\n    });\r\n\r\n    prom.resolve = res;\r\n    prom.terminate = res;\r\n    prom.reject = rej;\r\n    prom.fail = rej;\r\n    return prom\r\n}\r\n\r\n\r\nfunction Delay(d, val) {\r\n    var df = new Defer()\r\n    var tm \r\n    df.then(() => { }).catch(() => { }).finally(() => { clearTimeout(tm) } )\r\n    df.reset = (d, val) =>{\r\n        clearTimeout(tm)\r\n        if (d || d==0) { tm = setTimeout(() => { df.resolve(val) }, d)}      \r\n    }\r\n    df.reset(d,val)\r\n    return df\r\n\r\n}\r\n\r\n\r\nfunction TimeOut(d, val) {\r\n    var df = new Defer()\r\n    var tm\r\n    df.then(() => { }).catch(() => { }).finally(() => { clearTimeout(tm) })\r\n    df.reset = (d, val) => {\r\n        clearTimeout(tm)\r\n        if (d || d == 0) { tm = setTimeout(() => { df.fail(val) }, d) }\r\n    }\r\n    df.reset(d, val)\r\n    return df\r\n\r\n}\r\n\r\n\r\nfunction Queue() {\r\n    var theQueue = Promise.resolve()\r\n\r\n    this.enQueue = (f) => {\r\n        var df = new Defer()\r\n        df.catch(() => { })\r\n        if (f instanceof Promise) {\r\n            theQueue = theQueue.then(() => { return f }).then(df.resolve, df.fail)\r\n        }\r\n        else {\r\n            theQueue = theQueue.then(f).then(df.resolve, df.fail)\r\n        }\r\n        return df\r\n    }\r\n\r\n}\r\n\r\n\r\nconst inCycle = () => {\r\n\r\n    var promise = new Defer();\r\n\r\n    promise.repeat = (pl) => {\r\n        promise.successor = inCycle();\r\n        promise.resolve(pl)\r\n        return promise.successor\r\n    }\r\n\r\n    promise.terminate = (val) => {\r\n        promise.resolve(val)\r\n    }\r\n\r\n\r\n    promise.fail = (val) => {\r\n        promise.reject(val)\r\n    }\r\n\r\n\r\n    promise.reset = (pl, f, tracker, repo) => {\r\n        if (repo.kill) { return }\r\n        f(pl)\r\n\r\n        promise.successor\r\n            .then((pl) => {\r\n                if (promise.successor.successor) {\r\n                    promise.successor.reset(pl, f, tracker, repo)\r\n                }\r\n                else { tracker.resolve(pl) }\r\n            })\r\n            .catch((pl) => { tracker.reject(pl) })\r\n    }\r\n\r\n    promise.thenAgain = (f) => {\r\n\r\n        let tracker = new Defer();\r\n        let repo = {}\r\n\r\n        tracker\r\n            .then(() => { repo.kill = true })\r\n            .catch(() => { })\r\n\r\n        promise\r\n            .then((pl) => {\r\n                if (promise.successor) {\r\n                    promise.reset(pl, f, tracker, repo)\r\n                }\r\n                else { tracker.resolve(pl) }\r\n            })\r\n            .catch((pl) => { tracker.reject(pl) })\r\n        return tracker\r\n    }\r\n\r\n    promise.thenOnce = (f) => { return promise.then(f) }\r\n\r\n    return promise;\r\n}\r\n\r\n\r\nfunction Cycle() {\r\n\r\n    var queue = Promise.resolve()\r\n\r\n    var cycler = inCycle();\r\n\r\n    var prom = new Defer()\r\n\r\n    prom.repeat = (pl) => {\r\n        queue = queue.then(() => {\r\n            cycler = cycler.repeat(pl)\r\n        })\r\n        return queue\r\n    }\r\n\r\n    prom.thenAgain = (f) => {\r\n        return cycler.thenAgain(f)\r\n    }\r\n\r\n    prom.thenOnce = (f) => {\r\n        return cycler.thenOnce(f)\r\n    }\r\n\r\n\r\n    prom.then(\r\n        (val) => {\r\n            queue = queue.then(() => {\r\n                cycler.terminate(val)\r\n            })\r\n        },\r\n        (v) => {\r\n            queue = queue.then(() => {\r\n                cycler.fail(v)\r\n            })\r\n        }\r\n    )\r\n\r\n    prom.terminate = (pl) => {\r\n        queue = queue.then(() => {\r\n            cycler.terminate(pl)\r\n            prom.resolve(pl)\r\n        })\r\n        return queue\r\n    }\r\n\r\n    prom.fail = (pl) => {\r\n        queue = queue.then(() => {\r\n            cycler.fail(pl)\r\n            prom.fail(pl)\r\n        })\r\n        return queue\r\n    }\r\n\r\n\r\n    return prom\r\n\r\n}\r\n\r\n\r\n\r\n\r\nmodule.exports = {\r\n    Defer,\r\n    Cycle,\r\n    Delay,\r\n    TimeOut,\r\n    Queue\r\n}\r\n\r\n"]}