@appium/support 2.57.4 → 2.59.1

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.
Files changed (68) hide show
  1. package/build/lib/console.d.ts +110 -0
  2. package/build/lib/console.d.ts.map +1 -0
  3. package/build/lib/console.js +113 -0
  4. package/build/lib/env.d.ts.map +1 -1
  5. package/build/lib/env.js +1 -1
  6. package/build/lib/fs.d.ts.map +1 -1
  7. package/build/lib/fs.js +1 -1
  8. package/build/lib/image-util.d.ts.map +1 -1
  9. package/build/lib/image-util.js +1 -1
  10. package/build/lib/index.d.ts +3 -1
  11. package/build/lib/index.js +8 -3
  12. package/build/lib/log-internal.d.ts.map +1 -1
  13. package/build/lib/log-internal.js +1 -1
  14. package/build/lib/logger.d.ts +1 -1
  15. package/build/lib/logger.d.ts.map +1 -1
  16. package/build/lib/logger.js +1 -1
  17. package/build/lib/logging.d.ts +11 -4
  18. package/build/lib/logging.d.ts.map +1 -1
  19. package/build/lib/logging.js +7 -6
  20. package/build/lib/mjpeg.d.ts.map +1 -1
  21. package/build/lib/mjpeg.js +1 -1
  22. package/build/lib/mkdirp.js +1 -1
  23. package/build/lib/net.d.ts +5 -2
  24. package/build/lib/net.d.ts.map +1 -1
  25. package/build/lib/net.js +1 -1
  26. package/build/lib/node.d.ts +14 -0
  27. package/build/lib/node.d.ts.map +1 -1
  28. package/build/lib/node.js +22 -1
  29. package/build/lib/npm.d.ts.map +1 -1
  30. package/build/lib/npm.js +1 -1
  31. package/build/lib/plist.d.ts +1 -1
  32. package/build/lib/plist.d.ts.map +1 -1
  33. package/build/lib/plist.js +1 -1
  34. package/build/lib/process.d.ts.map +1 -1
  35. package/build/lib/process.js +1 -1
  36. package/build/lib/system.js +1 -1
  37. package/build/lib/tempdir.d.ts.map +1 -1
  38. package/build/lib/tempdir.js +1 -1
  39. package/build/lib/timing.d.ts.map +1 -1
  40. package/build/lib/timing.js +1 -1
  41. package/build/lib/util.d.ts +19 -2
  42. package/build/lib/util.d.ts.map +1 -1
  43. package/build/lib/util.js +3 -7
  44. package/build/lib/zip.d.ts +5 -5
  45. package/build/lib/zip.d.ts.map +1 -1
  46. package/build/lib/zip.js +2 -2
  47. package/build/tsconfig.tsbuildinfo +1 -1
  48. package/lib/console.js +173 -0
  49. package/lib/env.js +12 -14
  50. package/lib/fs.js +87 -62
  51. package/lib/image-util.js +50 -32
  52. package/lib/index.js +39 -8
  53. package/lib/log-internal.js +16 -11
  54. package/lib/logger.js +1 -1
  55. package/lib/logging.js +32 -30
  56. package/lib/mjpeg.js +32 -27
  57. package/lib/mkdirp.js +3 -3
  58. package/lib/net.js +60 -52
  59. package/lib/node.js +50 -16
  60. package/lib/npm.js +50 -47
  61. package/lib/plist.js +34 -18
  62. package/lib/process.js +8 -6
  63. package/lib/system.js +8 -8
  64. package/lib/tempdir.js +14 -9
  65. package/lib/timing.js +12 -15
  66. package/lib/util.js +121 -72
  67. package/lib/zip.js +88 -92
  68. package/package.json +11 -16
@@ -133,4 +133,4 @@ const SECURE_VALUES_PREPROCESSOR = new SecureValuesPreprocessor();
133
133
  exports.SECURE_VALUES_PREPROCESSOR = SECURE_VALUES_PREPROCESSOR;
134
134
  var _default = SECURE_VALUES_PREPROCESSOR;
135
135
  exports.default = _default;
136
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2ctaW50ZXJuYWwuanMiXSwibmFtZXMiOlsiREVGQVVMVF9SRVBMQUNFUiIsIlNlY3VyZVZhbHVlc1ByZXByb2Nlc3NvciIsImNvbnN0cnVjdG9yIiwiX3J1bGVzIiwicnVsZXMiLCJwYXJzZVJ1bGUiLCJydWxlIiwicGF0dGVybiIsInJlcGxhY2VyIiwiZmxhZ3MiLCJfIiwiaXNTdHJpbmciLCJsZW5ndGgiLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJlc2NhcGVSZWdFeHAiLCJpc1BsYWluT2JqZWN0IiwiaGFzIiwidGV4dCIsImZsYWciLCJpbmNsdWRlcyIsInB1c2giLCJ1bmlxIiwiUmVnRXhwIiwiam9pbiIsImxvYWRSdWxlcyIsInNvdXJjZSIsImlzQXJyYXkiLCJmcyIsImV4aXN0cyIsInBhcnNlIiwicmVhZEZpbGUiLCJlIiwibWVzc2FnZSIsImlzc3VlcyIsInByZXByb2Nlc3MiLCJzdHIiLCJyZXN1bHQiLCJyZXBsYWNlIiwiU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUEsTUFBTUEsZ0JBQWdCLEdBQUcsWUFBekI7O0FBR0EsTUFBTUMsd0JBQU4sQ0FBK0I7QUFDN0JDLEVBQUFBLFdBQVcsR0FBSTtBQUNiLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0Q7O0FBTVEsTUFBTEMsS0FBSyxHQUFJO0FBQ1gsV0FBTyxLQUFLRCxNQUFaO0FBQ0Q7O0FBVURFLEVBQUFBLFNBQVMsQ0FBRUMsSUFBRixFQUFRO0FBQ2YsUUFBSUMsT0FBSjtBQUNBLFFBQUlDLFFBQVEsR0FBR1IsZ0JBQWY7QUFDQSxRQUFJUyxLQUFLLEdBQUcsQ0FBQyxHQUFELENBQVo7O0FBQ0EsUUFBSUMsZ0JBQUVDLFFBQUYsQ0FBV0wsSUFBWCxDQUFKLEVBQXNCO0FBQ3BCLFVBQUlBLElBQUksQ0FBQ00sTUFBTCxLQUFnQixDQUFwQixFQUF1QjtBQUNyQixjQUFNLElBQUlDLEtB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TUFBQUEsTUFBTSxHQUFHQSxNQUFNLENBQUNDLE9BQVAsQ0FBZWpDLElBQUksQ0FBQ0MsT0FBcEIsRUFBNkJELElBQUksQ0FBQ0UsUUFBbEMsQ0FBVDtBQUNEOztBQUNELFdBQU84QixNQUFQO0FBQ0Q7O0FBL0g0Qjs7O0FBa0kvQixNQUFNRSwwQkFBMEIsR0FBRyxJQUFJdkMsd0JBQUosRUFBbkM7O2VBR2V1QywwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICcuL2ZzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IERFRkFVTFRfUkVQTEFDRVIgPSAnKipTRUNVUkUqKic7XG5cblxuY2xhc3MgU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc29yIHtcbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHRoaXMuX3J1bGVzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge0FycmF5PFNlY3VyZVZhbHVlUHJlcHJvY2Vzc2luZ1J1bGU+fSBUaGUgbGlzdCBvZiBzdWNjZXNzZnVsbHlcbiAgICogcGFyc2VkIHByZXByb2Nlc3NpbmcgcnVsZXNcbiAgICovXG4gIGdldCBydWxlcyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3J1bGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlcyBzaW5nbGUgcnVsZSBmcm9tIHRoZSBnaXZlbiBKU09OIGZpbGVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8UnVsZX0gcnVsZSBUaGUgcnVsZSBtaWdodCBlaXRoZXIgYmUgcmVwcmVzZW50ZWQgYXMgYSBzaW5nbGUgc3RyaW5nXG4gICAqIG9yIGEgY29uZmlndXJhdGlvbiBvYmplY3RcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBwYXJzaW5nIHRoZSBydWxlXG4gICAqIEByZXR1cm5zIHtTZWN1cmVWYWx1ZVByZXByb2Nlc3NpbmdSdWxlfSBUaGUgcGFyc2VkIHJ1bGVcbiAgICovXG4gIHBhcnNlUnVsZSAocnVsZSkge1xuICAgIGxldCBwYXR0ZXJuO1xuICAgIGxldCByZXBsYWNlciA9IERFRkFVTFRfUkVQTEFDRVI7XG4gICAgbGV0IGZsYWdzID0gWydnJ107XG4gICAgaWYgKF8uaXNTdHJpbmcocnVsZSkpIHtcbiAgICAgIGlmIChydWxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7SlNPTi5zdHJpbmdpZnkocnVsZSl9IC0+IFRoZSB2YWx1ZSBtdXN0IG5vdCBiZSBlbXB0eWApO1xuICAgICAgfVxuICAgICAgcGF0dGVybiA9IGBcXFxcYiR7Xy5lc2NhcGVSZWdFeHAocnVsZSl9XFxcXGJgO1xuICAgIH0gZWxzZSBpZiAoXy5pc1BsYWluT2JqZWN0KHJ1bGUpKSB7XG4gICAgICBpZiAoXy5oYXMocnVsZSwgJ3BhdHRlcm4nKSkge1xuICAgICAgICBpZiAoIV8uaXNTdHJpbmcocnVsZS5wYXR0ZXJuKSB8fCBydWxlLnBhdHRlcm4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0pTT04uc3RyaW5naWZ5KHJ1bGUpfSAtPiBUaGUgdmFsdWUgb2YgJ3BhdHRlcm4nIG11c3QgYmUgYSB2YWxpZCBub24tZW1wdHkgc3RyaW5nYCk7XG4gICAgICAgIH1cbiAgICAgICAgcGF0dGVybiA9IHJ1bGUucGF0dGVybjtcbiAgICAgIH0gZWxzZSBpZiAoXy5oYXMocnVsZSwgJ3RleHQnKSkge1xuICAgICAgICBpZiAoIV8uaXNTdHJpbmcocnVsZS50ZXh0KSB8fCBydWxlLnRleHQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0pTT04uc3RyaW5naWZ5KHJ1bGUpfSAtPiBUaGUgdmFsdWUgb2YgJ3RleHQnIG11c3QgYmUgYSB2YWxpZCBub24tZW1wdHkgc3RyaW5nYCk7XG4gICAgICAgIH1cbiAgICAgICAgcGF0dGVybiA9IGBcXFxcYiR7Xy5lc2NhcGVSZWdFeHAocnVsZS50ZXh0KX1cXFxcYmA7XG4gICAgICB9XG4gICAgICBpZiAoIXBhdHRlcm4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0pTT04uc3RyaW5naWZ5KHJ1bGUpfSAtPiBNdXN0IGVpdGhlciBoYXZlIGEgZmllbGQgbmFtZWQgJ3BhdHRlcm4nIG9yICd0ZXh0J2ApO1xuICAgICAgfVxuXG4gICAgICBpZiAoXy5oYXMocnVsZSwgJ2ZsYWdzJykpIHtcbiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9SZWd1bGFyX0V4cHJlc3Npb25zI0FkdmFuY2VkX3NlYXJjaGluZ193aXRoX2ZsYWdzXzJcbiAgICAgICAgZm9yIChjb25zdCBmbGFnIG9mIFsnaScsICdnJywgJ20nLCAncycsICd1JywgJ3knXSkge1xuICAgICAgICAgIGlmIChfLmluY2x1ZGVzKHJ1bGUuZmxhZ3MsIGZsYWcpKSB7XG4gICAgICAgICAgICBmbGFncy5wdXNoKGZsYWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmbGFncyA9IF8udW5pcShmbGFncyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfLmlzU3RyaW5nKHJ1bGUucmVwbGFjZXIpKSB7XG4gICAgICAgIHJlcGxhY2VyID0gcnVsZS5yZXBsYWNlcjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0pTT04uc3RyaW5naWZ5KHJ1bGUpfSAtPiBNdXN0IGVpdGhlciBiZSBhIHN0cmluZyBvciBhbiBvYmplY3RgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGF0dGVybjogbmV3IFJlZ0V4cChwYXR0ZXJuLCBmbGFncy5qb2luKCcnKSksXG4gICAgICByZXBsYWNlcixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHJ1bGVzIGZyb20gdGhlIGdpdmVuIEpTT04gZmlsZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXXxSdWxlW119IHNvdXJjZSBUaGUgZnVsbCBwYXRoIHRvIHRoZSBKU09OIGZpbGUgY29udGFpbmluZyBzZWN1cmVcbiAgICogdmFsdWVzIHJlcGxhY2VtZW50IHJ1bGVzIG9yIHRoZSBydWxlcyB0aGVtc2VsdmVzIHJlcHJlc2VudGVkIGFzIGFuIGFycmF5XG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZm9ybWF0IG9mIHRoZSBzb3VyY2UgZmlsZSBpcyBpbnZhbGlkIG9yXG4gICAqIGl0IGRvZXMgbm90IGV4aXN0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn0gVGhlIGxpc3Qgb2YgaXNzdWVzIGZvdW5kIHdoaWxlIHBhcnNpbmcgZWFjaCBydWxlLlxuICAgKiBBbiBlbXB0eSBsaXN0IGlzIHJldHVybmVkIGlmIG5vIHJ1bGUgcGFyc2luZyBpc3N1ZXMgd2VyZSBmb3VuZFxuICAgKi9cbiAgYXN5bmMgbG9hZFJ1bGVzIChzb3VyY2UpIHtcbiAgICBsZXQgcnVsZXM7XG4gICAgaWYgKF8uaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICBydWxlcyA9IHNvdXJjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFhd2FpdCBmcy5leGlzdHMoc291cmNlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3NvdXJjZX0nIGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCBhY2Nlc3NpYmxlYCk7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBydWxlcyA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUoc291cmNlLCAndXRmOCcpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtzb3VyY2V9JyBtdXN0IGJlIGEgdmFsaWQgSlNPTiBmaWxlLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgICBpZiAoIV8uaXNBcnJheShydWxlcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtzb3VyY2V9JyBtdXN0IGNvbnRhaW4gYSB2YWxpZCBKU09OIGFycmF5YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaXNzdWVzID0gW107XG4gICAgdGhpcy5fcnVsZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgcnVsZXMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuX3J1bGVzLnB1c2godGhpcy5wYXJzZVJ1bGUocnVsZSkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpc3N1ZXMucHVzaChlLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNzdWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIHNlY3VyZSB2YWx1ZXMgcmVwbGFjZW1lbnQgaW5zaWRlIHRoZSBnaXZlbiBzdHJpbmdcbiAgICogYWNjb3JkaW5nIHRvIHRoZSBwcmV2aW91c2x5IGxvYWRlZCBydWxlcy4gTm8gcmVwbGFjZW1lbnQgaXMgbWFkZVxuICAgKiBpZiB0aGVyZSBhcmUgbm8gcnVsZXMgb3IgdGhlIGdpdmVuIHZhbHVlIGlzIG5vdCBhIHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyIFRoZSBzdHJpbmcgdG8gbWFrZSByZXBsYWNlbWVudHMgaW5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHN0cmluZyB3aXRoIHJlcGxhY2VtZW50cyBtYWRlXG4gICAqL1xuICBwcmVwcm9jZXNzIChzdHIpIHtcbiAgICBpZiAodGhpcy5fcnVsZXMubGVuZ3RoID09PSAwIHx8ICFfLmlzU3RyaW5nKHN0cikpIHtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdCA9IHN0cjtcbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgdGhpcy5fcnVsZXMpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKHJ1bGUucGF0dGVybiwgcnVsZS5yZXBsYWNlcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuY29uc3QgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IgPSBuZXcgU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc29yKCk7XG5cbmV4cG9ydCB7IFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SLCBTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzb3IgfTtcbmV4cG9ydCBkZWZhdWx0IFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SO1xuXG4vKipcbiAqIEB0eXBlZGVmIFJ1bGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwYXR0ZXJuIEEgdmFsaWQgUmVnRXhwIHBhdHRlcm4gdG8gYmUgcmVwbGFjZWRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0ZXh0IEEgdGV4dCBtYXRjaCB0byByZXBsYWNlLiBFaXRoZXIgdGhpcyBwcm9wZXJ0eSBvciB0aGVcbiAqIGFib3ZlIG9uZSBtdXN0IGJlIHByb3ZpZGVkLiBgcGF0dGVybmAgaGFzIHByaW9yaXR5IG92ZXIgYHRleHRgIGlmIGJvdGggYXJlIHByb3ZpZGVkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtmbGFnc10gUmVndWxhciBleHByZXNzaW9uIGZsYWdzIGZvciB0aGUgZ2l2ZW4gcGF0dGVybi5cbiAqIFN1cHBvcnRlZCBmbGFnIGFyZSB0aGUgc2FtZSBhcyBmb3IgdGhlIHN0YW5kYXJkIEphdmFTY3JpcHQgUmVnRXhwIGNvbnN0cnVjdG9yOlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9SZWd1bGFyX0V4cHJlc3Npb25zI0FkdmFuY2VkX3NlYXJjaGluZ193aXRoX2ZsYWdzXzJcbiAqIFRoZSAnZycgKGdsb2JhbCBtYXRjaGluZykgaXMgYWx3YXlzIGVuYWJsZWQgdGhvdWdoLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZXBsYWNlcl0gVGhlIHJlcGxhY2VyIHZhbHVlIHRvIHVzZS4gQnkgZGVmYXVsdFxuICogZXF1YWxzIHRvIGBERUZBVUxUX1NFQ1VSRV9SRVBMQUNFUmBcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFNlY3VyZVZhbHVlUHJlcHJvY2Vzc2luZ1J1bGVcbiAqIEBwcm9wZXJ0eSB7UmVnRXhwfSBwYXR0ZXJuIFRoZSBwYXJzZWQgcGF0dGVybiB3aGljaCBpcyBnb2luZyB0byBiZSB1c2VkIGZvciByZXBsYWNlbWVudFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZXBsYWNlcl0gVGhlIHJlcGxhY2VyIHZhbHVlIHRvIHVzZS4gQnkgZGVmYXVsdFxuICogZXF1YWxzIHRvIGBERUZBVUxUX1NFQ1VSRV9SRVBMQUNFUmBcbiAqL1xuIl19
136
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERUZBVUxUX1JFUExBQ0VSIiwiU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc29yIiwiY29uc3RydWN0b3IiLCJfcnVsZXMiLCJydWxlcyIsInBhcnNlUnVsZSIsInJ1bGUiLCJwYXR0ZXJuIiwicmVwbGFjZXIiLCJmbGFncyIsIl8iLCJpc1N0cmluZyIsImxlbmd0aCIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImVzY2FwZVJlZ0V4cCIsImlzUGxhaW5PYmplY3QiLCJoYXMiLCJ0ZXh0IiwiZmxhZyIsImluY2x1ZGVzIiwicHVzaCIsInVuaXEiLCJSZWdFeHAiLCJqb2luIiwibG9hZFJ1bGVzIiwic291cmNlIiwiaXNBcnJheSIsImZzIiwiZXhpc3RzIiwicGFyc2UiLCJyZWFkRmlsZSIsImUiLCJtZXNzYWdlIiwiaXNzdWVzIiwicHJlcHJvY2VzcyIsInN0ciIsInJlc3VsdCIsInJlcGxhY2UiLCJTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUiJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2ctaW50ZXJuYWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gJy4vZnMnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuY29uc3QgREVGQVVMVF9SRVBMQUNFUiA9ICcqKlNFQ1VSRSoqJztcblxuY2xhc3MgU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5fcnVsZXMgPSBbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyB7QXJyYXk8U2VjdXJlVmFsdWVQcmVwcm9jZXNzaW5nUnVsZT59IFRoZSBsaXN0IG9mIHN1Y2Nlc3NmdWxseVxuICAgKiBwYXJzZWQgcHJlcHJvY2Vzc2luZyBydWxlc1xuICAgKi9cbiAgZ2V0IHJ1bGVzKCkge1xuICAgIHJldHVybiB0aGlzLl9ydWxlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBQYXJzZXMgc2luZ2xlIHJ1bGUgZnJvbSB0aGUgZ2l2ZW4gSlNPTiBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfFJ1bGV9IHJ1bGUgVGhlIHJ1bGUgbWlnaHQgZWl0aGVyIGJlIHJlcHJlc2VudGVkIGFzIGEgc2luZ2xlIHN0cmluZ1xuICAgKiBvciBhIGNvbmZpZ3VyYXRpb24gb2JqZWN0XG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgcGFyc2luZyB0aGUgcnVsZVxuICAgKiBAcmV0dXJucyB7U2VjdXJlVmFsdWVQcmVwcm9jZXNzaW5nUnVsZX0gVGhlIHBhcnNlZCBydWxlXG4gICAqL1xuICBwYXJzZVJ1bGUocnVsZSkge1xuICAgIGxldCBwYXR0ZXJuO1xuICAgIGxldCByZXBsYWNlciA9IERFRkFVTFRfUkVQTEFDRVI7XG4gICAgbGV0IGZsYWdzID0gWydnJ107XG4gICAgaWYgKF8uaXNTdHJpbmcocnVsZSkpIHtcbiAgICAgIGlmIChydWxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7SlNPTi5zdHJpbmdpZnkocnVsZSl9IC0+IFRoZSB2YWx1ZSBtdXN0IG5vdCBiZSBlbXB0eWApO1xuICAgICAgfVxuICAgICAgcGF0dGVybiA9IGBcXFxcYiR7Xy5lc2NhcGVSZWdFeHAocnVsZSl9XFxcXGJgO1xuICAgIH0gZWxzZSBpZiAoXy5pc1BsYWluT2JqZWN0KHJ1bGUpKSB7XG4gICAgICBpZiAoXy5oYXMocnVsZSwgJ3BhdHRlcm4nKSkge1xuICAgICAgICBpZiAoIV8uaXNTdHJpbmcocnVsZS5wYXR0ZXJuKSB8fCBydWxlLnBhdHRlcm4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYCR7SlNPTi5zdHJpbmdpZnkocnVsZSl9IC0+IFRoZSB2YWx1ZSBvZiAncGF0dGVybicgbXVzdCBiZSBhIHZhbGlkIG5vbi1lbXB0eSBzdHJpbmdgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBwYXR0ZXJuID0gcnVsZS5wYXR0ZXJuO1xuICAgICAgfSBlbHNlIGlmIChfLmhhcyhydWxlLCAndGV4dCcpKSB7XG4gICAgICAgIGlmICghXy5pc1N0cmluZyhydWxlLnRleHQpIHx8IHJ1bGUudGV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgJHtKU09OLnN0cmluZ2lmeShydWxlKX0gLT4gVGhlIHZhbHVlIG9mICd0ZXh0JyBtdXN0IGJlIGEgdmFsaWQgbm9uLWVtcHR5IHN0cmluZ2BcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHBhdHRlcm4gPSBgXFxcXGIke18uZXNjYXBlUmVnRXhwKHJ1bGUudGV4dCl9XFxcXGJgO1xuICAgICAgfVxuICAgICAgaWYgKCFwYXR0ZXJuKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgJHtKU09OLnN0cmluZ2lmeShydWxlKX0gLT4gTXVzdCBlaXRoZXIgaGF2ZSBhIGZpZWxkIG5hbWVkICdwYXR0ZXJuJyBvciAndGV4dCdgXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfLmhhcyhydWxlLCAnZmxhZ3MnKSkge1xuICAgICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L0d1aWRlL1JlZ3VsYXJfRXhwcmVzc2lvbnMjQWR2YW5jZWRfc2VhcmNoaW5nX3dpdGhfZmxhZ3NfMlxuICAgICAgICBmb3IgKGNvbnN0IGZsYWcgb2YgWydpJywgJ2cnLCAnbScsICdzJywgJ3UnLCAneSddKSB7XG4gICAgICAgICAgaWYgKF8uaW5jbHVkZXMocnVsZS5mbGFncywgZmxhZykpIHtcbiAgICAgICAgICAgIGZsYWdzLnB1c2goZmxhZyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZsYWdzID0gXy51bmlxKGZsYWdzKTtcbiAgICAgIH1cblxuICAgICAgaWYgKF8uaXNTdHJpbmcocnVsZS5yZXBsYWNlcikpIHtcbiAgICAgICAgcmVwbGFjZXIgPSBydWxlLnJlcGxhY2VyO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7SlNPTi5zdHJpbmdpZnkocnVsZSl9IC0+IE11c3QgZWl0aGVyIGJlIGEgc3RyaW5nIG9yIGFuIG9iamVjdGApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBwYXR0ZXJuOiBuZXcgUmVnRXhwKHBhdHRlcm4sIGZsYWdzLmpvaW4oJycpKSxcbiAgICAgIHJlcGxhY2VyLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgcnVsZXMgZnJvbSB0aGUgZ2l2ZW4gSlNPTiBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfFJ1bGVbXX0gc291cmNlIFRoZSBmdWxsIHBhdGggdG8gdGhlIEpTT04gZmlsZSBjb250YWluaW5nIHNlY3VyZVxuICAgKiB2YWx1ZXMgcmVwbGFjZW1lbnQgcnVsZXMgb3IgdGhlIHJ1bGVzIHRoZW1zZWx2ZXMgcmVwcmVzZW50ZWQgYXMgYW4gYXJyYXlcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBmb3JtYXQgb2YgdGhlIHNvdXJjZSBmaWxlIGlzIGludmFsaWQgb3JcbiAgICogaXQgZG9lcyBub3QgZXhpc3RcbiAgICogQHJldHVybnMge1Byb21pc2U8c3RyaW5nW10+fSBUaGUgbGlzdCBvZiBpc3N1ZXMgZm91bmQgd2hpbGUgcGFyc2luZyBlYWNoIHJ1bGUuXG4gICAqIEFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgaWYgbm8gcnVsZSBwYXJzaW5nIGlzc3VlcyB3ZXJlIGZvdW5kXG4gICAqL1xuICBhc3luYyBsb2FkUnVsZXMoc291cmNlKSB7XG4gICAgbGV0IHJ1bGVzO1xuICAgIGlmIChfLmlzQXJyYXkoc291cmNlKSkge1xuICAgICAgcnVsZXMgPSBzb3VyY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghKGF3YWl0IGZzLmV4aXN0cyhzb3VyY2UpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3NvdXJjZX0nIGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCBhY2Nlc3NpYmxlYCk7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBydWxlcyA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUoc291cmNlLCAndXRmOCcpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtzb3VyY2V9JyBtdXN0IGJlIGEgdmFsaWQgSlNPTiBmaWxlLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgICBpZiAoIV8uaXNBcnJheShydWxlcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtzb3VyY2V9JyBtdXN0IGNvbnRhaW4gYSB2YWxpZCBKU09OIGFycmF5YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaXNzdWVzID0gW107XG4gICAgdGhpcy5fcnVsZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgcnVsZXMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuX3J1bGVzLnB1c2godGhpcy5wYXJzZVJ1bGUocnVsZSkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpc3N1ZXMucHVzaChlLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNzdWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIHNlY3VyZSB2YWx1ZXMgcmVwbGFjZW1lbnQgaW5zaWRlIHRoZSBnaXZlbiBzdHJpbmdcbiAgICogYWNjb3JkaW5nIHRvIHRoZSBwcmV2aW91c2x5IGxvYWRlZCBydWxlcy4gTm8gcmVwbGFjZW1lbnQgaXMgbWFkZVxuICAgKiBpZiB0aGVyZSBhcmUgbm8gcnVsZXMgb3IgdGhlIGdpdmVuIHZhbHVlIGlzIG5vdCBhIHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyIFRoZSBzdHJpbmcgdG8gbWFrZSByZXBsYWNlbWVudHMgaW5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHN0cmluZyB3aXRoIHJlcGxhY2VtZW50cyBtYWRlXG4gICAqL1xuICBwcmVwcm9jZXNzKHN0cikge1xuICAgIGlmICh0aGlzLl9ydWxlcy5sZW5ndGggPT09IDAgfHwgIV8uaXNTdHJpbmcoc3RyKSkge1xuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0ID0gc3RyO1xuICAgIGZvciAoY29uc3QgcnVsZSBvZiB0aGlzLl9ydWxlcykge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UocnVsZS5wYXR0ZXJuLCBydWxlLnJlcGxhY2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5jb25zdCBTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUiA9IG5ldyBTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzb3IoKTtcblxuZXhwb3J0IHtTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUiwgU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc29yfTtcbmV4cG9ydCBkZWZhdWx0IFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SO1xuXG4vKipcbiAqIEB0eXBlZGVmIFJ1bGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwYXR0ZXJuIEEgdmFsaWQgUmVnRXhwIHBhdHRlcm4gdG8gYmUgcmVwbGFjZWRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0ZXh0IEEgdGV4dCBtYXRjaCB0byByZXBsYWNlLiBFaXRoZXIgdGhpcyBwcm9wZXJ0eSBvciB0aGVcbiAqIGFib3ZlIG9uZSBtdXN0IGJlIHByb3ZpZGVkLiBgcGF0dGVybmAgaGFzIHByaW9yaXR5IG92ZXIgYHRleHRgIGlmIGJvdGggYXJlIHByb3ZpZGVkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtmbGFnc10gUmVndWxhciBleHByZXNzaW9uIGZsYWdzIGZvciB0aGUgZ2l2ZW4gcGF0dGVybi5cbiAqIFN1cHBvcnRlZCBmbGFnIGFyZSB0aGUgc2FtZSBhcyBmb3IgdGhlIHN0YW5kYXJkIEphdmFTY3JpcHQgUmVnRXhwIGNvbnN0cnVjdG9yOlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9SZWd1bGFyX0V4cHJlc3Npb25zI0FkdmFuY2VkX3NlYXJjaGluZ193aXRoX2ZsYWdzXzJcbiAqIFRoZSAnZycgKGdsb2JhbCBtYXRjaGluZykgaXMgYWx3YXlzIGVuYWJsZWQgdGhvdWdoLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZXBsYWNlcl0gVGhlIHJlcGxhY2VyIHZhbHVlIHRvIHVzZS4gQnkgZGVmYXVsdFxuICogZXF1YWxzIHRvIGBERUZBVUxUX1NFQ1VSRV9SRVBMQUNFUmBcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFNlY3VyZVZhbHVlUHJlcHJvY2Vzc2luZ1J1bGVcbiAqIEBwcm9wZXJ0eSB7UmVnRXhwfSBwYXR0ZXJuIFRoZSBwYXJzZWQgcGF0dGVybiB3aGljaCBpcyBnb2luZyB0byBiZSB1c2VkIGZvciByZXBsYWNlbWVudFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZXBsYWNlcl0gVGhlIHJlcGxhY2VyIHZhbHVlIHRvIHVzZS4gQnkgZGVmYXVsdFxuICogZXF1YWxzIHRvIGBERUZBVUxUX1NFQ1VSRV9SRVBMQUNFUmBcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBLE1BQU1BLGdCQUFnQixHQUFHLFlBQXpCOztBQUVBLE1BQU1DLHdCQUFOLENBQStCO0VBQzdCQyxXQUFXLEdBQUc7SUFDWixLQUFLQyxNQUFMLEdBQWMsRUFBZDtFQUNEOztFQU1RLElBQUxDLEtBQUssR0FBRztJQUNWLE9BQU8sS0FBS0QsTUFBWjtFQUNEOztFQVVERSxTQUFTLENBQUNDLElBQUQsRUFBTztJQUNkLElBQUlDLE9BQUo7SUFDQSxJQUFJQyxRQUFRLEdBQUdSLGdCQUFmO0lBQ0EsSUFBSVMsS0FBSyxHQUFHLENBQUMsR0FB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
@@ -1,3 +1,3 @@
1
1
  export default log;
