New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

cli-kit

Package Overview
Dependencies
Maintainers
1
Versions
107
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cli-kit - npm Package Compare versions

Comparing version 1.7.0 to 1.8.0

19

CHANGELOG.md

@@ -0,1 +1,20 @@

# 1.8.0 (Aug 25, 2020)
* feat(parser): Added `finalize` event hook that is emitted before applying defaults and filling
`argv` and `_`.
* feat(parser): Added `data` and `parser` to `parse` event payload and all argument and option
callbacks.
* feat(parser): Fire argument and option callbacks for every argument and option across all
contexts even if they're not discovered. This allows programs to dynamically resolve default
values or alter the context tree.
* feat(command): Added `callback` parameter that is fired as soon as the parser finds the command.
* refactor(parser): `Parser` now extends a `HookEmitter` and is linked to the `CLI` instance to
decouple the `CLI` from the `Parser`.
* refactor(parser): Moved default value initialization and populating `argv` and `_` to end of
parser chain so that option callbacks have the ability to modify the contexts and continue
parsing.
* fix(keys): Fixed `generateKey()` to support multiple sequential escape sequences.
* chore: Updated dependencies.
* test(keys): Added unit tests for `generateKey()`.
# 1.7.0 (Aug 13, 2020)

@@ -2,0 +21,0 @@

20

dist/lib/keys.js

@@ -15,3 +15,2 @@ "use strict";

function generateKey(ch) {
let escaped = ch === '\x1b';
const key = {

@@ -21,6 +20,15 @@ ctrl: false,

name: undefined,
sequence: null,
sequence: typeof ch === 'string' ? ch : null,
shift: false
};
let escaped = typeof ch === 'string' && ch.startsWith('\x1b');
if (escaped) {
ch = ch.substring(1);
if (ch.startsWith('\x1b')) {
ch = ch.substring(1);
}
}
if (escaped && (ch === 'O' || ch === '[')) {// unsupported

@@ -33,3 +41,3 @@ } else if (ch === '\n') {

key.name = 'backspace';
} else if (escaped) {
} else if (ch === '\x1b') {
key.meta = escaped;

@@ -50,8 +58,6 @@ key.name = 'escape';

key.name = ch.length ? undefined : 'escape';
} // we don't support real sequences
}
key.sequence = ch;
return key;
}
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9rZXlzLmpzIl0sIm5hbWVzIjpbImdlbmVyYXRlS2V5IiwiY2giLCJlc2NhcGVkIiwia2V5IiwiY3RybCIsIm1ldGEiLCJuYW1lIiwidW5kZWZpbmVkIiwic2VxdWVuY2UiLCJzaGlmdCIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsImNoYXJDb2RlQXQiLCJ0ZXN0IiwidG9Mb3dlckNhc2UiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7Ozs7O0FBTU8sU0FBU0EsV0FBVCxDQUFxQkMsRUFBckIsRUFBeUI7QUFDL0IsTUFBSUMsT0FBTyxHQUFHRCxFQUFFLEtBQUssTUFBckI7QUFFQSxRQUFNRSxHQUFHLEdBQUc7QUFDWEMsSUFBQUEsSUFBSSxFQUFFLEtBREs7QUFFWEMsSUFBQUEsSUFBSSxFQUFFLEtBRks7QUFHWEMsSUFBQUEsSUFBSSxFQUFFQyxTQUhLO0FBSVhDLElBQUFBLFFBQVEsRUFBRSxJQUpDO0FBS1hDLElBQUFBLEtBQUssRUFBRTtBQUxJLEdBQVo7O0FBUUEsTUFBSVAsT0FBTyxLQUFLRCxFQUFFLEtBQUssR0FBUCxJQUFjQSxFQUFFLEtBQUssR0FBMUIsQ0FBWCxFQUEyQyxDQUMxQztBQUNBLEdBRkQsTUFFTyxJQUFJQSxFQUFFLEtBQUssSUFBWCxFQUFpQjtBQUN2QkUsSUFBQUEsR0FBRyxDQUFDRyxJQUFKLEdBQVcsT0FBWDtBQUNBLEdBRk0sTUFFQSxJQUFJTCxFQUFFLEtBQUssSUFBWCxFQUFpQjtBQUN2QkUsSUFBQUEsR0FBRyxDQUFDRyxJQUFKLEdBQVcsUUFBWDtBQUNBLEdBRk0sTUFFQSxJQUFJTCxFQUFFLEtBQUssSUFBUCxJQUFlQSxFQUFFLEtBQUssTUFBMUIsRUFBa0M7QUFDeENFLElBQUFBLEdBQUcsQ0FBQ0csSUFBSixHQUFXLFdBQVg7QUFDQSxHQUZNLE1BRUEsSUFBSUosT0FBSixFQUFhO0FBQ25CQyxJQUFBQSxHQUFHLENBQUNFLElBQUosR0FBV0gsT0FBWDtBQUNBQyxJQUFBQSxHQUFHLENBQUNHLElBQUosR0FBVyxRQUFYO0FBQ0EsR0FITSxNQUdBLElBQUlMLEVBQUUsS0FBSyxHQUFYLEVBQWdCO0FBQ3RCRSxJQUFBQSxHQUFHLENBQUNFLElBQUosR0FBV0gsT0FBWDtBQUNBQyxJQUFBQSxHQUFHLENBQUNHLElBQUosR0FBVyxPQUFYO0FBQ0EsR0FITSxNQUdBLElBQUksQ0FBQ0osT0FBRCxJQUFZRCxFQUFFLElBQUksTUFBdEIsRUFBOEI7QUFDcENFLElBQUFBLEdBQUcsQ0FBQ0MsSUFBSixHQUFXLElBQVg7QUFDQUQsSUFBQUEsR0FBRyxDQUFDRyxJQUFKLEdBQVdJLE1BQU0sQ0FBQ0MsWUFBUCxDQUFvQlYsRUFBRSxDQUFDVyxVQUFILENBQWMsQ0FBZCxJQUFtQixJQUFJQSxVQUFKLENBQWUsQ0FBZixDQUFuQixHQUF1QyxDQUEzRCxDQUFYO0FBQ0EsR0FITSxNQUdBLElBQUksZ0JBQWdCQyxJQUFoQixDQUFxQlosRUFBckIsQ0FBSixFQUE4QjtBQUNwQ0UsSUFBQUEsR0FBRyxDQUFDRSxJQUFKLEdBQVdILE9BQVg7QUFDQUMsSUFBQUEsR0FBRyxDQUFDRyxJQUFKLEdBQVdMLEVBQUUsQ0FBQ2EsV0FBSCxFQUFYO0FBQ0FYLElBQUFBLEdBQUcsQ0FBQ00sS0FBSixHQUFZLFVBQVVJLElBQVYsQ0FBZVosRUFBZixDQUFaO0FBQ0EsR0FKTSxNQUlBLElBQUlDLE9BQUosRUFBYTtBQUNuQkMsSUFBQUEsR0FBRyxDQUFDRSxJQUFKLEdBQVcsSUFBWDtBQUNBRixJQUFBQSxHQUFHLENBQUNHLElBQUosR0FBV0wsRUFBRSxDQUFDYyxNQUFILEdBQVlSLFNBQVosR0FBd0IsUUFBbkM7QUFDQSxHQW5DOEIsQ0FxQy9COzs7QUFDQUosRUFBQUEsR0FBRyxDQUFDSyxRQUFKLEdBQWVQLEVBQWY7QUFFQSxTQUFPRSxHQUFQO0FBQ0EiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENyZWF0ZXMgYSBrZXlwcmVzcyBrZXkgb2JqZWN0LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBjaCAtIEEgY2hhcmFjdGVyIHNlcXVlbmNlIHRvIGdlbmVyYXRlIHRoZSBrZXkgZnJvbS5cbiAqIEByZXR1cm5zIHtPYmplY3R9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZUtleShjaCkge1xuXHRsZXQgZXNjYXBlZCA9IGNoID09PSAnXFx4MWInO1xuXG5cdGNvbnN0IGtleSA9IHtcblx0XHRjdHJsOiBmYWxzZSxcblx0XHRtZXRhOiBmYWxzZSxcblx0XHRuYW1lOiB1bmRlZmluZWQsXG5cdFx0c2VxdWVuY2U6IG51bGwsXG5cdFx0c2hpZnQ6IGZhbHNlXG5cdH07XG5cblx0aWYgKGVzY2FwZWQgJiYgKGNoID09PSAnTycgfHwgY2ggPT09ICdbJykpIHtcblx0XHQvLyB1bnN1cHBvcnRlZFxuXHR9IGVsc2UgaWYgKGNoID09PSAnXFxuJykge1xuXHRcdGtleS5uYW1lID0gJ2VudGVyJztcblx0fSBlbHNlIGlmIChjaCA9PT0gJ1xccicpIHtcblx0XHRrZXkubmFtZSA9ICdyZXR1cm4nO1xuXHR9IGVsc2UgaWYgKGNoID09PSAnXFxiJyB8fCBjaCA9PT0gJ1xceDdmJykge1xuXHRcdGtleS5uYW1lID0gJ2JhY2tzcGFjZSc7XG5cdH0gZWxzZSBpZiAoZXNjYXBlZCkge1xuXHRcdGtleS5tZXRhID0gZXNjYXBlZDtcblx0XHRrZXkubmFtZSA9ICdlc2NhcGUnO1xuXHR9IGVsc2UgaWYgKGNoID09PSAnICcpIHtcblx0XHRrZXkubWV0YSA9IGVzY2FwZWQ7XG5cdFx0a2V5Lm5hbWUgPSAnc3BhY2UnO1xuXHR9IGVsc2UgaWYgKCFlc2NhcGVkICYmIGNoIDw9ICdcXHgxYScpIHtcblx0XHRrZXkuY3RybCA9IHRydWU7XG5cdFx0a2V5Lm5hbWUgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKGNoLmNoYXJDb2RlQXQoMCkgKyAnYScuY2hhckNvZGVBdCgwKSAtIDEpO1xuXHR9IGVsc2UgaWYgKC9eWzAtOUEtWmEtel0kLy50ZXN0KGNoKSkge1xuXHRcdGtleS5tZXRhID0gZXNjYXBlZDtcblx0XHRrZXkubmFtZSA9IGNoLnRvTG93ZXJDYXNlKCk7XG5cdFx0a2V5LnNoaWZ0ID0gL15bQS1aXSQvLnRlc3QoY2gpO1xuXHR9IGVsc2UgaWYgKGVzY2FwZWQpIHtcblx0XHRrZXkubWV0YSA9IHRydWU7XG5cdFx0a2V5Lm5hbWUgPSBjaC5sZW5ndGggPyB1bmRlZmluZWQgOiAnZXNjYXBlJztcblx0fVxuXG5cdC8vIHdlIGRvbid0IHN1cHBvcnQgcmVhbCBzZXF1ZW5jZXNcblx0a2V5LnNlcXVlbmNlID0gY2g7XG5cblx0cmV0dXJuIGtleTtcbn1cbiJdLCJmaWxlIjoibGliL2tleXMuanMifQ==
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9rZXlzLmpzIl0sIm5hbWVzIjpbImdlbmVyYXRlS2V5IiwiY2giLCJrZXkiLCJjdHJsIiwibWV0YSIsIm5hbWUiLCJ1bmRlZmluZWQiLCJzZXF1ZW5jZSIsInNoaWZ0IiwiZXNjYXBlZCIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJTdHJpbmciLCJmcm9tQ2hhckNvZGUiLCJjaGFyQ29kZUF0IiwidGVzdCIsInRvTG93ZXJDYXNlIiwibGVuZ3RoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7Ozs7OztBQU1PLFNBQVNBLFdBQVQsQ0FBcUJDLEVBQXJCLEVBQXlCO0FBQy9CLFFBQU1DLEdBQUcsR0FBRztBQUNYQyxJQUFBQSxJQUFJLEVBQUUsS0FESztBQUVYQyxJQUFBQSxJQUFJLEVBQUUsS0FGSztBQUdYQyxJQUFBQSxJQUFJLEVBQUVDLFNBSEs7QUFJWEMsSUFBQUEsUUFBUSxFQUFFLE9BQU9OLEVBQVAsS0FBYyxRQUFkLEdBQXlCQSxFQUF6QixHQUE4QixJQUo3QjtBQUtYTyxJQUFBQSxLQUFLLEVBQUU7QUFMSSxHQUFaO0FBUUEsTUFBSUMsT0FBTyxHQUFHLE9BQU9SLEVBQVAsS0FBYyxRQUFkLElBQTBCQSxFQUFFLENBQUNTLFVBQUgsQ0FBYyxNQUFkLENBQXhDOztBQUNBLE1BQUlELE9BQUosRUFBYTtBQUNaUixJQUFBQSxFQUFFLEdBQUdBLEVBQUUsQ0FBQ1UsU0FBSCxDQUFhLENBQWIsQ0FBTDs7QUFDQSxRQUFJVixFQUFFLENBQUNTLFVBQUgsQ0FBYyxNQUFkLENBQUosRUFBMkI7QUFDMUJULE1BQUFBLEVBQUUsR0FBR0EsRUFBRSxDQUFDVSxTQUFILENBQWEsQ0FBYixDQUFMO0FBQ0E7QUFDRDs7QUFFRCxNQUFJRixPQUFPLEtBQUtSLEVBQUUsS0FBSyxHQUFQLElBQWNBLEVBQUUsS0FBSyxHQUExQixDQUFYLEVBQTJDLENBQzFDO0FBQ0EsR0FGRCxNQUVPLElBQUlBLEVBQUUsS0FBSyxJQUFYLEVBQWlCO0FBQ3ZCQyxJQUFBQSxHQUFHLENBQUNHLElBQUosR0FBVyxPQUFYO0FBQ0EsR0FGTSxNQUVBLElBQUlKLEVBQUUsS0FBSyxJQUFYLEVBQWlCO0FBQ3ZCQyxJQUFBQSxHQUFHLENBQUNHLElBQUosR0FBVyxRQUFYO0FBQ0EsR0FGTSxNQUVBLElBQUlKLEVBQUUsS0FBSyxJQUFQLElBQWVBLEVBQUUsS0FBSyxNQUExQixFQUFrQztBQUN4Q0MsSUFBQUEsR0FBRyxDQUFDRyxJQUFKLEdBQVcsV0FBWDtBQUNBLEdBRk0sTUFFQSxJQUFJSixFQUFFLEtBQUssTUFBWCxFQUFtQjtBQUN6QkMsSUFBQUEsR0FBRyxDQUFDRSxJQUFKLEdBQVdLLE9BQVg7QUFDQVAsSUFBQUEsR0FBRyxDQUFDRyxJQUFKLEdBQVcsUUFBWDtBQUNBLEdBSE0sTUFHQSxJQUFJSixFQUFFLEtBQUssR0FBWCxFQUFnQjtBQUN0QkMsSUFBQUEsR0FBRyxDQUFDRSxJQUFKLEdBQVdLLE9BQVg7QUFDQVAsSUFBQUEsR0FBRyxDQUFDRyxJQUFKLEdBQVcsT0FBWDtBQUNBLEdBSE0sTUFHQSxJQUFJLENBQUNJLE9BQUQsSUFBWVIsRUFBRSxJQUFJLE1BQXRCLEVBQThCO0FBQ3BDQyxJQUFBQSxHQUFHLENBQUNDLElBQUosR0FBVyxJQUFYO0FBQ0FELElBQUFBLEdBQUcsQ0FBQ0csSUFBSixHQUFXTyxNQUFNLENBQUNDLFlBQVAsQ0FBb0JaLEVBQUUsQ0FBQ2EsVUFBSCxDQUFjLENBQWQsSUFBbUIsSUFBSUEsVUFBSixDQUFlLENBQWYsQ0FBbkIsR0FBdUMsQ0FBM0QsQ0FBWDtBQUNBLEdBSE0sTUFHQSxJQUFJLGdCQUFnQkMsSUFBaEIsQ0FBcUJkLEVBQXJCLENBQUosRUFBOEI7QUFDcENDLElBQUFBLEdBQUcsQ0FBQ0UsSUFBSixHQUFXSyxPQUFYO0FBQ0FQLElBQUFBLEdBQUcsQ0FBQ0csSUFBSixHQUFXSixFQUFFLENBQUNlLFdBQUgsRUFBWDtBQUNBZCxJQUFBQSxHQUFHLENBQUNNLEtBQUosR0FBWSxVQUFVTyxJQUFWLENBQWVkLEVBQWYsQ0FBWjtBQUNBLEdBSk0sTUFJQSxJQUFJUSxPQUFKLEVBQWE7QUFDbkJQLElBQUFBLEdBQUcsQ0FBQ0UsSUFBSixHQUFXLElBQVg7QUFDQUYsSUFBQUEsR0FBRyxDQUFDRyxJQUFKLEdBQVdKLEVBQUUsQ0FBQ2dCLE1BQUgsR0FBWVgsU0FBWixHQUF3QixRQUFuQztBQUNBOztBQUVELFNBQU9KLEdBQVA7QUFDQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ3JlYXRlcyBhIGtleXByZXNzIGtleSBvYmplY3QuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGNoIC0gQSBjaGFyYWN0ZXIgc2VxdWVuY2UgdG8gZ2VuZXJhdGUgdGhlIGtleSBmcm9tLlxuICogQHJldHVybnMge09iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlS2V5KGNoKSB7XG5cdGNvbnN0IGtleSA9IHtcblx0XHRjdHJsOiBmYWxzZSxcblx0XHRtZXRhOiBmYWxzZSxcblx0XHRuYW1lOiB1bmRlZmluZWQsXG5cdFx0c2VxdWVuY2U6IHR5cGVvZiBjaCA9PT0gJ3N0cmluZycgPyBjaCA6IG51bGwsXG5cdFx0c2hpZnQ6IGZhbHNlXG5cdH07XG5cblx0bGV0IGVzY2FwZWQgPSB0eXBlb2YgY2ggPT09ICdzdHJpbmcnICYmIGNoLnN0YXJ0c1dpdGgoJ1xceDFiJyk7XG5cdGlmIChlc2NhcGVkKSB7XG5cdFx0Y2ggPSBjaC5zdWJzdHJpbmcoMSk7XG5cdFx0aWYgKGNoLnN0YXJ0c1dpdGgoJ1xceDFiJykpIHtcblx0XHRcdGNoID0gY2guc3Vic3RyaW5nKDEpO1xuXHRcdH1cblx0fVxuXG5cdGlmIChlc2NhcGVkICYmIChjaCA9PT0gJ08nIHx8IGNoID09PSAnWycpKSB7XG5cdFx0Ly8gdW5zdXBwb3J0ZWRcblx0fSBlbHNlIGlmIChjaCA9PT0gJ1xcbicpIHtcblx0XHRrZXkubmFtZSA9ICdlbnRlcic7XG5cdH0gZWxzZSBpZiAoY2ggPT09ICdcXHInKSB7XG5cdFx0a2V5Lm5hbWUgPSAncmV0dXJuJztcblx0fSBlbHNlIGlmIChjaCA9PT0gJ1xcYicgfHwgY2ggPT09ICdcXHg3ZicpIHtcblx0XHRrZXkubmFtZSA9ICdiYWNrc3BhY2UnO1xuXHR9IGVsc2UgaWYgKGNoID09PSAnXFx4MWInKSB7XG5cdFx0a2V5Lm1ldGEgPSBlc2NhcGVkO1xuXHRcdGtleS5uYW1lID0gJ2VzY2FwZSc7XG5cdH0gZWxzZSBpZiAoY2ggPT09ICcgJykge1xuXHRcdGtleS5tZXRhID0gZXNjYXBlZDtcblx0XHRrZXkubmFtZSA9ICdzcGFjZSc7XG5cdH0gZWxzZSBpZiAoIWVzY2FwZWQgJiYgY2ggPD0gJ1xceDFhJykge1xuXHRcdGtleS5jdHJsID0gdHJ1ZTtcblx0XHRrZXkubmFtZSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoY2guY2hhckNvZGVBdCgwKSArICdhJy5jaGFyQ29kZUF0KDApIC0gMSk7XG5cdH0gZWxzZSBpZiAoL15bMC05QS1aYS16XSQvLnRlc3QoY2gpKSB7XG5cdFx0a2V5Lm1ldGEgPSBlc2NhcGVkO1xuXHRcdGtleS5uYW1lID0gY2gudG9Mb3dlckNhc2UoKTtcblx0XHRrZXkuc2hpZnQgPSAvXltBLVpdJC8udGVzdChjaCk7XG5cdH0gZWxzZSBpZiAoZXNjYXBlZCkge1xuXHRcdGtleS5tZXRhID0gdHJ1ZTtcblx0XHRrZXkubmFtZSA9IGNoLmxlbmd0aCA/IHVuZGVmaW5lZCA6ICdlc2NhcGUnO1xuXHR9XG5cblx0cmV0dXJuIGtleTtcbn1cbiJdLCJmaWxlIjoibGliL2tleXMuanMifQ==

