@appium/support 2.55.4 → 2.57.0

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 (96) hide show
  1. package/build/lib/env.d.ts +54 -0
  2. package/build/lib/env.d.ts.map +1 -0
  3. package/build/lib/env.js +102 -0
  4. package/build/lib/fs.d.ts +221 -0
  5. package/build/lib/fs.d.ts.map +1 -0
  6. package/build/lib/fs.js +74 -56
  7. package/build/lib/image-util.d.ts +56 -0
  8. package/build/lib/image-util.d.ts.map +1 -0
  9. package/build/lib/image-util.js +3 -6
  10. package/build/lib/index.d.ts +38 -0
  11. package/build/lib/index.d.ts.map +1 -0
  12. package/build/lib/index.js +36 -18
  13. package/build/lib/log-internal.d.ts +74 -0
  14. package/build/lib/log-internal.d.ts.map +1 -0
  15. package/build/lib/log-internal.js +11 -21
  16. package/build/lib/logger.d.ts +3 -0
  17. package/build/lib/logger.d.ts.map +1 -0
  18. package/build/lib/logger.js +2 -4
  19. package/build/lib/logging.d.ts +45 -0
  20. package/build/lib/logging.d.ts.map +1 -0
  21. package/build/lib/logging.js +12 -16
  22. package/build/lib/mjpeg.d.ts +65 -0
  23. package/build/lib/mjpeg.d.ts.map +1 -0
  24. package/build/lib/mjpeg.js +12 -7
  25. package/build/lib/mkdirp.d.ts +3 -0
  26. package/build/lib/mkdirp.d.ts.map +1 -0
  27. package/build/lib/mkdirp.js +7 -11
  28. package/build/lib/net.d.ts +95 -0
  29. package/build/lib/net.d.ts.map +1 -0
  30. package/build/lib/net.js +42 -26
  31. package/build/lib/node.d.ts +26 -0
  32. package/build/lib/node.d.ts.map +1 -0
  33. package/build/lib/node.js +102 -3
  34. package/build/lib/npm.d.ts +123 -0
  35. package/build/lib/npm.d.ts.map +1 -0
  36. package/build/lib/npm.js +217 -0
  37. package/build/lib/plist.d.ts +43 -0
  38. package/build/lib/plist.d.ts.map +1 -0
  39. package/build/lib/plist.js +2 -4
  40. package/build/lib/process.d.ts +3 -0
  41. package/build/lib/process.d.ts.map +1 -0
  42. package/build/lib/process.js +2 -4
  43. package/build/lib/system.d.ts +7 -0
  44. package/build/lib/system.d.ts.map +1 -0
  45. package/build/lib/system.js +2 -4
  46. package/build/lib/tempdir.d.ts +63 -0
  47. package/build/lib/tempdir.d.ts.map +1 -0
  48. package/build/lib/tempdir.js +4 -9
  49. package/build/lib/timing.d.ts +46 -0
  50. package/build/lib/timing.d.ts.map +1 -0
  51. package/build/lib/timing.js +2 -4
  52. package/build/lib/util.d.ts +183 -0
  53. package/build/lib/util.d.ts.map +1 -0
  54. package/build/lib/util.js +9 -15
  55. package/build/lib/zip.d.ts +180 -0
  56. package/build/lib/zip.d.ts.map +1 -0
  57. package/build/lib/zip.js +9 -9
  58. package/build/tsconfig.tsbuildinfo +1 -0
  59. package/lib/env.js +162 -0
  60. package/lib/fs.js +198 -69
  61. package/lib/image-util.js +23 -7
  62. package/lib/index.js +6 -6
  63. package/lib/log-internal.js +31 -38
  64. package/lib/logging.js +41 -17
  65. package/lib/mjpeg.js +14 -5
  66. package/lib/mkdirp.js +3 -6
  67. package/lib/net.js +116 -60
  68. package/lib/node.js +107 -4
  69. package/lib/npm.js +278 -0
  70. package/lib/plist.js +3 -1
  71. package/lib/tempdir.js +14 -13
  72. package/lib/util.js +36 -33
  73. package/lib/zip.js +31 -21
  74. package/package.json +31 -13
  75. package/build/test/assets/sample_binary.plist +0 -0
  76. package/build/test/assets/sample_text.plist +0 -28
  77. package/build/test/fs-specs.js +0 -264
  78. package/build/test/helpers.js +0 -35
  79. package/build/test/image-util-e2e-specs.js +0 -78
  80. package/build/test/index-specs.js +0 -49
  81. package/build/test/log-internals-specs.js +0 -97
  82. package/build/test/logger/helpers.js +0 -71
  83. package/build/test/logger/logger-force-specs.js +0 -41
  84. package/build/test/logger/logger-normal-specs.js +0 -113
  85. package/build/test/logger/logger-test-specs.js +0 -40
  86. package/build/test/mjpeg-e2e-specs.js +0 -96
  87. package/build/test/net-e2e-specs.js +0 -32
  88. package/build/test/node-e2e-specs.js +0 -22
  89. package/build/test/plist-specs.js +0 -54
  90. package/build/test/process-specs.js +0 -104
  91. package/build/test/system-specs.js +0 -136
  92. package/build/test/tempdir-specs.js +0 -86
  93. package/build/test/timing-specs.js +0 -125
  94. package/build/test/util-e2e-specs.js +0 -136
  95. package/build/test/util-specs.js +0 -537
  96. package/build/test/zip-e2e-specs.js +0 -233
@@ -0,0 +1,74 @@
1
+ export default SECURE_VALUES_PREPROCESSOR;
2
+ export type Rule = {
3
+ /**
4
+ * A valid RegExp pattern to be replaced
5
+ */
6
+ pattern: string;
7
+ /**
8
+ * A text match to replace. Either this property or the
9
+ * above one must be provided. `pattern` has priority over `text` if both are provided.
10
+ */
11
+ text: string;
12
+ /**
13
+ * Regular expression flags for the given pattern.
14
+ * Supported flag are the same as for the standard JavaScript RegExp constructor:
15
+ * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Advanced_searching_with_flags_2
16
+ * The 'g' (global matching) is always enabled though.
17
+ */
18
+ flags?: string | undefined;
19
+ /**
20
+ * The replacer value to use. By default
21
+ * equals to `DEFAULT_SECURE_REPLACER`
22
+ */
23
+ replacer?: string | undefined;
24
+ };
25
+ export type SecureValuePreprocessingRule = {
26
+ /**
27
+ * The parsed pattern which is going to be used for replacement
28
+ */
29
+ pattern: RegExp;
30
+ /**
31
+ * The replacer value to use. By default
32
+ * equals to `DEFAULT_SECURE_REPLACER`
33
+ */
34
+ replacer?: string | undefined;
35
+ };
36
+ export const SECURE_VALUES_PREPROCESSOR: SecureValuesPreprocessor;
37
+ export class SecureValuesPreprocessor {
38
+ _rules: any[];
39
+ /**
40
+ * @returns {Array<SecureValuePreprocessingRule>} The list of successfully
41
+ * parsed preprocessing rules
42
+ */
43
+ get rules(): SecureValuePreprocessingRule[];
44
+ /**
45
+ * Parses single rule from the given JSON file
46
+ *
47
+ * @param {string|Rule} rule The rule might either be represented as a single string
48
+ * or a configuration object
49
+ * @throws {Error} If there was an error while parsing the rule
50
+ * @returns {SecureValuePreprocessingRule} The parsed rule
51
+ */
52
+ parseRule(rule: string | Rule): SecureValuePreprocessingRule;
53
+ /**
54
+ * Loads rules from the given JSON file
55
+ *
56
+ * @param {string|string[]|Rule[]} source The full path to the JSON file containing secure
57
+ * values replacement rules or the rules themselves represented as an array
58
+ * @throws {Error} If the format of the source file is invalid or
59
+ * it does not exist
60
+ * @returns {Promise<string[]>} The list of issues found while parsing each rule.
61
+ * An empty list is returned if no rule parsing issues were found
62
+ */
63
+ loadRules(source: string | string[] | Rule[]): Promise<string[]>;
64
+ /**
65
+ * Performs secure values replacement inside the given string
66
+ * according to the previously loaded rules. No replacement is made
67
+ * if there are no rules or the given value is not a string
68
+ *
69
+ * @param {string} str The string to make replacements in
70
+ * @returns {string} The string with replacements made
71
+ */
72
+ preprocess(str: string): string;
73
+ }
74
+ //# sourceMappingURL=log-internal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log-internal.d.ts","sourceRoot":"","sources":["../../lib/log-internal.js"],"names":[],"mappings":";;;;;aA+Ic,MAAM;;;;;UACN,MAAM;;;;;;;;;;;;;;;;;;aAYN,MAAM;;;;;;;AApBpB,kEAAkE;AAlIlE;IAEI,cAAgB;IAGlB;;;OAGG;IACH,4CAEC;IAED;;;;;;;OAOG;IACH,gBALW,MAAM,GAAC,IAAI,GAGT,4BAA4B,CAgDxC;IAED;;;;;;;;;OASG;IACH,kBAPW,MAAM,GAAC,MAAM,EAAE,GAAC,IAAI,EAAE,GAIpB,QAAQ,MAAM,EAAE,CAAC,CA+B7B;IAED;;;;;;;OAOG;IACH,gBAHW,MAAM,GACJ,MAAM,CAYlB;CACF"}
@@ -25,37 +25,33 @@ class SecureValuesPreprocessor {
25
25
  }
26
26
 
27
27
  parseRule(rule) {
28
- const raiseError = msg => {
29
- throw new Error(`${JSON.stringify(rule)} -> ${msg}`);
30
- };
31
-
32
28
  let pattern;
33
29
  let replacer = DEFAULT_REPLACER;
34
30
  let flags = ['g'];
35
31
 
36
32
  if (_lodash.default.isString(rule)) {
37
33
  if (rule.length === 0) {
38
- raiseError('The value must not be empty');
34
+ throw new Error(`${JSON.stringify(rule)} -> The value must not be empty`);
39
35
  }
40
36
 
41
37
  pattern = `\\b${_lodash.default.escapeRegExp(rule)}\\b`;
42
38
  } else if (_lodash.default.isPlainObject(rule)) {
43
39
  if (_lodash.default.has(rule, 'pattern')) {
44
40
  if (!_lodash.default.isString(rule.pattern) || rule.pattern.length === 0) {
45
- raiseError(`The value of 'pattern' must be a valid non-empty string`);
41
+ throw new Error(`${JSON.stringify(rule)} -> The value of 'pattern' must be a valid non-empty string`);
46
42
  }
47
43
 
48
44
  pattern = rule.pattern;
49
45
  } else if (_lodash.default.has(rule, 'text')) {
50
46
  if (!_lodash.default.isString(rule.text) || rule.text.length === 0) {
51
- raiseError(`The value of 'text' must be a valid non-empty string`);
47
+ throw new Error(`${JSON.stringify(rule)} -> The value of 'text' must be a valid non-empty string`);
52
48
  }
53
49
 
54
50
  pattern = `\\b${_lodash.default.escapeRegExp(rule.text)}\\b`;
55
51
  }
56
52
 
57
53
  if (!pattern) {
58
- raiseError(`Must either have a field named 'pattern' or 'text'`);
54
+ throw new Error(`${JSON.stringify(rule)} -> Must either have a field named 'pattern' or 'text'`);
59
55
  }
60
56
 
61
57
  if (_lodash.default.has(rule, 'flags')) {
@@ -72,17 +68,13 @@ class SecureValuesPreprocessor {
72
68
  replacer = rule.replacer;
73
69
  }
74
70
  } else {
75
- raiseError('Must either be a string or an object');
71
+ throw new Error(`${JSON.stringify(rule)} -> Must either be a string or an object`);
76
72
  }
77
73
 
78
- try {
79
- return {
80
- pattern: new RegExp(pattern, flags.join('')),
81
- replacer
82
- };
83
- } catch (e) {
84
- raiseError(e.message);
85
- }
74
+ return {
75
+ pattern: new RegExp(pattern, flags.join('')),
76
+ replacer
77
+ };
86
78
  }
87
79
 
88
80
  async loadRules(source) {
@@ -140,7 +132,5 @@ exports.SecureValuesPreprocessor = SecureValuesPreprocessor;
140
132
  const SECURE_VALUES_PREPROCESSOR = new SecureValuesPreprocessor();
141
133
  exports.SECURE_VALUES_PREPROCESSOR = SECURE_VALUES_PREPROCESSOR;
142
134
  var _default = SECURE_VALUES_PREPROCESSOR;
143
- exports.default = _default;require('source-map-support').install();
144
-
145
-
146
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2ctaW50ZXJuYWwuanMiXSwibmFtZXMiOlsiREVGQVVMVF9SRVBMQUNFUiIsIlNlY3VyZVZhbHVlc1ByZXByb2Nlc3NvciIsImNvbnN0cnVjdG9yIiwiX3J1bGVzIiwicnVsZXMiLCJwYXJzZVJ1bGUiLCJydWxlIiwicmFpc2VFcnJvciIsIm1zZyIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsInBhdHRlcm4iLCJyZXBsYWNlciIsImZsYWdzIiwiXyIsImlzU3RyaW5nIiwibGVuZ3RoIiwiZXNjYXBlUmVnRXhwIiwiaXNQbGFpbk9iamVjdCIsImhhcyIsInRleHQiLCJmbGFnIiwiaW5jbHVkZXMiLCJwdXNoIiwidW5pcSIsIlJlZ0V4cCIsImpvaW4iLCJlIiwibWVzc2FnZSIsImxvYWRSdWxlcyIsInNvdXJjZSIsImlzQXJyYXkiLCJmcyIsImV4aXN0cyIsInBhcnNlIiwicmVhZEZpbGUiLCJpc3N1ZXMiLCJwcmVwcm9jZXNzIiwic3RyIiwicmVzdWx0IiwicmVwbGFjZSIsIlNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBLE1BQU1BLGdCQUFnQixHQUFHLFlBQXpCOztBQVNBLE1BQU1DLHdCQUFOLENBQStCO0FBQzdCQyxFQUFBQSxXQUFXLEdBQUk7QUFDYixTQUFLQyxNQUFMLEdBQWMsRUFBZDtBQUNEOztBQU1RLE1BQUxDLEtBQUssR0FBSTtBQUNYLFdBQU8sS0FBS0QsTUFBWjtBQUNEOztBQXVCREUsRUFBQUEsU0FBUyxDQUFFQyxJQUFGLEVBQVE7QUFDZixVQUFNQyxVQUFVLEdBQUlDLEdBQUQsSUFBUztBQUMxQixZQUFNLElBQUlDLEtBQUosQ0FBVyxHQUFFQyxJQUFJLENBQUNDLFNBQUwsQ0FBZUwsSUFBZixDQUFxQixPQUFNRSxHQUFJLEVBQTVDLENBQU47QUFDRCxLQUZEOztBQUlBLFFBQUlJLE9BQUo7QUFDQSxRQUFJQyxRQUFRLEdBQUdiLGdCQUFmO0FB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LEVBQWdDO0FBQzlCcUMsTUFBQUEsTUFBTSxHQUFHQSxNQUFNLENBQUNDLE9BQVAsQ0FBZW5DLElBQUksQ0FBQ00sT0FBcEIsRUFBNkJOLElBQUksQ0FBQ08sUUFBbEMsQ0FBVDtBQUNEOztBQUNELFdBQU8yQixNQUFQO0FBQ0Q7O0FBcEo0Qjs7O0FBdUovQixNQUFNRSwwQkFBMEIsR0FBRyxJQUFJekMsd0JBQUosRUFBbkM7O2VBR2V5QywwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICcuL2ZzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IERFRkFVTFRfUkVQTEFDRVIgPSAnKipTRUNVUkUqKic7XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU2VjdXJlVmFsdWVQcmVwcm9jZXNzaW5nUnVsZVxuICogQHByb3BlcnR5IHtSZWdFeHB9IHBhdHRlcm4gVGhlIHBhcnNlZCBwYXR0ZXJuIHdoaWNoIGlzIGdvaW5nIHRvIGJlIHVzZWQgZm9yIHJlcGxhY2VtZW50XG4gKiBAcHJvcGVydHkge3N0cmluZ30gcmVwbGFjZXIgW0RFRkFVTFRfU0VDVVJFX1JFUExBQ0VSXSBUaGUgcmVwbGFjZXIgdmFsdWUgdG8gdXNlLiBCeSBkZWZhdWx0XG4gKiBlcXVhbHMgdG8gYERFRkFVTFRfU0VDVVJFX1JFUExBQ0VSYFxuICovXG5cbmNsYXNzIFNlY3VyZVZhbHVlc1ByZXByb2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yICgpIHtcbiAgICB0aGlzLl9ydWxlcyA9IFtdO1xuICB9XG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIHtBcnJheTxTZWN1cmVWYWx1ZVByZXByb2Nlc3NpbmdSdWxlPn0gVGhlIGxpc3Qgb2Ygc3VjY2Vzc2Z1bGx5XG4gICAqIHBhcnNlZCBwcmVwcm9jZXNzaW5nIHJ1bGVzXG4gICAqL1xuICBnZXQgcnVsZXMgKCkge1xuICAgIHJldHVybiB0aGlzLl9ydWxlcztcbiAgfVxuXG4gIC8qKlxuICAgKiBAdHlwZWRlZiB7T2JqZWN0fSBSdWxlXG4gICAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwYXR0ZXJuIEEgdmFsaWQgUmVnRXhwIHBhdHRlcm4gdG8gYmUgcmVwbGFjZWRcbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IHRleHQgQSB0ZXh0IG1hdGNoIHRvIHJlcGxhY2UuIEVpdGhlciB0aGlzIHByb3BlcnR5IG9yIHRoZVxuICAgKiBhYm92ZSBvbmUgbXVzdCBiZSBwcm92aWRlZC4gYHBhdHRlcm5gIGhhcyBwcmlvcml0eSBvdmVyIGB0ZXh0YCBpZiBib3RoIGFyZSBwcm92aWRlZC5cbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IGZsYWdzIFsnZyddIFJlZ3VsYXIgZXhwcmVzc2lvbiBmbGFncyBmb3IgdGhlIGdpdmVuIHBhdHRlcm4uXG4gICAqIFN1cHBvcnRlZCBmbGFnIGFyZSB0aGUgc2FtZSBhcyBmb3IgdGhlIHN0YW5kYXJkIEphdmFTY3JpcHQgUmVnRXhwIGNvbnN0cnVjdG9yOlxuICAgKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L0d1aWRlL1JlZ3VsYXJfRXhwcmVzc2lvbnMjQWR2YW5jZWRfc2VhcmNoaW5nX3dpdGhfZmxhZ3NfMlxuICAgKiBUaGUgJ2cnIChnbG9iYWwgbWF0Y2hpbmcpIGlzIGFsd2F5cyBlbmFibGVkIHRob3VnaC5cbiAgICogQHByb3BlcnR5IHtzdHJpbmd9IHJlcGxhY2VyIFtERUZBVUxUX1NFQ1VSRV9SRVBMQUNFUl0gVGhlIHJlcGxhY2VyIHZhbHVlIHRvIHVzZS4gQnkgZGVmYXVsdFxuICAgKiBlcXVhbHMgdG8gYERFRkFVTFRfU0VDVVJFX1JFUExBQ0VSYFxuICAgKi9cblxuICAvKipcbiAgICogUGFyc2VzIHNpbmdsZSBydWxlIGZyb20gdGhlIGdpdmVuIEpTT04gZmlsZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xSdWxlfSBydWxlIFRoZSBydWxlIG1pZ2h0IGVpdGhlciBiZSByZXByZXNlbnRlZCBhcyBhIHNpbmdsZSBzdHJpbmdcbiAgICogb3IgYSBjb25maWd1cmF0aW9uIG9iamVjdFxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIHBhcnNpbmcgdGhlIHJ1bGVcbiAgICogQHJldHVybnMge1NlY3VyZVZhbHVlUHJlcHJvY2Vzc2luZ1J1bGV9IFRoZSBwYXJzZWQgcnVsZVxuICAgKi9cbiAgcGFyc2VSdWxlIChydWxlKSB7XG4gICAgY29uc3QgcmFpc2VFcnJvciA9IChtc2cpID0+IHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHtKU09OLnN0cmluZ2lmeShydWxlKX0gLT4gJHttc2d9YCk7XG4gICAgfTtcblxuICAgIGxldCBwYXR0ZXJuO1xuICAgIGxldCByZXBsYWNlciA9IERFRkFVTFRfUkVQTEFDRVI7XG4gICAgbGV0IGZsYWdzID0gWydnJ107XG4gICAgaWYgKF8uaXNTdHJpbmcocnVsZSkpIHtcbiAgICAgIGlmIChydWxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByYWlzZUVycm9yKCdUaGUgdmFsdWUgbXVzdCBub3QgYmUgZW1wdHknKTtcbiAgICAgIH1cbiAgICAgIHBhdHRlcm4gPSBgXFxcXGIke18uZXNjYXBlUmVnRXhwKHJ1bGUpfVxcXFxiYDtcbiAgICB9IGVsc2UgaWYgKF8uaXNQbGFpbk9iamVjdChydWxlKSkge1xuICAgICAgaWYgKF8uaGFzKHJ1bGUsICdwYXR0ZXJuJykpIHtcbiAgICAgICAgaWYgKCFfLmlzU3RyaW5nKHJ1bGUucGF0dGVybikgfHwgcnVsZS5wYXR0ZXJuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJhaXNlRXJyb3IoYFRoZSB2YWx1ZSBvZiAncGF0dGVybicgbXVzdCBiZSBhIHZhbGlkIG5vbi1lbXB0eSBzdHJpbmdgKTtcbiAgICAgICAgfVxuICAgICAgICBwYXR0ZXJuID0gcnVsZS5wYXR0ZXJuO1xuICAgICAgfSBlbHNlIGlmIChfLmhhcyhydWxlLCAndGV4dCcpKSB7XG4gICAgICAgIGlmICghXy5pc1N0cmluZyhydWxlLnRleHQpIHx8IHJ1bGUudGV4dC5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByYWlzZUVycm9yKGBUaGUgdmFsdWUgb2YgJ3RleHQnIG11c3QgYmUgYSB2YWxpZCBub24tZW1wdHkgc3RyaW5nYCk7XG4gICAgICAgIH1cbiAgICAgICAgcGF0dGVybiA9IGBcXFxcYiR7Xy5lc2NhcGVSZWdFeHAocnVsZS50ZXh0KX1cXFxcYmA7XG4gICAgICB9XG4gICAgICBpZiAoIXBhdHRlcm4pIHtcbiAgICAgICAgcmFpc2VFcnJvcihgTXVzdCBlaXRoZXIgaGF2ZSBhIGZpZWxkIG5hbWVkICdwYXR0ZXJuJyBvciAndGV4dCdgKTtcbiAgICAgIH1cblxuICAgICAgaWYgKF8uaGFzKHJ1bGUsICdmbGFncycpKSB7XG4gICAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvR3VpZGUvUmVndWxhcl9FeHByZXNzaW9ucyNBZHZhbmNlZF9zZWFyY2hpbmdfd2l0aF9mbGFnc18yXG4gICAgICAgIGZvciAoY29uc3QgZmxhZyBvZiBbJ2knLCAnZycsICdtJywgJ3MnLCAndScsICd5J10pIHtcbiAgICAgICAgICBpZiAoXy5pbmNsdWRlcyhydWxlLmZsYWdzLCBmbGFnKSkge1xuICAgICAgICAgICAgZmxhZ3MucHVzaChmbGFnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZmxhZ3MgPSBfLnVuaXEoZmxhZ3MpO1xuICAgICAgfVxuXG4gICAgICBpZiAoXy5pc1N0cmluZyhydWxlLnJlcGxhY2VyKSkge1xuICAgICAgICByZXBsYWNlciA9IHJ1bGUucmVwbGFjZXI7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHJhaXNlRXJyb3IoJ011c3QgZWl0aGVyIGJlIGEgc3RyaW5nIG9yIGFuIG9iamVjdCcpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXR0ZXJuOiBuZXcgUmVnRXhwKHBhdHRlcm4sIGZsYWdzLmpvaW4oJycpKSxcbiAgICAgICAgcmVwbGFjZXIsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJhaXNlRXJyb3IoZS5tZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgcnVsZXMgZnJvbSB0aGUgZ2l2ZW4gSlNPTiBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfFJ1bGVbXT59IHNvdXJjZSBUaGUgZnVsbCBwYXRoIHRvIHRoZSBKU09OIGZpbGUgY29udGFpbmluZyBzZWN1cmVcbiAgICogdmFsdWVzIHJlcGxhY2VtZW50IHJ1bGVzIG9yIHRoZSBydWxlcyB0aGVtc2VsdmVzIHJlcHJlc2VudGVkIGFzIGFuIGFycmF5XG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZm9ybWF0IG9mIHRoZSBzb3VyY2UgZmlsZSBpcyBpbnZhbGlkIG9yXG4gICAqIGl0IGRvZXMgbm90IGV4aXN0XG4gICAqIEByZXR1cm5zIHtBcnJheTxzdHJpbmc+fSBUaGUgbGlzdCBvZiBpc3N1ZXMgZm91bmQgd2hpbGUgcGFyc2luZyBlYWNoIHJ1bGUuXG4gICAqIEFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgaWYgbm8gcnVsZSBwYXJzaW5nIGlzc3VlcyB3ZXJlIGZvdW5kXG4gICAqL1xuICBhc3luYyBsb2FkUnVsZXMgKHNvdXJjZSkge1xuICAgIGxldCBydWxlcztcbiAgICBpZiAoXy5pc0FycmF5KHNvdXJjZSkpIHtcbiAgICAgIHJ1bGVzID0gc291cmNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIWF3YWl0IGZzLmV4aXN0cyhzb3VyY2UpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJyR7c291cmNlfScgZG9lcyBub3QgZXhpc3Qgb3IgaXMgbm90IGFjY2Vzc2libGVgKTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIHJ1bGVzID0gSlNPTi5wYXJzZShhd2FpdCBmcy5yZWFkRmlsZShzb3VyY2UsICd1dGY4JykpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3NvdXJjZX0nIG11c3QgYmUgYSB2YWxpZCBKU09OIGZpbGUuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICAgIGlmICghXy5pc0FycmF5KHJ1bGVzKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3NvdXJjZX0nIG11c3QgY29udGFpbiBhIHZhbGlkIEpTT04gYXJyYXlgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBpc3N1ZXMgPSBbXTtcbiAgICB0aGlzLl9ydWxlcyA9IFtdO1xuICAgIGZvciAoY29uc3QgcnVsZSBvZiBydWxlcykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdGhpcy5fcnVsZXMucHVzaCh0aGlzLnBhcnNlUnVsZShydWxlKSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGlzc3Vlcy5wdXNoKGUubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc3N1ZXM7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgc2VjdXJlIHZhbHVlcyByZXBsYWNlbWVudCBpbnNpZGUgdGhlIGdpdmVuIHN0cmluZ1xuICAgKiBhY2NvcmRpbmcgdG8gdGhlIHByZXZpb3VzbHkgbG9hZGVkIHJ1bGVzLiBObyByZXBsYWNlbWVudCBpcyBtYWRlXG4gICAqIGlmIHRoZXJlIGFyZSBubyBydWxlcyBvciB0aGUgZ2l2ZW4gdmFsdWUgaXMgbm90IGEgc3RyaW5nXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdHIgVGhlIHN0cmluZyB0byBtYWtlIHJlcGxhY2VtZW50cyBpblxuICAgKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgc3RyaW5nIHdpdGggcmVwbGFjZW1lbnRzIG1hZGVcbiAgICovXG4gIHByZXByb2Nlc3MgKHN0cikge1xuICAgIGlmICh0aGlzLl9ydWxlcy5sZW5ndGggPT09IDAgfHwgIV8uaXNTdHJpbmcoc3RyKSkge1xuICAgICAgcmV0dXJuIHN0cjtcbiAgICB9XG5cbiAgICBsZXQgcmVzdWx0ID0gc3RyO1xuICAgIGZvciAoY29uc3QgcnVsZSBvZiB0aGlzLl9ydWxlcykge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0LnJlcGxhY2UocnVsZS5wYXR0ZXJuLCBydWxlLnJlcGxhY2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuXG5jb25zdCBTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUiA9IG5ldyBTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzb3IoKTtcblxuZXhwb3J0IHsgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IsIFNlY3VyZVZhbHVlc1ByZXByb2Nlc3NvciB9O1xuZXhwb3J0IGRlZmF1bHQgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1I7XG4iXSwiZmlsZSI6ImxpYi9sb2ctaW50ZXJuYWwuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
135
+ exports.default = _default;
136
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2ctaW50ZXJuYWwuanMiXSwibmFtZXMiOlsiREVGQVVMVF9SRVBMQUNFUiIsIlNlY3VyZVZhbHVlc1ByZXByb2Nlc3NvciIsImNvbnN0cnVjdG9yIiwiX3J1bGVzIiwicnVsZXMiLCJwYXJzZVJ1bGUiLCJydWxlIiwicGF0dGVybiIsInJlcGxhY2VyIiwiZmxhZ3MiLCJfIiwiaXNTdHJpbmciLCJsZW5ndGgiLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJlc2NhcGVSZWdFeHAiLCJpc1BsYWluT2JqZWN0IiwiaGFzIiwidGV4dCIsImZsYWciLCJpbmNsdWRlcyIsInB1c2giLCJ1bmlxIiwiUmVnRXhwIiwiam9pbiIsImxvYWRSdWxlcyIsInNvdXJjZSIsImlzQXJyYXkiLCJmcyIsImV4aXN0cyIsInBhcnNlIiwicmVhZEZpbGUiLCJlIiwibWVzc2FnZSIsImlzc3VlcyIsInByZXByb2Nlc3MiLCJzdHIiLCJyZXN1bHQiLCJyZXBsYWNlIiwiU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUEsTUFBTUEsZ0JBQWdCLEdBQUcsWUFBekI7O0FBR0EsTUFBTUMsd0JBQU4sQ0FBK0I7QUFDN0JDLEVBQUFBLFdBQVcsR0FBSTtBQUNiLFNBQUtDLE1BQUwsR0FBYyxFQUFkO0FBQ0Q7O0FBTVEsTUFBTEMsS0FBSyxHQUFJO0FBQ1gsV0FBTyxLQUFLRCxNQUFaO0FBQ0Q7O0FBVURFLEVBQUFBLFNBQVMsQ0FBRUMsSUFBRixFQUFRO0FBQ2YsUUFBSUMsT0FBSjtBQUNBLFFBQUlDLFFBQVEsR0FBR1IsZ0JBQWY7QUFDQSxRQUFJUyxLQUFLLEdBQUcsQ0FBQyxHQUFELENBQVo7O0FBQ0EsUUFBSUMsZ0JBQUVDLFFBQUYsQ0FBV0wsSUFBWCxDQUFKLEVBQXNCO0FBQ3BCLFVBQUlBLElBQUksQ0FBQ00sTUFBTCxLQUFnQixDQUFwQixFQUF1QjtBQUNyQixjQUFNLElBQUlDLEtBQUosQ0FBVyxHQUFFQyxJQUFJLENBQUNDLFNBQUwsQ0FBZVQsSUFBZixDQUFxQixpQ0FBbEMsQ0FBTjtBQUNEOztBQUNEQyxNQUFBQSxPQUFPLEdBQUksTUFBS0csZ0JBQUVNLFlBQUYsQ0FBZVYsSUFBZixDQUFxQixLQUFyQztBQUNELEtBTEQsTUFLTyxJQUFJSSxnQkFBRU8sYUFBRixDQUFnQlgsSUFBaEIsQ0FBSixFQUEyQjtBQUNoQyxVQUFJSSxnQkFBRVEsR0FBRixDQUFNWixJQUFOLEVBQVksU0FBWixDQUFKLEVBQTRCO0FBQzFCLFlBQUksQ0FBQ0ksZ0JBQUVDLFFBQUYsQ0FBV0wsSUFBSSxDQUFDQyxPQUFoQixDQUFELElBQTZCRCxJQUFJLENBQUNDLE9BQUwsQ0FBYUssTUFBYixLQUF3QixDQUF6RCxFQUE0RDtBQUMxRCxnQkFBTSxJQUFJQyxLQUFKLENBQVcsR0FBRUMsSUFBSSxDQUFDQyxTQUFMLENBQWVULElBQWYsQ0FBcUIsNkRBQWxDLENBQU47QUFDRDs7QUFDREMsUUFBQUEsT0FBTyxHQUFHRCxJQUFJLENBQUNDLE9BQWY7QUFDRCxPQUxELE1BS08sSUFBSUcsZ0JBQUVRLEdBQUYsQ0FBTVosSUFBTixFQUFZLE1BQVosQ0FBSixFQUF5QjtBQUM5QixZQUFJLENBQUNJLGdCQUFFQyxRQUFGLENBQVdMLElBQUksQ0FBQ2EsSUFBaEIsQ0FBRCxJQUEwQmIsSUFBSSxDQUFDYSxJQUFMLENBQVVQLE1BQVYsS0FBcUIsQ0FBbkQsRUFBc0Q7QUFDcEQsZ0JBQU0sSUFBSUMsS0FBSixDQUFXLEdBQUVDLElBQUksQ0FBQ0MsU0FBTCxDQUFlVCxJQUFmLENBQXFCLDBEQUFsQyxDQUFOO0FBQ0Q7O0FBQ0RDLFFBQUFBLE9BQU8sR0FBSSxNQUFLRyxnQkFBRU0sWUFBRixDQUFlVixJQUFJLENBQUNhLElBQXBCLENBQTBCLEtBQTFDO0FBQ0Q7O0FBQ0QsVUFBSSxDQUFDWixPQUFMLEVBQWM7QUFDWixjQUFNLElBQUlNLEtBQUosQ0FBVyxHQUFFQyxJQUFJLENBQUNDLFNBQUwsQ0FBZVQsSUFBZixDQUFxQix3REFBbEMsQ0FBTjtBQUNEOztBQUVELFVBQUlJLGdCQUFFUSxHQUFGLENBQU1aLElBQU4sRUFBWSxPQUFaLENBQUosRUFBMEI7QUFFeEIsYUFBSyxNQUFNYyxJQUFYLElBQW1CLENBQUMsR0FBRCxFQUFNLEdBQU4sRUFBVyxHQUFYLEVBQWdCLEdBQWhCLEVBQXFCLEdBQXJCLEVBQTBCLEdBQTFCLENBQW5CLEVBQW1EO0FBQ2pELGNBQUlWLGdCQUFFVyxRQUFGLENBQVdmLElBQUksQ0FBQ0csS0FBaEIsRUFBdUJXLElBQXZCLENBQUosRUFBa0M7QUFDaENYLFlBQUFBLEtBQUssQ0FBQ2EsSUFBTixDQUFXRixJQUFYO0FBQ0Q7QUFDRjs7QUFDRFgsUUFBQUEsS0FBSyxHQUFHQyxnQkFBRWEsSUFBRixDQUFPZCxLQUFQLENBQVI7QUFDRDs7QUFFRCxVQUFJQyxnQkFBRUMsUUFBRixDQUFXTCxJQUFJLENBQUNFLFFBQWhCLENBQUosRUFBK0I7QUFDN0JBLFFBQUFBLFFBQVEsR0FBR0YsSUFBSSxDQUFDRSxRQUFoQjtBQUNEO0FBQ0YsS0E3Qk0sTUE2QkE7QUFDTCxZQUFNLElBQUlLLEtBQUosQ0FBVyxHQUFFQyxJQUFJLENBQUNDLFNBQUwsQ0FBZVQsSUFBZixDQUFxQiwwQ0FBbEMsQ0FBTjtBQUNEOztBQUVELFdBQU87QUFDTEMsTUFBQUEsT0FBTyxFQUFFLElBQUlpQixNQUFKLENBQVdqQixPQUFYLEVBQW9CRSxLQUFLLENBQUNnQixJQUFOLENBQVcsRUFBWCxDQUFwQixDQURKO0FBRUxqQixNQUFBQTtBQUZLLEtBQVA7QUFJRDs7QUFZYyxRQUFUa0IsU0FBUyxDQUFFQyxNQUFGLEVBQVU7QUFDdkIsUUFBSXZCLEtBQUo7O0FBQ0EsUUFBSU0sZ0JBQUVrQixPQUFGLENBQVVELE1BQVYsQ0FBSixFQUF1QjtBQUNyQnZCLE1BQUFBLEtBQUssR0FBR3VCLE1BQVI7QUFDRCxLQUZELE1BRU87QUFDTCxVQUFJLEVBQUMsTUFBTUUsWUFBR0MsTUFBSCxDQUFVSCxNQUFWLENBQVAsQ0FBSixFQUE4QjtBQUM1QixjQUFNLElBQUlkLEtBQUosQ0FBVyxJQUFHYyxNQUFPLHVDQUFyQixDQUFOO0FBQ0Q7O0FBQ0QsVUFBSTtBQUNGdkIsUUFBQUEsS0FBSyxHQUFHVSxJQUFJLENBQUNpQixLQUFMLENBQVcsTUFBTUYsWUFBR0csUUFBSCxDQUFZTCxNQUFaLEVBQW9CLE1BQXBCLENBQWpCLENBQVI7QUFDRCxPQUZELENBRUUsT0FBT00sQ0FBUCxFQUFVO0FBQ1YsY0FBTSxJQUFJcEIsS0FBSixDQUFXLElBQUdjLE1BQU8sZ0RBQStDTSxDQUFDLENBQUNDLE9BQVEsRUFBOUUsQ0FBTjtBQUNEOztBQUNELFVBQUksQ0FBQ3hCLGdCQUFFa0IsT0FBRixDQUFVeEIsS0FBVixDQUFMLEVBQXVCO0FBQ3JCLGNBQU0sSUFBSVMsS0FBSixDQUFXLElBQUdjLE1BQU8sbUNBQXJCLENBQU47QUFDRDtBQUNGOztBQUVELFVBQU1RLE1BQU0sR0FBRyxFQUFmO0FBQ0EsU0FBS2hDLE1BQUwsR0FBYyxFQUFkOztBQUNBLFNBQUssTUFBTUcsSUFBWCxJQUFtQkYsS0FBbkIsRUFBMEI7QUFDeEIsVUFBSTtBQUNGLGFBQUtELE1BQUwsQ0FBWW1CLElBQVosQ0FBaUIsS0FBS2pCLFNBQUwsQ0FBZUMsSUFBZixDQUFqQjtBQUNELE9BRkQsQ0FFRSxPQUFPMkIsQ0FBUCxFQUFVO0FBQ1ZFLFFBQUFBLE1BQU0sQ0FBQ2IsSUFBUCxDQUFZVyxDQUFDLENBQUNDLE9BQWQ7QUFDRDtBQUNGOztBQUNELFdBQU9DLE1BQVA7QUFDRDs7QUFVREMsRUFBQUEsVUFBVSxDQUFFQyxHQUFGLEVBQU87QUFDZixRQUFJLEtBQUtsQyxNQUFMLENBQVlTLE1BQVosS0FBdUIsQ0FBdkIsSUFBNEIsQ0FBQ0YsZ0JBQUVDLFFBQUYsQ0FBVzBCLEdBQVgsQ0FBakMsRUFBa0Q7QUFDaEQsYUFBT0EsR0FBUDtBQUNEOztBQUVELFFBQUlDLE1BQU0sR0FBR0QsR0FBYjs7QUFDQSxTQUFLLE1BQU0vQixJQUFYLElBQW1CLEtBQUtILE1BQXhCLEVBQWdDO0FBQzlCbUMsTUFBQUEsTUFBTSxHQUFHQSxNQUFNLENBQUNDLE9BQVAsQ0FBZWpDLElBQUksQ0FBQ0MsT0FBcEIsRUFBNkJELElBQUksQ0FBQ0UsUUFBbEMsQ0FBVDtBQUNEOztBQUNELFdBQU84QixNQUFQO0FBQ0Q7O0FBL0g0Qjs7O0FBa0kvQixNQUFNRSwwQkFBMEIsR0FBRyxJQUFJdkMsd0JBQUosRUFBbkM7O2VBR2V1QywwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBmcyBmcm9tICcuL2ZzJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbmNvbnN0IERFRkFVTFRfUkVQTEFDRVIgPSAnKipTRUNVUkUqKic7XG5cblxuY2xhc3MgU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc29yIHtcbiAgY29uc3RydWN0b3IgKCkge1xuICAgIHRoaXMuX3J1bGVzID0gW107XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMge0FycmF5PFNlY3VyZVZhbHVlUHJlcHJvY2Vzc2luZ1J1bGU+fSBUaGUgbGlzdCBvZiBzdWNjZXNzZnVsbHlcbiAgICogcGFyc2VkIHByZXByb2Nlc3NpbmcgcnVsZXNcbiAgICovXG4gIGdldCBydWxlcyAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3J1bGVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBhcnNlcyBzaW5nbGUgcnVsZSBmcm9tIHRoZSBnaXZlbiBKU09OIGZpbGVcbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd8UnVsZX0gcnVsZSBUaGUgcnVsZSBtaWdodCBlaXRoZXIgYmUgcmVwcmVzZW50ZWQgYXMgYSBzaW5nbGUgc3RyaW5nXG4gICAqIG9yIGEgY29uZmlndXJhdGlvbiBvYmplY3RcbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBwYXJzaW5nIHRoZSBydWxlXG4gICAqIEByZXR1cm5zIHtTZWN1cmVWYWx1ZVByZXByb2Nlc3NpbmdSdWxlfSBUaGUgcGFyc2VkIHJ1bGVcbiAgICovXG4gIHBhcnNlUnVsZSAocnVsZSkge1xuICAgIGxldCBwYXR0ZXJuO1xuICAgIGxldCByZXBsYWNlciA9IERFRkFVTFRfUkVQTEFDRVI7XG4gICAgbGV0IGZsYWdzID0gWydnJ107XG4gICAgaWYgKF8uaXNTdHJpbmcocnVsZSkpIHtcbiAgICAgIGlmIChydWxlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7SlNPTi5zdHJpbmdpZnkocnVsZSl9IC0+IFRoZSB2YWx1ZSBtdXN0IG5vdCBiZSBlbXB0eWApO1xuICAgICAgfVxuICAgICAgcGF0dGVybiA9IGBcXFxcYiR7Xy5lc2NhcGVSZWdFeHAocnVsZSl9XFxcXGJgO1xuICAgIH0gZWxzZSBpZiAoXy5pc1BsYWluT2JqZWN0KHJ1bGUpKSB7XG4gICAgICBpZiAoXy5oYXMocnVsZSwgJ3BhdHRlcm4nKSkge1xuICAgICAgICBpZiAoIV8uaXNTdHJpbmcocnVsZS5wYXR0ZXJuKSB8fCBydWxlLnBhdHRlcm4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0pTT04uc3RyaW5naWZ5KHJ1bGUpfSAtPiBUaGUgdmFsdWUgb2YgJ3BhdHRlcm4nIG11c3QgYmUgYSB2YWxpZCBub24tZW1wdHkgc3RyaW5nYCk7XG4gICAgICAgIH1cbiAgICAgICAgcGF0dGVybiA9IHJ1bGUucGF0dGVybjtcbiAgICAgIH0gZWxzZSBpZiAoXy5oYXMocnVsZSwgJ3RleHQnKSkge1xuICAgICAgICBpZiAoIV8uaXNTdHJpbmcocnVsZS50ZXh0KSB8fCBydWxlLnRleHQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0pTT04uc3RyaW5naWZ5KHJ1bGUpfSAtPiBUaGUgdmFsdWUgb2YgJ3RleHQnIG11c3QgYmUgYSB2YWxpZCBub24tZW1wdHkgc3RyaW5nYCk7XG4gICAgICAgIH1cbiAgICAgICAgcGF0dGVybiA9IGBcXFxcYiR7Xy5lc2NhcGVSZWdFeHAocnVsZS50ZXh0KX1cXFxcYmA7XG4gICAgICB9XG4gICAgICBpZiAoIXBhdHRlcm4pIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0pTT04uc3RyaW5naWZ5KHJ1bGUpfSAtPiBNdXN0IGVpdGhlciBoYXZlIGEgZmllbGQgbmFtZWQgJ3BhdHRlcm4nIG9yICd0ZXh0J2ApO1xuICAgICAgfVxuXG4gICAgICBpZiAoXy5oYXMocnVsZSwgJ2ZsYWdzJykpIHtcbiAgICAgICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9SZWd1bGFyX0V4cHJlc3Npb25zI0FkdmFuY2VkX3NlYXJjaGluZ193aXRoX2ZsYWdzXzJcbiAgICAgICAgZm9yIChjb25zdCBmbGFnIG9mIFsnaScsICdnJywgJ20nLCAncycsICd1JywgJ3knXSkge1xuICAgICAgICAgIGlmIChfLmluY2x1ZGVzKHJ1bGUuZmxhZ3MsIGZsYWcpKSB7XG4gICAgICAgICAgICBmbGFncy5wdXNoKGZsYWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmbGFncyA9IF8udW5pcShmbGFncyk7XG4gICAgICB9XG5cbiAgICAgIGlmIChfLmlzU3RyaW5nKHJ1bGUucmVwbGFjZXIpKSB7XG4gICAgICAgIHJlcGxhY2VyID0gcnVsZS5yZXBsYWNlcjtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke0pTT04uc3RyaW5naWZ5KHJ1bGUpfSAtPiBNdXN0IGVpdGhlciBiZSBhIHN0cmluZyBvciBhbiBvYmplY3RgKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGF0dGVybjogbmV3IFJlZ0V4cChwYXR0ZXJuLCBmbGFncy5qb2luKCcnKSksXG4gICAgICByZXBsYWNlcixcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIHJ1bGVzIGZyb20gdGhlIGdpdmVuIEpTT04gZmlsZVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXXxSdWxlW119IHNvdXJjZSBUaGUgZnVsbCBwYXRoIHRvIHRoZSBKU09OIGZpbGUgY29udGFpbmluZyBzZWN1cmVcbiAgICogdmFsdWVzIHJlcGxhY2VtZW50IHJ1bGVzIG9yIHRoZSBydWxlcyB0aGVtc2VsdmVzIHJlcHJlc2VudGVkIGFzIGFuIGFycmF5XG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZm9ybWF0IG9mIHRoZSBzb3VyY2UgZmlsZSBpcyBpbnZhbGlkIG9yXG4gICAqIGl0IGRvZXMgbm90IGV4aXN0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZ1tdPn0gVGhlIGxpc3Qgb2YgaXNzdWVzIGZvdW5kIHdoaWxlIHBhcnNpbmcgZWFjaCBydWxlLlxuICAgKiBBbiBlbXB0eSBsaXN0IGlzIHJldHVybmVkIGlmIG5vIHJ1bGUgcGFyc2luZyBpc3N1ZXMgd2VyZSBmb3VuZFxuICAgKi9cbiAgYXN5bmMgbG9hZFJ1bGVzIChzb3VyY2UpIHtcbiAgICBsZXQgcnVsZXM7XG4gICAgaWYgKF8uaXNBcnJheShzb3VyY2UpKSB7XG4gICAgICBydWxlcyA9IHNvdXJjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFhd2FpdCBmcy5leGlzdHMoc291cmNlKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3NvdXJjZX0nIGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCBhY2Nlc3NpYmxlYCk7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBydWxlcyA9IEpTT04ucGFyc2UoYXdhaXQgZnMucmVhZEZpbGUoc291cmNlLCAndXRmOCcpKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtzb3VyY2V9JyBtdXN0IGJlIGEgdmFsaWQgSlNPTiBmaWxlLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgICBpZiAoIV8uaXNBcnJheShydWxlcykpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAnJHtzb3VyY2V9JyBtdXN0IGNvbnRhaW4gYSB2YWxpZCBKU09OIGFycmF5YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaXNzdWVzID0gW107XG4gICAgdGhpcy5fcnVsZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgcnVsZXMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuX3J1bGVzLnB1c2godGhpcy5wYXJzZVJ1bGUocnVsZSkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBpc3N1ZXMucHVzaChlLm1lc3NhZ2UpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNzdWVzO1xuICB9XG5cbiAgLyoqXG4gICAqIFBlcmZvcm1zIHNlY3VyZSB2YWx1ZXMgcmVwbGFjZW1lbnQgaW5zaWRlIHRoZSBnaXZlbiBzdHJpbmdcbiAgICogYWNjb3JkaW5nIHRvIHRoZSBwcmV2aW91c2x5IGxvYWRlZCBydWxlcy4gTm8gcmVwbGFjZW1lbnQgaXMgbWFkZVxuICAgKiBpZiB0aGVyZSBhcmUgbm8gcnVsZXMgb3IgdGhlIGdpdmVuIHZhbHVlIGlzIG5vdCBhIHN0cmluZ1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyIFRoZSBzdHJpbmcgdG8gbWFrZSByZXBsYWNlbWVudHMgaW5cbiAgICogQHJldHVybnMge3N0cmluZ30gVGhlIHN0cmluZyB3aXRoIHJlcGxhY2VtZW50cyBtYWRlXG4gICAqL1xuICBwcmVwcm9jZXNzIChzdHIpIHtcbiAgICBpZiAodGhpcy5fcnVsZXMubGVuZ3RoID09PSAwIHx8ICFfLmlzU3RyaW5nKHN0cikpIHtcbiAgICAgIHJldHVybiBzdHI7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdCA9IHN0cjtcbiAgICBmb3IgKGNvbnN0IHJ1bGUgb2YgdGhpcy5fcnVsZXMpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5yZXBsYWNlKHJ1bGUucGF0dGVybiwgcnVsZS5yZXBsYWNlcik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuY29uc3QgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IgPSBuZXcgU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc29yKCk7XG5cbmV4cG9ydCB7IFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SLCBTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzb3IgfTtcbmV4cG9ydCBkZWZhdWx0IFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SO1xuXG4vKipcbiAqIEB0eXBlZGVmIFJ1bGVcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwYXR0ZXJuIEEgdmFsaWQgUmVnRXhwIHBhdHRlcm4gdG8gYmUgcmVwbGFjZWRcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0ZXh0IEEgdGV4dCBtYXRjaCB0byByZXBsYWNlLiBFaXRoZXIgdGhpcyBwcm9wZXJ0eSBvciB0aGVcbiAqIGFib3ZlIG9uZSBtdXN0IGJlIHByb3ZpZGVkLiBgcGF0dGVybmAgaGFzIHByaW9yaXR5IG92ZXIgYHRleHRgIGlmIGJvdGggYXJlIHByb3ZpZGVkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtmbGFnc10gUmVndWxhciBleHByZXNzaW9uIGZsYWdzIGZvciB0aGUgZ2l2ZW4gcGF0dGVybi5cbiAqIFN1cHBvcnRlZCBmbGFnIGFyZSB0aGUgc2FtZSBhcyBmb3IgdGhlIHN0YW5kYXJkIEphdmFTY3JpcHQgUmVnRXhwIGNvbnN0cnVjdG9yOlxuICogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9HdWlkZS9SZWd1bGFyX0V4cHJlc3Npb25zI0FkdmFuY2VkX3NlYXJjaGluZ193aXRoX2ZsYWdzXzJcbiAqIFRoZSAnZycgKGdsb2JhbCBtYXRjaGluZykgaXMgYWx3YXlzIGVuYWJsZWQgdGhvdWdoLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZXBsYWNlcl0gVGhlIHJlcGxhY2VyIHZhbHVlIHRvIHVzZS4gQnkgZGVmYXVsdFxuICogZXF1YWxzIHRvIGBERUZBVUxUX1NFQ1VSRV9SRVBMQUNFUmBcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIFNlY3VyZVZhbHVlUHJlcHJvY2Vzc2luZ1J1bGVcbiAqIEBwcm9wZXJ0eSB7UmVnRXhwfSBwYXR0ZXJuIFRoZSBwYXJzZWQgcGF0dGVybiB3aGljaCBpcyBnb2luZyB0byBiZSB1c2VkIGZvciByZXBsYWNlbWVudFxuICogQHByb3BlcnR5IHtzdHJpbmd9IFtyZXBsYWNlcl0gVGhlIHJlcGxhY2VyIHZhbHVlIHRvIHVzZS4gQnkgZGVmYXVsdFxuICogZXF1YWxzIHRvIGBERUZBVUxUX1NFQ1VSRV9SRVBMQUNFUmBcbiAqL1xuIl19
@@ -0,0 +1,3 @@
1
+ export default log;
2
+ declare let log: import("@appium/types").AppiumLogger;
3
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../lib/logger.js"],"names":[],"mappings":";AAEA,sDAA+B"}
@@ -11,7 +11,5 @@ var _logging = require("./logging");
11
11
 
12
12
  let log = (0, _logging.getLogger)('Support');
13
13
  var _default = log;
14
- exports.default = _default;require('source-map-support').install();
15
-
16
-
17
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwibmFtZXMiOlsibG9nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxJQUFJQSxHQUFHLEdBQUcsd0JBQVUsU0FBVixDQUFWO2VBRWVBLEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tICcuL2xvZ2dpbmcnO1xuXG5sZXQgbG9nID0gZ2V0TG9nZ2VyKCdTdXBwb3J0Jyk7XG5cbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdLCJmaWxlIjoibGliL2xvZ2dlci5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
14
+ exports.default = _default;
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2dnZXIuanMiXSwibmFtZXMiOlsibG9nIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFFQSxJQUFJQSxHQUFHLEdBQUcsd0JBQVUsU0FBVixDQUFWO2VBRWVBLEciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRMb2dnZXIgfSBmcm9tICcuL2xvZ2dpbmcnO1xuXG5sZXQgbG9nID0gZ2V0TG9nZ2VyKCdTdXBwb3J0Jyk7XG5cbmV4cG9ydCBkZWZhdWx0IGxvZztcbiJdfQ==
@@ -0,0 +1,45 @@
1
+ export default log;
2
+ export type LoadResult = {
3
+ /**
4
+ * The list of rule parsing issues (one item per rule).
5
+ * Rules with issues are skipped. An empty list is returned if no parsing issues exist.
6
+ */
7
+ issues: string[];
8
+ /**
9
+ * The list of successfully loaded
10
+ * replacement rules. The list could be empty if no rules were loaded.
11
+ */
12
+ rules: import('./log-internal').SecureValuePreprocessingRule[];
13
+ };
14
+ export type Prefix = import('@appium/types').Prefix;
15
+ export type AppiumLogger = import('@appium/types').AppiumLogger;
16
+ export const log: import("@appium/types").AppiumLogger;
17
+ export function patchLogger(logger: any): void;
18
+ /**
19
+ *
20
+ * @param {Prefix?} prefix
21
+ * @returns {AppiumLogger}
22
+ */
23
+ export function getLogger(prefix?: Prefix | null): AppiumLogger;
24
+ /**
25
+ * @typedef LoadResult
26
+ * @property {string[]} issues The list of rule parsing issues (one item per rule).
27
+ * Rules with issues are skipped. An empty list is returned if no parsing issues exist.
28
+ * @property {import('./log-internal').SecureValuePreprocessingRule[]} rules The list of successfully loaded
29
+ * replacement rules. The list could be empty if no rules were loaded.
30
+ */
31
+ /**
32
+ * Loads the JSON file containing secure values replacement rules.
33
+ * This might be necessary to hide sensitive values that may possibly
34
+ * appear in Appium logs.
35
+ * Each call to this method replaces the previously loaded rules if any existed.
36
+ *
37
+ * @param {string|string[]|import('./log-internal').Rule[]} rulesJsonPath The full path to the JSON file containing
38
+ * the replacement rules. Each rule could either be a string to be replaced
39
+ * or an object with predefined properties. See the `Rule` type definition in
40
+ * `log-internals.js` to get more details on its format.
41
+ * @throws {Error} If the given file cannot be loaded
42
+ * @returns {Promise<LoadResult>}
43
+ */
44
+ export function loadSecureValuesPreprocessingRules(rulesJsonPath: string | string[] | import('./log-internal').Rule[]): Promise<LoadResult>;
45
+ //# sourceMappingURL=logging.d.ts.map
@@ -0,0 +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"}
@@ -42,8 +42,8 @@ function patchLogger(logger) {
42
42
  }
43
43
 
44
44
  function _getLogger() {
45
- const testingMode = parseInt(process.env._TESTING, 10) === 1;
46
- const forceLogMode = parseInt(process.env._FORCE_LOGS, 10) === 1;
45
+ const testingMode = process.env._TESTING === '1';
46
+ const forceLogMode = process.env._FORCE_LOGS === '1';
47
47
  const usingGlobalLog = !!global._global_npmlog;
48
48
  let logger;
49
49
 
@@ -59,20 +59,19 @@ function _getLogger() {
59
59
  }
60
60
 
61
61
  function getActualPrefix(prefix, logTimestamp = false) {
62
- let actualPrefix = _lodash.default.isFunction(prefix) ? prefix() : prefix;
62
+ var _ref;
63
63
 
64
- if (logTimestamp) {
65
- actualPrefix = `[${(0, _moment.default)().format(PREFIX_TIMESTAMP_FORMAT)}] ${actualPrefix}`;
66
- }
67
-
68
- return actualPrefix;
64
+ const result = (_ref = _lodash.default.isFunction(prefix) ? prefix() : prefix) !== null && _ref !== void 0 ? _ref : '';
65
+ return logTimestamp ? `[${(0, _moment.default)().format(PREFIX_TIMESTAMP_FORMAT)}] ${result}` : result;
69
66
  }
70
67
 
71
68
  function getLogger(prefix = null) {
72
69
  let [logger, usingGlobalLog] = _getLogger();
73
70
 
74
71
  let wrappedLogger = {
75
- unwrap: () => logger
72
+ unwrap: () => logger,
73
+ levels: NPM_LEVELS,
74
+ prefix
76
75
  };
77
76
  Object.defineProperty(wrappedLogger, 'level', {
78
77
  get() {
@@ -86,11 +85,11 @@ function getLogger(prefix = null) {
86
85
  enumerable: true,
87
86
  configurable: true
88
87
  });
89
- const logTimestamp = parseInt(process.env._LOG_TIMESTAMP, 10) === 1;
88
+ const logTimestamp = process.env._LOG_TIMESTAMP === '1';
90
89
 
91
90
  for (const level of NPM_LEVELS) {
92
91
  wrappedLogger[level] = function (...args) {
93
- const actualPrefix = getActualPrefix(prefix, logTimestamp);
92
+ const actualPrefix = getActualPrefix(this.prefix, logTimestamp);
94
93
 
95
94
  for (const arg of args) {
96
95
  const out = _lodash.default.isError(arg) && arg.stack ? arg.stack : `${arg}`;
@@ -112,7 +111,6 @@ function getLogger(prefix = null) {
112
111
  wrappedLogger.level = 'verbose';
113
112
  }
114
113
 
115
- wrappedLogger.levels = NPM_LEVELS;
116
114
  return wrappedLogger;
117
115
  }
118
116
 
@@ -127,7 +125,5 @@ async function loadSecureValuesPreprocessingRules(rulesJsonPath) {
127
125
  const log = getLogger();
128
126
  exports.log = log;
129
127
  var _default = log;
130
- exports.default = _default;require('source-map-support').install();
131
-
132
-
133
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dnaW5nLmpzIl0sIm5hbWVzIjpbIk5QTV9MRVZFTFMiLCJNQVhfTE9HX1JFQ09SRFNfQ09VTlQiLCJQUkVGSVhfVElNRVNUQU1QX0ZPUk1BVCIsIm1vY2tMb2ciLCJsZXZlbCIsInBhdGNoTG9nZ2VyIiwibG9nZ2VyIiwiZGVidWciLCJhZGRMZXZlbCIsImZnIiwiYmciLCJfZ2V0TG9nZ2VyIiwidGVzdGluZ01vZGUiLCJwYXJzZUludCIsInByb2Nlc3MiLCJlbnYiLCJfVEVTVElORyIsImZvcmNlTG9nTW9kZSIsIl9GT1JDRV9MT0dTIiwidXNpbmdHbG9iYWxMb2ciLCJnbG9iYWwiLCJfZ2xvYmFsX25wbWxvZyIsIm5wbWxvZyIsIm1heFJlY29yZFNpemUiLCJnZXRBY3R1YWxQcmVmaXgiLCJwcmVmaXgiLCJsb2dUaW1lc3RhbXAiLCJhY3R1YWxQcmVmaXgiLCJfIiwiaXNGdW5jdGlvbiIsImZvcm1hdCIsImdldExvZ2dlciIsIndyYXBwZWRMb2dnZXIiLCJ1bndyYXAiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldCIsInNldCIsIm5ld1ZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIl9MT0dfVElNRVNUQU1QIiwiYXJncyIsImFyZyIsIm91dCIsImlzRXJyb3IiLCJzdGFjayIsImxpbmUiLCJzcGxpdCIsInVubGVha2VkTGluZSIsIlNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SIiwicHJlcHJvY2VzcyIsImVycm9yQW5kVGhyb3ciLCJlcnIiLCJlcnJvciIsIkVycm9yIiwibGV2ZWxzIiwibG9hZFNlY3VyZVZhbHVlc1ByZXByb2Nlc3NpbmdSdWxlcyIsInJ1bGVzSnNvblBhdGgiLCJpc3N1ZXMiLCJsb2FkUnVsZXMiLCJydWxlcyIsImNsb25lRGVlcCIsImxvZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsTUFBTUEsVUFBVSxHQUFHLENBQUMs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REMsYUFBbkQsRUFBa0U7QUFDaEUsUUFBTUMsTUFBTSxHQUFHLE1BQU1ULHFCQUEyQlUsU0FBM0IsQ0FBcUNGLGFBQXJDLENBQXJCO0FBQ0EsU0FBTztBQUNMQyxJQUFBQSxNQURLO0FBRUxFLElBQUFBLEtBQUssRUFBRWpDLGdCQUFFa0MsU0FBRixDQUFZWixxQkFBMkJXLEtBQXZDO0FBRkYsR0FBUDtBQUlEOztBQUdELE1BQU1FLEdBQUcsR0FBR2hDLFNBQVMsRUFBckI7O2VBR2VnQyxHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5wbWxvZyBmcm9tICducG1sb2cnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHVubGVha1N0cmluZyB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IgZnJvbSAnLi9sb2ctaW50ZXJuYWwnO1xuXG4vLyBsZXZlbHMgdGhhdCBhcmUgYXZhaWxhYmxlIGZyb20gYG5wbWxvZ2BcbmNvbnN0IE5QTV9MRVZFTFMgPSBbJ3NpbGx5JywgJ3ZlcmJvc2UnLCAnZGVidWcnLCAnaW5mbycsICdodHRwJywgJ3dhcm4nLCAnZXJyb3InXTtcbmNvbnN0IE1BWF9MT0dfUkVDT1JEU19DT1VOVCA9IDMwMDA7XG5cbmNvbnN0IFBSRUZJWF9USU1FU1RBTVBfRk9STUFUID0gJ0hILW1tLXNzOlNTUyc7XG5cbi8vIG1vY2sgbG9nIG9iamVjdCB1c2VkIGluIHRlc3RpbmcgbW9kZVxubGV0IG1vY2tMb2cgPSB7fTtcbmZvciAobGV0IGxldmVsIG9mIE5QTV9MRVZFTFMpIHtcbiAgbW9ja0xvZ1tsZXZlbF0gPSAoKSA9PiB7fTtcbn1cblxuZnVuY3Rpb24gcGF0Y2hMb2dnZXIgKGxvZ2dlcikge1xuICBpZiAoIWxvZ2dlci5kZWJ1Zykge1xuICAgIGxvZ2dlci5hZGRMZXZlbCgnZGVidWcnLCAxMDAwLCB7IGZnOiAnYmx1ZScsIGJnOiAnYmxhY2snIH0sICdkYnVnJyk7XG4gIH1cbn1cblxuZnVuY3Rpb24gX2dldExvZ2dlciAoKSB7XG4gIC8vIGNoZWNrIGlmIHRoZSB1c2VyIHNldCB0aGUgYF9URVNUSU5HYCBvciBgX0ZPUkNFX0xPR1NgIGZsYWdcbiAgY29uc3QgdGVzdGluZ01vZGUgPSBwYXJzZUludChwcm9jZXNzLmVudi5fVEVTVElORywgMTApID09PSAxO1xuICBjb25zdCBmb3JjZUxvZ01vZGUgPSBwYXJzZUludChwcm9jZXNzLmVudi5fRk9SQ0VfTE9HUywgMTApID09PSAxO1xuXG4gIC8vIGlmIGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgaXMgYSBsb2dnZXIgaW5zdGFuY2UgdGhhdCBpcyBhbHJlYWR5IGFyb3VuZCxcbiAgLy8gaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHQgbyB1c2UgdGhhdFxuICBjb25zdCB1c2luZ0dsb2JhbExvZyA9ICEhZ2xvYmFsLl9nbG9iYWxfbnBtbG9nO1xuICBsZXQgbG9nZ2VyO1xuICBpZiAodGVzdGluZ01vZGUgJiYgIWZvcmNlTG9nTW9kZSkge1xuICAgIC8vIGluIHRlc3RpbmcgbW9kZSwgdXNlIGEgbW9jayBsb2dnZXIgb2JqZWN0IHRoYXQgd2UgY2FuIHF1ZXJ5XG4gICAgbG9nZ2VyID0gbW9ja0xvZztcbiAgfSBlbHNlIHtcbiAgICAvLyBvdGhlcndpc2UsIGVpdGhlciB1c2UgdGhlIGdsb2JhbCwgb3IgYSBuZXcgYG5wbWxvZ2Agb2JqZWN0XG4gICAgbG9nZ2VyID0gZ2xvYmFsLl9nbG9iYWxfbnBtbG9nIHx8IG5wbWxvZztcbiAgICAvLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxMDAwMCwgd2hpY2ggY2F1c2VzIGV4Y2Vzc2l2ZSBtZW1vcnkgdXNhZ2VcbiAgICBsb2dnZXIubWF4UmVjb3JkU2l6ZSA9IE1BWF9MT0dfUkVDT1JEU19DT1VOVDtcbiAgfVxuICBwYXRjaExvZ2dlcihsb2dnZXIpO1xuICByZXR1cm4gW2xvZ2dlciwgdXNpbmdHbG9iYWxMb2ddO1xufVxuXG5mdW5jdGlvbiBnZXRBY3R1YWxQcmVmaXggKHByZWZpeCwgbG9nVGltZXN0YW1wID0gZmFsc2UpIHtcbiAgbGV0IGFjdHVhbFByZWZpeCA9IF8uaXNGdW5jdGlvbihwcmVmaXgpID8gcHJlZml4KCkgOiBwcmVmaXg7XG4gIGlmIChsb2dUaW1lc3RhbXApIHtcbiAgICBhY3R1YWxQcmVmaXggPSBgWyR7bW9tZW50KCkuZm9ybWF0KFBSRUZJWF9USU1FU1RBTVBfRk9STUFUKX1dICR7YWN0dWFsUHJlZml4fWA7XG4gIH1cbiAgcmV0dXJuIGFjdHVhbFByZWZpeDtcbn1cblxuZnVuY3Rpb24gZ2V0TG9nZ2VyIChwcmVmaXggPSBudWxsKSB7XG4gIGxldCBbbG9nZ2VyLCB1c2luZ0dsb2JhbExvZ10gPSBfZ2V0TG9nZ2VyKCk7XG5cbiAgLy8gd3JhcCB0aGUgbG9nZ2VyIHNvIHRoYXQgd2UgY2FuIGNhdGNoIGFuZCBtb2RpZnkgYW55IGxvZ2dpbmdcbiAgbGV0IHdyYXBwZWRMb2dnZXIgPSB7dW53cmFwOiAoKSA9PiBsb2dnZXJ9O1xuXG4gIC8vIGFsbG93IGFjY2VzcyB0byB0aGUgbGV2ZWwgb2YgdGhlIHVuZGVybHlpbmcgbG9nZ2VyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3cmFwcGVkTG9nZ2VyLCAnbGV2ZWwnLCB7XG4gICAgZ2V0ICgpIHtcbiAgICAgIHJldHVybiBsb2dnZXIubGV2ZWw7XG4gICAgfSxcbiAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICBsb2dnZXIubGV2ZWwgPSBuZXdWYWx1ZTtcbiAgICB9LFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xuXG4gIGNvbnN0IGxvZ1RpbWVzdGFtcCA9IHBhcnNlSW50KHByb2Nlc3MuZW52Ll9MT0dfVElNRVNUQU1QLCAxMCkgPT09IDE7XG5cbiAgLy8gYWRkIGFsbCB0aGUgbGV2ZWxzIGZyb20gYG5wbWxvZ2AsIGFuZCBtYXAgdG8gdGhlIHVuZGVybHlpbmcgbG9nZ2VyXG4gIGZvciAoY29uc3QgbGV2ZWwgb2YgTlBNX0xFVkVMUykge1xuICAgIHdyYXBwZWRMb2dnZXJbbGV2ZWxdID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgIGNvbnN0IGFjdHVhbFByZWZpeCA9IGdldEFjdHVhbFByZWZpeChwcmVmaXgsIGxvZ1RpbWVzdGFtcCk7XG4gICAgICBmb3IgKGNvbnN0IGFyZyBvZiBhcmdzKSB7XG4gICAgICAgIGNvbnN0IG91dCA9IChfLmlzRXJyb3IoYXJnKSAmJiBhcmcuc3RhY2spID8gYXJnLnN0YWNrIDogYCR7YXJnfWA7XG4gICAgICAgIGZvciAoY29uc3QgbGluZSBvZiBvdXQuc3BsaXQoJ1xcbicpKSB7XG4gICAgICAgICAgLy8gaXQgaXMgbmVjZXNzYXJ5IHRvIHVubGVhayBlYWNoIGxpbmUgYmVjYXVzZSBgc3BsaXRgIGNhbGxcbiAgICAgICAgICAvLyBjcmVhdGVzIFwidmlld3NcIiB0byB0aGUgb3JpZ2luYWwgc3RyaW5nIGFzIHdlbGwgYXMgdGhlIGBzdWJzdHJpbmdgIG9uZVxuICAgICAgICAgIGNvbnN0IHVubGVha2VkTGluZSA9IHVubGVha1N0cmluZyhsaW5lKTtcbiAgICAgICAgICBsb2dnZXJbbGV2ZWxdKGFjdHVhbFByZWZpeCwgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IucHJlcHJvY2Vzcyh1bmxlYWtlZExpbmUpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cbiAgLy8gYWRkIG1ldGhvZCB0byBsb2cgYW4gZXJyb3IsIGFuZCB0aHJvdyBpdCwgZm9yIGNvbnZlbmllbmNlXG4gIHdyYXBwZWRMb2dnZXIuZXJyb3JBbmRUaHJvdyA9IGZ1bmN0aW9uIChlcnIpIHtcbiAgICB0aGlzLmVycm9yKGVycik7XG4gICAgLy8gbWFrZSBzdXJlIHdlIGhhdmUgYW4gYEVycm9yYCBvYmplY3QuIFdyYXAgaWYgbmVjZXNzYXJ5XG4gICAgdGhyb3cgKF8uaXNFcnJvcihlcnIpID8gZXJyIDogbmV3IEVycm9yKHVubGVha1N0cmluZyhlcnIpKSk7XG4gIH07XG4gIGlmICghdXNpbmdHbG9iYWxMb2cpIHtcbiAgICAvLyBpZiB3ZSdyZSBub3QgdXNpbmcgYSBnbG9iYWwgbG9nIHNwZWNpZmllZCBmcm9tIHNvbWUgdG9wLWxldmVsIHBhY2thZ2UsXG4gICAgLy8gc2V0IHRoZSBsb2cgbGV2ZWwgdG8gYSBkZWZhdWx0IG9mIHZlcmJvc2UuIE90aGVyd2lzZSwgbGV0IHRoZSB0b3AtbGV2ZWxcbiAgICAvLyBwYWNrYWdlIHNldCB0aGUgbG9nIGxldmVsXG4gICAgd3JhcHBlZExvZ2dlci5sZXZlbCA9ICd2ZXJib3NlJztcbiAgfVxuICB3cmFwcGVkTG9nZ2VyLmxldmVscyA9IE5QTV9MRVZFTFM7XG4gIHJldHVybiB3cmFwcGVkTG9nZ2VyO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IExvYWRSZXN1bHRcbiAqIEBwcm9wZXJ0eSB7TGlzdDxzdHJpbmc+fSBpc3N1ZXMgVGhlIGxpc3Qgb2YgcnVsZSBwYXJzaW5nIGlzc3VlcyAob25lIGl0ZW0gcGVyIHJ1bGUpLlxuICogUnVsZXMgd2l0aCBpc3N1ZXMgYXJlIHNraXBwZWQuIEFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgaWYgbm8gcGFyc2luZyBpc3N1ZXMgZXhpc3QuXG4gKiBAcHJvcGVydHkge0xpc3Q8U2VjdXJlVmFsdWVQcmVwcm9jZXNzaW5nUnVsZT59IHJ1bGVzIFRoZSBsaXN0IG9mIHN1Y2Nlc3NmdWxseSBsb2FkZWRcbiAqIHJlcGxhY2VtZW50IHJ1bGVzLiBUaGUgbGlzdCBjb3VsZCBiZSBlbXB0eSBpZiBubyBydWxlcyB3ZXJlIGxvYWRlZC5cbiAqL1xuXG4vKipcbiAqIExvYWRzIHRoZSBKU09OIGZpbGUgY29udGFpbmluZyBzZWN1cmUgdmFsdWVzIHJlcGxhY2VtZW50IHJ1bGVzLlxuICogVGhpcyBtaWdodCBiZSBuZWNlc3NhcnkgdG8gaGlkZSBzZW5zaXRpdmUgdmFsdWVzIHRoYXQgbWF5IHBvc3NpYmx5XG4gKiBhcHBlYXIgaW4gQXBwaXVtIGxvZ3MuXG4gKiBFYWNoIGNhbGwgdG8gdGhpcyBtZXRob2QgcmVwbGFjZXMgdGhlIHByZXZpb3VzbHkgbG9hZGVkIHJ1bGVzIGlmIGFueSBleGlzdGVkLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfHN0cmluZ1tdfFJ1bGVbXX0gcnVsZXNKc29uUGF0aCBUaGUgZnVsbCBwYXRoIHRvIHRoZSBKU09OIGZpbGUgY29udGFpbmluZ1xuICogdGhlIHJlcGxhY2VtZW50IHJ1bGVzLiBFYWNoIHJ1bGUgY291bGQgZWl0aGVyIGJlIGEgc3RyaW5nIHRvIGJlIHJlcGxhY2VkXG4gKiBvciBhbiBvYmplY3Qgd2l0aCBwcmVkZWZpbmVkIHByb3BlcnRpZXMuIFNlZSB0aGUgYFJ1bGVgIHR5cGUgZGVmaW5pdGlvbiBpblxuICogYGxvZy1pbnRlcm5hbHMuanNgIHRvIGdldCBtb3JlIGRldGFpbHMgb24gaXRzIGZvcm1hdC5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZ2l2ZW4gZmlsZSBjYW5ub3QgYmUgbG9hZGVkXG4gKiBAcmV0dXJucyB7TG9hZFJlc3VsdH1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gbG9hZFNlY3VyZVZhbHVlc1ByZXByb2Nlc3NpbmdSdWxlcyAocnVsZXNKc29uUGF0aCkge1xuICBjb25zdCBpc3N1ZXMgPSBhd2FpdCBTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUi5sb2FkUnVsZXMocnVsZXNKc29uUGF0aCk7XG4gIHJldHVybiB7XG4gICAgaXNzdWVzLFxuICAgIHJ1bGVzOiBfLmNsb25lRGVlcChTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUi5ydWxlcyksXG4gIH07XG59XG5cbi8vIGV4cG9ydCBhIGRlZmF1bHQgbG9nZ2VyIHdpdGggbm8gcHJlZml4XG5jb25zdCBsb2cgPSBnZXRMb2dnZXIoKTtcblxuZXhwb3J0IHsgbG9nLCBwYXRjaExvZ2dlciwgZ2V0TG9nZ2VyLCBsb2FkU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc2luZ1J1bGVzIH07XG5leHBvcnQgZGVmYXVsdCBsb2c7XG4iXSwiZmlsZSI6ImxpYi9sb2dnaW5nLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
128
+ exports.default = _default;
129
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9sb2dnaW5nLmpzIl0sIm5hbWVzIjpbIk5QTV9MRVZFTFMiLCJNQVhfTE9HX1JFQ09SRFNfQ09VTlQiLCJQUkVGSVhfVElNRVNUQU1QX0ZPUk1BVCIsIm1vY2tMb2ciLCJsZXZlbCIsInBhdGNoTG9nZ2VyIiwibG9nZ2VyIiwiZGVidWciLCJhZGRMZXZlbCIsImZnIiwiYmciLCJfZ2V0TG9nZ2VyIiwidGVzdGluZ01vZGUiLCJwcm9jZXNzIiwiZW52IiwiX1RFU1RJTkciLCJmb3JjZUxvZ01vZGUiLCJfRk9SQ0VfTE9HUyIsInVzaW5nR2xvYmFsTG9nIiwiZ2xvYmFsIiwiX2dsb2JhbF9ucG1sb2ciLCJucG1sb2ciLCJtYXhSZWNvcmRTaXplIiwiZ2V0QWN0dWFsUHJlZml4IiwicHJlZml4IiwibG9nVGltZXN0YW1wIiwicmVzdWx0IiwiXyIsImlzRnVuY3Rpb24iLCJmb3JtYXQiLCJnZXRMb2dnZXIiLCJ3cmFwcGVkTG9nZ2VyIiwidW53cmFwIiwibGV2ZWxzIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXQiLCJzZXQiLCJuZXdWYWx1ZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJfTE9HX1RJTUVTVEFNUCIsImFyZ3MiLCJhY3R1YWxQcmVmaXgiLCJhcmciLCJvdXQiLCJpc0Vycm9yIiwic3RhY2siLCJsaW5lIiwic3BsaXQiLCJ1bmxlYWtlZExpbmUiLCJTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUiIsInByZXByb2Nlc3MiLCJlcnJvckFuZFRocm93IiwiZXJyIiwiZXJyb3IiLCJFcnJvciIsImxvYWRTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzaW5nUnVsZXMiLCJydWxlc0pzb25QYXRoIiwiaXNzdWVzIiwibG9hZFJ1bGVzIiwicnVsZXMiLCJjbG9uZURlZXAiLCJsb2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU1BLFVBQVUsR0FBRyxD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TztBQUNMQyxJQUFBQSxNQURLO0FBRUxFLElBQUFBLEtBQUssRUFBRWxDLGdCQUFFbUMsU0FBRixDQUFZWCxxQkFBMkJVLEtBQXZDO0FBRkYsR0FBUDtBQUlEOztBQUdELE1BQU1FLEdBQUcsR0FBR2pDLFNBQVMsRUFBckI7O2VBR2VpQyxHIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG5wbWxvZyBmcm9tICducG1sb2cnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHVubGVha1N0cmluZyB9IGZyb20gJy4vdXRpbCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgU0VDVVJFX1ZBTFVFU19QUkVQUk9DRVNTT1IgZnJvbSAnLi9sb2ctaW50ZXJuYWwnO1xuXG4vLyBsZXZlbHMgdGhhdCBhcmUgYXZhaWxhYmxlIGZyb20gYG5wbWxvZ2BcbmNvbnN0IE5QTV9MRVZFTFMgPSBbJ3NpbGx5JywgJ3ZlcmJvc2UnLCAnZGVidWcnLCAnaW5mbycsICdodHRwJywgJ3dhcm4nLCAnZXJyb3InXTtcbmNvbnN0IE1BWF9MT0dfUkVDT1JEU19DT1VOVCA9IDMwMDA7XG5cbmNvbnN0IFBSRUZJWF9USU1FU1RBTVBfRk9STUFUID0gJ0hILW1tLXNzOlNTUyc7XG5cbi8vIG1vY2sgbG9nIG9iamVjdCB1c2VkIGluIHRlc3RpbmcgbW9kZVxubGV0IG1vY2tMb2cgPSB7fTtcbmZvciAobGV0IGxldmVsIG9mIE5QTV9MRVZFTFMpIHtcbiAgbW9ja0xvZ1tsZXZlbF0gPSAoKSA9PiB7fTtcbn1cblxuZnVuY3Rpb24gcGF0Y2hMb2dnZXIgKGxvZ2dlcikge1xuICBpZiAoIWxvZ2dlci5kZWJ1Zykge1xuICAgIGxvZ2dlci5hZGRMZXZlbCgnZGVidWcnLCAxMDAwLCB7IGZnOiAnYmx1ZScsIGJnOiAnYmxhY2snIH0sICdkYnVnJyk7XG4gIH1cbn1cblxuLyoqXG4gKlxuICogQHJldHVybnMge1tucG1sb2cuTG9nZ2VyLCBib29sZWFuXX1cbiAqL1xuZnVuY3Rpb24gX2dldExvZ2dlciAoKSB7XG4gIC8vIGNoZWNrIGlmIHRoZSB1c2VyIHNldCB0aGUgYF9URVNUSU5HYCBvciBgX0ZPUkNFX0xPR1NgIGZsYWdcbiAgY29uc3QgdGVzdGluZ01vZGUgPSBwcm9jZXNzLmVudi5fVEVTVElORyA9PT0gJzEnO1xuICBjb25zdCBmb3JjZUxvZ01vZGUgPSBwcm9jZXNzLmVudi5fRk9SQ0VfTE9HUyA9PT0gJzEnO1xuXG4gIC8vIGlmIGlzIHBvc3NpYmxlIHRoYXQgdGhlcmUgaXMgYSBsb2dnZXIgaW5zdGFuY2UgdGhhdCBpcyBhbHJlYWR5IGFyb3VuZCxcbiAgLy8gaW4gd2hpY2ggY2FzZSB3ZSB3YW50IHQgbyB1c2UgdGhhdFxuICBjb25zdCB1c2luZ0dsb2JhbExvZyA9ICEhZ2xvYmFsLl9nbG9iYWxfbnBtbG9nO1xuICBsZXQgbG9nZ2VyO1xuICBpZiAodGVzdGluZ01vZGUgJiYgIWZvcmNlTG9nTW9kZSkge1xuICAgIC8vIGluIHRlc3RpbmcgbW9kZSwgdXNlIGEgbW9jayBsb2dnZXIgb2JqZWN0IHRoYXQgd2UgY2FuIHF1ZXJ5XG4gICAgbG9nZ2VyID0gbW9ja0xvZztcbiAgfSBlbHNlIHtcbiAgICAvLyBvdGhlcndpc2UsIGVpdGhlciB1c2UgdGhlIGdsb2JhbCwgb3IgYSBuZXcgYG5wbWxvZ2Agb2JqZWN0XG4gICAgbG9nZ2VyID0gZ2xvYmFsLl9nbG9iYWxfbnBtbG9nIHx8IG5wbWxvZztcbiAgICAvLyBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxMDAwMCwgd2hpY2ggY2F1c2VzIGV4Y2Vzc2l2ZSBtZW1vcnkgdXNhZ2VcbiAgICBsb2dnZXIubWF4UmVjb3JkU2l6ZSA9IE1BWF9MT0dfUkVDT1JEU19DT1VOVDtcbiAgfVxuICBwYXRjaExvZ2dlcihsb2dnZXIpO1xuICByZXR1cm4gW2xvZ2dlciwgdXNpbmdHbG9iYWxMb2ddO1xufVxuXG4vKipcbiAqIEBwYXJhbSB7UHJlZml4P30gcHJlZml4XG4gKiBAcGFyYW0ge2Jvb2xlYW59IGxvZ1RpbWVzdGFtcCB3aGV0aGVyIHRvIGluY2x1ZGUgdGltZXN0YW1wcyBpbnRvIGxvZyBwcmVmaXhlc1xuICogQHJldHVybnMge3N0cmluZ31cbiAqL1xuZnVuY3Rpb24gZ2V0QWN0dWFsUHJlZml4IChwcmVmaXgsIGxvZ1RpbWVzdGFtcCA9IGZhbHNlKSB7XG4gIGNvbnN0IHJlc3VsdCA9IChfLmlzRnVuY3Rpb24ocHJlZml4KSA/IHByZWZpeCgpIDogcHJlZml4KSA/PyAnJztcbiAgcmV0dXJuIGxvZ1RpbWVzdGFtcFxuICAgID8gYFske21vbWVudCgpLmZvcm1hdChQUkVGSVhfVElNRVNUQU1QX0ZPUk1BVCl9XSAke3Jlc3VsdH1gXG4gICAgOiByZXN1bHQ7XG59XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7UHJlZml4P30gcHJlZml4XG4gKiBAcmV0dXJucyB7QXBwaXVtTG9nZ2VyfVxuICovXG5mdW5jdGlvbiBnZXRMb2dnZXIgKHByZWZpeCA9IG51bGwpIHtcbiAgbGV0IFtsb2dnZXIsIHVzaW5nR2xvYmFsTG9nXSA9IF9nZXRMb2dnZXIoKTtcblxuICAvLyB3cmFwIHRoZSBsb2dnZXIgc28gdGhhdCB3ZSBjYW4gY2F0Y2ggYW5kIG1vZGlmeSBhbnkgbG9nZ2luZ1xuICBsZXQgd3JhcHBlZExvZ2dlciA9IHtcbiAgICB1bndyYXA6ICgpID0+IGxvZ2dlcixcbiAgICBsZXZlbHM6IE5QTV9MRVZFTFMsXG4gICAgcHJlZml4LFxuICB9O1xuXG4gIC8vIGFsbG93IGFjY2VzcyB0byB0aGUgbGV2ZWwgb2YgdGhlIHVuZGVybHlpbmcgbG9nZ2VyXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3cmFwcGVkTG9nZ2VyLCAnbGV2ZWwnLCB7XG4gICAgZ2V0ICgpIHtcbiAgICAgIHJldHVybiBsb2dnZXIubGV2ZWw7XG4gICAgfSxcbiAgICBzZXQgKG5ld1ZhbHVlKSB7XG4gICAgICBsb2dnZXIubGV2ZWwgPSBuZXdWYWx1ZTtcbiAgICB9LFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlXG4gIH0pO1xuXG4gIGNvbnN0IGxvZ1RpbWVzdGFtcCA9IHByb2Nlc3MuZW52Ll9MT0dfVElNRVNUQU1QID09PSAnMSc7XG5cbiAgLy8gYWRkIGFsbCB0aGUgbGV2ZWxzIGZyb20gYG5wbWxvZ2AsIGFuZCBtYXAgdG8gdGhlIHVuZGVybHlpbmcgbG9nZ2VyXG4gIGZvciAoY29uc3QgbGV2ZWwgb2YgTlBNX0xFVkVMUykge1xuICAgIHdyYXBwZWRMb2dnZXJbbGV2ZWxdID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcbiAgICAgIGNvbnN0IGFjdHVhbFByZWZpeCA9IGdldEFjdHVhbFByZWZpeCh0aGlzLnByZWZpeCwgbG9nVGltZXN0YW1wKTtcbiAgICAgIGZvciAoY29uc3QgYXJnIG9mIGFyZ3MpIHtcbiAgICAgICAgY29uc3Qgb3V0ID0gKF8uaXNFcnJvcihhcmcpICYmIGFyZy5zdGFjaykgPyBhcmcuc3RhY2sgOiBgJHthcmd9YDtcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIG91dC5zcGxpdCgnXFxuJykpIHtcbiAgICAgICAgICAvLyBpdCBpcyBuZWNlc3NhcnkgdG8gdW5sZWFrIGVhY2ggbGluZSBiZWNhdXNlIGBzcGxpdGAgY2FsbFxuICAgICAgICAgIC8vIGNyZWF0ZXMgXCJ2aWV3c1wiIHRvIHRoZSBvcmlnaW5hbCBzdHJpbmcgYXMgd2VsbCBhcyB0aGUgYHN1YnN0cmluZ2Agb25lXG4gICAgICAgICAgY29uc3QgdW5sZWFrZWRMaW5lID0gdW5sZWFrU3RyaW5nKGxpbmUpO1xuICAgICAgICAgIGxvZ2dlcltsZXZlbF0oYWN0dWFsUHJlZml4LCBTRUNVUkVfVkFMVUVTX1BSRVBST0NFU1NPUi5wcmVwcm9jZXNzKHVubGVha2VkTGluZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxuICAvLyBhZGQgbWV0aG9kIHRvIGxvZyBhbiBlcnJvciwgYW5kIHRocm93IGl0LCBmb3IgY29udmVuaWVuY2VcbiAgd3JhcHBlZExvZ2dlci5lcnJvckFuZFRocm93ID0gZnVuY3Rpb24gKGVycikge1xuICAgIHRoaXMuZXJyb3IoZXJyKTtcbiAgICAvLyBtYWtlIHN1cmUgd2UgaGF2ZSBhbiBgRXJyb3JgIG9iamVjdC4gV3JhcCBpZiBuZWNlc3NhcnlcbiAgICB0aHJvdyAoXy5pc0Vycm9yKGVycikgPyBlcnIgOiBuZXcgRXJyb3IodW5sZWFrU3RyaW5nKGVycikpKTtcbiAgfTtcbiAgaWYgKCF1c2luZ0dsb2JhbExvZykge1xuICAgIC8vIGlmIHdlJ3JlIG5vdCB1c2luZyBhIGdsb2JhbCBsb2cgc3BlY2lmaWVkIGZyb20gc29tZSB0b3AtbGV2ZWwgcGFja2FnZSxcbiAgICAvLyBzZXQgdGhlIGxvZyBsZXZlbCB0byBhIGRlZmF1bHQgb2YgdmVyYm9zZS4gT3RoZXJ3aXNlLCBsZXQgdGhlIHRvcC1sZXZlbFxuICAgIC8vIHBhY2thZ2Ugc2V0IHRoZSBsb2cgbGV2ZWxcbiAgICB3cmFwcGVkTG9nZ2VyLmxldmVsID0gJ3ZlcmJvc2UnO1xuICB9XG4gIHJldHVybiAvKiogQHR5cGUge0FwcGl1bUxvZ2dlcn0gKi8od3JhcHBlZExvZ2dlcik7XG59XG5cbi8qKlxuICogQHR5cGVkZWYgTG9hZFJlc3VsdFxuICogQHByb3BlcnR5IHtzdHJpbmdbXX0gaXNzdWVzIFRoZSBsaXN0IG9mIHJ1bGUgcGFyc2luZyBpc3N1ZXMgKG9uZSBpdGVtIHBlciBydWxlKS5cbiAqIFJ1bGVzIHdpdGggaXNzdWVzIGFyZSBza2lwcGVkLiBBbiBlbXB0eSBsaXN0IGlzIHJldHVybmVkIGlmIG5vIHBhcnNpbmcgaXNzdWVzIGV4aXN0LlxuICogQHByb3BlcnR5IHtpbXBvcnQoJy4vbG9nLWludGVybmFsJykuU2VjdXJlVmFsdWVQcmVwcm9jZXNzaW5nUnVsZVtdfSBydWxlcyBUaGUgbGlzdCBvZiBzdWNjZXNzZnVsbHkgbG9hZGVkXG4gKiByZXBsYWNlbWVudCBydWxlcy4gVGhlIGxpc3QgY291bGQgYmUgZW1wdHkgaWYgbm8gcnVsZXMgd2VyZSBsb2FkZWQuXG4gKi9cblxuLyoqXG4gKiBMb2FkcyB0aGUgSlNPTiBmaWxlIGNvbnRhaW5pbmcgc2VjdXJlIHZhbHVlcyByZXBsYWNlbWVudCBydWxlcy5cbiAqIFRoaXMgbWlnaHQgYmUgbmVjZXNzYXJ5IHRvIGhpZGUgc2Vuc2l0aXZlIHZhbHVlcyB0aGF0IG1heSBwb3NzaWJseVxuICogYXBwZWFyIGluIEFwcGl1bSBsb2dzLlxuICogRWFjaCBjYWxsIHRvIHRoaXMgbWV0aG9kIHJlcGxhY2VzIHRoZSBwcmV2aW91c2x5IGxvYWRlZCBydWxlcyBpZiBhbnkgZXhpc3RlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXXxpbXBvcnQoJy4vbG9nLWludGVybmFsJykuUnVsZVtdfSBydWxlc0pzb25QYXRoIFRoZSBmdWxsIHBhdGggdG8gdGhlIEpTT04gZmlsZSBjb250YWluaW5nXG4gKiB0aGUgcmVwbGFjZW1lbnQgcnVsZXMuIEVhY2ggcnVsZSBjb3VsZCBlaXRoZXIgYmUgYSBzdHJpbmcgdG8gYmUgcmVwbGFjZWRcbiAqIG9yIGFuIG9iamVjdCB3aXRoIHByZWRlZmluZWQgcHJvcGVydGllcy4gU2VlIHRoZSBgUnVsZWAgdHlwZSBkZWZpbml0aW9uIGluXG4gKiBgbG9nLWludGVybmFscy5qc2AgdG8gZ2V0IG1vcmUgZGV0YWlscyBvbiBpdHMgZm9ybWF0LlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBnaXZlbiBmaWxlIGNhbm5vdCBiZSBsb2FkZWRcbiAqIEByZXR1cm5zIHtQcm9taXNlPExvYWRSZXN1bHQ+fVxuICovXG5hc3luYyBmdW5jdGlvbiBsb2FkU2VjdXJlVmFsdWVzUHJlcHJvY2Vzc2luZ1J1bGVzIChydWxlc0pzb25QYXRoKSB7XG4gIGNvbnN0IGlzc3VlcyA9IGF3YWl0IFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SLmxvYWRSdWxlcyhydWxlc0pzb25QYXRoKTtcbiAgcmV0dXJuIHtcbiAgICBpc3N1ZXMsXG4gICAgcnVsZXM6IF8uY2xvbmVEZWVwKFNFQ1VSRV9WQUxVRVNfUFJFUFJPQ0VTU09SLnJ1bGVzKSxcbiAgfTtcbn1cblxuLy8gZXhwb3J0IGEgZGVmYXVsdCBsb2dnZXIgd2l0aCBubyBwcmVmaXhcbmNvbnN0IGxvZyA9IGdldExvZ2dlcigpO1xuXG5leHBvcnQgeyBsb2csIHBhdGNoTG9nZ2VyLCBnZXRMb2dnZXIsIGxvYWRTZWN1cmVWYWx1ZXNQcmVwcm9jZXNzaW5nUnVsZXMgfTtcbmV4cG9ydCBkZWZhdWx0IGxvZztcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuUHJlZml4fSBQcmVmaXhcbiAqL1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5BcHBpdW1Mb2dnZXJ9IEFwcGl1bUxvZ2dlclxuICovXG4iXX0=
@@ -0,0 +1,65 @@
1
+ /** Class which stores the last bit of data streamed into it */
2
+ export class MJpegStream extends Writable {
3
+ /**
4
+ * Create an MJpegStream
5
+ * @param {string} mJpegUrl - URL of MJPEG-over-HTTP stream
6
+ * @param {function} [errorHandler=noop] - additional function that will be
7
+ * called in the case of any errors.
8
+ * @param {object} [options={}] - Options to pass to the Writable constructor
9
+ */
10
+ constructor(mJpegUrl: string, errorHandler?: Function | undefined, options?: object);
11
+ /**
12
+ * @type {number}
13
+ */
14
+ updateCount: number;
15
+ errorHandler: Function;
16
+ url: string;
17
+ /**
18
+ * Get the base64-encoded version of the JPEG
19
+ *
20
+ * @returns {?string} base64-encoded JPEG image data
21
+ * or `null` if no image can be parsed
22
+ */
23
+ get lastChunkBase64(): string | null;
24
+ /**
25
+ * Get the PNG version of the JPEG buffer
26
+ *
27
+ * @returns {Promise<Buffer?>} PNG image data or `null` if no PNG
28
+ * image can be parsed
29
+ */
30
+ lastChunkPNG(): Promise<Buffer | null>;
31
+ /**
32
+ * Get the base64-encoded version of the PNG
33
+ *
34
+ * @returns {Promise<string?>} base64-encoded PNG image data
35
+ * or `null` if no image can be parsed
36
+ */
37
+ lastChunkPNGBase64(): Promise<string | null>;
38
+ /**
39
+ * Reset internal state
40
+ */
41
+ clear(): void;
42
+ registerStartSuccess: ((thenableOrResult?: any) => void) | null | undefined;
43
+ registerStartFailure: ((error?: any) => void) | null | undefined;
44
+ responseStream: any;
45
+ consumer: any;
46
+ lastChunk: Buffer | null | undefined;
47
+ /**
48
+ * Start reading the MJpeg stream and storing the last image
49
+ */
50
+ start(serverTimeout?: number): Promise<void>;
51
+ /**
52
+ * Stop reading the MJpeg stream. Ensure we disconnect all the pipes and stop
53
+ * the HTTP request itself. Then reset the state.
54
+ */
55
+ stop(): void;
56
+ /**
57
+ * Override the Writable write() method in order to save the last image and
58
+ * log the number of images we have received
59
+ * @override
60
+ * @param {Buffer} data - binary data streamed from the MJpeg consumer
61
+ */
62
+ override write(data: Buffer): boolean;
63
+ }
64
+ import { Writable } from "stream";
65
+ //# sourceMappingURL=mjpeg.d.ts.map
@@ -0,0 +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"}
@@ -40,6 +40,8 @@ async function initMJpegConsumer() {
40
40
  const MJPEG_SERVER_TIMEOUT_MS = 10000;
41
41
 
42
42
  class MJpegStream extends _stream.Writable {
43
+ updateCount = 0;
44
+
43
45
  constructor(mJpegUrl, errorHandler = _lodash.default.noop, options = {}) {
44
46
  super(options);
45
47
  this.errorHandler = errorHandler;
@@ -48,16 +50,19 @@ class MJpegStream extends _stream.Writable {
48
50
  }
49
51
 
50
52
  get lastChunkBase64() {
51
- return !_lodash.default.isEmpty(this.lastChunk) && _lodash.default.isBuffer(this.lastChunk) ? this.lastChunk.toString('base64') : null;
53
+ const lastChunk = this.lastChunk;
54
+ return !_lodash.default.isEmpty(this.lastChunk) && _lodash.default.isBuffer(this.lastChunk) ? lastChunk.toString('base64') : null;
52
55
  }
53
56
 
54
57
  async lastChunkPNG() {
55
- if (_lodash.default.isEmpty(this.lastChunk) || !_lodash.default.isBuffer(this.lastChunk)) {
58
+ const lastChunk = this.lastChunk;
59
+
60
+ if (_lodash.default.isEmpty(lastChunk) || !_lodash.default.isBuffer(lastChunk)) {
56
61
  return null;
57
62
  }
58
63
 
59
64
  try {
60
- const jpg = await (0, _imageUtil.getJimpImage)(this.lastChunk);
65
+ const jpg = await (0, _imageUtil.getJimpImage)(lastChunk);
61
66
  return await jpg.getBuffer(_imageUtil.MIME_PNG);
62
67
  } catch (e) {
63
68
  return null;
@@ -139,11 +144,11 @@ class MJpegStream extends _stream.Writable {
139
144
  this.registerStartSuccess();
140
145
  this.registerStartSuccess = null;
141
146
  }
147
+
148
+ return true;
142
149
  }
143
150
 
144
151
  }
145
152
 
146
- exports.MJpegStream = MJpegStream;require('source-map-support').install();
147
-
148
-
149
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9tanBlZy5qcyJdLCJuYW1lcyI6WyJNSnBlZ0NvbnN1bWVyIiwiaW5pdE1KcGVnQ29uc3VtZXIiLCJpZ24iLCJFcnJvciIsIk1KUEVHX1NFUlZFUl9USU1FT1VUX01TIiwiTUpwZWdTdHJlYW0iLCJXcml0YWJsZSIsImNvbnN0cnVjdG9yIiwibUpwZWdVcmwiLCJlcnJvckhhbmRsZXIiLCJfIiwibm9vcCIsIm9wdGlvbnMiLCJ1cmwiLCJjbGVhciIsImxhc3RDaHVua0Jhc2U2NCIsImlzRW1wdHkiLCJsYXN0Q2h1bmsiLCJpc0J1ZmZlciIsInRvU3RyaW5nIiwibGFzdENodW5rUE5HIiwianBnIiwiZ2V0QnVmZmVyIiwiTUlNRV9QTkciLCJlIiwibGFzdENodW5rUE5HQmFzZTY0IiwicG5nIiwicmVnaXN0ZXJTdGFydFN1Y2Nlc3MiLCJyZWdpc3RlclN0YXJ0RmFpbHVyZSIsInJlc3BvbnNlU3RyZWFtIiwiY29uc3VtZXIiLCJ1cGRhdGVDb3VudCIsInN0YXJ0Iiwic2VydmVyVGltZW91dCIsInN0b3AiLCJzdGFydFByb21pc2UiLCJCIiwicmVzIiwicmVqIiwidGltZW91dCIsIm9uRXJyIiwiZXJyIiwibG9nIiwiZXJyb3IiLCJtZXNzYWdlIiwib25DbG9zZSIsImRlYnVnIiwicmVzcG9uc2VUeXBlIiwiZGF0YSIsIm9uY2UiLCJvbiIsInBpcGUiLCJ1bnBpcGUiLCJkZXN0cm95Iiwid3JpdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsSUFBSUEsYUFBYSxHQUFHLElBQXBCOztBQUtBLGVBQWVDLGlCQUFmLEdBQW9DO0FBQ2xDLE1BQUksQ0FBQ0QsYUFBTCxFQUFvQjtBQUNsQixRQUFJO0FBQ0ZBLE1BQUFBLGFBQWEsR0FBRyxNQUFNLDBCQUFlLGdCQUFmLENBQXRCO0FBQ0QsS0FGRCxDQUVFLE9BQU9FLEdBQVAsRUFBWSxDQUFFO0FBQ2pCOztBQUNELE1BQUks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SSxTQUFMLEdBQWlCLElBQWpCO0FBQ0QsS0FIRDs7QUFLQSxRQUFJO0FBQ0YsV0FBS1ksY0FBTCxHQUFzQixDQUFDLE1BQU0sb0JBQU07QUFDakNoQixRQUFBQSxHQURpQztBQUVqQ2tDLFFBQUFBLFlBQVksRUFBRSxRQUZtQjtBQUdqQ1IsUUFBQUEsT0FBTyxFQUFFTjtBQUh3QixPQUFOLENBQVAsRUFJbEJlLElBSko7QUFLRCxLQU5ELENBTUUsT0FBT3hCLENBQVAsRUFBVTtBQUNWLGFBQU9nQixLQUFLLENBQUNoQixDQUFELENBQVo7QUFDRDs7QUFFRCxTQUFLSyxjQUFMLENBQ0dvQixJQURILENBQ1EsT0FEUixFQUNpQkosT0FEakIsRUFFR0ssRUFGSCxDQUVNLE9BRk4sRUFFZVYsS0FGZixFQUdHVyxJQUhILENBR1EsS0FBS3JCLFFBSGIsRUFJR3FCLElBSkgsQ0FJUSxJQUpSO0FBTUEsVUFBTWhCLFlBQU47QUFDRDs7QUFNREQsRUFBQUEsSUFBSSxHQUFJO0FBQ04sUUFBSSxDQUFDLEtBQUtKLFFBQVYsRUFBb0I7QUFDbEI7QUFDRDs7QUFFRCxTQUFLRCxjQUFMLENBQW9CdUIsTUFBcEIsQ0FBMkIsS0FBS3RCLFFBQWhDO0FBQ0EsU0FBS0EsUUFBTCxDQUFjc0IsTUFBZCxDQUFxQixJQUFyQjtBQUNBLFNBQUt2QixjQUFMLENBQW9Cd0IsT0FBcEI7QUFDQSxTQUFLdkMsS0FBTDtBQUNEOztBQVFEd0MsRUFBQUEsS0FBSyxDQUFFTixJQUFGLEVBQVE7QUFDWCxTQUFLL0IsU0FBTCxHQUFpQitCLElBQWpCO0FBQ0EsU0FBS2pCLFdBQUw7O0FBRUEsUUFBSSxLQUFLSixvQkFBVCxFQUErQjtBQUM3QixXQUFLQSxvQkFBTDtBQUNBLFdBQUtBLG9CQUFMLEdBQTRCLElBQTVCO0FBQ0Q7QUFDRjs7QUE3SmdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuaW1wb3J0IHsgZ2V0SmltcEltYWdlLCBNSU1FX1BORyB9IGZyb20gJy4vaW1hZ2UtdXRpbCc7XG5pbXBvcnQgeyBXcml0YWJsZSB9IGZyb20gJ3N0cmVhbSc7XG5pbXBvcnQgeyByZXF1aXJlUGFja2FnZSB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuXG4vLyBsYXp5IGxvYWQgdGhpcywgYXMgaXQgbWlnaHQgbm90IGJlIGF2YWlsYWJsZVxubGV0IE1KcGVnQ29uc3VtZXIgPSBudWxsO1xuXG4vKipcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiBgbWpwZWctY29uc3VtZXJgIG1vZHVsZSBpcyBub3QgaW5zdGFsbGVkIG9yIGNhbm5vdCBiZSBsb2FkZWRcbiAqL1xuYXN5bmMgZnVuY3Rpb24gaW5pdE1KcGVnQ29uc3VtZXIgKCkge1xuICBpZiAoIU1KcGVnQ29uc3VtZXIpIHtcbiAgICB0cnkge1xuICAgICAgTUpwZWdDb25zdW1lciA9IGF3YWl0IHJlcXVpcmVQYWNrYWdlKCdtanBlZy1jb25zdW1lcicpO1xuICAgIH0gY2F0Y2ggKGlnbikge31cbiAgfVxuICBpZiAoIU1KcGVnQ29uc3VtZXIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ21qcGVnLWNvbnN1bWVyIG1vZHVsZSBpcyByZXF1aXJlZCB0byB1c2UgTUpQRUctb3Zlci1IVFRQIGZlYXR1cmVzLiAnICtcbiAgICAgICAgICAgICAgICAgICAgJ1BsZWFzZSBpbnN0YWxsIGl0IGZpcnN0IChucG0gaSAtZyBtanBlZy1jb25zdW1lcikgYW5kIHJlc3RhcnQgQXBwaXVtLicpO1xuICB9XG59XG5cbi8vIGFtb3VudCBvZiB0aW1lIHRvIHdhaXQgZm9yIHRoZSBmaXJzdCBpbWFnZSBpbiB0aGUgc3RyZWFtXG5jb25zdCBNSlBFR19TRVJWRVJfVElNRU9VVF9NUyA9IDEwMDAwO1xuXG4vKiogQ2xhc3Mgd2hpY2ggc3RvcmVzIHRoZSBsYXN0IGJpdCBvZiBkYXRhIHN0cmVhbWVkIGludG8gaXQgKi9cbmNsYXNzIE1KcGVnU3RyZWFtIGV4dGVuZHMgV3JpdGFibGUge1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gTUpwZWdTdHJlYW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IG1KcGVnVXJsIC0gVVJMIG9mIE1KUEVHLW92ZXItSFRUUCBzdHJlYW1cbiAgICogQHBhcmFtIHtmdW5jdGlvbn0gW2Vycm9ySGFuZGxlcj1ub29wXSAtIGFkZGl0aW9uYWwgZnVuY3Rpb24gdGhhdCB3aWxsIGJlXG4gICAqIGNhbGxlZCBpbiB0aGUgY2FzZSBvZiBhbnkgZXJyb3JzLlxuICAgKiBAcGFyYW0ge29iamVjdH0gW29wdGlvbnM9e31dIC0gT3B0aW9ucyB0byBwYXNzIHRvIHRoZSBXcml0YWJsZSBjb25zdHJ1Y3RvclxuICAgKi9cbiAgY29uc3RydWN0b3IgKG1KcGVnVXJsLCBlcnJvckhhbmRsZXIgPSBfLm5vb3AsIG9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKG9wdGlvbnMpO1xuXG4gICAgdGhpcy5lcnJvckhhbmRsZXIgPSBlcnJvckhhbmRsZXI7XG4gICAgdGhpcy51cmwgPSBtSnBlZ1VybDtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBiYXNlNjQtZW5jb2RlZCB2ZXJzaW9uIG9mIHRoZSBKUEVHXG4gICAqXG4gICAqIEByZXR1cm5zIHs/c3RyaW5nfSBiYXNlNjQtZW5jb2RlZCBKUEVHIGltYWdlIGRhdGFcbiAgICogb3IgYG51bGxgIGlmIG5vIGltYWdlIGNhbiBiZSBwYXJzZWRcbiAgICovXG4gIGdldCBsYXN0Q2h1bmtCYXNlNjQgKCkge1xuICAgIHJldHVybiAhXy5pc0VtcHR5KHRoaXMubGFzdENodW5rKSAmJiBfLmlzQnVmZmVyKHRoaXMubGFzdENodW5rKVxuICAgICAgPyB0aGlzLmxhc3RDaHVuay50b1N0cmluZygnYmFzZTY0JylcbiAgICAgIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIFBORyB2ZXJzaW9uIG9mIHRoZSBKUEVHIGJ1ZmZlclxuICAgKlxuICAgKiBAcmV0dXJucyB7P0J1ZmZlcn0gUE5HIGltYWdlIGRhdGEgb3IgYG51bGxgIGlmIG5vIFBOR1xuICAgKiBpbWFnZSBjYW4gYmUgcGFyc2VkXG4gICAqL1xuICBhc3luYyBsYXN0Q2h1bmtQTkcgKCkge1xuICAgIGlmIChfLmlzRW1wdHkodGhpcy5sYXN0Q2h1bmspIHx8ICFfLmlzQnVmZmVyKHRoaXMubGFzdENodW5rKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGpwZyA9IGF3YWl0IGdldEppbXBJbWFnZSh0aGlzLmxhc3RDaHVuayk7XG4gICAgICByZXR1cm4gYXdhaXQganBnLmdldEJ1ZmZlcihNSU1FX1BORyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZTY0LWVuY29kZWQgdmVyc2lvbiBvZiB0aGUgUE5HXG4gICAqXG4gICAqIEByZXR1cm5zIHs/c3RyaW5nfSBiYXNlNjQtZW5jb2RlZCBQTkcgaW1hZ2UgZGF0YVxuICAgKiBvciBgbnVsbGAgaWYgbm8gaW1hZ2UgY2FuIGJlIHBhcnNlZFxuICAgKi9cbiAgYXN5bmMgbGFzdENodW5rUE5HQmFzZTY0ICgpIHtcbiAgICBjb25zdCBwbmcgPSBhd2FpdCB0aGlzLmxhc3RDaHVua1BORygpO1xuICAgIHJldHVybiBwbmcgPyBwbmcudG9TdHJpbmcoJ2Jhc2U2NCcpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBpbnRlcm5hbCBzdGF0ZVxuICAgKi9cbiAgY2xlYXIgKCkge1xuICAgIHRoaXMucmVnaXN0ZXJTdGFydFN1Y2Nlc3MgPSBudWxsO1xuICAgIHRoaXMucmVnaXN0ZXJTdGFydEZhaWx1cmUgPSBudWxsO1xuICAgIHRoaXMucmVzcG9uc2VTdHJlYW0gPSBudWxsO1xuICAgIHRoaXMuY29uc3VtZXIgPSBudWxsO1xuICAgIHRoaXMubGFzdENodW5rID0gbnVsbDtcbiAgICB0aGlzLnVwZGF0ZUNvdW50ID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCByZWFkaW5nIHRoZSBNSnBlZyBzdHJlYW0gYW5kIHN0b3JpbmcgdGhlIGxhc3QgaW1hZ2VcbiAgICovXG4gIGFzeW5jIHN0YXJ0IChzZXJ2ZXJUaW1lb3V0ID0gTUpQRUdfU0VSVkVSX1RJTUVPVVRfTVMpIHtcbiAgICAvLyBlbnN1cmUgd2UncmUgbm90IHN0YXJ0ZWQgYWxyZWFkeVxuICAgIHRoaXMuc3RvcCgpO1xuXG4gICAgYXdhaXQgaW5pdE1KcGVnQ29uc3VtZXIoKTtcblxuICAgIHRoaXMuY29uc3VtZXIgPSBuZXcgTUpwZWdDb25zdW1lcigpO1xuXG4gICAgLy8gdXNlIHRoZSBkZWZlcnJlZCBwYXR0ZXJuIHNvIHdlIGNhbiB3YWl0IGZvciB0aGUgc3RhcnQgb2YgdGhlIHN0cmVhbVxuICAgIC8vIGJhc2VkIG9uIHdoYXQgY29tZXMgaW4gZnJvbSBhbiBleHRlcm5hbCBwaXBlXG4gICAgY29uc3Qgc3RhcnRQcm9taXNlID0gbmV3IEIoKHJlcywgcmVqKSA9PiB7XG4gICAgICB0aGlzLnJlZ2lzdGVyU3RhcnRTdWNjZXNzID0gcmVzO1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0RmFpbHVyZSA9IHJlajtcbiAgICB9KVxuICAgIC8vIHN0YXJ0IGEgdGltZW91dCBzbyB0aGF0IGlmIHRoZSBzZXJ2ZXIgZG9lcyBub3QgcmV0dXJuIGRhdGEsIHdlIGRvbid0XG4gICAgLy8gYmxvY2sgZm9yZXZlci5cbiAgICAgIC50aW1lb3V0KHNlcnZlclRpbWVvdXQsXG4gICAgICAgIGBXYWl0ZWQgJHtzZXJ2ZXJUaW1lb3V0fW1zIGJ1dCB0aGUgTUpQRUcgc2VydmVyIG5ldmVyIHNlbnQgYW55IGltYWdlc2ApO1xuXG4gICAgY29uc3QgdXJsID0gdGhpcy51cmw7XG4gICAgY29uc3Qgb25FcnIgPSAoZXJyKSA9PiB7XG4gICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IGFuIG91dGRhdGVkIHNjcmVlbnNob3QgaWYgdGhlcmUgd2FzIGFuIGVycm9yXG4gICAgICB0aGlzLmxhc3RDaHVuayA9IG51bGw7XG5cbiAgICAgIGxvZy5lcnJvcihgRXJyb3IgZ2V0dGluZyBNSnBlZyBzY3JlZW5zaG90IGNodW5rOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgdGhpcy5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgIGlmICh0aGlzLnJlZ2lzdGVyU3RhcnRGYWlsdXJlKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTdGFydEZhaWx1cmUoZXJyKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG9uQ2xvc2UgPSAoKSA9PiB7XG4gICAgICBsb2cuZGVidWcoYFRoZSBjb25uZWN0aW9uIHRvIE1KUEVHIHNlcnZlciBhdCAke3VybH0gaGFzIGJlZW4gY2xvc2VkYCk7XG4gICAgICB0aGlzLmxhc3RDaHVuayA9IG51bGw7XG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnJlc3BvbnNlU3RyZWFtID0gKGF3YWl0IGF4aW9zKHtcbiAgICAgICAgdXJsLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdzdHJlYW0nLFxuICAgICAgICB0aW1lb3V0OiBzZXJ2ZXJUaW1lb3V0LFxuICAgICAgfSkpLmRhdGE7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG9uRXJyKGUpO1xuICAgIH1cblxuICAgIHRoaXMucmVzcG9uc2VTdHJlYW1cbiAgICAgIC5vbmNlKCdjbG9zZScsIG9uQ2xvc2UpXG4gICAgICAub24oJ2Vycm9yJywgb25FcnIpIC8vIGVuc3VyZSB3ZSBkbyBzb21ldGhpbmcgd2l0aCBlcnJvcnNcbiAgICAgIC5waXBlKHRoaXMuY29uc3VtZXIpIC8vIGFsbG93IGNodW5raW5nIGFuZCB0cmFuc2Zvcm1pbmcgb2YganBlZyBkYXRhXG4gICAgICAucGlwZSh0aGlzKTsgLy8gc2VuZCB0aGUgYWN0dWFsIGpwZWdzIHRvIG91cnNlbGZcblxuICAgIGF3YWl0IHN0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIHJlYWRpbmcgdGhlIE1KcGVnIHN0cmVhbS4gRW5zdXJlIHdlIGRpc2Nvbm5lY3QgYWxsIHRoZSBwaXBlcyBhbmQgc3RvcFxuICAgKiB0aGUgSFRUUCByZXF1ZXN0IGl0c2VsZi4gVGhlbiByZXNldCB0aGUgc3RhdGUuXG4gICAqL1xuICBzdG9wICgpIHtcbiAgICBpZiAoIXRoaXMuY29uc3VtZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtLnVucGlwZSh0aGlzLmNvbnN1bWVyKTtcbiAgICB0aGlzLmNvbnN1bWVyLnVucGlwZSh0aGlzKTtcbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtLmRlc3Ryb3koKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIFdyaXRhYmxlIHdyaXRlKCkgbWV0aG9kIGluIG9yZGVyIHRvIHNhdmUgdGhlIGxhc3QgaW1hZ2UgYW5kXG4gICAqIGxvZyB0aGUgbnVtYmVyIG9mIGltYWdlcyB3ZSBoYXZlIHJlY2VpdmVkXG4gICAqIEBvdmVycmlkZVxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gZGF0YSAtIGJpbmFyeSBkYXRhIHN0cmVhbWVkIGZyb20gdGhlIE1KcGVnIGNvbnN1bWVyXG4gICAqL1xuICB3cml0ZSAoZGF0YSkge1xuICAgIHRoaXMubGFzdENodW5rID0gZGF0YTtcbiAgICB0aGlzLnVwZGF0ZUNvdW50Kys7XG5cbiAgICBpZiAodGhpcy5yZWdpc3RlclN0YXJ0U3VjY2Vzcykge1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0U3VjY2VzcygpO1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0U3VjY2VzcyA9IG51bGw7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCB7IE1KcGVnU3RyZWFtIH07XG4iXSwiZmlsZSI6ImxpYi9tanBlZy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
153
+ exports.MJpegStream = MJpegStream;
154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9tanBlZy5qcyJdLCJuYW1lcyI6WyJNSnBlZ0NvbnN1bWVyIiwiaW5pdE1KcGVnQ29uc3VtZXIiLCJpZ24iLCJFcnJvciIsIk1KUEVHX1NFUlZFUl9USU1FT1VUX01TIiwiTUpwZWdTdHJlYW0iLCJXcml0YWJsZSIsInVwZGF0ZUNvdW50IiwiY29uc3RydWN0b3IiLCJtSnBlZ1VybCIsImVycm9ySGFuZGxlciIsIl8iLCJub29wIiwib3B0aW9ucyIsInVybCIsImNsZWFyIiwibGFzdENodW5rQmFzZTY0IiwibGFzdENodW5rIiwiaXNFbXB0eSIsImlzQnVmZmVyIiwidG9TdHJpbmciLCJsYXN0Q2h1bmtQTkciLCJqcGciLCJnZXRCdWZmZXIiLCJNSU1FX1BORyIsImUiLCJsYXN0Q2h1bmtQTkdCYXNlNjQiLCJwbmciLCJyZWdpc3RlclN0YXJ0U3VjY2VzcyIsInJlZ2lzdGVyU3RhcnRGYWlsdXJlIiwicmVzcG9uc2VTdHJlYW0iLCJjb25zdW1lciIsInN0YXJ0Iiwic2VydmVyVGltZW91dCIsInN0b3AiLCJzdGFydFByb21pc2UiLCJCIiwicmVzIiwicmVqIiwidGltZW91dCIsIm9uRXJyIiwiZXJyIiwibG9nIiwiZXJyb3IiLCJtZXNzYWdlIiwib25DbG9zZSIsImRlYnVnIiwicmVzcG9uc2VUeXBlIiwiZGF0YSIsIm9uY2UiLCJvbiIsInBpcGUiLCJ1bnBpcGUiLCJkZXN0cm95Iiwid3JpdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0EsSUFBSUEsYUFBYSxHQUFHLElBQXBCOztBQUtBLGVBQWVDLGlCQUFmLEdBQW9DO0FBQ2xDLE1BQUksQ0FBQ0QsYUFBTCxFQUFvQjtBQUNsQixRQUFJO0FBQ0ZBLE1BQUFBLGFBQWEsR0FBRyxNQUFNLDBCQUFlLGdCQUFmLENBQXRCO0FBQ0QsS0FGRCxDQUVFLE9BQU9FLEdBQVAsRUFBWSxDQUFFO0FBQ2pCOztBQUNE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b250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCB7IGdldEppbXBJbWFnZSwgTUlNRV9QTkcgfSBmcm9tICcuL2ltYWdlLXV0aWwnO1xuaW1wb3J0IHsgV3JpdGFibGUgfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0IHsgcmVxdWlyZVBhY2thZ2UgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcblxuLy8gbGF6eSBsb2FkIHRoaXMsIGFzIGl0IG1pZ2h0IG5vdCBiZSBhdmFpbGFibGVcbmxldCBNSnBlZ0NvbnN1bWVyID0gbnVsbDtcblxuLyoqXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgYG1qcGVnLWNvbnN1bWVyYCBtb2R1bGUgaXMgbm90IGluc3RhbGxlZCBvciBjYW5ub3QgYmUgbG9hZGVkXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGluaXRNSnBlZ0NvbnN1bWVyICgpIHtcbiAgaWYgKCFNSnBlZ0NvbnN1bWVyKSB7XG4gICAgdHJ5IHtcbiAgICAgIE1KcGVnQ29uc3VtZXIgPSBhd2FpdCByZXF1aXJlUGFja2FnZSgnbWpwZWctY29uc3VtZXInKTtcbiAgICB9IGNhdGNoIChpZ24pIHt9XG4gIH1cbiAgaWYgKCFNSnBlZ0NvbnN1bWVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdtanBlZy1jb25zdW1lciBtb2R1bGUgaXMgcmVxdWlyZWQgdG8gdXNlIE1KUEVHLW92ZXItSFRUUCBmZWF0dXJlcy4gJyArXG4gICAgICAgICAgICAgICAgICAgICdQbGVhc2UgaW5zdGFsbCBpdCBmaXJzdCAobnBtIGkgLWcgbWpwZWctY29uc3VtZXIpIGFuZCByZXN0YXJ0IEFwcGl1bS4nKTtcbiAgfVxufVxuXG4vLyBhbW91bnQgb2YgdGltZSB0byB3YWl0IGZvciB0aGUgZmlyc3QgaW1hZ2UgaW4gdGhlIHN0cmVhbVxuY29uc3QgTUpQRUdfU0VSVkVSX1RJTUVPVVRfTVMgPSAxMDAwMDtcblxuLyoqIENsYXNzIHdoaWNoIHN0b3JlcyB0aGUgbGFzdCBiaXQgb2YgZGF0YSBzdHJlYW1lZCBpbnRvIGl0ICovXG5jbGFzcyBNSnBlZ1N0cmVhbSBleHRlbmRzIFdyaXRhYmxlIHtcblxuICAvKipcbiAgICogQHR5cGUge251bWJlcn1cbiAgICovXG4gIHVwZGF0ZUNvdW50ID0gMDtcblxuICAvKipcbiAgICogQ3JlYXRlIGFuIE1KcGVnU3RyZWFtXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtSnBlZ1VybCAtIFVSTCBvZiBNSlBFRy1vdmVyLUhUVFAgc3RyZWFtXG4gICAqIEBwYXJhbSB7ZnVuY3Rpb259IFtlcnJvckhhbmRsZXI9bm9vcF0gLSBhZGRpdGlvbmFsIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZVxuICAgKiBjYWxsZWQgaW4gdGhlIGNhc2Ugb2YgYW55IGVycm9ycy5cbiAgICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zPXt9XSAtIE9wdGlvbnMgdG8gcGFzcyB0byB0aGUgV3JpdGFibGUgY29uc3RydWN0b3JcbiAgICovXG4gIGNvbnN0cnVjdG9yIChtSnBlZ1VybCwgZXJyb3JIYW5kbGVyID0gXy5ub29wLCBvcHRpb25zID0ge30pIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMuZXJyb3JIYW5kbGVyID0gZXJyb3JIYW5kbGVyO1xuICAgIHRoaXMudXJsID0gbUpwZWdVcmw7XG4gICAgdGhpcy5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZTY0LWVuY29kZWQgdmVyc2lvbiBvZiB0aGUgSlBFR1xuICAgKlxuICAgKiBAcmV0dXJucyB7P3N0cmluZ30gYmFzZTY0LWVuY29kZWQgSlBFRyBpbWFnZSBkYXRhXG4gICAqIG9yIGBudWxsYCBpZiBubyBpbWFnZSBjYW4gYmUgcGFyc2VkXG4gICAqL1xuICBnZXQgbGFzdENodW5rQmFzZTY0ICgpIHtcbiAgICBjb25zdCBsYXN0Q2h1bmsgPSAvKiogQHR5cGUge0J1ZmZlcn0gKi8odGhpcy5sYXN0Q2h1bmspO1xuICAgIHJldHVybiAhXy5pc0VtcHR5KHRoaXMubGFzdENodW5rKSAmJiBfLmlzQnVmZmVyKHRoaXMubGFzdENodW5rKVxuICAgICAgPyBsYXN0Q2h1bmsudG9TdHJpbmcoJ2Jhc2U2NCcpXG4gICAgICA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBQTkcgdmVyc2lvbiBvZiB0aGUgSlBFRyBidWZmZXJcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8QnVmZmVyPz59IFBORyBpbWFnZSBkYXRhIG9yIGBudWxsYCBpZiBubyBQTkdcbiAgICogaW1hZ2UgY2FuIGJlIHBhcnNlZFxuICAgKi9cbiAgYXN5bmMgbGFzdENodW5rUE5HICgpIHtcbiAgICBjb25zdCBsYXN0Q2h1bmsgPSAvKiogQHR5cGUge0J1ZmZlcn0gKi8odGhpcy5sYXN0Q2h1bmspO1xuICAgIGlmIChfLmlzRW1wdHkobGFzdENodW5rKSB8fCAhXy5pc0J1ZmZlcihsYXN0Q2h1bmspKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QganBnID0gYXdhaXQgZ2V0SmltcEltYWdlKGxhc3RDaHVuayk7XG4gICAgICByZXR1cm4gYXdhaXQganBnLmdldEJ1ZmZlcihNSU1FX1BORyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZTY0LWVuY29kZWQgdmVyc2lvbiBvZiB0aGUgUE5HXG4gICAqXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHN0cmluZz8+fSBiYXNlNjQtZW5jb2RlZCBQTkcgaW1hZ2UgZGF0YVxuICAgKiBvciBgbnVsbGAgaWYgbm8gaW1hZ2UgY2FuIGJlIHBhcnNlZFxuICAgKi9cbiAgYXN5bmMgbGFzdENodW5rUE5HQmFzZTY0ICgpIHtcbiAgICBjb25zdCBwbmcgPSBhd2FpdCB0aGlzLmxhc3RDaHVua1BORygpO1xuICAgIHJldHVybiBwbmcgPyBwbmcudG9TdHJpbmcoJ2Jhc2U2NCcpIDogbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldCBpbnRlcm5hbCBzdGF0ZVxuICAgKi9cbiAgY2xlYXIgKCkge1xuICAgIHRoaXMucmVnaXN0ZXJTdGFydFN1Y2Nlc3MgPSBudWxsO1xuICAgIHRoaXMucmVnaXN0ZXJTdGFydEZhaWx1cmUgPSBudWxsO1xuICAgIHRoaXMucmVzcG9uc2VTdHJlYW0gPSBudWxsO1xuICAgIHRoaXMuY29uc3VtZXIgPSBudWxsO1xuICAgIHRoaXMubGFzdENodW5rID0gbnVsbDtcbiAgICB0aGlzLnVwZGF0ZUNvdW50ID0gMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydCByZWFkaW5nIHRoZSBNSnBlZyBzdHJlYW0gYW5kIHN0b3JpbmcgdGhlIGxhc3QgaW1hZ2VcbiAgICovXG4gIGFzeW5jIHN0YXJ0IChzZXJ2ZXJUaW1lb3V0ID0gTUpQRUdfU0VSVkVSX1RJTUVPVVRfTVMpIHtcbiAgICAvLyBlbnN1cmUgd2UncmUgbm90IHN0YXJ0ZWQgYWxyZWFkeVxuICAgIHRoaXMuc3RvcCgpO1xuXG4gICAgYXdhaXQgaW5pdE1KcGVnQ29uc3VtZXIoKTtcblxuICAgIHRoaXMuY29uc3VtZXIgPSBuZXcgTUpwZWdDb25zdW1lcigpO1xuXG4gICAgLy8gdXNlIHRoZSBkZWZlcnJlZCBwYXR0ZXJuIHNvIHdlIGNhbiB3YWl0IGZvciB0aGUgc3RhcnQgb2YgdGhlIHN0cmVhbVxuICAgIC8vIGJhc2VkIG9uIHdoYXQgY29tZXMgaW4gZnJvbSBhbiBleHRlcm5hbCBwaXBlXG4gICAgY29uc3Qgc3RhcnRQcm9taXNlID0gbmV3IEIoKHJlcywgcmVqKSA9PiB7XG4gICAgICB0aGlzLnJlZ2lzdGVyU3RhcnRTdWNjZXNzID0gcmVzO1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0RmFpbHVyZSA9IHJlajtcbiAgICB9KVxuICAgIC8vIHN0YXJ0IGEgdGltZW91dCBzbyB0aGF0IGlmIHRoZSBzZXJ2ZXIgZG9lcyBub3QgcmV0dXJuIGRhdGEsIHdlIGRvbid0XG4gICAgLy8gYmxvY2sgZm9yZXZlci5cbiAgICAgIC50aW1lb3V0KHNlcnZlclRpbWVvdXQsXG4gICAgICAgIGBXYWl0ZWQgJHtzZXJ2ZXJUaW1lb3V0fW1zIGJ1dCB0aGUgTUpQRUcgc2VydmVyIG5ldmVyIHNlbnQgYW55IGltYWdlc2ApO1xuXG4gICAgY29uc3QgdXJsID0gdGhpcy51cmw7XG4gICAgY29uc3Qgb25FcnIgPSAoZXJyKSA9PiB7XG4gICAgICAvLyBNYWtlIHN1cmUgd2UgZG9uJ3QgZ2V0IGFuIG91dGRhdGVkIHNjcmVlbnNob3QgaWYgdGhlcmUgd2FzIGFuIGVycm9yXG4gICAgICB0aGlzLmxhc3RDaHVuayA9IG51bGw7XG5cbiAgICAgIGxvZy5lcnJvcihgRXJyb3IgZ2V0dGluZyBNSnBlZyBzY3JlZW5zaG90IGNodW5rOiAke2Vyci5tZXNzYWdlfWApO1xuICAgICAgdGhpcy5lcnJvckhhbmRsZXIoZXJyKTtcbiAgICAgIGlmICh0aGlzLnJlZ2lzdGVyU3RhcnRGYWlsdXJlKSB7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTdGFydEZhaWx1cmUoZXJyKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IG9uQ2xvc2UgPSAoKSA9PiB7XG4gICAgICBsb2cuZGVidWcoYFRoZSBjb25uZWN0aW9uIHRvIE1KUEVHIHNlcnZlciBhdCAke3VybH0gaGFzIGJlZW4gY2xvc2VkYCk7XG4gICAgICB0aGlzLmxhc3RDaHVuayA9IG51bGw7XG4gICAgfTtcblxuICAgIHRyeSB7XG4gICAgICB0aGlzLnJlc3BvbnNlU3RyZWFtID0gKGF3YWl0IGF4aW9zKHtcbiAgICAgICAgdXJsLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdzdHJlYW0nLFxuICAgICAgICB0aW1lb3V0OiBzZXJ2ZXJUaW1lb3V0LFxuICAgICAgfSkpLmRhdGE7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmV0dXJuIG9uRXJyKGUpO1xuICAgIH1cblxuICAgIHRoaXMucmVzcG9uc2VTdHJlYW1cbiAgICAgIC5vbmNlKCdjbG9zZScsIG9uQ2xvc2UpXG4gICAgICAub24oJ2Vycm9yJywgb25FcnIpIC8vIGVuc3VyZSB3ZSBkbyBzb21ldGhpbmcgd2l0aCBlcnJvcnNcbiAgICAgIC5waXBlKHRoaXMuY29uc3VtZXIpIC8vIGFsbG93IGNodW5raW5nIGFuZCB0cmFuc2Zvcm1pbmcgb2YganBlZyBkYXRhXG4gICAgICAucGlwZSh0aGlzKTsgLy8gc2VuZCB0aGUgYWN0dWFsIGpwZWdzIHRvIG91cnNlbGZcblxuICAgIGF3YWl0IHN0YXJ0UHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIHJlYWRpbmcgdGhlIE1KcGVnIHN0cmVhbS4gRW5zdXJlIHdlIGRpc2Nvbm5lY3QgYWxsIHRoZSBwaXBlcyBhbmQgc3RvcFxuICAgKiB0aGUgSFRUUCByZXF1ZXN0IGl0c2VsZi4gVGhlbiByZXNldCB0aGUgc3RhdGUuXG4gICAqL1xuICBzdG9wICgpIHtcbiAgICBpZiAoIXRoaXMuY29uc3VtZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtLnVucGlwZSh0aGlzLmNvbnN1bWVyKTtcbiAgICB0aGlzLmNvbnN1bWVyLnVucGlwZSh0aGlzKTtcbiAgICB0aGlzLnJlc3BvbnNlU3RyZWFtLmRlc3Ryb3koKTtcbiAgICB0aGlzLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIFdyaXRhYmxlIHdyaXRlKCkgbWV0aG9kIGluIG9yZGVyIHRvIHNhdmUgdGhlIGxhc3QgaW1hZ2UgYW5kXG4gICAqIGxvZyB0aGUgbnVtYmVyIG9mIGltYWdlcyB3ZSBoYXZlIHJlY2VpdmVkXG4gICAqIEBvdmVycmlkZVxuICAgKiBAcGFyYW0ge0J1ZmZlcn0gZGF0YSAtIGJpbmFyeSBkYXRhIHN0cmVhbWVkIGZyb20gdGhlIE1KcGVnIGNvbnN1bWVyXG4gICAqL1xuICB3cml0ZSAoZGF0YSkge1xuICAgIHRoaXMubGFzdENodW5rID0gZGF0YTtcbiAgICB0aGlzLnVwZGF0ZUNvdW50Kys7XG5cbiAgICBpZiAodGhpcy5yZWdpc3RlclN0YXJ0U3VjY2Vzcykge1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0U3VjY2VzcygpO1xuICAgICAgdGhpcy5yZWdpc3RlclN0YXJ0U3VjY2VzcyA9IG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cblxuZXhwb3J0IHsgTUpwZWdTdHJlYW0gfTtcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ /// <reference types="node" />
2
+ export const mkdirp: (dir: import("fs").PathLike) => Promise<string | undefined>;
3
+ //# sourceMappingURL=mkdirp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mkdirp.d.ts","sourceRoot":"","sources":["../../lib/mkdirp.js"],"names":[],"mappings":""}
@@ -1,20 +1,16 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
- Object.defineProperty(exports, "mkdirp", {
9
- enumerable: true,
10
- get: function () {
11
- return _mkdirp.default;
12
- }
13
- });
6
+ exports.mkdirp = void 0;
14
7
 
15
8
  require("source-map-support/register");
16
9
 
17
- var _mkdirp = _interopRequireDefault(require("mkdirp"));require('source-map-support').install();
18
-
10
+ var _fs = require("./fs");
19
11
 
20
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9ta2RpcnAuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG1rZGlycCBmcm9tICdta2RpcnAnO1xuXG4vKipcbiAqIFRPRE86IG9uY2Ugd2UgZHJvcCBzdXBwb3J0IGZvciBOb2RlIDEwLCB0aGlzIHNob3VsZCBiZSByZW1vdmVkIGluIGZhdm9yXG4gKiBvZiBmcy5ta2RpcihkaXIsIHtyZWN1cnNpdmU6IHRydWV9KTtcbiAqL1xuXG5cbmV4cG9ydCB7IG1rZGlycCB9O1xuIl0sImZpbGUiOiJsaWIvbWtkaXJwLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
12
+ const {
13
+ mkdirp
14
+ } = _fs.fs;
15
+ exports.mkdirp = mkdirp;
16
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9ta2RpcnAuanMiXSwibmFtZXMiOlsibWtkaXJwIiwiZnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUlBLE1BQU07QUFBRUEsRUFBQUE7QUFBRixJQUFhQyxNQUFuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZzIH0gZnJvbSAnLi9mcyc7XG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgZnMubWtkaXJwYCBpbnN0ZWFkLlxuICovXG5jb25zdCB7IG1rZGlycCB9ID0gZnM7XG5leHBvcnQgeyBta2RpcnAgfTtcbiJdfQ==