@milkio/redis 1.0.0-beta.134 → 1.0.0-beta.135

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/index.js CHANGED
@@ -223,4 +223,4 @@ export {
223
223
  };
224
224
 
225
225
  //# debugId=6F6F9ACDCC3531F264756E2164756E21
226
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi5cXGluZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB0eXBlIHsgUmVkaXNDbGllbnRPcHRpb25zIH0gZnJvbSBcInJlZGlzXCI7XG5cbmV4cG9ydCB0eXBlIE1pbGtpb1JlZGlzQ2FjaGVPcHRpb25zPFQ+ID0ge1xuICBkZWZhdWx0VmFsdWU/OiBUIHwgdW5kZWZpbmVkO1xuICBleHBpcmVNczogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTWlsa2lvUmVkaXNGZXRjaE9wdGlvbnM8VD4gPSB7XG4gIGRlZmF1bHRWYWx1ZT86IFQgfCB1bmRlZmluZWQ7XG4gIGV4cGlyZU1zOiBudW1iZXI7XG4gIHJlYWxFeHBpcmVNcz86IG51bWJlcjtcbiAgbG9ja0ludGVydmFsPzogbnVtYmVyO1xuICByZWZyZXNoTG9ja0ludGVydmFsPzogbnVtYmVyO1xuICBub3RGb3VuZEV4cGlyZU1zPzogbnVtYmVyO1xuICBmZXRjaDogKCkgPT4gVCB8IHVuZGVmaW5lZCB8IFByb21pc2U8VCB8IHVuZGVmaW5lZD47XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVkaXM8T3B0aW9ucyBleHRlbmRzIFJlZGlzQ2xpZW50T3B0aW9ucz4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBOb2RlUmVkaXMgPSBhd2FpdCBpbXBvcnQoXCJyZWRpc1wiKTtcbiAgY29uc3QgcmVkaXMgPSBhd2FpdCBOb2RlUmVkaXMuZGVmYXVsdC5jcmVhdGVDbGllbnQob3B0aW9ucykuY29ubmVjdCgpO1xuXG4gIGNvbnN0IG1pbGtpb1JlZGlzID0ge1xuICAgIHJlZGlzLFxuICAgIHVzZUNhY2hlOiA8VD4oa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiBNaWxraW9SZWRpc0NhY2hlT3B0aW9uczxUPikgPT4gKHtcbiAgICAgIHNldDogYXN5bmMgKHZhbHVlOiBULCBleHBpcmVNczogbnVtYmVyKTogUHJvbWlzZTxUPiA9PiB7XG4gICAgICAgIGF3YWl0IHJlZGlzLlBTRVRFWChrZXksIGV4cGlyZU1zLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9LFxuICAgICAgZ2V0OiBhc3luYyAoKTogUHJvbWlzZTxUIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlZGlzLkdFVChrZXkpO1xuICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSByZXR1cm4gb3B0aW9ucz8uZGVmYXVsdFZhbHVlO1xuICAgICAgICByZXR1cm4gcmV2aXZlSlNPTlBhcnNlKEpTT04ucGFyc2UocmVzdWx0KSk7XG4gICAgICB9LFxuICAgICAgcHVsbDogYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHRSYXcgPSBhd2FpdCByZWRpcy5NVUxUSSgpLkdFVChrZXkpLkRFTChrZXkpLkVYRUMoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVzdWx0UmF3WzBdO1xuICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSByZXR1cm4gb3B0aW9ucz8uZGVmYXVsdFZhbHVlO1xuICAgICAgICByZXR1cm4gcmV2aXZlSlNPTlBhcnNlKEpTT04ucGFyc2UocmVzdWx0IGFzIHN0cmluZykpO1xuICAgICAgfSxcbiAgICAgIGhhczogYXN5bmMgKCk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWRpcy5HRVQoa2V5KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCAhPT0gbnVsbDtcbiAgICAgIH0sXG4gICAgICBkZWw6IGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgcmVkaXMuREVMKGtleSk7XG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgdXNlRmV0Y2g6IDxPcHRpb25zIGV4dGVuZHMgTWlsa2lvUmVkaXNGZXRjaE9wdGlvbnM8YW55Pj4oa2V5OiBzdHJpbmcsIG9wdGlvbnM6IE9wdGlvbnMpID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5leHBpcmVNcyAhPT0gXCJudW1iZXJcIiB8fCBvcHRpb25zLmV4cGlyZU1zIDw9IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwaXJlTXMgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlclwiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMubG9ja0ludGVydmFsICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBvcHRpb25zLmxvY2tJbnRlcnZhbCAhPT0gXCJudW1iZXJcIiB8fCBvcHRpb25zLmxvY2tJbnRlcnZhbCA8PSAwKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJsb2NrSW50ZXJ2YWwgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBpZiBwcm92aWRlZFwiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMucmVhbEV4cGlyZU1zICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBvcHRpb25zLnJlYWxFeHBpcmVNcyAhPT0gXCJudW1iZXJcIiB8fCBvcHRpb25zLnJlYWxFeHBpcmVNcyA8PSAwKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZWFsRXhwaXJlTXMgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBpZiBwcm92aWRlZFwiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMubm90Rm91bmRFeHBpcmVNcyAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2Ygb3B0aW9ucy5ub3RGb3VuZEV4cGlyZU1zICE9PSBcIm51bWJlclwiIHx8IG9wdGlvbnMubm90Rm91bmRFeHBpcmVNcyA8PSAwKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJub3RGb3VuZEV4cGlyZU1zIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIgaWYgcHJvdmlkZWRcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLnJlZnJlc2hMb2NrSW50ZXJ2YWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMucmVmcmVzaExvY2tJbnRlcnZhbCAhPT0gXCJudW1iZXJcIiB8fCBvcHRpb25zLnJlZnJlc2hMb2NrSW50ZXJ2YWwgPD0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInJlZnJlc2hMb2NrSW50ZXJ2YWwgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBpZiBwcm92aWRlZFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxvY2tJbnRlcnZhbCA9IG9wdGlvbnMubG9ja0ludGVydmFsID8/IDgxOTI7XG4gICAgICAgIGlmIChvcHRpb25zLnJlZnJlc2hMb2NrSW50ZXJ2YWwgPD0gbG9ja0ludGVydmFsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwicmVmcmVzaExvY2tJbnRlcnZhbCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBsb2NrSW50ZXJ2YWxcIik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmZldGNoICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZmV0Y2ggbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBoYXM6IGFzeW5jICgpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWRpcy5HRVQoa2V5KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0ICE9PSBudWxsO1xuICAgICAgICB9LFxuICAgICAgICBkZWw6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICBhd2FpdCByZWRpcy5ERUwoa2V5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZmV0Y2g6IGFzeW5jICgpOiBQcm9taXNlPEF3YWl0ZWQ8UmV0dXJuVHlwZTxPcHRpb25zW1wiZmV0Y2hcIl0+Pj4gPT4ge1xuICAgICAgICAgIGNvbnN0IGxvY2tJbnRlcnZhbCA9IG9wdGlvbnMubG9ja0ludGVydmFsID8/IDgxOTI7XG4gICAgICAgICAgY29uc3QgcmVhbEV4cGlyZU1zID0gb3B0aW9ucy5yZWFsRXhwaXJlTXMgPz8gTWF0aC5mbG9vcihvcHRpb25zLmV4cGlyZU1zICogKE1hdGgucmFuZG9tKCkgKyAwLjUpKSArIDgxOTI7XG5cbiAgICAgICAgICBjb25zdCBub3RGb3VuZEV4cGlyZU1zID0gb3B0aW9ucy5ub3RGb3VuZEV4cGlyZU1zID8/IE1hdGgubWluKG9wdGlvbnMuZXhwaXJlTXMsIDE2Mzg0KTtcblxuICAgICAgICAgIGNvbnN0IHJlc3VsdFJhdyA9IGF3YWl0IHJlZGlzLkdFVChrZXkpO1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc3VsdFJhdyA/IChyZXZpdmVKU09OUGFyc2UoSlNPTi5wYXJzZShyZXN1bHRSYXcpKSBhcyB7IFQ6IG51bWJlcjsgUjogQXdhaXRlZDxSZXR1cm5UeXBlPE9wdGlvbnNbXCJmZXRjaFwiXT4+IH0pIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5UID4gbm93KSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0LlI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVmcmVzaExvY2tLZXkgPSBgJHtrZXl9OnJlZnJlc2gtbG9ja2A7XG4gICAgICAgICAgaWYgKGF3YWl0IHJlZGlzLkVYSVNUUyhyZWZyZXNoTG9ja0tleSkpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgPyByZXN1bHQuUiA6IG9wdGlvbnM/LmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBsb2NrS2V5ID0gYCR7a2V5fTpsb2NrYDtcbiAgICAgICAgICBjb25zdCBsb2NrU2V0ID0gYXdhaXQgcmVkaXMuU0VUKGxvY2tLZXksIFwiMVwiLCB7IFBYOiBsb2NrSW50ZXJ2YWwsIE5YOiB0cnVlIH0pO1xuICAgICAgICAgIGNvbnN0IGdvdExvY2sgPSBsb2NrU2V0ID09PSBcIk9LXCI7XG5cbiAgICAgICAgICBpZiAoIWdvdExvY2spIHJldHVybiByZXN1bHQgPyByZXN1bHQuUiA6IG9wdGlvbnMuZGVmYXVsdFZhbHVlO1xuXG4gICAgICAgICAgY29uc3QgcmVjaGVja1JhdyA9IGF3YWl0IHJlZGlzLkdFVChrZXkpO1xuICAgICAgICAgIGNvbnN0IHJlY2hlY2sgPSByZWNoZWNrUmF3ID8gKHJldml2ZUpTT05QYXJzZShKU09OLnBhcnNlKHJlY2hlY2tSYXcpKSBhcyB7IFQ6IG51bWJlcjsgUjogQXdhaXRlZDxSZXR1cm5UeXBlPE9wdGlvbnNbXCJmZXRjaFwiXT4+IH0pIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgaWYgKHJlY2hlY2sgJiYgcmVjaGVjay5UID4gbm93KSB7XG4gICAgICAgICAgICByZXR1cm4gcmVjaGVjay5SO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCBkYXRhOiBBd2FpdGVkPFJldHVyblR5cGU8T3B0aW9uc1tcImZldGNoXCJdPj47XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRhdGEgPSBhd2FpdCBvcHRpb25zLmZldGNoKCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlZGlzLkRFTChsb2NrS2V5KTtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGVmZmVjdGl2ZUV4cGlyZU1zID0gZGF0YSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5leHBpcmVNcyArIHJlYWxFeHBpcmVNcyA6IG5vdEZvdW5kRXhwaXJlTXM7XG5cbiAgICAgICAgICBjb25zdCBjYWNoZVZhbHVlID0ge1xuICAgICAgICAgICAgVDogbm93ICsgKGRhdGEgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMuZXhwaXJlTXMgOiBub3RGb3VuZEV4cGlyZU1zKSxcbiAgICAgICAgICAgIFI6IGRhdGEsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IHJlZnJlc2hMb2NrRXhpc3RzID0gYXdhaXQgcmVkaXMuRVhJU1RTKHJlZnJlc2hMb2NrS2V5KTtcbiAgICAgICAgICBpZiAocmVmcmVzaExvY2tFeGlzdHMpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlZGlzLkRFTChsb2NrS2V5KTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGF3YWl0IHJlZGlzLk1VTFRJKCkuUFNFVEVYKGtleSwgZWZmZWN0aXZlRXhwaXJlTXMsIEpTT04uc3RyaW5naWZ5KGNhY2hlVmFsdWUpKS5ERUwobG9ja0tleSkuRVhFQygpO1xuXG4gICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH0sXG4gICAgICAgIHJlZnJlc2g6IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBjb25zdCByZWZyZXNoTG9ja0tleSA9IGAke2tleX06cmVmcmVzaC1sb2NrYDtcbiAgICAgICAgICBjb25zdCByZWZyZXNoTG9ja0ludGVydmFsID0gb3B0aW9ucy5yZWZyZXNoTG9ja0ludGVydmFsID8/IChvcHRpb25zLmxvY2tJbnRlcnZhbCA/PyA4MTkyKSArIDEwMjQ7XG5cbiAgICAgICAgICBhd2FpdCByZWRpcy5TRVQocmVmcmVzaExvY2tLZXksIFwiMVwiLCB7XG4gICAgICAgICAgICBQWDogcmVmcmVzaExvY2tJbnRlcnZhbCxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgICAgbGV0IGRhdGE6IEF3YWl0ZWQ8UmV0dXJuVHlwZTxPcHRpb25zW1wiZmV0Y2hcIl0+PiB8IHVuZGVmaW5lZDtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgZGF0YSA9IGF3YWl0IG9wdGlvbnMuZmV0Y2goKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgYXdhaXQgcmVkaXMuREVMKHJlZnJlc2hMb2NrS2V5KTtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJlYWxFeHBpcmVNcyA9IG9wdGlvbnMucmVhbEV4cGlyZU1zID8/IE1hdGguZmxvb3Iob3B0aW9ucy5leHBpcmVNcyAqIChNYXRoLnJhbmRvbSgpICsgMC41KSkgKyA4MTkyO1xuICAgICAgICAgIGNvbnN0IGVmZmVjdGl2ZUV4cGlyZU1zID0gZGF0YSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5leHBpcmVNcyArIHJlYWxFeHBpcmVNcyA6IChvcHRpb25zLm5vdEZvdW5kRXhwaXJlTXMgPz8gTWF0aC5taW4ob3B0aW9ucy5leHBpcmVNcywgMTYzODQpKTtcblxuICAgICAgICAgIGNvbnN0IGNhY2hlVmFsdWUgPSB7XG4gICAgICAgICAgICBUOiBub3cgKyAoZGF0YSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5leHBpcmVNcyA6IChvcHRpb25zLm5vdEZvdW5kRXhwaXJlTXMgPz8gTWF0aC5taW4ob3B0aW9ucy5leHBpcmVNcywgMTYzODQpKSksXG4gICAgICAgICAgICBSOiBkYXRhLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBhd2FpdCByZWRpcy5QU0VURVgoa2V5LCBlZmZlY3RpdmVFeHBpcmVNcywgSlNPTi5zdHJpbmdpZnkoY2FjaGVWYWx1ZSkpOyAvLyBEbyBub3QgY2xlYW4gdGhlIHVwZGF0ZSBsb2NrISBJbnN0ZWFkLCB3YWl0IGZvciBpdCB0byBleHBpcmUgbmF0dXJhbGx5XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG5cbiAgICB1c2VDb3VudDogKGtleTogc3RyaW5nKSA9PiAoe1xuICAgICAgZ2V0OiBhc3luYyAoKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVkaXMuR0VUKGtleSk7XG4gICAgICAgIHJldHVybiByZXN1bHQgPyBOdW1iZXIocmVzdWx0KSA6IDA7XG4gICAgICB9LFxuICAgICAgYWRkOiBhc3luYyAoYW1vdW50OiBudW1iZXIsIGV4cGlyZU1zPzogbnVtYmVyKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgICAgICAgaWYgKCFleHBpcmVNcykge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlZGlzLklOQ1JCWShrZXksIGFtb3VudCk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWRpcy5NVUxUSSgpLklOQ1JCWShrZXksIGFtb3VudCkuUEVYUElSRShrZXksIGV4cGlyZU1zKS5FWEVDKCk7XG4gICAgICAgICAgcmV0dXJuIE51bWJlcihyZXN1bHRbMF0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc3ViOiBhc3luYyAoYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWRpcy5ERUNSQlkoa2V5LCBhbW91bnQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSxcbiAgICB9KSxcblxuICAgIHVzZUNsb2NrSW46IChrZXk6IHN0cmluZywgY2xlYW5EYXRlOiBEYXRlKSA9PiAoe1xuICAgICAgY2xvY2tJbjogYXN5bmMgKG9mZnNldDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgIGF3YWl0IHJlZGlzLk1VTFRJKCkuU0VUQklUKGtleSwgb2Zmc2V0LCAxKS5QRVhQSVJFQVQoa2V5LCBjbGVhbkRhdGUuZ2V0VGltZSgpKS5FWEVDKCk7XG4gICAgICB9LFxuICAgICAgY2hlY2s6IGFzeW5jIChvZmZzZXQ6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWRpcy5HRVRCSVQoa2V5LCBvZmZzZXQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0ID09PSAxO1xuICAgICAgfSxcbiAgICAgIGZpcnN0Q2xvY2tJbjogYXN5bmMgKCk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlZGlzLkJJVFBPUyhrZXksIDEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSxcbiAgICAgIGxhc3RDbG9ja0luOiBhc3luYyAoKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVkaXMuQklUUE9TKGtleSwgMSwgLTEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSxcbiAgICAgIHRvQXJyYXk6IGFzeW5jIChsZW5ndGg6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbltdPiA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdFJhdyA9IGF3YWl0IHJlZGlzLkJJVEZJRUxEKGtleSwgW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogXCJHRVRcIixcbiAgICAgICAgICAgIGVuY29kaW5nOiBgdSR7bGVuZ3RofWAsXG4gICAgICAgICAgICBvZmZzZXQ6IFwiIzBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gTnVtYmVyLnBhcnNlSW50KGAke3Jlc3VsdFJhd31gKS50b1N0cmluZygyKS5zcGxpdChcIlwiKTtcbiAgICAgICAgY29uc3QgZmlsbCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aCAtIHJlc3VsdC5sZW5ndGg7IGkrKykgZmlsbC5wdXNoKFwiMFwiKTtcbiAgICAgICAgcmV0dXJuIFsuLi5maWxsLCAuLi5yZXN1bHRdLm1hcCgodikgPT4gdiA9PT0gXCIxXCIpO1xuICAgICAgfSxcbiAgICAgIGNvdW50OiBhc3luYyAoKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVkaXMuQklUQ09VTlQoa2V5KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0sXG4gICAgICBjbGVhbjogYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBhd2FpdCByZWRpcy5ERUwoa2V5KTtcbiAgICAgIH0sXG4gICAgfSksXG4gIH07XG5cbiAgcmV0dXJuIG1pbGtpb1JlZGlzO1xufVxuXG5mdW5jdGlvbiByZXZpdmVKU09OUGFyc2U8VD4oanNvbjogVCk6IFQge1xuICBjb25zdCBpc29EYXRlUGF0dGVybiA9IC9eKFxcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkezEsM30pPykoWnxbKy1dXFxkezJ9Oj9cXGR7Mn0pPyQvO1xuXG4gIGlmIChqc29uIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIGpzb247XG4gIGlmIChBcnJheS5pc0FycmF5KGpzb24pKSB7XG4gICAgcmV0dXJuIGpzb24ubWFwKChpdGVtKSA9PiByZXZpdmVKU09OUGFyc2UoaXRlbSkpIGFzIGFueTtcbiAgfVxuICBpZiAodHlwZW9mIGpzb24gPT09IFwib2JqZWN0XCIgJiYganNvbiAhPT0gbnVsbCkge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhqc29uKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBhY2Nba2V5IGFzIGtleW9mIFRdID0gcmV2aXZlSlNPTlBhcnNlKHZhbHVlKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgVCk7XG4gIH1cbiAgaWYgKHR5cGVvZiBqc29uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgbWF0Y2ggPSBqc29uLm1hdGNoKGlzb0RhdGVQYXR0ZXJuKTtcbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWREYXRlU3RyaW5nID0gbWF0Y2hbMl0gPyBgJHttYXRjaFsxXX0ke21hdGNoWzJdLnJlcGxhY2UoXCI6XCIsIFwiXCIpfWAgOiBgJHttYXRjaFsxXX1aYDtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShub3JtYWxpemVkRGF0ZVN0cmluZykgYXMgYW55O1xuICAgIH1cbiAgfVxuICByZXR1cm4ganNvbjtcbn1cblxuZXhwb3J0IHR5cGUgUmVkaXMgPSBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZVJlZGlzPj47XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7QUFpQkEsZUFBc0IsV0FBK0MsQ0FBQyxTQUFrQjtBQUFBLEVBQ3RGLE1BQU0sWUFBWSxNQUFhO0FBQUEsRUFDL0IsTUFBTSxRQUFRLE1BQU0sVUFBVSxRQUFRLGFBQWEsT0FBTyxFQUFFLFFBQVE7QUFBQSxFQUVwRSxNQUFNLGNBQWM7QUFBQSxJQUNsQjtBQUFBLElBQ0EsVUFBVSxDQUFJLEtBQWEsY0FBMEM7QUFBQSxNQUNuRSxLQUFLLE9BQU8sT0FBVSxhQUFpQztBQUFBLFFBQ3JELE1BQU0sTUFBTSxPQUFPLEtBQUssVUFBVSxLQUFLLFVBQVUsS0FBSyxDQUFDO0FBQUEsUUFDdkQsT0FBTztBQUFBO0FBQUEsTUFFVCxLQUFLLFlBQW9DO0FBQUEsUUFDdkMsTUFBTSxTQUFTLE1BQU0sTUFBTSxJQUFJLEdBQUc7QUFBQSxRQUNsQyxJQUFJLFdBQVc7QUFBQSxVQUFNLE9BQU8sVUFBUztBQUFBLFFBQ3JDLE9BQU8sZ0JBQWdCLEtBQUssTUFBTSxNQUFNLENBQUM7QUFBQTtBQUFBLE1BRTNDLE1BQU0sWUFBWTtBQUFBLFFBQ2hCLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUs7QUFBQSxRQUM3RCxNQUFNLFNBQVMsVUFBVTtBQUFBLFFBQ3pCLElBQUksV0FBVztBQUFBLFVBQU0sT0FBTyxVQUFTO0FBQUEsUUFDckMsT0FBTyxnQkFBZ0IsS0FBSyxNQUFNLE1BQWdCLENBQUM7QUFBQTtBQUFBLE1BRXJELEtBQUssWUFBOEI7QUFBQSxRQUNqQyxNQUFNLFNBQVMsTUFBTSxNQUFNLElBQUksR0FBRztBQUFBLFFBQ2xDLE9BQU8sV0FBVztBQUFBO0FBQUEsTUFFcEIsS0FBSyxZQUFZO0FBQUEsUUFD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QUksR0FBRztBQUFBO0FBQUEsSUFFdkI7QUFBQSxFQUNGO0FBQUEsRUFFQSxPQUFPO0FBQUE7QUFHVCxTQUFTLGVBQWtCLENBQUMsTUFBWTtBQUFBLEVBQ3RDLE1BQU0saUJBQWlCO0FBQUEsRUFFdkIsSUFBSSxnQkFBZ0I7QUFBQSxJQUFNLE9BQU87QUFBQSxFQUNqQyxJQUFJLE1BQU0sUUFBUSxJQUFJLEdBQUc7QUFBQSxJQUN2QixPQUFPLEtBQUssSUFBSSxDQUFDLFNBQVMsZ0JBQWdCLElBQUksQ0FBQztBQUFBLEVBQ2pEO0FBQUEsRUFDQSxJQUFJLE9BQU8sU0FBUyxZQUFZLFNBQVMsTUFBTTtBQUFBLElBQzdDLE9BQU8sT0FBTyxRQUFRLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxLQUFLLFdBQVc7QUFBQSxNQUN4RCxJQUFJLE9BQWtCLGdCQUFnQixLQUFLO0FBQUEsTUFDM0MsT0FBTztBQUFBLE9BQ04sQ0FBQyxDQUFNO0FBQUEsRUFDWjtBQUFBLEVBQ0EsSUFBSSxPQUFPLFNBQVMsVUFBVTtBQUFBLElBQzVCLE1BQU0sUUFBUSxLQUFLLE1BQU0sY0FBYztBQUFBLElBQ3ZDLElBQUksT0FBTztBQUFBLE1BQ1QsTUFBTSx1QkFBdUIsTUFBTSxLQUFLLEdBQUcsTUFBTSxLQUFLLE1BQU0sR0FBRyxRQUFRLEtBQUssRUFBRSxNQUFNLEdBQUcsTUFBTTtBQUFBLE1BQzdGLE9BQU8sSUFBSSxLQUFLLG9CQUFvQjtBQUFBLElBQ3RDO0FBQUEsRUFDRjtBQUFBLEVBQ0EsT0FBTztBQUFBOyIsCiAgImRlYnVnSWQiOiAiNkY2RjlBQ0RDQzM1MzFGMjY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
226
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi5cXGluZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgImltcG9ydCB0eXBlIHsgUmVkaXNDbGllbnRPcHRpb25zIH0gZnJvbSBcInJlZGlzXCI7XG5cbmV4cG9ydCB0eXBlIE1pbGtpb1JlZGlzQ2FjaGVPcHRpb25zPFQ+ID0ge1xuICBkZWZhdWx0VmFsdWU/OiBUIHwgdW5kZWZpbmVkO1xuICBleHBpcmVNczogbnVtYmVyO1xufTtcblxuZXhwb3J0IHR5cGUgTWlsa2lvUmVkaXNGZXRjaE9wdGlvbnM8VD4gPSB7XG4gIGRlZmF1bHRWYWx1ZT86IFQgfCB1bmRlZmluZWQ7XG4gIGV4cGlyZU1zOiBudW1iZXI7XG4gIHJlYWxFeHBpcmVNcz86IG51bWJlcjtcbiAgbG9ja0ludGVydmFsPzogbnVtYmVyO1xuICByZWZyZXNoTG9ja0ludGVydmFsPzogbnVtYmVyO1xuICBub3RGb3VuZEV4cGlyZU1zPzogbnVtYmVyO1xuICBmZXRjaDogKCkgPT4gVCB8IHVuZGVmaW5lZCB8IFByb21pc2U8VCB8IHVuZGVmaW5lZD47XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlUmVkaXM8T3B0aW9ucyBleHRlbmRzIFJlZGlzQ2xpZW50T3B0aW9ucz4ob3B0aW9uczogT3B0aW9ucykge1xuICBjb25zdCBOb2RlUmVkaXMgPSBhd2FpdCBpbXBvcnQoXCJyZWRpc1wiKTtcbiAgY29uc3QgcmVkaXMgPSBhd2FpdCBOb2RlUmVkaXMuZGVmYXVsdC5jcmVhdGVDbGllbnQob3B0aW9ucykuY29ubmVjdCgpO1xuXG4gIGNvbnN0IG1pbGtpb1JlZGlzID0ge1xuICAgIHJlZGlzLFxuICAgIHVzZUNhY2hlOiA8VD4oa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiBNaWxraW9SZWRpc0NhY2hlT3B0aW9uczxUPikgPT4gKHtcbiAgICAgIHNldDogYXN5bmMgKHZhbHVlOiBULCBleHBpcmVNczogbnVtYmVyKTogUHJvbWlzZTxUPiA9PiB7XG4gICAgICAgIGF3YWl0IHJlZGlzLlBTRVRFWChrZXksIGV4cGlyZU1zLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9LFxuICAgICAgZ2V0OiBhc3luYyAoKTogUHJvbWlzZTxUIHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlZGlzLkdFVChrZXkpO1xuICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSByZXR1cm4gb3B0aW9ucz8uZGVmYXVsdFZhbHVlO1xuICAgICAgICByZXR1cm4gcmV2aXZlSlNPTlBhcnNlKEpTT04ucGFyc2UocmVzdWx0KSk7XG4gICAgICB9LFxuICAgICAgcHVsbDogYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHRSYXcgPSBhd2FpdCByZWRpcy5NVUxUSSgpLkdFVChrZXkpLkRFTChrZXkpLkVYRUMoKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gcmVzdWx0UmF3WzBdO1xuICAgICAgICBpZiAocmVzdWx0ID09PSBudWxsKSByZXR1cm4gb3B0aW9ucz8uZGVmYXVsdFZhbHVlO1xuICAgICAgICByZXR1cm4gcmV2aXZlSlNPTlBhcnNlKEpTT04ucGFyc2UocmVzdWx0IGFzIHN0cmluZykpO1xuICAgICAgfSxcbiAgICAgIGhhczogYXN5bmMgKCk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWRpcy5HRVQoa2V5KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdCAhPT0gbnVsbDtcbiAgICAgIH0sXG4gICAgICBkZWw6IGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgcmVkaXMuREVMKGtleSk7XG4gICAgICB9LFxuICAgIH0pLFxuXG4gICAgdXNlRmV0Y2g6IDxPcHRpb25zIGV4dGVuZHMgTWlsa2lvUmVkaXNGZXRjaE9wdGlvbnM8YW55Pj4oa2V5OiBzdHJpbmcsIG9wdGlvbnM6IE9wdGlvbnMpID0+IHtcbiAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucy5leHBpcmVNcyAhPT0gXCJudW1iZXJcIiB8fCBvcHRpb25zLmV4cGlyZU1zIDw9IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZXhwaXJlTXMgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlclwiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMubG9ja0ludGVydmFsICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBvcHRpb25zLmxvY2tJbnRlcnZhbCAhPT0gXCJudW1iZXJcIiB8fCBvcHRpb25zLmxvY2tJbnRlcnZhbCA8PSAwKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJsb2NrSW50ZXJ2YWwgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBpZiBwcm92aWRlZFwiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMucmVhbEV4cGlyZU1zICE9PSB1bmRlZmluZWQgJiYgKHR5cGVvZiBvcHRpb25zLnJlYWxFeHBpcmVNcyAhPT0gXCJudW1iZXJcIiB8fCBvcHRpb25zLnJlYWxFeHBpcmVNcyA8PSAwKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJyZWFsRXhwaXJlTXMgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBpZiBwcm92aWRlZFwiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG9wdGlvbnMubm90Rm91bmRFeHBpcmVNcyAhPT0gdW5kZWZpbmVkICYmICh0eXBlb2Ygb3B0aW9ucy5ub3RGb3VuZEV4cGlyZU1zICE9PSBcIm51bWJlclwiIHx8IG9wdGlvbnMubm90Rm91bmRFeHBpcmVNcyA8PSAwKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJub3RGb3VuZEV4cGlyZU1zIG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIgaWYgcHJvdmlkZWRcIik7XG4gICAgICB9XG5cbiAgICAgIGlmIChvcHRpb25zLnJlZnJlc2hMb2NrSW50ZXJ2YWwgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIG9wdGlvbnMucmVmcmVzaExvY2tJbnRlcnZhbCAhPT0gXCJudW1iZXJcIiB8fCBvcHRpb25zLnJlZnJlc2hMb2NrSW50ZXJ2YWwgPD0gMCkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcInJlZnJlc2hMb2NrSW50ZXJ2YWwgbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBpZiBwcm92aWRlZFwiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGxvY2tJbnRlcnZhbCA9IG9wdGlvbnMubG9ja0ludGVydmFsID8/IDgxOTI7XG4gICAgICAgIGlmIChvcHRpb25zLnJlZnJlc2hMb2NrSW50ZXJ2YWwgPD0gbG9ja0ludGVydmFsKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwicmVmcmVzaExvY2tJbnRlcnZhbCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBsb2NrSW50ZXJ2YWxcIik7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBvcHRpb25zLmZldGNoICE9PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiZmV0Y2ggbXVzdCBiZSBhIGZ1bmN0aW9uXCIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBoYXM6IGFzeW5jICgpOiBQcm9taXNlPGJvb2xlYW4+ID0+IHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWRpcy5HRVQoa2V5KTtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0ICE9PSBudWxsO1xuICAgICAgICB9LFxuICAgICAgICBkZWw6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICBhd2FpdCByZWRpcy5ERUwoa2V5KTtcbiAgICAgICAgfSxcbiAgICAgICAgZmV0Y2g6IGFzeW5jICgpOiBQcm9taXNlPEF3YWl0ZWQ8UmV0dXJuVHlwZTxPcHRpb25zW1wiZmV0Y2hcIl0+Pj4gPT4ge1xuICAgICAgICAgIGNvbnN0IGxvY2tJbnRlcnZhbCA9IG9wdGlvbnMubG9ja0ludGVydmFsID8/IDgxOTI7XG4gICAgICAgICAgY29uc3QgcmVhbEV4cGlyZU1zID0gb3B0aW9ucy5yZWFsRXhwaXJlTXMgPz8gTWF0aC5mbG9vcihvcHRpb25zLmV4cGlyZU1zICogKE1hdGgucmFuZG9tKCkgKyAwLjUpKSArIDgxOTI7XG5cbiAgICAgICAgICBjb25zdCBub3RGb3VuZEV4cGlyZU1zID0gb3B0aW9ucy5ub3RGb3VuZEV4cGlyZU1zID8/IE1hdGgubWluKG9wdGlvbnMuZXhwaXJlTXMsIDE2Mzg0KTtcblxuICAgICAgICAgIGNvbnN0IHJlc3VsdFJhdyA9IGF3YWl0IHJlZGlzLkdFVChrZXkpO1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHJlc3VsdFJhdyA/IChyZXZpdmVKU09OUGFyc2UoSlNPTi5wYXJzZShyZXN1bHRSYXcpKSBhcyB7IFQ6IG51bWJlcjsgUjogQXdhaXRlZDxSZXR1cm5UeXBlPE9wdGlvbnNbXCJmZXRjaFwiXT4+IH0pIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICBpZiAocmVzdWx0ICYmIHJlc3VsdC5UID4gbm93KSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0LlI7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcmVmcmVzaExvY2tLZXkgPSBgJHtrZXl9OnJlZnJlc2gtbG9ja2A7XG4gICAgICAgICAgaWYgKGF3YWl0IHJlZGlzLkVYSVNUUyhyZWZyZXNoTG9ja0tleSkpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgPyByZXN1bHQuUiA6IG9wdGlvbnM/LmRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBsb2NrS2V5ID0gYCR7a2V5fTpsb2NrYDtcbiAgICAgICAgICBjb25zdCBsb2NrU2V0ID0gYXdhaXQgcmVkaXMuU0VUKGxvY2tLZXksIFwiMVwiLCB7IFBYOiBsb2NrSW50ZXJ2YWwsIE5YOiB0cnVlIH0pO1xuICAgICAgICAgIGNvbnN0IGdvdExvY2sgPSBsb2NrU2V0ID09PSBcIk9LXCI7XG5cbiAgICAgICAgICBpZiAoIWdvdExvY2spIHJldHVybiByZXN1bHQgPyByZXN1bHQuUiA6IG9wdGlvbnMuZGVmYXVsdFZhbHVlO1xuXG4gICAgICAgICAgY29uc3QgcmVjaGVja1JhdyA9IGF3YWl0IHJlZGlzLkdFVChrZXkpO1xuICAgICAgICAgIGNvbnN0IHJlY2hlY2sgPSByZWNoZWNrUmF3ID8gKHJldml2ZUpTT05QYXJzZShKU09OLnBhcnNlKHJlY2hlY2tSYXcpKSBhcyB7IFQ6IG51bWJlcjsgUjogQXdhaXRlZDxSZXR1cm5UeXBlPE9wdGlvbnNbXCJmZXRjaFwiXT4+IH0pIDogdW5kZWZpbmVkO1xuXG4gICAgICAgICAgaWYgKHJlY2hlY2sgJiYgcmVjaGVjay5UID4gbm93KSB7XG4gICAgICAgICAgICByZXR1cm4gcmVjaGVjay5SO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGxldCBkYXRhOiBBd2FpdGVkPFJldHVyblR5cGU8T3B0aW9uc1tcImZldGNoXCJdPj47XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGRhdGEgPSBhd2FpdCBvcHRpb25zLmZldGNoKCk7XG4gICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlZGlzLkRFTChsb2NrS2V5KTtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGVmZmVjdGl2ZUV4cGlyZU1zID0gZGF0YSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5leHBpcmVNcyArIHJlYWxFeHBpcmVNcyA6IG5vdEZvdW5kRXhwaXJlTXM7XG5cbiAgICAgICAgICBjb25zdCBjYWNoZVZhbHVlID0ge1xuICAgICAgICAgICAgVDogbm93ICsgKGRhdGEgIT09IHVuZGVmaW5lZCA/IG9wdGlvbnMuZXhwaXJlTXMgOiBub3RGb3VuZEV4cGlyZU1zKSxcbiAgICAgICAgICAgIFI6IGRhdGEsXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IHJlZnJlc2hMb2NrRXhpc3RzID0gYXdhaXQgcmVkaXMuRVhJU1RTKHJlZnJlc2hMb2NrS2V5KTtcbiAgICAgICAgICBpZiAocmVmcmVzaExvY2tFeGlzdHMpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlZGlzLkRFTChsb2NrS2V5KTtcbiAgICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGF3YWl0IHJlZGlzLk1VTFRJKCkuUFNFVEVYKGtleSwgZWZmZWN0aXZlRXhwaXJlTXMsIEpTT04uc3RyaW5naWZ5KGNhY2hlVmFsdWUpKS5ERUwobG9ja0tleSkuRVhFQygpO1xuXG4gICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH0sXG4gICAgICAgIHJlZnJlc2g6IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgICBjb25zdCByZWZyZXNoTG9ja0tleSA9IGAke2tleX06cmVmcmVzaC1sb2NrYDtcbiAgICAgICAgICBjb25zdCByZWZyZXNoTG9ja0ludGVydmFsID0gb3B0aW9ucy5yZWZyZXNoTG9ja0ludGVydmFsID8/IChvcHRpb25zLmxvY2tJbnRlcnZhbCA/PyA4MTkyKSArIDEwMjQ7XG5cbiAgICAgICAgICBhd2FpdCByZWRpcy5TRVQocmVmcmVzaExvY2tLZXksIFwiMVwiLCB7XG4gICAgICAgICAgICBQWDogcmVmcmVzaExvY2tJbnRlcnZhbCxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgICAgbGV0IGRhdGE6IEF3YWl0ZWQ8UmV0dXJuVHlwZTxPcHRpb25zW1wiZmV0Y2hcIl0+PiB8IHVuZGVmaW5lZDtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgZGF0YSA9IGF3YWl0IG9wdGlvbnMuZmV0Y2goKTtcbiAgICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgYXdhaXQgcmVkaXMuREVMKHJlZnJlc2hMb2NrS2V5KTtcbiAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IHJlYWxFeHBpcmVNcyA9IG9wdGlvbnMucmVhbEV4cGlyZU1zID8/IE1hdGguZmxvb3Iob3B0aW9ucy5leHBpcmVNcyAqIChNYXRoLnJhbmRvbSgpICsgMC41KSkgKyA4MTkyO1xuICAgICAgICAgIGNvbnN0IGVmZmVjdGl2ZUV4cGlyZU1zID0gZGF0YSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5leHBpcmVNcyArIHJlYWxFeHBpcmVNcyA6IChvcHRpb25zLm5vdEZvdW5kRXhwaXJlTXMgPz8gTWF0aC5taW4ob3B0aW9ucy5leHBpcmVNcywgMTYzODQpKTtcblxuICAgICAgICAgIGNvbnN0IGNhY2hlVmFsdWUgPSB7XG4gICAgICAgICAgICBUOiBub3cgKyAoZGF0YSAhPT0gdW5kZWZpbmVkID8gb3B0aW9ucy5leHBpcmVNcyA6IChvcHRpb25zLm5vdEZvdW5kRXhwaXJlTXMgPz8gTWF0aC5taW4ob3B0aW9ucy5leHBpcmVNcywgMTYzODQpKSksXG4gICAgICAgICAgICBSOiBkYXRhLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBhd2FpdCByZWRpcy5QU0VURVgoa2V5LCBlZmZlY3RpdmVFeHBpcmVNcywgSlNPTi5zdHJpbmdpZnkoY2FjaGVWYWx1ZSkpOyAvLyBEbyBub3QgY2xlYW4gdGhlIHVwZGF0ZSBsb2NrISBJbnN0ZWFkLCB3YWl0IGZvciBpdCB0byBleHBpcmUgbmF0dXJhbGx5XG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0sXG5cbiAgICB1c2VDb3VudDogKGtleTogc3RyaW5nKSA9PiAoe1xuICAgICAgZ2V0OiBhc3luYyAoKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVkaXMuR0VUKGtleSk7XG4gICAgICAgIHJldHVybiByZXN1bHQgPyBOdW1iZXIocmVzdWx0KSA6IDA7XG4gICAgICB9LFxuICAgICAgYWRkOiBhc3luYyAoYW1vdW50OiBudW1iZXIsIGV4cGlyZU1zPzogbnVtYmVyKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgICAgICAgaWYgKCFleHBpcmVNcykge1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlZGlzLklOQ1JCWShrZXksIGFtb3VudCk7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWRpcy5NVUxUSSgpLklOQ1JCWShrZXksIGFtb3VudCkuUEVYUElSRShrZXksIGV4cGlyZU1zKS5FWEVDKCk7XG4gICAgICAgICAgcmV0dXJuIE51bWJlcihyZXN1bHRbMF0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgc3ViOiBhc3luYyAoYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPG51bWJlcj4gPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWRpcy5ERUNSQlkoa2V5LCBhbW91bnQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSxcbiAgICB9KSxcblxuICAgIHVzZUNsb2NrSW46IChrZXk6IHN0cmluZywgY2xlYW5EYXRlOiBEYXRlKSA9PiAoe1xuICAgICAgY2xvY2tJbjogYXN5bmMgKG9mZnNldDogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICAgIGF3YWl0IHJlZGlzLk1VTFRJKCkuU0VUQklUKGtleSwgb2Zmc2V0LCAxKS5QRVhQSVJFQVQoa2V5LCBjbGVhbkRhdGUuZ2V0VGltZSgpKS5FWEVDKCk7XG4gICAgICB9LFxuICAgICAgY2hlY2s6IGFzeW5jIChvZmZzZXQ6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZWRpcy5HRVRCSVQoa2V5LCBvZmZzZXQpO1xuICAgICAgICByZXR1cm4gcmVzdWx0ID09PSAxO1xuICAgICAgfSxcbiAgICAgIGZpcnN0Q2xvY2tJbjogYXN5bmMgKCk6IFByb21pc2U8bnVtYmVyPiA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHJlZGlzLkJJVFBPUyhrZXksIDEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSxcbiAgICAgIGxhc3RDbG9ja0luOiBhc3luYyAoKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVkaXMuQklUUE9TKGtleSwgMSwgLTEpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfSxcbiAgICAgIHRvQXJyYXk6IGFzeW5jIChsZW5ndGg6IG51bWJlcik6IFByb21pc2U8Ym9vbGVhbltdPiA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdFJhdyA9IGF3YWl0IHJlZGlzLkJJVEZJRUxEKGtleSwgW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9wZXJhdGlvbjogXCJHRVRcIixcbiAgICAgICAgICAgIGVuY29kaW5nOiBgdSR7bGVuZ3RofWAsXG4gICAgICAgICAgICBvZmZzZXQ6IFwiIzBcIixcbiAgICAgICAgICB9LFxuICAgICAgICBdKTtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gTnVtYmVyLnBhcnNlSW50KGAke3Jlc3VsdFJhd31gKS50b1N0cmluZygyKS5zcGxpdChcIlwiKTtcbiAgICAgICAgY29uc3QgZmlsbCA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aCAtIHJlc3VsdC5sZW5ndGg7IGkrKykgZmlsbC5wdXNoKFwiMFwiKTtcbiAgICAgICAgcmV0dXJuIFsuLi5maWxsLCAuLi5yZXN1bHRdLm1hcCgodikgPT4gdiA9PT0gXCIxXCIpO1xuICAgICAgfSxcbiAgICAgIGNvdW50OiBhc3luYyAoKTogUHJvbWlzZTxudW1iZXI+ID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVkaXMuQklUQ09VTlQoa2V5KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH0sXG4gICAgICBjbGVhbjogYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBhd2FpdCByZWRpcy5ERUwoa2V5KTtcbiAgICAgIH0sXG4gICAgfSksXG4gIH07XG5cbiAgcmV0dXJuIG1pbGtpb1JlZGlzO1xufVxuXG5mdW5jdGlvbiByZXZpdmVKU09OUGFyc2U8VD4oanNvbjogVCk6IFQge1xuICBjb25zdCBpc29EYXRlUGF0dGVybiA9IC9eKFxcZHs0fS1cXGR7Mn0tXFxkezJ9VFxcZHsyfTpcXGR7Mn06XFxkezJ9KD86XFwuXFxkezEsM30pPykoWnxbKy1dXFxkezJ9Oj9cXGR7Mn0pPyQvO1xuXG4gIGlmIChqc29uIGluc3RhbmNlb2YgRGF0ZSkgcmV0dXJuIGpzb247XG4gIGlmIChBcnJheS5pc0FycmF5KGpzb24pKSB7XG4gICAgcmV0dXJuIGpzb24ubWFwKChpdGVtKSA9PiByZXZpdmVKU09OUGFyc2UoaXRlbSkpIGFzIGFueTtcbiAgfVxuICBpZiAodHlwZW9mIGpzb24gPT09IFwib2JqZWN0XCIgJiYganNvbiAhPT0gbnVsbCkge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhqc29uKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBhY2Nba2V5IGFzIGtleW9mIFRdID0gcmV2aXZlSlNPTlBhcnNlKHZhbHVlKTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30gYXMgVCk7XG4gIH1cbiAgaWYgKHR5cGVvZiBqc29uID09PSBcInN0cmluZ1wiKSB7XG4gICAgY29uc3QgbWF0Y2ggPSBqc29uLm1hdGNoKGlzb0RhdGVQYXR0ZXJuKTtcbiAgICBpZiAobWF0Y2gpIHtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWREYXRlU3RyaW5nID0gbWF0Y2hbMl0gPyBgJHttYXRjaFsxXX0ke21hdGNoWzJdLnJlcGxhY2UoXCI6XCIsIFwiXCIpfWAgOiBgJHttYXRjaFsxXX1aYDtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShub3JtYWxpemVkRGF0ZVN0cmluZykgYXMgYW55O1xuICAgIH1cbiAgfVxuICByZXR1cm4ganNvbjtcbn1cblxuZXhwb3J0IHR5cGUgUmVkaXMgPSBBd2FpdGVkPFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZVJlZGlzPj47XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7QUFpQkEsZUFBc0IsV0FBK0MsQ0FBQyxTQUFrQjtBQUFBLEVBQ3RGLE1BQU0sWUFBWSxNQUFhO0FBQUEsRUFDL0IsTUFBTSxRQUFRLE1BQU0sVUFBVSxRQUFRLGFBQWEsT0FBTyxFQUFFLFFBQVE7QUFBQSxFQUVwRSxNQUFNLGNBQWM7QUFBQSxJQUNsQjtBQUFBLElBQ0EsVUFBVSxDQUFJLEtBQWEsY0FBMEM7QUFBQSxNQUNuRSxLQUFLLE9BQU8sT0FBVSxhQUFpQztBQUFBLFFBQ3JELE1BQU0sTUFBTSxPQUFPLEtBQUssVUFBVSxLQUFLLFVBQVUsS0FBSyxDQUFDO0FBQUEsUUFDdkQsT0FBTztBQUFBO0FBQUEsTUFFVCxLQUFLLFlBQW9DO0FBQUEsUUFDdkMsTUFBTSxTQUFTLE1BQU0sTUFBTSxJQUFJLEdBQUc7QUFBQSxRQUNsQyxJQUFJLFdBQVc7QUFBQSxVQUFNLE9BQU8sVUFBUztBQUFBLFFBQ3JDLE9BQU8sZ0JBQWdCLEtBQUssTUFBTSxNQUFNLENBQUM7QUFBQTtBQUFBLE1BRTNDLE1BQU0sWUFBWTtBQUFBLFFBQ2hCLE1BQU0sWUFBWSxNQUFNLE1BQU0sTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLElBQUksR0FBRyxFQUFFLEtBQUs7QUFBQSxRQUM3RCxNQUFNLFNBQVMsVUFBVTtBQUFBLFFBQ3pCLElBQUksV0FBVztBQUFBLFVBQU0sT0FBTyxVQUFTO0FBQUEsUUFDckMsT0FBTyxnQkFBZ0IsS0FBSyxNQUFNLE1BQWdCLENBQUM7QUFBQTtBQUFBLE1BRXJELEtBQUssWUFBOEI7QUFBQSxRQUNqQyxNQUFNLFNBQVMsTUFBTSxNQUFNLElBQUksR0FBRztBQUFBLFFBQ2xDLE9BQU8sV0FBVztBQUFBO0FBQUEsTUFFcEIsS0FBSyxZQUFZO0FBQUEsUUFD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QU0sTUFBTSxJQUFJLEdBQUc7QUFBQTtBQUFBLElBRXZCO0FBQUEsRUFDRjtBQUFBLEVBRUEsT0FBTztBQUFBO0FBR1QsU0FBUyxlQUFrQixDQUFDLE1BQVk7QUFBQSxFQUN0QyxNQUFNLGlCQUFpQjtBQUFBLEVBRXZCLElBQUksZ0JBQWdCO0FBQUEsSUFBTSxPQUFPO0FBQUEsRUFDakMsSUFBSSxNQUFNLFFBQVEsSUFBSSxHQUFHO0FBQUEsSUFDdkIsT0FBTyxLQUFLLElBQUksQ0FBQyxTQUFTLGdCQUFnQixJQUFJLENBQUM7QUFBQSxFQUNqRDtBQUFBLEVBQ0EsSUFBSSxPQUFPLFNBQVMsWUFBWSxTQUFTLE1BQU07QUFBQSxJQUM3QyxPQUFPLE9BQU8sUUFBUSxJQUFJLEVBQUUsT0FBTyxDQUFDLE1BQU0sS0FBSyxXQUFXO0FBQUEsTUFDeEQsSUFBSSxPQUFrQixnQkFBZ0IsS0FBSztBQUFBLE1BQzNDLE9BQU87QUFBQSxPQUNOLENBQUMsQ0FBTTtBQUFBLEVBQ1o7QUFBQSxFQUNBLElBQUksT0FBTyxTQUFTLFVBQVU7QUFBQSxJQUM1QixNQUFNLFFBQVEsS0FBSyxNQUFNLGNBQWM7QUFBQSxJQUN2QyxJQUFJLE9BQU87QUFBQSxNQUNULE1BQU0sdUJBQXVCLE1BQU0sS0FBSyxHQUFHLE1BQU0sS0FBSyxNQUFNLEdBQUcsUUFBUSxLQUFLLEVBQUUsTUFBTSxHQUFHLE1BQU07QUFBQSxNQUM3RixPQUFPLElBQUksS0FBSyxvQkFBb0I7QUFBQSxJQUN0QztBQUFBLEVBQ0Y7QUFBQSxFQUNBLE9BQU87QUFBQTsiLAogICJkZWJ1Z0lkIjogIjZGNkY5QUNEQ0MzNTMxRjI2NDc1NkUyMTY0NzU2RTIxIiwKICAibmFtZXMiOiBbXQp9
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@milkio/redis","version":"1.0.0-beta.134","type":"module","module":"./index.js","types":"./index.d.ts","dependencies":{}}
1
+ {"name":"@milkio/redis","version":"1.0.0-beta.135","type":"module","module":"./index.js","types":"./index.d.ts","dependencies":{}}