2
- declare let log: import("@appium/types").AppiumLogger;
2
+ declare let log: import("../../types/build").AppiumLogger;
3
3
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";AAEA,sDAA+B"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";AAEA,0DAA+B"}
@@ -12,4 +12,4 @@ var _logging = require("./logging");
12
12
  let log = (0, _logging.getLogger)('Support');
13
13
  var _default = log;
14
14
  exports.default = _default;
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2dnZXIuanMiXSwibmFtZXMiOlsibG9nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxJQUFJQSxHQUFHLEdBQUcsd0JBQVUsU0FBVixDQUFWO2VBRWVBLEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tICcuL2xvZ2dpbmcnO1xuXG5sZXQgbG9nID0gZ2V0TG9nZ2VyKCdTdXBwb3J0Jyk7XG5cbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdfQ==
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJsb2ciLCJnZXRMb2dnZXIiXSwic291cmNlcyI6WyIuLi8uLi9saWIvbG9nZ2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Z2V0TG9nZ2VyfSBmcm9tICcuL2xvZ2dpbmcnO1xuXG5sZXQgbG9nID0gZ2V0TG9nZ2VyKCdTdXBwb3J0Jyk7XG5cbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBRUEsSUFBSUEsR0FBRyxHQUFHLElBQUFDLGtCQUFBLEVBQVUsU0FBVixDQUFWO2VBRWVELEcifQ==
@@ -1,3 +1,5 @@
1
+ /** @type {import('@appium/types').AppiumLoggerLevel[]} */
2
+ export const LEVELS: import('@appium/types').AppiumLoggerLevel[];
1
3
  export default log;
2
4
  export type LoadResult = {
3
5
  /**
@@ -11,16 +13,21 @@ export type LoadResult = {
11
13
  */
12
14
  rules: import('./log-internal').SecureValuePreprocessingRule[];
13
15
  };
14
- export type Prefix = import('@appium/types').Prefix;
16
+ export type AppiumLoggerPrefix = import('@appium/types').AppiumLoggerPrefix;
15
17
  export type AppiumLogger = import('@appium/types').AppiumLogger;
18
+ export type AppiumLoggerLevel = import('@appium/types').AppiumLoggerLevel;
16
19
  export const log: import("@appium/types").AppiumLogger;
17
- export function patchLogger(logger: any): void;
18
20
  /**
19
21
  *
20
- * @param {Prefix?} prefix
22
+ * @param {import('npmlog').Logger} logger
23
+ */
24
+ export function patchLogger(logger: import('npmlog').Logger): void;
25
+ /**
26
+ *
27
+ * @param {AppiumLoggerPrefix?} prefix
21
28
  * @returns {AppiumLogger}
22
29
  */
23
- export function getLogger(prefix?: Prefix | null): AppiumLogger;
30
+ export function getLogger(prefix?: AppiumLoggerPrefix | null): AppiumLogger;
24
31
  /**
25
32
  * @typedef LoadResult
26
33
  * @property {string[]} issues The list of rule parsing issues (one item per rule).
@@ -1 +1 @@
1
- {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../lib/logging.js"],"names":[],"mappings":";;;;;;YA2Hc,MAAM,EAAE;;;;;WAER,OAAO,gBAAgB,EAAE,4BAA4B,EAAE;;qBAgCxD,OAAO,eAAe,EAAE,MAAM;2BAI9B,OAAO,eAAe,EAAE,YAAY;AAVjD,uDAAwB;AArIxB,+CAIC;AAwCD;;;;GAIG;AACH,mCAHW,MAAM,UACJ,YAAY,CAsDxB;AAED;;;;;;GAMG;AAEH;;;;;;;;;;;;GAYG;AACH,kEAPW,MAAM,GAAC,MAAM,EAAE,GAAC,OAAO,gBAAgB,EAAE,IAAI,EAAE,GAK7C,QAAQ,UAAU,CAAC,CAQ/B"}
1
+ {"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../lib/logging.js"],"names":[],"mappings":"AAQA,0DAA0D;AAC1D,qBADW,OAAO,eAAe,EAAE,iBAAiB,EAAE,CAC+B;;;;;;;YAsHvE,MAAM,EAAE;;;;;WAER,OAAO,gBAAgB,EAAE,4BAA4B,EAAE;;iCAgCxD,OAAO,eAAe,EAAE,kBAAkB;2BAC1C,OAAO,eAAe,EAAE,YAAY;gCACpC,OAAO,eAAe,EAAE,iBAAiB;AARtD,uDAAwB;AAvIxB;;;GAGG;AACH,oCAFW,OAAO,QAAQ,EAAE,MAAM,QAMjC;AAsCD;;;;GAIG;AACH,mCAHW,kBAAkB,UAChB,YAAY,CAsDxB;AAED;;;;;;GAMG;AAEH;;;;;;;;;;;;GAYG;AACH,kEAPW,MAAM,GAAC,MAAM,EAAE,GAAC,OAAO,gBAAgB,EAAE,IAAI,EAAE,GAK7C,QAAQ,UAAU,CAAC,CAQ/B"}
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
8
+ exports.default = exports.LEVELS = void 0;
9
9
  exports.getLogger = getLogger;
10
10
  exports.loadSecureValuesPreprocessingRules = loadSecureValuesPreprocessingRules;
11
11
  exports.log = void 0;
@@ -23,12 +23,13 @@ var _moment = _interopRequireDefault(require("moment"));
23
23
 
24
24
  var _logInternal = _interopRequireDefault(require("./log-internal"));
25
25
 
26
- const NPM_LEVELS = ['silly', 'verbose', 'debug', 'info', 'http', 'warn', 'error'];
26
+ const LEVELS = ['silly', 'verbose', 'debug', 'info', 'http', 'warn', 'error'];
27
+ exports.LEVELS = LEVELS;
27
28
  const MAX_LOG_RECORDS_COUNT = 3000;
28
29
  const PREFIX_TIMESTAMP_FORMAT = 'HH-mm-ss:SSS';
29
30
  let mockLog = {};
30
31
 
31
- for (let level of NPM_LEVELS) {
32
+ for (let level of LEVELS) {
32
33
  mockLog[level] = () => {};
33
34
  }
34
35
 
@@ -70,7 +71,7 @@ function getLogger(prefix = null) {
70
71
 
71
72
  let wrappedLogger = {
72
73
  unwrap: () => logger,
73
- levels: NPM_LEVELS,
74
+ levels: LEVELS,
74
75
  prefix
75
76
  };
76
77
  Object.defineProperty(wrappedLogger, 'level', {
@@ -87,7 +88,7 @@ function getLogger(prefix = null) {
87
88
  });
88
89
  const logTimestamp = process.env._LOG_TIMESTAMP === '1';
89
90
 
90
- for (const level of NPM_LEVELS) {
91
+ for (const level of LEVELS) {
91
92
  wrappedLogger[level] = function (...args) {
92
93
  const actualPrefix = getActualPrefix(this.prefix, logTimestamp);
93
94
 
@@ -126,4 +127,4 @@ const log = getLogger();
126
127
  exports.log = log;
127
128
  var _default = log;
128
129
  exports.default = _default;
129
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2dnaW5nLmpzIl0sIm5hbWVzIjpbIk5QTV9MRVZFTFMiLCJNQVhfTE9HX1JFQ09SRFNfQ09VTlQiLCJQUkVGSVhfVElNRVNUQU1QX0ZPUk1BVCIsIm1vY2tMb2ciLCJsZXZlbCIsInBhdGNoTG9nZ2VyIiwibG9nZ2VyIiwiZGVidWciLCJhZGRMZXZlbCIsImZnIiwiYmciLCJfZ2V0TG9nZ2VyIiwidGVzdGluZ01vZGUiLCJwcm9jZXNzIiwiZW52IiwiX1RFU1RJTkciLCJmb3JjZUxvZ01vZGUiLCJfRk9SQ0VfTE9HUyIsInVzaW5nR2xvYmFsTG9nIiwiZ2xvYmFsIiwiX2dsb2JhbF9ucG1sb2ciLCJucG1sb2ciLCJtYXhSZWNvcmRTaXplIiwiZ2V0QWN0dWFsUHJlZml4IiwicHJlZml4IiwibG9nVGltZXN0YW1wIiwicmVzdWx0IiwiXyIsImlzRnVuY3Rpb24iLCJmb3JtYXQiLCJnZXRMb2dnZXIiLCJ3cmFwcGVkTG9nZ2VyIiwidW53cmFwIiwibGV2ZWxzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXQiLCJzZXQiLCJuZXdWYWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJfTE9HX1RJTUVTVEFNUCIsImFyZ3MiLCJhY3R1YWxQcmVmaXgiLCJhcmciLCJvdXQiLCJpc0Vycm9yIiwic3RhY2siLCJsaW5lIiwic3BsaXQiLCJ1bmxlYWtlZExpbmUiLCJTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUiIsInByZXByb2Nlc3MiLCJlcnJvckFuZFRocm93IiwiZXJyIiwiZXJyb3IiLCJFcnJvciIsImxvYWRTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzaW5nUnVsZXMiLCJydWxlc0pzb25QYXRoIiwiaXNzdWVzIiwibG9hZFJ1bGVzIiwicnVsZXMiLCJjbG9uZURlZXAiLCJsb2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU1BLFVBQVUsR0FBRyxD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TztBQUNMQyxJQUFBQSxNQURLO0FBRUxFLElBQUFBLEtBQUssRUFBRWxDLGdCQUFFbUMsU0FBRixDQUFZWCxxQkFBMkJVLEtBQXZDO0FBRkYsR0FBUDtBQUlEOztBQUdELE1BQU1FLEdBQUcsR0FBR2pDLFNBQVMsRUFBckI7O2VBR2VpQyxHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5wbWxvZyBmcm9tICducG1sb2cnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHVubGVha1N0cmluZyB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IgZnJvbSAnLi9sb2ctaW50ZXJuYWwnO1xuXG4vLyBsZXZlbHMgdGhhdCBhcmUgYXZhaWxhYmxlIGZyb20gYG5wbWxvZ2BcbmNvbnN0IE5QTV9MRVZFTFMgPSBbJ3NpbGx5JywgJ3ZlcmJvc2UnLCAnZGVidWcnLCAnaW5mbycsICdodHRwJywgJ3dhcm4nLCAnZXJyb3InXTtcbmNvbnN0IE1BWF9MT0dfUkVDT1JEU19DT1VOVCA9IDMwMDA7XG5cbmNvbnN0IFBSRUZJWF9USU1FU1RBTVBfRk9STUFUID0gJ0hILW1tLXNzOlNTUyc7XG5cbi8vIG1vY2sgbG9nIG9iamVjdCB1c2VkIGluIHRlc3RpbmcgbW9kZVxubGV0IG1vY2tMb2cgPSB7fTtcbmZvciAobGV0IGxldmVsIG9mIE5QTV9MRVZFTFMpIHtcbiAgbW9ja0xvZ1tsZXZlbF0gPSAoKSA9PiB7fTtcbn1cblxuZnVuY3Rpb24gcGF0Y2hMb2dnZXIgKGxvZ2dlcikge1xuICBpZiAoIWxvZ2dlci5kZWJ1Zykge1xuICAgIGxvZ2dlci5hZGRMZXZlbCgnZGVidWcnLCAxMDAwLCB7IGZnOiAnYmx1ZScsIGJnOiAnYmxhY2snIH0sICdkYnVnJyk7XG4gIH1cbn1cblxuLyoqXG4gKlxuICogQHJldHVybnMge1tucG1sb2cuTG9nZ2VyLCBib29sZWFuXX1cbiAqL1xuZnVuY3Rpb24gX2dldExvZ2dlciAoKSB7XG4gIC8vIGNoZWNrIGlmIHRoZSB1c2VyIHNldCB0aGUgYF9URVNUSU5HYCBvciBgX0ZPUkNFX0xPR1NgIGZsYWdcbiAgY29uc3QgdGVzdGluZ01vZGUgPSBwcm9jZXNzLmVudi5fVEVTVElORyA9PT0gJzEnO1xuICBjb25zdCBmb3JjZUxvZ01vZGUgPSBwcm9jZXNzLmVudi5fRk9SQ0VfTE9HUyA9PT0gJzEnO1xuXG4gIC8vIGlmIGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgaXMgYSBsb2dnZXIgaW5zdGFuY2UgdGhhdCBpcyBhbHJlYWR5IGFyb3VuZCxcbiAgLy8gaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHQgbyB1c2UgdGhhdFxuICBjb25zdCB1c2luZ0dsb2JhbExvZyA9ICEhZ2xvYmFsLl9nbG9iYWxfbnBtbG9nO1xuICBsZXQgbG9nZ2VyO1xuICBpZiAodGVzdGluZ01vZGUgJiYgIWZvcmNlTG9nTW9kZSkge1xuICAgIC8vIGluIHRlc3RpbmcgbW9kZSwgdXNlIGEgbW9jayBsb2dnZXIgb2JqZWN0IHRoYXQgd2UgY2FuIHF1ZXJ5XG4gICAgbG9nZ2VyID0gbW9ja0xvZztcbiAgfSBlbHNlIHtcbiAgICAvLyBvdGhlcndpc2UsIGVpdGhlciB1c2UgdGhlIGdsb2JhbCwgb3IgYSBuZXcgYG5wbWxvZ2Agb2JqZWN0XG4gICAgbG9nZ2VyID0gZ2xvYmFsLl9nbG9iYWxfbnBtbG9nIHx8IG5wbWxvZztcbiAgICAvLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxMDAwMCwgd2hpY2ggY2F1c2VzIGV4Y2Vzc2l2ZSBtZW1vcnkgdXNhZ2VcbiAgICBsb2dnZXIubWF4UmVjb3JkU2l6ZSA9IE1BWF9MT0dfUkVDT1JEU19DT1VOVDtcbiAgfVxuICBwYXRjaExvZ2dlcihsb2dnZXIpO1xuICByZXR1cm4gW2xvZ2dlciwgdXNpbmdHbG9iYWxMb2ddO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UHJlZml4P30gcHJlZml4XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGxvZ1RpbWVzdGFtcCB3aGV0aGVyIHRvIGluY2x1ZGUgdGltZXN0YW1wcyBpbnRvIGxvZyBwcmVmaXhlc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZ2V0QWN0dWFsUHJlZml4IChwcmVmaXgsIGxvZ1RpbWVzdGFtcCA9IGZhbHNlKSB7XG4gIGNvbnN0IHJlc3VsdCA9IChfLmlzRnVuY3Rpb24ocHJlZml4KSA/IHByZWZpeCgpIDogcHJlZml4KSA/PyAnJztcbiAgcmV0dXJuIGxvZ1RpbWVzdGFtcFxuICAgID8gYFske21vbWVudCgpLmZvcm1hdChQUkVGSVhfVElNRVNUQU1QX0ZPUk1BVCl9XSAke3Jlc3VsdH1gXG4gICAgOiByZXN1bHQ7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7UHJlZml4P30gcHJlZml4XG4gKiBAcmV0dXJucyB7QXBwaXVtTG9nZ2VyfVxuICovXG5mdW5jdGlvbiBnZXRMb2dnZXIgKHByZWZpeCA9IG51bGwpIHtcbiAgbGV0IFtsb2dnZXIsIHVzaW5nR2xvYmFsTG9nXSA9IF9nZXRMb2dnZXIoKTtcblxuICAvLyB3cmFwIHRoZSBsb2dnZXIgc28gdGhhdCB3ZSBjYW4gY2F0Y2ggYW5kIG1vZGlmeSBhbnkgbG9nZ2luZ1xuICBsZXQgd3JhcHBlZExvZ2dlciA9IHtcbiAgICB1bndyYXA6ICgpID0+IGxvZ2dlcixcbiAgICBsZXZlbHM6IE5QTV9MRVZFTFMsXG4gICAgcHJlZml4LFxuICB9O1xuXG4gIC8vIGFsbG93IGFjY2VzcyB0byB0aGUgbGV2ZWwgb2YgdGhlIHVuZGVybHlpbmcgbG9nZ2VyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3cmFwcGVkTG9nZ2VyLCAnbGV2ZWwnLCB7XG4gICAgZ2V0ICgpIHtcbiAgICAgIHJldHVybiBsb2dnZXIubGV2ZWw7XG4gICAgfSxcbiAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICBsb2dnZXIubGV2ZWwgPSBuZXdWYWx1ZTtcbiAgICB9LFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xuXG4gIGNvbnN0IGxvZ1RpbWVzdGFtcCA9IHByb2Nlc3MuZW52Ll9MT0dfVElNRVNUQU1QID09PSAnMSc7XG5cbiAgLy8gYWRkIGFsbCB0aGUgbGV2ZWxzIGZyb20gYG5wbWxvZ2AsIGFuZCBtYXAgdG8gdGhlIHVuZGVybHlpbmcgbG9nZ2VyXG4gIGZvciAoY29uc3QgbGV2ZWwgb2YgTlBNX0xFVkVMUykge1xuICAgIHdyYXBwZWRMb2dnZXJbbGV2ZWxdID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgIGNvbnN0IGFjdHVhbFByZWZpeCA9IGdldEFjdHVhbFByZWZpeCh0aGlzLnByZWZpeCwgbG9nVGltZXN0YW1wKTtcbiAgICAgIGZvciAoY29uc3QgYXJnIG9mIGFyZ3MpIHtcbiAgICAgICAgY29uc3Qgb3V0ID0gKF8uaXNFcnJvcihhcmcpICYmIGFyZy5zdGFjaykgPyBhcmcuc3RhY2sgOiBgJHthcmd9YDtcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIG91dC5zcGxpdCgnXFxuJykpIHtcbiAgICAgICAgICAvLyBpdCBpcyBuZWNlc3NhcnkgdG8gdW5sZWFrIGVhY2ggbGluZSBiZWNhdXNlIGBzcGxpdGAgY2FsbFxuICAgICAgICAgIC8vIGNyZWF0ZXMgXCJ2aWV3c1wiIHRvIHRoZSBvcmlnaW5hbCBzdHJpbmcgYXMgd2VsbCBhcyB0aGUgYHN1YnN0cmluZ2Agb25lXG4gICAgICAgICAgY29uc3QgdW5sZWFrZWRMaW5lID0gdW5sZWFrU3RyaW5nKGxpbmUpO1xuICAgICAgICAgIGxvZ2dlcltsZXZlbF0oYWN0dWFsUHJlZml4LCBTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUi5wcmVwcm9jZXNzKHVubGVha2VkTGluZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxuICAvLyBhZGQgbWV0aG9kIHRvIGxvZyBhbiBlcnJvciwgYW5kIHRocm93IGl0LCBmb3IgY29udmVuaWVuY2VcbiAgd3JhcHBlZExvZ2dlci5lcnJvckFuZFRocm93ID0gZnVuY3Rpb24gKGVycikge1xuICAgIHRoaXMuZXJyb3IoZXJyKTtcbiAgICAvLyBtYWtlIHN1cmUgd2UgaGF2ZSBhbiBgRXJyb3JgIG9iamVjdC4gV3JhcCBpZiBuZWNlc3NhcnlcbiAgICB0aHJvdyAoXy5pc0Vycm9yKGVycikgPyBlcnIgOiBuZXcgRXJyb3IodW5sZWFrU3RyaW5nKGVycikpKTtcbiAgfTtcbiAgaWYgKCF1c2luZ0dsb2JhbExvZykge1xuICAgIC8vIGlmIHdlJ3JlIG5vdCB1c2luZyBhIGdsb2JhbCBsb2cgc3BlY2lmaWVkIGZyb20gc29tZSB0b3AtbGV2ZWwgcGFja2FnZSxcbiAgICAvLyBzZXQgdGhlIGxvZyBsZXZlbCB0byBhIGRlZmF1bHQgb2YgdmVyYm9zZS4gT3RoZXJ3aXNlLCBsZXQgdGhlIHRvcC1sZXZlbFxuICAgIC8vIHBhY2thZ2Ugc2V0IHRoZSBsb2cgbGV2ZWxcbiAgICB3cmFwcGVkTG9nZ2VyLmxldmVsID0gJ3ZlcmJvc2UnO1xuICB9XG4gIHJldHVybiAvKiogQHR5cGUge0FwcGl1bUxvZ2dlcn0gKi8od3JhcHBlZExvZ2dlcik7XG59XG5cbi8qKlxuICogQHR5cGVkZWYgTG9hZFJlc3VsdFxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gaXNzdWVzIFRoZSBsaXN0IG9mIHJ1bGUgcGFyc2luZyBpc3N1ZXMgKG9uZSBpdGVtIHBlciBydWxlKS5cbiAqIFJ1bGVzIHdpdGggaXNzdWVzIGFyZSBza2lwcGVkLiBBbiBlbXB0eSBsaXN0IGlzIHJldHVybmVkIGlmIG5vIHBhcnNpbmcgaXNzdWVzIGV4aXN0LlxuICogQHByb3BlcnR5IHtpbXBvcnQoJy4vbG9nLWludGVybmFsJykuU2VjdXJlVmFsdWVQcmVwcm9jZXNzaW5nUnVsZVtdfSBydWxlcyBUaGUgbGlzdCBvZiBzdWNjZXNzZnVsbHkgbG9hZGVkXG4gKiByZXBsYWNlbWVudCBydWxlcy4gVGhlIGxpc3QgY291bGQgYmUgZW1wdHkgaWYgbm8gcnVsZXMgd2VyZSBsb2FkZWQuXG4gKi9cblxuLyoqXG4gKiBMb2FkcyB0aGUgSlNPTiBmaWxlIGNvbnRhaW5pbmcgc2VjdXJlIHZhbHVlcyByZXBsYWNlbWVudCBydWxlcy5cbiAqIFRoaXMgbWlnaHQgYmUgbmVjZXNzYXJ5IHRvIGhpZGUgc2Vuc2l0aXZlIHZhbHVlcyB0aGF0IG1heSBwb3NzaWJseVxuICogYXBwZWFyIGluIEFwcGl1bSBsb2dzLlxuICogRWFjaCBjYWxsIHRvIHRoaXMgbWV0aG9kIHJlcGxhY2VzIHRoZSBwcmV2aW91c2x5IGxvYWRlZCBydWxlcyBpZiBhbnkgZXhpc3RlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXXxpbXBvcnQoJy4vbG9nLWludGVybmFsJykuUnVsZVtdfSBydWxlc0pzb25QYXRoIFRoZSBmdWxsIHBhdGggdG8gdGhlIEpTT04gZmlsZSBjb250YWluaW5nXG4gKiB0aGUgcmVwbGFjZW1lbnQgcnVsZXMuIEVhY2ggcnVsZSBjb3VsZCBlaXRoZXIgYmUgYSBzdHJpbmcgdG8gYmUgcmVwbGFjZWRcbiAqIG9yIGFuIG9iamVjdCB3aXRoIHByZWRlZmluZWQgcHJvcGVydGllcy4gU2VlIHRoZSBgUnVsZWAgdHlwZSBkZWZpbml0aW9uIGluXG4gKiBgbG9nLWludGVybmFscy5qc2AgdG8gZ2V0IG1vcmUgZGV0YWlscyBvbiBpdHMgZm9ybWF0LlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBnaXZlbiBmaWxlIGNhbm5vdCBiZSBsb2FkZWRcbiAqIEByZXR1cm5zIHtQcm9taXNlPExvYWRSZXN1bHQ+fVxuICovXG5hc3luYyBmdW5jdGlvbiBsb2FkU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc2luZ1J1bGVzIChydWxlc0pzb25QYXRoKSB7XG4gIGNvbnN0IGlzc3VlcyA9IGF3YWl0IFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SLmxvYWRSdWxlcyhydWxlc0pzb25QYXRoKTtcbiAgcmV0dXJuIHtcbiAgICBpc3N1ZXMsXG4gICAgcnVsZXM6IF8uY2xvbmVEZWVwKFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SLnJ1bGVzKSxcbiAgfTtcbn1cblxuLy8gZXhwb3J0IGEgZGVmYXVsdCBsb2dnZXIgd2l0aCBubyBwcmVmaXhcbmNvbnN0IGxvZyA9IGdldExvZ2dlcigpO1xuXG5leHBvcnQgeyBsb2csIHBhdGNoTG9nZ2VyLCBnZXRMb2dnZXIsIGxvYWRTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzaW5nUnVsZXMgfTtcbmV4cG9ydCBkZWZhdWx0IGxvZztcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuUHJlZml4fSBQcmVmaXhcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1Mb2dnZXJ9IEFwcGl1bUxvZ2dlclxuICovXG4iXX0=
130
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMRVZFTFMiLCJNQVhfTE9HX1JFQ09SRFNfQ09VTlQiLCJQUkVGSVhfVElNRVNUQU1QX0ZPUk1BVCIsIm1vY2tMb2ciLCJsZXZlbCIsInBhdGNoTG9nZ2VyIiwibG9nZ2VyIiwiZGVidWciLCJhZGRMZXZlbCIsImZnIiwiYmciLCJfZ2V0TG9nZ2VyIiwidGVzdGluZ01vZGUiLCJwcm9jZXNzIiwiZW52IiwiX1RFU1RJTkciLCJmb3JjZUxvZ01vZGUiLCJfRk9SQ0VfTE9HUyIsInVzaW5nR2xvYmFsTG9nIiwiZ2xvYmFsIiwiX2dsb2JhbF9ucG1sb2ciLCJucG1sb2ciLCJtYXhSZWNvcmRTaXplIiwiZ2V0QWN0dWFsUHJlZml4IiwicHJlZml4IiwibG9nVGltZXN0YW1wIiwicmVzdWx0IiwiXyIsImlzRnVuY3Rpb24iLCJtb21lbnQiLCJmb3JtYXQiLCJnZXRMb2dnZXIiLCJ3cmFwcGVkTG9nZ2VyIiwidW53cmFwIiwibGV2ZWxzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXQiLCJzZXQiLCJuZXdWYWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJfTE9HX1RJTUVTVEFNUCIsImFyZ3MiLCJhY3R1YWxQcmVmaXgiLCJhcmciLCJvdXQiLCJpc0Vycm9yIiwic3RhY2siLCJsaW5lIiwic3BsaXQiLCJ1bmxlYWtlZExpbmUiLCJ1bmxlYWtTdHJpbmciLCJTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUiIsInByZXByb2Nlc3MiLCJlcnJvckFuZFRocm93IiwiZXJyIiwiZXJyb3IiLCJFcnJvciIsImxvYWRTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzaW5nUnVsZXMiLCJydWxlc0pzb25QYXRoIiwiaXNzdWVzIiwibG9hZFJ1bGVzIiwicnVsZXMiLCJjbG9uZURlZXAiLCJsb2ciXSwic291cmNlcyI6WyIuLi8uLi9saWIvbG9nZ2luZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IG5wbWxvZyBmcm9tICducG1sb2cnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7dW5sZWFrU3RyaW5nfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SIGZyb20gJy4vbG9nLWludGVybmFsJztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1Mb2dnZXJMZXZlbFtdfSAqL1xuZXhwb3J0IGNvbnN0IExFVkVMUyA9IFsnc2lsbHknLCAndmVyYm9zZScsICdkZWJ1ZycsICdpbmZvJywgJ2h0dHAnLCAnd2FybicsICdlcnJvciddO1xuY29uc3QgTUFYX0xPR19SRUNPUkRTX0NPVU5UID0gMzAwMDtcblxuY29uc3QgUFJFRklYX1RJTUVTVEFNUF9GT1JNQVQgPSAnSEgtbW0tc3M6U1NTJztcblxuLy8gbW9jayBsb2cgb2JqZWN0IHVzZWQgaW4gdGVzdGluZyBtb2RlXG5sZXQgbW9ja0xvZyA9IHt9O1xuZm9yIChsZXQgbGV2ZWwgb2YgTEVWRUxTKSB7XG4gIG1vY2tMb2dbbGV2ZWxdID0gKCkgPT4ge307XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7aW1wb3J0KCducG1sb2cnKS5Mb2dnZXJ9IGxvZ2dlclxuICovXG5mdW5jdGlvbiBwYXRjaExvZ2dlcihsb2dnZXIpIHtcbiAgaWYgKCFsb2dnZXIuZGVidWcpIHtcbiAgICBsb2dnZXIuYWRkTGV2ZWwoJ2RlYnVnJywgMTAwMCwge2ZnOiAnYmx1ZScsIGJnOiAnYmxhY2snfSwgJ2RidWcnKTtcbiAgfVxufVxuXG4vKipcbiAqXG4gKiBAcmV0dXJucyB7W2ltcG9ydCgnbnBtbG9nJykuTG9nZ2VyLCBib29sZWFuXX1cbiAqL1xuZnVuY3Rpb24gX2dldExvZ2dlcigpIHtcbiAgLy8gY2hlY2sgaWYgdGhlIHVzZXIgc2V0IHRoZSBgX1RFU1RJTkdgIG9yIGBfRk9SQ0VfTE9HU2AgZmxhZ1xuICBjb25zdCB0ZXN0aW5nTW9kZSA9IHByb2Nlc3MuZW52Ll9URVNUSU5HID09PSAnMSc7XG4gIGNvbnN0IGZvcmNlTG9nTW9kZSA9IHByb2Nlc3MuZW52Ll9GT1JDRV9MT0dTID09PSAnMSc7XG5cbiAgLy8gaWYgaXMgcG9zc2libGUgdGhhdCB0aGVyZSBpcyBhIGxvZ2dlciBpbnN0YW5jZSB0aGF0IGlzIGFscmVhZHkgYXJvdW5kLFxuICAvLyBpbiB3aGljaCBjYXNlIHdlIHdhbnQgdCBvIHVzZSB0aGF0XG4gIGNvbnN0IHVzaW5nR2xvYmFsTG9nID0gISFnbG9iYWwuX2dsb2JhbF9ucG1sb2c7XG4gIGxldCBsb2dnZXI7XG4gIGlmICh0ZXN0aW5nTW9kZSAmJiAhZm9yY2VMb2dNb2RlKSB7XG4gICAgLy8gaW4gdGVzdGluZyBtb2RlLCB1c2UgYSBtb2NrIGxvZ2dlciBvYmplY3QgdGhhdCB3ZSBjYW4gcXVlcnlcbiAgICBsb2dnZXIgPSBtb2NrTG9nO1xuICB9IGVsc2Uge1xuICAgIC8vIG90aGVyd2lzZSwgZWl0aGVyIHVzZSB0aGUgZ2xvYmFsLCBvciBhIG5ldyBgbnBtbG9nYCBvYmplY3RcbiAgICBsb2dnZXIgPSBnbG9iYWwuX2dsb2JhbF9ucG1sb2cgfHwgbnBtbG9nO1xuICAgIC8vIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDEwMDAwLCB3aGljaCBjYXVzZXMgZXhjZXNzaXZlIG1lbW9yeSB1c2FnZVxuICAgIGxvZ2dlci5tYXhSZWNvcmRTaXplID0gTUFYX0xPR19SRUNPUkRTX0NPVU5UO1xuICB9XG4gIHBhdGNoTG9nZ2VyKGxvZ2dlcik7XG4gIHJldHVybiBbbG9nZ2VyLCB1c2luZ0dsb2JhbExvZ107XG59XG5cbi8qKlxuICogQHBhcmFtIHtBcHBpdW1Mb2dnZXJQcmVmaXg/fSBwcmVmaXhcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gbG9nVGltZXN0YW1wIHdoZXRoZXIgdG8gaW5jbHVkZSB0aW1lc3RhbXBzIGludG8gbG9nIHByZWZpeGVzXG4gKiBAcmV0dXJucyB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBnZXRBY3R1YWxQcmVmaXgocHJlZml4LCBsb2dUaW1lc3RhbXAgPSBmYWxzZSkge1xuICBjb25zdCByZXN1bHQgPSAoXy5pc0Z1bmN0aW9uKHByZWZpeCkgPyBwcmVmaXgoKSA6IHByZWZpeCkgPz8gJyc7XG4gIHJldHVybiBsb2dUaW1lc3RhbXAgPyBgWyR7bW9tZW50KCkuZm9ybWF0KFBSRUZJWF9USU1FU1RBTVBfRk9STUFUKX1dICR7cmVzdWx0fWAgOiByZXN1bHQ7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7QXBwaXVtTG9nZ2VyUHJlZml4P30gcHJlZml4XG4gKiBAcmV0dXJucyB7QXBwaXVtTG9nZ2VyfVxuICovXG5mdW5jdGlvbiBnZXRMb2dnZXIocHJlZml4ID0gbnVsbCkge1xuICBsZXQgW2xvZ2dlciwgdXNpbmdHbG9iYWxMb2ddID0gX2dldExvZ2dlcigpO1xuXG4gIC8vIHdyYXAgdGhlIGxvZ2dlciBzbyB0aGF0IHdlIGNhbiBjYXRjaCBhbmQgbW9kaWZ5IGFueSBsb2dnaW5nXG4gIGxldCB3cmFwcGVkTG9nZ2VyID0ge1xuICAgIHVud3JhcDogKCkgPT4gbG9nZ2VyLFxuICAgIGxldmVsczogTEVWRUxTLFxuICAgIHByZWZpeCxcbiAgfTtcblxuICAvLyBhbGxvdyBhY2Nlc3MgdG8gdGhlIGxldmVsIG9mIHRoZSB1bmRlcmx5aW5nIGxvZ2dlclxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkod3JhcHBlZExvZ2dlciwgJ2xldmVsJywge1xuICAgIGdldCgpIHtcbiAgICAgIHJldHVybiBsb2dnZXIubGV2ZWw7XG4gICAgfSxcbiAgICBzZXQobmV3VmFsdWUpIHtcbiAgICAgIGxvZ2dlci5sZXZlbCA9IG5ld1ZhbHVlO1xuICAgIH0sXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gIH0pO1xuXG4gIGNvbnN0IGxvZ1RpbWVzdGFtcCA9IHByb2Nlc3MuZW52Ll9MT0dfVElNRVNUQU1QID09PSAnMSc7XG5cbiAgLy8gYWRkIGFsbCB0aGUgbGV2ZWxzIGZyb20gYG5wbWxvZ2AsIGFuZCBtYXAgdG8gdGhlIHVuZGVybHlpbmcgbG9nZ2VyXG4gIGZvciAoY29uc3QgbGV2ZWwgb2YgTEVWRUxTKSB7XG4gICAgd3JhcHBlZExvZ2dlcltsZXZlbF0gPSAvKiogQHBhcmFtIHsuLi5hbnl9IGFyZ3MgKi8gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgIGNvbnN0IGFjdHVhbFByZWZpeCA9IGdldEFjdHVhbFByZWZpeCh0aGlzLnByZWZpeCwgbG9nVGltZXN0YW1wKTtcbiAgICAgIGZvciAoY29uc3QgYXJnIG9mIGFyZ3MpIHtcbiAgICAgICAgY29uc3Qgb3V0ID0gXy5pc0Vycm9yKGFyZykgJiYgYXJnLnN0YWNrID8gYXJnLnN0YWNrIDogYCR7YXJnfWA7XG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBvdXQuc3BsaXQoJ1xcbicpKSB7XG4gICAgICAgICAgLy8gaXQgaXMgbmVjZXNzYXJ5IHRvIHVubGVhayBlYWNoIGxpbmUgYmVjYXVzZSBgc3BsaXRgIGNhbGxcbiAgICAgICAgICAvLyBjcmVhdGVzIFwidmlld3NcIiB0byB0aGUgb3JpZ2luYWwgc3RyaW5nIGFzIHdlbGwgYXMgdGhlIGBzdWJzdHJpbmdgIG9uZVxuICAgICAgICAgIGNvbnN0IHVubGVha2VkTGluZSA9IHVubGVha1N0cmluZyhsaW5lKTtcbiAgICAgICAgICBsb2dnZXJbbGV2ZWxdKGFjdHVhbFByZWZpeCwgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IucHJlcHJvY2Vzcyh1bmxlYWtlZExpbmUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cbiAgLy8gYWRkIG1ldGhvZCB0byBsb2cgYW4gZXJyb3IsIGFuZCB0aHJvdyBpdCwgZm9yIGNvbnZlbmllbmNlXG4gIHdyYXBwZWRMb2dnZXIuZXJyb3JBbmRUaHJvdyA9IGZ1bmN0aW9uIChlcnIpIHtcbiAgICB0aGlzLmVycm9yKGVycik7XG4gICAgLy8gbWFrZSBzdXJlIHdlIGhhdmUgYW4gYEVycm9yYCBvYmplY3QuIFdyYXAgaWYgbmVjZXNzYXJ5XG4gICAgdGhyb3cgXy5pc0Vycm9yKGVycikgPyBlcnIgOiBuZXcgRXJyb3IodW5sZWFrU3RyaW5nKGVycikpO1xuICB9O1xuICBpZiAoIXVzaW5nR2xvYmFsTG9nKSB7XG4gICAgLy8gaWYgd2UncmUgbm90IHVzaW5nIGEgZ2xvYmFsIGxvZyBzcGVjaWZpZWQgZnJvbSBzb21lIHRvcC1sZXZlbCBwYWNrYWdlLFxuICAgIC8vIHNldCB0aGUgbG9nIGxldmVsIHRvIGEgZGVmYXVsdCBvZiB2ZXJib3NlLiBPdGhlcndpc2UsIGxldCB0aGUgdG9wLWxldmVsXG4gICAgLy8gcGFja2FnZSBzZXQgdGhlIGxvZyBsZXZlbFxuICAgIHdyYXBwZWRMb2dnZXIubGV2ZWwgPSAndmVyYm9zZSc7XG4gIH1cbiAgcmV0dXJuIC8qKiBAdHlwZSB7QXBwaXVtTG9nZ2VyfSAqLyAod3JhcHBlZExvZ2dlcik7XG59XG5cbi8qKlxuICogQHR5cGVkZWYgTG9hZFJlc3VsdFxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gaXNzdWVzIFRoZSBsaXN0IG9mIHJ1bGUgcGFyc2luZyBpc3N1ZXMgKG9uZSBpdGVtIHBlciBydWxlKS5cbiAqIFJ1bGVzIHdpdGggaXNzdWVzIGFyZSBza2lwcGVkLiBBbiBlbXB0eSBsaXN0IGlzIHJldHVybmVkIGlmIG5vIHBhcnNpbmcgaXNzdWVzIGV4aXN0LlxuICogQHByb3BlcnR5IHtpbXBvcnQoJy4vbG9nLWludGVybmFsJykuU2VjdXJlVmFsdWVQcmVwcm9jZXNzaW5nUnVsZVtdfSBydWxlcyBUaGUgbGlzdCBvZiBzdWNjZXNzZnVsbHkgbG9hZGVkXG4gKiByZXBsYWNlbWVudCBydWxlcy4gVGhlIGxpc3QgY291bGQgYmUgZW1wdHkgaWYgbm8gcnVsZXMgd2VyZSBsb2FkZWQuXG4gKi9cblxuLyoqXG4gKiBMb2FkcyB0aGUgSlNPTiBmaWxlIGNvbnRhaW5pbmcgc2VjdXJlIHZhbHVlcyByZXBsYWNlbWVudCBydWxlcy5cbiAqIFRoaXMgbWlnaHQgYmUgbmVjZXNzYXJ5IHRvIGhpZGUgc2Vuc2l0aXZlIHZhbHVlcyB0aGF0IG1heSBwb3NzaWJseVxuICogYXBwZWFyIGluIEFwcGl1bSBsb2dzLlxuICogRWFjaCBjYWxsIHRvIHRoaXMgbWV0aG9kIHJlcGxhY2VzIHRoZSBwcmV2aW91c2x5IGxvYWRlZCBydWxlcyBpZiBhbnkgZXhpc3RlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXXxpbXBvcnQoJy4vbG9nLWludGVybmFsJykuUnVsZVtdfSBydWxlc0pzb25QYXRoIFRoZSBmdWxsIHBhdGggdG8gdGhlIEpTT04gZmlsZSBjb250YWluaW5nXG4gKiB0aGUgcmVwbGFjZW1lbnQgcnVsZXMuIEVhY2ggcnVsZSBjb3VsZCBlaXRoZXIgYmUgYSBzdHJpbmcgdG8gYmUgcmVwbGFjZWRcbiAqIG9yIGFuIG9iamVjdCB3aXRoIHByZWRlZmluZWQgcHJvcGVydGllcy4gU2VlIHRoZSBgUnVsZWAgdHlwZSBkZWZpbml0aW9uIGluXG4gKiBgbG9nLWludGVybmFscy5qc2AgdG8gZ2V0IG1vcmUgZGV0YWlscyBvbiBpdHMgZm9ybWF0LlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBnaXZlbiBmaWxlIGNhbm5vdCBiZSBsb2FkZWRcbiAqIEByZXR1cm5zIHtQcm9taXNlPExvYWRSZXN1bHQ+fVxuICovXG5hc3luYyBmdW5jdGlvbiBsb2FkU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc2luZ1J1bGVzKHJ1bGVzSnNvblBhdGgpIHtcbiAgY29uc3QgaXNzdWVzID0gYXdhaXQgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IubG9hZFJ1bGVzKHJ1bGVzSnNvblBhdGgpO1xuICByZXR1cm4ge1xuICAgIGlzc3VlcyxcbiAgICBydWxlczogXy5jbG9uZURlZXAoU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IucnVsZXMpLFxuICB9O1xufVxuXG4vLyBleHBvcnQgYSBkZWZhdWx0IGxvZ2dlciB3aXRoIG5vIHByZWZpeFxuY29uc3QgbG9nID0gZ2V0TG9nZ2VyKCk7XG5cbmV4cG9ydCB7bG9nLCBwYXRjaExvZ2dlciwgZ2V0TG9nZ2VyLCBsb2FkU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc2luZ1J1bGVzfTtcbmV4cG9ydCBkZWZhdWx0IGxvZztcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQXBwaXVtTG9nZ2VyUHJlZml4fSBBcHBpdW1Mb2dnZXJQcmVmaXhcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1Mb2dnZXJ9IEFwcGl1bUxvZ2dlclxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkFwcGl1bUxvZ2dlckxldmVsfSBBcHBpdW1Mb2dnZXJMZXZlbFxuICovXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdPLE1BQU1BLE1BQU0sR0FBRyxDQUFDLE9BQUQsRUFBVSxTQUFWLEVBQXFCLE9BQXJCLEVBQThCLE1BQTlCLEVBQXNDLE1BQXRDLEVBQThDLE1BQTlDLEVBQXNELE9BQXRELENBQWY7O0FBQ1AsTUFBTUMscUJBQXFCLEdBQUcsSUFBOUI7QUFFQSxNQUFNQyx1QkFBdUIsR0FBRyxjQUFoQztBQUdBLElBQUlDLE9BQU8sR0FBRyxFQUFkOztBQUNBLEtBQUssSUFBSUMsS0FBVCxJQUFrQkosTUFBbEIsRUFBMEI7RUFDeEJHLE9BQU8sQ0FBQ0MsS0FBRCxDQUFQLEdBQWlCLE1BQU0sQ0FBRSxDQUF6QjtBQUNEOztBQU1ELFNBQVNDLFdBQVQsQ0FBcUJDLE1BQXJCLEVBQTZCO0VBQzNCLElBQUksQ0FBQ0EsTUFBTSxDQUFDQyxLQUFaLEVBQW1CO0lBQ2pCRCxNQUFNLENBQUNFLFFBQVAsQ0FBZ0IsT0FBaEIsRUFBeUIsSUFBekIsRUFBK0I7TUFBQ0MsRUFBRSxFQUFFLE1BQUw7TUFBYUMsRUFBRSxFQUFFO0lBQWpCLENBQS9CLEVBQTBELE1BQTFEO0VBQ0Q7QUFDRjs7QUFNRCxTQUFTQyxVQUFULEdBQXNCO0VBRXBCLE1BQU1DLFdBQVcsR0FBR0MsT0FB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
@@ -1 +1 @@
1
- {"version":3,"file":"mjpeg.d.ts","sourceRoot":"","sources":["../../lib/mjpeg.js"],"names":[],"mappings":"AA6BA,+DAA+D;AAC/D;IAOE;;;;;;OAMG;IACH,sBALW,MAAM,iDAGN,MAAM,EAQhB;IAlBD;;OAEG;IACH,aAFU,MAAM,CAEA;IAYd,uBAAgC;IAChC,YAAmB;IAIrB;;;;;OAKG;IACH,qCAKC;IAED;;;;;OAKG;IACH,gBAHa,QAAQ,MAAM,QAAE,CAe5B;IAED;;;;;OAKG;IACH,sBAHa,QAAQ,MAAM,QAAE,CAM5B;IAED;;OAEG;IACH,cAOC;IANC,4EAAgC;IAChC,iEAAgC;IAChC,oBAA0B;IAC1B,cAAoB;IACpB,qCAAqB;IAIvB;;OAEG;IACH,6CAoDC;IAED;;;OAGG;IACH,aASC;IAED;;;;;OAKG;IACH,qBAFW,MAAM,WAYhB;CACF"}
1
+ {"version":3,"file":"mjpeg.d.ts","sourceRoot":"","sources":["../../lib/mjpeg.js"],"names":[],"mappings":"AA+BA,+DAA+D;AAC/D;IAME;;;;;;OAMG;IACH,sBALW,MAAM,iDAGN,MAAM,EAQhB;IAlBD;;OAEG;IACH,aAFU,MAAM,CAEA;IAYd,uBAAgC;IAChC,YAAmB;IAIrB;;;;;OAKG;IACH,qCAKC;IAED;;;;;OAKG;IACH,gBAHa,QAAQ,MAAM,QAAE,CAe5B;IAED;;;;;OAKG;IACH,sBAHa,QAAQ,MAAM,QAAE,CAM5B;IAED;;OAEG;IACH,cAOC;IANC,4EAAgC;IAChC,iEAAgC;IAChC,oBAA0B;IAC1B,cAAoB;IACpB,qCAAqB;IAIvB;;OAEG;IACH,6CAwDC;IAED;;;OAGG;IACH,aASC;IAED;;;;;OAKG;IACH,qBAFW,MAAM,WAYhB;CACF"}
@@ -151,4 +151,4 @@ class MJpegStream extends _stream.Writable {
151
151
  }
152
152
 
153
153
  exports.MJpegStream = MJpegStream;
154
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9tanBlZy5qcyJdLCJuYW1lcyI6WyJNSnBlZ0NvbnN1bWVyIiwiaW5pdE1KcGVnQ29uc3VtZXIiLCJpZ24iLCJFcnJvciIsIk1KUEVHX1NFUlZFUl9USU1FT1VUX01TIiwiTUpwZWdTdHJlYW0iLCJXcml0YWJsZSIsInVwZGF0ZUNvdW50IiwiY29uc3RydWN0b3IiLCJtSnBlZ1VybCIsImVycm9ySGFuZGxlciIsIl8iLCJub29wIiwib3B0aW9ucyIsInVybCIsImNsZWFyIiwibGFzdENodW5rQmFzZTY0IiwibGFzdENodW5rIiwiaXNFbXB0eSIsImlzQnVmZmVyIiwidG9TdHJpbmciLCJsYXN0Q2h1bmtQTkciLCJqcGciLCJnZXRCdWZmZXIiLCJNSU1FX1BORyIsImUiLCJsYXN0Q2h1bmtQTkdCYXNlNjQiLCJwbmciLCJyZWdpc3RlclN0YXJ0U3VjY2VzcyIsInJlZ2lzdGVyU3RhcnRGYWlsdXJlIiwicmVzcG9uc2VTdHJlYW0iLCJjb25zdW1lciIsInN0YXJ0Iiwic2VydmVyVGltZW91dCIsInN0b3AiLCJzdGFydFByb21pc2UiLCJCIiwicmVzIiwicmVqIiwidGltZW91dCIsIm9uRXJyIiwiZXJyIiwibG9nIiwiZXJyb3IiLCJtZXNzYWdlIiwib25DbG9zZSIsImRlYnVnIiwicmVzcG9uc2VUeXBlIiwiZGF0YSIsIm9uY2UiLCJvbiIsInBpcGUiLCJ1bnBpcGUiLCJkZXN0cm95Iiwid3JpdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsSUFBSUEsYUFBYSxHQUFHLElBQXBCOztBQUtBLGVBQWVDLGlCQUFmLEdBQW9DO0FBQ2xDLE1BQUksQ0FBQ0QsYUFBTCxFQUFvQjtBQUNsQixRQUFJO0FBQ0ZBLE1BQUFBLGFBQWEsR0FBRyxNQUFNLDBCQUFlLGdCQUFmLENBQXRCO0FBQ0QsS0FGRCxDQUVFLE9BQU9FLEdBQVAsRUFBWSxDQUFFO0FBQ2pCOztBQUNE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b250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7IGdldEppbXBJbWFnZSwgTUlNRV9QTkcgfSBmcm9tICcuL2ltYWdlLXV0aWwnO1xuaW1wb3J0IHsgV3JpdGFibGUgfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0IHsgcmVxdWlyZVBhY2thZ2UgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcblxuLy8gbGF6eSBsb2FkIHRoaXMsIGFzIGl0IG1pZ2h0IG5vdCBiZSBhdmFpbGFibGVcbmxldCBNSnBlZ0NvbnN1bWVyID0gbnVsbDtcblxuLyoqXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgYG1qcGVnLWNvbnN1bWVyYCBtb2R1bGUgaXMgbm90IGluc3RhbGxlZCBvciBjYW5ub3QgYmUgbG9hZGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGluaXRNSnBlZ0NvbnN1bWVyICgpIHtcbiAgaWYgKCFNSnBlZ0NvbnN1bWVyKSB7XG4gICAgdHJ5IHtcbiAgICAgIE1KcGVnQ29uc3VtZXIgPSBhd2FpdCByZXF1aXJlUGFja2FnZSgnbWpwZWctY29uc3VtZXInKTtcbiAgICB9IGNhdGNoIChpZ24pIHt9XG4gIH1cbiAgaWYgKCFNSnBlZ0NvbnN1bWVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtanBlZy1jb25zdW1lciBtb2R1bGUgaXMgcmVxdWlyZWQgdG8gdXNlIE1KUEVHLW92ZXItSFRUUCBmZWF0dXJlcy4gJyArXG4gICAgICAgICAgICAgICAgICAgICdQbGVhc2UgaW5zdGFsbCBpdCBmaXJzdCAobnBtIGkgLWcgbWpwZWctY29uc3VtZXIpIGFuZCByZXN0YXJ0IEFwcGl1bS4nKTtcbiAgfVxufVxuXG4vLyBhbW91bnQgb2YgdGltZSB0byB3YWl0IGZvciB0aGUgZmlyc3QgaW1hZ2UgaW4gdGhlIHN0cmVhbVxuY29uc3QgTUpQRUdfU0VSVkVSX1RJTUVPVVRfTVMgPSAxMDAwMDtcblxuLyoqIENsYXNzIHdoaWNoIHN0b3JlcyB0aGUgbGFzdCBiaXQgb2YgZGF0YSBzdHJlYW1lZCBpbnRvIGl0ICovXG5jbGFzcyBNSnBlZ1N0cmVhbSBleHRlbmRzIFdyaXRhYmxlIHtcblxuICAvKipcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIHVwZGF0ZUNvdW50ID0gMDtcblxuICAvKipcbiAgICogQ3JlYXRlIGFuIE1KcGVnU3RyZWFtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtSnBlZ1VybCAtIFVSTCBvZiBNSlBFRy1vdmVyLUhUVFAgc3RyZWFtXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtlcnJvckhhbmRsZXI9bm9vcF0gLSBhZGRpdGlvbmFsIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZVxuICAgKiBjYWxsZWQgaW4gdGhlIGNhc2Ugb2YgYW55IGVycm9ycy5cbiAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zPXt9XSAtIE9wdGlvbnMgdG8gcGFzcyB0byB0aGUgV3JpdGFibGUgY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yIChtSnBlZ1VybCwgZXJyb3JIYW5kbGVyID0gXy5ub29wLCBvcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMuZXJyb3JIYW5kbGVyID0gZXJyb3JIYW5kbGVyO1xuICAgIHRoaXMudXJsID0gbUpwZWdVcmw7XG4gICAgdGhpcy5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZTY0LWVuY29kZWQgdmVyc2lvbiBvZiB0aGUgSlBFR1xuICAgKlxuICAgKiBAcmV0dXJucyB7P3N0cmluZ30gYmFzZTY0LWVuY29kZWQgSlBFRyBpbWFnZSBkYXRhXG4gICAqIG9yIGBudWxsYCBpZiBubyBpbWFnZSBjYW4gYmUgcGFyc2VkXG4gICAqL1xuICBnZXQgbGFzdENodW5rQmFzZTY0ICgpIHtcbiAgICBjb25zdCBsYXN0Q2h1bmsgPSAvKiogQHR5cGUge0J1ZmZlcn0gKi8odGhpcy5sYXN0Q2h1bmspO1xuICAgIHJldHVybiAhXy5pc0VtcHR5KHRoaXMubGFzdENodW5rKSAmJiBfLmlzQnVmZmVyKHRoaXMubGFzdENodW5rKVxuICAgICAgPyBsYXN0Q2h1bmsudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgICA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBQTkcgdmVyc2lvbiBvZiB0aGUgSlBFRyBidWZmZXJcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8QnVmZmVyPz59IFBORyBpbWFnZSBkYXRhIG9yIGBudWxsYCBpZiBubyBQTkdcbiAgICogaW1hZ2UgY2FuIGJlIHBhcnNlZFxuICAgKi9cbiAgYXN5bmMgbGFzdENodW5rUE5HICgpIHtcbiAgICBjb25zdCBsYXN0Q2h1bmsgPSAvKiogQHR5cGUge0J1ZmZlcn0gKi8odGhpcy5sYXN0Q2h1bmspO1xuICAgIGlmIChfLmlzRW1wdHkobGFzdENodW5rKSB8fCAhXy5pc0J1ZmZlcihsYXN0Q2h1bmspKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QganBnID0gYXdhaXQgZ2V0SmltcEltYWdlKGxhc3RDaHVuayk7XG4gICAgICByZXR1cm4gYXdhaXQganBnLmdldEJ1ZmZlcihNSU1FX1BORyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZTY0LWVuY29kZWQgdmVyc2lvbiBvZiB0aGUgUE5HXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz8+fSBiYXNlNjQtZW5jb2RlZCBQTkcgaW1hZ2UgZGF0YVxuICAgKiBvciBgbnVsbGAgaWYgbm8gaW1hZ2UgY2FuIGJlIHBhcnNlZFxuICAgKi9cbiAgYXN5bmMgbGFzdENodW5rUE5HQmFzZTY0ICgpIHtcbiAgICBjb25zdCBwbmcgPSBhd2FpdCB0aGlzLmxhc3RDaHVua1BORygpO1xuICAgIHJldHVybiBwbmcgPyBwbmcudG9TdHJpbmcoJ2Jhc2U2NCcpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBpbnRlcm5hbCBzdGF0ZVxuICAgKi9cbiAgY2xlYXIgKCkge1xuICAgIHRoaXMucmVnaXN0ZXJTdGFydFN1Y2Nlc3MgPSBudWxsO1xuICAgIHRoaXMucmVnaXN0ZXJTdGFydEZhaWx1cmUgPSBudWxsO1xuICAgIHRoaXMucmVzcG9uc2VTdHJlYW0gPSBudWxsO1xuICAgIHRoaXMuY29uc3VtZXIgPSBudWxsO1xuICAgIHRoaXMubGFzdENodW5rID0gbnVsbDtcbiAgICB0aGlzLnVwZGF0ZUNvdW50ID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCByZWFkaW5nIHRoZSBNSnBlZyBzdHJlYW0gYW5kIHN0b3JpbmcgdGhlIGxhc3QgaW1hZ2VcbiAgICovXG4gIGFzeW5jIHN0YXJ0IChzZXJ2ZXJUaW1lb3V0ID0gTUpQRUdfU0VSVkVSX1RJTUVPVVRfTVMpIHtcbiAgICAvLyBlbnN1cmUgd2UncmUgbm90IHN0YXJ0ZWQgYWxyZWFkeVxuICAgIHRoaXMuc3RvcCgpO1xuXG4gICAgYXdhaXQgaW5pdE1KcGVnQ29uc3VtZXIoKTtcblxuICAgIHRoaXMuY29uc3VtZXIgPSBuZXcgTUpwZWdDb25zdW1lcigpO1xuXG4gICAgLy8gdXNlIHRoZSBkZWZlcnJlZCBwYXR0ZXJuIHNvIHdlIGNhbiB3YWl0IGZvciB0aGUgc3RhcnQgb2YgdGhlIHN0cmVhbVxuICAgIC8vIGJhc2VkIG9uIHdoYXQgY29tZXMgaW4gZnJvbSBhbiBleHRlcm5hbCBwaXBlXG4gICAgY29uc3Qgc3RhcnRQcm9taXNlID0gbmV3IEIoKHJlcywgcmVqKSA9PiB7XG4gICAgICB0aGlzLnJlZ2lzdGVyU3RhcnRTdWNjZXNzID0gcmVzO1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0RmFpbHVyZSA9IHJlajtcbiAgICB9KVxuICAgIC8vIHN0YXJ0IGEgdGltZW91dCBzbyB0aGF0IGlmIHRoZSBzZXJ2ZXIgZG9lcyBub3QgcmV0dXJuIGRhdGEsIHdlIGRvbid0XG4gICAgLy8gYmxvY2sgZm9yZXZlci5cbiAgICAgIC50aW1lb3V0KHNlcnZlclRpbWVvdXQsXG4gICAgICAgIGBXYWl0ZWQgJHtzZXJ2ZXJUaW1lb3V0fW1zIGJ1dCB0aGUgTUpQRUcgc2VydmVyIG5ldmVyIHNlbnQgYW55IGltYWdlc2ApO1xuXG4gICAgY29uc3QgdXJsID0gdGhpcy51cmw7XG4gICAgY29uc3Qgb25FcnIgPSAoZXJyKSA9PiB7XG4gICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IGFuIG91dGRhdGVkIHNjcmVlbnNob3QgaWYgdGhlcmUgd2FzIGFuIGVycm9yXG4gICAgICB0aGlzLmxhc3RDaHVuayA9IG51bGw7XG5cbiAgICAgIGxvZy5lcnJvcihgRXJyb3IgZ2V0dGluZyBNSnBlZyBzY3JlZW5zaG90IGNodW5rOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgdGhpcy5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgIGlmICh0aGlzLnJlZ2lzdGVyU3RhcnRGYWlsdXJlKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTdGFydEZhaWx1cmUoZXJyKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG9uQ2xvc2UgPSAoKSA9PiB7XG4gICAgICBsb2cuZGVidWcoYFRoZSBjb25uZWN0aW9uIHRvIE1KUEVHIHNlcnZlciBhdCAke3VybH0gaGFzIGJlZW4gY2xvc2VkYCk7XG4gICAgICB0aGlzLmxhc3RDaHVuayA9IG51bGw7XG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnJlc3BvbnNlU3RyZWFtID0gKGF3YWl0IGF4aW9zKHtcbiAgICAgICAgdXJsLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdzdHJlYW0nLFxuICAgICAgICB0aW1lb3V0OiBzZXJ2ZXJUaW1lb3V0LFxuICAgICAgfSkpLmRhdGE7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG9uRXJyKGUpO1xuICAgIH1cblxuICAgIHRoaXMucmVzcG9uc2VTdHJlYW1cbiAgICAgIC5vbmNlKCdjbG9zZScsIG9uQ2xvc2UpXG4gICAgICAub24oJ2Vycm9yJywgb25FcnIpIC8vIGVuc3VyZSB3ZSBkbyBzb21ldGhpbmcgd2l0aCBlcnJvcnNcbiAgICAgIC5waXBlKHRoaXMuY29uc3VtZXIpIC8vIGFsbG93IGNodW5raW5nIGFuZCB0cmFuc2Zvcm1pbmcgb2YganBlZyBkYXRhXG4gICAgICAucGlwZSh0aGlzKTsgLy8gc2VuZCB0aGUgYWN0dWFsIGpwZWdzIHRvIG91cnNlbGZcblxuICAgIGF3YWl0IHN0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIHJlYWRpbmcgdGhlIE1KcGVnIHN0cmVhbS4gRW5zdXJlIHdlIGRpc2Nvbm5lY3QgYWxsIHRoZSBwaXBlcyBhbmQgc3RvcFxuICAgKiB0aGUgSFRUUCByZXF1ZXN0IGl0c2VsZi4gVGhlbiByZXNldCB0aGUgc3RhdGUuXG4gICAqL1xuICBzdG9wICgpIHtcbiAgICBpZiAoIXRoaXMuY29uc3VtZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtLnVucGlwZSh0aGlzLmNvbnN1bWVyKTtcbiAgICB0aGlzLmNvbnN1bWVyLnVucGlwZSh0aGlzKTtcbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtLmRlc3Ryb3koKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIFdyaXRhYmxlIHdyaXRlKCkgbWV0aG9kIGluIG9yZGVyIHRvIHNhdmUgdGhlIGxhc3QgaW1hZ2UgYW5kXG4gICAqIGxvZyB0aGUgbnVtYmVyIG9mIGltYWdlcyB3ZSBoYXZlIHJlY2VpdmVkXG4gICAqIEBvdmVycmlkZVxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gZGF0YSAtIGJpbmFyeSBkYXRhIHN0cmVhbWVkIGZyb20gdGhlIE1KcGVnIGNvbnN1bWVyXG4gICAqL1xuICB3cml0ZSAoZGF0YSkge1xuICAgIHRoaXMubGFzdENodW5rID0gZGF0YTtcbiAgICB0aGlzLnVwZGF0ZUNvdW50Kys7XG5cbiAgICBpZiAodGhpcy5yZWdpc3RlclN0YXJ0U3VjY2Vzcykge1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0U3VjY2VzcygpO1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0U3VjY2VzcyA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZXhwb3J0IHsgTUpwZWdTdHJlYW0gfTtcbiJdfQ==
154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNSnBlZ0NvbnN1bWVyIiwiaW5pdE1KcGVnQ29uc3VtZXIiLCJyZXF1aXJlUGFja2FnZSIsImlnbiIsIkVycm9yIiwiTUpQRUdfU0VSVkVSX1RJTUVPVVRfTVMiLCJNSnBlZ1N0cmVhbSIsIldyaXRhYmxlIiwidXBkYXRlQ291bnQiLCJjb25zdHJ1Y3RvciIsIm1KcGVnVXJsIiwiZXJyb3JIYW5kbGVyIiwiXyIsIm5vb3AiLCJvcHRpb25zIiwidXJsIiwiY2xlYXIiLCJsYXN0Q2h1bmtCYXNlNjQiLCJsYXN0Q2h1bmsiLCJpc0VtcHR5IiwiaXNCdWZmZXIiLCJ0b1N0cmluZyIsImxhc3RDaHVua1BORyIsImpwZyIsImdldEppbXBJbWFnZSIsImdldEJ1ZmZlciIsIk1JTUVfUE5HIiwiZSIsImxhc3RDaHVua1BOR0Jhc2U2NCIsInBuZyIsInJlZ2lzdGVyU3RhcnRTdWNjZXNzIiwicmVnaXN0ZXJTdGFydEZhaWx1cmUiLCJyZXNwb25zZVN0cmVhbSIsImNvbnN1bWVyIiwic3RhcnQiLCJzZXJ2ZXJUaW1lb3V0Iiwic3RvcCIsInN0YXJ0UHJvbWlzZSIsIkIiLCJyZXMiLCJyZWoiLCJ0aW1lb3V0Iiwib25FcnIiLCJlcnIiLCJsb2ciLCJlcnJvciIsIm1lc3NhZ2UiLCJvbkNsb3NlIiwiZGVidWciLCJheGlvcyIsInJlc3BvbnNlVHlwZSIsImRhdGEiLCJvbmNlIiwib24iLCJwaXBlIiwidW5waXBlIiwiZGVzdHJveSIsIndyaXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vbGliL21qcGVnLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7Z2V0SmltcEltYWdlLCBNSU1FX1BOR30gZnJvbSAnLi9pbWFnZS11dGlsJztcbmltcG9ydCB7V3JpdGFibGV9IGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQge3JlcXVpcmVQYWNrYWdlfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcblxuLy8gbGF6eSBsb2FkIHRoaXMsIGFzIGl0IG1pZ2h0IG5vdCBiZSBhdmFpbGFibGVcbmxldCBNSnBlZ0NvbnN1bWVyID0gbnVsbDtcblxuLyoqXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgYG1qcGVnLWNvbnN1bWVyYCBtb2R1bGUgaXMgbm90IGluc3RhbGxlZCBvciBjYW5ub3QgYmUgbG9hZGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGluaXRNSnBlZ0NvbnN1bWVyKCkge1xuICBpZiAoIU1KcGVnQ29uc3VtZXIpIHtcbiAgICB0cnkge1xuICAgICAgTUpwZWdDb25zdW1lciA9IGF3YWl0IHJlcXVpcmVQYWNrYWdlKCdtanBlZy1jb25zdW1lcicpO1xuICAgIH0gY2F0Y2ggKGlnbikge31cbiAgfVxuICBpZiAoIU1KcGVnQ29uc3VtZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnbWpwZWctY29uc3VtZXIgbW9kdWxlIGlzIHJlcXVpcmVkIHRvIHVzZSBNSlBFRy1vdmVyLUhUVFAgZmVhdHVyZXMuICcgK1xuICAgICAgICAnUGxlYXNlIGluc3RhbGwgaXQgZmlyc3QgKG5wbSBpIC1nIG1qcGVnLWNvbnN1bWVyKSBhbmQgcmVzdGFydCBBcHBpdW0uJ1xuICAgICk7XG4gIH1cbn1cblxuLy8gYW1vdW50IG9mIHRpbWUgdG8gd2FpdCBmb3IgdGhlIGZpcnN0IGltYWdlIGluIHRoZSBzdHJlYW1cbmNvbnN0IE1KUEVHX1NFUlZFUl9USU1FT1VUX01TID0gMTAwMDA7XG5cbi8qKiBDbGFzcyB3aGljaCBzdG9yZXMgdGhlIGxhc3QgYml0IG9mIGRhdGEgc3RyZWFtZWQgaW50byBpdCAqL1xuY2xhc3MgTUpwZWdTdHJlYW0gZXh0ZW5kcyBXcml0YWJsZSB7XG4gIC8qKlxuICAgKiBAdHlwZSB7bnVtYmVyfVxuICAgKi9cbiAgdXBkYXRlQ291bnQgPSAwO1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gTUpwZWdTdHJlYW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IG1KcGVnVXJsIC0gVVJMIG9mIE1KUEVHLW92ZXItSFRUUCBzdHJlYW1cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gW2Vycm9ySGFuZGxlcj1ub29wXSAtIGFkZGl0aW9uYWwgZnVuY3Rpb24gdGhhdCB3aWxsIGJlXG4gICAqIGNhbGxlZCBpbiB0aGUgY2FzZSBvZiBhbnkgZXJyb3JzLlxuICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnM9e31dIC0gT3B0aW9ucyB0byBwYXNzIHRvIHRoZSBXcml0YWJsZSBjb25zdHJ1Y3RvclxuICAgKi9cbiAgY29uc3RydWN0b3IobUpwZWdVcmwsIGVycm9ySGFuZGxlciA9IF8ubm9vcCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICB0aGlzLmVycm9ySGFuZGxlciA9IGVycm9ySGFuZGxlcjtcbiAgICB0aGlzLnVybCA9IG1KcGVnVXJsO1xuICAgIHRoaXMuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGJhc2U2NC1lbmNvZGVkIHZlcnNpb24gb2YgdGhlIEpQRUdcbiAgICpcbiAgICogQHJldHVybnMgez9zdHJpbmd9IGJhc2U2NC1lbmNvZGVkIEpQRUcgaW1hZ2UgZGF0YVxuICAgKiBvciBgbnVsbGAgaWYgbm8gaW1hZ2UgY2FuIGJlIHBhcnNlZFxuICAgKi9cbiAgZ2V0IGxhc3RDaHVua0Jhc2U2NCgpIHtcbiAgICBjb25zdCBsYXN0Q2h1bmsgPSAvKiogQHR5cGUge0J1ZmZlcn0gKi8gKHRoaXMubGFzdENodW5rKTtcbiAgICByZXR1cm4gIV8uaXNFbXB0eSh0aGlzLmxhc3RDaHVuaykgJiYgXy5pc0J1ZmZlcih0aGlzLmxhc3RDaHVuaylcbiAgICAgID8gbGFzdENodW5rLnRvU3RyaW5nKCdiYXNlNjQnKVxuICAgICAgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgUE5HIHZlcnNpb24gb2YgdGhlIEpQRUcgYnVmZmVyXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEJ1ZmZlcj8+fSBQTkcgaW1hZ2UgZGF0YSBvciBgbnVsbGAgaWYgbm8gUE5HXG4gICAqIGltYWdlIGNhbiBiZSBwYXJzZWRcbiAgICovXG4gIGFzeW5jIGxhc3RDaHVua1BORygpIHtcbiAgICBjb25zdCBsYXN0Q2h1bmsgPSAvKiogQHR5cGUge0J1ZmZlcn0gKi8gKHRoaXMubGFzdENodW5rKTtcbiAgICBpZiAoXy5pc0VtcHR5KGxhc3RDaHVuaykgfHwgIV8uaXNCdWZmZXIobGFzdENodW5rKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGpwZyA9IGF3YWl0IGdldEppbXBJbWFnZShsYXN0Q2h1bmspO1xuICAgICAgcmV0dXJuIGF3YWl0IGpwZy5nZXRCdWZmZXIoTUlNRV9QTkcpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGJhc2U2NC1lbmNvZGVkIHZlcnNpb24gb2YgdGhlIFBOR1xuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc/Pn0gYmFzZTY0LWVuY29kZWQgUE5HIGltYWdlIGRhdGFcbiAgICogb3IgYG51bGxgIGlmIG5vIGltYWdlIGNhbiBiZSBwYXJzZWRcbiAgICovXG4gIGFzeW5jIGxhc3RDaHVua1BOR0Jhc2U2NCgpIHtcbiAgICBjb25zdCBwbmcgPSBhd2FpdCB0aGlzLmxhc3RDaHVua1BORygpO1xuICAgIHJldHVybiBwbmcgPyBwbmcudG9TdHJpbmcoJ2Jhc2U2NCcpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBpbnRlcm5hbCBzdGF0ZVxuICAgKi9cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5yZWdpc3RlclN0YXJ0U3VjY2VzcyA9IG51bGw7XG4gICAgdGhpcy5yZWdpc3RlclN0YXJ0RmFpbHVyZSA9IG51bGw7XG4gICAgdGhpcy5yZXNwb25zZVN0cmVhbSA9IG51bGw7XG4gICAgdGhpcy5jb25zdW1lciA9IG51bGw7XG4gICAgdGhpcy5sYXN0Q2h1bmsgPSBudWxsO1xuICAgIHRoaXMudXBkYXRlQ291bnQgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0IHJlYWRpbmcgdGhlIE1KcGVnIHN0cmVhbSBhbmQgc3RvcmluZyB0aGUgbGFzdCBpbWFnZVxuICAgKi9cbiAgYXN5bmMgc3RhcnQoc2VydmVyVGltZW91dCA9IE1KUEVHX1NFUlZFUl9USU1FT1VUX01TKSB7XG4gICAgLy8gZW5zdXJlIHdlJ3JlIG5vdCBzdGFydGVkIGFscmVhZHlcbiAgICB0aGlzLnN0b3AoKTtcblxuICAgIGF3YWl0IGluaXRNSnBlZ0NvbnN1bWVyKCk7XG5cbiAgICB0aGlzLmNvbnN1bWVyID0gbmV3IE1KcGVnQ29uc3VtZXIoKTtcblxuICAgIC8vIHVzZSB0aGUgZGVmZXJyZWQgcGF0dGVybiBzbyB3ZSBjYW4gd2FpdCBmb3IgdGhlIHN0YXJ0IG9mIHRoZSBzdHJlYW1cbiAgICAvLyBiYXNlZCBvbiB3aGF0IGNvbWVzIGluIGZyb20gYW4gZXh0ZXJuYWwgcGlwZVxuICAgIGNvbnN0IHN0YXJ0UHJvbWlzZSA9IG5ldyBCKChyZXMsIHJlaikgPT4ge1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0U3VjY2VzcyA9IHJlcztcbiAgICAgIHRoaXMucmVnaXN0ZXJTdGFydEZhaWx1cmUgPSByZWo7XG4gICAgfSlcbiAgICAgIC8vIHN0YXJ0IGEgdGltZW91dCBzbyB0aGF0IGlmIHRoZSBzZXJ2ZXIgZG9lcyBub3QgcmV0dXJuIGRhdGEsIHdlIGRvbid0XG4gICAgICAvLyBibG9jayBmb3JldmVyLlxuICAgICAgLnRpbWVvdXQoXG4gICAgICAgIHNlcnZlclRpbWVvdXQsXG4gICAgICAgIGBXYWl0ZWQgJHtzZXJ2ZXJUaW1lb3V0fW1zIGJ1dCB0aGUgTUpQRUcgc2VydmVyIG5ldmVyIHNlbnQgYW55IGltYWdlc2BcbiAgICAgICk7XG5cbiAgICBjb25zdCB1cmwgPSB0aGlzLnVybDtcbiAgICBjb25zdCBvbkVyciA9IChlcnIpID0+IHtcbiAgICAgIC8vIE1ha2Ugc3VyZSB3ZSBkb24ndCBnZXQgYW4gb3V0ZGF0ZWQgc2NyZWVuc2hvdCBpZiB0aGVyZSB3YXMgYW4gZXJyb3JcbiAgICAgIHRoaXMubGFzdENodW5rID0gbnVsbDtcblxuICAgICAgbG9nLmVycm9yKGBFcnJvciBnZXR0aW5nIE1KcGVnIHNjcmVlbnNob3QgY2h1bms6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgICB0aGlzLmVycm9ySGFuZGxlcihlcnIpO1xuICAgICAgaWYgKHRoaXMucmVnaXN0ZXJTdGFydEZhaWx1cmUpIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0RmFpbHVyZShlcnIpO1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3Qgb25DbG9zZSA9ICgpID0+IHtcbiAgICAgIGxvZy5kZWJ1ZyhgVGhlIGNvbm5lY3Rpb24gdG8gTUpQRUcgc2VydmVyIGF0ICR7dXJsfSBoYXMgYmVlbiBjbG9zZWRgKTtcbiAgICAgIHRoaXMubGFzdENodW5rID0gbnVsbDtcbiAgICB9O1xuXG4gICAgdHJ5IHtcbiAgICAgIHRoaXMucmVzcG9uc2VTdHJlYW0gPSAoXG4gICAgICAgIGF3YWl0IGF4aW9zKHtcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiAnc3RyZWFtJyxcbiAgICAgICAgICB0aW1lb3V0OiBzZXJ2ZXJUaW1lb3V0LFxuICAgICAgICB9KVxuICAgICAgKS5kYXRhO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJldHVybiBvbkVycihlKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtXG4gICAgICAub25jZSgnY2xvc2UnLCBvbkNsb3NlKVxuICAgICAgLm9uKCdlcnJvcicsIG9uRXJyKSAvLyBlbnN1cmUgd2UgZG8gc29tZXRoaW5nIHdpdGggZXJyb3JzXG4gICAgICAucGlwZSh0aGlzLmNvbnN1bWVyKSAvLyBhbGxvdyBjaHVua2luZyBhbmQgdHJhbnNmb3JtaW5nIG9mIGpwZWcgZGF0YVxuICAgICAgLnBpcGUodGhpcyk7IC8vIHNlbmQgdGhlIGFjdHVhbCBqcGVncyB0byBvdXJzZWxmXG5cbiAgICBhd2FpdCBzdGFydFByb21pc2U7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCByZWFkaW5nIHRoZSBNSnBlZyBzdHJlYW0uIEVuc3VyZSB3ZSBkaXNjb25uZWN0IGFsbCB0aGUgcGlwZXMgYW5kIHN0b3BcbiAgICogdGhlIEhUVFAgcmVxdWVzdCBpdHNlbGYuIFRoZW4gcmVzZXQgdGhlIHN0YXRlLlxuICAgKi9cbiAgc3RvcCgpIHtcbiAgICBpZiAoIXRoaXMuY29uc3VtZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtLnVucGlwZSh0aGlzLmNvbnN1bWVyKTtcbiAgICB0aGlzLmNvbnN1bWVyLnVucGlwZSh0aGlzKTtcbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtLmRlc3Ryb3koKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIFdyaXRhYmxlIHdyaXRlKCkgbWV0aG9kIGluIG9yZGVyIHRvIHNhdmUgdGhlIGxhc3QgaW1hZ2UgYW5kXG4gICAqIGxvZyB0aGUgbnVtYmVyIG9mIGltYWdlcyB3ZSBoYXZlIHJlY2VpdmVkXG4gICAqIEBvdmVycmlkZVxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gZGF0YSAtIGJpbmFyeSBkYXRhIHN0cmVhbWVkIGZyb20gdGhlIE1KcGVnIGNvbnN1bWVyXG4gICAqL1xuICB3cml0ZShkYXRhKSB7XG4gICAgdGhpcy5sYXN0Q2h1bmsgPSBkYXRhO1xuICAgIHRoaXMudXBkYXRlQ291bnQrKztcblxuICAgIGlmICh0aGlzLnJlZ2lzdGVyU3RhcnRTdWNjZXNzKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVyU3RhcnRTdWNjZXNzKCk7XG4gICAgICB0aGlzLnJlZ2lzdGVyU3RhcnRTdWNjZXNzID0gbnVsbDtcbiAgICB9XG5cbiAgICByZXR1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
@@ -13,4 +13,4 @@ const {
13
13
  mkdirp
14
14
  } = _fs.fs;
15
15
  exports.mkdirp = mkdirp;
16
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9ta2RpcnAuanMiXSwibmFtZXMiOlsibWtkaXJwIiwiZnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUlBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFhQyxNQUFuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZzIH0gZnJvbSAnLi9mcyc7XG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgZnMubWtkaXJwYCBpbnN0ZWFkLlxuICovXG5jb25zdCB7IG1rZGlycCB9ID0gZnM7XG5leHBvcnQgeyBta2RpcnAgfTtcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJta2RpcnAiLCJmcyJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9ta2RpcnAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtmc30gZnJvbSAnLi9mcyc7XG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgZnMubWtkaXJwYCBpbnN0ZWFkLlxuICovXG5jb25zdCB7bWtkaXJwfSA9IGZzO1xuZXhwb3J0IHtta2RpcnB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFJQSxNQUFNO0VBQUNBO0FBQUQsSUFBV0MsTUFBakIifQ==
@@ -7,7 +7,10 @@ export type NetOptions = {
7
7
  * (e.g. timings and speed)
8
8
  */
9
9
  isMetered?: boolean | undefined;
10
- auth: AuthCredentials;
10
+ /**
11
+ * - Authentication credentials
12
+ */
13
+ auth?: AuthCredentials | undefined;
11
14
  };
12
15
  /**
13
16
  * Specific options for {@linkcode downloadFile }.
@@ -20,7 +23,7 @@ export type DownloadOptions = {
20
23
  /**
21
24
  * - Request headers mapping
22
25
  */
23
- headers: Record<string, any>;
26
+ headers?: Record<string, any> | undefined;
24
27
  };
25
28
  /**
26
29
  * Basic auth credentials; used by {@linkcode NetOptions }.
@@ -1 +1 @@
1
- {"version":3,"file":"net.d.ts","sourceRoot":"","sources":["../../lib/net.js"],"names":[],"mappings":";;;;;;;;;UAuRc,eAAe;;;;;;;;;;;;;aAOf,OAAO,MAAM,EAAC,GAAG,CAAC;;;;;;;;;UAMlB,MAAM;;;;UACN,MAAM;;;;;;aAMN,KAAK;YACL,KAAK;aACL,KAAK;mBACL,KAAK;gBACL,KAAK;;;;;;;;;aAML,OAAO,MAAM,EAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;AAzJhC;;;;;;;;GAQG;AACH,sCALW,MAAM,aACN,MAAM,0FAEJ,QAAQ,IAAI,CAAC,CAmCzB;AAED;;;;;;;GAOG;AACH,wCALW,MAAM,WACN,MAAM,+EAkEhB"}
1
+ {"version":3,"file":"net.d.ts","sourceRoot":"","sources":["../../lib/net.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UA6Sc,MAAM;;;;UACN,MAAM;;;;;;aAMN,KAAK;YACL,KAAK;aACL,KAAK;mBACL,KAAK;gBACL,KAAK;;;;;;;;;aAML,OAAO,MAAM,EAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;AA/JhC;;;;;;;;GAQG;AACH,sCALW,MAAM,aACN,MAAM,0FAEJ,QAAQ,IAAI,CAAC,CAyCzB;AAED;;;;;;;GAOG;AACH,wCALW,MAAM,WACN,MAAM,+EAkEhB"}
package/build/lib/net.js CHANGED
@@ -269,4 +269,4 @@ async function downloadFile(remoteUrl, dstPath, downloadOptions = {}) {
269
269
  }
270
270
  }
271
271
  }
272
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9uZXQuanMiXSwibmFtZXMiOlsiREVGQVVMVF9USU1FT1VUX01TIiwidG9BeGlvc0F1dGgiLCJhdXRoIiwiXyIsImlzUGxhaW5PYmplY3QiLCJheGlvc0F1dGgiLCJ1c2VybmFtZSIsImdldCIsInBhc3N3b3JkIiwidXBsb2FkRmlsZVRvSHR0cCIsImxvY2FsRmlsZVN0cmVhbSIsInBhcnNlZFVyaSIsInVwbG9hZE9wdGlvbnMiLCJtZXRob2QiLCJ0aW1lb3V0IiwiaGVhZGVycyIsImZpbGVGaWVsZE5hbWUiLCJmb3JtRmllbGRzIiwiaHJlZiIsInJlcXVlc3RPcHRzIiwidXJsIiwibWF4Q29udGVudExlbmd0aCIsIkluZmluaXR5IiwibWF4Qm9keUxlbmd0aCIsImZvcm0iLCJGb3JtRGF0YSIsImFwcGVuZCIsInBhaXJzIiwiaXNBcnJheSIsInRvUGFpcnMiLCJrZXkiLCJ2YWx1ZSIsInRvTG93ZXIiLCJnZXRIZWFkZXJzIiwiZGF0YSIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsIm9taXQiLCJzdGF0dXMiLCJzdGF0dXNUZXh0IiwiaW5mbyIsInVwbG9hZEZpbGVUb0Z0cCIsImhvc3RuYW1lIiwicG9ydCIsInByb3RvY29sIiwicGF0aG5hbWUiLCJmdHBPcHRzIiwiaG9zdCIsImlzVW5kZWZpbmVkIiwicGFyc2VJbnQiLCJ1c2VyIiwicGFzcyIsIkIiLCJyZXNvbHZlIiwicmVqZWN0IiwiRnRwIiwicHV0IiwiZXJyIiwiaXNIdHRwVXBsb2FkT3B0aW9ucyIsIm9wdHMiLCJVUkwiLCJpc05vdEh0dHBVcGxvYWRPcHRpb25zIiwidXBsb2FkRmlsZSIsImxvY2FsUGF0aCIsInJlbW90ZVVyaSIsImZzIiwiZXhpc3RzIiwiRXJyb3IiLCJpc01ldGVyZWQiLCJzaXplIiwic3RhdCIsInRpbWVyIiwiVGltZXIiLCJzdGFydCIsImNyZWF0ZVJlYWRTdHJlYW0iLCJnZXREdXJhdGlvbiIsImFzU2Vjb25kcyIsInRvRml4ZWQiLCJkb3dubG9hZEZpbGUiLCJyZW1vdGVVcmwiLCJkc3RQYXRoIiwiZG93bmxvYWRPcHRpb25zIiwicmVzcG9uc2VUeXBlIiwicmVzcG9uc2VMZW5ndGgiLCJ3cml0ZXIiLCJjcmVhdGVXcml0ZVN0cmVhbSIsInJlc3BvbnNlU3RyZWFtIiwicmVzcG9uc2VIZWFkZXJzIiwicGlwZSIsIm9uY2UiLCJlIiwidW5waXBlIiwibWVzc2FnZSIsInJpbXJhZiIsInNlY29uZHNFbGFwc2VkIiwiYnl0ZXNQZXJTZWMiLCJNYXRoIiwiZmxvb3IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLGtCQUFrQixHQUFHLElBQUksRUFBSixHQUFTLElBQXBDOztBQU9BLFNBQVNDLFdBQVQsQ0FBc0JDLElBQXRCLEVBQTRCO0FBQzFCLE1BQUksQ0FBQ0MsZ0JBQUVDLGFBQUYsQ0FBZ0JGLElBQWhCLENBQUwsRUFBNEI7QUFDMUIsV0FBTyxJQUFQO0FBQ0Q7O0FBRUQsUUFBTUcsU0FBUyxHQUFHO0FBQ2hCQyxJQUFBQSxRQUFRLEVBQUVILGdCQUFFSSxHQUFGLENBQU1MLElBQU4sRUFBWSxVQUFaLEVBQXdCQyxnQkFBRUksR0FBRixDQUFNTCxJQUFOLEVBQVksTUFBWixDQUF4QixDQURNO0FBRWhCTSxJQUFBQSxRQUFRLEVBQUVMLGdCQUFFSSxHQUFGLENBQU1MLElBQU4sRUFBWSxVQUFaLEVBQXdCQyxnQkFBRUksR0FBRixDQUFNTCxJQUFOLEVBQVksTUFBWixDQUF4QjtBQUZNLEdBQWxCO0FBSUEsU0FBUUcsU0FBUyxDQUFDQyxRQUFWLElBQXNCRCxTQUFTLENBQUNHLFFBQWpDLEdBQTZDSCxTQUE3QyxHQUF5RCxJQUFoRTtBQUNEOztBQU9ELGVBQWVJLGdCQUFmLENBQWlDQyxlQUFqQyxFQUFrREMsU0FBbEQsRUFBNkRDLGFBQWEsR0FBaUQsRUFBM0gsRUFBZ0k7QUFDOUgsUUFBTTtBQUNKQyxJQUFBQSxNQUFN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QUFmLENBQXNCUCxNQUF0QjtBQUNBOUIsUUFBQUEsTUFBTSxDQUFDb0MsQ0FBRCxDQUFOO0FBQ0QsT0FIRDtBQUlELEtBUEssQ0FBTjtBQVFELEdBakJELENBaUJFLE9BQU9qQyxHQUFQLEVBQVk7QUFDWixVQUFNLElBQUlVLEtBQUosQ0FBVyxpQ0FBZ0NZLFNBQVUsS0FBSXRCLEdBQUcsQ0FBQ21DLE9BQVEsRUFBckUsQ0FBTjtBQUNEOztBQUVELFFBQU07QUFBQ3ZCLElBQUFBO0FBQUQsTUFBUyxNQUFNSixZQUFHSyxJQUFILENBQVFVLE9BQVIsQ0FBckI7O0FBQ0EsTUFBSUcsY0FBYyxJQUFJZCxJQUFJLEtBQUtjLGNBQS9CLEVBQStDO0FBQzdDLFVBQU1sQixZQUFHNEIsTUFBSCxDQUFVYixPQUFWLENBQU47QUFDQSxVQUFNLElBQUliLEtBQUosQ0FBVyx3Q0FBdUNZLFNBQVUsS0FBSVYsSUFBSyxVQUEzRCxHQUNiLDJEQUEwRGMsY0FBZSxTQUR0RSxDQUFOO0FBRUQ7O0FBQ0QsTUFBSWYsU0FBSixFQUFlO0FBQ2IsVUFBTTBCLGNBQWMsR0FBR3ZCLEtBQUssQ0FBQ0ksV0FBTixHQUFvQkMsU0FBM0M7O0FBQ0EzQyxvQkFBSUMsS0FBSixDQUFXLEdBQUU2QyxTQUFVLEtBQUksZ0NBQXFCVixJQUFyQixDQUEyQixJQUE1QyxHQUNQLDJCQUEwQlcsT0FBUSxRQUFPYyxjQUFjLENBQUNqQixPQUFmLENBQXVCLENBQXZCLENBQTBCLEdBRHRFOztBQUVBLFFBQUlpQixjQUFjLElBQUksQ0FBdEIsRUFBeUI7QUFDdkIsWUFBTUMsV0FBVyxHQUFHQyxJQUFJLENBQUNDLEtBQUwsQ0FBVzVCLElBQUksR0FBR3lCLGNBQWxCLENBQXBCOztBQUNBN0Qsc0JBQUlDLEtBQUosQ0FBVywrQkFBOEIsZ0NBQXFCNkQsV0FBckIsQ0FBa0MsSUFBM0U7QUFDRDtBQUNGO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGZzIGZyb20gJy4vZnMnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHsgdG9SZWFkYWJsZVNpemVTdHJpbmcgfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgRnRwIGZyb20gJ2pzZnRwJztcbmltcG9ydCBUaW1lciBmcm9tICcuL3RpbWluZyc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IEZvcm1EYXRhIGZyb20gJ2Zvcm0tZGF0YSc7XG5cbmNvbnN0IERFRkFVTFRfVElNRU9VVF9NUyA9IDQgKiA2MCAqIDEwMDA7XG5cbi8qKlxuICogQ29udmVydHMge0BsaW5rY29kZSBBdXRoQ3JlZGVudGlhbHN9IHRvIGNyZWRlbnRpYWxzIHVuZGVyc3Rvb2QgYnkge0BsaW5rY29kZSBheGlvc30uXG4gKiBAcGFyYW0ge0F1dGhDcmVkZW50aWFscyB8IGltcG9ydCgnYXhpb3MnKS5BeGlvc0Jhc2ljQ3JlZGVudGlhbHN9IGF1dGhcbiAqIEByZXR1cm5zIHtpbXBvcnQoJ2F4aW9zJykuQXhpb3NCYXNpY0NyZWRlbnRpYWxzP31cbiAqL1xuZnVuY3Rpb24gdG9BeGlvc0F1dGggKGF1dGgpIHtcbiAgaWYgKCFfLmlzUGxhaW5PYmplY3QoYXV0aCkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGF4aW9zQXV0aCA9IHtcbiAgICB1c2VybmFtZTogXy5nZXQoYXV0aCwgJ3VzZXJuYW1lJywgXy5nZXQoYXV0aCwgJ3VzZXInKSksXG4gICAgcGFzc3dvcmQ6IF8uZ2V0KGF1dGgsICdwYXNzd29yZCcsIF8uZ2V0KGF1dGgsICdwYXNzJykpLFxuICB9O1xuICByZXR1cm4gKGF4aW9zQXV0aC51c2VybmFtZSAmJiBheGlvc0F1dGgucGFzc3dvcmQpID8gYXhpb3NBdXRoIDogbnVsbDtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge05vZGVKUy5SZWFkYWJsZVN0cmVhbX0gbG9jYWxGaWxlU3RyZWFtXG4gKiBAcGFyYW0ge1VSTH0gcGFyc2VkVXJpXG4gKiBAcGFyYW0ge0h0dHBVcGxvYWRPcHRpb25zICYgTmV0T3B0aW9uc30gW3VwbG9hZE9wdGlvbnNdXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHVwbG9hZEZpbGVUb0h0dHAgKGxvY2FsRmlsZVN0cmVhbSwgcGFyc2VkVXJpLCB1cGxvYWRPcHRpb25zID0gLyoqIEB0eXBlIHtIdHRwVXBsb2FkT3B0aW9ucyAmIE5ldE9wdGlvbnN9ICovKHt9KSkge1xuICBjb25zdCB7XG4gICAgbWV0aG9kID0gJ1BPU1QnLFxuICAgIHRpbWVvdXQgPSBERUZBVUxUX1RJTUVPVVRfTVMsXG4gICAgaGVhZGVycyxcbiAgICBhdXRoLFxuICAgIGZpbGVGaWVsZE5hbWUgPSAnZmlsZScsXG4gICAgZm9ybUZpZWxkcyxcbiAgfSA9IHVwbG9hZE9wdGlvbnM7XG4gIGNvbnN0IHsgaHJlZiB9ID0gcGFyc2VkVXJpO1xuXG4gIC8qKiBAdHlwZSB7aW1wb3J0KCdheGlvcycpLkF4aW9zUmVxdWVzdENvbmZpZ30gKi9cbiAgY29uc3QgcmVxdWVzdE9wdHMgPSB7XG4gICAgdXJsOiBocmVmLFxuICAgIG1ldGhvZCxcbiAgICB0aW1lb3V0LFxuICAgIG1heENvbnRlbnRMZW5ndGg6IEluZmluaXR5LFxuICAgIG1heEJvZHlMZW5ndGg6IEluZmluaXR5LFxuICB9O1xuICBjb25zdCBheGlvc0F1dGggPSB0b0F4aW9zQXV0aChhdXRoKTtcbiAgaWYgKGF4aW9zQXV0aCkge1xuICAgIHJlcXVlc3RPcHRzLmF1dGggPSBheGlvc0F1dGg7XG4gIH1cbiAgaWYgKGZpbGVGaWVsZE5hbWUpIHtcbiAgICBjb25zdCBmb3JtID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybS5hcHBlbmQoZmlsZUZpZWxkTmFtZSwgbG9jYWxGaWxlU3RyZWFtKTtcbiAgICBpZiAoZm9ybUZpZWxkcykge1xuICAgICAgbGV0IHBhaXJzID0gW107XG4gICAgICBpZiAoXy5pc0FycmF5KGZvcm1GaWVsZHMpKSB7XG4gICAgICAgIHBhaXJzID0gZm9ybUZpZWxkcztcbiAgICAgIH0gZWxzZSBpZiAoXy5pc1BsYWluT2JqZWN0KGZvcm1GaWVsZHMpKSB7XG4gICAgICAgIHBhaXJzID0gXy50b1BhaXJzKGZvcm1GaWVsZHMpO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgcGFpcnMpIHtcbiAgICAgICAgaWYgKF8udG9Mb3dlcihrZXkpICE9PSBfLnRvTG93ZXIoZmlsZUZpZWxkTmFtZSkpIHtcbiAgICAgICAgICBmb3JtLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXF1ZXN0T3B0cy5oZWFkZXJzID0ge1xuICAgICAgLi4uKF8uaXNQbGFpbk9iamVjdChoZWFkZXJzKSA/IGhlYWRlcnMgOiB7fSksXG4gICAgICAuLi5mb3JtLmdldEhlYWRlcnMoKVxuICAgIH07XG4gICAgcmVxdWVzdE9wdHMuZGF0YSA9IGZvcm07XG4gIH0gZWxzZSB7XG4gICAgaWYgKF8uaXNQbGFpbk9iamVjdChoZWFkZXJzKSkge1xuICAgICAgcmVxdWVzdE9wdHMuaGVhZGVycyA9IGhlYWRlcnM7XG4gICAgfVxuICAgIHJlcXVlc3RPcHRzLmRhdGEgPSBsb2NhbEZpbGVTdHJlYW07XG4gIH1cbiAgbG9nLmRlYnVnKGBQZXJmb3JtaW5nICR7bWV0aG9kfSB0byAke2hyZWZ9IHdpdGggb3B0aW9ucyAoZXhjbHVkaW5nIGRhdGEpOiBgICtcbiAgICBKU09OLnN0cmluZ2lmeShfLm9taXQocmVxdWVzdE9wdHMsIFsnZGF0YSddKSkpO1xuXG4gIGNvbnN0IHtzdGF0dXMsIHN0YXR1c1RleHR9ID0gYXdhaXQgYXhpb3MocmVxdWVzdE9wdHMpO1xuICBsb2cuaW5mbyhgU2VydmVyIHJlc3BvbnNlOiAke3N0YXR1c30gJHtzdGF0dXNUZXh0fWApO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7c3RyaW5nIHwgQnVmZmVyIHwgTm9kZUpTLlJlYWRhYmxlU3RyZWFtfSBsb2NhbEZpbGVTdHJlYW1cbiAqIEBwYXJhbSB7VVJMfSBwYXJzZWRVcmlcbiAqIEBwYXJhbSB7Tm90SHR0cFVwbG9hZE9wdGlvbnMgJiBOZXRPcHRpb25zfSBbdXBsb2FkT3B0aW9uc11cbiAqL1xuYXN5bmMgZnVuY3Rpb24gdXBsb2FkRmlsZVRvRnRwIChsb2NhbEZpbGVTdHJlYW0sIHBhcnNlZFVyaSwgdXBsb2FkT3B0aW9ucyA9IC8qKiBAdHlwZSB7Tm90SHR0cFVwbG9hZE9wdGlvbnMgJiBOZXRPcHRpb25zfSAqLyh7fSkpIHtcbiAgY29uc3Qge1xuICAgIGF1dGgsXG4gIH0gPSB1cGxvYWRPcHRpb25zO1xuICBjb25zdCB7XG4gICAgaG9zdG5hbWUsXG4gICAgcG9ydCxcbiAgICBwcm90b2NvbCxcbiAgICBwYXRobmFtZSxcbiAgfSA9IHBhcnNlZFVyaTtcblxuICBjb25zdCBmdHBPcHRzID0ge1xuICAgIGhvc3Q6IGhvc3RuYW1lLFxuICAgIHBvcnQ6ICFfLmlzVW5kZWZpbmVkKHBvcnQpID8gXy5wYXJzZUludChwb3J0KSA6IDIxLFxuICB9O1xuICBpZiAoYXV0aD8udXNlciAmJiBhdXRoPy5wYXNzKSB7XG4gICAgZnRwT3B0cy51c2VyID0gYXV0aC51c2VyO1xuICAgIGZ0cE9wdHMucGFzcyA9IGF1dGgucGFzcztcbiAgfVxuICBsb2cuZGVidWcoYCR7cHJvdG9jb2x9IHVwbG9hZCBvcHRpb25zOiAke0pTT04uc3RyaW5naWZ5KGZ0cE9wdHMpfWApO1xuICByZXR1cm4gYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIG5ldyBGdHAoZnRwT3B0cykucHV0KGxvY2FsRmlsZVN0cmVhbSwgcGF0aG5hbWUsIChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgYHRydWVgIGlmIHBhcmFtcyBhcmUgdmFsaWQgZm9yIHtAbGlua2NvZGUgdXBsb2FkRmlsZVRvSHR0cH0uXG4gKiBAcGFyYW0ge2FueX0gb3B0c1xuICogQHBhcmFtIHtVUkx9IHVybFxuICogQHJldHVybnMge29wdHMgaXMgSHR0cFVwbG9hZE9wdGlvbnMgJiBOZXRPcHRpb25zfVxuICovXG5mdW5jdGlvbiBpc0h0dHBVcGxvYWRPcHRpb25zIChvcHRzLCB1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7cHJvdG9jb2x9ID0gbmV3IFVSTCh1cmwpO1xuICAgIHJldHVybiBwcm90b2NvbCA9PT0gJ2h0dHA6JyB8fCBwcm90b2NvbCA9PT0gJ2h0dHBzOic7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJldHVybnMgYHRydWVgIGlmIHBhcmFtcyBhcmUgdmFsaWQgZm9yIHtAbGlua2NvZGUgdXBsb2FkRmlsZVRvRnRwfS5cbiAqIEBwYXJhbSB7YW55fSBvcHRzXG4gKiBAcGFyYW0ge1VSTH0gdXJsXG4gKiBAcmV0dXJucyB7b3B0cyBpcyBOb3RIdHRwVXBsb2FkT3B0aW9ucyAmIE5ldE9wdGlvbnN9XG4gKi9cbmZ1bmN0aW9uIGlzTm90SHR0cFVwbG9hZE9wdGlvbnMgKG9wdHMsIHVybCkge1xuICB0cnkge1xuICAgIGNvbnN0IHtwcm90b2NvbH0gPSBuZXcgVVJMKHVybCk7XG4gICAgcmV0dXJuIHByb3RvY29sID09PSAnZnRwOic7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuLyoqXG4gKiBVcGxvYWRzIHRoZSBnaXZlbiBmaWxlIHRvIGEgcmVtb3RlIGxvY2F0aW9uLiBIVFRQKFMpIGFuZCBGVFBcbiAqIHByb3RvY29scyBhcmUgc3VwcG9ydGVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhbFBhdGggLSBUaGUgcGF0aCB0byBhIGZpbGUgb24gdGhlIGxvY2FsIHN0b3JhZ2UuXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVtb3RlVXJpIC0gVGhlIHJlbW90ZSBVUkkgdG8gdXBsb2FkIHRoZSBmaWxlIHRvLlxuICogQHBhcmFtIHsoSHR0cFVwbG9hZE9wdGlvbnN8Tm90SHR0cFVwbG9hZE9wdGlvbnMpICYgTmV0T3B0aW9uc30gW3VwbG9hZE9wdGlvbnNdXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gdXBsb2FkRmlsZSAobG9jYWxQYXRoLCByZW1vdGVVcmksIHVwbG9hZE9wdGlvbnMgPSAvKiogQHR5cGUgeyhIdHRwVXBsb2FkT3B0aW9uc3xOb3RIdHRwVXBsb2FkT3B0aW9ucykgJiBOZXRPcHRpb25zfSAqLyh7fSkpIHtcbiAgaWYgKCFhd2FpdCBmcy5leGlzdHMobG9jYWxQYXRoKSkge1xuICAgIHRocm93IG5ldyBFcnJvciAoYCcke2xvY2FsUGF0aH0nIGRvZXMgbm90IGV4aXN0cyBvciBpcyBub3QgYWNjZXNzaWJsZWApO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGlzTWV0ZXJlZCA9IHRydWUsXG4gIH0gPSB1cGxvYWRPcHRpb25zO1xuICBjb25zdCB1cmwgPSBuZXcgVVJMKHJlbW90ZVVyaSk7XG4gIGNvbnN0IHtzaXplfSA9IGF3YWl0IGZzLnN0YXQobG9jYWxQYXRoKTtcbiAgaWYgKGlzTWV0ZXJlZCkge1xuICAgIGxvZy5pbmZvKGBVcGxvYWRpbmcgJyR7bG9jYWxQYXRofScgb2YgJHt0b1JlYWRhYmxlU2l6ZVN0cmluZyhzaXplKX0gc2l6ZSB0byAnJHtyZW1vdGVVcml9J2ApO1xuICB9XG4gIGNvbnN0IHRpbWVyID0gbmV3IFRpbWVyKCkuc3RhcnQoKTtcbiAgaWYgKGlzSHR0cFVwbG9hZE9wdGlvbnModXBsb2FkT3B0aW9ucywgdXJsKSkge1xuICAgIGlmICghdXBsb2FkT3B0aW9ucy5maWxlRmllbGROYW1lKSB7XG4gICAgICB1cGxvYWRPcHRpb25zLmhlYWRlcnMgPSB7XG4gICAgICAgIC4uLihfLmlzUGxhaW5PYmplY3QodXBsb2FkT3B0aW9ucy5oZWFkZXJzKSA/IHVwbG9hZE9wdGlvbnMuaGVhZGVycyA6IHt9KSxcbiAgICAgICAgJ0NvbnRlbnQtTGVuZ3RoJzogc2l6ZVxuICAgICAgfTtcbiAgICB9XG4gICAgYXdhaXQgdXBsb2FkRmlsZVRvSHR0cChmcy5jcmVhdGVSZWFkU3RyZWFtKGxvY2FsUGF0aCksIHVybCwgdXBsb2FkT3B0aW9ucyk7XG4gIH0gZWxzZSBpZiAoaXNOb3RIdHRwVXBsb2FkT3B0aW9ucyh1cGxvYWRPcHRpb25zLCB1cmwpKSB7XG4gICAgYXdhaXQgdXBsb2FkRmlsZVRvRnRwKGZzLmNyZWF0ZVJlYWRTdHJlYW0obG9jYWxQYXRoKSwgdXJsLCB1cGxvYWRPcHRpb25zKTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCB1cGxvYWQgdGhlIGZpbGUgYXQgJyR7bG9jYWxQYXRofScgdG8gJyR7cmVtb3RlVXJpfScuIGAgK1xuICAgICAgYFVuc3VwcG9ydGVkIHJlbW90ZSBwcm90b2NvbCAnJHt1cmwucHJvdG9jb2x9Jy4gYCArXG4gICAgICBgT25seSBodHRwL2h0dHBzIGFuZCBmdHAvZnRwcyBwcm90b2NvbHMgYXJlIHN1cHBvcnRlZC5gKTtcbiAgfVxuICBpZiAoaXNNZXRlcmVkKSB7XG4gICAgbG9nLmluZm8oYFVwbG9hZGVkICcke2xvY2FsUGF0aH0nIG9mICR7dG9SZWFkYWJsZVNpemVTdHJpbmcoc2l6ZSl9IHNpemUgaW4gYCArXG4gICAgICBgJHt0aW1lci5nZXREdXJhdGlvbigpLmFzU2Vjb25kcy50b0ZpeGVkKDMpfXNgKTtcbiAgfVxufVxuXG4vKipcbiAqIERvd25sb2FkcyB0aGUgZ2l2ZW4gZmlsZSB2aWEgSFRUUChTKVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSByZW1vdGVVcmwgLSBUaGUgcmVtb3RlIHVybFxuICogQHBhcmFtIHtzdHJpbmd9IGRzdFBhdGggLSBUaGUgbG9jYWwgcGF0aCB0byBkb3dubG9hZCB0aGUgZmlsZSB0b1xuICogQHBhcmFtIHtEb3dubG9hZE9wdGlvbnMgJiBOZXRPcHRpb25zfSBbZG93bmxvYWRPcHRpb25zXVxuICogQHRocm93cyB7RXJyb3J9IElmIGRvd25sb2FkIG9wZXJhdGlvbiBmYWlsc1xuICovXG5hc3luYyBmdW5jdGlvbiBkb3dubG9hZEZpbGUgKHJlbW90ZVVybCwgZHN0UGF0aCwgZG93bmxvYWRPcHRpb25zID0gLyoqIEB0eXBlIHtEb3dubG9hZE9wdGlvbnMgJiBOZXRPcHRpb25zfSAqLyh7fSkpIHtcbiAgY29uc3Qge1xuICAgIGlzTWV0ZXJlZCA9IHRydWUsXG4gICAgYXV0aCxcbiAgICB0aW1lb3V0ID0gREVGQVVMVF9USU1FT1VUX01TLFxuICAgIGhlYWRlcnMsXG4gIH0gPSBkb3dubG9hZE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtpbXBvcnQoJ2F4aW9zJykuQXhpb3NSZXF1ZXN0Q29uZmlnfVxuICAgKi9cbiAgY29uc3QgcmVxdWVzdE9wdHMgPSB7XG4gICAgdXJsOiByZW1vdGVVcmwsXG4gICAgcmVzcG9uc2VUeXBlOiAnc3RyZWFtJyxcbiAgICB0aW1lb3V0LFxuICB9O1xuICBjb25zdCBheGlvc0F1dGggPSB0b0F4aW9zQXV0aChhdXRoKTtcbiAgaWYgKGF4aW9zQXV0aCkge1xuICAgIHJlcXVlc3RPcHRzLmF1dGggPSBheGlvc0F1dGg7XG4gIH1cbiAgaWYgKF8uaXNQbGFpbk9iamVjdChoZWFkZXJzKSkge1xuICAgIHJlcXVlc3RPcHRzLmhlYWRlcnMgPSBoZWFkZXJzO1xuICB9XG5cbiAgY29uc3QgdGltZXIgPSBuZXcgVGltZXIoKS5zdGFydCgpO1xuICBsZXQgcmVzcG9uc2VMZW5ndGg7XG4gIHRyeSB7XG4gICAgY29uc3Qgd3JpdGVyID0gZnMuY3JlYXRlV3JpdGVTdHJlYW0oZHN0UGF0aCk7XG4gICAgY29uc3Qge1xuICAgICAgZGF0YTogcmVzcG9uc2VTdHJlYW0sXG4gICAgICBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnMsXG4gICAgfSA9IGF3YWl0IGF4aW9zKHJlcXVlc3RPcHRzKTtcbiAgICByZXNwb25zZUxlbmd0aCA9IHBhcnNlSW50KHJlc3BvbnNlSGVhZGVyc1snY29udGVudC1sZW5ndGgnXSwgMTApO1xuICAgIHJlc3BvbnNlU3RyZWFtLnBpcGUod3JpdGVyKTtcblxuICAgIGF3YWl0IG5ldyBCKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHJlc3BvbnNlU3RyZWFtLm9uY2UoJ2Vycm9yJywgcmVqZWN0KTtcbiAgICAgIHdyaXRlci5vbmNlKCdmaW5pc2gnLCByZXNvbHZlKTtcbiAgICAgIHdyaXRlci5vbmNlKCdlcnJvcicsIChlKSA9PiB7XG4gICAgICAgIHJlc3BvbnNlU3RyZWFtLnVucGlwZSh3cml0ZXIpO1xuICAgICAgICByZWplY3QoZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZG93bmxvYWQgdGhlIGZpbGUgZnJvbSAke3JlbW90ZVVybH06ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cblxuICBjb25zdCB7c2l6ZX0gPSBhd2FpdCBmcy5zdGF0KGRzdFBhdGgpO1xuICBpZiAocmVzcG9uc2VMZW5ndGggJiYgc2l6ZSAhPT0gcmVzcG9uc2VMZW5ndGgpIHtcbiAgICBhd2FpdCBmcy5yaW1yYWYoZHN0UGF0aCk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgc2l6ZSBvZiB0aGUgZmlsZSBkb3dubG9hZGVkIGZyb20gJHtyZW1vdGVVcmx9ICgke3NpemV9IGJ5dGVzKSBgICtcbiAgICAgIGBkaWZmZXJzIGZyb20gdGhlIG9uZSBpbiBDb250ZW50LUxlbmd0aCByZXNwb25zZSBoZWFkZXIgKCR7cmVzcG9uc2VMZW5ndGh9IGJ5dGVzKWApO1xuICB9XG4gIGlmIChpc01ldGVyZWQpIHtcbiAgICBjb25zdCBzZWNvbmRzRWxhcHNlZCA9IHRpbWVyLmdldER1cmF0aW9uKCkuYXNTZWNvbmRzO1xuICAgIGxvZy5kZWJ1ZyhgJHtyZW1vdGVVcmx9ICgke3RvUmVhZGFibGVTaXplU3RyaW5nKHNpemUpfSkgYCArXG4gICAgICBgaGFzIGJlZW4gZG93bmxvYWRlZCB0byAnJHtkc3RQYXRofScgaW4gJHtzZWNvbmRzRWxhcHNlZC50b0ZpeGVkKDMpfXNgKTtcbiAgICBpZiAoc2Vjb25kc0VsYXBzZWQgPj0gMikge1xuICAgICAgY29uc3QgYnl0ZXNQZXJTZWMgPSBNYXRoLmZsb29yKHNpemUgLyBzZWNvbmRzRWxhcHNlZCk7XG4gICAgICBsb2cuZGVidWcoYEFwcHJveGltYXRlIGRvd25sb2FkIHNwZWVkOiAke3RvUmVhZGFibGVTaXplU3RyaW5nKGJ5dGVzUGVyU2VjKX0vc2ApO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgeyB1cGxvYWRGaWxlLCBkb3dubG9hZEZpbGUgfTtcblxuLyoqXG4gKiBDb21tb24gb3B0aW9ucyBmb3Ige0BsaW5rY29kZSB1cGxvYWRGaWxlfSBhbmQge0BsaW5rY29kZSBkb3dubG9hZEZpbGV9LlxuICogQHR5cGVkZWYgTmV0T3B0aW9uc1xuICogQHByb3BlcnR5IHtib29sZWFufSBbaXNNZXRlcmVkPXRydWVdIC0gV2hldGhlciB0byBsb2cgdGhlIGFjdHVhbCBkb3dubG9hZCBwZXJmb3JtYW5jZVxuICogKGUuZy4gdGltaW5ncyBhbmQgc3BlZWQpXG4gKiBAcHJvcGVydHkge0F1dGhDcmVkZW50aWFsc30gYXV0aFxuICovXG5cbi8qKlxuICogU3BlY2lmaWMgb3B0aW9ucyBmb3Ige0BsaW5rY29kZSBkb3dubG9hZEZpbGV9LlxuICogQHR5cGVkZWYgRG93bmxvYWRPcHRpb25zXG4gKiBAcHJvcGVydHkge251bWJlcn0gW3RpbWVvdXRdIC0gVGhlIGFjdHVhbCByZXF1ZXN0IHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzOyBkZWZhdWx0cyB0byB7QGxpbmtjb2RlIERFRkFVTFRfVElNRU9VVF9NU31cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZyxhbnk+fSBoZWFkZXJzIC0gUmVxdWVzdCBoZWFkZXJzIG1hcHBpbmdcbiAqL1xuXG4vKipcbiAqIEJhc2ljIGF1dGggY3JlZGVudGlhbHM7IHVzZWQgYnkge0BsaW5rY29kZSBOZXRPcHRpb25zfS5cbiAqIEB0eXBlZGVmIEF1dGhDcmVkZW50aWFsc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IHVzZXIgLSBOb24tZW1wdHkgdXNlciBuYW1lXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcGFzcyAtIE5vbi1lbXB0eSBwYXNzd29yZFxuICovXG5cbi8qKlxuICogVGhpcyB0eXBlIGlzIHVzZWQgaW4ge0BsaW5rY29kZSB1cGxvYWRGaWxlfSBpZiB0aGUgcmVtb3RlIGxvY2F0aW9uIHVzZXMgdGhlIGBmdHBgIHByb3RvY29sLCBhbmQgZGlzdGluZ3Vpc2hlcyB0aGUgdHlwZSBmcm9tIHtAbGlua2NvZGUgSHR0cFVwbG9hZE9wdGlvbnN9LlxuICogQHR5cGVkZWYgTm90SHR0cFVwbG9hZE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7bmV2ZXJ9IGhlYWRlcnNcbiAqIEBwcm9wZXJ0eSB7bmV2ZXJ9IG1ldGhvZFxuICogQHByb3BlcnR5IHtuZXZlcn0gdGltZW91dFxuICogQHByb3BlcnR5IHtuZXZlcn0gZmlsZUZpZWxkTmFtZVxuICogQHByb3BlcnR5IHtuZXZlcn0gZm9ybUZpZWxkc1xuICovXG5cbi8qKlxuICogU3BlY2lmaWMgb3B0aW9ucyBmb3Ige0BsaW5rY29kZSB1cGxvYWRGaWxlfSBpZiB0aGUgcmVtb3RlIGxvY2F0aW9uIHVzZXMgdGhlIGBodHRwKHMpYCBwcm90b2NvbFxuICogQHR5cGVkZWYgSHR0cFVwbG9hZE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZyxhbnk+fSBoZWFkZXJzIC0gQWRkaXRpb25hbCByZXF1ZXN0IGhlYWRlcnMgbWFwcGluZ1xuICogQHByb3BlcnR5IHtpbXBvcnQoJ2F4aW9zJykuTWV0aG9kfSBbbWV0aG9kPSdQT1NUJ10gLSBUaGUgSFRUUCBtZXRob2QgdXNlZCBmb3IgZmlsZSB1cGxvYWRcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBbdGltZW91dF0gLSBUaGUgYWN0dWFsIHJlcXVlc3QgdGltZW91dCBpbiBtaWxsaXNlY29uZHM7IGRlZmF1bHRzIHRvIHtAbGlua2NvZGUgREVGQVVMVF9USU1FT1VUX01TfVxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtmaWxlRmllbGROYW1lPSdmaWxlJ10gLSBUaGUgbmFtZSBvZiB0aGUgZm9ybSBmaWVsZCBjb250YWluaW5nIHRoZSBmaWxlXG4gKiBjb250ZW50IHRvIGJlIHVwbG9hZGVkLiBBbnkgZmFsc3kgdmFsdWUgbWFrZSB0aGUgcmVxdWVzdCB0byB1c2Ugbm9uLW11bHRpcGFydCB1cGxvYWRcbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZyxhbnk+fSBbZm9ybUZpZWxkc10gLSBUaGUgYWRkaXRpb25hbCBmb3JtIGZpZWxkc1xuICogdG8gYmUgaW5jbHVkZWQgaW50byB0aGUgdXBsb2FkIHJlcXVlc3QuIFRoaXMgcHJvcGVydHkgaXMgb25seSBjb25zaWRlcmVkIGlmXG4gKiBgZmlsZUZpZWxkTmFtZWAgaXMgc2V0XG4gKi9cblxuIl19
272
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJERUZBVUxUX1RJTUVPVVRfTVMiLCJ0b0F4aW9zQXV0aCIsImF1dGgiLCJfIiwiaXNQbGFpbk9iamVjdCIsImF4aW9zQXV0aCIsInVzZXJuYW1lIiwiZ2V0IiwicGFzc3dvcmQiLCJ1cGxvYWRGaWxlVG9IdHRwIiwibG9jYWxGaWxlU3RyZWFtIiwicGFyc2VkVXJpIiwidXBsb2FkT3B0aW9ucyIsIm1ldGhvZCIsInRpbWVvdXQiLCJoZWFkZXJzIiwiZmlsZUZpZWxkTmFtZSIsImZvcm1GaWVsZHMiLCJocmVmIiwicmVxdWVzdE9wdHMiLCJ1cmwiLCJtYXhDb250ZW50TGVuZ3RoIiwiSW5maW5pdHkiLCJtYXhCb2R5TGVuZ3RoIiwiZm9ybSIsIkZvcm1EYXRhIiwiYXBwZW5kIiwicGFpcnMiLCJpc0FycmF5IiwidG9QYWlycyIsImtleSIsInZhbHVlIiwidG9Mb3dlciIsImdldEhlYWRlcnMiLCJkYXRhIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5Iiwib21pdCIsInN0YXR1cyIsInN0YXR1c1RleHQiLCJheGlvcyIsImluZm8iLCJ1cGxvYWRGaWxlVG9GdHAiLCJob3N0bmFtZSIsInBvcnQiLCJwcm90b2NvbCIsInBhdGhuYW1lIiwiZnRwT3B0cyIsImhvc3QiLCJpc1VuZGVmaW5lZCIsInBhcnNlSW50IiwidXNlciIsInBhc3MiLCJCIiwicmVzb2x2ZSIsInJlamVjdCIsIkZ0cCIsInB1dCIsImVyciIsImlzSHR0cFVwbG9hZE9wdGlvbnMiLCJvcHRzIiwiVVJMIiwiaXNOb3RIdHRwVXBsb2FkT3B0aW9ucyIsInVwbG9hZEZpbGUiLCJsb2NhbFBhdGgiLCJyZW1vdGVVcmkiLCJmcyIsImV4aXN0cyIsIkVycm9yIiwiaXNNZXRlcmVkIiwic2l6ZSIsInN0YXQiLCJ0b1JlYWRhYmxlU2l6ZVN0cmluZyIsInRpbWVyIiwiVGltZXIiLCJzdGFydCIsImNyZWF0ZVJlYWRTdHJlYW0iLCJnZXREdXJhdGlvbiIsImFzU2Vjb25kcyIsInRvRml4ZWQiLCJkb3dubG9hZEZpbGUiLCJyZW1vdGVVcmwiLCJkc3RQYXRoIiwiZG93bmxvYWRPcHRpb25zIiwicmVzcG9uc2VUeXBlIiwicmVzcG9uc2VMZW5ndGgiLCJ3cml0ZXIiLCJjcmVhdGVXcml0ZVN0cmVhbSIsInJlc3BvbnNlU3RyZWFtIiwicmVzcG9uc2VIZWFkZXJzIiwicGlwZSIsIm9uY2UiLCJlIiwidW5waXBlIiwibWVzc2FnZSIsInJpbXJhZiIsInNlY29uZHNFbGFwc2VkIiwiYnl0ZXNQZXJTZWMiLCJNYXRoIiwiZmxvb3IiXSwic291cmNlcyI6WyIuLi8uLi9saWIvbmV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgZnMgZnJvbSAnLi9mcyc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQge3RvUmVhZGFibGVTaXplU3RyaW5nfSBmcm9tICcuL3V0aWwnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgRnRwIGZyb20gJ2pzZnRwJztcbmltcG9ydCBUaW1lciBmcm9tICcuL3RpbWluZyc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IEZvcm1EYXRhIGZyb20gJ2Zvcm0tZGF0YSc7XG5cbmNvbnN0IERFRkFVTFRfVElNRU9VVF9NUyA9IDQgKiA2MCAqIDEwMDA7XG5cbi8qKlxuICogQ29udmVydHMge0BsaW5rY29kZSBBdXRoQ3JlZGVudGlhbHN9IHRvIGNyZWRlbnRpYWxzIHVuZGVyc3Rvb2QgYnkge0BsaW5rY29kZSBheGlvc30uXG4gKiBAcGFyYW0ge0F1dGhDcmVkZW50aWFscyB8IGltcG9ydCgnYXhpb3MnKS5BeGlvc0Jhc2ljQ3JlZGVudGlhbHN9IFthdXRoXVxuICogQHJldHVybnMge2ltcG9ydCgnYXhpb3MnKS5BeGlvc0Jhc2ljQ3JlZGVudGlhbHM/fVxuICovXG5mdW5jdGlvbiB0b0F4aW9zQXV0aChhdXRoKSB7XG4gIGlmICghXy5pc1BsYWluT2JqZWN0KGF1dGgpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBheGlvc0F1dGggPSB7XG4gICAgdXNlcm5hbWU6IF8uZ2V0KGF1dGgsICd1c2VybmFtZScsIF8uZ2V0KGF1dGgsICd1c2VyJykpLFxuICAgIHBhc3N3b3JkOiBfLmdldChhdXRoLCAncGFzc3dvcmQnLCBfLmdldChhdXRoLCAncGFzcycpKSxcbiAgfTtcbiAgcmV0dXJuIGF4aW9zQXV0aC51c2VybmFtZSAmJiBheGlvc0F1dGgucGFzc3dvcmQgPyBheGlvc0F1dGggOiBudWxsO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7Tm9kZUpTLlJlYWRhYmxlU3RyZWFtfSBsb2NhbEZpbGVTdHJlYW1cbiAqIEBwYXJhbSB7VVJMfSBwYXJzZWRVcmlcbiAqIEBwYXJhbSB7SHR0cFVwbG9hZE9wdGlvbnMgJiBOZXRPcHRpb25zfSBbdXBsb2FkT3B0aW9uc11cbiAqL1xuYXN5bmMgZnVuY3Rpb24gdXBsb2FkRmlsZVRvSHR0cChcbiAgbG9jYWxGaWxlU3RyZWFtLFxuICBwYXJzZWRVcmksXG4gIHVwbG9hZE9wdGlvbnMgPSAvKiogQHR5cGUge0h0dHBVcGxvYWRPcHRpb25zICYgTmV0T3B0aW9uc30gKi8gKHt9KVxuKSB7XG4gIGNvbnN0IHtcbiAgICBtZXRob2QgPSAnUE9TVCcsXG4gICAgdGltZW91dCA9IERFRkFVTFRfVElNRU9VVF9NUyxcbiAgICBoZWFkZXJzLFxuICAgIGF1dGgsXG4gICAgZmlsZUZpZWxkTmFtZSA9ICdmaWxlJyxcbiAgICBmb3JtRmllbGRzLFxuICB9ID0gdXBsb2FkT3B0aW9ucztcbiAgY29uc3Qge2hyZWZ9ID0gcGFyc2VkVXJpO1xuXG4gIC8qKiBAdHlwZSB7aW1wb3J0KCdheGlvcycpLkF4aW9zUmVxdWVzdENvbmZpZ30gKi9cbiAgY29uc3QgcmVxdWVzdE9wdHMgPSB7XG4gICAgdXJsOiBocmVmLFxuICAgIG1ldGhvZCxcbiAgICB0aW1lb3V0LFxuICAgIG1heENvbnRlbnRMZW5ndGg6IEluZmluaXR5LFxuICAgIG1heEJvZHlMZW5ndGg6IEluZmluaXR5LFxuICB9O1xuICBjb25zdCBheGlvc0F1dGggPSB0b0F4aW9zQXV0aChhdXRoKTtcbiAgaWYgKGF4aW9zQXV0aCkge1xuICAgIHJlcXVlc3RPcHRzLmF1dGggPSBheGlvc0F1dGg7XG4gIH1cbiAgaWYgKGZpbGVGaWVsZE5hbWUpIHtcbiAgICBjb25zdCBmb3JtID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybS5hcHBlbmQoZmlsZUZpZWxkTmFtZSwgbG9jYWxGaWxlU3RyZWFtKTtcbiAgICBpZiAoZm9ybUZpZWxkcykge1xuICAgICAgbGV0IHBhaXJzID0gW107XG4gICAgICBpZiAoXy5pc0FycmF5KGZvcm1GaWVsZHMpKSB7XG4gICAgICAgIHBhaXJzID0gZm9ybUZpZWxkcztcbiAgICAgIH0gZWxzZSBpZiAoXy5pc1BsYWluT2JqZWN0KGZvcm1GaWVsZHMpKSB7XG4gICAgICAgIHBhaXJzID0gXy50b1BhaXJzKGZvcm1GaWVsZHMpO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgcGFpcnMpIHtcbiAgICAgICAgaWYgKF8udG9Mb3dlcihrZXkpICE9PSBfLnRvTG93ZXIoZmlsZUZpZWxkTmFtZSkpIHtcbiAgICAgICAgICBmb3JtLmFwcGVuZChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXF1ZXN0T3B0cy5oZWFkZXJzID0ge1xuICAgICAgLi4uKF8uaXNQbGFpbk9iamVjdChoZWFkZXJzKSA/IGhlYWRlcnMgOiB7fSksXG4gICAgICAuLi5mb3JtLmdldEhlYWRlcnMoKSxcbiAgICB9O1xuICAgIHJlcXVlc3RPcHRzLmRhdGEgPSBmb3JtO1xuICB9IGVsc2Uge1xuICAgIGlmIChfLmlzUGxhaW5PYmplY3QoaGVhZGVycykpIHtcbiAgICAgIHJlcXVlc3RPcHRzLmhlYWRlcnMgPSBoZWFkZXJzO1xuICAgIH1cbiAgICByZXF1ZXN0T3B0cy5kYXRhID0gbG9jYWxGaWxlU3RyZWFtO1xuICB9XG4gIGxvZy5kZWJ1ZyhcbiAgICBgUGVyZm9ybWluZyAke21ldGhvZH0gdG8gJHtocmVmfSB3aXRoIG9wdGlvbnMgKGV4Y2x1ZGluZyBkYXRhKTogYCArXG4gICAgICBKU09OLnN0cmluZ2lmeShfLm9taXQocmVxdWVzdE9wdHMsIFsnZGF0YSddKSlcbiAgKTtcblxuICBjb25zdCB7c3RhdHVzLCBzdGF0dXNUZXh0fSA9IGF3YWl0IGF4aW9zKHJlcXVlc3RPcHRzKTtcbiAgbG9nLmluZm8oYFNlcnZlciByZXNwb25zZTogJHtzdGF0dXN9ICR7c3RhdHVzVGV4dH1gKTtcbn1cblxuLyoqXG4gKiBAcGFyYW0ge3N0cmluZyB8IEJ1ZmZlciB8IE5vZGVKUy5SZWFkYWJsZVN0cmVhbX0gbG9jYWxGaWxlU3RyZWFtXG4gKiBAcGFyYW0ge1VSTH0gcGFyc2VkVXJpXG4gKiBAcGFyYW0ge05vdEh0dHBVcGxvYWRPcHRpb25zICYgTmV0T3B0aW9uc30gW3VwbG9hZE9wdGlvbnNdXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHVwbG9hZEZpbGVUb0Z0cChcbiAgbG9jYWxGaWxlU3RyZWFtLFxuICBwYXJzZWRVcmksXG4gIHVwbG9hZE9wdGlvbnMgPSAvKiogQHR5cGUge05vdEh0dHBVcGxvYWRPcHRpb25zICYgTmV0T3B0aW9uc30gKi8gKHt9KVxuKSB7XG4gIGNvbnN0IHthdXRofSA9IHVwbG9hZE9wdGlvbnM7XG4gIGNvbnN0IHtob3N0bmFtZSwgcG9ydCwgcHJvdG9jb2wsIHBhdGhuYW1lfSA9IHBhcnNlZFVyaTtcblxuICBjb25zdCBmdHBPcHRzID0ge1xuICAgIGhvc3Q6IGhvc3RuYW1lLFxuICAgIHBvcnQ6ICFfLmlzVW5kZWZpbmVkKHBvcnQpID8gXy5wYXJzZUludChwb3J0KSA6IDIxLFxuICB9O1xuICBpZiAoYXV0aD8udXNlciAmJiBhdXRoPy5wYXNzKSB7XG4gICAgZnRwT3B0cy51c2VyID0gYXV0aC51c2VyO1xuICAgIGZ0cE9wdHMucGFzcyA9IGF1dGgucGFzcztcbiAgfVxuICBsb2cuZGVidWcoYCR7cHJvdG9jb2x9IHVwbG9hZCBvcHRpb25zOiAke0pTT04uc3RyaW5naWZ5KGZ0cE9wdHMpfWApO1xuICByZXR1cm4gYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIG5ldyBGdHAoZnRwT3B0cykucHV0KGxvY2FsRmlsZVN0cmVhbSwgcGF0aG5hbWUsIChlcnIpID0+IHtcbiAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHVybnMgYHRydWVgIGlmIHBhcmFtcyBhcmUgdmFsaWQgZm9yIHtAbGlua2NvZGUgdXBsb2FkRmlsZVRvSHR0cH0uXG4gKiBAcGFyYW0ge2FueX0gb3B0c1xuICogQHBhcmFtIHtVUkx9IHVybFxuICogQHJldHVybnMge29wdHMgaXMgSHR0cFVwbG9hZE9wdGlvbnMgJiBOZXRPcHRpb25zfVxuICovXG5mdW5jdGlvbiBpc0h0dHBVcGxvYWRPcHRpb25zKG9wdHMsIHVybCkge1xuICB0cnkge1xuICAgIGNvbnN0IHtwcm90b2NvbH0gPSBuZXcgVVJMKHVybCk7XG4gICAgcmV0dXJuIHByb3RvY29sID09PSAnaHR0cDonIHx8IHByb3RvY29sID09PSAnaHR0cHM6JztcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyBgdHJ1ZWAgaWYgcGFyYW1zIGFyZSB2YWxpZCBmb3Ige0BsaW5rY29kZSB1cGxvYWRGaWxlVG9GdHB9LlxuICogQHBhcmFtIHthbnl9IG9wdHNcbiAqIEBwYXJhbSB7VVJMfSB1cmxcbiAqIEByZXR1cm5zIHtvcHRzIGlzIE5vdEh0dHBVcGxvYWRPcHRpb25zICYgTmV0T3B0aW9uc31cbiAqL1xuZnVuY3Rpb24gaXNOb3RIdHRwVXBsb2FkT3B0aW9ucyhvcHRzLCB1cmwpIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB7cHJvdG9jb2x9ID0gbmV3IFVSTCh1cmwpO1xuICAgIHJldHVybiBwcm90b2NvbCA9PT0gJ2Z0cDonO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cbi8qKlxuICogVXBsb2FkcyB0aGUgZ2l2ZW4gZmlsZSB0byBhIHJlbW90ZSBsb2NhdGlvbi4gSFRUUChTKSBhbmQgRlRQXG4gKiBwcm90b2NvbHMgYXJlIHN1cHBvcnRlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbG9jYWxQYXRoIC0gVGhlIHBhdGggdG8gYSBmaWxlIG9uIHRoZSBsb2NhbCBzdG9yYWdlLlxuICogQHBhcmFtIHtzdHJpbmd9IHJlbW90ZVVyaSAtIFRoZSByZW1vdGUgVVJJIHRvIHVwbG9hZCB0aGUgZmlsZSB0by5cbiAqIEBwYXJhbSB7KEh0dHBVcGxvYWRPcHRpb25zfE5vdEh0dHBVcGxvYWRPcHRpb25zKSAmIE5ldE9wdGlvbnN9IFt1cGxvYWRPcHRpb25zXVxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHVwbG9hZEZpbGUoXG4gIGxvY2FsUGF0aCxcbiAgcmVtb3RlVXJpLFxuICB1cGxvYWRPcHRpb25zID0gLyoqIEB0eXBlIHsoSHR0cFVwbG9hZE9wdGlvbnN8Tm90SHR0cFVwbG9hZE9wdGlvbnMpICYgTmV0T3B0aW9uc30gKi8gKHt9KVxuKSB7XG4gIGlmICghKGF3YWl0IGZzLmV4aXN0cyhsb2NhbFBhdGgpKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJyR7bG9jYWxQYXRofScgZG9lcyBub3QgZXhpc3RzIG9yIGlzIG5vdCBhY2Nlc3NpYmxlYCk7XG4gIH1cblxuICBjb25zdCB7aXNNZXRlcmVkID0gdHJ1ZX0gPSB1cGxvYWRPcHRpb25zO1xuICBjb25zdCB1cmwgPSBuZXcgVVJMKHJlbW90ZVVyaSk7XG4gIGNvbnN0IHtzaXplfSA9IGF3YWl0IGZzLnN0YXQobG9jYWxQYXRoKTtcbiAgaWYgKGlzTWV0ZXJlZCkge1xuICAgIGxvZy5pbmZvKGBVcGxvYWRpbmcgJyR7bG9jYWxQYXRofScgb2YgJHt0b1JlYWRhYmxlU2l6ZVN0cmluZyhzaXplKX0gc2l6ZSB0byAnJHtyZW1vdGVVcml9J2ApO1xuICB9XG4gIGNvbnN0IHRpbWVyID0gbmV3IFRpbWVyKCkuc3RhcnQoKTtcbiAgaWYgKGlzSHR0cFVwbG9hZE9wdGlvbnModXBsb2FkT3B0aW9ucywgdXJsKSkge1xuICAgIGlmICghdXBsb2FkT3B0aW9ucy5maWxlRmllbGROYW1lKSB7XG4gICAgICB1cGxvYWRPcHRpb25zLmhlYWRlcnMgPSB7XG4gICAgICAgIC4uLihfLmlzUGxhaW5PYmplY3QodXBsb2FkT3B0aW9ucy5oZWFkZXJzKSA/IHVwbG9hZE9wdGlvbnMuaGVhZGVycyA6IHt9KSxcbiAgICAgICAgJ0NvbnRlbnQtTGVuZ3RoJzogc2l6ZSxcbiAgICAgIH07XG4gICAgfVxuICAgIGF3YWl0IHVwbG9hZEZpbGVUb0h0dHAoZnMuY3JlYXRlUmVhZFN0cmVhbShsb2NhbFBhdGgpLCB1cmwsIHVwbG9hZE9wdGlvbnMpO1xuICB9IGVsc2UgaWYgKGlzTm90SHR0cFVwbG9hZE9wdGlvbnModXBsb2FkT3B0aW9ucywgdXJsKSkge1xuICAgIGF3YWl0IHVwbG9hZEZpbGVUb0Z0cChmcy5jcmVhdGVSZWFkU3RyZWFtKGxvY2FsUGF0aCksIHVybCwgdXBsb2FkT3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYENhbm5vdCB1cGxvYWQgdGhlIGZpbGUgYXQgJyR7bG9jYWxQYXRofScgdG8gJyR7cmVtb3RlVXJpfScuIGAgK1xuICAgICAgICBgVW5zdXBwb3J0ZWQgcmVtb3RlIHByb3RvY29sICcke3VybC5wcm90b2NvbH0nLiBgICtcbiAgICAgICAgYE9ubHkgaHR0cC9odHRwcyBhbmQgZnRwL2Z0cHMgcHJvdG9jb2xzIGFyZSBzdXBwb3J0ZWQuYFxuICAgICk7XG4gIH1cbiAgaWYgKGlzTWV0ZXJlZCkge1xuICAgIGxvZy5pbmZvKFxuICAgICAgYFVwbG9hZGVkICcke2xvY2FsUGF0aH0nIG9mICR7dG9SZWFkYWJsZVNpemVTdHJpbmcoc2l6ZSl9IHNpemUgaW4gYCArXG4gICAgICAgIGAke3RpbWVyLmdldER1cmF0aW9uKCkuYXNTZWNvbmRzLnRvRml4ZWQoMyl9c2BcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogRG93bmxvYWRzIHRoZSBnaXZlbiBmaWxlIHZpYSBIVFRQKFMpXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHJlbW90ZVVybCAtIFRoZSByZW1vdGUgdXJsXG4gKiBAcGFyYW0ge3N0cmluZ30gZHN0UGF0aCAtIFRoZSBsb2NhbCBwYXRoIHRvIGRvd25sb2FkIHRoZSBmaWxlIHRvXG4gKiBAcGFyYW0ge0Rvd25sb2FkT3B0aW9ucyAmIE5ldE9wdGlvbnN9IFtkb3dubG9hZE9wdGlvbnNdXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgZG93bmxvYWQgb3BlcmF0aW9uIGZhaWxzXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGRvd25sb2FkRmlsZShcbiAgcmVtb3RlVXJsLFxuICBkc3RQYXRoLFxuICBkb3dubG9hZE9wdGlvbnMgPSAvKiogQHR5cGUge0Rvd25sb2FkT3B0aW9ucyAmIE5ldE9wdGlvbnN9ICovICh7fSlcbikge1xuICBjb25zdCB7aXNNZXRlcmVkID0gdHJ1ZSwgYXV0aCwgdGltZW91dCA9IERFRkFVTFRfVElNRU9VVF9NUywgaGVhZGVyc30gPSBkb3dubG9hZE9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIEB0eXBlIHtpbXBvcnQoJ2F4aW9zJykuQXhpb3NSZXF1ZXN0Q29uZmlnfVxuICAgKi9cbiAgY29uc3QgcmVxdWVzdE9wdHMgPSB7XG4gICAgdXJsOiByZW1vdGVVcmwsXG4gICAgcmVzcG9uc2VUeXBlOiAnc3RyZWFtJyxcbiAgICB0aW1lb3V0LFxuICB9O1xuICBjb25zdCBheGlvc0F1dGggPSB0b0F4aW9zQXV0aChhdXRoKTtcbiAgaWYgKGF4aW9zQXV0aCkge1xuICAgIHJlcXVlc3RPcHRzLmF1dGggPSBheGlvc0F1dGg7XG4gIH1cbiAgaWYgKF8uaXNQbGFpbk9iamVjdChoZWFkZXJzKSkge1xuICAgIHJlcXVlc3RPcHRzLmhlYWRlcnMgPSBoZWFkZXJzO1xuICB9XG5cbiAgY29uc3QgdGltZXIgPSBuZXcgVGltZXIoKS5zdGFydCgpO1xuICBsZXQgcmVzcG9uc2VMZW5ndGg7XG4gIHRyeSB7XG4gICAgY29uc3Qgd3JpdGVyID0gZnMuY3JlYXRlV3JpdGVTdHJlYW0oZHN0UGF0aCk7XG4gICAgY29uc3Qge2RhdGE6IHJlc3BvbnNlU3RyZWFtLCBoZWFkZXJzOiByZXNwb25zZUhlYWRlcnN9ID0gYXdhaXQgYXhpb3MocmVxdWVzdE9wdHMpO1xuICAgIHJlc3BvbnNlTGVuZ3RoID0gcGFyc2VJbnQocmVzcG9uc2VIZWFkZXJzWydjb250ZW50LWxlbmd0aCddLCAxMCk7XG4gICAgcmVzcG9uc2VTdHJlYW0ucGlwZSh3cml0ZXIpO1xuXG4gICAgYXdhaXQgbmV3IEIoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgcmVzcG9uc2VTdHJlYW0ub25jZSgnZXJyb3InLCByZWplY3QpO1xuICAgICAgd3JpdGVyLm9uY2UoJ2ZpbmlzaCcsIHJlc29sdmUpO1xuICAgICAgd3JpdGVyLm9uY2UoJ2Vycm9yJywgKGUpID0+IHtcbiAgICAgICAgcmVzcG9uc2VTdHJlYW0udW5waXBlKHdyaXRlcik7XG4gICAgICAgIHJlamVjdChlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBkb3dubG9hZCB0aGUgZmlsZSBmcm9tICR7cmVtb3RlVXJsfTogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxuXG4gIGNvbnN0IHtzaXplfSA9IGF3YWl0IGZzLnN0YXQoZHN0UGF0aCk7XG4gIGlmIChyZXNwb25zZUxlbmd0aCAmJiBzaXplICE9PSByZXNwb25zZUxlbmd0aCkge1xuICAgIGF3YWl0IGZzLnJpbXJhZihkc3RQYXRoKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVGhlIHNpemUgb2YgdGhlIGZpbGUgZG93bmxvYWRlZCBmcm9tICR7cmVtb3RlVXJsfSAoJHtzaXplfSBieXRlcykgYCArXG4gICAgICAgIGBkaWZmZXJzIGZyb20gdGhlIG9uZSBpbiBDb250ZW50LUxlbmd0aCByZXNwb25zZSBoZWFkZXIgKCR7cmVzcG9uc2VMZW5ndGh9IGJ5dGVzKWBcbiAgICApO1xuICB9XG4gIGlmIChpc01ldGVyZWQpIHtcbiAgICBjb25zdCBzZWNvbmRzRWxhcHNlZCA9IHRpbWVyLmdldER1cmF0aW9uKCkuYXNTZWNvbmRzO1xuICAgIGxvZy5kZWJ1ZyhcbiAgICAgIGAke3JlbW90ZVVybH0gKCR7dG9SZWFkYWJsZVNpemVTdHJpbmcoc2l6ZSl9KSBgICtcbiAgICAgICAgYGhhcyBiZWVuIGRvd25sb2FkZWQgdG8gJyR7ZHN0UGF0aH0nIGluICR7c2Vjb25kc0VsYXBzZWQudG9GaXhlZCgzKX1zYFxuICAgICk7XG4gICAgaWYgKHNlY29uZHNFbGFwc2VkID49IDIpIHtcbiAgICAgIGNvbnN0IGJ5dGVzUGVyU2VjID0gTWF0aC5mbG9vcihzaXplIC8gc2Vjb25kc0VsYXBzZWQpO1xuICAgICAgbG9nLmRlYnVnKGBBcHByb3hpbWF0ZSBkb3dubG9hZCBzcGVlZDogJHt0b1JlYWRhYmxlU2l6ZVN0cmluZyhieXRlc1BlclNlYyl9L3NgKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHt1cGxvYWRGaWxlLCBkb3dubG9hZEZpbGV9O1xuXG4vKipcbiAqIENvbW1vbiBvcHRpb25zIGZvciB7QGxpbmtjb2RlIHVwbG9hZEZpbGV9IGFuZCB7QGxpbmtjb2RlIGRvd25sb2FkRmlsZX0uXG4gKiBAdHlwZWRlZiBOZXRPcHRpb25zXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtpc01ldGVyZWQ9dHJ1ZV0gLSBXaGV0aGVyIHRvIGxvZyB0aGUgYWN0dWFsIGRvd25sb2FkIHBlcmZvcm1hbmNlXG4gKiAoZS5nLiB0aW1pbmdzIGFuZCBzcGVlZClcbiAqIEBwcm9wZXJ0eSB7QXV0aENyZWRlbnRpYWxzfSBbYXV0aF0gLSBBdXRoZW50aWNhdGlvbiBjcmVkZW50aWFsc1xuICovXG5cbi8qKlxuICogU3BlY2lmaWMgb3B0aW9ucyBmb3Ige0BsaW5rY29kZSBkb3dubG9hZEZpbGV9LlxuICogQHR5cGVkZWYgRG93bmxvYWRPcHRpb25zXG4gKiBAcHJvcGVydHkge251bWJlcn0gW3RpbWVvdXRdIC0gVGhlIGFjdHVhbCByZXF1ZXN0IHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzOyBkZWZhdWx0cyB0byB7QGxpbmtjb2RlIERFRkFVTFRfVElNRU9VVF9NU31cbiAqIEBwcm9wZXJ0eSB7UmVjb3JkPHN0cmluZyxhbnk+fSBbaGVhZGVyc10gLSBSZXF1ZXN0IGhlYWRlcnMgbWFwcGluZ1xuICovXG5cbi8qKlxuICogQmFzaWMgYXV0aCBjcmVkZW50aWFsczsgdXNlZCBieSB7QGxpbmtjb2RlIE5ldE9wdGlvbnN9LlxuICogQHR5cGVkZWYgQXV0aENyZWRlbnRpYWxzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdXNlciAtIE5vbi1lbXB0eSB1c2VyIG5hbWVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwYXNzIC0gTm9uLWVtcHR5IHBhc3N3b3JkXG4gKi9cblxuLyoqXG4gKiBUaGlzIHR5cGUgaXMgdXNlZCBpbiB7QGxpbmtjb2RlIHVwbG9hZEZpbGV9IGlmIHRoZSByZW1vdGUgbG9jYXRpb24gdXNlcyB0aGUgYGZ0cGAgcHJvdG9jb2wsIGFuZCBkaXN0aW5ndWlzaGVzIHRoZSB0eXBlIGZyb20ge0BsaW5rY29kZSBIdHRwVXBsb2FkT3B0aW9uc30uXG4gKiBAdHlwZWRlZiBOb3RIdHRwVXBsb2FkT3B0aW9uc1xuICogQHByb3BlcnR5IHtuZXZlcn0gaGVhZGVyc1xuICogQHByb3BlcnR5IHtuZXZlcn0gbWV0aG9kXG4gKiBAcHJvcGVydHkge25ldmVyfSB0aW1lb3V0XG4gKiBAcHJvcGVydHkge25ldmVyfSBmaWxlRmllbGROYW1lXG4gKiBAcHJvcGVydHkge25ldmVyfSBmb3JtRmllbGRzXG4gKi9cblxuLyoqXG4gKiBTcGVjaWZpYyBvcHRpb25zIGZvciB7QGxpbmtjb2RlIHVwbG9hZEZpbGV9IGlmIHRoZSByZW1vdGUgbG9jYXRpb24gdXNlcyB0aGUgYGh0dHAocylgIHByb3RvY29sXG4gKiBAdHlwZWRlZiBIdHRwVXBsb2FkT3B0aW9uc1xuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLGFueT59IGhlYWRlcnMgLSBBZGRpdGlvbmFsIHJlcXVlc3QgaGVhZGVycyBtYXBwaW5nXG4gKiBAcHJvcGVydHkge2ltcG9ydCgnYXhpb3MnKS5NZXRob2R9IFttZXRob2Q9J1BPU1QnXSAtIFRoZSBIVFRQIG1ldGhvZCB1c2VkIGZvciBmaWxlIHVwbG9hZFxuICogQHByb3BlcnR5IHtudW1iZXJ9IFt0aW1lb3V0XSAtIFRoZSBhY3R1YWwgcmVxdWVzdCB0aW1lb3V0IGluIG1pbGxpc2Vjb25kczsgZGVmYXVsdHMgdG8ge0BsaW5rY29kZSBERUZBVUxUX1RJTUVPVVRfTVN9XG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2ZpbGVGaWVsZE5hbWU9J2ZpbGUnXSAtIFRoZSBuYW1lIG9mIHRoZSBmb3JtIGZpZWxkIGNvbnRhaW5pbmcgdGhlIGZpbGVcbiAqIGNvbnRlbnQgdG8gYmUgdXBsb2FkZWQuIEFueSBmYWxzeSB2YWx1ZSBtYWtlIHRoZSByZXF1ZXN0IHRvIHVzZSBub24tbXVsdGlwYXJ0IHVwbG9hZFxuICogQHByb3BlcnR5IHtSZWNvcmQ8c3RyaW5nLGFueT59IFtmb3JtRmllbGRzXSAtIFRoZSBhZGRpdGlvbmFsIGZvcm0gZmllbGRzXG4gKiB0byBiZSBpbmNsdWRlZCBpbnRvIHRoZSB1cGxvYWQgcmVxdWVzdC4gVGhpcyBwcm9wZXJ0eSBpcyBvbmx5IGNvbnNpZGVyZWQgaWZcbiAqIGBmaWxlRmllbGROYW1lYCBpcyBzZXRcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxrQkFBa0IsR0FBRyxJQUFJLEVBQUosR0FBUyxJQUFwQzs7QUFPQSxTQUFTQyxXQUFULENBQXFCQyxJQUFyQixFQUEyQjtFQUN6QixJQUFJLENBQUNDLGVBQUEsQ0FBRUMsYUFBRixDQUFnQkYsSUFBaEIsQ0FBTCxFQUE0QjtJQUMxQixPQUFPLElBQVA7RUFDRDs7RUFFRCxNQUFNRyxTQUFTLEdBQUc7SUFDaEJDLFFBQVEsRUFBRUgsZUFBQSxDQUFFSSxHQUFGLENBQU1MLElBQU4sRUFBWSxVQUFaLEVBQXdCQyxlQUFBLENBQUVJLEdBQUYsQ0FBTUwsSUFBTixFQUFZLE1BQVosQ0FBeEIsQ0FETTtJQUVoQk0sUUFBUSxFQUFFTCxlQUFBLENBQUVJLEdBQUYsQ0FBTUwsSUFBTixFQUFZLFVBQVosRUFBd0JDLGVBQUEsQ0FBRUksR0FBRixDQUFNTCxJQUFOLEVBQVksTUFBWixDQUF4QjtFQUZNLENBQWxCO0VBSUEsT0FBT0csU0FBUyxDQUFDQyxRQUFWLElBQXNCRCxTQUFTLENBQUNHLFFBQWhDLEdBQTJDSCxTQUEzQyxHQUF1RCxJQUE5RDtBQUNEOztBQU9ELGVBQWVJLGdCQUFmLENBQ0VDLGVBREYsRUFFRUMsU0FGRixFQUdFQyxhQUFhLEdBQWtELEVBSGpFLEVBSUU7RUFDQSxNQUFNO0lBQ0pDLE1BQU0sR0FBRyxNQURMO0lBRUpDLE9BQU8sR0FBR2Qsa0JBRk47SUFHSmUsT0FISTtJQUlKYixJQUpJO0lBS0pjLGFBQWEsR0FBRyxNQUxaO0lBTUpDO0VBTkksSUFPRkwsYUFQSjtFQVFBLE1BQU07SUFBQ007RUFBRCxJQUFTUCxTQUFmO0VBR0EsTUFBTVEsV0FBVyxHQUFHO0lBQ2xCQyxHQUFHLEVBQUVGLElBRGE7SUFFbEJMLE1BRmtCO0lBR2xCQyxPQUhrQjtJQUlsQk8sZ0JBQWdCLEVBQUVDLFFBSkE7SUFLbEJDLGFBQWEsRUFBRUQ7RUFMRyxDQUFwQjtFQU9BLE1BQU1qQixTQUFTLEdBQUdKLFdBQVcsQ0FBQ0MsSUFBRCxDQUE3Qjs7RUFDQSxJQUFJRyxTQUFKLEVBQWU7SUFDYmMsV0FBVyxDQUFDakIsSUFBWixHQUFtQkcsU0FBbkI7RUFDRDs7RUFDRCxJQUFJVyxhQUFKLEVBQW1CO0lBQ2pCLE1BQU1RLElBQUksR0FBRyxJQUFJQyxpQkFBSixFQUFiO0lBQ0FELElBQUksQ0FBQ0UsTUFBTCxDQUFZVixhQUFaLEVBQTJCTixlQUEzQjs7SUFDQSxJQUFJTyxVQUFKLEVBQWdCO01BQ2QsSUFBSVUsS0FBSyxHQUFHLEVBQVo7O01BQ0EsSUFBSXhCLGVBQUEsQ0FBRXlCLE9BQUYsQ0FBVVgsVUFBVixDQUFKLEVBQTJCO1FBQ3pCVSxLQUFLLEdBQUdWLFVBQVI7TUFDRCxDQUZELE1BRU8sSUFBSWQsZUFBQSxDQUFFQyxhQUFGLENBQWdCYSxVQUFoQixDQUFKLEVBQWlDO1FBQ3RDVSxLQUFLLEdBQUd4QixlQUFBLENBQUUwQixPQUFGLENBQVVaLFVBQVYsQ0FBUjtNQUNEOztNQUNELEtBQUssTUFBTSxDQUFDYSxHQUFELEVBQU1DLEtBQU4sQ0FBWCxJQUEyQkosS0FBM0IsRUFBa0M7UUFDaEMsSUFBSXhCLGVBQUEsQ0FBRTZCLE9BQUYsQ0FBVUYsR0FBVixNQUFtQjNCLGVBQUEsQ0FBRTZCLE9BQUYsQ0FBVWhCLGFBQVYsQ0FBdkIsRUFBaUQ7VUFDL0NRLElBQUksQ0FBQ0UsTUFBTCxDQUFZSSxHQUFaLEVBQWlCQyxLQUFqQjtRQUNEO01BQ0Y7SUFDRjs7SUFDRFosV0FBVyxDQUFDSixPQUFaLEdBQXNCLEVBQ3BCLElBQUlaLGVBQUEsQ0FBRUMsYUFBRixDQUFnQlcsT0FBaEIsSUFBMkJBLE9BQTNCLEdBQXFDLEVBQXpDLENBRG9CO01BRXBCLEdBQUdTLElBQUksQ0FBQ1MsVUFBTDtJQUZpQixDQUF0QjtJQUlBZCxXQUFXLENBQUNlLElBQVosR0FBbUJWLElBQW5CO0VBQ0QsQ0FyQkQsTUFxQk87SUFDTCxJQUFJckIsZUFBQSxDQUFFQyxhQUFGLENBQWdCVyxPQUFoQixDQUFKLEVBQThCO01BQzVCSSxXQUFXLENBQUNKLE9BQVosR0FBc0JBLE9BQXRCO0lBQ0Q7O0lBQ0RJLFdBQVcsQ0FBQ2UsSUFBWixHQUFtQnhCLGVBQW5CO0VBQ0Q7O0VBQ0R5QixlQUFBLENBQUlDLEtBQUosQ0FDRyxjQUFhdkIsTUFBTyxPQUFNSyxJQUFLLGtDQUFoQyxHQUNFbUIsSUFBSSxDQUFDQyxTQUFMLENBQWVuQyxlQUFBLENBQUVvQyxJQUFGLENBQU9wQixXQUFQLEVBQW9CLENBQUMsTUFBRCxDQUFwQixDQUFmLENBRko7O0VBS0EsTUFBTTtJQUFDcUIsTUFBRDtJQUFTQztFQUFULElBQXVCLE1BQU0sSUFBQUMsY0FBQSxFQUFNdkIsV0FBTixDQUFuQzs7RUFDQWdCLGVBQUEsQ0FBSVEsSUFBSixDQUFVLG9CQUFtQkgsTUFBTyxJQUFHQyxVQUFXLEVBQWxEO0FBQ0Q7O0FBT0QsZUFBZUcsZUFBZixDQUNFbEMsZUFERixFQUVFQyxTQUZGLEVBR0VDLGFBQWEsR0FBcUQsRUFIcEUsRUFJRTtFQUNBLE1BQU07SUFBQ1Y7RUFBRCxJQUFTVSxhQUFmO0VBQ0EsTUFBTTtJQUFDaUMsUUFBRDtJQUFXQyxJQUFYO0lBQWlCQyxRQUFqQjtJQUEyQkM7RUFBM0IsSUFBdUNyQyxTQUE3QztFQUVBLE1BQU1zQyxPQUFPLEdBQUc7SUFDZEMsSUFBSSxFQUFFTCxRQURRO0lBRWRDLElBQUksRUFBRSxDQUFDM0MsZUFBQSxDQUFFZ0QsV0FBRixDQUFjTCxJQUFkLENBQUQsR0FBdUIzQyxlQUFBLENBQUVpRCxRQUFGLENBQVdOLElBQVgsQ0FBdkIsR0FBMEM7RUFGbEMsQ0FBaEI7O0VBSUEsSUFBSTVDLElBQUksU0FBSixJQUFBQSxJQUFJLFdBQUosSUFBQUEsSUFBSSxDQUFFbUQsSUFBTixJQUFjbkQsSUFBZCxhQUFjQSxJQUFkLGVBQWNBLElBQUksQ0FBRW9ELElBQXhCLEVBQThCO0lBQzVCTCxPQUFPLENBQUNJLElBQVIsR0FBZW5ELElBQUksQ0FBQ21ELElBQXBCO0lBQ0FKLE9BQU8sQ0FBQ0ssSUFBUixHQUFlcEQsSUFBSSxDQUFDb0QsSUFBcEI7RUFDRDs7RUFDRG5CLGVBQUEsQ0FBSUMsS0FBSixDQUFXLEdBQUVXLFFBQVMsb0JBQW1CVixJQUFJLENBQUNDLFNBQUwsQ0FBZVcsT0FBZixDQUF3QixFQUFqRTs7RUFDQSxPQUFPLE1BQU0sSUFBSU0saUJBQUosQ0FBTSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBcUI7SUFDdEMsSUFBSUMsY0FBSixDQUFRVCxPQUFSLEVBQWlCVSxHQUFqQixDQUFxQmpELGVBQXJCLEVBQXNDc0MsUUFBdEMsRUFBaURZLEdBQUQsSUFBUztNQUN2RCxJQUFJQSxHQUFKLEVBQVM7UUFDUEgsTUFBTSxDQUFDRyxHQUFELENBQU47TUFDRCxDQUZELE1BRU87UUFDTEosT0FBTztNQUNSO0lBQ0YsQ0FORDtFQU9ELENBUlksQ0FBYjtBQVNEOztBQVFELFNBQVNLLG1CQUFULENBQTZCQyxJQUE3QixFQUFtQzFDLEdBQW5DLEVBQXdDO0VBQ3RDLElBQUk7SUFDRixNQUFNO01BQUMyQjtJQUFELElBQWEsSUFBSWdCLEdBQUosQ0FBUTNDLEdBQVIsQ0FBbkI7SUFDQSxPQUFPMkIsUUFBUSxLQUFLLE9BQWIsSUFBd0JBLFFBQVEsS0FBSyxRQUE1QztFQUNELENBSEQsQ0FHRSxNQUFNO0lBQ04sT0FBTyxLQUFQO0VBQ0Q7QUFDRjs7QUFRRCxTQUFTaUIsc0JBQVQsQ0FBZ0NGLElBQWhDLEVBQXNDMUMsR0FBdEMsRUFBMkM7RUFDekMsSUFBSTtJQUNGLE1BQU07TUFBQzJCO0lBQUQsSUFBYSxJQUFJZ0IsR0FBSixDQUFRM0MsR0FBUixDQUFuQjtJQUNBLE9BQU8yQixRQUFRLEtBQUssTUFBcEI7RUFDRCxDQUhELENBR0UsTUFBTTtJQUNOLE9BQU8sS0FBUDtFQUNEO0FBQ0Y7O0FBVUQsZUFBZWtCLFVBQWYsQ0FDRUMsU0FERixFQUVFQyxTQUZGLEVBR0V2RCxhQUFhLEdBQXlFLEVBSHhGLEVBSUU7RUFDQSxJQUFJLEVBQUUsTUFBTXdELFdBQUEsQ0FBR0MsTUFBSCxDQUFVSCxTQUFWLENBQVIsQ0FBSixFQUFtQztJQUNqQyxNQUFNLElBQUlJLEtBQUosQ0FBVyxJQUFHSixTQUFVLHdDQUF4QixDQUFOO0VBQ0Q7O0VBRUQsTUFBTTtJQUFDSyxTQUFTLEdBQUc7RUFBYixJQUFxQjNELGFBQTNCO0VBQ0EsTUFBTVEsR0FBRyxHQUFHLElBQUkyQyxHQUFKLENBQVFJLFNBQVIsQ0FBWjtFQUNBLE1BQU07SUFBQ0s7RUFBRCxJQUFTLE1BQU1KLFdBQUEsQ0FBR0ssSUFBSCxDQUFRUCxTQUFSLENBQXJCOztFQUNBLElBQUlLLFNBQUosRUFBZTtJQUNicEMsZUFBQSxDQUFJUSxJQUFKLENBQVUsY0FBYXVCLFNBQVUsUUFBTyxJQUFBUSwwQkFBQSxFQUFxQkYsSUFBckIsQ0FBMkIsYUFBWUwsU0FBVSxHQUF6RjtFQUNEOztFQUNELE1BQU1RLEtBQUssR0FBRyxJQUFJQyxlQUFKLEdBQVlDLEtBQVosRUFBZDs7RUFDQSxJQUFJaEIsbUJBQW1CLENBQUNqRCxhQUFELEVBQWdCUSxHQUFoQixDQUF2QixFQUE2QztJQUMzQyxJQUFJLENBQUNSLGFBQWEsQ0FBQ0ksYUFBbkIsRUFBa0M7TUFDaENKLGFBQWEsQ0FBQ0csT0FBZCxHQUF3QixFQUN0QixJQUFJWixlQUFBLENBQUVDLGFBQUYsQ0FBZ0JRLGFBQWEsQ0FBQ0csT0FBOUIsSUFBeUNILGFBQWEsQ0FBQ0csT0FBdkQsR0FBaUUsRUFBckUsQ0FEc0I7UUFFdEIsa0JBQWtCeUQ7TUFGSSxDQUF4QjtJQUlEOztJQUNELE1BQU0vRCxnQkFBZ0IsQ0FBQzJELFdBQUEsQ0FBR1UsZ0JBQUgsQ0FBb0JaLFNBQXBCLENBQUQsRUFBaUM5QyxHQUFqQyxFQUFzQ1IsYUFBdEMsQ0FBdEI7RUFDRCxDQVJELE1BUU8sSUFBSW9ELHNCQUFzQixDQUFDcEQsYUFBRCxFQUFnQlEsR0FBaEIsQ0FBMUIsRUFBZ0Q7SUFDckQsTUFBTXdCLGVBQWUsQ0FBQ3dCLFdBQUEsQ0FBR1UsZ0JBQUgsQ0FBb0JaLFNBQXBCLENBQUQsRUFBaUM5QyxHQUFqQyxFQUFzQ1IsYUFBdEMsQ0FBckI7RUFDRCxDQUZNLE1BRUE7SUFDTCxNQUFNLElBQUkwRCxLQUFKLENBQ0gsOEJBQTZCSixTQUFVLFNBQVFDLFNBQVUsS0FBMUQsR0FDRyxnQ0FBK0IvQyxHQUFHLENBQUMyQixRQUFTLEtBRC9DLEdBRUcsdURBSEMsQ0FBTjtFQUtEOztFQUNELElBQUl3QixTQUFKLEVBQWU7SUFDYnBDLGVBQUEsQ0FBSVEsSUFBSixDQUNHLGFBQVl1QixTQUFVLFFBQU8sSUFBQVEsMEJBQUEsRUFBcUJGLElBQXJCLENBQTJCLFdBQXpELEdBQ0csR0FBRUcsS0FBSyxDQUFDSSxXQUFOLEdBQW9CQyxTQUFwQixDQUE4QkMsT0FBOUIsQ0FBc0MsQ0FBdEMsQ0FBeUMsR0FGaEQ7RUFJRDtBQUNGOztBQVVELGVBQWVDLFlBQWYsQ0FDRUMsU0FERixFQUVFQyxPQUZGLEVBR0VDLGVBQWUsR0FBZ0QsRUFIakUsRUFJRTtFQUNBLE1BQU07SUFBQ2QsU0FBUyxHQUFHLElBQWI7SUFBbUJyRSxJQUFuQjtJQUF5QlksT0FBTyxHQUFHZCxrQkFBbkM7SUFBdURlO0VBQXZELElBQWtFc0UsZUFBeEU7RUFLQSxNQUFNbEUsV0FBVyxHQUFHO0lBQ2xCQyxHQUFHLEVBQUUrRCxTQURhO0lBRWxCRyxZQUFZLEVBQUUsUUFGSTtJQUdsQnhFO0VBSGtCLENBQXBCO0VBS0EsTUFBTVQsU0FBUyxHQUFHSixXQUFXLENBQUNDLElBQUQsQ0FBN0I7O0VBQ0EsSUFBSUcsU0FBSixFQUFlO0lBQ2JjLFdBQVcsQ0FBQ2pCLElBQVosR0FBbUJHLFNBQW5CO0VBQ0Q7O0VBQ0QsSUFBSUYsZUFBQSxDQUFFQyxhQUFGLENBQWdCVyxPQUFoQixDQUFKLEVBQThCO0lBQzVCSSxXQUFXLENBQUNKLE9BQVosR0FBc0JBLE9BQXRCO0VBQ0Q7O0VBRUQsTUFBTTRELEtBQUssR0FBRyxJQUFJQyxlQUFKLEdBQVlDLEtBQVosRUFBZDtFQUNBLElBQUlVLGNBQUo7O0VBQ0EsSUFBSTtJQUNGLE1BQU1DLE1BQU0sR0FBR3BCLFdBQUEsQ0FBR3FCLGlCQUFILENBQXFCTCxPQUFyQixDQUFmOztJQUNBLE1BQU07TUFBQ2xELElBQUksRUFBRXdELGNBQVA7TUFBdUIzRSxPQUFPLEVBQUU0RTtJQUFoQyxJQUFtRCxNQUFNLElBQUFqRCxjQUFBLEVBQU12QixXQUFOLENBQS9EO0lBQ0FvRSxjQUFjLEdBQUduQyxRQUFRLENBQUN1QyxlQUFlLENBQUMsZ0JBQUQsQ0FBaEIsRUFBb0MsRUFBcEMsQ0FBekI7SUFDQUQsY0FBYyxDQUFDRSxJQUFmLENBQW9CSixNQUFwQjtJQUVBLE1BQU0sSUFBSWpDLGlCQUFKLENBQU0sQ0FBQ0MsT0FBRCxFQUFVQyxNQUFWLEtBQXFCO01BQy9CaUMsY0FBYyxDQUFDRyxJQUFmLENBQW9CLE9BQXBCLEVBQTZCcEMsTUFBN0I7TUFDQStCLE1BQU0sQ0FBQ0ssSUFBUCxDQUFZLFFBQVosRUFBc0JyQyxPQUF0QjtNQUNBZ0MsTUFBTSxDQUFDSyxJQUFQLENBQVksT0FBWixFQUFzQkMsQ0FBRCxJQUFPO1FBQzFCSixjQUFjLENBQUNLLE1BQWYsQ0FBc0JQLE1BQXRCO1FBQ0EvQixNQUFNLENBQUNxQyxDQUFELENBQU47TUFDRCxDQUhEO0lBSUQsQ0FQSyxDQUFOO0VBUUQsQ0FkRCxDQWNFLE9BQU9sQyxHQUFQLEVBQVk7SUFDWixNQUFNLElBQUlVLEtBQUosQ0FBVyxpQ0FBZ0NhLFNBQVUsS0FBSXZCLEdBQUcsQ0FBQ29DLE9BQVEsRUFBckUsQ0FBTjtFQUNEOztFQUVELE1BQU07SUFBQ3hCO0VBQUQsSUFBUyxNQUFNSixXQUFBLENBQUdLLElBQUgsQ0FBUVcsT0FBUixDQUFyQjs7RUFDQSxJQUFJRyxjQUFjLElBQUlmLElBQUksS0FBS2UsY0FBL0IsRUFBK0M7SUFDN0MsTUFBTW5CLFdBQUEsQ0FBRzZCLE1BQUgsQ0FBVWIsT0FBVixDQUFOO0lBQ0EsTUFBTSxJQUFJZCxLQUFKLENBQ0gsd0NBQXVDYSxTQUFVLEtBQUlYLElBQUssVUFBM0QsR0FDRywyREFBMERlLGNBQWUsU0FGeEUsQ0FBTjtFQUlEOztFQUNELElBQUloQixTQUFKLEVBQWU7SUFDYixNQUFNMkIsY0FBYyxHQUFHdkIsS0FBSyxDQUFDSSxXQUFOLEdBQW9CQyxTQUEzQzs7SUFDQTdDLGVBQUEsQ0FBSUMsS0FBSixDQUNHLEdBQUUrQyxTQUFVLEtBQUksSUFBQVQsMEJBQUEsRUFBcUJGLElBQXJCLENBQTJCLElBQTVDLEdBQ0csMkJBQTBCWSxPQUFRLFFBQU9jLGNBQWMsQ0FBQ2pCLE9BQWYsQ0FBdUIsQ0FBdkIsQ0FBMEIsR0FGeEU7O0lBSUEsSUFBSWlCLGNBQWMsSUFBSSxDQUF0QixFQUF5QjtNQUN2QixNQUFNQyxXQUFXLEdBQUdDLElBQUksQ0FBQ0MsS0FBTCxDQUFXN0IsSUFBSSxHQUFHMEIsY0FBbEIsQ0FBcEI7O01BQ0EvRCxlQUFBLENBQUlDLEtBQUosQ0FBVywrQkFBOEIsSUFBQXNDLDBCQUFBLEVBQXFCeUIsV0FBckIsQ0FBa0MsSUFBM0U7SUFDRDtFQUNGO0FBQ0YifQ==
@@ -23,4 +23,18 @@ export function getObjectSize(obj: any): number;
23
23
  * @returns {string} A uuidV4 string that uniquely identifies given object
24
24
  */
25
25
  export function getObjectId(object: object): string;
26
+ /**
27
+ * Perform deep freeze of the given object (e. g.
28
+ * all nested objects also become immutable).
29
+ * If the passed object is of a plain type
30
+ * then no change is done and the same object
31
+ * is returned.
32
+ * ! This function changes the given object,
33
+ * so it becomes immutable.
34
+ *
35
+ * @param {*} object Any valid ECMA object
36
+ * @returns {*} The same object that was passed to the
37
+ * function after it was made immutable.
38
+ */
39
+ export function deepFreeze(object: any): any;
26
40
  //# sourceMappingURL=node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../lib/node.js"],"names":[],"mappings":"AAoCA;;;;;;;;GAQG;AACH,4CAJW,MAAM,GACJ,QAAQ,OAAO,CAAC,CA6B5B;AAuED;;;;;;GAMG;AACH,yCAFa,MAAM,CAIlB;AAID;;;;;GAKG;AACH,oCAHW,MAAM,GACJ,MAAM,CAOlB"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../lib/node.js"],"names":[],"mappings":"AAoCA;;;;;;;;GAQG;AACH,4CAJW,MAAM,GACJ,QAAQ,OAAO,CAAC,CAkC5B;AAuED;;;;;;GAMG;AACH,yCAFa,MAAM,CAIlB;AAID;;;;;GAKG;AACH,oCAHW,MAAM,GACJ,MAAM,CAOlB;AAED;;;;;;;;;;;;GAYG;AACH,6CAcC"}
package/build/lib/node.js CHANGED
@@ -5,6 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.deepFreeze = deepFreeze;
8
9
  exports.getObjectId = getObjectId;
9
10
  exports.getObjectSize = getObjectSize;
10
11
  exports.requirePackage = requirePackage;
@@ -168,4 +169,24 @@ function getObjectId(object) {
168
169
 
169
170
  return OBJECTS_MAPPING.get(object);
170
171
  }
171
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9ub2RlLmpzIl0sIm5hbWVzIjpbIkVDTUFfU0laRVMiLCJPYmplY3QiLCJmcmVlemUiLCJTVFJJTkciLCJCT09MRUFOIiwiTlVNQkVSIiwibGlua0dsb2JhbFBhY2thZ2UiLCJwYWNrYWdlTmFtZSIsImxvZyIsImRlYnVnIiwiY21kIiwidGltZW91dCIsImVyciIsIm1zZyIsIm1lc3NhZ2UiLCJzdGRlcnIiLCJFcnJvciIsInJlcXVpcmVQYWNrYWdlIiwicmVxdWlyZSIsImdsb2JhbFBhY2thZ2VOYW1lIiwicGF0aCIsInJlc29sdmUiLCJwcm9jZXNzIiwiZW52IiwibnBtX2NvbmZpZ19wcmVmaXgiLCJlcnJvckFuZFRocm93IiwiZXh0cmFjdEFsbFByb3BlcnRpZXMiLCJvYmoiLCJzdHJpbmdQcm9wZXJ0aWVzIiwicHJvcCIsInB1c2giLCJfIiwiaXNGdW5jdGlvbiIsImdldE93blByb3BlcnR5U3ltYm9scyIsIl9nZXRTaXplT2ZPYmplY3QiLCJzZWVuIiwib2JqZWN0IiwiaXNOaWwiLCJieXRlcyIsInByb3BlcnRpZXMiLCJrZXkiLCJoYXMiLCJhZGQiLCJnZXRDYWxjdWxhdG9yIiwiZXgiLCJSYW5nZUVycm9yIiwiY2FsY3VsYXRvciIsImlzQnVmZmVyIiwibGVuZ3RoIiwiU3ltYm9sIiwia2V5Rm9yIiwidG9TdHJpbmciLCJpc0FycmF5IiwibWFwIiwicmVkdWNlIiwiYWNjIiwiY3VyciIsImdldE9iamVjdFNpemUiLCJXZWFrU2V0IiwiT0JKRUNUU19NQVBQSU5HIiwiV2Vha01hcCIsImdldE9iamVjdElkIiwic2V0IiwiZ2V0Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsVUFBVSxHQUFHQyxNQUFNLENBQUNDLE1BQVAsQ0FBYztBQUMvQkMsRUFBQUEsTUFBTSxFQUFFLENBRHVCO0FBRS9CQyxFQUFBQSxPQUFPLEVBQUUsQ0FGc0I7QUFHL0JD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QjNCLE1BQXBCLENBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzV2luZG93cyB9IGZyb20gJy4vc3lzdGVtJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkVjQgfSBmcm9tICd1dWlkJztcblxuY29uc3QgRUNNQV9TSVpFUyA9IE9iamVjdC5mcmVlemUoe1xuICBTVFJJTkc6IDIsXG4gIEJPT0xFQU46IDQsXG4gIE5VTUJFUjogOCxcbn0pO1xuXG4vKipcbiAqIEludGVybmFsIHV0aWxpdHkgdG8gbGluayBnbG9iYWwgcGFja2FnZSB0byBsb2NhbCBjb250ZXh0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhY2thZ2VOYW1lIC0gbmFtZSBvZiB0aGUgcGFja2FnZSB0byBsaW5rXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvbW1hbmQgZmFpbHNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gbGlua0dsb2JhbFBhY2thZ2UgKHBhY2thZ2VOYW1lKSB7XG4gIHRyeSB7XG4gICAgbG9nLmRlYnVnKGBMaW5raW5nIHBhY2thZ2UgJyR7cGFja2FnZU5hbWV9J2ApO1xuICAgIGNvbnN0IGNtZCA9IGlzV2luZG93cygpID8gJ25wbS5jbWQnIDogJ25wbSc7XG4gICAgYXdhaXQgZXhlYyhjbWQsIFsnbGluaycsIHBhY2thZ2VOYW1lXSwge3RpbWVvdXQ6IDIwMDAwfSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGNvbnN0IG1zZyA9IGBVbmFibGUgdG8gbG9hZCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfScsIGxpbmtpbmcgZmFpbGVkOiAke2Vyci5tZXNzYWdlfWA7XG4gICAgbG9nLmRlYnVnKG1zZyk7XG4gICAgaWYgKGVyci5zdGRlcnIpIHtcbiAgICAgIC8vIGxvZyB0aGUgc3RkZXJyIGlmIHRoZXJlLCBidXQgZG8gbm90IGFkZCB0byB0aHJvd24gZXJyb3IgYXMgaXQgaXNcbiAgICAgIC8vIF92ZXJ5XyB2ZXJib3NlXG4gICAgICBsb2cuZGVidWcoZXJyLnN0ZGVycik7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihtc2cpO1xuICB9XG59XG5cbi8qKlxuICogVXRpbGl0eSBmdW5jdGlvbiB0byBleHRlbmQgbm9kZSBmdW5jdGlvbmFsaXR5LCBhbGxvd2luZyB1cyB0byByZXF1aXJlXG4gKiBtb2R1bGVzIHRoYXQgYXJlIGluc3RhbGxlZCBnbG9iYWxseS4gSWYgdGhlIHBhY2thZ2UgY2Fubm90IGJlIHJlcXVpcmVkLFxuICogdGhpcyB3aWxsIGF0dGVtcHQgdG8gbGluayB0aGUgcGFja2FnZSBhbmQgdGhlbiByZS1yZXF1aXJlIGl0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhY2thZ2VOYW1lIC0gdGhlIG5hbWUgb2YgdGhlIHBhY2thZ2UgdG8gYmUgcmVxdWlyZWRcbiAqIEByZXR1cm5zIHtQcm9taXNlPHVua25vd24+fSAtIHRoZSBwYWNrYWdlIG9iamVjdFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBwYWNrYWdlIGlzIG5vdCBmb3VuZCBsb2NhbGx5IG9yIGdsb2JhbGx5XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlcXVpcmVQYWNrYWdlIChwYWNrYWdlTmFtZSkge1xuICAvLyBmaXJzdCwgZ2V0IGl0IGluIHRoZSBub3JtYWwgd2F5IChzZWUgaHR0cHM6Ly9ub2RlanMub3JnL2FwaS9tb2R1bGVzLmh0bWwjbW9kdWxlc19hbGxfdG9nZXRoZXIpXG4gIHRyeSB7XG4gICAgbG9nLmRlYnVnKGBMb2FkaW5nIGxvY2FsIHBhY2thZ2UgJyR7cGFja2FnZU5hbWV9J2ApO1xuICAgIHJldHVybiByZXF1aXJlKHBhY2thZ2VOYW1lKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLmRlYnVnKGBGYWlsZWQgdG8gbG9hZCBsb2NhbCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cblxuICAvLyBzZWNvbmQsIGdldCBpdCBmcm9tIHdoZXJlIGl0IG91Z2h0IHRvIGJlIGluIHRoZSBnbG9iYWwgbm9kZV9tb2R1bGVzXG4gIHRyeSB7XG4gICAgY29uc3QgZ2xvYmFsUGFja2FnZU5hbWUgPSBwYXRoLnJlc29sdmUocHJvY2Vzcy5lbnYubnBtX2NvbmZpZ19wcmVmaXggPz8gJycsICdsaWInLCAnbm9kZV9tb2R1bGVzJywgcGFja2FnZU5hbWUpO1xuICAgIGxvZy5kZWJ1ZyhgTG9hZGluZyBnbG9iYWwgcGFja2FnZSAnJHtnbG9iYWxQYWNrYWdlTmFtZX0nYCk7XG4gICAgcmV0dXJuIHJlcXVpcmUoZ2xvYmFsUGFja2FnZU5hbWUpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2cuZGVidWcoYEZhaWxlZCB0byBsb2FkIGdsb2JhbCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cblxuICAvLyB0aGlyZCwgbGluayB0aGUgZmlsZSBhbmQgZ2V0IGxvY2FsbHlcbiAgdHJ5IHtcbiAgICBhd2FpdCBsaW5rR2xvYmFsUGFja2FnZShwYWNrYWdlTmFtZSk7XG4gICAgbG9nLmRlYnVnKGBSZXRyeWluZyBsb2FkIG9mIGxpbmtlZCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSdgKTtcbiAgICByZXR1cm4gcmVxdWlyZShwYWNrYWdlTmFtZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBVbmFibGUgdG8gbG9hZCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZXh0cmFjdEFsbFByb3BlcnRpZXMgKG9iaikge1xuICBjb25zdCBzdHJpbmdQcm9wZXJ0aWVzID0gW107XG4gIGZvciAoY29uc3QgcHJvcCBpbiBvYmopIHtcbiAgICBzdHJpbmdQcm9wZXJ0aWVzLnB1c2gocHJvcCk7XG4gIH1cbiAgaWYgKF8uaXNGdW5jdGlvbihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSkge1xuICAgIHN0cmluZ1Byb3BlcnRpZXMucHVzaCguLi4oT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhvYmopKSk7XG4gIH1cbiAgcmV0dXJuIHN0cmluZ1Byb3BlcnRpZXM7XG59XG5cbmZ1bmN0aW9uIF9nZXRTaXplT2ZPYmplY3QgKHNlZW4sIG9iamVjdCkge1xuICBpZiAoXy5pc05pbChvYmplY3QpKSB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBsZXQgYnl0ZXMgPSAwO1xuICBjb25zdCBwcm9wZXJ0aWVzID0gZXh0cmFjdEFsbFByb3BlcnRpZXMob2JqZWN0KTtcbiAgZm9yIChjb25zdCBrZXkgb2YgcHJvcGVydGllcykge1xuICAgIC8vIERvIG5vdCByZWNhbGN1bGF0ZSBjaXJjdWxhciByZWZlcmVuY2VzXG4gICAgaWYgKHR5cGVvZiBvYmplY3Rba2V5XSA9PT0gJ29iamVjdCcgJiYgIV8uaXNOaWwob2JqZWN0W2tleV0pKSB7XG4gICAgICBpZiAoc2Vlbi5oYXMob2JqZWN0W2tleV0pKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgc2Vlbi5hZGQob2JqZWN0W2tleV0pO1xuICAgIH1cblxuICAgIGJ5dGVzICs9IGdldENhbGN1bGF0b3Ioc2Vlbikoa2V5KTtcbiAgICB0cnkge1xuICAgICAgYnl0ZXMgKz0gZ2V0Q2FsY3VsYXRvcihzZWVuKShvYmplY3Rba2V5XSk7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIGlmIChleCBpbnN0YW5jZW9mIFJhbmdlRXJyb3IpIHtcbiAgICAgICAgLy8gY2lyY3VsYXIgcmVmZXJlbmNlIGRldGVjdGVkLCBmaW5hbCByZXN1bHQgbWlnaHQgYmUgaW5jb3JyZWN0XG4gICAgICAgIC8vIGxldCdzIGJlIG5pY2UgYW5kIG5vdCB0aHJvdyBhbiBleGNlcHRpb25cbiAgICAgICAgYnl0ZXMgPSAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBieXRlcztcbn1cblxuZnVuY3Rpb24gZ2V0Q2FsY3VsYXRvciAoc2Vlbikge1xuICByZXR1cm4gZnVuY3Rpb24gY2FsY3VsYXRvciAob2JqKSB7XG4gICAgaWYgKF8uaXNCdWZmZXIob2JqKSkge1xuICAgICAgcmV0dXJuIG9iai5sZW5ndGg7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0eXBlb2YgKG9iaikpIHtcbiAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgIHJldHVybiBvYmoubGVuZ3RoICogRUNNQV9TSVpFUy5TVFJJTkc7XG4gICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgcmV0dXJuIEVDTUFfU0laRVMuQk9PTEVBTjtcbiAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgIHJldHVybiBFQ01BX1NJWkVTLk5VTUJFUjtcbiAgICAgIGNhc2UgJ3N5bWJvbCc6XG4gICAgICAgIHJldHVybiBfLmlzRnVuY3Rpb24oU3ltYm9sLmtleUZvcikgJiYgU3ltYm9sLmtleUZvcihvYmopXG4gICAgICAgICAgPyAvKiogQHR5cGUge3N0cmluZ30gKi8oU3ltYm9sLmtleUZvcihvYmopKS5sZW5ndGggKiBFQ01BX1NJWkVTLlNUUklOR1xuICAgICAgICAgIDogKG9iai50b1N0cmluZygpLmxlbmd0aCAtIDgpICogRUNNQV9TSVpFUy5TVFJJTkc7XG4gICAgICBjYXNlICdvYmplY3QnOlxuICAgICAgICByZXR1cm4gXy5pc0FycmF5KG9iailcbiAgICAgICAgICA/IG9iai5tYXAoZ2V0Q2FsY3VsYXRvcihzZWVuKSkucmVkdWNlKChhY2MsIGN1cnIpID0+IGFjYyArIGN1cnIsIDApXG4gICAgICAgICAgOiBfZ2V0U2l6ZU9mT2JqZWN0KHNlZW4sIG9iaik7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogQ2FsY3VsYXRlIHRoZSBpbi1kZXB0aCBzaXplIGluIG1lbW9yeSBvZiB0aGUgcHJvdmlkZWQgb2JqZWN0LlxuICogVGhlIG9yaWdpbmFsIGltcGxlbWVudGF0aW9uIGlzIGJvcnJvd2VkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL21pa3RhbS9zaXplb2YuXG4gKlxuICogQHBhcmFtIHsqfSBvYmogQW4gb2JqZWN0IHdob3NlIHNpemUgc2hvdWxkIGJlIGNhbGN1bGF0ZWRcbiAqIEByZXR1cm5zIHtudW1iZXJ9IE9iamVjdCBzaXplIGluIGJ5dGVzLlxuICovXG5mdW5jdGlvbiBnZXRPYmplY3RTaXplIChvYmopIHtcbiAgcmV0dXJuIGdldENhbGN1bGF0b3IobmV3IFdlYWtTZXQoKSkob2JqKTtcbn1cblxuY29uc3QgT0JKRUNUU19NQVBQSU5HID0gbmV3IFdlYWtNYXAoKTtcblxuLyoqXG4gKiBDYWxjdWxhdGVzIGEgdW5pcXVlIG9iamVjdCBpZGVudGlmaWVyXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IG9iamVjdCBBbnkgdmFsaWQgRUNNQSBvYmplY3RcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEEgdXVpZFY0IHN0cmluZyB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgZ2l2ZW4gb2JqZWN0XG4gKi9cbmZ1bmN0aW9uIGdldE9iamVjdElkIChvYmplY3QpIHtcbiAgaWYgKCFPQkpFQ1RTX01BUFBJTkcuaGFzKG9iamVjdCkpIHtcbiAgICBPQkpFQ1RTX01BUFBJTkcuc2V0KG9iamVjdCwgdXVpZFY0KCkpO1xuICB9XG4gIHJldHVybiBPQkpFQ1RTX01BUFBJTkcuZ2V0KG9iamVjdCk7XG59XG5cbmV4cG9ydCB7IHJlcXVpcmVQYWNrYWdlLCBnZXRPYmplY3RTaXplLCBnZXRPYmplY3RJZCB9O1xuIl19
172
+
173
+ function deepFreeze(object) {
174
+ let propNames;
175
+
176
+ try {
177
+ propNames = Object.getOwnPropertyNames(object);
178
+ } catch (ign) {
179
+ return object;
180
+ }
181
+
182
+ for (const name of propNames) {
183
+ const value = object[name];
184
+
185
+ if (value && typeof value === 'object') {
186
+ deepFreeze(value);
187
+ }
188
+ }
189
+
190
+ return Object.freeze(object);
191
+ }
192
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFQ01BX1NJWkVTIiwiT2JqZWN0IiwiZnJlZXplIiwiU1RSSU5HIiwiQk9PTEVBTiIsIk5VTUJFUiIsImxpbmtHbG9iYWxQYWNrYWdlIiwicGFja2FnZU5hbWUiLCJsb2ciLCJkZWJ1ZyIsImNtZCIsImlzV2luZG93cyIsImV4ZWMiLCJ0aW1lb3V0IiwiZXJyIiwibXNnIiwibWVzc2FnZSIsInN0ZGVyciIsIkVycm9yIiwicmVxdWlyZVBhY2thZ2UiLCJyZXF1aXJlIiwiZ2xvYmFsUGFja2FnZU5hbWUiLCJwYXRoIiwicmVzb2x2ZSIsInByb2Nlc3MiLCJlbnYiLCJucG1fY29uZmlnX3ByZWZpeCIsImVycm9yQW5kVGhyb3ciLCJleHRyYWN0QWxsUHJvcGVydGllcyIsIm9iaiIsInN0cmluZ1Byb3BlcnRpZXMiLCJwcm9wIiwicHVzaCIsIl8iLCJpc0Z1bmN0aW9uIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiX2dldFNpemVPZk9iamVjdCIsInNlZW4iLCJvYmplY3QiLCJpc05pbCIsImJ5dGVzIiwicHJvcGVydGllcyIsImtleSIsImhhcyIsImFkZCIsImdldENhbGN1bGF0b3IiLCJleCIsIlJhbmdlRXJyb3IiLCJjYWxjdWxhdG9yIiwiaXNCdWZmZXIiLCJsZW5ndGgiLCJTeW1ib2wiLCJrZXlGb3IiLCJ0b1N0cmluZyIsImlzQXJyYXkiLCJtYXAiLCJyZWR1Y2UiLCJhY2MiLCJjdXJyIiwiZ2V0T2JqZWN0U2l6ZSIsIldlYWtTZXQiLCJPQkpFQ1RTX01BUFBJTkciLCJXZWFrTWFwIiwiZ2V0T2JqZWN0SWQiLCJzZXQiLCJ1dWlkVjQiLCJnZXQiLCJkZWVwRnJlZXplIiwicHJvcE5hbWVzIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImlnbiIsIm5hbWUiLCJ2YWx1ZSJdLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9ub2RlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNXaW5kb3dzfSBmcm9tICcuL3N5c3RlbSc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge2V4ZWN9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7djQgYXMgdXVpZFY0fSBmcm9tICd1dWlkJztcblxuY29uc3QgRUNNQV9TSVpFUyA9IE9iamVjdC5mcmVlemUoe1xuICBTVFJJTkc6IDIsXG4gIEJPT0xFQU46IDQsXG4gIE5VTUJFUjogOCxcbn0pO1xuXG4vKipcbiAqIEludGVybmFsIHV0aWxpdHkgdG8gbGluayBnbG9iYWwgcGFja2FnZSB0byBsb2NhbCBjb250ZXh0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBhY2thZ2VOYW1lIC0gbmFtZSBvZiB0aGUgcGFja2FnZSB0byBsaW5rXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvbW1hbmQgZmFpbHNcbiAqL1xuYXN5bmMgZnVuY3Rpb24gbGlua0dsb2JhbFBhY2thZ2UocGFja2FnZU5hbWUpIHtcbiAgdHJ5IHtcbiAgICBsb2cuZGVidWcoYExpbmtpbmcgcGFja2FnZSAnJHtwYWNrYWdlTmFtZX0nYCk7XG4gICAgY29uc3QgY21kID0gaXNXaW5kb3dzKCkgPyAnbnBtLmNtZCcgOiAnbnBtJztcbiAgICBhd2FpdCBleGVjKGNtZCwgWydsaW5rJywgcGFja2FnZU5hbWVdLCB7dGltZW91dDogMjAwMDB9KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgY29uc3QgbXNnID0gYFVuYWJsZSB0byBsb2FkIHBhY2thZ2UgJyR7cGFja2FnZU5hbWV9JywgbGlua2luZyBmYWlsZWQ6ICR7ZXJyLm1lc3NhZ2V9YDtcbiAgICBsb2cuZGVidWcobXNnKTtcbiAgICBpZiAoZXJyLnN0ZGVycikge1xuICAgICAgLy8gbG9nIHRoZSBzdGRlcnIgaWYgdGhlcmUsIGJ1dCBkbyBub3QgYWRkIHRvIHRocm93biBlcnJvciBhcyBpdCBpc1xuICAgICAgLy8gX3ZlcnlfIHZlcmJvc2VcbiAgICAgIGxvZy5kZWJ1ZyhlcnIuc3RkZXJyKTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKG1zZyk7XG4gIH1cbn1cblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIHRvIGV4dGVuZCBub2RlIGZ1bmN0aW9uYWxpdHksIGFsbG93aW5nIHVzIHRvIHJlcXVpcmVcbiAqIG1vZHVsZXMgdGhhdCBhcmUgaW5zdGFsbGVkIGdsb2JhbGx5LiBJZiB0aGUgcGFja2FnZSBjYW5ub3QgYmUgcmVxdWlyZWQsXG4gKiB0aGlzIHdpbGwgYXR0ZW1wdCB0byBsaW5rIHRoZSBwYWNrYWdlIGFuZCB0aGVuIHJlLXJlcXVpcmUgaXRcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGFja2FnZU5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgcGFja2FnZSB0byBiZSByZXF1aXJlZFxuICogQHJldHVybnMge1Byb21pc2U8dW5rbm93bj59IC0gdGhlIHBhY2thZ2Ugb2JqZWN0XG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHBhY2thZ2UgaXMgbm90IGZvdW5kIGxvY2FsbHkgb3IgZ2xvYmFsbHlcbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVxdWlyZVBhY2thZ2UocGFja2FnZU5hbWUpIHtcbiAgLy8gZmlyc3QsIGdldCBpdCBpbiB0aGUgbm9ybWFsIHdheSAoc2VlIGh0dHBzOi8vbm9kZWpzLm9yZy9hcGkvbW9kdWxlcy5odG1sI21vZHVsZXNfYWxsX3RvZ2V0aGVyKVxuICB0cnkge1xuICAgIGxvZy5kZWJ1ZyhgTG9hZGluZyBsb2NhbCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSdgKTtcbiAgICByZXR1cm4gcmVxdWlyZShwYWNrYWdlTmFtZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5kZWJ1ZyhgRmFpbGVkIHRvIGxvYWQgbG9jYWwgcGFja2FnZSAnJHtwYWNrYWdlTmFtZX0nOiAke2Vyci5tZXNzYWdlfWApO1xuICB9XG5cbiAgLy8gc2Vjb25kLCBnZXQgaXQgZnJvbSB3aGVyZSBpdCBvdWdodCB0byBiZSBpbiB0aGUgZ2xvYmFsIG5vZGVfbW9kdWxlc1xuICB0cnkge1xuICAgIGNvbnN0IGdsb2JhbFBhY2thZ2VOYW1lID0gcGF0aC5yZXNvbHZlKFxuICAgICAgcHJvY2Vzcy5lbnYubnBtX2NvbmZpZ19wcmVmaXggPz8gJycsXG4gICAgICAnbGliJyxcbiAgICAgICdub2RlX21vZHVsZXMnLFxuICAgICAgcGFja2FnZU5hbWVcbiAgICApO1xuICAgIGxvZy5kZWJ1ZyhgTG9hZGluZyBnbG9iYWwgcGFja2FnZSAnJHtnbG9iYWxQYWNrYWdlTmFtZX0nYCk7XG4gICAgcmV0dXJuIHJlcXVpcmUoZ2xvYmFsUGFja2FnZU5hbWUpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2cuZGVidWcoYEZhaWxlZCB0byBsb2FkIGdsb2JhbCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cblxuICAvLyB0aGlyZCwgbGluayB0aGUgZmlsZSBhbmQgZ2V0IGxvY2FsbHlcbiAgdHJ5IHtcbiAgICBhd2FpdCBsaW5rR2xvYmFsUGFja2FnZShwYWNrYWdlTmFtZSk7XG4gICAgbG9nLmRlYnVnKGBSZXRyeWluZyBsb2FkIG9mIGxpbmtlZCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSdgKTtcbiAgICByZXR1cm4gcmVxdWlyZShwYWNrYWdlTmFtZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBVbmFibGUgdG8gbG9hZCBwYWNrYWdlICcke3BhY2thZ2VOYW1lfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZXh0cmFjdEFsbFByb3BlcnRpZXMob2JqKSB7XG4gIGNvbnN0IHN0cmluZ1Byb3BlcnRpZXMgPSBbXTtcbiAgZm9yIChjb25zdCBwcm9wIGluIG9iaikge1xuICAgIHN0cmluZ1Byb3BlcnRpZXMucHVzaChwcm9wKTtcbiAgfVxuICBpZiAoXy5pc0Z1bmN0aW9uKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpKSB7XG4gICAgc3RyaW5nUHJvcGVydGllcy5wdXNoKC4uLk9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMob2JqKSk7XG4gIH1cbiAgcmV0dXJuIHN0cmluZ1Byb3BlcnRpZXM7XG59XG5cbmZ1bmN0aW9uIF9nZXRTaXplT2ZPYmplY3Qoc2Vlbiwgb2JqZWN0KSB7XG4gIGlmIChfLmlzTmlsKG9iamVjdCkpIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGxldCBieXRlcyA9IDA7XG4gIGNvbnN0IHByb3BlcnRpZXMgPSBleHRyYWN0QWxsUHJvcGVydGllcyhvYmplY3QpO1xuICBmb3IgKGNvbnN0IGtleSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgLy8gRG8gbm90IHJlY2FsY3VsYXRlIGNpcmN1bGFyIHJlZmVyZW5jZXNcbiAgICBpZiAodHlwZW9mIG9iamVjdFtrZXldID09PSAnb2JqZWN0JyAmJiAhXy5pc05pbChvYmplY3Rba2V5XSkpIHtcbiAgICAgIGlmIChzZWVuLmhhcyhvYmplY3Rba2V5XSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBzZWVuLmFkZChvYmplY3Rba2V5XSk7XG4gICAgfVxuXG4gICAgYnl0ZXMgKz0gZ2V0Q2FsY3VsYXRvcihzZWVuKShrZXkpO1xuICAgIHRyeSB7XG4gICAgICBieXRlcyArPSBnZXRDYWxjdWxhdG9yKHNlZW4pKG9iamVjdFtrZXldKTtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgaWYgKGV4IGluc3RhbmNlb2YgUmFuZ2VFcnJvcikge1xuICAgICAgICAvLyBjaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQsIGZpbmFsIHJlc3VsdCBtaWdodCBiZSBpbmNvcnJlY3RcbiAgICAgICAgLy8gbGV0J3MgYmUgbmljZSBhbmQgbm90IHRocm93IGFuIGV4Y2VwdGlvblxuICAgICAgICBieXRlcyA9IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGJ5dGVzO1xufVxuXG5mdW5jdGlvbiBnZXRDYWxjdWxhdG9yKHNlZW4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNhbGN1bGF0b3Iob2JqKSB7XG4gICAgaWYgKF8uaXNCdWZmZXIob2JqKSkge1xuICAgICAgcmV0dXJuIG9iai5sZW5ndGg7XG4gICAgfVxuXG4gICAgc3dpdGNoICh0eXBlb2Ygb2JqKSB7XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICByZXR1cm4gb2JqLmxlbmd0aCAqIEVDTUFfU0laRVMuU1RSSU5HO1xuICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgIHJldHVybiBFQ01BX1NJWkVTLkJPT0xFQU47XG4gICAgICBjYXNlICdudW1iZXInOlxuICAgICAgICByZXR1cm4gRUNNQV9TSVpFUy5OVU1CRVI7XG4gICAgICBjYXNlICdzeW1ib2wnOlxuICAgICAgICByZXR1cm4gXy5pc0Z1bmN0aW9uKFN5bWJvbC5rZXlGb3IpICYmIFN5bWJvbC5rZXlGb3Iob2JqKVxuICAgICAgICAgID8gLyoqIEB0eXBlIHtzdHJpbmd9ICovIChTeW1ib2wua2V5Rm9yKG9iaikpLmxlbmd0aCAqIEVDTUFfU0laRVMuU1RSSU5HXG4gICAgICAgICAgOiAob2JqLnRvU3RyaW5nKCkubGVuZ3RoIC0gOCkgKiBFQ01BX1NJWkVTLlNUUklORztcbiAgICAgIGNhc2UgJ29iamVjdCc6XG4gICAgICAgIHJldHVybiBfLmlzQXJyYXkob2JqKVxuICAgICAgICAgID8gb2JqLm1hcChnZXRDYWxjdWxhdG9yKHNlZW4pKS5yZWR1Y2UoKGFjYywgY3VycikgPT4gYWNjICsgY3VyciwgMClcbiAgICAgICAgICA6IF9nZXRTaXplT2ZPYmplY3Qoc2Vlbiwgb2JqKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAwO1xuICAgIH1cbiAgfTtcbn1cblxuLyoqXG4gKiBDYWxjdWxhdGUgdGhlIGluLWRlcHRoIHNpemUgaW4gbWVtb3J5IG9mIHRoZSBwcm92aWRlZCBvYmplY3QuXG4gKiBUaGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24gaXMgYm9ycm93ZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vbWlrdGFtL3NpemVvZi5cbiAqXG4gKiBAcGFyYW0geyp9IG9iaiBBbiBvYmplY3Qgd2hvc2Ugc2l6ZSBzaG91bGQgYmUgY2FsY3VsYXRlZFxuICogQHJldHVybnMge251bWJlcn0gT2JqZWN0IHNpemUgaW4gYnl0ZXMuXG4gKi9cbmZ1bmN0aW9uIGdldE9iamVjdFNpemUob2JqKSB7XG4gIHJldHVybiBnZXRDYWxjdWxhdG9yKG5ldyBXZWFrU2V0KCkpKG9iaik7XG59XG5cbmNvbnN0IE9CSkVDVFNfTUFQUElORyA9IG5ldyBXZWFrTWFwKCk7XG5cbi8qKlxuICogQ2FsY3VsYXRlcyBhIHVuaXF1ZSBvYmplY3QgaWRlbnRpZmllclxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBvYmplY3QgQW55IHZhbGlkIEVDTUEgb2JqZWN0XG4gKiBAcmV0dXJucyB7c3RyaW5nfSBBIHV1aWRWNCBzdHJpbmcgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIGdpdmVuIG9iamVjdFxuICovXG5mdW5jdGlvbiBnZXRPYmplY3RJZChvYmplY3QpIHtcbiAgaWYgKCFPQkpFQ1RTX01BUFBJTkcuaGFzKG9iamVjdCkpIHtcbiAgICBPQkpFQ1RTX01BUFBJTkcuc2V0KG9iamVjdCwgdXVpZFY0KCkpO1xuICB9XG4gIHJldHVybiBPQkpFQ1RTX01BUFBJTkcuZ2V0KG9iamVjdCk7XG59XG5cbi8qKlxuICogUGVyZm9ybSBkZWVwIGZyZWV6ZSBvZiB0aGUgZ2l2ZW4gb2JqZWN0IChlLiBnLlxuICogYWxsIG5lc3RlZCBvYmplY3RzIGFsc28gYmVjb21lIGltbXV0YWJsZSkuXG4gKiBJZiB0aGUgcGFzc2VkIG9iamVjdCBpcyBvZiBhIHBsYWluIHR5cGVcbiAqIHRoZW4gbm8gY2hhbmdlIGlzIGRvbmUgYW5kIHRoZSBzYW1lIG9iamVjdFxuICogaXMgcmV0dXJuZWQuXG4gKiAhIFRoaXMgZnVuY3Rpb24gY2hhbmdlcyB0aGUgZ2l2ZW4gb2JqZWN0LFxuICogc28gaXQgYmVjb21lcyBpbW11dGFibGUuXG4gKlxuICogQHBhcmFtIHsqfSBvYmplY3QgQW55IHZhbGlkIEVDTUEgb2JqZWN0XG4gKiBAcmV0dXJucyB7Kn0gVGhlIHNhbWUgb2JqZWN0IHRoYXQgd2FzIHBhc3NlZCB0byB0aGVcbiAqIGZ1bmN0aW9uIGFmdGVyIGl0IHdhcyBtYWRlIGltbXV0YWJsZS5cbiAqL1xuZnVuY3Rpb24gZGVlcEZyZWV6ZShvYmplY3QpIHtcbiAgbGV0IHByb3BOYW1lcztcbiAgdHJ5IHtcbiAgICBwcm9wTmFtZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QpO1xuICB9IGNhdGNoIChpZ24pIHtcbiAgICByZXR1cm4gb2JqZWN0O1xuICB9XG4gIGZvciAoY29uc3QgbmFtZSBvZiBwcm9wTmFtZXMpIHtcbiAgICBjb25zdCB2YWx1ZSA9IG9iamVjdFtuYW1lXTtcbiAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgZGVlcEZyZWV6ZSh2YWx1ZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBPYmplY3QuZnJlZXplKG9iamVjdCk7XG59XG5cbmV4cG9ydCB7cmVxdWlyZVBhY2thZ2UsIGdldE9iamVjdFNpemUsIGdldE9iamVjdElkLCBkZWVwRnJlZXplfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxVQUFVLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjO0VBQy9CQyxNQUFNLEVBQUUsQ0FEdUI7RUFFL0JDLE9BQU8sRUFBRSxDQUZzQjtFQUcvQkMsTUFBTSxFQUFFO0FBSHVCLENBQWQsQ0FBbkI7O0FBWUEsZUFBZUMsaUJBQWYsQ0FBaUNDLFdBQWpDLEVBQThDO0VBQzVDLElBQUk7SUFDRkMsZUFBQSxDQUFJQyxLQUFKLENBQVcsb0JBQW1CRixXQUFZLEdBQTFDOztJQUNBLE1BQU1HLEdBQUcsR0FBRyxJQUFBQyxpQkFBQSxNQUFjLFNBQWQsR0FBMEIsS0FBdEM7SUFDQSxNQUFNLElBQUFDLGtCQUFBLEVBQUtGLEdBQUwsRUFBVSxDQUFDLE1BQUQsRUFBU0gsV0FBVCxDQUFWLEVBQWlDO01BQUNNLE9BQU8sRUFBRTtJQUFWLENBQWpDLENBQU47RUFDRCxDQUpELENBSUUsT0FBT0MsR0FBUCxFQUFZO0lBQ1osTUFBTUMsR0FBRyxHQUFJLDJCQUEwQlIsV0FBWSxzQkFBcUJPLEdBQUcsQ0FBQ0UsT0FBUSxFQUFwRjs7SUFDQVIsZUFBQSxDQUFJQyxLQUFKLENBQVVNLEdBQVY7O0lBQ0EsSUFBSUQsR0FBRyxDQUFDRyxNQUFSLEVBQWdCO01BR2RULGVBQUEsQ0FBSUMsS0FBSixDQUFVSyxHQUFHLENBQUNHLE1BQWQ7SUFDRDs7SUFDRCxNQUFNLElBQUlDLEtBQUosQ0FBVUgsR0FBVixDQUFOO0VBQ0Q7QUFDRjs7QUFXRCxlQUFlSSxjQUFmLENBQThCWixXQUE5QixFQUEyQztFQUV6QyxJQUFJO0lBQ0ZDLGVBQUEsQ0FBSUMsS0FBSixDQUFXLDBCQUF5QkYsV0FBWSxHQUFoRDs7SUFDQSxPQUFPYSxPQUFPLENBQUNiLFdBQUQsQ0FBZDtFQUNELENBSEQsQ0FHRSxPQUFPTyxHQUFQLEVBQVk7SUFDWk4sZUFBQSxDQUFJQyxLQUFKLENBQVcsaUNBQWdDRixXQUFZLE1BQUtPLEdBQUcsQ0FBQ0UsT0FBUSxFQUF4RTtFQUNEOztFQUdELElBQUk7SUFBQTs7SUFDRixNQUFNSyxpQkFBaUIsR0FBR0MsYUFBQSxDQUFLQyxPQUFMLDBCQUN4QkMsT0FBTyxDQUFDQyxHQUFSLENBQVlDLGlCQURZLHlFQUNTLEVBRFQsRUFFeEIsS0FGd0IsRUFHeEIsY0FId0IsRUFJeEJuQixXQUp3QixDQUExQjs7SUFNQUMsZUFBQSxDQUFJQyxLQUFKLENBQVcsMkJBQTBCWSxpQkFBa0IsR0FBdkQ7O0lBQ0EsT0FBT0QsT0FBTyxDQUFDQyxpQkFBRCxDQUFkO0VBQ0QsQ0FURCxDQVNFLE9BQU9QLEdBQVAsRUFBWTtJQUNaTixlQUFBLENBQUlDLEtBQUosQ0FBVyxrQ0FBaUNGLFdBQVksTUFBS08sR0FBRyxDQUFDRSxPQUFRLEVBQXpFO0VBQ0Q7O0VBR0QsSUFBSTtJQUNGLE1BQU1WLGlCQUFpQixDQUFDQyxXQUFELENBQXZCOztJQUNBQyxlQUFBLENBQUlDLEtBQUosQ0FBVyxvQ0FBbUNGLFdBQVksR0FBMUQ7O0lBQ0EsT0FBT2EsT0FBTyxDQUFDYixXQUFELENBQWQ7RUFDRCxDQUpELENBSUUsT0FBT08sR0FBUCxFQUFZO0lBQ1pOLGVBQUEsQ0FBSW1CLGFBQUosQ0FBbUIsMkJBQTBCcEIsV0FBWSxNQUFLTyxHQUFHLENBQUNFLE9BQVEsRUFBMUU7RUFDRDtBQUNGOztBQUVELFNBQVNZLG9CQUFULENBQThCQyxHQUE5QixFQUFtQztFQUNqQyxNQUFNQyxnQkFBZ0IsR0FBRyxFQUF6Qjs7RUFDQSxLQUFLLE1BQU1DLElBQVgsSUFBbUJGLEdBQW5CLEVBQXdCO0lBQ3RCQyxnQkFBZ0IsQ0FBQ0UsSUFBakIsQ0FBc0JELElBQXRCO0VBQ0Q7O0VBQ0QsSUFBSUUsZUFBQSxDQUFFQyxVQUFGLENBQWFqQyxNQUFNLENBQUNrQyxxQkFBcEIsQ0FBSixFQUFnRDtJQUM5Q0wsZ0JBQWdCLENBQUNFLElBQWpCLENBQXNCLEdBQUcvQixNQUFNLENBQUNrQyxxQkFBUCxDQUE2Qk4sR0FBN0IsQ0FBekI7RUFDRDs7RUFDRCxPQUFPQyxnQkFBUDtBQUNEOztBQUVELFNBQVNNLGdCQUFULENBQTBCQyxJQUExQixFQUFnQ0MsTUFBaEMsRUFBd0M7RUFDdEMsSUFBSUwsZUFBQSxDQUFFTSxLQUFGLENBQVFELE1BQVIsQ0FBSixFQUFxQjtJQUNuQixPQUFPLENBQVA7RUFDRDs7RUFFRCxJQUFJRSxLQUFLLEdBQUcsQ0FBWjtFQUNBLE1BQU1DLFVBQVUsR0FBR2Isb0JBQW9CLENBQUNVLE1BQUQsQ0FBdkM7O0VBQ0EsS0FBSyxNQUFNSSxHQUFYLElBQWtCRCxVQUFsQixFQUE4QjtJQUU1QixJQUFJLE9BQU9ILE1BQU0sQ0FBQ0ksR0FBRCxDQUFiLEtBQXVCLFFBQXZCLElBQW1DLENBQUNULGVBQUEsQ0FBRU0sS0FBRixDQUFRRCxNQUFNLENBQUNJLEdBQUQsQ0FBZCxDQUF4QyxFQUE4RDtNQUM1RCxJQUFJTCxJQUFJLENBQUNNLEdBQUwsQ0FBU0wsTUFBTSxDQUFDSSxHQUFELENBQWYsQ0FBSixFQUEyQjtRQUN6QjtNQUNEOztNQUNETCxJQUFJLENBQUNPLEdBQUwsQ0FBU04sTUFBTSxDQUFDSSxHQUFELENBQWY7SUFDRDs7SUFFREYsS0FBSyxJQUFJSyxhQUFhLENBQUNSLElBQUQsQ0FBYixDQUFvQkssR0FBcEIsQ0FBVDs7SUFDQSxJQUFJO01BQ0ZGLEtBQUssSUFBSUssYUFBYSxDQUFDUixJQUFELENBQWIsQ0FBb0JDLE1BQU0sQ0FBQ0ksR0FBRCxDQUExQixDQUFUO0lBQ0QsQ0FGRCxDQUVFLE9BQU9JLEVBQVAsRUFBVztNQUNYLElBQUlBLEVBQUUsWUFBWUMsVUFBbEIsRUFBOEI7UUFHNUJQLEtBQUssR0FBRyxDQUFSO01BQ0Q7SUFDRjtFQUNGOztFQUVELE9BQU9BLEtBQVA7QUFDRDs7QUFFRCxTQUFTSyxhQUFULENBQXVCUixJQUF2QixFQUE2QjtFQUMzQixPQUFPLFNBQVNXLFVBQVQsQ0FBb0JuQixHQUFwQixFQUF5QjtJQUM5QixJQUFJSSxlQUFBLENBQUVnQixRQUFGLENBQVdwQixHQUFYLENBQUosRUFBcUI7TUFDbkIsT0FBT0EsR0FBRyxDQUFDcUIsTUFBWDtJQUNEOztJQUVELFFBQVEsT0FBT3JCLEdBQWY7TUFDRSxLQUFLLFFBQUw7UUFDRSxPQUFPQSxHQUFHLENBQUNxQixNQUFKLEdBQWFsRCxVQUFVLENBQUNHLE1BQS9COztNQUNGLEtBQUssU0FBTDtRQUNFLE9BQU9ILFVBQVUsQ0FBQ0ksT0FBbEI7O01BQ0YsS0FBSyxRQUFMO1FBQ0UsT0FBT0osVUFBVSxDQUFDSyxNQUFsQjs7TUFDRixLQUFLLFFBQUw7UUFDRSxPQUFPNEIsZUFBQSxDQUFFQyxVQUFGLENBQWFpQixNQUFNLENBQUNDLE1BQXBCLEtBQStCRCxNQUFNLENBQUNDLE1BQVAsQ0FBY3ZCLEdBQWQsQ0FBL0IsR0FDb0JzQixNQUFNLENBQUNDLE1BQVAsQ0FBY3ZCLEdBQWQsQ0FBRCxDQUFxQnFCLE1BQXJCLEdBQThCbEQsVUFBVSxDQUFDRyxNQUQ1RCxHQUVILENBQUMwQixHQUFHLENBQUN3QixRQUFKLEdBQWVILE1BQWYsR0FBd0IsQ0FBekIsSUFBOEJsRCxVQUFVLENBQUNHLE1BRjdDOztNQUdGLEtBQUssUUFBTDtRQUNFLE9BQU84QixlQUFBLENBQUVxQixPQUFGLENBQVV6QixHQUFWLElBQ0hBLEdBQUcsQ0FBQzBCLEdBQUosQ0FBUVYsYUFBYSxDQUFDUixJQUFELENBQXJCLEVBQTZCbUIsTUFBN0IsQ0FBb0MsQ0FBQ0MsR0FBRCxFQUFNQyxJQUFOLEtBQWVELEdBQUcsR0FBR0MsSUFBekQsRUFBK0QsQ0FBL0QsQ0FERyxHQUVIdEIsZ0JBQWdCLENBQUNDLElBQUQsRUFBT1IsR0FBUCxDQUZwQjs7TUFHRjtRQUNFLE9BQU8sQ0FBUDtJQWhCSjtFQWtCRCxDQXZCRDtBQXdCRDs7QUFTRCxTQUFTOEIsYUFBVCxDQUF1QjlCLEdBQXZCLEVBQTRCO0VBQzFCLE9BQU9nQixhQUFhLENBQUMsSUFBSWUsT0FBSixFQUFELENBQWIsQ0FBNkIvQixHQUE3QixDQUFQO0FBQ0Q7O0FBRUQsTUFBTWdDLGVBQWUsR0FBRyxJQUFJQyxPQUFKLEVBQXhCOztBQVFBLFNBQVNDLFdBQVQsQ0FBcUJ6QixNQUFyQixFQUE2QjtFQUMzQixJQUFJLENBQUN1QixlQUFlLENBQUNsQixHQUFoQixDQUFvQkwsTUFBcEIsQ0FBTCxFQUFrQztJQUNoQ3VCLGVBQWUsQ0FBQ0csR0FBaEIsQ0FBb0IxQixNQUFwQixFQUE0QixJQUFBMkIsUUFBQSxHQUE1QjtFQUNEOztFQUNELE9BQU9KLGVBQWUsQ0FBQ0ssR0FBaEIsQ0FBb0I1QixNQUFwQixDQUFQO0FBQ0Q7O0FBZUQsU0FBUzZCLFVBQVQsQ0FBb0I3QixNQUFwQixFQUE0QjtFQUMxQixJQUFJOEIsU0FBSjs7RUFDQSxJQUFJO0lBQ0ZBLFNBQVMsR0FBR25FLE1BQU0sQ0FBQ29FLG1CQUFQLENBQTJCL0IsTUFBM0IsQ0FBWjtFQUNELENBRkQsQ0FFRSxPQUFPZ0MsR0FBUCxFQUFZO0lBQ1osT0FBT2hDLE1BQVA7RUFDRDs7RUFDRCxLQUFLLE1BQU1pQyxJQUFYLElBQW1CSCxTQUFuQixFQUE4QjtJQUM1QixNQUFNSSxLQUFLLEdBQUdsQyxNQUFNLENBQUNpQyxJQUFELENBQXBCOztJQUNBLElBQUlDLEtBQUssSUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQTlCLEVBQXdDO01BQ3RDTCxVQUFVLENBQUNLLEtBQUQsQ0FBVjtJQUNEO0VBQ0Y7O0VBQ0QsT0FBT3ZFLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjb0MsTUFBZCxDQUFQO0FBQ0QifQ==
@@ -1 +1 @@
1
- {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../lib/npm.js"],"names":[],"mappings":"AAYA;;;GAGG;AACH,6CAIE;AAEF;;GAEG;AACH,oDAGE;AAEF;;GAEG;AACH;IACE;;;;OAIG;IACH,gCAEC;IAED;;;;;;;;;OASG;IACH,UALW,MAAM,QACN,MAAM,EAAE,QACR,QAAQ;eAqB8C,GAAG;OAiBnE;IAED;;;OAGG;IACH,sBAHW,MAAM,OACN,MAAM,gBAOhB;IAED;;;;OAIG;IACH,iCAJW,MAAM,OACN,MAAM,cACN,MAAM,0BAQhB;IAED;;;;OAIG;IACH,UAHW,MAAM,0CAKhB;IAED;;;;;;;;;OASG;IACH,6CALW,MAAM,eACN,MAAM,MAAM,CAAC,GAEZ,MAAM,GAAC,IAAI,CAmCtB;IAED;;;;;;OAMG;IACH,oBALW,MAAM,WACN,MAAM,gDAEJ,QAAQ,OAAO,WAAW,EAAE,WAAW,CAAC,CA6DpD;IAED;;;OAGG;IACH,sBAHW,MAAM,OACN,MAAM,iBAOhB;CACF;AAED,sBAA6B;;;;;;;;;;;;;;;;;SAWf,MAAM;;;;;;;;;;;;;;;;;YAUN,MAAM;;;;YACN,MAAM;;;;UACN,MAAM;;;;;mCAKP,KAAK,GAAG,yBAAyB"}
1
+ {"version":3,"file":"npm.d.ts","sourceRoot":"","sources":["../../lib/npm.js"],"names":[],"mappings":"AAWA;;;GAGG;AACH,6CAAqF;AAErF;;GAEG;AACH,oDAAkG;AAElG;;GAEG;AACH;IACE;;;;OAIG;IACH,gCAEC;IAED;;;;;;;;;OASG;IACH,UALW,MAAM,QACN,MAAM,EAAE,QACR,QAAQ;eAqB8C,GAAG;OAqBnE;IAED;;;OAGG;IACH,sBAHW,MAAM,OACN,MAAM,gBAShB;IAED;;;;OAIG;IACH,iCAJW,MAAM,OACN,MAAM,cACN,MAAM,0BAUhB;IAED;;;;OAIG;IACH,UAHW,MAAM,0CAKhB;IAED;;;;;;;;;OASG;IACH,6CALW,MAAM,eACN,MAAM,MAAM,CAAC,GAEZ,MAAM,GAAC,IAAI,CAmCtB;IAED;;;;;;OAMG;IACH,oBALW,MAAM,WACN,MAAM,gDAEJ,QAAQ,OAAO,WAAW,EAAE,WAAW,CAAC,CAgEpD;IAED;;;OAGG;IACH,sBAHW,MAAM,OACN,MAAM,iBAOhB;CACF;AAED,sBAA6B;;;;;;;;;;;;;;;;;SAWf,MAAM;;;;;;;;;;;;;;;;;YAUN,MAAM;;;;YACN,MAAM;;;;UACN,MAAM;;;;;mCAKP,KAAK,GAAG,yBAAyB"}