find-node-modules
Version:
Return an array of all parent node_modules directories
636 lines (610 loc) • 20.5 kB
JavaScript
"use strict";
var cov_2m8t140a08 = function () {
var path = "/Users/callumacrae/Sites/find-node-modules/cz-cli/src/commitizen/commit.js";
var hash = "c0d5ea195b1be5d75153f1b25c33cb4b96eaeca9";
var global = new Function("return this")();
var gcv = "__coverage__";
var coverageData = {
path: "/Users/callumacrae/Sites/find-node-modules/cz-cli/src/commitizen/commit.js",
statementMap: {
"0": {
start: {
line: 15,
column: 4
},
end: {
line: 17,
column: 7
}
},
"1": {
start: {
line: 16,
column: 6
},
end: {
line: 16,
column: 28
}
},
"2": {
start: {
line: 24,
column: 23
},
end: {
line: 24,
column: 45
}
},
"3": {
start: {
line: 25,
column: 18
},
end: {
line: 25,
column: 62
}
},
"4": {
start: {
line: 27,
column: 2
},
end: {
line: 66,
column: 5
}
},
"5": {
start: {
line: 28,
column: 4
},
end: {
line: 65,
column: 5
}
},
"6": {
start: {
line: 29,
column: 6
},
end: {
line: 29,
column: 75
}
},
"7": {
start: {
line: 32,
column: 6
},
end: {
line: 64,
column: 7
}
},
"8": {
start: {
line: 34,
column: 8
},
end: {
line: 34,
column: 53
}
},
"9": {
start: {
line: 42,
column: 12
},
end: {
line: 42,
column: 56
}
},
"10": {
start: {
line: 43,
column: 8
},
end: {
line: 43,
column: 93
}
},
"11": {
start: {
line: 47,
column: 8
},
end: {
line: 63,
column: 11
}
},
"12": {
start: {
line: 50,
column: 10
},
end: {
line: 54,
column: 11
}
},
"13": {
start: {
line: 51,
column: 12
},
end: {
line: 51,
column: 39
}
},
"14": {
start: {
line: 52,
column: 12
},
end: {
line: 52,
column: 29
}
},
"15": {
start: {
line: 53,
column: 12
},
end: {
line: 53,
column: 25
}
},
"16": {
start: {
line: 56,
column: 10
},
end: {
line: 58,
column: 11
}
},
"17": {
start: {
line: 57,
column: 12
},
end: {
line: 57,
column: 31
}
},
"18": {
start: {
line: 61,
column: 10
},
end: {
line: 61,
column: 95
}
},
"19": {
start: {
line: 62,
column: 10
},
end: {
line: 62,
column: 80
}
}
},
fnMap: {
"0": {
name: "dispatchGitCommit",
decl: {
start: {
line: 13,
column: 9
},
end: {
line: 13,
column: 26
}
},
loc: {
start: {
line: 13,
column: 80
},
end: {
line: 18,
column: 1
}
},
line: 13
},
"1": {
name: "(anonymous_1)",
decl: {
start: {
line: 15,
column: 70
},
end: {
line: 15,
column: 71
}
},
loc: {
start: {
line: 15,
column: 87
},
end: {
line: 17,
column: 5
}
},
line: 15
},
"2": {
name: "commit",
decl: {
start: {
line: 23,
column: 9
},
end: {
line: 23,
column: 15
}
},
loc: {
start: {
line: 23,
column: 62
},
end: {
line: 68,
column: 1
}
},
line: 23
},
"3": {
name: "(anonymous_3)",
decl: {
start: {
line: 27,
column: 28
},
end: {
line: 27,
column: 29
}
},
loc: {
start: {
line: 27,
column: 45
},
end: {
line: 66,
column: 3
}
},
line: 27
},
"4": {
name: "(anonymous_4)",
decl: {
start: {
line: 47,
column: 27
},
end: {
line: 47,
column: 28
}
},
loc: {
start: {
line: 47,
column: 71
},
end: {
line: 63,
column: 9
}
},
line: 47
}
},
branchMap: {
"0": {
loc: {
start: {
line: 28,
column: 4
},
end: {
line: 65,
column: 5
}
},
type: "if",
locations: [{
start: {
line: 28,
column: 4
},
end: {
line: 65,
column: 5
}
}, {
start: {
line: 28,
column: 4
},
end: {
line: 65,
column: 5
}
}],
line: 28
},
"1": {
loc: {
start: {
line: 32,
column: 6
},
end: {
line: 64,
column: 7
}
},
type: "if",
locations: [{
start: {
line: 32,
column: 6
},
end: {
line: 64,
column: 7
}
}, {
start: {
line: 32,
column: 6
},
end: {
line: 64,
column: 7
}
}],
line: 32
},
"2": {
loc: {
start: {
line: 50,
column: 10
},
end: {
line: 54,
column: 11
}
},
type: "if",
locations: [{
start: {
line: 50,
column: 10
},
end: {
line: 54,
column: 11
}
}, {
start: {
line: 50,
column: 10
},
end: {
line: 54,
column: 11
}
}],
line: 50
},
"3": {
loc: {
start: {
line: 56,
column: 10
},
end: {
line: 58,
column: 11
}
},
type: "if",
locations: [{
start: {
line: 56,
column: 10
},
end: {
line: 58,
column: 11
}
}, {
start: {
line: 56,
column: 10
},
end: {
line: 58,
column: 11
}
}],
line: 56
}
},
s: {
"0": 0,
"1": 0,
"2": 0,
"3": 0,
"4": 0,
"5": 0,
"6": 0,
"7": 0,
"8": 0,
"9": 0,
"10": 0,
"11": 0,
"12": 0,
"13": 0,
"14": 0,
"15": 0,
"16": 0,
"17": 0,
"18": 0,
"19": 0
},
f: {
"0": 0,
"1": 0,
"2": 0,
"3": 0,
"4": 0
},
b: {
"0": [0, 0],
"1": [0, 0],
"2": [0, 0],
"3": [0, 0]
},
_coverageSchema: "43e27e138ebf9cfc5966b082cf9a028302ed4184",
hash: "c0d5ea195b1be5d75153f1b25c33cb4b96eaeca9"
};
var coverage = global[gcv] || (global[gcv] = {});
if (coverage[path] && coverage[path].hash === hash) {
return coverage[path];
}
return coverage[path] = coverageData;
}();
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _path = _interopRequireDefault(require("path"));
var _cachedir = _interopRequireDefault(require("cachedir"));
var _fsExtra = require("fs-extra");
var _git = require("../git");
var cache = _interopRequireWildcard(require("./cache"));
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectSpread2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var _default = commit;
/**
* Takes all of the final inputs needed in order to make dispatch a git commit
*/
exports.default = _default;
function dispatchGitCommit(repoPath, template, options, overrideOptions, done) {
cov_2m8t140a08.f[0]++;
cov_2m8t140a08.s[0]++;
// Commit the user input -- side effect that we'll test
(0, _git.commit)(repoPath, template, _objectSpread2({}, options, {}, overrideOptions), function (error) {
cov_2m8t140a08.f[1]++;
cov_2m8t140a08.s[1]++;
done(error, template);
});
}
/**
* Asynchronously commits files using commitizen
*/
function commit(inquirer, repoPath, prompter, options, done) {
cov_2m8t140a08.f[2]++;
var cacheDirectory = (cov_2m8t140a08.s[2]++, (0, _cachedir.default)('commitizen'));
var cachePath = (cov_2m8t140a08.s[3]++, _path.default.join(cacheDirectory, 'commitizen.json'));
cov_2m8t140a08.s[4]++;
(0, _fsExtra.ensureDir)(cacheDirectory, function (error) {
cov_2m8t140a08.f[3]++;
cov_2m8t140a08.s[5]++;
if (error) {
cov_2m8t140a08.b[0][0]++;
cov_2m8t140a08.s[6]++;
console.error("Couldn't create commitizen cache directory: ", error); // TODO: properly handle error?
} else {
cov_2m8t140a08.b[0][1]++;
cov_2m8t140a08.s[7]++;
if (options.retryLastCommit) {
cov_2m8t140a08.b[1][0]++;
cov_2m8t140a08.s[8]++;
console.log('Retrying last commit attempt.'); // We want to use the last commit instead of the current commit,
// so lets override some options using the values from cache.
let {
options: retryOptions,
overrideOptions: retryOverrideOptions,
template: retryTemplate
} = (cov_2m8t140a08.s[9]++, cache.getCacheValueSync(cachePath, repoPath));
cov_2m8t140a08.s[10]++;
dispatchGitCommit(repoPath, retryTemplate, retryOptions, retryOverrideOptions, done);
} else {
cov_2m8t140a08.b[1][1]++;
cov_2m8t140a08.s[11]++;
// Get user input -- side effect that is hard to test
prompter(inquirer, function (error, template, overrideOptions) {
cov_2m8t140a08.f[4]++;
cov_2m8t140a08.s[12]++;
// Allow adapters to error out
// (error: Error?, template: String, overrideOptions: Object)
if (!(error instanceof Error)) {
cov_2m8t140a08.b[2][0]++;
cov_2m8t140a08.s[13]++;
overrideOptions = template;
cov_2m8t140a08.s[14]++;
template = error;
cov_2m8t140a08.s[15]++;
error = null;
} else {
cov_2m8t140a08.b[2][1]++;
}
cov_2m8t140a08.s[16]++;
if (error) {
cov_2m8t140a08.b[3][0]++;
cov_2m8t140a08.s[17]++;
return done(error);
} else {
cov_2m8t140a08.b[3][1]++;
} // We don't want to add retries to the cache, only actual commands
cov_2m8t140a08.s[18]++;
cache.setCacheValueSync(cachePath, repoPath, {
template,
options,
overrideOptions
});
cov_2m8t140a08.s[19]++;
dispatchGitCommit(repoPath, template, options, overrideOptions, done);
});
}
}
});
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbW1pdC5qcyJdLCJuYW1lcyI6WyJjb21taXQiLCJkaXNwYXRjaEdpdENvbW1pdCIsInJlcG9QYXRoIiwidGVtcGxhdGUiLCJvcHRpb25zIiwib3ZlcnJpZGVPcHRpb25zIiwiZG9uZSIsImVycm9yIiwiaW5xdWlyZXIiLCJwcm9tcHRlciIsImNhY2hlRGlyZWN0b3J5IiwiY2FjaGVQYXRoIiwicGF0aCIsImpvaW4iLCJjb25zb2xlIiwicmV0cnlMYXN0Q29tbWl0IiwibG9nIiwicmV0cnlPcHRpb25zIiwicmV0cnlPdmVycmlkZU9wdGlvbnMiLCJyZXRyeVRlbXBsYXRlIiwiY2FjaGUiLCJnZXRDYWNoZVZhbHVlU3luYyIsIkVycm9yIiwic2V0Q2FjaGVWYWx1ZVN5bmMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7O2VBRWVBLE07QUFFZjs7Ozs7O0FBR0EsU0FBU0MsaUJBQVQsQ0FBNEJDLFFBQTVCLEVBQXNDQyxRQUF0QyxFQUFnREMsT0FBaEQsRUFBeURDLGVBQXpELEVBQTBFQyxJQUExRSxFQUFnRjtBQUFBO0FBQUE7QUFDNUU7QUFDQSxtQkFBVUosUUFBVixFQUFvQkMsUUFBcEIscUJBQW1DQyxPQUFuQyxNQUErQ0MsZUFBL0MsR0FBa0UsVUFBVUUsS0FBVixFQUFpQjtBQUFBO0FBQUE7QUFDakZELElBQUFBLElBQUksQ0FBQ0MsS0FBRCxFQUFRSixRQUFSLENBQUo7QUFDRCxHQUZEO0FBR0g7QUFFQTs7Ozs7QUFHRCxTQUFTSCxNQUFULENBQWlCUSxRQUFqQixFQUEyQk4sUUFBM0IsRUFBcUNPLFFBQXJDLEVBQStDTCxPQUEvQyxFQUF3REUsSUFBeEQsRUFBOEQ7QUFBQTtBQUM1RCxNQUFJSSxjQUFjLDJCQUFHLHVCQUFTLFlBQVQsQ0FBSCxDQUFsQjtBQUNBLE1BQUlDLFNBQVMsMkJBQUdDLGNBQUtDLElBQUwsQ0FBVUgsY0FBVixFQUEwQixpQkFBMUIsQ0FBSCxDQUFiO0FBRjREO0FBSTVELDBCQUFVQSxjQUFWLEVBQTBCLFVBQVVILEtBQVYsRUFBaUI7QUFBQTtBQUFBOztBQUN6QyxRQUFJQSxLQUFKLEVBQVc7QUFBQTtBQUFBO0FBQ1RPLE1BQUFBLE9BQU8sQ0FBQ1AsS0FBUixDQUFjLDhDQUFkLEVBQThEQSxLQUE5RCxFQURTLENBRVQ7QUFDRCxLQUhELE1BR087QUFBQTtBQUFBOztBQUNMLFVBQUlILE9BQU8sQ0FBQ1csZUFBWixFQUE2QjtBQUFBO0FBQUE7QUFFM0JELFFBQUFBLE9BQU8sQ0FBQ0UsR0FBUixDQUFZLCtCQUFaLEVBRjJCLENBSTNCO0FBQ0E7O0FBQ0EsWUFBSTtBQUNGWixVQUFBQSxPQUFPLEVBQUVhLFlBRFA7QUFFRlosVUFBQUEsZUFBZSxFQUFFYSxvQkFGZjtBQUdGZixVQUFBQSxRQUFRLEVBQUVnQjtBQUhSLG9DQUlBQyxLQUFLLENBQUNDLGlCQUFOLENBQXdCVixTQUF4QixFQUFtQ1QsUUFBbkMsQ0FKQSxDQUFKO0FBTjJCO0FBVzNCRCxRQUFBQSxpQkFBaUIsQ0FBQ0MsUUFBRCxFQUFXaUIsYUFBWCxFQUEwQkYsWUFBMUIsRUFBd0NDLG9CQUF4QyxFQUE4RFosSUFBOUQsQ0FBakI7QUFFRCxPQWJELE1BYU87QUFBQTtBQUFBO0FBQ0w7QUFDQUcsUUFBQUEsUUFBUSxDQUFDRCxRQUFELEVBQVcsVUFBVUQsS0FBVixFQUFpQkosUUFBakIsRUFBMkJFLGVBQTNCLEVBQTRDO0FBQUE7QUFBQTs7QUFDN0Q7QUFDQTtBQUNBLGNBQUksRUFBRUUsS0FBSyxZQUFZZSxLQUFuQixDQUFKLEVBQStCO0FBQUE7QUFBQTtBQUM3QmpCLFlBQUFBLGVBQWUsR0FBR0YsUUFBbEI7QUFENkI7QUFFN0JBLFlBQUFBLFFBQVEsR0FBR0ksS0FBWDtBQUY2QjtBQUc3QkEsWUFBQUEsS0FBSyxHQUFHLElBQVI7QUFDRCxXQUpEO0FBQUE7QUFBQTs7QUFINkQ7O0FBUzdELGNBQUlBLEtBQUosRUFBVztBQUFBO0FBQUE7QUFDVCxtQkFBT0QsSUFBSSxDQUFDQyxLQUFELENBQVg7QUFDRCxXQUZEO0FBQUE7QUFBQSxXQVQ2RCxDQWE3RDs7O0FBYjZEO0FBYzdEYSxVQUFBQSxLQUFLLENBQUNHLGlCQUFOLENBQXdCWixTQUF4QixFQUFtQ1QsUUFBbkMsRUFBNkM7QUFBRUMsWUFBQUEsUUFBRjtBQUFZQyxZQUFBQSxPQUFaO0FBQXFCQyxZQUFBQTtBQUFyQixXQUE3QztBQWQ2RDtBQWU3REosVUFBQUEsaUJBQWlCLENBQUNDLFFBQUQsRUFBV0MsUUFBWCxFQUFxQkMsT0FBckIsRUFBOEJDLGVBQTlCLEVBQStDQyxJQUEvQyxDQUFqQjtBQUNELFNBaEJPLENBQVI7QUFpQkQ7QUFDRjtBQUNGLEdBdkNEO0FBeUNEIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9jYWxsdW1hY3JhZS9TaXRlcy9maW5kLW5vZGUtbW9kdWxlcy9jei1jbGkvc3JjL2NvbW1pdGl6ZW4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuaW1wb3J0IGNhY2hlRGlyIGZyb20gJ2NhY2hlZGlyJztcbmltcG9ydCB7IGVuc3VyZURpciB9IGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IGNvbW1pdCBhcyBnaXRDb21taXQgfSBmcm9tICcuLi9naXQnO1xuaW1wb3J0ICogYXMgY2FjaGUgZnJvbSAnLi9jYWNoZSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1pdDtcblxuLyoqXG4gKiBUYWtlcyBhbGwgb2YgdGhlIGZpbmFsIGlucHV0cyBuZWVkZWQgaW4gb3JkZXIgdG8gbWFrZSBkaXNwYXRjaCBhIGdpdCBjb21taXRcbiAqL1xuZnVuY3Rpb24gZGlzcGF0Y2hHaXRDb21taXQgKHJlcG9QYXRoLCB0ZW1wbGF0ZSwgb3B0aW9ucywgb3ZlcnJpZGVPcHRpb25zLCBkb25lKSB7XG4gICAgLy8gQ29tbWl0IHRoZSB1c2VyIGlucHV0IC0tIHNpZGUgZWZmZWN0IHRoYXQgd2UnbGwgdGVzdFxuICAgIGdpdENvbW1pdChyZXBvUGF0aCwgdGVtcGxhdGUsIHsgLi4ub3B0aW9ucywgLi4ub3ZlcnJpZGVPcHRpb25zIH0sIGZ1bmN0aW9uIChlcnJvcikge1xuICAgICAgZG9uZShlcnJvciwgdGVtcGxhdGUpO1xuICAgIH0pO1xufVxuXG4gLyoqXG4gICogQXN5bmNocm9ub3VzbHkgY29tbWl0cyBmaWxlcyB1c2luZyBjb21taXRpemVuXG4gICovXG5mdW5jdGlvbiBjb21taXQgKGlucXVpcmVyLCByZXBvUGF0aCwgcHJvbXB0ZXIsIG9wdGlvbnMsIGRvbmUpIHtcbiAgdmFyIGNhY2hlRGlyZWN0b3J5ID0gY2FjaGVEaXIoJ2NvbW1pdGl6ZW4nKTtcbiAgdmFyIGNhY2hlUGF0aCA9IHBhdGguam9pbihjYWNoZURpcmVjdG9yeSwgJ2NvbW1pdGl6ZW4uanNvbicpO1xuXG4gIGVuc3VyZURpcihjYWNoZURpcmVjdG9yeSwgZnVuY3Rpb24gKGVycm9yKSB7XG4gICAgaWYgKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiQ291bGRuJ3QgY3JlYXRlIGNvbW1pdGl6ZW4gY2FjaGUgZGlyZWN0b3J5OiBcIiwgZXJyb3IpO1xuICAgICAgLy8gVE9ETzogcHJvcGVybHkgaGFuZGxlIGVycm9yP1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAob3B0aW9ucy5yZXRyeUxhc3RDb21taXQpIHtcblxuICAgICAgICBjb25zb2xlLmxvZygnUmV0cnlpbmcgbGFzdCBjb21taXQgYXR0ZW1wdC4nKTtcblxuICAgICAgICAvLyBXZSB3YW50IHRvIHVzZSB0aGUgbGFzdCBjb21taXQgaW5zdGVhZCBvZiB0aGUgY3VycmVudCBjb21taXQsXG4gICAgICAgIC8vIHNvIGxldHMgb3ZlcnJpZGUgc29tZSBvcHRpb25zIHVzaW5nIHRoZSB2YWx1ZXMgZnJvbSBjYWNoZS5cbiAgICAgICAgbGV0IHtcbiAgICAgICAgICBvcHRpb25zOiByZXRyeU9wdGlvbnMsXG4gICAgICAgICAgb3ZlcnJpZGVPcHRpb25zOiByZXRyeU92ZXJyaWRlT3B0aW9ucyxcbiAgICAgICAgICB0ZW1wbGF0ZTogcmV0cnlUZW1wbGF0ZVxuICAgICAgICB9ID0gY2FjaGUuZ2V0Q2FjaGVWYWx1ZVN5bmMoY2FjaGVQYXRoLCByZXBvUGF0aCk7XG4gICAgICAgIGRpc3BhdGNoR2l0Q29tbWl0KHJlcG9QYXRoLCByZXRyeVRlbXBsYXRlLCByZXRyeU9wdGlvbnMsIHJldHJ5T3ZlcnJpZGVPcHRpb25zLCBkb25lKTtcblxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gR2V0IHVzZXIgaW5wdXQgLS0gc2lkZSBlZmZlY3QgdGhhdCBpcyBoYXJkIHRvIHRlc3RcbiAgICAgICAgcHJvbXB0ZXIoaW5xdWlyZXIsIGZ1bmN0aW9uIChlcnJvciwgdGVtcGxhdGUsIG92ZXJyaWRlT3B0aW9ucykge1xuICAgICAgICAgIC8vIEFsbG93IGFkYXB0ZXJzIHRvIGVycm9yIG91dFxuICAgICAgICAgIC8vIChlcnJvcjogRXJyb3I/LCB0ZW1wbGF0ZTogU3RyaW5nLCBvdmVycmlkZU9wdGlvbnM6IE9iamVjdClcbiAgICAgICAgICBpZiAoIShlcnJvciBpbnN0YW5jZW9mIEVycm9yKSkge1xuICAgICAgICAgICAgb3ZlcnJpZGVPcHRpb25zID0gdGVtcGxhdGU7XG4gICAgICAgICAgICB0ZW1wbGF0ZSA9IGVycm9yO1xuICAgICAgICAgICAgZXJyb3IgPSBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgcmV0dXJuIGRvbmUoZXJyb3IpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gYWRkIHJldHJpZXMgdG8gdGhlIGNhY2hlLCBvbmx5IGFjdHVhbCBjb21tYW5kc1xuICAgICAgICAgIGNhY2hlLnNldENhY2hlVmFsdWVTeW5jKGNhY2hlUGF0aCwgcmVwb1BhdGgsIHsgdGVtcGxhdGUsIG9wdGlvbnMsIG92ZXJyaWRlT3B0aW9ucyB9KTtcbiAgICAgICAgICBkaXNwYXRjaEdpdENvbW1pdChyZXBvUGF0aCwgdGVtcGxhdGUsIG9wdGlvbnMsIG92ZXJyaWRlT3B0aW9ucywgZG9uZSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG5cbn1cbiJdfQ==