{"version":3,"sources":["jsdelivr-header.js","/npm/mutex-js@1.1.5/lib/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,MAAM,MACJ,WAAA,GACE,KAAK,WAAa,EAClB,KAAK,kBAAoB,EAC3B,CAEA,IAAA,CAAK,GACH,MAQM,EAAU,KACd,MAAM,EAAiB,KAAK,kBAAkB,QAC1C,GACF,MAEA,KAAK,UAAU,EAGnB,MAhBe,MACb,MAAM,EAA2B,IAApB,KAAK,WACd,QAAQ,UACR,IAAI,SAAS,GAAY,KAAK,kBAAkB,KAAK,KAEzD,QADE,KAAK,WACA,CAAI,EAWN,GACN,KAAK,GACL,MAAK,IACJ,IACO,KAER,OAAM,IACL,IACO,QAAQ,OAAO,KAE1B,EAGF,OAAO,QAAU","file":"/npm/mutex-js@1.1.5/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/mutex-js@1.1.5/lib/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","'use strict';\r\n\r\nclass Mutex {\r\n  constructor() {\r\n    this._callCount = 0;\r\n    this._deferredPromises = [];\r\n  }\r\n\r\n  lock(fn) {\r\n    const aquire = () => {\r\n      const wait = this._callCount === 0\r\n        ? Promise.resolve()\r\n        : new Promise((resolve) => this._deferredPromises.push(resolve));\r\n      ++this._callCount;\r\n      return wait;\r\n    };\r\n\r\n    const release = () => {\r\n      const pendingResolve = this._deferredPromises.shift();\r\n      if (pendingResolve) {\r\n        pendingResolve();\r\n      }\r\n      --this._callCount;\r\n    };\r\n\r\n    return aquire()\r\n    .then(fn)\r\n    .then(res => {\r\n      release();\r\n      return res;\r\n    })\r\n    .catch(err => {\r\n      release();\r\n      return Promise.reject(err);\r\n    });\r\n  }\r\n}\r\n\r\nmodule.exports = Mutex;\r\n"]}