@@ -6,2 +6,3 @@ "use strict";

});
exports.assertNodeJSVersion = assertNodeJSVersion;
exports.declareCLIKitClass = declareCLIKitClass;

@@ -25,3 +26,3 @@ exports.decodeHeader = exports.decode = decode;

var _fs = _interopRequireDefault(require("fs"));
var _fsExtra = _interopRequireDefault(require("fs-extra"));

@@ -34,2 +35,4 @@ var _errors = _interopRequireDefault(require("./errors"));

var _semver = _interopRequireDefault(require("semver"));
var _which = _interopRequireDefault(require("which"));

@@ -40,2 +43,41 @@

/**
* The required Node.js version for cli-kit. This is used to assert the Node version at runtime.
* If the `CLI` instance is created with a `nodeVersion`, then it assert the greater of the two
* Node versions.
*
* @type {String}
*/
const clikitNodeVersion = _fsExtra.default.readJsonSync(_path.default.resolve(__dirname, '..', '..', 'package.json')).engines.node;
/**
* Asserts that the current Node.js version meets the requirements of cli-kit as well as the app.
*
* @param {Object} opts - Various options.
* @param {String} [opts.appName] - The name of the app.
* @param {String} [opts.nodeVersion] - The required Node.js version.
*/
function assertNodeJSVersion({
appName,
nodeVersion
}) {
const {
version: current
} = process;
let required;
if (!_semver.default.satisfies(current, clikitNodeVersion)) {
required = clikitNodeVersion;
} else if (nodeVersion && !_semver.default.satisfies(current, nodeVersion)) {
required = nodeVersion;
}
if (required) {
throw _errors.default.INVALID_NODE_JS(`${appName !== 'program' && appName || 'This program'} requires Node.js version ${required}, currently ${current}`, {
current,
required
});
}
}
/**
* Adds the name of the class and any base classes to an internal `clikit` property.

@@ -47,2 +89,4 @@ *

*/
function declareCLIKitClass(obj, name) {

@@ -114,3 +158,3 @@ return Object.defineProperty(obj, 'clikit', {

try {
contents = _fs.default.readFileSync(file, 'utf8');
contents = _fsExtra.default.readFileSync(file, 'utf8');
} catch (e) {

@@ -155,3 +199,3 @@ // istanbul ignore next

if (_fs.default.statSync(main).isDirectory()) {
if (_fsExtra.default.statSync(main).isDirectory()) {
main = _path.default.join(main, 'index.js');

@@ -210,3 +254,3 @@ }

try {
return _fs.default.statSync(file).isFile();
return _fsExtra.default.statSync(file).isFile();
} catch (e) {// squelch

@@ -217,2 +261,3 @@ }

}
/**

@@ -227,4 +272,2 @@ * Splits an argv (argument vector) string.

*/
function split(it) {

@@ -278,2 +321,2 @@ return (0, _argvSplit.default)(it);

}
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91dGlsLmpzIl0sIm5hbWVzIjpbImRlY2xhcmVDTElLaXRDbGFzcyIsIm9iaiIsIm5hbWUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsInZhbHVlIiwiU2V0IiwiY2xpa2l0IiwiZGVjb2RlIiwidW5kZWZpbmVkIiwiSlNPTiIsInBhcnNlIiwiQnVmZmVyIiwiZnJvbSIsInRvU3RyaW5nIiwiZW5jb2RlIiwiaXQiLCJzdHJpbmdpZnkiLCJmaWxlbmFtZSIsImZpbGUiLCJwYXRoIiwiYmFzZW5hbWUiLCJyZXBsYWNlIiwiZmluZFBhY2thZ2UiLCJzZWFyY2hQYXRoIiwianNvbiIsIm1haW4iLCJyb290IiwicGtnRGlyIiwic3luYyIsInJlc29sdmUiLCJfX2Rpcm5hbWUiLCJ0ZXN0IiwiaXNGaWxlIiwiam9pbiIsImNvbnRlbnRzIiwiZnMiLCJyZWFkRmlsZVN5bmMiLCJlIiwiRSIsIklOVkFMSURfUEFDS0FHRV9KU09OIiwibWVzc2FnZSIsInNjb3BlIiwiYXNzaWduIiwic3RhdFN5bmMiLCJpc0RpcmVjdG9yeSIsImRpcm5hbWUiLCJpc0V4ZWN1dGFibGUiLCJiaW4iLCJhcmdzIiwic3BsaXQiLCJzaGlmdCIsImVyciIsIndoaWNoIiwid3JhcCIsInN0ciIsIndpZHRoIiwiaW5kZW50IiwicmVwZWF0IiwibWFwIiwibGluZSIsImkiLCJqIiwiayIsImxlbmd0aCIsImNoYXJBdCIsInN1YnN0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFJQTs7Ozs7OztBQU9PLFNBQVNBLGtCQUFULENBQTRCQyxHQUE1QixFQUFpQ0MsSUFBakMsRUFBdUM7QUFDN0MsU0FBT0MsTUFBTSxDQUFDQyxjQUFQLENBQXNCSCxHQUF0QixFQUEyQixRQUEzQixFQUFxQztBQUMzQ0ksSUFBQUEsWUFBWSxFQUFFLElBRDZCO0FBRTNDQyxJQUFBQSxLQUFLLEVBQUUsSUFBSUMsR0FBSixDQUFRLENBQUVMLElBQUYsRUFBUSxJQUFJRCxHQUFHLENBQUNPLE1BQUosSUFBYyxFQUFsQixDQUFSLENBQVI7QUFGb0MsR0FBckMsQ0FBUDtBQUlBO0FBRUQ7Ozs7Ozs7O0FBTU8sU0FBU0MsTUFBVCxDQUFnQkgsS0FBaEIsRUFBdUI7QUFDN0IsU0FBT0EsS0FBSyxLQUFLSSxTQUFWLElBQXVCSixLQUFLLEtBQUssSUFBakMsR0FBd0MsRUFBeEMsR0FBNkNLLElBQUksQ0FBQ0MsS0FBTCxDQUFXQyxNQUFNLENBQUNDLElBQVAsQ0FBWVIsS0FBWixFQUFtQixRQUFuQixFQUE2QlMsUUFBN0IsQ0FBc0MsTUFBdEMsQ0FBWCxDQUFwRDtBQUNBOztBQUlEOzs7Ozs7QUFNTyxTQUFTQyxNQUFULENBQWdCQyxFQUFoQixFQUFvQjtBQUMxQixTQUFPQSxFQUFFLEtBQUtQLFNBQVAsSUFBb0JPLEVBQUUsS0FBSyxJQUEzQixHQUFrQ0EsRUFBbEMsR0FBdUNKLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSCxJQUFJLENBQUNPLFNBQUwsQ0FBZUQsRUFBZixDQUFaLEVBQWdDLE1BQWhDLEVBQXdDRixRQUF4QyxDQUFpRCxRQUFqRCxDQUE5QztBQUNBOztBQUlEOzs7Ozs7QUFNTyxTQUFTSSxRQUFULENBQWtCQyxJQUFsQixFQUF3QjtBQUM5QixTQUFPQyxjQUFLQyxRQUFMLENBQWNGLElBQWQsRUFBb0JHLE9BQXBCLENBQTRCLFVBQTVCLEVBQXdDLEVBQXhDLENBQVA7QUFDQTtBQUVEOzs7Ozs7Ozs7QUFPTyxTQUFTQyxXQUFULENBQXFCQyxVQUFyQixFQUFpQztBQUN2QyxNQUFJakIsTUFBTSxHQUFHLEtBQWI7QUFDQSxNQUFJa0IsSUFBSSxHQUFHLEVBQVg7QUFDQSxNQUFJQyxJQUFJLEdBQUcsSUFBWDtBQUNBLE1BQUlDLElBQUksR0FBR0MsZ0JBQU9DLElBQVAsQ0FBWUwsVUFBWixLQUEyQixJQUF0QyxDQUp1QyxDQU12Qzs7QUFDQSxNQUFJRyxJQUFJLEtBQUtQLGNBQUtVLE9BQUwsQ0FBYUMsU0FBYixFQUF3QixJQUF4QixFQUE4QixJQUE5QixDQUFiLEVBQWtEO0FBQ2pESixJQUFBQSxJQUFJLEdBQUcsSUFBUDtBQUNBOztBQUVELE1BQUksUUFBUUssSUFBUixDQUFhUixVQUFiLEtBQTRCUyxNQUFNLENBQUNULFVBQUQsQ0FBdEMsRUFBb0Q7QUFDbkRFLElBQUFBLElBQUksR0FBR0YsVUFBUDtBQUNBOztBQUVELE1BQUlHLElBQUosRUFBVTtBQUNULFVBQU1SLElBQUksR0FBR0MsY0FBS2MsSUFBTCxDQUFVUCxJQUFWLEVBQWdCLGNBQWhCLENBQWI7O0FBQ0EsUUFBSVEsUUFBSjs7QUFFQSxRQUFJO0FBQ0hBLE1BQUFBLFFBQVEsR0FBR0MsWUFBR0MsWUFBSCxDQUFnQmxCLElBQWhCLEVBQXNCLE1BQXRCLENBQVg7QUFDQSxLQUZELENBRUUsT0FBT21CLENBQVAsRUFBVTtBQUNYO0FBQ0EsWUFBTUMsZ0JBQUVDLG9CQUFGLENBQXdCLGdDQUErQkYsQ0FBQyxDQUFDRyxPQUFRLEVBQWpFLEVBQW9FO0FBQUV4QyxRQUFBQSxJQUFJLEVBQUUsY0FBUjtBQUF3QnlDLFFBQUFBLEtBQUssRUFBRSxrQkFBL0I7QUFBbURyQyxRQUFBQSxLQUFLLEVBQUVjO0FBQTFELE9BQXBFLENBQU47QUFDQTs7QUFFRCxRQUFJO0FBQ0hNLE1BQUFBLElBQUksR0FBR2YsSUFBSSxDQUFDQyxLQUFMLENBQVd3QixRQUFYLENBQVA7QUFDQSxLQUZELENBRUUsT0FBT0csQ0FBUCxFQUFVO0FBQ1gsWUFBTUMsZ0JBQUVDLG9CQUFGLENBQXdCLGlDQUFnQ0YsQ0FBQyxDQUFDRyxPQUFRLEVBQWxFLEVBQXFFO0FBQUV0QixRQUFBQSxJQUFGO0FBQVFsQixRQUFBQSxJQUFJLEVBQUUsa0JBQWQ7QUFBa0N5QyxRQUFBQSxLQUFLLEVBQUUsa0JBQXpDO0FBQTZEckMsUUFBQUEsS0FBSyxFQUFFOEI7QUFBcEUsT0FBckUsQ0FBTjtBQUNBOztBQUVELFFBQUksT0FBT1YsSUFBUCxLQUFnQixRQUFwQixFQUE4QjtBQUM3QixZQUFNYyxnQkFBRUMsb0JBQUYsQ0FBdUIsdUNBQXZCLEVBQWdFO0FBQUVyQixRQUFBQSxJQUFGO0FBQVFsQixRQUFBQSxJQUFJLEVBQUUsc0JBQWQ7QUFBc0N5QyxRQUFBQSxLQUFLLEVBQUUsa0JBQTdDO0FBQWlFckMsUUFBQUEsS0FBSyxFQUFFb0I7QUFBeEUsT0FBaEUsQ0FBTjtBQUNBOztBQUVELFFBQUlBLElBQUksQ0FBQ2xCLE1BQUwsSUFBZWtCLElBQUksQ0FBQyxTQUFELENBQXZCLEVBQW9DO0FBQ25DbEIsTUFBQUEsTUFBTSxHQUFHLElBQVQ7QUFDQUwsTUFBQUEsTUFBTSxDQUFDeUMsTUFBUCxDQUFjbEIsSUFBZCxFQUFvQkEsSUFBSSxDQUFDbEIsTUFBekIsRUFBaUNrQixJQUFJLENBQUMsU0FBRCxDQUFyQztBQUNBOztBQUVELFFBQUksQ0FBQ0MsSUFBTCxFQUFXO0FBQ1YsVUFBSUQsSUFBSSxDQUFDQyxJQUFULEVBQWU7QUFDZCxZQUFJO0FBQ0hBLFVBQUFBLElBQUksR0FBR04sY0FBS1UsT0FBTCxDQUFhSCxJQUFiLEVBQW1CRixJQUFJLENBQUNDLElBQXhCLENBQVA7O0FBQ0EsY0FBSVUsWUFBR1EsUUFBSCxDQUFZbEIsSUFBWixFQUFrQm1CLFdBQWxCLEVBQUosRUFBcUM7QUFDcENuQixZQUFBQSxJQUFJLEdBQUdOLGNBQUtjLElBQUwsQ0FBVVIsSUFBVixFQUFnQixVQUFoQixDQUFQO0FBQ0E7QUFDRCxTQUxELENBS0UsT0FBT1ksQ0FBUCxFQUFVO0FBQ1haLFVBQUFBLElBQUksR0FBR04sY0FBS1UsT0FBTCxDQUFhSCxJQUFiLEVBQW9CLEdBQUVGLElBQUksQ0FBQ0MsSUFBSyxLQUFoQyxDQUFQO0FBQ0E7QUFDRCxPQVRELE1BU087QUFDTkEsUUFBQUEsSUFBSSxHQUFHTixjQUFLVSxPQUFMLENBQWFILElBQWIsRUFBbUIsVUFBbkIsQ0FBUDtBQUNBOztBQUVELFVBQUksQ0FBQ00sTUFBTSxDQUFDUCxJQUFELENBQVgsRUFBbUI7QUFDbEJBLFFBQUFBLElBQUksR0FBRyxJQUFQO0FBQ0E7QUFDRDtBQUNELEdBNUNELE1BNENPO0FBQ05DLElBQUFBLElBQUksR0FBR0QsSUFBSSxHQUFHTixjQUFLMEIsT0FBTCxDQUFhcEIsSUFBYixDQUFILEdBQXdCLElBQW5DO0FBQ0E7O0FBRUQsU0FBTztBQUFFbkIsSUFBQUEsTUFBRjtBQUFVa0IsSUFBQUEsSUFBVjtBQUFnQkMsSUFBQUEsSUFBaEI7QUFBc0JDLElBQUFBO0FBQXRCLEdBQVA7QUFDQTtBQUVEOzs7Ozs7OztBQU1PLFNBQVNvQixZQUFULENBQXNCQyxHQUF0QixFQUEyQjtBQUNqQyxNQUFJQyxJQUFKOztBQUVBLE1BQUk7QUFDSEEsSUFBQUEsSUFBSSxHQUFHQyxLQUFLLENBQUNGLEdBQUQsQ0FBWjtBQUNBQSxJQUFBQSxHQUFHLEdBQUdDLElBQUksQ0FBQ0UsS0FBTCxFQUFOO0FBQ0EsR0FIRCxDQUdFLE9BQU9DLEdBQVAsRUFBWSxDQUNiO0FBQ0E7O0FBRUQsU0FBTyxDQUNOQyxlQUFNeEIsSUFBTixDQUFXbUIsR0FBWCxDQURNLEVBRU4sR0FBR0MsSUFGRyxDQUFQO0FBSUE7QUFFRDs7Ozs7Ozs7QUFNTyxTQUFTaEIsTUFBVCxDQUFnQmQsSUFBaEIsRUFBc0I7QUFDNUIsTUFBSTtBQUNILFdBQU9pQixZQUFHUSxRQUFILENBQVl6QixJQUFaLEVBQWtCYyxNQUFsQixFQUFQO0FBQ0EsR0FGRCxDQUVFLE9BQU9LLENBQVAsRUFBVSxDQUNYO0FBQ0E7O0FBQ0QsU0FBTyxLQUFQO0FBQ0E7QUFFRDs7Ozs7Ozs7Ozs7QUFTTyxTQUFTWSxLQUFULENBQWVsQyxFQUFmLEVBQW1CO0FBQ3pCLFNBQU8sd0JBQVVBLEVBQVYsQ0FBUDtBQUNBO0FBRUQ7Ozs7Ozs7Ozs7QUFRTyxTQUFTc0MsSUFBVCxDQUFjQyxHQUFkLEVBQW1CQyxLQUFuQixFQUEwQkMsTUFBMUIsRUFBa0M7QUFDeEMsTUFBSUQsS0FBSyxJQUFJLENBQWIsRUFBZ0I7QUFDZixXQUFPRCxHQUFQO0FBQ0E7O0FBRURFLEVBQUFBLE1BQU0sR0FBRyxJQUFJQyxNQUFKLENBQVdELE1BQU0sSUFBSSxDQUFyQixDQUFUO0FBRUEsU0FBT0YsR0FBRyxDQUNSTCxLQURLLENBQ0MsT0FERCxFQUVMUyxHQUZLLENBRURDLElBQUksSUFBSTtBQUNaLFFBQUlDLENBQUMsR0FBRyxDQUFSO0FBQ0EsUUFBSUMsQ0FBQyxHQUFHLENBQVI7QUFDQSxRQUFJQyxDQUFKLENBSFksQ0FLWjs7QUFDQUgsSUFBQUEsSUFBSSxHQUFHQSxJQUFJLENBQUN0QyxPQUFMLENBQWEsWUFBYixFQUEyQixFQUEzQixDQUFQLENBTlksQ0FNMkI7O0FBRXZDLFdBQU91QyxDQUFDLEdBQUdELElBQUksQ0FBQ0ksTUFBaEIsRUFBd0I7QUFDdkJILE1BQUFBLENBQUM7O0FBQ0QsVUFBSSxFQUFFQyxDQUFGLElBQU9OLEtBQVgsRUFBa0I7QUFDakI7QUFDQSxhQUFLTyxDQUFDLEdBQUdGLENBQVQsRUFBWUUsQ0FBQyxJQUFJLENBQWpCLEVBQW9CQSxDQUFDLEVBQXJCLEVBQXlCO0FBQ3hCLGNBQUksVUFBVS9CLElBQVYsQ0FBZTRCLElBQUksQ0FBQ0ssTUFBTCxDQUFZRixDQUFaLENBQWYsS0FBbUMsT0FBTy9CLElBQVAsQ0FBWTRCLElBQUksQ0FBQ0ssTUFBTCxDQUFZRixDQUFaLENBQVosTUFBZ0NBLENBQUMsR0FBRyxDQUFKLElBQVNILElBQUksQ0FBQ0ksTUFBZCxJQUF3QixZQUFZaEMsSUFBWixDQUFpQjRCLElBQUksQ0FBQ0ssTUFBTCxDQUFZRixDQUFDLEdBQUcsQ0FBaEIsQ0FBakIsQ0FBeEQsQ0FBdkMsRUFBdUk7QUFDdEksZ0JBQUlBLENBQUMsR0FBRyxDQUFKLEdBQVFILElBQUksQ0FBQ0ksTUFBakIsRUFBeUI7QUFDeEJKLGNBQUFBLElBQUksR0FBSSxHQUFFQSxJQUFJLENBQUNNLFNBQUwsQ0FBZSxDQUFmLEVBQWtCSCxDQUFsQixDQUFxQixLQUFJTixNQUFPLEdBQUVHLElBQUksQ0FBQ00sU0FBTCxDQUFlSCxDQUFDLEdBQUcsQ0FBbkIsQ0FBc0IsRUFBbEU7QUFDQUYsY0FBQUEsQ0FBQyxHQUFHRSxDQUFDLEdBQUcsQ0FBUjtBQUNBRCxjQUFBQSxDQUFDLEdBQUcsQ0FBSjtBQUNBOztBQUNEO0FBQ0E7QUFDRDtBQUNEO0FBQ0Q7O0FBRUQsV0FBT0YsSUFBUDtBQUNBLEdBNUJLLEVBNkJMMUIsSUE3QkssQ0E2QkEsSUE3QkEsQ0FBUDtBQThCQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhcmd2U3BsaXQgZnJvbSAnYXJndi1zcGxpdCc7XG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IEUgZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgcGtnRGlyIGZyb20gJ3BrZy1kaXInO1xuaW1wb3J0IHdoaWNoIGZyb20gJ3doaWNoJztcblxuZXhwb3J0IHsgcGtnRGlyIH07XG5cbi8qKlxuICogQWRkcyB0aGUgbmFtZSBvZiB0aGUgY2xhc3MgYW5kIGFueSBiYXNlIGNsYXNzZXMgdG8gYW4gaW50ZXJuYWwgYGNsaWtpdGAgcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9iaiAtIFRoZSBjbGkta2l0IG9iamVjdCBpbnN0YW5jZSB0byBlbWJlZCB0aGUgY2xhc3MgbmFtZS5cbiAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIC0gVGhlIGNsYXNzIG5hbWUuXG4gKiBAcmV0dXJucyB7T2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVjbGFyZUNMSUtpdENsYXNzKG9iaiwgbmFtZSkge1xuXHRyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iaiwgJ2NsaWtpdCcsIHtcblx0XHRjb25maWd1cmFibGU6IHRydWUsXG5cdFx0dmFsdWU6IG5ldyBTZXQoWyBuYW1lLCAuLi4ob2JqLmNsaWtpdCB8fCBbXSkgXSlcblx0fSk7XG59XG5cbi8qKlxuICogRGVjb2RlcyBhIHZhbHVlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB2YWx1ZSAtIFRoZSB2YWx1ZSB0byBkZWNvZGUuXG4gKiBAcmV0dXJucyB7Kn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY29kZSh2YWx1ZSkge1xuXHRyZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCA/ICcnIDogSlNPTi5wYXJzZShCdWZmZXIuZnJvbSh2YWx1ZSwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGY4JykpO1xufVxuXG5leHBvcnQgeyBkZWNvZGUgYXMgZGVjb2RlSGVhZGVyIH07XG5cbi8qKlxuICogRW5jb2RlcyBhIEphdmFTY3JpcHQgdmFsdWUgdXNpbmcgYmFzZTY0LlxuICpcbiAqIEBwYXJhbSB7Kn0gaXQgLSBBIHZhbHVlIHRvIGVuY29kZS5cbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbmNvZGUoaXQpIHtcblx0cmV0dXJuIGl0ID09PSB1bmRlZmluZWQgfHwgaXQgPT09IG51bGwgPyBpdCA6IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KGl0KSwgJ3V0ZjgnKS50b1N0cmluZygnYmFzZTY0Jyk7XG59XG5cbmV4cG9ydCB7IGVuY29kZSBhcyBlbmNvZGVIZWFkZXIgfTtcblxuLyoqXG4gKiBTdHJpcHMgb2ZmIHRoZSBmaWxlIGV4dGVuc2lvbiBhbmQgcmV0dXJucyB0aGUgZmlsZW5hbWUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGZpbGUgLSBUaGUgZmlsZSB0byBleHRyYWN0IHRoZSBmaWxlbmFtZSBmcm9tLlxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbGVuYW1lKGZpbGUpIHtcblx0cmV0dXJuIHBhdGguYmFzZW5hbWUoZmlsZSkucmVwbGFjZSgvXFwuW14uXSskLywgJycpO1xufVxuXG4vKipcbiAqIFNlYXJjaGVzIHRoZSBzcGVjaWZpZWQgcGF0aCBmb3IgdGhlIHBhY2thZ2Ugcm9vdCwgdGhlbiByZXR1cm5zIHRoZSBkaXJlY3RvcnkgYW5kIHBhcnNlZFxuICogYHBhY2thZ2UuanNvbmAuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHNlYXJjaFBhdGggLSBUaGUgcGF0aCB0byBzZWFyY2guXG4gKiBAcmV0dXJucyB7T2JqZWN0fVxuICovXG5leHBvcnQgZnVuY3Rpb24gZmluZFBhY2thZ2Uoc2VhcmNoUGF0aCkge1xuXHRsZXQgY2xpa2l0ID0gZmFsc2U7XG5cdGxldCBqc29uID0ge307XG5cdGxldCBtYWluID0gbnVsbDtcblx0bGV0IHJvb3QgPSBwa2dEaXIuc3luYyhzZWFyY2hQYXRoKSB8fCBudWxsO1xuXG5cdC8vIGRvbid0IGxldCB0aGUgdGVzdHMgdGhpbmsgdGhleSBhcmUgY2xpLWtpdFxuXHRpZiAocm9vdCA9PT0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJykpIHtcblx0XHRyb290ID0gbnVsbDtcblx0fVxuXG5cdGlmICgvXFwuanMkLy50ZXN0KHNlYXJjaFBhdGgpICYmIGlzRmlsZShzZWFyY2hQYXRoKSkge1xuXHRcdG1haW4gPSBzZWFyY2hQYXRoO1xuXHR9XG5cblx0aWYgKHJvb3QpIHtcblx0XHRjb25zdCBmaWxlID0gcGF0aC5qb2luKHJvb3QsICdwYWNrYWdlLmpzb24nKTtcblx0XHRsZXQgY29udGVudHM7XG5cblx0XHR0cnkge1xuXHRcdFx0Y29udGVudHMgPSBmcy5yZWFkRmlsZVN5bmMoZmlsZSwgJ3V0ZjgnKTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHQvLyBpc3RhbmJ1bCBpZ25vcmUgbmV4dFxuXHRcdFx0dGhyb3cgRS5JTlZBTElEX1BBQ0tBR0VfSlNPTihgVW5hYmxlIHRvIG9wZW4gcGFja2FnZS5qc29uOiAke2UubWVzc2FnZX1gLCB7IG5hbWU6ICdwYWNrYWdlLmpzb24nLCBzY29wZTogJ3V0aWwuZmluZFBhY2thZ2UnLCB2YWx1ZTogZmlsZSB9KTtcblx0XHR9XG5cblx0XHR0cnkge1xuXHRcdFx0anNvbiA9IEpTT04ucGFyc2UoY29udGVudHMpO1xuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdHRocm93IEUuSU5WQUxJRF9QQUNLQUdFX0pTT04oYEZhaWxlZCB0byBwYXJzZSBwYWNrYWdlLmpzb246ICR7ZS5tZXNzYWdlfWAsIHsgZmlsZSwgbmFtZTogJ3BhY2thZ2UuanNvbi5iYWQnLCBzY29wZTogJ3V0aWwuZmluZFBhY2thZ2UnLCB2YWx1ZTogY29udGVudHMgfSk7XG5cdFx0fVxuXG5cdFx0aWYgKHR5cGVvZiBqc29uICE9PSAnb2JqZWN0Jykge1xuXHRcdFx0dGhyb3cgRS5JTlZBTElEX1BBQ0tBR0VfSlNPTignSW52YWxpZCBwYWNrYWdlLmpzb246IGV4cGVjdGVkIG9iamVjdCcsIHsgZmlsZSwgbmFtZTogJ3BhY2thZ2UuanNvbi5pbnZhbGlkJywgc2NvcGU6ICd1dGlsLmZpbmRQYWNrYWdlJywgdmFsdWU6IGpzb24gfSk7XG5cdFx0fVxuXG5cdFx0aWYgKGpzb24uY2xpa2l0IHx8IGpzb25bJ2NsaS1raXQnXSkge1xuXHRcdFx0Y2xpa2l0ID0gdHJ1ZTtcblx0XHRcdE9iamVjdC5hc3NpZ24oanNvbiwganNvbi5jbGlraXQsIGpzb25bJ2NsaS1raXQnXSk7XG5cdFx0fVxuXG5cdFx0aWYgKCFtYWluKSB7XG5cdFx0XHRpZiAoanNvbi5tYWluKSB7XG5cdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0bWFpbiA9IHBhdGgucmVzb2x2ZShyb290LCBqc29uLm1haW4pO1xuXHRcdFx0XHRcdGlmIChmcy5zdGF0U3luYyhtYWluKS5pc0RpcmVjdG9yeSgpKSB7XG5cdFx0XHRcdFx0XHRtYWluID0gcGF0aC5qb2luKG1haW4sICdpbmRleC5qcycpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdG1haW4gPSBwYXRoLnJlc29sdmUocm9vdCwgYCR7anNvbi5tYWlufS5qc2ApO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRtYWluID0gcGF0aC5yZXNvbHZlKHJvb3QsICdpbmRleC5qcycpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIWlzRmlsZShtYWluKSkge1xuXHRcdFx0XHRtYWluID0gbnVsbDtcblx0XHRcdH1cblx0XHR9XG5cdH0gZWxzZSB7XG5cdFx0cm9vdCA9IG1haW4gPyBwYXRoLmRpcm5hbWUobWFpbikgOiBudWxsO1xuXHR9XG5cblx0cmV0dXJuIHsgY2xpa2l0LCBqc29uLCBtYWluLCByb290IH07XG59XG5cbi8qKlxuICogQXR0ZW1wdHMgdG8gZGV0ZXJtaW5lIGlmIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGlzIGFuIGV4ZWN1dGFibGUuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGJpbiAtIEFuIGV4ZWN1dGFibGUgbmFtZSwgcGF0aCwgb3IgZW50aXJlIGNvbW1hbmQuXG4gKiBAcmV0dXJucyB7QXJyYXkuPFN0cmluZz59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0V4ZWN1dGFibGUoYmluKSB7XG5cdGxldCBhcmdzO1xuXG5cdHRyeSB7XG5cdFx0YXJncyA9IHNwbGl0KGJpbik7XG5cdFx0YmluID0gYXJncy5zaGlmdCgpO1xuXHR9IGNhdGNoIChlcnIpIHtcblx0XHQvLyB0aGlzIHNob3VsZG4ndCBoYXBwZW4sIGJ1dCBpZiBpdCBkb2VzLCBqdXN0IGZhbGxiYWNrIHRvIHRoZSBvcmlnaW5hbCB2YWx1ZVxuXHR9XG5cblx0cmV0dXJuIFtcblx0XHR3aGljaC5zeW5jKGJpbiksXG5cdFx0Li4uYXJnc1xuXHRdO1xufVxuXG4vKipcbiAqIERldGVybWluZXMgaWYgYSBmaWxlIGV4aXN0cyBhbmQgdGhhdCBpdCBpcyBpbmRlZWQgYSBmaWxlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWxlIC0gVGhlIGZpbGUgdG8gY2hlY2suXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRmlsZShmaWxlKSB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIGZzLnN0YXRTeW5jKGZpbGUpLmlzRmlsZSgpO1xuXHR9IGNhdGNoIChlKSB7XG5cdFx0Ly8gc3F1ZWxjaFxuXHR9XG5cdHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBTcGxpdHMgYW4gYXJndiAoYXJndW1lbnQgdmVjdG9yKSBzdHJpbmcuXG4gKlxuICogVGhpcyBmdW5jdGlvbiBpcyBqdXN0IGEgd3JhcHBlciBhcm91bmQgYXJndi1zcGxpdCBqdXN0IGluIGNhc2Ugd2UgZXZlciB3YW50IHRvIHJlcGxhY2UgaXQuXG4gKiBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9hcmd2LXNwbGl0LlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBpdCAtIFRoZSBhcmd2IHN0cmluZyB0byBzcGxpdC5cbiAqIEByZXR1cm5zIHtBcnJheS48U3RyaW5nPn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0KGl0KSB7XG5cdHJldHVybiBhcmd2U3BsaXQoaXQpO1xufVxuXG4vKipcbiAqIEluc2VydHMgbGluZSBicmVha3MgaW50byBhIHN0cmluZyBzbyB0aGF0IHRoZSB0ZXh0IGRvZXMgbm90IGV4Y2VlZCB0aGUgc3BlY2lmaWVkIHdpZHRoLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzdHIgLSBUaGUgc3RyaW5nIHRvIGxpbmUgd3JhcC5cbiAqIEBwYXJhbSB7TnVtYmVyfSBbd2lkdGhdIC0gVGhlIHdpZHRoIHRvIGJyZWFrIHRoZSBsaW5lczsgZGVmYXVsdHMgdG8gdGhlIHRlcm1pbmFsIHdpZHRoLlxuICogQHBhcmFtIHtOdW1iZXJ9IFtpbmRlbnRdIC0gVGhlIG51bWJlciBvZiBzcGFjZXMgdG8gaW5kZW50IG5ldyBsaW5lcy5cbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3cmFwKHN0ciwgd2lkdGgsIGluZGVudCkge1xuXHRpZiAod2lkdGggPD0gMCkge1xuXHRcdHJldHVybiBzdHI7XG5cdH1cblxuXHRpbmRlbnQgPSAnICcucmVwZWF0KGluZGVudCB8fCAwKTtcblxuXHRyZXR1cm4gc3RyXG5cdFx0LnNwbGl0KC9cXHI/XFxuLylcblx0XHQubWFwKGxpbmUgPT4ge1xuXHRcdFx0bGV0IGkgPSAwO1xuXHRcdFx0bGV0IGogPSAwO1xuXHRcdFx0bGV0IGs7XG5cblx0XHRcdC8vIHJlbW92ZSBlc2NhcGUgY2hhcmFjdGVyc1xuXHRcdFx0bGluZSA9IGxpbmUucmVwbGFjZSgvXFx1MDAxYlxcW0ovZywgJycpOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIG5vLWNvbnRyb2wtcmVnZXhcblxuXHRcdFx0d2hpbGUgKGkgPCBsaW5lLmxlbmd0aCkge1xuXHRcdFx0XHRpKys7XG5cdFx0XHRcdGlmICgrK2ogPj0gd2lkdGgpIHtcblx0XHRcdFx0XHQvLyBiYWNrcGVkYWxcblx0XHRcdFx0XHRmb3IgKGsgPSBpOyBrID49IDA7IGstLSkge1xuXHRcdFx0XHRcdFx0aWYgKC9bICw7IT9dLy50ZXN0KGxpbmUuY2hhckF0KGspKSB8fCAoL1suOl0vLnRlc3QobGluZS5jaGFyQXQoaykpICYmIChrICsgMSA+PSBsaW5lLmxlbmd0aCB8fCAvWyBcXHRcXHJcXG5dLy50ZXN0KGxpbmUuY2hhckF0KGsgKyAxKSkpKSkge1xuXHRcdFx0XHRcdFx0XHRpZiAoayArIDEgPCBsaW5lLmxlbmd0aCkge1xuXHRcdFx0XHRcdFx0XHRcdGxpbmUgPSBgJHtsaW5lLnN1YnN0cmluZygwLCBrKX1cXG4ke2luZGVudH0ke2xpbmUuc3Vic3RyaW5nKGsgKyAxKX1gO1xuXHRcdFx0XHRcdFx0XHRcdGkgPSBrICsgMTtcblx0XHRcdFx0XHRcdFx0XHRqID0gMDtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGxpbmU7XG5cdFx0fSlcblx0XHQuam9pbignXFxuJyk7XG59XG4iXSwiZmlsZSI6ImxpYi91dGlsLmpzIn0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi91dGlsLmpzIl0sIm5hbWVzIjpbImNsaWtpdE5vZGVWZXJzaW9uIiwiZnMiLCJyZWFkSnNvblN5bmMiLCJwYXRoIiwicmVzb2x2ZSIsIl9fZGlybmFtZSIsImVuZ2luZXMiLCJub2RlIiwiYXNzZXJ0Tm9kZUpTVmVyc2lvbiIsImFwcE5hbWUiLCJub2RlVmVyc2lvbiIsInZlcnNpb24iLCJjdXJyZW50IiwicHJvY2VzcyIsInJlcXVpcmVkIiwic2VtdmVyIiwic2F0aXNmaWVzIiwiRSIsIklOVkFMSURfTk9ERV9KUyIsImRlY2xhcmVDTElLaXRDbGFzcyIsIm9iaiIsIm5hbWUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImNvbmZpZ3VyYWJsZSIsInZhbHVlIiwiU2V0IiwiY2xpa2l0IiwiZGVjb2RlIiwidW5kZWZpbmVkIiwiSlNPTiIsInBhcnNlIiwiQnVmZmVyIiwiZnJvbSIsInRvU3RyaW5nIiwiZW5jb2RlIiwiaXQiLCJzdHJpbmdpZnkiLCJmaWxlbmFtZSIsImZpbGUiLCJiYXNlbmFtZSIsInJlcGxhY2UiLCJmaW5kUGFja2FnZSIsInNlYXJjaFBhdGgiLCJqc29uIiwibWFpbiIsInJvb3QiLCJwa2dEaXIiLCJzeW5jIiwidGVzdCIsImlzRmlsZSIsImpvaW4iLCJjb250ZW50cyIsInJlYWRGaWxlU3luYyIsImUiLCJJTlZBTElEX1BBQ0tBR0VfSlNPTiIsIm1lc3NhZ2UiLCJzY29wZSIsImFzc2lnbiIsInN0YXRTeW5jIiwiaXNEaXJlY3RvcnkiLCJkaXJuYW1lIiwiaXNFeGVjdXRhYmxlIiwiYmluIiwiYXJncyIsInNwbGl0Iiwic2hpZnQiLCJlcnIiLCJ3aGljaCIsIndyYXAiLCJzdHIiLCJ3aWR0aCIsImluZGVudCIsInJlcGVhdCIsIm1hcCIsImxpbmUiLCJpIiwiaiIsImsiLCJsZW5ndGgiLCJjaGFyQXQiLCJzdWJzdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFD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LGNBQUFBLENBQUMsR0FBR0UsQ0FBQyxHQUFHLENBQVI7QUFDQUQsY0FBQUEsQ0FBQyxHQUFHLENBQUo7QUFDQTs7QUFDRDtBQUNBO0FBQ0Q7QUFDRDtBQUNEOztBQUVELFdBQU9GLElBQVA7QUFDQSxHQTVCSyxFQTZCTHhCLElBN0JLLENBNkJBLElBN0JBLENBQVA7QUE4QkEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXJndlNwbGl0IGZyb20gJ2FyZ3Ytc3BsaXQnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCBFIGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHBrZ0RpciBmcm9tICdwa2ctZGlyJztcbmltcG9ydCBzZW12ZXIgZnJvbSAnc2VtdmVyJztcbmltcG9ydCB3aGljaCBmcm9tICd3aGljaCc7XG5cbi8qKlxuICogVGhlIHJlcXVpcmVkIE5vZGUuanMgdmVyc2lvbiBmb3IgY2xpLWtpdC4gVGhpcyBpcyB1c2VkIHRvIGFzc2VydCB0aGUgTm9kZSB2ZXJzaW9uIGF0IHJ1bnRpbWUuXG4gKiBJZiB0aGUgYENMSWAgaW5zdGFuY2UgaXMgY3JlYXRlZCB3aXRoIGEgYG5vZGVWZXJzaW9uYCwgdGhlbiBpdCBhc3NlcnQgdGhlIGdyZWF0ZXIgb2YgdGhlIHR3b1xuICogTm9kZSB2ZXJzaW9ucy5cbiAqXG4gKiBAdHlwZSB7U3RyaW5nfVxuICovXG5jb25zdCBjbGlraXROb2RlVmVyc2lvbiA9IGZzLnJlYWRKc29uU3luYyhwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4nLCAnLi4nLCAncGFja2FnZS5qc29uJykpLmVuZ2luZXMubm9kZTtcblxuLyoqXG4gKiBBc3NlcnRzIHRoYXQgdGhlIGN1cnJlbnQgTm9kZS5qcyB2ZXJzaW9uIG1lZXRzIHRoZSByZXF1aXJlbWVudHMgb2YgY2xpLWtpdCBhcyB3ZWxsIGFzIHRoZSBhcHAuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IG9wdHMgLSBWYXJpb3VzIG9wdGlvbnMuXG4gKiBAcGFyYW0ge1N0cmluZ30gW29wdHMuYXBwTmFtZV0gLSBUaGUgbmFtZSBvZiB0aGUgYXBwLlxuICogQHBhcmFtIHtTdHJpbmd9IFtvcHRzLm5vZGVWZXJzaW9uXSAtIFRoZSByZXF1aXJlZCBOb2RlLmpzIHZlcnNpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnROb2RlSlNWZXJzaW9uKHsgYXBwTmFtZSwgbm9kZVZlcnNpb24gfSkge1xuXHRjb25zdCB7IHZlcnNpb246IGN1cnJlbnQgfSA9IHByb2Nlc3M7XG5cdGxldCByZXF1aXJlZDtcblxuXHRpZiAoIXNlbXZlci5zYXRpc2ZpZXMoY3VycmVudCwgY2xpa2l0Tm9kZVZlcnNpb24pKSB7XG5cdFx0cmVxdWlyZWQgPSBjbGlraXROb2RlVmVyc2lvbjtcblx0fSBlbHNlIGlmIChub2RlVmVyc2lvbiAmJiAhc2VtdmVyLnNhdGlzZmllcyhjdXJyZW50LCBub2RlVmVyc2lvbikpIHtcblx0XHRyZXF1aXJlZCA9IG5vZGVWZXJzaW9uO1xuXHR9XG5cblx0aWYgKHJlcXVpcmVkKSB7XG5cdFx0dGhyb3cgRS5JTlZBTElEX05PREVfSlMoYCR7YXBwTmFtZSAhPT0gJ3Byb2dyYW0nICYmIGFwcE5hbWUgfHwgJ1RoaXMgcHJvZ3JhbSd9IHJlcXVpcmVzIE5vZGUuanMgdmVyc2lvbiAke3JlcXVpcmVkfSwgY3VycmVudGx5ICR7Y3VycmVudH1gLCB7XG5cdFx0XHRjdXJyZW50LFxuXHRcdFx0cmVxdWlyZWRcblx0XHR9KTtcblx0fVxufVxuXG4vKipcbiAqIEFkZHMgdGhlIG5hbWUgb2YgdGhlIGNsYXNzIGFuZCBhbnkgYmFzZSBjbGFzc2VzIHRvIGFuIGludGVybmFsIGBjbGlraXRgIHByb3BlcnR5LlxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvYmogLSBUaGUgY2xpLWtpdCBvYmplY3QgaW5zdGFuY2UgdG8gZW1iZWQgdGhlIGNsYXNzIG5hbWUuXG4gKiBAcGFyYW0ge1N0cmluZ30gbmFtZSAtIFRoZSBjbGFzcyBuYW1lLlxuICogQHJldHVybnMge09iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlY2xhcmVDTElLaXRDbGFzcyhvYmosIG5hbWUpIHtcblx0cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosICdjbGlraXQnLCB7XG5cdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXHRcdHZhbHVlOiBuZXcgU2V0KFsgbmFtZSwgLi4uKG9iai5jbGlraXQgfHwgW10pIF0pXG5cdH0pO1xufVxuXG4vKipcbiAqIERlY29kZXMgYSB2YWx1ZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gdmFsdWUgLSBUaGUgdmFsdWUgdG8gZGVjb2RlLlxuICogQHJldHVybnMgeyp9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGUodmFsdWUpIHtcblx0cmV0dXJuIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgPyAnJyA6IEpTT04ucGFyc2UoQnVmZmVyLmZyb20odmFsdWUsICdiYXNlNjQnKS50b1N0cmluZygndXRmOCcpKTtcbn1cblxuZXhwb3J0IHsgZGVjb2RlIGFzIGRlY29kZUhlYWRlciB9O1xuXG4vKipcbiAqIEVuY29kZXMgYSBKYXZhU2NyaXB0IHZhbHVlIHVzaW5nIGJhc2U2NC5cbiAqXG4gKiBAcGFyYW0geyp9IGl0IC0gQSB2YWx1ZSB0byBlbmNvZGUuXG4gKiBAcmV0dXJucyB7U3RyaW5nfVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5jb2RlKGl0KSB7XG5cdHJldHVybiBpdCA9PT0gdW5kZWZpbmVkIHx8IGl0ID09PSBudWxsID8gaXQgOiBCdWZmZXIuZnJvbShKU09OLnN0cmluZ2lmeShpdCksICd1dGY4JykudG9TdHJpbmcoJ2Jhc2U2NCcpO1xufVxuXG5leHBvcnQgeyBlbmNvZGUgYXMgZW5jb2RlSGVhZGVyIH07XG5cbi8qKlxuICogU3RyaXBzIG9mZiB0aGUgZmlsZSBleHRlbnNpb24gYW5kIHJldHVybnMgdGhlIGZpbGVuYW1lLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBmaWxlIC0gVGhlIGZpbGUgdG8gZXh0cmFjdCB0aGUgZmlsZW5hbWUgZnJvbS5cbiAqIEByZXR1cm5zIHtTdHJpbmd9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmaWxlbmFtZShmaWxlKSB7XG5cdHJldHVybiBwYXRoLmJhc2VuYW1lKGZpbGUpLnJlcGxhY2UoL1xcLlteLl0rJC8sICcnKTtcbn1cblxuLyoqXG4gKiBTZWFyY2hlcyB0aGUgc3BlY2lmaWVkIHBhdGggZm9yIHRoZSBwYWNrYWdlIHJvb3QsIHRoZW4gcmV0dXJucyB0aGUgZGlyZWN0b3J5IGFuZCBwYXJzZWRcbiAqIGBwYWNrYWdlLmpzb25gLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWFyY2hQYXRoIC0gVGhlIHBhdGggdG8gc2VhcmNoLlxuICogQHJldHVybnMge09iamVjdH1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZpbmRQYWNrYWdlKHNlYXJjaFBhdGgpIHtcblx0bGV0IGNsaWtpdCA9IGZhbHNlO1xuXHRsZXQganNvbiA9IHt9O1xuXHRsZXQgbWFpbiA9IG51bGw7XG5cdGxldCByb290ID0gcGtnRGlyLnN5bmMoc2VhcmNoUGF0aCkgfHwgbnVsbDtcblxuXHQvLyBkb24ndCBsZXQgdGhlIHRlc3RzIHRoaW5rIHRoZXkgYXJlIGNsaS1raXRcblx0aWYgKHJvb3QgPT09IHBhdGgucmVzb2x2ZShfX2Rpcm5hbWUsICcuLicsICcuLicpKSB7XG5cdFx0cm9vdCA9IG51bGw7XG5cdH1cblxuXHRpZiAoL1xcLmpzJC8udGVzdChzZWFyY2hQYXRoKSAmJiBpc0ZpbGUoc2VhcmNoUGF0aCkpIHtcblx0XHRtYWluID0gc2VhcmNoUGF0aDtcblx0fVxuXG5cdGlmIChyb290KSB7XG5cdFx0Y29uc3QgZmlsZSA9IHBhdGguam9pbihyb290LCAncGFja2FnZS5qc29uJyk7XG5cdFx0bGV0IGNvbnRlbnRzO1xuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnRlbnRzID0gZnMucmVhZEZpbGVTeW5jKGZpbGUsICd1dGY4Jyk7XG5cdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0Ly8gaXN0YW5idWwgaWdub3JlIG5leHRcblx0XHRcdHRocm93IEUuSU5WQUxJRF9QQUNLQUdFX0pTT04oYFVuYWJsZSB0byBvcGVuIHBhY2thZ2UuanNvbjogJHtlLm1lc3NhZ2V9YCwgeyBuYW1lOiAncGFja2FnZS5qc29uJywgc2NvcGU6ICd1dGlsLmZpbmRQYWNrYWdlJywgdmFsdWU6IGZpbGUgfSk7XG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdGpzb24gPSBKU09OLnBhcnNlKGNvbnRlbnRzKTtcblx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHR0aHJvdyBFLklOVkFMSURfUEFDS0FHRV9KU09OKGBGYWlsZWQgdG8gcGFyc2UgcGFja2FnZS5qc29uOiAke2UubWVzc2FnZX1gLCB7IGZpbGUsIG5hbWU6ICdwYWNrYWdlLmpzb24uYmFkJywgc2NvcGU6ICd1dGlsLmZpbmRQYWNrYWdlJywgdmFsdWU6IGNvbnRlbnRzIH0pO1xuXHRcdH1cblxuXHRcdGlmICh0eXBlb2YganNvbiAhPT0gJ29iamVjdCcpIHtcblx0XHRcdHRocm93IEUuSU5WQUxJRF9QQUNLQUdFX0pTT04oJ0ludmFsaWQgcGFja2FnZS5qc29uOiBleHBlY3RlZCBvYmplY3QnLCB7IGZpbGUsIG5hbWU6ICdwYWNrYWdlLmpzb24uaW52YWxpZCcsIHNjb3BlOiAndXRpbC5maW5kUGFja2FnZScsIHZhbHVlOiBqc29uIH0pO1xuXHRcdH1cblxuXHRcdGlmIChqc29uLmNsaWtpdCB8fCBqc29uWydjbGkta2l0J10pIHtcblx0XHRcdGNsaWtpdCA9IHRydWU7XG5cdFx0XHRPYmplY3QuYXNzaWduKGpzb24sIGpzb24uY2xpa2l0LCBqc29uWydjbGkta2l0J10pO1xuXHRcdH1cblxuXHRcdGlmICghbWFpbikge1xuXHRcdFx0aWYgKGpzb24ubWFpbikge1xuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdG1haW4gPSBwYXRoLnJlc29sdmUocm9vdCwganNvbi5tYWluKTtcblx0XHRcdFx0XHRpZiAoZnMuc3RhdFN5bmMobWFpbikuaXNEaXJlY3RvcnkoKSkge1xuXHRcdFx0XHRcdFx0bWFpbiA9IHBhdGguam9pbihtYWluLCAnaW5kZXguanMnKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdFx0XHRtYWluID0gcGF0aC5yZXNvbHZlKHJvb3QsIGAke2pzb24ubWFpbn0uanNgKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bWFpbiA9IHBhdGgucmVzb2x2ZShyb290LCAnaW5kZXguanMnKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCFpc0ZpbGUobWFpbikpIHtcblx0XHRcdFx0bWFpbiA9IG51bGw7XG5cdFx0XHR9XG5cdFx0fVxuXHR9IGVsc2Uge1xuXHRcdHJvb3QgPSBtYWluID8gcGF0aC5kaXJuYW1lKG1haW4pIDogbnVsbDtcblx0fVxuXG5cdHJldHVybiB7IGNsaWtpdCwganNvbiwgbWFpbiwgcm9vdCB9O1xufVxuXG4vKipcbiAqIEF0dGVtcHRzIHRvIGRldGVybWluZSBpZiB0aGUgc3BlY2lmaWVkIHN0cmluZyBpcyBhbiBleGVjdXRhYmxlLlxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSBiaW4gLSBBbiBleGVjdXRhYmxlIG5hbWUsIHBhdGgsIG9yIGVudGlyZSBjb21tYW5kLlxuICogQHJldHVybnMge0FycmF5LjxTdHJpbmc+fVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFeGVjdXRhYmxlKGJpbikge1xuXHRsZXQgYXJncztcblxuXHR0cnkge1xuXHRcdGFyZ3MgPSBzcGxpdChiaW4pO1xuXHRcdGJpbiA9IGFyZ3Muc2hpZnQoKTtcblx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0Ly8gdGhpcyBzaG91bGRuJ3QgaGFwcGVuLCBidXQgaWYgaXQgZG9lcywganVzdCBmYWxsYmFjayB0byB0aGUgb3JpZ2luYWwgdmFsdWVcblx0fVxuXG5cdHJldHVybiBbXG5cdFx0d2hpY2guc3luYyhiaW4pLFxuXHRcdC4uLmFyZ3Ncblx0XTtcbn1cblxuLyoqXG4gKiBEZXRlcm1pbmVzIGlmIGEgZmlsZSBleGlzdHMgYW5kIHRoYXQgaXQgaXMgaW5kZWVkIGEgZmlsZS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gZmlsZSAtIFRoZSBmaWxlIHRvIGNoZWNrLlxuICogQHJldHVybnMge0Jvb2xlYW59XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0ZpbGUoZmlsZSkge1xuXHR0cnkge1xuXHRcdHJldHVybiBmcy5zdGF0U3luYyhmaWxlKS5pc0ZpbGUoKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdC8vIHNxdWVsY2hcblx0fVxuXHRyZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCB7IHBrZ0RpciB9O1xuXG4vKipcbiAqIFNwbGl0cyBhbiBhcmd2IChhcmd1bWVudCB2ZWN0b3IpIHN0cmluZy5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIGlzIGp1c3QgYSB3cmFwcGVyIGFyb3VuZCBhcmd2LXNwbGl0IGp1c3QgaW4gY2FzZSB3ZSBldmVyIHdhbnQgdG8gcmVwbGFjZSBpdC5cbiAqIGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL2FyZ3Ytc3BsaXQuXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IGl0IC0gVGhlIGFyZ3Ygc3RyaW5nIHRvIHNwbGl0LlxuICogQHJldHVybnMge0FycmF5LjxTdHJpbmc+fVxuICovXG5leHBvcnQgZnVuY3Rpb24gc3BsaXQoaXQpIHtcblx0cmV0dXJuIGFyZ3ZTcGxpdChpdCk7XG59XG5cbi8qKlxuICogSW5zZXJ0cyBsaW5lIGJyZWFrcyBpbnRvIGEgc3RyaW5nIHNvIHRoYXQgdGhlIHRleHQgZG9lcyBub3QgZXhjZWVkIHRoZSBzcGVjaWZpZWQgd2lkdGguXG4gKlxuICogQHBhcmFtIHtTdHJpbmd9IHN0ciAtIFRoZSBzdHJpbmcgdG8gbGluZSB3cmFwLlxuICogQHBhcmFtIHtOdW1iZXJ9IFt3aWR0aF0gLSBUaGUgd2lkdGggdG8gYnJlYWsgdGhlIGxpbmVzOyBkZWZhdWx0cyB0byB0aGUgdGVybWluYWwgd2lkdGguXG4gKiBAcGFyYW0ge051bWJlcn0gW2luZGVudF0gLSBUaGUgbnVtYmVyIG9mIHNwYWNlcyB0byBpbmRlbnQgbmV3IGxpbmVzLlxuICogQHJldHVybnMge1N0cmluZ31cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdyYXAoc3RyLCB3aWR0aCwgaW5kZW50KSB7XG5cdGlmICh3aWR0aCA8PSAwKSB7XG5cdFx0cmV0dXJuIHN0cjtcblx0fVxuXG5cdGluZGVudCA9ICcgJy5yZXBlYXQoaW5kZW50IHx8IDApO1xuXG5cdHJldHVybiBzdHJcblx0XHQuc3BsaXQoL1xccj9cXG4vKVxuXHRcdC5tYXAobGluZSA9PiB7XG5cdFx0XHRsZXQgaSA9IDA7XG5cdFx0XHRsZXQgaiA9IDA7XG5cdFx0XHRsZXQgaztcblxuXHRcdFx0Ly8gcmVtb3ZlIGVzY2FwZSBjaGFyYWN0ZXJzXG5cdFx0XHRsaW5lID0gbGluZS5yZXBsYWNlKC9cXHUwMDFiXFxbSi9nLCAnJyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29udHJvbC1yZWdleFxuXG5cdFx0XHR3aGlsZSAoaSA8IGxpbmUubGVuZ3RoKSB7XG5cdFx0XHRcdGkrKztcblx0XHRcdFx0aWYgKCsraiA+PSB3aWR0aCkge1xuXHRcdFx0XHRcdC8vIGJhY2twZWRhbFxuXHRcdFx0XHRcdGZvciAoayA9IGk7IGsgPj0gMDsgay0tKSB7XG5cdFx0XHRcdFx0XHRpZiAoL1sgLDshP10vLnRlc3QobGluZS5jaGFyQXQoaykpIHx8ICgvWy46XS8udGVzdChsaW5lLmNoYXJBdChrKSkgJiYgKGsgKyAxID49IGxpbmUubGVuZ3RoIHx8IC9bIFxcdFxcclxcbl0vLnRlc3QobGluZS5jaGFyQXQoayArIDEpKSkpKSB7XG5cdFx0XHRcdFx0XHRcdGlmIChrICsgMSA8IGxpbmUubGVuZ3RoKSB7XG5cdFx0XHRcdFx0XHRcdFx0bGluZSA9IGAke2xpbmUuc3Vic3RyaW5nKDAsIGspfVxcbiR7aW5kZW50fSR7bGluZS5zdWJzdHJpbmcoayArIDEpfWA7XG5cdFx0XHRcdFx0XHRcdFx0aSA9IGsgKyAxO1xuXHRcdFx0XHRcdFx0XHRcdGogPSAwO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbGluZTtcblx0XHR9KVxuXHRcdC5qb2luKCdcXG4nKTtcbn1cbiJdLCJmaWxlIjoibGliL3V0aWwuanMifQ==

@@ -47,2 +47,3 @@ "use strict";

* aliases.
* @param {Function} [params.callback] - A function to call when the command has been parsed.
* @param {String|Function} [params.defaultCommand] - The default command to execute when this

@@ -131,2 +132,10 @@ * command has no `action`. When value is a `String`, it looks up the subcommand and calls it.

if (params.callback && typeof params.callback !== 'function') {
throw _errors.default.INVALID_ARGUMENT('Expected command callback to be a function', {
name: 'callback',
scop: 'Command.constructor',
value: params.callback
});
}
if (params.defaultCommand !== undefined && (!params.defaultCommand || typeof params.defaultCommand !== 'string' && typeof params.defaultCommand !== 'function')) {

@@ -234,2 +243,3 @@ throw _errors.default.INVALID_ARGUMENT('Expected default command to be a string or function', {

this._aliases = this.createAliases(aliases, params.aliases);
this.callback = params.callback;
this.clikitHelp = params.clikitHelp;

@@ -349,2 +359,2 @@ this.help = help;

exports.default = Command;
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnNlci9jb21tYW5kLmpzIl0sIm5hbWVzIjpbImZvcm1hdFJlZ0V4cCIsIm5hbWVSZWdFeHAiLCJDb21tYW5kIiwiQ29udGV4dCIsImNvbnN0cnVjdG9yIiwibmFtZSIsInBhcmFtcyIsIkUiLCJJTlZBTElEX0FSR1VNRU5UIiwic2NvcGUiLCJ2YWx1ZSIsImZvcm1hdCIsInRyaW0iLCJtIiwibWF0Y2giLCJhY3Rpb24iLCJhbGlhc2VzIiwiU2V0IiwiYWxpYXMiLCJzcGxpdCIsIm4iLCJpbmNsdWRlcyIsImFkZCIsIkFycmF5IiwiaXNBcnJheSIsImRlZmF1bHRDb21tYW5kIiwidW5kZWZpbmVkIiwiY2xpa2l0IiwiaGFzIiwidGl0bGUiLCJ0ZXJtaW5hbCIsInBhcnNlciIsImdldCIsImhlbHBDb21tYW5kIiwiY21kIiwiY29tbWFuZHMiLCJJTlZBTElEX0NMSUtJVF9PQkpFQ1QiLCJoZWxwIiwiaGVhZGVyIiwiZm9vdGVyIiwiYXJncyIsImxlbmd0aCIsImxvb2t1cCIsIl9hbGlhc2VzIiwiY3JlYXRlQWxpYXNlcyIsImNsaWtpdEhlbHAiLCJoaWRkZW4iLCJ2YWx1ZXMiLCJyZXN1bHQiLCJmcm9tIiwiT2JqZWN0IiwiYXNzaWduIiwiYSIsIklOVkFMSURfQUxJQVMiLCJzdWJzdHJpbmciLCJnZW5lcmF0ZUhlbHAiLCJvbiIsImN0eCIsInJlc3VsdHMiLCJvcHRzIiwic3R5bGUiLCJkZWJ1ZyIsInN0eWxlcyIsImNhbGwiLCJzY2hlbWEiLCJkZXNjIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7OztBQUVBLE1BQU1BLFlBQVksR0FBRyx1RUFBckI7QUFDQSxNQUFNQyxVQUFVLEdBQUcsd0JBQW5CO0FBRUE7Ozs7OztBQUtlLE1BQU1DLE9BQU4sU0FBc0JDLGdCQUF0QixDQUE4QjtBQUM1Qzs7Ozs7OztBQVFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTBCQUMsRUFBQUEsV0FBVyxDQUFDQyxJ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QU5EO0FBUUEsV0FBTyxNQUFNZ0IsWUFBTixFQUFQO0FBQ0E7QUFFRDs7Ozs7Ozs7QUFNQVMsRUFBQUEsTUFBTSxHQUFHO0FBQ1IsV0FBTztBQUNOQyxNQUFBQSxJQUFJLEVBQUUsS0FBS0E7QUFETCxLQUFQO0FBR0E7O0FBL1AyQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb250ZXh0IGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgZGVidWcgZnJvbSAnLi4vbGliL2RlYnVnJztcbmltcG9ydCBFIGZyb20gJy4uL2xpYi9lcnJvcnMnO1xuaW1wb3J0IGhlbHBDb21tYW5kIGZyb20gJy4uL2NvbW1hbmRzL2hlbHAnO1xuXG5pbXBvcnQgeyBkZWNsYXJlQ0xJS2l0Q2xhc3MgfSBmcm9tICcuLi9saWIvdXRpbCc7XG5cbmNvbnN0IGZvcm1hdFJlZ0V4cCA9IC9eKFtAISBdKltcXHctX10rKD86XFxzKixcXHMqW0AhIF0qW1xcdy1fXSspKikoKD86XFxzKls8W11bXFx3LV9dK1s+XFxdXSkqKT8kLztcbmNvbnN0IG5hbWVSZWdFeHAgPSAvXihbQCEgXSopKFtcXHctX10rKVxccyokLztcblxuLyoqXG4gKiBEZWZpbmVzIGEgY29tbWFuZCBhbmQgaXRzIG9wdGlvbnMgYW5kIGFyZ3VtZW50cy5cbiAqXG4gKiBAZXh0ZW5kcyB7Q29udGV4dH1cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29tbWFuZCBleHRlbmRzIENvbnRleHQge1xuXHQvKipcblx0ICogSW50ZXJuYWwgb2JqZWN0IGZvciB0cmFja2luZyBhbGlhc2VzLlxuXHQgKlxuXHQgKiBAdHlwZSB7T2JqZWN0fVxuXHQgKiBAcHJpdmF0ZVxuXHQgKi9cblx0X2FsaWFzZXMgPSB7fTtcblxuXHQvKipcblx0ICogQ29uc3RydWN0cyBhIGNvbW1hbmQgaW5zdGFuY2UuXG5cdCAqXG5cdCAqIEBwYXJhbSB7U3RyaW5nfSBuYW1lIC0gVGhlIGNvbW1hbmQgbmFtZS5cblx0ICogQHBhcmFtIHtPYmplY3R8Q0xJfENvbW1hbmR8Q29udGV4dHxGdW5jdGlvbn0gW3BhcmFtc10gLSBDb21tYW5kIHBhcmFtZXRlcnMgb3IgYW4gYWN0aW9uXG5cdCAqIGZ1bmN0aW9uLlxuXHQgKiBAcGFyYW0ge0Z1bmN0aW9ufENvbW1hbmR9IFtwYXJhbXMuYWN0aW9uXSAtIEEgZnVuY3Rpb24gdG8gY2FsbCB3aGVuIHRoZSBjb21tYW5kIGlzIGZvdW5kLlxuXHQgKiBAcGFyYW0ge1NldC48U3RyaW5nPnxBcnJheS48U3RyaW5nPnxTdHJpbmd8T2JqZWN0fSBbcGFyYW1zLmFsaWFzZXNdIC0gQW4gYXJyYXkgb2YgY29tbWFuZFxuXHQgKiBhbGlhc2VzLlxuXHQgKiBAcGFyYW0ge1N0cmluZ3xGdW5jdGlvbn0gW3BhcmFtcy5kZWZhdWx0Q29tbWFuZF0gLSBUaGUgZGVmYXVsdCBjb21tYW5kIHRvIGV4ZWN1dGUgd2hlbiB0aGlzXG5cdCAqIGNvbW1hbmQgaGFzIG5vIGBhY3Rpb25gLiBXaGVuIHZhbHVlIGlzIGEgYFN0cmluZ2AsIGl0IGxvb2tzIHVwIHRoZSBzdWJjb21tYW5kIGFuZCBjYWxscyBpdC5cblx0ICogSWYgdmFsdWUgaXMgYSBgRnVuY3Rpb25gLCBpdCBzaW1wbHkgaW52b2tlcyBpdC5cblx0ICogQHBhcmFtIHtTdHJpbmd8RnVuY3Rpb258T2JqZWN0fSBbcGFyYW1zLmhlbHBdIC0gQWRkaXRpb25hbCBoZWxwIGNvbnRlbnQgdG8gZGlzcGxheSBvbiB0aGVcblx0ICogaGVscCBzY3JlZW4uIFdoZW4gbWF5IGJlIGFuIG9iamVjdCB3aXRoIHRoZSBwcm9wZXJ0aWVzIGBoZWFkZXJgIGFuZCBgZm9vdGVyYCB3aGljaCB2YWx1ZXNcblx0ICogdGhhdCBhcmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIGFzeW5jIGZ1bmN0aW9uIHRoYXQgcmVzb2x2ZXMgYSBzdHJpbmcuIFdoZW4gdmFsdWUgaXMgYSBzdHJpbmdcblx0ICogb3IgZnVuY3Rpb24sIGl0IGlzIHRyYXNuZm9ybWVkIGludG8gYSBvYmplY3Qgd2l0aCB0aGUgdmFsdWUgYmVpbmcgdXNlZCBhcyB0aGUgaGVhZGVyLiBOb3RlXG5cdCAqIHRoYXQgdGhlIGNvbW1hbmQgZGVzY3JpcHRpb24gaXMgbm90IGRpc3BsYXllZCB3aGVuIGEgaGVhZGVyIG1lc3NhZ2UgaGFzIGJlZW4gZGVmaW5lZC5cblx0ICogQHBhcmFtIHtCb29sZWFufSBbcGFyYW1zLmhpZGRlbj1mYWxzZV0gLSBXaGVuIGB0cnVlYCwgdGhlIG9wdGlvbiBpcyBub3QgZGlzcGxheWVkIG9uIHRoZVxuXHQgKiBoZWxwIHNjcmVlbiBvciBhdXRvLXN1Z2dlc3QuXG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqXG5cdCAqIEBleGFtcGxlXG5cdCAqICAgbmV3IENvbW1hbmQoJ2ZvbycpXG5cdCAqICAgbmV3IENvbW1hbmQoJ2ZvbycsIHt9KVxuXHQgKiAgIG5ldyBDb21tYW5kKG5ldyBDb21tYW5kKCdmb28nKSlcblx0ICovXG5cdGNvbnN0cnVjdG9yKG5hbWUsIHBhcmFtcyA9IHt9KSB7XG5cdFx0aWYgKCFuYW1lIHx8IHR5cGVvZiBuYW1lICE9PSAnc3RyaW5nJykge1xuXHRcdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBjb21tYW5kIG5hbWUgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nJywgeyBuYW1lOiAnbmFtZScsIHNjb3BlOiAnQ29tbWFuZC5jb25zdHJ1Y3RvcicsIHZhbHVlOiBuYW1lIH0pO1xuXHRcdH1cblxuXHRcdC8vIHBhcnNlIHRoZSBuYW1lIGFuZCBjcmVhdGUgdGhlIGFsaWFzZXMgYW5kIGFyZ3M6IFwibHMsIGxpc3QgPGJhcj5cIlxuXHRcdGNvbnN0IGZvcm1hdCA9IG5hbWUudHJpbSgpO1xuXHRcdGNvbnN0IG0gPSBmb3JtYXQubWF0Y2goZm9ybWF0UmVnRXhwKTtcblx0XHRpZiAoIW0gfHwgIW1bMV0pIHtcblx0XHRcdHRocm93IEUuSU5WQUxJRF9BUkdVTUVOVCgnRXhwZWN0ZWQgY29tbWFuZCBuYW1lIHRvIGJlIGEgbm9uLWVtcHR5IHN0cmluZycsIHsgbmFtZTogJ25hbWUnLCBzY29wZTogJ0NvbW1hbmQuY29uc3RydWN0b3InLCB2YWx1ZTogbmFtZSB9KTtcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIHBhcmFtcyA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0cGFyYW1zID0geyBhY3Rpb246IHBhcmFtcyB9O1xuXHRcdH1cblxuXHRcdC8vIHJlc2V0IHRoZSBuYW1lXG5cdFx0bmFtZSA9IG51bGw7XG5cblx0XHQvLyBnZXQgdGhlIGFsaWFzZXMgZnJvbSB0aGUgZm9ybWF0IGFuZCBmaW5kIHRoZSBjb21tYW5kIG5hbWVcblx0XHRjb25zdCBhbGlhc2VzID0gbmV3IFNldCgpO1xuXHRcdGZvciAobGV0IGFsaWFzIG9mIG1bMV0uc3BsaXQoJywnKSkge1xuXHRcdFx0Y29uc3QgbiA9IGFsaWFzLm1hdGNoKG5hbWVSZWdFeHApO1xuXHRcdFx0aWYgKCFuKSB7XG5cdFx0XHRcdHRocm93IEUuSU5WQUxJRF9BUkdVTUVOVCgnSW52YWxpZCBjb21tYW5kIGFsaWFzIGZvcm1hdCcsIHsgbmFtZTogJ2FsaWFzJywgc2NvcGU6ICdDb21tYW5kLmNvbnN0cnVjdG9yJywgdmFsdWU6IGFsaWFzIH0pO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCFuWzFdLmluY2x1ZGVzKCdAJykgJiYgIW5hbWUpIHtcblx0XHRcdFx0bmFtZSA9IG5bMl07XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRhbGlhc2VzLmFkZChuWzFdLmluY2x1ZGVzKCchJykgPyBgISR7blsyXX1gIDogblsyXSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCFuYW1lKSB7XG5cdFx0XHR0aHJvdyAgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBjb21tYW5kIG5hbWUgZm9ybWF0IHRvIGNvbnRhaW4gYXQgbGVhc3Qgb25lIG5vbi1hbGlhc2VkIG5hbWUnLCB7IG5hbWU6ICdmb3JtYXQnLCBzY29wZTogJ0NvbW1hbmQuY29uc3RydWN0b3InLCB2YWx1ZTogZm9ybWF0IH0pO1xuXHRcdH1cblxuXHRcdGlmICghcGFyYW1zIHx8ICh0eXBlb2YgcGFyYW1zICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KHBhcmFtcykpKSB7XG5cdFx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIGNvbW1hbmQgcGFyYW1ldGVycyB0byBiZSBhbiBvYmplY3QnLCB7IG5hbWU6ICdwYXJhbXMnLCBzY29wZTogJ0NvbW1hbmQuY29uc3RydWN0b3InLCB2YWx1ZTogcGFyYW1zIH0pO1xuXHRcdH1cblxuXHRcdGlmIChwYXJhbXMuZGVmYXVsdENvbW1hbmQgIT09IHVuZGVmaW5lZCAmJiAoIXBhcmFtcy5kZWZhdWx0Q29tbWFuZCB8fCAodHlwZW9mIHBhcmFtcy5kZWZhdWx0Q29tbWFuZCAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHBhcmFtcy5kZWZhdWx0Q29tbWFuZCAhPT0gJ2Z1bmN0aW9uJykpKSB7XG5cdFx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIGRlZmF1bHQgY29tbWFuZCB0byBiZSBhIHN0cmluZyBvciBmdW5jdGlvbicsIHsgbmFtZTogJ2RlZmF1bHRDb21tYW5kJywgc2NvcGU6ICdDb21tYW5kLmNvbnN0cnVjdG9yJywgdmFsdWU6IHBhcmFtcy5kZWZhdWx0Q29tbWFuZCB9KTtcblx0XHR9XG5cblx0XHRpZiAocGFyYW1zLmNsaWtpdCBpbnN0YW5jZW9mIFNldCkge1xuXHRcdFx0Ly8gcGFyYW1zIGlzIGEgY2xpLWtpdCBvYmplY3Rcblx0XHRcdGlmIChwYXJhbXMuY2xpa2l0LmhhcygnQ0xJJykpIHtcblx0XHRcdFx0Ly8gc2luY2UgYSBjb21tYW5kIGNhbm5vdCBoYXZlIGEgdGl0bGUgXCJnbG9iYWxcIiAob25seSBhIGBDTElgIG9iamVjdCBjYW4gaGF2ZSB0aGF0KSxcblx0XHRcdFx0Ly8gd2UgbXVzdCBkZWxldGUgaXQgc28gdGhhdCB0aGUgdGl0bGUgaXMgcmVzZXQgdG8gdGhlIGNvbW1hbmQgbmFtZVxuXHRcdFx0XHRpZiAocGFyYW1zLnRpdGxlID09PSAnR2xvYmFsJykge1xuXHRcdFx0XHRcdGRlbGV0ZSBwYXJhbXMudGl0bGU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRkZWxldGUgcGFyYW1zLnRlcm1pbmFsO1xuXG5cdFx0XHRcdC8vIGFkZCBhbiBhY3Rpb24gaGFuZGxlciB0aGF0IGVpdGVociBleGVjdXRlcyBhIHNwZWNpZmljIGNvbW1hbmQgb3IgdGhlIGhlbHAgZm9yXG5cdFx0XHRcdC8vIGZvciB0aGlzIGNvbW1hbmQgKGUuZy4gdGhpcyBjb21tYW5kIGlzIGFuIGV4dGVuc2lvbilcblx0XHRcdFx0cGFyYW1zLmFjdGlvbiA9IGFzeW5jIHBhcnNlciA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgeyBkZWZhdWx0Q29tbWFuZCB9ID0gcGFyYW1zO1xuXHRcdFx0XHRcdGlmIChkZWZhdWx0Q29tbWFuZCA9PT0gJ2hlbHAnICYmIHRoaXMuZ2V0KCdoZWxwJykpIHtcblx0XHRcdFx0XHRcdGF3YWl0IGhlbHBDb21tYW5kLmFjdGlvbihwYXJzZXIpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCBjbWQgPSBkZWZhdWx0Q29tbWFuZCAmJiB0aGlzLmNvbW1hbmRzW2RlZmF1bHRDb21tYW5kXTtcblx0XHRcdFx0XHRcdGlmIChjbWQpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGNtZC5hY3Rpb24ocGFyc2VyKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cdFx0XHR9IGVsc2UgaWYgKCFwYXJhbXMuY2xpa2l0LmhhcygnQ29tbWFuZCcpKSB7XG5cdFx0XHRcdC8vIG11c3QgYmUgYSBjb21tYW5kIG9yIGV4dGVuc2lvblxuXHRcdFx0XHR0aHJvdyBFLklOVkFMSURfQ0xJS0lUX09CSkVDVCgnRXhwZWN0ZWQgY29tbWFuZCBvcHRpb25zIHRvIGJlIGEgQ0xJIG9yIENvbW1hbmQgb2JqZWN0JywgeyBuYW1lOiAnY2xpa2l0Jywgc2NvcGU6ICdDb21tYW5kLmNvbnN0cnVjdG9yJywgdmFsdWU6IHBhcmFtcy5jbGlraXQgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHBhcmFtcy5hY3Rpb24gJiYgdHlwZW9mIHBhcmFtcy5hY3Rpb24gIT09ICdmdW5jdGlvbicgJiYgIShwYXJhbXMuYWN0aW9uIGluc3RhbmNlb2YgQ29tbWFuZCkpIHtcblx0XHRcdHRocm93IEUuSU5WQUxJRF9BUkdVTUVOVCgnRXhwZWN0ZWQgY29tbWFuZCBhY3Rpb24gdG8gYmUgYSBmdW5jdGlvbiBvciBDb21tYW5kIGluc3RhbmNlJywgeyBuYW1lOiAnYWN0aW9uJywgc2NvcGU6ICdDb21tYW5kLmNvbnN0cnVjdG9yJywgdmFsdWU6IHBhcmFtcy5hY3Rpb24gfSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgaGVscCA9IHt9O1xuXHRcdGlmIChwYXJhbXMuaGVscCkge1xuXHRcdFx0aWYgKHR5cGVvZiBwYXJhbXMuaGVscCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHBhcmFtcy5oZWxwID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdGhlbHAuaGVhZGVyID0gcGFyYW1zLmhlbHA7XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBwYXJhbXMuaGVscCA9PT0gJ29iamVjdCcpIHtcblx0XHRcdFx0aWYgKHBhcmFtcy5oZWxwLmhlYWRlcikge1xuXHRcdFx0XHRcdGlmICh0eXBlb2YgcGFyYW1zLmhlbHAuaGVhZGVyID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgcGFyYW1zLmhlbHAuaGVhZGVyID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0XHRoZWxwLmhlYWRlciA9IHBhcmFtcy5oZWxwLmhlYWRlcjtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBoZWxwIGNvbnRlbnQgaGVhZGVyIHRvIGJlIGEgc3RyaW5nIG9yIGZ1bmN0aW9uJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChwYXJhbXMuaGVscC5mb290ZXIpIHtcblx0XHRcdFx0XHRpZiAodHlwZW9mIHBhcmFtcy5oZWxwLmZvb3RlciA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHBhcmFtcy5oZWxwLmZvb3RlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0aGVscC5mb290ZXIgPSBwYXJhbXMuaGVscC5mb290ZXI7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRocm93IEUuSU5WQUxJRF9BUkdVTUVOVCgnRXhwZWN0ZWQgaGVscCBjb250ZW50IGZvb3RlciB0byBiZSBhIHN0cmluZyBvciBmdW5jdGlvbicpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBoZWxwIGNvbnRlbnQgdG8gYmUgYSBzdHJpbmcsIGZ1bmN0aW9uLCBvciBvYmplY3QgY29udGFpbmluZyBhIGhlYWRlciBvciBmb290ZXInKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRwYXJhbXMubmFtZSA9IG5hbWU7XG5cblx0XHRjb25zdCBhcmdzID0gbVsyXSAmJiBtWzJdLnRyaW0oKS5zcGxpdCgvXFxzKy8pO1xuXHRcdGlmIChhcmdzPy5sZW5ndGgpIHtcblx0XHRcdHBhcmFtcy5hcmdzID0gcGFyYW1zLmFyZ3MgPyBbIC4uLmFyZ3MsIC4uLnBhcmFtcy5hcmdzIF0gOiBhcmdzO1xuXHRcdH1cblxuXHRcdHN1cGVyKHBhcmFtcyk7XG5cdFx0ZGVjbGFyZUNMSUtpdENsYXNzKHRoaXMsICdDb21tYW5kJyk7XG5cblx0XHRpZiAocGFyYW1zLmFjdGlvbikge1xuXHRcdFx0dGhpcy5hY3Rpb24gPSBwYXJhbXMuYWN0aW9uO1xuXHRcdH0gZWxzZSBpZiAodHlwZW9mIHBhcmFtcy5kZWZhdWx0Q29tbWFuZCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0dGhpcy5hY3Rpb24gPSBwYXJhbXMuZGVmYXVsdENvbW1hbmQ7XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgcGFyYW1zLmRlZmF1bHRDb21tYW5kID09PSAnc3RyaW5nJykge1xuXHRcdFx0dGhpcy5hY3Rpb24gPSB0aGlzLmxvb2t1cC5jb21tYW5kc1twYXJhbXMuZGVmYXVsdENvbW1hbmRdO1xuXHRcdH1cblxuXHRcdC8vIG1peCBhbGlhc2VzIFNldCB3aXRoIHBhcmFtcy5hbGlhc2VzXG5cdFx0dGhpcy5fYWxpYXNlcyAgICAgICA9IHRoaXMuY3JlYXRlQWxpYXNlcyhhbGlhc2VzLCBwYXJhbXMuYWxpYXNlcyk7XG5cdFx0dGhpcy5jbGlraXRIZWxwICAgICA9IHBhcmFtcy5jbGlraXRIZWxwO1xuXHRcdHRoaXMuaGVscCAgICAgICAgICAgPSBoZWxwO1xuXHRcdHRoaXMuZGVmYXVsdENvbW1hbmQgPSBwYXJhbXMuZGVmYXVsdENvbW1hbmQ7XG5cdFx0dGhpcy5oaWRkZW4gICAgICAgICA9ICEhcGFyYW1zLmhpZGRlbjtcblx0fVxuXG5cdC8qKlxuXHQgKiBBIG1hcCBvZiBhbGlhc2VzIGFuIHdoZXRoZXIgdGhleSBhcmUgdmlzaWJsZS5cblx0ICpcblx0ICogQHR5cGUge09iamVjdH1cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICovXG5cdGdldCBhbGlhc2VzKCkge1xuXHRcdHJldHVybiB0aGlzLl9hbGlhc2VzO1xuXHR9XG5cblx0c2V0IGFsaWFzZXModmFsdWUpIHtcblx0XHR0aGlzLl9hbGlhc2VzID0gdGhpcy5jcmVhdGVBbGlhc2VzKHZhbHVlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBNZXJnZXMgbXVsdGlwbGUgYWxpYXMgY29uc3RydWN0cyBpbnRvIGEgc2luZ2xlIGFsaWFzIG9iamVjdC5cblx0ICpcblx0ICogQHBhcmFtIHsuLi5TZXQuPFN0cmluZz58QXJyYXkuPFN0cmluZz58U3RyaW5nfE9iamVjdH0gdmFsdWVzIC0gT25lIG9yIG1vcmUgYWxpYXMgdmFsdWVzLlxuXHQgKiBAcmV0dXJucyB7T2JqZWN0fVxuXHQgKiBAYWNjZXNzIHByaXZhdGVcblx0ICovXG5cdGNyZWF0ZUFsaWFzZXMoLi4udmFsdWVzKSB7XG5cdFx0Y29uc3QgcmVzdWx0ID0ge307XG5cblx0XHRmb3IgKGxldCB2YWx1ZSBvZiB2YWx1ZXMpIHtcblx0XHRcdGlmICghdmFsdWUpIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh2YWx1ZSBpbnN0YW5jZW9mIFNldCkge1xuXHRcdFx0XHR2YWx1ZSA9IEFycmF5LmZyb20odmFsdWUpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiAhQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcblx0XHRcdFx0T2JqZWN0LmFzc2lnbihyZXN1bHQsIHZhbHVlKTtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcblx0XHRcdFx0dmFsdWUgPSBbIHZhbHVlIF07XG5cdFx0XHR9XG5cblx0XHRcdGZvciAoY29uc3QgYWxpYXMgb2YgdmFsdWUpIHtcblx0XHRcdFx0aWYgKCFhbGlhcyB8fCB0eXBlb2YgYWxpYXMgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHRcdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBjb21tYW5kIGFsaWFzZXMgdG8gYmUgYW4gYXJyYXkgb2Ygc3RyaW5ncycsIHsgbmFtZTogJ2FsaWFzZXMuYWxpYXMnLCBzY29wZTogJ0NvbW1hbmQuY29uc3RydWN0b3InLCB2YWx1ZTogYWxpYXMgfSk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRmb3IgKGNvbnN0IGEgb2YgYWxpYXMuc3BsaXQoL1sgLHxdKy8pKSB7XG5cdFx0XHRcdFx0aWYgKGEgPT09ICchJykge1xuXHRcdFx0XHRcdFx0dGhyb3cgRS5JTlZBTElEX0FMSUFTKGBJbnZhbGlkIGNvbW1hbmQgYWxpYXMgXCIke2FsaWFzfVwiYCwgeyBuYW1lOiAnYWxpYXNlcycsIHNjb3BlOiAnQ29tbWFuZC5jb25zdHJ1Y3RvcicsIHZhbHVlOiBhbGlhcyB9KTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKGFbMF0gPT09ICchJykge1xuXHRcdFx0XHRcdFx0cmVzdWx0W2Euc3Vic3RyaW5nKDEpXSA9ICdoaWRkZW4nO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXN1bHRbYV0gPSAndmlzaWJsZSc7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJlc3VsdDtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZW5kZXJzIHRoZSBoZWxwIHNjcmVlbiBmb3IgdGhpcyBjb250ZXh0IGluY2x1ZGluZyB0aGUgcGFyZW50IGNvbnRleHRzLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3Q+fVxuXHQgKiBAYWNjZXNzIHByaXZhdGVcblx0ICovXG5cdGdlbmVyYXRlSGVscCgpIHtcblx0XHR0aGlzLm9uKCdnZW5lcmF0ZUhlbHAnLCBhc3luYyAoY3R4LCByZXN1bHRzKSA9PiB7XG5cdFx0XHRjb25zdCBvcHRzID0ge1xuXHRcdFx0XHRzdHlsZTogT2JqZWN0LmFzc2lnbih7fSwgZGVidWcuc3R5bGVzLCB0aGlzLmdldCgnc3R5bGVzJykpXG5cdFx0XHR9O1xuXHRcdFx0cmVzdWx0cy5oZWFkZXIgPSB0eXBlb2YgdGhpcy5oZWxwLmhlYWRlciA9PT0gJ2Z1bmN0aW9uJyA/IGF3YWl0IHRoaXMuaGVscC5oZWFkZXIuY2FsbCh0aGlzLCBvcHRzKSA6IHRoaXMuaGVscC5oZWFkZXI7XG5cdFx0XHRyZXN1bHRzLmZvb3RlciA9IHR5cGVvZiB0aGlzLmhlbHAuZm9vdGVyID09PSAnZnVuY3Rpb24nID8gYXdhaXQgdGhpcy5oZWxwLmZvb3Rlci5jYWxsKHRoaXMsIG9wdHMpIDogdGhpcy5oZWxwLmZvb3Rlcjtcblx0XHR9KTtcblxuXHRcdHJldHVybiBzdXBlci5nZW5lcmF0ZUhlbHAoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBSZXR1cm5zIHRoZSBzY2hlbWEgZm9yIHRoaXMgY29tbWFuZCBhbmQgYWxsIGNoaWxkIGNvbnRleHRzLlxuXHQgKlxuXHQgKiBAcmV0dXJucyB7T2JqZWN0fVxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0c2NoZW1hKCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHRkZXNjOiB0aGlzLmRlc2Ncblx0XHR9O1xuXHR9XG59XG4iXSwiZmlsZSI6InBhcnNlci9jb21tYW5kLmpzIn0=
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInBhcnNlci9jb21tYW5kLmpzIl0sIm5hbWVzIjpbImZvcm1hdFJlZ0V4cCIsIm5hbWVSZWdFeHAiLCJDb21tYW5kIiwiQ29udGV4dCIsImNvbnN0cnVjdG9yIiwibmFtZSIsInBhcmFtcyIsIkUiLCJJTlZBTElEX0FSR1VNRU5UIiwic2NvcGUiLCJ2YWx1ZSIsImZvcm1hdCIsInRyaW0iLCJtIiwibWF0Y2giLCJhY3Rpb24iLCJhbGlhc2VzIiwiU2V0IiwiYWxpYXMiLCJzcGxpdCIsIm4iLCJpbmNsdWRlcyIsImFkZCIsIkFycmF5IiwiaXNBcnJheSIsImNhbGxiYWNrIiwic2NvcCIsImRlZmF1bHRDb21tYW5kIiwidW5kZWZpbmVkIiwiY2xpa2l0IiwiaGFzIiwidGl0bGUiLCJ0ZXJtaW5hbCIsInBhcnNlciIsImdldCIsImhlbHBDb21tYW5kIiwiY21kIiwiY29tbWFuZHMiLCJJTlZBTElEX0NMSUtJVF9PQkpFQ1QiLCJoZWxwIiwiaGVhZGVyIiwiZm9vdGVyIiwiYXJncyIsImxlbmd0aCIsImxvb2t1cCIsIl9hbGlhc2VzIiwiY3JlYXRlQWxpYXNlcyIsImNsaWtpdEhlbHAiLCJoaWRkZW4iLCJ2YWx1ZXMiLCJyZXN1bHQiLCJmcm9tIiwiT2JqZWN0IiwiYXNzaWduIiwiYSIsIklOVkFMSURfQUxJQVMiLCJzdWJzdHJpbmciLCJnZW5lcmF0ZUhlbHAiLCJvbiIsImN0eCIsInJlc3VsdHMiLCJvcHRzIiwic3R5bGUiLCJkZWJ1ZyIsInN0eWxlcyIsImNhbGwiLCJzY2hlbWEiLCJkZXNjIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7OztBQUVBLE1BQU1BLFlBQVksR0FBRyx1RUFBckI7QUFDQSxNQUFNQyxVQUFVLEdBQUcsd0JBQW5CO0FBRUE7Ozs7OztBQUtlLE1BQU1DLE9BQU4sU0FBc0JDLGdCQUF0QixDQUE4QjtBQUM1Qzs7Ozs7OztBQVFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEyQkFD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NUIsR0FBeUMsTUFBTSxLQUFLRCxJQUFMLENBQVVDLE1BQVYsQ0FBaUJ5QixJQUFqQixDQUFzQixJQUF0QixFQUE0QkosSUFBNUIsQ0FBL0MsR0FBbUYsS0FBS3RCLElBQUwsQ0FBVUMsTUFBOUc7QUFDQW9CLE1BQUFBLE9BQU8sQ0FBQ25CLE1BQVIsR0FBaUIsT0FBTyxLQUFLRixJQUFMLENBQVVFLE1BQWpCLEtBQTRCLFVBQTVCLEdBQXlDLE1BQU0sS0FBS0YsSUFBTCxDQUFVRSxNQUFWLENBQWlCd0IsSUFBakIsQ0FBc0IsSUFBdEIsRUFBNEJKLElBQTVCLENBQS9DLEdBQW1GLEtBQUt0QixJQUFMLENBQVVFLE1BQTlHO0FBQ0EsS0FORDtBQVFBLFdBQU8sTUFBTWdCLFlBQU4sRUFBUDtBQUNBO0FBRUQ7Ozs7Ozs7O0FBTUFTLEVBQUFBLE1BQU0sR0FBRztBQUNSLFdBQU87QUFDTkMsTUFBQUEsSUFBSSxFQUFFLEtBQUtBO0FBREwsS0FBUDtBQUdBOztBQXJRMkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ29udGV4dCBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0IGRlYnVnIGZyb20gJy4uL2xpYi9kZWJ1Zyc7XG5pbXBvcnQgRSBmcm9tICcuLi9saWIvZXJyb3JzJztcbmltcG9ydCBoZWxwQ29tbWFuZCBmcm9tICcuLi9jb21tYW5kcy9oZWxwJztcblxuaW1wb3J0IHsgZGVjbGFyZUNMSUtpdENsYXNzIH0gZnJvbSAnLi4vbGliL3V0aWwnO1xuXG5jb25zdCBmb3JtYXRSZWdFeHAgPSAvXihbQCEgXSpbXFx3LV9dKyg/OlxccyosXFxzKltAISBdKltcXHctX10rKSopKCg/OlxccypbPFtdW1xcdy1fXStbPlxcXV0pKik/JC87XG5jb25zdCBuYW1lUmVnRXhwID0gL14oW0AhIF0qKShbXFx3LV9dKylcXHMqJC87XG5cbi8qKlxuICogRGVmaW5lcyBhIGNvbW1hbmQgYW5kIGl0cyBvcHRpb25zIGFuZCBhcmd1bWVudHMuXG4gKlxuICogQGV4dGVuZHMge0NvbnRleHR9XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbW1hbmQgZXh0ZW5kcyBDb250ZXh0IHtcblx0LyoqXG5cdCAqIEludGVybmFsIG9iamVjdCBmb3IgdHJhY2tpbmcgYWxpYXNlcy5cblx0ICpcblx0ICogQHR5cGUge09iamVjdH1cblx0ICogQHByaXZhdGVcblx0ICovXG5cdF9hbGlhc2VzID0ge307XG5cblx0LyoqXG5cdCAqIENvbnN0cnVjdHMgYSBjb21tYW5kIGluc3RhbmNlLlxuXHQgKlxuXHQgKiBAcGFyYW0ge1N0cmluZ30gbmFtZSAtIFRoZSBjb21tYW5kIG5hbWUuXG5cdCAqIEBwYXJhbSB7T2JqZWN0fENMSXxDb21tYW5kfENvbnRleHR8RnVuY3Rpb259IFtwYXJhbXNdIC0gQ29tbWFuZCBwYXJhbWV0ZXJzIG9yIGFuIGFjdGlvblxuXHQgKiBmdW5jdGlvbi5cblx0ICogQHBhcmFtIHtGdW5jdGlvbnxDb21tYW5kfSBbcGFyYW1zLmFjdGlvbl0gLSBBIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgY29tbWFuZCBpcyBmb3VuZC5cblx0ICogQHBhcmFtIHtTZXQuPFN0cmluZz58QXJyYXkuPFN0cmluZz58U3RyaW5nfE9iamVjdH0gW3BhcmFtcy5hbGlhc2VzXSAtIEFuIGFycmF5IG9mIGNvbW1hbmRcblx0ICogYWxpYXNlcy5cblx0ICogQHBhcmFtIHtGdW5jdGlvbn0gW3BhcmFtcy5jYWxsYmFja10gLSBBIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgY29tbWFuZCBoYXMgYmVlbiBwYXJzZWQuXG5cdCAqIEBwYXJhbSB7U3RyaW5nfEZ1bmN0aW9ufSBbcGFyYW1zLmRlZmF1bHRDb21tYW5kXSAtIFRoZSBkZWZhdWx0IGNvbW1hbmQgdG8gZXhlY3V0ZSB3aGVuIHRoaXNcblx0ICogY29tbWFuZCBoYXMgbm8gYGFjdGlvbmAuIFdoZW4gdmFsdWUgaXMgYSBgU3RyaW5nYCwgaXQgbG9va3MgdXAgdGhlIHN1YmNvbW1hbmQgYW5kIGNhbGxzIGl0LlxuXHQgKiBJZiB2YWx1ZSBpcyBhIGBGdW5jdGlvbmAsIGl0IHNpbXBseSBpbnZva2VzIGl0LlxuXHQgKiBAcGFyYW0ge1N0cmluZ3xGdW5jdGlvbnxPYmplY3R9IFtwYXJhbXMuaGVscF0gLSBBZGRpdGlvbmFsIGhlbHAgY29udGVudCB0byBkaXNwbGF5IG9uIHRoZVxuXHQgKiBoZWxwIHNjcmVlbi4gV2hlbiBtYXkgYmUgYW4gb2JqZWN0IHdpdGggdGhlIHByb3BlcnRpZXMgYGhlYWRlcmAgYW5kIGBmb290ZXJgIHdoaWNoIHZhbHVlc1xuXHQgKiB0aGF0IGFyZSBlaXRoZXIgYSBzdHJpbmcgb3IgYW4gYXN5bmMgZnVuY3Rpb24gdGhhdCByZXNvbHZlcyBhIHN0cmluZy4gV2hlbiB2YWx1ZSBpcyBhIHN0cmluZ1xuXHQgKiBvciBmdW5jdGlvbiwgaXQgaXMgdHJhc25mb3JtZWQgaW50byBhIG9iamVjdCB3aXRoIHRoZSB2YWx1ZSBiZWluZyB1c2VkIGFzIHRoZSBoZWFkZXIuIE5vdGVcblx0ICogdGhhdCB0aGUgY29tbWFuZCBkZXNjcmlwdGlvbiBpcyBub3QgZGlzcGxheWVkIHdoZW4gYSBoZWFkZXIgbWVzc2FnZSBoYXMgYmVlbiBkZWZpbmVkLlxuXHQgKiBAcGFyYW0ge0Jvb2xlYW59IFtwYXJhbXMuaGlkZGVuPWZhbHNlXSAtIFdoZW4gYHRydWVgLCB0aGUgb3B0aW9uIGlzIG5vdCBkaXNwbGF5ZWQgb24gdGhlXG5cdCAqIGhlbHAgc2NyZWVuIG9yIGF1dG8tc3VnZ2VzdC5cblx0ICogQGFjY2VzcyBwdWJsaWNcblx0ICpcblx0ICogQGV4YW1wbGVcblx0ICogICBuZXcgQ29tbWFuZCgnZm9vJylcblx0ICogICBuZXcgQ29tbWFuZCgnZm9vJywge30pXG5cdCAqICAgbmV3IENvbW1hbmQobmV3IENvbW1hbmQoJ2ZvbycpKVxuXHQgKi9cblx0Y29uc3RydWN0b3IobmFtZSwgcGFyYW1zID0ge30pIHtcblx0XHRpZiAoIW5hbWUgfHwgdHlwZW9mIG5hbWUgIT09ICdzdHJpbmcnKSB7XG5cdFx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIGNvbW1hbmQgbmFtZSB0byBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnLCB7IG5hbWU6ICduYW1lJywgc2NvcGU6ICdDb21tYW5kLmNvbnN0cnVjdG9yJywgdmFsdWU6IG5hbWUgfSk7XG5cdFx0fVxuXG5cdFx0Ly8gcGFyc2UgdGhlIG5hbWUgYW5kIGNyZWF0ZSB0aGUgYWxpYXNlcyBhbmQgYXJnczogXCJscywgbGlzdCA8YmFyPlwiXG5cdFx0Y29uc3QgZm9ybWF0ID0gbmFtZS50cmltKCk7XG5cdFx0Y29uc3QgbSA9IGZvcm1hdC5tYXRjaChmb3JtYXRSZWdFeHApO1xuXHRcdGlmICghbSB8fCAhbVsxXSkge1xuXHRcdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBjb21tYW5kIG5hbWUgdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nJywgeyBuYW1lOiAnbmFtZScsIHNjb3BlOiAnQ29tbWFuZC5jb25zdHJ1Y3RvcicsIHZhbHVlOiBuYW1lIH0pO1xuXHRcdH1cblxuXHRcdGlmICh0eXBlb2YgcGFyYW1zID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRwYXJhbXMgPSB7IGFjdGlvbjogcGFyYW1zIH07XG5cdFx0fVxuXG5cdFx0Ly8gcmVzZXQgdGhlIG5hbWVcblx0XHRuYW1lID0gbnVsbDtcblxuXHRcdC8vIGdldCB0aGUgYWxpYXNlcyBmcm9tIHRoZSBmb3JtYXQgYW5kIGZpbmQgdGhlIGNvbW1hbmQgbmFtZVxuXHRcdGNvbnN0IGFsaWFzZXMgPSBuZXcgU2V0KCk7XG5cdFx0Zm9yIChsZXQgYWxpYXMgb2YgbVsxXS5zcGxpdCgnLCcpKSB7XG5cdFx0XHRjb25zdCBuID0gYWxpYXMubWF0Y2gobmFtZVJlZ0V4cCk7XG5cdFx0XHRpZiAoIW4pIHtcblx0XHRcdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdJbnZhbGlkIGNvbW1hbmQgYWxpYXMgZm9ybWF0JywgeyBuYW1lOiAnYWxpYXMnLCBzY29wZTogJ0NvbW1hbmQuY29uc3RydWN0b3InLCB2YWx1ZTogYWxpYXMgfSk7XG5cdFx0XHR9XG5cdFx0XHRpZiAoIW5bMV0uaW5jbHVkZXMoJ0AnKSAmJiAhbmFtZSkge1xuXHRcdFx0XHRuYW1lID0gblsyXTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGFsaWFzZXMuYWRkKG5bMV0uaW5jbHVkZXMoJyEnKSA/IGAhJHtuWzJdfWAgOiBuWzJdKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRpZiAoIW5hbWUpIHtcblx0XHRcdHRocm93ICBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIGNvbW1hbmQgbmFtZSBmb3JtYXQgdG8gY29udGFpbiBhdCBsZWFzdCBvbmUgbm9uLWFsaWFzZWQgbmFtZScsIHsgbmFtZTogJ2Zvcm1hdCcsIHNjb3BlOiAnQ29tbWFuZC5jb25zdHJ1Y3RvcicsIHZhbHVlOiBmb3JtYXQgfSk7XG5cdFx0fVxuXG5cdFx0aWYgKCFwYXJhbXMgfHwgKHR5cGVvZiBwYXJhbXMgIT09ICdvYmplY3QnIHx8IEFycmF5LmlzQXJyYXkocGFyYW1zKSkpIHtcblx0XHRcdHRocm93IEUuSU5WQUxJRF9BUkdVTUVOVCgnRXhwZWN0ZWQgY29tbWFuZCBwYXJhbWV0ZXJzIHRvIGJlIGFuIG9iamVjdCcsIHsgbmFtZTogJ3BhcmFtcycsIHNjb3BlOiAnQ29tbWFuZC5jb25zdHJ1Y3RvcicsIHZhbHVlOiBwYXJhbXMgfSk7XG5cdFx0fVxuXG5cdFx0aWYgKHBhcmFtcy5jYWxsYmFjayAmJiB0eXBlb2YgcGFyYW1zLmNhbGxiYWNrICE9PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIGNvbW1hbmQgY2FsbGJhY2sgdG8gYmUgYSBmdW5jdGlvbicsIHsgbmFtZTogJ2NhbGxiYWNrJywgc2NvcDogJ0NvbW1hbmQuY29uc3RydWN0b3InLCB2YWx1ZTogcGFyYW1zLmNhbGxiYWNrIH0pO1xuXHRcdH1cblxuXHRcdGlmIChwYXJhbXMuZGVmYXVsdENvbW1hbmQgIT09IHVuZGVmaW5lZCAmJiAoIXBhcmFtcy5kZWZhdWx0Q29tbWFuZCB8fCAodHlwZW9mIHBhcmFtcy5kZWZhdWx0Q29tbWFuZCAhPT0gJ3N0cmluZycgJiYgdHlwZW9mIHBhcmFtcy5kZWZhdWx0Q29tbWFuZCAhPT0gJ2Z1bmN0aW9uJykpKSB7XG5cdFx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIGRlZmF1bHQgY29tbWFuZCB0byBiZSBhIHN0cmluZyBvciBmdW5jdGlvbicsIHsgbmFtZTogJ2RlZmF1bHRDb21tYW5kJywgc2NvcGU6ICdDb21tYW5kLmNvbnN0cnVjdG9yJywgdmFsdWU6IHBhcmFtcy5kZWZhdWx0Q29tbWFuZCB9KTtcblx0XHR9XG5cblx0XHRpZiAocGFyYW1zLmNsaWtpdCBpbnN0YW5jZW9mIFNldCkge1xuXHRcdFx0Ly8gcGFyYW1zIGlzIGEgY2xpLWtpdCBvYmplY3Rcblx0XHRcdGlmIChwYXJhbXMuY2xpa2l0LmhhcygnQ0xJJykpIHtcblx0XHRcdFx0Ly8gc2luY2UgYSBjb21tYW5kIGNhbm5vdCBoYXZlIGEgdGl0bGUgXCJnbG9iYWxcIiAob25seSBhIGBDTElgIG9iamVjdCBjYW4gaGF2ZSB0aGF0KSxcblx0XHRcdFx0Ly8gd2UgbXVzdCBkZWxldGUgaXQgc28gdGhhdCB0aGUgdGl0bGUgaXMgcmVzZXQgdG8gdGhlIGNvbW1hbmQgbmFtZVxuXHRcdFx0XHRpZiAocGFyYW1zLnRpdGxlID09PSAnR2xvYmFsJykge1xuXHRcdFx0XHRcdGRlbGV0ZSBwYXJhbXMudGl0bGU7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRkZWxldGUgcGFyYW1zLnRlcm1pbmFsO1xuXG5cdFx0XHRcdC8vIGFkZCBhbiBhY3Rpb24gaGFuZGxlciB0aGF0IGVpdGVociBleGVjdXRlcyBhIHNwZWNpZmljIGNvbW1hbmQgb3IgdGhlIGhlbHAgZm9yXG5cdFx0XHRcdC8vIGZvciB0aGlzIGNvbW1hbmQgKGUuZy4gdGhpcyBjb21tYW5kIGlzIGFuIGV4dGVuc2lvbilcblx0XHRcdFx0cGFyYW1zLmFjdGlvbiA9IGFzeW5jIHBhcnNlciA9PiB7XG5cdFx0XHRcdFx0Y29uc3QgeyBkZWZhdWx0Q29tbWFuZCB9ID0gcGFyYW1zO1xuXHRcdFx0XHRcdGlmIChkZWZhdWx0Q29tbWFuZCA9PT0gJ2hlbHAnICYmIHRoaXMuZ2V0KCdoZWxwJykpIHtcblx0XHRcdFx0XHRcdGF3YWl0IGhlbHBDb21tYW5kLmFjdGlvbihwYXJzZXIpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjb25zdCBjbWQgPSBkZWZhdWx0Q29tbWFuZCAmJiB0aGlzLmNvbW1hbmRzW2RlZmF1bHRDb21tYW5kXTtcblx0XHRcdFx0XHRcdGlmIChjbWQpIHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIGNtZC5hY3Rpb24ocGFyc2VyKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cdFx0XHR9IGVsc2UgaWYgKCFwYXJhbXMuY2xpa2l0LmhhcygnQ29tbWFuZCcpKSB7XG5cdFx0XHRcdC8vIG11c3QgYmUgYSBjb21tYW5kIG9yIGV4dGVuc2lvblxuXHRcdFx0XHR0aHJvdyBFLklOVkFMSURfQ0xJS0lUX09CSkVDVCgnRXhwZWN0ZWQgY29tbWFuZCBvcHRpb25zIHRvIGJlIGEgQ0xJIG9yIENvbW1hbmQgb2JqZWN0JywgeyBuYW1lOiAnY2xpa2l0Jywgc2NvcGU6ICdDb21tYW5kLmNvbnN0cnVjdG9yJywgdmFsdWU6IHBhcmFtcy5jbGlraXQgfSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHBhcmFtcy5hY3Rpb24gJiYgdHlwZW9mIHBhcmFtcy5hY3Rpb24gIT09ICdmdW5jdGlvbicgJiYgIShwYXJhbXMuYWN0aW9uIGluc3RhbmNlb2YgQ29tbWFuZCkpIHtcblx0XHRcdHRocm93IEUuSU5WQUxJRF9BUkdVTUVOVCgnRXhwZWN0ZWQgY29tbWFuZCBhY3Rpb24gdG8gYmUgYSBmdW5jdGlvbiBvciBDb21tYW5kIGluc3RhbmNlJywgeyBuYW1lOiAnYWN0aW9uJywgc2NvcGU6ICdDb21tYW5kLmNvbnN0cnVjdG9yJywgdmFsdWU6IHBhcmFtcy5hY3Rpb24gfSk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgaGVscCA9IHt9O1xuXHRcdGlmIChwYXJhbXMuaGVscCkge1xuXHRcdFx0aWYgKHR5cGVvZiBwYXJhbXMuaGVscCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHBhcmFtcy5oZWxwID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdGhlbHAuaGVhZGVyID0gcGFyYW1zLmhlbHA7XG5cdFx0XHR9IGVsc2UgaWYgKHR5cGVvZiBwYXJhbXMuaGVscCA9PT0gJ29iamVjdCcpIHtcblx0XHRcdFx0aWYgKHBhcmFtcy5oZWxwLmhlYWRlcikge1xuXHRcdFx0XHRcdGlmICh0eXBlb2YgcGFyYW1zLmhlbHAuaGVhZGVyID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgcGFyYW1zLmhlbHAuaGVhZGVyID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRcdFx0XHRoZWxwLmhlYWRlciA9IHBhcmFtcy5oZWxwLmhlYWRlcjtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBoZWxwIGNvbnRlbnQgaGVhZGVyIHRvIGJlIGEgc3RyaW5nIG9yIGZ1bmN0aW9uJyk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHRcdGlmIChwYXJhbXMuaGVscC5mb290ZXIpIHtcblx0XHRcdFx0XHRpZiAodHlwZW9mIHBhcmFtcy5oZWxwLmZvb3RlciA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHBhcmFtcy5oZWxwLmZvb3RlciA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdFx0aGVscC5mb290ZXIgPSBwYXJhbXMuaGVscC5mb290ZXI7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHRocm93IEUuSU5WQUxJRF9BUkdVTUVOVCgnRXhwZWN0ZWQgaGVscCBjb250ZW50IGZvb3RlciB0byBiZSBhIHN0cmluZyBvciBmdW5jdGlvbicpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhyb3cgRS5JTlZBTElEX0FSR1VNRU5UKCdFeHBlY3RlZCBoZWxwIGNvbnRlbnQgdG8gYmUgYSBzdHJpbmcsIGZ1bmN0aW9uLCBvciBvYmplY3QgY29udGFpbmluZyBhIGhlYWRlciBvciBmb290ZXInKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRwYXJhbXMubmFtZSA9IG5hbWU7XG5cblx0XHRjb25zdCBhcmdzID0gbVsyXSAmJiBtWzJdLnRyaW0oKS5zcGxpdCgvXFxzKy8pO1xuXHRcdGlmIChhcmdzPy5sZW5ndGgpIHtcblx0XHRcdHBhcmFtcy5hcmdzID0gcGFyYW1zLmFyZ3MgPyBbIC4uLmFyZ3MsIC4uLnBhcmFtcy5hcmdzIF0gOiBhcmdzO1xuXHRcdH1cblxuXHRcdHN1cGVyKHBhcmFtcyk7XG5cdFx0ZGVjbGFyZUNMSUtpdENsYXNzKHRoaXMsICdDb21tYW5kJyk7XG5cblx0XHRpZiAocGFyYW1zLmFjdGlvbikge1xuXHRcdFx0dGhpcy5hY3Rpb24gPSBwYXJhbXMuYWN0aW9uO1xuXHRcdH0gZWxzZSBpZiAodHlwZW9mIHBhcmFtcy5kZWZhdWx0Q29tbWFuZCA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0dGhpcy5hY3Rpb24gPSBwYXJhbXMuZGVmYXVsdENvbW1hbmQ7XG5cdFx0fSBlbHNlIGlmICh0eXBlb2YgcGFyYW1zLmRlZmF1bHRDb21tYW5kID09PSAnc3RyaW5nJykge1xuXHRcdFx0dGhpcy5hY3Rpb24gPSB0aGlzLmxvb2t1cC5jb21tYW5kc1twYXJhbXMuZGVmYXVsdENvbW1hbmRdO1xuXHRcdH1cblxuXHRcdC8vIG1peCBhbGlhc2VzIFNldCB3aXRoIHBhcmFtcy5hbGlhc2VzXG5cdFx0dGhpcy5fYWxpYXNlcyAgICAgICA9IHRoaXMuY3JlYXRlQWxpYXNlcyhhbGlhc2VzLCBwYXJhbXMuYWxpYXNlcyk7XG5cdFx0dGhpcy5jYWxsYmFjayAgICAgICA9IHBhcmFtcy5jYWxsYmFjaztcblx0XHR0aGlzLmNsaWtpdEhlbHAgICAgID0gcGFyYW1zLmNsaWtpdEhlbHA7XG5cdFx0dGhpcy5oZWxwICAgICAgICAgICA9IGhlbHA7XG5cdFx0dGhpcy5kZWZhdWx0Q29tbWFuZCA9IHBhcmFtcy5kZWZhdWx0Q29tbWFuZDtcblx0XHR0aGlzLmhpZGRlbiAgICAgICAgID0gISFwYXJhbXMuaGlkZGVuO1xuXHR9XG5cblx0LyoqXG5cdCAqIEEgbWFwIG9mIGFsaWFzZXMgYW4gd2hldGhlciB0aGV5IGFyZSB2aXNpYmxlLlxuXHQgKlxuXHQgKiBAdHlwZSB7T2JqZWN0fVxuXHQgKiBAYWNjZXNzIHB1YmxpY1xuXHQgKi9cblx0Z2V0IGFsaWFzZXMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2FsaWFzZXM7XG5cdH1cblxuXHRzZXQgYWxpYXNlcyh2YWx1ZSkge1xuXHRcdHRoaXMuX2FsaWFzZXMgPSB0aGlzLmNyZWF0ZUFsaWFzZXModmFsdWUpO1xuXHR9XG5cblx0LyoqXG5cdCAqIE1lcmdlcyBtdWx0aXBsZSBhbGlhcyBjb25zdHJ1Y3RzIGludG8gYSBzaW5nbGUgYWxpYXMgb2JqZWN0LlxuXHQgKlxuXHQgKiBAcGFyYW0gey4uLlNldC48U3RyaW5nPnxBcnJheS48U3RyaW5nPnxTdHJpbmd8T2JqZWN0fSB2YWx1ZXMgLSBPbmUgb3IgbW9yZSBhbGlhcyB2YWx1ZXMuXG5cdCAqIEByZXR1cm5zIHtPYmplY3R9XG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxuXHQgKi9cblx0Y3JlYXRlQWxpYXNlcyguLi52YWx1ZXMpIHtcblx0XHRjb25zdCByZXN1bHQgPSB7fTtcblxuXHRcdGZvciAobGV0IHZhbHVlIG9mIHZhbHVlcykge1xuXHRcdFx0aWYgKCF2YWx1ZSkge1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHZhbHVlIGluc3RhbmNlb2YgU2V0KSB7XG5cdFx0XHRcdHZhbHVlID0gQXJyYXkuZnJvbSh2YWx1ZSk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0XHRPYmplY3QuYXNzaWduKHJlc3VsdCwgdmFsdWUpO1xuXHRcdFx0XHRjb250aW51ZTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuXHRcdFx0XHR2YWx1ZSA9IFsgdmFsdWUgXTtcblx0XHRcdH1cblxuXHRcdFx0Zm9yIChjb25zdCBhbGlhcyBvZiB2YWx1ZSkge1xuXHRcdFx0XHRpZiAoIWFsaWFzIHx8IHR5cGVvZiBhbGlhcyAhPT0gJ3N0cmluZycpIHtcblx0XHRcdFx0XHR0aHJvdyBFLklOVkFMSURfQVJHVU1FTlQoJ0V4cGVjdGVkIGNvbW1hbmQgYWxpYXNlcyB0byBiZSBhbiBhcnJheSBvZiBzdHJpbmdzJywgeyBuYW1lOiAnYWxpYXNlcy5hbGlhcycsIHNjb3BlOiAnQ29tbWFuZC5jb25zdHJ1Y3RvcicsIHZhbHVlOiBhbGlhcyB9KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZvciAoY29uc3QgYSBvZiBhbGlhcy5zcGxpdCgvWyAsfF0rLykpIHtcblx0XHRcdFx0XHRpZiAoYSA9PT0gJyEnKSB7XG5cdFx0XHRcdFx0XHR0aHJvdyBFLklOVkFMSURfQUxJQVMoYEludmFsaWQgY29tbWFuZCBhbGlhcyBcIiR7YWxpYXN9XCJgLCB7IG5hbWU6ICdhbGlhc2VzJywgc2NvcGU6ICdDb21tYW5kLmNvbnN0cnVjdG9yJywgdmFsdWU6IGFsaWFzIH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoYVswXSA9PT0gJyEnKSB7XG5cdFx0XHRcdFx0XHRyZXN1bHRbYS5zdWJzdHJpbmcoMSldID0gJ2hpZGRlbic7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdHJlc3VsdFthXSA9ICd2aXNpYmxlJztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gcmVzdWx0O1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlbmRlcnMgdGhlIGhlbHAgc2NyZWVuIGZvciB0aGlzIGNvbnRleHQgaW5jbHVkaW5nIHRoZSBwYXJlbnQgY29udGV4dHMuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59XG5cdCAqIEBhY2Nlc3MgcHJpdmF0ZVxuXHQgKi9cblx0Z2VuZXJhdGVIZWxwKCkge1xuXHRcdHRoaXMub24oJ2dlbmVyYXRlSGVscCcsIGFzeW5jIChjdHgsIHJlc3VsdHMpID0+IHtcblx0XHRcdGNvbnN0IG9wdHMgPSB7XG5cdFx0XHRcdHN0eWxlOiBPYmplY3QuYXNzaWduKHt9LCBkZWJ1Zy5zdHlsZXMsIHRoaXMuZ2V0KCdzdHlsZXMnKSlcblx0XHRcdH07XG5cdFx0XHRyZXN1bHRzLmhlYWRlciA9IHR5cGVvZiB0aGlzLmhlbHAuaGVhZGVyID09PSAnZnVuY3Rpb24nID8gYXdhaXQgdGhpcy5oZWxwLmhlYWRlci5jYWxsKHRoaXMsIG9wdHMpIDogdGhpcy5oZWxwLmhlYWRlcjtcblx0XHRcdHJlc3VsdHMuZm9vdGVyID0gdHlwZW9mIHRoaXMuaGVscC5mb290ZXIgPT09ICdmdW5jdGlvbicgPyBhd2FpdCB0aGlzLmhlbHAuZm9vdGVyLmNhbGwodGhpcywgb3B0cykgOiB0aGlzLmhlbHAuZm9vdGVyO1xuXHRcdH0pO1xuXG5cdFx0cmV0dXJuIHN1cGVyLmdlbmVyYXRlSGVscCgpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgdGhlIHNjaGVtYSBmb3IgdGhpcyBjb21tYW5kIGFuZCBhbGwgY2hpbGQgY29udGV4dHMuXG5cdCAqXG5cdCAqIEByZXR1cm5zIHtPYmplY3R9XG5cdCAqIEBhY2Nlc3MgcHVibGljXG5cdCAqL1xuXHRzY2hlbWEoKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdGRlc2M6IHRoaXMuZGVzY1xuXHRcdH07XG5cdH1cbn1cbiJdLCJmaWxlIjoicGFyc2VyL2NvbW1hbmQuanMifQ==
{
"name": "cli-kit",
"version": "1.7.0",
"version": "1.8.0",
"description": "Everything you need to create awesome command line interfaces",

@@ -56,3 +56,3 @@ "main": "./dist/index.js",

"devDependencies": {
"@babel/core": "^7.11.1",
"@babel/core": "^7.11.4",
"@babel/plugin-proposal-class-properties": "^7.10.4",

@@ -71,3 +71,3 @@ "@babel/plugin-proposal-optional-chaining": "^7.11.0",

"esdoc-standard-plugin": "^1.0.0",
"eslint": "^7.6.0",
"eslint": "^7.7.0",
"eslint-plugin-chai-expect": "^2.2.0",

@@ -81,7 +81,7 @@ "eslint-plugin-mocha": "^8.0.0",

"gulp-eslint": "^6.0.0",
"gulp-load-plugins": "^2.0.3",
"gulp-load-plugins": "^2.0.4",
"gulp-plumber": "^1.2.1",
"gulp-sourcemaps": "^2.6.5",
"memory-streams": "^0.1.3",
"mocha": "^8.1.1",
"mocha": "^8.1.2",
"nyc": "^15.1.0",

@@ -88,0 +88,0 @@ "sinon": "^9.0.3",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc