propagate-cli 1.10.12 → 1.11.2

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.
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return pollPromptOperation;
9
+ }
10
+ });
11
+ var _necessary = require("necessary");
12
+ var _constants = require("../../constants");
13
+ var _validate = require("../../utilities/validate");
14
+ var _prompt = require("../../utilities/prompt");
15
+ var _descriptions = require("../../descriptions");
16
+ var _console = require("../../utilities/console");
17
+ var _messages = require("../../messages");
18
+ var prompt = _necessary.shellUtilities.prompt;
19
+ function pollPromptOperation(proceed, abort, context) {
20
+ var yes = context.yes, diff = context.diff, diffs = context.diffs, quietly = context.quietly, releaseMap = context.releaseMap, names = releaseMap.getNames(), answer = yes ? _constants.YES : null, attempts = Infinity, description = _descriptions.POLL_YES_NO_DESCRIPTION, errorMessage = _messages.INVALID_ANSWER_MESSAGE, validationFunction = _validate.validateAnswer, options = {
21
+ answer: answer,
22
+ attempts: attempts,
23
+ description: description,
24
+ errorMessage: errorMessage,
25
+ validationFunction: validationFunction
26
+ };
27
+ prompt(options, function(answer) {
28
+ var valid = answer !== null;
29
+ if (valid) {
30
+ var affirmative = (0, _prompt.isAnswerAffirmative)(answer);
31
+ if (!affirmative) {
32
+ proceed();
33
+ return;
34
+ }
35
+ diff.poll(names, quietly, function(success) {
36
+ if (!success) {
37
+ (0, _console.consoleLogUnpublishedDiffs)(diff, diffs);
38
+ console.log(_messages.FAILED_POLL_MESSAGE);
39
+ abort();
40
+ return;
41
+ }
42
+ proceed();
43
+ });
44
+ return;
45
+ }
46
+ (0, _console.consoleLogUnpublishedDiffs)(diff, diffs);
47
+ console.log(_messages.FAILED_POLL_MESSAGE);
48
+ abort();
49
+ });
50
+ }
51
+
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcGVyYXRpb24vcHJvbXB0L3BvbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCB7IHNoZWxsVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyBZRVMgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyB2YWxpZGF0ZUFuc3dlciB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvdmFsaWRhdGVcIjtcbmltcG9ydCB7IGlzQW5zd2VyQWZmaXJtYXRpdmUgfSBmcm9tIFwiLi4vLi4vdXRpbGl0aWVzL3Byb21wdFwiO1xuaW1wb3J0IHsgUE9MTF9ZRVNfTk9fREVTQ1JJUFRJT04gfSBmcm9tIFwiLi4vLi4vZGVzY3JpcHRpb25zXCI7XG5pbXBvcnQgeyBjb25zb2xlTG9nVW5wdWJsaXNoZWREaWZmcyB9IGZyb20gXCIuLi8uLi91dGlsaXRpZXMvY29uc29sZVwiO1xuaW1wb3J0IHsgRkFJTEVEX1BPTExfTUVTU0FHRSwgSU5WQUxJRF9BTlNXRVJfTUVTU0FHRSB9IGZyb20gXCIuLi8uLi9tZXNzYWdlc1wiO1xuXG5jb25zdCB7IHByb21wdCB9ID0gc2hlbGxVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHBvbGxQcm9tcHRPcGVyYXRpb24ocHJvY2VlZCwgYWJvcnQsIGNvbnRleHQpIHtcbiAgY29uc3QgeyB5ZXMsIGRpZmYsIGRpZmZzLCBxdWlldGx5LCByZWxlYXNlTWFwIH0gPSBjb250ZXh0LFxuICAgICAgICBuYW1lcyA9IHJlbGVhc2VNYXAuZ2V0TmFtZXMoKSxcbiAgICAgICAgYW5zd2VyID0geWVzID9cbiAgICAgICAgICAgICAgICAgICBZRVMgOlxuICAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgYXR0ZW1wdHMgPSBJbmZpbml0eSxcbiAgICAgICAgZGVzY3JpcHRpb24gPSBQT0xMX1lFU19OT19ERVNDUklQVElPTixcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gSU5WQUxJRF9BTlNXRVJfTUVTU0FHRSxcbiAgICAgICAgdmFsaWRhdGlvbkZ1bmN0aW9uID0gdmFsaWRhdGVBbnN3ZXIsICAvLy9cbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICBhbnN3ZXIsXG4gICAgICAgICAgYXR0ZW1wdHMsXG4gICAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgICAgZXJyb3JNZXNzYWdlLFxuICAgICAgICAgIHZhbGlkYXRpb25GdW5jdGlvblxuICAgICAgICB9O1xuXG4gIHByb21wdChvcHRpb25zLCAoYW5zd2VyKSA9PiB7XG4gICAgY29uc3QgdmFsaWQgPSAoYW5zd2VyICE9PSBudWxsKTtcblxuICAgIGlmICh2YWxpZCkge1xuICAgICAgY29uc3QgYWZmaXJtYXRpdmUgPSBpc0Fuc3dlckFmZmlybWF0aXZlKGFuc3dlcik7XG5cbiAgICAgIGlmICghYWZmaXJtYXRpdmUpIHtcbiAgICAgICAgcHJvY2VlZCgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgZGlmZi5wb2xsKG5hbWVzLCBxdWlldGx5LCAoc3VjY2VzcykgPT4ge1xuICAgICAgICBpZiAoIXN1Y2Nlc3MpIHtcbiAgICAgICAgICBjb25zb2xlTG9nVW5wdWJsaXNoZWREaWZmcyhkaWZmLCBkaWZmcyk7XG5cbiAgICAgICAgICBjb25zb2xlLmxvZyhGQUlMRURfUE9MTF9NRVNTQUdFKTtcblxuICAgICAgICAgIGFib3J0KCk7XG5cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBwcm9jZWVkKCk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnNvbGVMb2dVbnB1Ymxpc2hlZERpZmZzKGRpZmYsIGRpZmZzKTtcblxuICAgIGNvbnNvbGUubG9nKEZBSUxFRF9QT0xMX01FU1NBR0UpO1xuXG4gICAgYWJvcnQoKTtcbiAgfSk7XG59XG4iXSwibmFtZXMiOlsicG9sbFByb21wdE9wZXJhdGlvbiIsInByb21wdCIsInNoZWxsVXRpbGl0aWVzIiwicHJvY2VlZCIsImFib3J0IiwiY29udGV4dCIsInllcyIsImRpZmYiLCJkaWZmcyIsInF1aWV0bHkiLCJyZWxlYXNlTWFwIiwibmFtZXMiLCJnZXROYW1lcyIsImFuc3dlciIsIllFUyIsImF0dGVtcHRzIiwiSW5maW5pdHkiLCJkZXNjcmlwdGlvbiIsIlBPTExfWUVTX05PX0RFU0NSSVBUSU9OIiwiZXJyb3JNZXNzYWdlIiwiSU5WQUxJRF9BTlNXRVJfTUVTU0FHRSIsInZhbGlkYXRpb25GdW5jdGlvbiIsInZhbGlkYXRlQW5zd2VyIiwib3B0aW9ucyIsInZhbGlkIiwiYWZmaXJtYXRpdmUiLCJpc0Fuc3dlckFmZmlybWF0aXZlIiwicG9sbCIsInN1Y2Nlc3MiLCJjb25zb2xlTG9nVW5wdWJsaXNoZWREaWZmcyIsImNvbnNvbGUiLCJsb2ciLCJGQUlMRURfUE9MTF9NRVNTQUdFIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFhQTs7O2VBQXdCQTs7O3lCQVhPO3lCQUVYO3dCQUNXO3NCQUNLOzRCQUNJO3VCQUNHO3dCQUNpQjtBQUU1RCxJQUFNLEFBQUVDLFNBQVdDLHlCQUFjLENBQXpCRDtBQUVPLFNBQVNELG9CQUFvQkcsT0FBTyxFQUFFQyxLQUFLLEVBQUVDLE9BQU87SUFDakUsSUFBUUMsTUFBMENELFFBQTFDQyxLQUFLQyxPQUFxQ0YsUUFBckNFLE1BQU1DLFFBQStCSCxRQUEvQkcsT0FBT0MsVUFBd0JKLFFBQXhCSSxTQUFTQyxhQUFlTCxRQUFmSyxZQUM3QkMsUUFBUUQsV0FBV0UsUUFBUSxJQUMzQkMsU0FBU1AsTUFDRVEsY0FBRyxHQUNELE1BQ2JDLFdBQVdDLFVBQ1hDLGNBQWNDLHFDQUF1QixFQUNyQ0MsZUFBZUMsZ0NBQXNCLEVBQ3JDQyxxQkFBcUJDLHdCQUFjLEVBQ25DQyxVQUFVO1FBQ1JWLFFBQUFBO1FBQ0FFLFVBQUFBO1FBQ0FFLGFBQUFBO1FBQ0FFLGNBQUFBO1FBQ0FFLG9CQUFBQTtJQUNGO0lBRU5wQixPQUFPc0IsU0FBUyxTQUFDVjtRQUNmLElBQU1XLFFBQVNYLFdBQVc7UUFFMUIsSUFBSVcsT0FBTztZQUNULElBQU1DLGNBQWNDLElBQUFBLDJCQUFtQixFQUFDYjtZQUV4QyxJQUFJLENBQUNZLGFBQWE7Z0JBQ2hCdEI7Z0JBRUE7WUFDRjtZQUVBSSxLQUFLb0IsSUFBSSxDQUFDaEIsT0FBT0YsU0FBUyxTQUFDbUI7Z0JBQ3pCLElBQUksQ0FBQ0EsU0FBUztvQkFDWkMsSUFBQUEsbUNBQTBCLEVBQUN0QixNQUFNQztvQkFFakNzQixRQUFRQyxHQUFHLENBQUNDLDZCQUFtQjtvQkFFL0I1QjtvQkFFQTtnQkFDRjtnQkFFQUQ7WUFDRjtZQUVBO1FBQ0Y7UUFFQTBCLElBQUFBLG1DQUEwQixFQUFDdEIsTUFBTUM7UUFFakNzQixRQUFRQyxHQUFHLENBQUNDLDZCQUFtQjtRQUUvQjVCO0lBQ0Y7QUFDRiJ9
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return setPollShellCommandsPromptOperation;
9
+ }
10
+ });
11
+ var _necessary = require("necessary");
12
+ var _constants = require("../../constants");
13
+ var _validate = require("../../utilities/validate");
14
+ var _defaults = require("../../defaults");
15
+ var _descriptions = require("../../descriptions");
16
+ var prompt = _necessary.shellUtilities.prompt;
17
+ function setPollShellCommandsPromptOperation(proceed, abort, context) {
18
+ var shellCommands = context.shellCommands, poll = shellCommands.poll, pollShellCommands = poll, attempts = Infinity, description = _descriptions.POLL_SHELL_COMMANDS_DESCRIPTION, initialAnswer = pollShellCommands, validationFunction = _validate.validateShellCommands, options = {
19
+ attempts: attempts,
20
+ description: description,
21
+ initialAnswer: initialAnswer,
22
+ validationFunction: validationFunction
23
+ };
24
+ prompt(options, function(answer) {
25
+ var pollShellCommands = answer, poll = pollShellCommands !== _constants.EMPTY_STRING ? pollShellCommands : _defaults.DEFAULT_POLL_SHELL_COMMANDS;
26
+ Object.assign(shellCommands, {
27
+ poll: poll
28
+ });
29
+ proceed();
30
+ });
31
+ }
32
+
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9vcGVyYXRpb24vcHJvbXB0L3NldFBvbGxTaGVsbENvbW1hbmRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBzaGVsbFV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgRU1QVFlfU1RSSU5HIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgdmFsaWRhdGVTaGVsbENvbW1hbmRzIH0gZnJvbSBcIi4uLy4uL3V0aWxpdGllcy92YWxpZGF0ZVwiO1xuaW1wb3J0IHsgREVGQVVMVF9QT0xMX1NIRUxMX0NPTU1BTkRTIH0gZnJvbSBcIi4uLy4uL2RlZmF1bHRzXCI7XG5pbXBvcnQgeyBQT0xMX1NIRUxMX0NPTU1BTkRTX0RFU0NSSVBUSU9OIH0gZnJvbSBcIi4uLy4uL2Rlc2NyaXB0aW9uc1wiO1xuXG5jb25zdCB7IHByb21wdCB9ID0gc2hlbGxVdGlsaXRpZXM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNldFBvbGxTaGVsbENvbW1hbmRzUHJvbXB0T3BlcmF0aW9uKHByb2NlZWQsIGFib3J0LCBjb250ZXh0KSB7XG4gIGNvbnN0IHsgc2hlbGxDb21tYW5kcyB9ID0gY29udGV4dCxcbiAgICAgICAgeyBwb2xsIH0gPSBzaGVsbENvbW1hbmRzLFxuICAgICAgICBwb2xsU2hlbGxDb21tYW5kcyA9IHBvbGwsIC8vL1xuICAgICAgICBhdHRlbXB0cyA9IEluZmluaXR5LFxuICAgICAgICBkZXNjcmlwdGlvbiA9IFBPTExfU0hFTExfQ09NTUFORFNfREVTQ1JJUFRJT04sXG4gICAgICAgIGluaXRpYWxBbnN3ZXIgPSBwb2xsU2hlbGxDb21tYW5kcywgLy8vXG4gICAgICAgIHZhbGlkYXRpb25GdW5jdGlvbiA9IHZhbGlkYXRlU2hlbGxDb21tYW5kcywgIC8vL1xuICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgIGF0dGVtcHRzLFxuICAgICAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgICAgIGluaXRpYWxBbnN3ZXIsXG4gICAgICAgICAgdmFsaWRhdGlvbkZ1bmN0aW9uXG4gICAgICAgIH07XG5cbiAgcHJvbXB0KG9wdGlvbnMsIChhbnN3ZXIpID0+IHtcbiAgICBjb25zdCBwb2xsU2hlbGxDb21tYW5kcyA9IGFuc3dlciwgIC8vL1xuICAgICAgICAgIHBvbGwgPSAocG9sbFNoZWxsQ29tbWFuZHMgIT09IEVNUFRZX1NUUklORykgP1xuICAgICAgICAgICAgICAgICAgIHBvbGxTaGVsbENvbW1hbmRzIDpcbiAgICAgICAgICAgICAgICAgICAgIERFRkFVTFRfUE9MTF9TSEVMTF9DT01NQU5EUztcblxuICAgIE9iamVjdC5hc3NpZ24oc2hlbGxDb21tYW5kcywge1xuICAgICAgcG9sbFxuICAgIH0pO1xuXG4gICAgcHJvY2VlZCgpO1xuICB9KTtcbn1cbiJdLCJuYW1lcyI6WyJzZXRQb2xsU2hlbGxDb21tYW5kc1Byb21wdE9wZXJhdGlvbiIsInByb21wdCIsInNoZWxsVXRpbGl0aWVzIiwicHJvY2VlZCIsImFib3J0IiwiY29udGV4dCIsInNoZWxsQ29tbWFuZHMiLCJwb2xsIiwicG9sbFNoZWxsQ29tbWFuZHMiLCJhdHRlbXB0cyIsIkluZmluaXR5IiwiZGVzY3JpcHRpb24iLCJQT0xMX1NIRUxMX0NPTU1BTkRTX0RFU0NSSVBUSU9OIiwiaW5pdGlhbEFuc3dlciIsInZhbGlkYXRpb25GdW5jdGlvbiIsInZhbGlkYXRlU2hlbGxDb21tYW5kcyIsIm9wdGlvbnMiLCJhbnN3ZXIiLCJFTVBUWV9TVFJJTkciLCJERUZBVUxUX1BPTExfU0hFTExfQ09NTUFORFMiLCJPYmplY3QiLCJhc3NpZ24iXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQVdBOzs7ZUFBd0JBOzs7eUJBVE87eUJBRUY7d0JBQ1M7d0JBQ007NEJBQ0k7QUFFaEQsSUFBTSxBQUFFQyxTQUFXQyx5QkFBYyxDQUF6QkQ7QUFFTyxTQUFTRCxvQ0FBb0NHLE9BQU8sRUFBRUMsS0FBSyxFQUFFQyxPQUFPO0lBQ2pGLElBQU0sQUFBRUMsZ0JBQWtCRCxRQUFsQkMsZUFDRixBQUFFQyxPQUFTRCxjQUFUQyxNQUNGQyxvQkFBb0JELE1BQ3BCRSxXQUFXQyxVQUNYQyxjQUFjQyw2Q0FBK0IsRUFDN0NDLGdCQUFnQkwsbUJBQ2hCTSxxQkFBcUJDLCtCQUFxQixFQUMxQ0MsVUFBVTtRQUNSUCxVQUFBQTtRQUNBRSxhQUFBQTtRQUNBRSxlQUFBQTtRQUNBQyxvQkFBQUE7SUFDRjtJQUVOYixPQUFPZSxTQUFTLFNBQUNDO1FBQ2YsSUFBTVQsb0JBQW9CUyxRQUNwQlYsT0FBTyxBQUFDQyxzQkFBc0JVLHVCQUFZLEdBQ2pDVixvQkFDRVcscUNBQTJCO1FBRTVDQyxPQUFPQyxNQUFNLENBQUNmLGVBQWU7WUFDM0JDLE1BQUFBO1FBQ0Y7UUFFQUo7SUFDRjtBQUNGIn0=
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _git = /*#__PURE__*/ _interop_require_default(require("../operation/prompt/git"));
12
+ var _poll = /*#__PURE__*/ _interop_require_default(require("../operation/prompt/poll"));
12
13
  var _save = /*#__PURE__*/ _interop_require_default(require("../operation/prompt/save"));
13
14
  var _build = /*#__PURE__*/ _interop_require_default(require("../operation/prompt/build"));
14
15
  var _install = /*#__PURE__*/ _interop_require_default(require("../operation/prompt/install"));
@@ -34,6 +35,7 @@ function saveAndApplyDiffOperation(diff, proceed, abort, context) {
34
35
  });
35
36
  var operations = [
36
37
  _save.default,
38
+ _poll.default,
37
39
  _install.default,
38
40
  _build.default,
39
41
  _git.default,
@@ -46,4 +48,4 @@ function saveAndApplyDiffOperation(diff, proceed, abort, context) {
46
48
  }, context);
47
49
  }
48
50
 
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb24vc2F2ZUFuZEFwcGx5RGlmZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGdpdFByb21wdE9wZXJhdGlvbiBmcm9tIFwiLi4vb3BlcmF0aW9uL3Byb21wdC9naXRcIjtcbmltcG9ydCBzYXZlUHJvbXB0T3BlcmF0aW9uIGZyb20gXCIuLi9vcGVyYXRpb24vcHJvbXB0L3NhdmVcIjtcbmltcG9ydCBidWlsZFByb21wdE9wZXJhdGlvbiBmcm9tIFwiLi4vb3BlcmF0aW9uL3Byb21wdC9idWlsZFwiO1xuaW1wb3J0IGluc3RhbGxQcm9tcHRPcGVyYXRpb24gZnJvbSBcIi4uL29wZXJhdGlvbi9wcm9tcHQvaW5zdGFsbFwiO1xuaW1wb3J0IHB1Ymxpc2hQcm9tcHRPcGVyYXRpb24gZnJvbSBcIi4uL29wZXJhdGlvbi9wcm9tcHQvcHVibGlzaFwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBleGVjdXRlT3BlcmF0aW9ucyB9IGZyb20gXCIuLi91dGlsaXRpZXMvb3BlcmF0aW9uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNhdmVBbmRBcHBseURpZmZPcGVyYXRpb24oZGlmZiwgcHJvY2VlZCwgYWJvcnQsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBkaWZmcyB9ID0gY29udGV4dCxcbiAgICAgICAgaW5kZXggPSBkaWZmcy5pbmRleE9mKGRpZmYpO1xuXG4gIGlmIChpbmRleCA+IDApIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5TWFwRGlmZkVtcHR5ID0gZGlmZi5pc0RlcGVuZGVuY3lNYXBEaWZmRW1wdHkoKSxcbiAgICAgICAgICBkZXZEZXBlbmRlbmN5TWFwRGlmZkVtcHR5ID0gZGlmZi5pc0RldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkoKTtcblxuICAgIGlmIChkZXBlbmRlbmN5TWFwRGlmZkVtcHR5ICYmIGRldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkpIHtcbiAgICAgIHByb2NlZWQoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIE9iamVjdC5hc3NpZ24oY29udGV4dCwge1xuICAgIGRpZmZcbiAgfSk7XG5cbiAgY29uc3Qgb3BlcmF0aW9ucyA9IFtcbiAgICAgICAgICBzYXZlUHJvbXB0T3BlcmF0aW9uLFxuICAgICAgICAgIGluc3RhbGxQcm9tcHRPcGVyYXRpb24sXG4gICAgICAgICAgYnVpbGRQcm9tcHRPcGVyYXRpb24sXG4gICAgICAgICAgZ2l0UHJvbXB0T3BlcmF0aW9uLFxuICAgICAgICAgIHB1Ymxpc2hQcm9tcHRPcGVyYXRpb25cbiAgICAgICAgXTtcblxuICBjb25zb2xlLmxvZyhFTVBUWV9TVFJJTkcpO1xuXG4gIGV4ZWN1dGVPcGVyYXRpb25zKG9wZXJhdGlvbnMsIChjb21wbGV0ZWQpID0+IHtcbiAgICBkZWxldGUgY29udGV4dC5kaWZmO1xuXG4gICAgcHJvY2VlZCgpO1xuICB9LCBjb250ZXh0KTtcbn1cbiJdLCJuYW1lcyI6WyJzYXZlQW5kQXBwbHlEaWZmT3BlcmF0aW9uIiwiZGlmZiIsInByb2NlZWQiLCJhYm9ydCIsImNvbnRleHQiLCJkaWZmcyIsImluZGV4IiwiaW5kZXhPZiIsImRlcGVuZGVuY3lNYXBEaWZmRW1wdHkiLCJpc0RlcGVuZGVuY3lNYXBEaWZmRW1wdHkiLCJkZXZEZXBlbmRlbmN5TWFwRGlmZkVtcHR5IiwiaXNEZXZEZXBlbmRlbmN5TWFwRGlmZkVtcHR5IiwiT2JqZWN0IiwiYXNzaWduIiwib3BlcmF0aW9ucyIsInNhdmVQcm9tcHRPcGVyYXRpb24iLCJpbnN0YWxsUHJvbXB0T3BlcmF0aW9uIiwiYnVpbGRQcm9tcHRPcGVyYXRpb24iLCJnaXRQcm9tcHRPcGVyYXRpb24iLCJwdWJsaXNoUHJvbXB0T3BlcmF0aW9uIiwiY29uc29sZSIsImxvZyIsIkVNUFRZX1NUUklORyIsImV4ZWN1dGVPcGVyYXRpb25zIiwiY29tcGxldGVkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFXQTs7O2VBQXdCQTs7OzBEQVRPOzJEQUNDOzREQUNDOzhEQUNFOzhEQUNBO3lCQUVOO3lCQUNLOzs7Ozs7QUFFbkIsU0FBU0EsMEJBQTBCQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsS0FBSyxFQUFFQyxPQUFPO0lBQzdFLElBQU0sQUFBRUMsUUFBVUQsUUFBVkMsT0FDRkMsUUFBUUQsTUFBTUUsT0FBTyxDQUFDTjtJQUU1QixJQUFJSyxRQUFRLEdBQUc7UUFDYixJQUFNRSx5QkFBeUJQLEtBQUtRLHdCQUF3QixJQUN0REMsNEJBQTRCVCxLQUFLVSwyQkFBMkI7UUFFbEUsSUFBSUgsMEJBQTBCRSwyQkFBMkI7WUFDdkRSO1lBRUE7UUFDRjtJQUNGO0lBRUFVLE9BQU9DLE1BQU0sQ0FBQ1QsU0FBUztRQUNyQkgsTUFBQUE7SUFDRjtJQUVBLElBQU1hLGFBQWE7UUFDWEMsYUFBbUI7UUFDbkJDLGdCQUFzQjtRQUN0QkMsY0FBb0I7UUFDcEJDLFlBQWtCO1FBQ2xCQyxnQkFBc0I7S0FDdkI7SUFFUEMsUUFBUUMsR0FBRyxDQUFDQyx1QkFBWTtJQUV4QkMsSUFBQUEsNEJBQWlCLEVBQUNULFlBQVksU0FBQ1U7UUFDN0IsT0FBT3BCLFFBQVFILElBQUk7UUFFbkJDO0lBQ0YsR0FBR0U7QUFDTCJ9
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcGVyYXRpb24vc2F2ZUFuZEFwcGx5RGlmZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuaW1wb3J0IGdpdFByb21wdE9wZXJhdGlvbiBmcm9tIFwiLi4vb3BlcmF0aW9uL3Byb21wdC9naXRcIjtcbmltcG9ydCBwb2xsUHJvbXB0T3BlcmF0aW9uIGZyb20gXCIuLi9vcGVyYXRpb24vcHJvbXB0L3BvbGxcIjtcbmltcG9ydCBzYXZlUHJvbXB0T3BlcmF0aW9uIGZyb20gXCIuLi9vcGVyYXRpb24vcHJvbXB0L3NhdmVcIjtcbmltcG9ydCBidWlsZFByb21wdE9wZXJhdGlvbiBmcm9tIFwiLi4vb3BlcmF0aW9uL3Byb21wdC9idWlsZFwiO1xuaW1wb3J0IGluc3RhbGxQcm9tcHRPcGVyYXRpb24gZnJvbSBcIi4uL29wZXJhdGlvbi9wcm9tcHQvaW5zdGFsbFwiO1xuaW1wb3J0IHB1Ymxpc2hQcm9tcHRPcGVyYXRpb24gZnJvbSBcIi4uL29wZXJhdGlvbi9wcm9tcHQvcHVibGlzaFwiO1xuXG5pbXBvcnQgeyBFTVBUWV9TVFJJTkcgfSBmcm9tIFwiLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBleGVjdXRlT3BlcmF0aW9ucyB9IGZyb20gXCIuLi91dGlsaXRpZXMvb3BlcmF0aW9uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHNhdmVBbmRBcHBseURpZmZPcGVyYXRpb24oZGlmZiwgcHJvY2VlZCwgYWJvcnQsIGNvbnRleHQpIHtcbiAgY29uc3QgeyBkaWZmcyB9ID0gY29udGV4dCxcbiAgICAgICAgaW5kZXggPSBkaWZmcy5pbmRleE9mKGRpZmYpO1xuXG4gIGlmIChpbmRleCA+IDApIHtcbiAgICBjb25zdCBkZXBlbmRlbmN5TWFwRGlmZkVtcHR5ID0gZGlmZi5pc0RlcGVuZGVuY3lNYXBEaWZmRW1wdHkoKSxcbiAgICAgICAgICBkZXZEZXBlbmRlbmN5TWFwRGlmZkVtcHR5ID0gZGlmZi5pc0RldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkoKTtcblxuICAgIGlmIChkZXBlbmRlbmN5TWFwRGlmZkVtcHR5ICYmIGRldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkpIHtcbiAgICAgIHByb2NlZWQoKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIE9iamVjdC5hc3NpZ24oY29udGV4dCwge1xuICAgIGRpZmZcbiAgfSk7XG5cbiAgY29uc3Qgb3BlcmF0aW9ucyA9IFtcbiAgICBzYXZlUHJvbXB0T3BlcmF0aW9uLFxuICAgIHBvbGxQcm9tcHRPcGVyYXRpb24sXG4gICAgaW5zdGFsbFByb21wdE9wZXJhdGlvbixcbiAgICBidWlsZFByb21wdE9wZXJhdGlvbixcbiAgICBnaXRQcm9tcHRPcGVyYXRpb24sXG4gICAgcHVibGlzaFByb21wdE9wZXJhdGlvblxuICBdO1xuXG4gIGNvbnNvbGUubG9nKEVNUFRZX1NUUklORyk7XG5cbiAgZXhlY3V0ZU9wZXJhdGlvbnMob3BlcmF0aW9ucywgKGNvbXBsZXRlZCkgPT4ge1xuICAgIGRlbGV0ZSBjb250ZXh0LmRpZmY7XG5cbiAgICBwcm9jZWVkKCk7XG4gIH0sIGNvbnRleHQpO1xufVxuIl0sIm5hbWVzIjpbInNhdmVBbmRBcHBseURpZmZPcGVyYXRpb24iLCJkaWZmIiwicHJvY2VlZCIsImFib3J0IiwiY29udGV4dCIsImRpZmZzIiwiaW5kZXgiLCJpbmRleE9mIiwiZGVwZW5kZW5jeU1hcERpZmZFbXB0eSIsImlzRGVwZW5kZW5jeU1hcERpZmZFbXB0eSIsImRldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkiLCJpc0RldkRlcGVuZGVuY3lNYXBEaWZmRW1wdHkiLCJPYmplY3QiLCJhc3NpZ24iLCJvcGVyYXRpb25zIiwic2F2ZVByb21wdE9wZXJhdGlvbiIsInBvbGxQcm9tcHRPcGVyYXRpb24iLCJpbnN0YWxsUHJvbXB0T3BlcmF0aW9uIiwiYnVpbGRQcm9tcHRPcGVyYXRpb24iLCJnaXRQcm9tcHRPcGVyYXRpb24iLCJwdWJsaXNoUHJvbXB0T3BlcmF0aW9uIiwiY29uc29sZSIsImxvZyIsIkVNUFRZX1NUUklORyIsImV4ZWN1dGVPcGVyYXRpb25zIiwiY29tcGxldGVkIl0sIm1hcHBpbmdzIjoiQUFBQTs7OzsrQkFZQTs7O2VBQXdCQTs7OzBEQVZPOzJEQUNDOzJEQUNBOzREQUNDOzhEQUNFOzhEQUNBO3lCQUVOO3lCQUNLOzs7Ozs7QUFFbkIsU0FBU0EsMEJBQTBCQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsS0FBSyxFQUFFQyxPQUFPO0lBQzdFLElBQU0sQUFBRUMsUUFBVUQsUUFBVkMsT0FDRkMsUUFBUUQsTUFBTUUsT0FBTyxDQUFDTjtJQUU1QixJQUFJSyxRQUFRLEdBQUc7UUFDYixJQUFNRSx5QkFBeUJQLEtBQUtRLHdCQUF3QixJQUN0REMsNEJBQTRCVCxLQUFLVSwyQkFBMkI7UUFFbEUsSUFBSUgsMEJBQTBCRSwyQkFBMkI7WUFDdkRSO1lBRUE7UUFDRjtJQUNGO0lBRUFVLE9BQU9DLE1BQU0sQ0FBQ1QsU0FBUztRQUNyQkgsTUFBQUE7SUFDRjtJQUVBLElBQU1hLGFBQWE7UUFDakJDLGFBQW1CO1FBQ25CQyxhQUFtQjtRQUNuQkMsZ0JBQXNCO1FBQ3RCQyxjQUFvQjtRQUNwQkMsWUFBa0I7UUFDbEJDLGdCQUFzQjtLQUN2QjtJQUVEQyxRQUFRQyxHQUFHLENBQUNDLHVCQUFZO0lBRXhCQyxJQUFBQSw0QkFBaUIsRUFBQ1YsWUFBWSxTQUFDVztRQUM3QixPQUFPckIsUUFBUUgsSUFBSTtRQUVuQkM7SUFDRixHQUFHRTtBQUNMIn0=
package/lib/release.js CHANGED
@@ -8,10 +8,20 @@ Object.defineProperty(exports, "default", {
8
8
  return Release;
9
9
  }
10
10
  });
11
+ var _necessary = require("necessary");
11
12
  var _version = /*#__PURE__*/ _interop_require_default(require("./version"));
12
- var _shell = require("./utilities/shell");
13
+ var _constants = require("./constants");
13
14
  var _packageJSON = require("./utilities/packageJSON");
15
+ var _shell = require("./utilities/shell");
14
16
  var _configuration = require("./configuration");
17
+ function _array_like_to_array(arr, len) {
18
+ if (len == null || len > arr.length) len = arr.length;
19
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
20
+ return arr2;
21
+ }
22
+ function _array_without_holes(arr) {
23
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
24
+ }
15
25
  function _class_call_check(instance, Constructor) {
16
26
  if (!(instance instanceof Constructor)) {
17
27
  throw new TypeError("Cannot call a class as a function");
@@ -36,6 +46,24 @@ function _interop_require_default(obj) {
36
46
  default: obj
37
47
  };
38
48
  }
49
+ function _iterable_to_array(iter) {
50
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
51
+ }
52
+ function _non_iterable_spread() {
53
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
54
+ }
55
+ function _to_consumable_array(arr) {
56
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
57
+ }
58
+ function _unsupported_iterable_to_array(o, minLen) {
59
+ if (!o) return;
60
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
61
+ var n = Object.prototype.toString.call(o).slice(8, -1);
62
+ if (n === "Object" && o.constructor) n = o.constructor.name;
63
+ if (n === "Map" || n === "Set") return Array.from(n);
64
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
65
+ }
66
+ var eventually = _necessary.asynchronousUtilities.eventually, parseContent = _necessary.templateUtilities.parseContent, prune = _necessary.arrayUtilities.prune, filter = _necessary.arrayUtilities.filter;
39
67
  var Release = /*#__PURE__*/ function() {
40
68
  function Release(name, version, dependencyMap, devDependencyMap, subDirectoryPath) {
41
69
  _class_call_check(this, Release);
@@ -104,6 +132,33 @@ var Release = /*#__PURE__*/ function() {
104
132
  return devDependencyNames;
105
133
  }
106
134
  },
135
+ {
136
+ key: "getDependencies",
137
+ value: function getDependencies(names) {
138
+ var _this = this;
139
+ var dependencyNames = this.getDependencyNames(), devDependencyNames = this.getDevDependencyNames();
140
+ filter(dependencyNames, function(dependencyName) {
141
+ var namesIncludeDependencyName = names.includes(dependencyName);
142
+ if (namesIncludeDependencyName) {
143
+ return true;
144
+ }
145
+ });
146
+ filter(devDependencyNames, function(devDependencyName) {
147
+ var namesIncludeDevDependencyName = names.includes(devDependencyName);
148
+ if (namesIncludeDevDependencyName) {
149
+ return true;
150
+ }
151
+ });
152
+ names = _to_consumable_array(dependencyNames).concat(_to_consumable_array(devDependencyNames));
153
+ var dependencies = names.map(function(name) {
154
+ var version = _this.dependencyMap[name] || _this.devDependencyMap[name];
155
+ version = version.replace(/[\^~]/g, _constants.EMPTY_STRING);
156
+ var propagatedDependency = "".concat(name, "@").concat(version);
157
+ return propagatedDependency;
158
+ });
159
+ return dependencies;
160
+ }
161
+ },
107
162
  {
108
163
  key: "git",
109
164
  value: function git(quietly, callback) {
@@ -113,6 +168,39 @@ var Release = /*#__PURE__*/ function() {
113
168
  this.executeShellCommands(shellCommands, quietly, callback);
114
169
  }
115
170
  },
171
+ {
172
+ key: "poll",
173
+ value: function poll(names, quietly, callback) {
174
+ var dependencies = this.getDependencies(names), dependenciesLength = dependencies.length;
175
+ if (dependenciesLength === 0) {
176
+ var success = true;
177
+ callback(success);
178
+ return;
179
+ }
180
+ dependenciesLength === 1 ? console.log("Polling for the dependency:") : console.log("Polling for the dependenies:");
181
+ var operations = dependencies.map(function(dependency) {
182
+ return function(next, done, context, index) {
183
+ var shellCommands = shellCommandsFromDependency(dependency);
184
+ console.log(" - ".concat(dependency, " "));
185
+ (0, _shell.executeRepeatedly)(shellCommands, quietly, function(success) {
186
+ if (success) {
187
+ var polledDependency = dependency; ///
188
+ prune(dependencies, function(dependency) {
189
+ if (dependency !== polledDependency) {
190
+ return true;
191
+ }
192
+ });
193
+ }
194
+ next();
195
+ });
196
+ };
197
+ });
198
+ eventually(operations, function() {
199
+ var dependenciesLength = dependencies.length, success = dependenciesLength === 0;
200
+ callback(success);
201
+ });
202
+ }
203
+ },
116
204
  {
117
205
  key: "install",
118
206
  value: function install(quietly, callback) {
@@ -127,7 +215,7 @@ var Release = /*#__PURE__*/ function() {
127
215
  value: function build(quietly, callback) {
128
216
  var ignoredBuilds = (0, _configuration.retrieveIgnoredBuilds)(), subDirectoryPaths = ignoredBuilds, subDirectoryPathsIncludesSubDirectoryPath = subDirectoryPaths.includes(this.subDirectoryPath), buildIgnored = subDirectoryPathsIncludesSubDirectoryPath; ///
129
217
  if (buildIgnored) {
130
- console.log("Ignoring the '".concat(this.name, "' build."));
218
+ console.log("Ignoring the '".concat(this.subDirectoryPath, "' build."));
131
219
  var success = true;
132
220
  callback(success);
133
221
  return;
@@ -165,7 +253,7 @@ var Release = /*#__PURE__*/ function() {
165
253
  value: function executeShellCommands(shellCommands, quietly, callback) {
166
254
  var currentWorkingDirectoryPath = process.cwd();
167
255
  process.chdir(this.subDirectoryPath);
168
- (0, _shell.execute)(shellCommands, quietly, function(success) {
256
+ (0, _shell.executePromptly)(shellCommands, quietly, function(success) {
169
257
  process.chdir(currentWorkingDirectoryPath);
170
258
  callback(success);
171
259
  });
@@ -223,5 +311,13 @@ function updateSemver(name, versionString, map) {
223
311
  }
224
312
  return success;
225
313
  }
314
+ function shellCommandsFromDependency(dependency) {
315
+ var shellCommands = (0, _configuration.retrieveShellCommands)();
316
+ var poll = shellCommands.poll, pollShellCommands = poll, args = {
317
+ dependency: dependency
318
+ };
319
+ shellCommands = parseContent(pollShellCommands, args);
320
+ return shellCommands;
321
+ }
226
322
 
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgVmVyc2lvbiBmcm9tIFwiLi92ZXJzaW9uXCI7XG5cbmltcG9ydCB7IGV4ZWN1dGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvc2hlbGxcIjtcbmltcG9ydCB7IHJlYWRQYWNrYWdlSlNPTkZpbGUgfSBmcm9tIFwiLi91dGlsaXRpZXMvcGFja2FnZUpTT05cIjtcbmltcG9ydCB7IHJldHJpZXZlU2hlbGxDb21tYW5kcywgcmV0cmlldmVJZ25vcmVkQnVpbGRzLCByZXRyaWV2ZUlnbm9yZWRQdWJsaXNoZXMgfSBmcm9tIFwiLi9jb25maWd1cmF0aW9uXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFJlbGVhc2Uge1xuICBjb25zdHJ1Y3RvcihuYW1lLCB2ZXJzaW9uLCBkZXBlbmRlbmN5TWFwLCBkZXZEZXBlbmRlbmN5TWFwLCBzdWJEaXJlY3RvcnlQYXRoKSB7XG4gICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uO1xuICAgIHRoaXMuZGVwZW5kZW5jeU1hcCA9IGRlcGVuZGVuY3lNYXA7XG4gICAgdGhpcy5kZXZEZXBlbmRlbmN5TWFwID0gZGV2RGVwZW5kZW5jeU1hcDtcbiAgICB0aGlzLnN1YkRpcmVjdG9yeVBhdGggPSBzdWJEaXJlY3RvcnlQYXRoO1xuICB9XG5cbiAgZ2V0TmFtZSgpIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lO1xuICB9XG5cbiAgZ2V0VmVyc2lvbigpIHtcbiAgICByZXR1cm4gdGhpcy52ZXJzaW9uO1xuICB9XG5cbiAgZ2V0RGVwZW5kZW5jeU1hcCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXBlbmRlbmN5TWFwO1xuICB9XG5cbiAgZ2V0RGV2RGVwZW5kZW5jeU1hcCgpIHtcbiAgICByZXR1cm4gdGhpcy5kZXZEZXBlbmRlbmN5TWFwO1xuICB9XG5cbiAgZ2V0U3ViRGlyZWN0b3J5UGF0aCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJEaXJlY3RvcnlQYXRoO1xuICB9XG5cbiAgaXNQdWJsaXNoYWJsZSgpIHtcbiAgICBjb25zdCBwdWJsaXNoYWJsZSA9ICh0aGlzLm5hbWUgIT09IG51bGwpICYmICh0aGlzLnZlcnNpb24gIT09IG51bGwpO1xuXG4gICAgcmV0dXJuIHB1Ymxpc2hhYmxlO1xuICB9XG5cbiAgZ2V0VmVyc2lvblN0cmluZygpIHtcbiAgICBjb25zdCB2ZXJzaW9uU3RyaW5nID0gdGhpcy52ZXJzaW9uLmFzU3RyaW5nKCk7XG5cbiAgICByZXR1cm4gdmVyc2lvblN0cmluZzsgLy8vXG4gIH1cblxuICBnZXREZXBlbmRlbmN5TmFtZXMoKSB7XG4gICAgY29uc3QgZGVwZW5kZW5jeU5hbWVzID0gT2JqZWN0LmtleXModGhpcy5kZXBlbmRlbmN5TWFwKTtcblxuICAgIHJldHVybiBkZXBlbmRlbmN5TmFtZXM7XG4gIH1cblxuICBnZXREZXZEZXBlbmRlbmN5TmFtZXMoKSB7XG4gICAgY29uc3QgZGV2RGVwZW5kZW5jeU5hbWVzID0gT2JqZWN0LmtleXModGhpcy5kZXZEZXBlbmRlbmN5TWFwKTtcblxuICAgIHJldHVybiBkZXZEZXBlbmRlbmN5TmFtZXM7XG4gIH1cblxuICBnaXQocXVpZXRseSwgY2FsbGJhY2spIHtcbiAgICBsZXQgc2hlbGxDb21tYW5kcyA9IHJldHJpZXZlU2hlbGxDb21tYW5kcygpO1xuXG4gICAgY29uc3QgeyBnaXQgfSA9IHNoZWxsQ29tbWFuZHMsXG4gICAgICAgICAgZ2l0U2hlbGxDb21tYW5kcyA9IGdpdDtcblxuICAgIHNoZWxsQ29tbWFuZHMgPSBnaXRTaGVsbENvbW1hbmRzOyAvLy9cblxuICAgIHRoaXMuZXhlY3V0ZVNoZWxsQ29tbWFuZHMoc2hlbGxDb21tYW5kcywgcXVpZXRseSwgY2FsbGJhY2spO1xuICB9XG5cbiAgaW5zdGFsbChxdWlldGx5LCBjYWxsYmFjaykge1xuICAgIGxldCBzaGVsbENvbW1hbmRzID0gcmV0cmlldmVTaGVsbENvbW1hbmRzKCk7XG5cbiAgICBjb25zdCB7IGluc3RhbGwgfSA9IHNoZWxsQ29tbWFuZHMsXG4gICAgICAgICAgaW5zdGFsbFNoZWxsQ29tbWFuZHMgPSBpbnN0YWxsO1xuXG4gICAgc2hlbGxDb21tYW5kcyA9IGluc3RhbGxTaGVsbENvbW1hbmRzOyAvLy9cblxuICAgIHRoaXMuZXhlY3V0ZVNoZWxsQ29tbWFuZHMoc2hlbGxDb21tYW5kcywgcXVpZXRseSwgY2FsbGJhY2spO1xuICB9XG5cbiAgYnVpbGQocXVpZXRseSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCBpZ25vcmVkQnVpbGRzID0gcmV0cmlldmVJZ25vcmVkQnVpbGRzKCksXG4gICAgICAgICAgc3ViRGlyZWN0b3J5UGF0aHMgPSBpZ25vcmVkQnVpbGRzLFxuICAgICAgICAgIHN1YkRpcmVjdG9yeVBhdGhzSW5jbHVkZXNTdWJEaXJlY3RvcnlQYXRoID0gc3ViRGlyZWN0b3J5UGF0aHMuaW5jbHVkZXModGhpcy5zdWJEaXJlY3RvcnlQYXRoKSxcbiAgICAgICAgICBidWlsZElnbm9yZWQgPSBzdWJEaXJlY3RvcnlQYXRoc0luY2x1ZGVzU3ViRGlyZWN0b3J5UGF0aDsgLy8vXG5cbiAgICBpZiAoYnVpbGRJZ25vcmVkKSB7XG4gICAgICBjb25zb2xlLmxvZyhgSWdub3JpbmcgdGhlICcke3RoaXMubmFtZX0nIGJ1aWxkLmApO1xuXG4gICAgICBjb25zdCBzdWNjZXNzID0gdHJ1ZTtcblxuICAgICAgY2FsbGJhY2soc3VjY2Vzcyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgc2hlbGxDb21tYW5kcyA9IHJldHJpZXZlU2hlbGxDb21tYW5kcygpO1xuXG4gICAgY29uc3QgeyBidWlsZCB9ID0gc2hlbGxDb21tYW5kcyxcbiAgICAgICAgICBidWlsZFNoZWxsQ29tbWFuZHMgPSBidWlsZDtcblxuICAgIHNoZWxsQ29tbWFuZHMgPSBidWlsZFNoZWxsQ29tbWFuZHM7IC8vL1xuXG4gICAgdGhpcy5leGVjdXRlU2hlbGxDb21tYW5kcyhzaGVsbENvbW1hbmRzLCBxdWlldGx5LCBjYWxsYmFjayk7XG4gIH1cblxuICBwdWJsaXNoKHF1aWV0bHksIGNhbGxiYWNrKSB7XG4gICAgY29uc3QgaWdub3JlZFB1Ymxpc2hlcyA9IHJldHJpZXZlSWdub3JlZFB1Ymxpc2hlcygpLFxuICAgICAgICAgIG5hbWVzID0gaWdub3JlZFB1Ymxpc2hlcyxcbiAgICAgICAgICBuYW1lc0luY2x1ZGVzTmFtZSA9IG5hbWVzLmluY2x1ZGVzKHRoaXMubmFtZSksXG4gICAgICAgICAgcHVibGlzaElnbm9yZWQgPSBuYW1lc0luY2x1ZGVzTmFtZTsgLy8vXG5cbiAgICBpZiAocHVibGlzaElnbm9yZWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyB0aGUgJyR7dGhpcy5uYW1lfScgcHVibGlzaC5gKTtcblxuICAgICAgY29uc3Qgc3VjY2VzcyA9IHRydWU7XG5cbiAgICAgIGNhbGxiYWNrKHN1Y2Nlc3MpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHNoZWxsQ29tbWFuZHMgPSByZXRyaWV2ZVNoZWxsQ29tbWFuZHMoKTtcblxuICAgIGNvbnN0IHsgcHVibGlzaCB9ID0gc2hlbGxDb21tYW5kcyxcbiAgICAgICAgICBwdWJsaXNoU2hlbGxDb21tYW5kcyA9IHB1Ymxpc2g7XG5cbiAgICBzaGVsbENvbW1hbmRzID0gcHVibGlzaFNoZWxsQ29tbWFuZHM7IC8vL1xuXG4gICAgdGhpcy5leGVjdXRlU2hlbGxDb21tYW5kcyhzaGVsbENvbW1hbmRzLCBxdWlldGx5LCBjYWxsYmFjayk7XG4gIH1cblxuICBidW1wUGF0Y2hOdW1iZXIoKSB7IHRoaXMudmVyc2lvbi5idW1wUGF0Y2hOdW1iZXIoKTsgfVxuXG4gIGV4ZWN1dGVTaGVsbENvbW1hbmRzKHNoZWxsQ29tbWFuZHMsIHF1aWV0bHksIGNhbGxiYWNrKSB7XG4gICAgY29uc3QgY3VycmVudFdvcmtpbmdEaXJlY3RvcnlQYXRoID0gcHJvY2Vzcy5jd2QoKTtcblxuICAgIHByb2Nlc3MuY2hkaXIodGhpcy5zdWJEaXJlY3RvcnlQYXRoKTtcblxuICAgIGV4ZWN1dGUoc2hlbGxDb21tYW5kcywgcXVpZXRseSwgKHN1Y2Nlc3MpID0+IHtcbiAgICAgIHByb2Nlc3MuY2hkaXIoY3VycmVudFdvcmtpbmdEaXJlY3RvcnlQYXRoKTtcblxuICAgICAgY2FsbGJhY2soc3VjY2Vzcyk7XG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVEZXBlbmRlbmN5VmVyc2lvbihuYW1lLCB2ZXJzaW9uU3RyaW5nKSB7XG4gICAgY29uc3Qgc3VjY2VzcyA9IHVwZGF0ZVNlbXZlcihuYW1lLCB2ZXJzaW9uU3RyaW5nLCB0aGlzLmRlcGVuZGVuY3lNYXApO1xuXG4gICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICBjb25zb2xlLmxvZyhgRWl0aGVyIHRoZSB2ZXJzaW9uIG9mIHRoZSAnJHt0aGlzLnN1YkRpcmVjdG9yeVBhdGh9JyByZWxlYXNlJ3MgJyR7bmFtZX0nIGRlcGVuZGVuY3kgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBwcm9wYWdhdGVkICcke3ZlcnNpb25TdHJpbmd9JyB2ZXJzaW9uIG9yIGl0IGNhbm5vdCBiZSBwYXJzZWQuYCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1Y2Nlc3M7XG4gIH1cblxuICB1cGRhdGVEZXZEZXBlbmRlbmN5VmVyc2lvbihuYW1lLCB2ZXJzaW9uU3RyaW5nKSB7XG4gICAgY29uc3Qgc3VjY2VzcyA9IHVwZGF0ZVNlbXZlcihuYW1lLCB2ZXJzaW9uU3RyaW5nLCB0aGlzLmRldkRlcGVuZGVuY3lNYXApO1xuXG4gICAgaWYgKCFzdWNjZXNzKSB7XG4gICAgICBjb25zb2xlLmxvZyhgRWl0aGVyIHRoZSB2ZXJzaW9uIG9mIHRoZSAnJHt0aGlzLnN1YkRpcmVjdG9yeVBhdGh9JyByZWxlYXNlJ3MgJyR7bmFtZX0nIGRldmVsb3BlciBkZXBlbmRlbmN5IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgcHJvcGFnYXRlZCAnJHt2ZXJzaW9uU3RyaW5nfScgdmVyc2lvbiBvciBpdCBjYW5ub3QgYmUgcGFyc2VkLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9XG5cbiAgc3RhdGljIGZyb21TdWJEaXJlY3RvcnlQYXRoKHN1YkRpcmVjdG9yeVBhdGgpIHtcbiAgICBsZXQgcmVsZWFzZSA9IG51bGw7XG5cbiAgICBjb25zdCBwYWNrYWdlSlNPTiA9IHJlYWRQYWNrYWdlSlNPTkZpbGUoc3ViRGlyZWN0b3J5UGF0aCk7XG5cbiAgICBpZiAocGFja2FnZUpTT04gIT09IG51bGwpIHtcbiAgICAgIGxldCB7IHZlcnNpb24gPSBudWxsIH0gPSBwYWNrYWdlSlNPTjtcblxuICAgICAgY29uc3QgeyBuYW1lID0gbnVsbCwgZGVwZW5kZW5jaWVzID0ge30sIGRldkRlcGVuZGVuY2llcyA9IHt9IH0gPSBwYWNrYWdlSlNPTixcbiAgICAgICAgICAgIHZlcnNpb25TdHJpbmcgPSB2ZXJzaW9uLCAgLy8vXG4gICAgICAgICAgICBkZXBlbmRlbmN5TWFwID0gZGVwZW5kZW5jaWVzLCAvLy9cbiAgICAgICAgICAgIGRldkRlcGVuZGVuY3lNYXAgPSBkZXZEZXBlbmRlbmNpZXM7IC8vL1xuXG4gICAgICB2ZXJzaW9uID0gVmVyc2lvbi5mcm9tVmVyc2lvblN0cmluZyh2ZXJzaW9uU3RyaW5nKTtcblxuICAgICAgcmVsZWFzZSA9IG5ldyBSZWxlYXNlKG5hbWUsIHZlcnNpb24sIGRlcGVuZGVuY3lNYXAsIGRldkRlcGVuZGVuY3lNYXAsIHN1YkRpcmVjdG9yeVBhdGgpO1xuICAgIH1cblxuICAgIHJldHVybiByZWxlYXNlO1xuICB9XG59XG5cbmZ1bmN0aW9uIHVwZGF0ZVNlbXZlcihuYW1lLCB2ZXJzaW9uU3RyaW5nLCBtYXApIHtcbiAgbGV0IHN1Y2Nlc3MgPSBmYWxzZTtcblxuICBsZXQgc2VtdmVyID0gbWFwW25hbWVdIHx8IG51bGw7XG5cbiAgY29uc3QgdmVyc2lvbiA9IFZlcnNpb24uZnJvbVZlcnNpb25TdHJpbmcodmVyc2lvblN0cmluZyksXG4gICAgICAgIGV4aXN0aW5nU2VtdmVyID0gc2VtdmVyLCAvLy9cbiAgICAgICAgZXhpc3RpbmdWZXJzaW9uID0gVmVyc2lvbi5mcm9tU3RyaW5nKGV4aXN0aW5nU2VtdmVyKTtcblxuICBpZiAoZXhpc3RpbmdWZXJzaW9uICE9PSBudWxsKSB7XG4gICAgY29uc3QgdmVyc2lvbkdyZWF0ZXJUaGFuRXhpc3RpbmdWZXJzaW9uID0gdmVyc2lvbi5pc0dyZWF0ZXJUaGFuKGV4aXN0aW5nVmVyc2lvbik7XG5cbiAgICBzdWNjZXNzID0gdmVyc2lvbkdyZWF0ZXJUaGFuRXhpc3RpbmdWZXJzaW9uOyAgLy8vXG5cbiAgICBpZiAoc3VjY2Vzcykge1xuICAgICAgc2VtdmVyID0gdmVyc2lvbi51cGRhdGVTZW12ZXIoc2VtdmVyKTtcblxuICAgICAgbWFwW25hbWVdID0gc2VtdmVyO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdWNjZXNzO1xufVxuIl0sIm5hbWVzIjpbIlJlbGVhc2UiLCJuYW1lIiwidmVyc2lvbiIsImRlcGVuZGVuY3lNYXAiLCJkZXZEZXBlbmRlbmN5TWFwIiwic3ViRGlyZWN0b3J5UGF0aCIsImdldE5hbWUiLCJnZXRWZXJzaW9uIiwiZ2V0RGVwZW5kZW5jeU1hcCIsImdldERldkRlcGVuZGVuY3lNYXAiLCJnZXRTdWJEaXJlY3RvcnlQYXRoIiwiaXNQdWJsaXNoYWJsZSIsInB1Ymxpc2hhYmxlIiwiZ2V0VmVyc2lvblN0cmluZyIsInZlcnNpb25TdHJpbmciLCJhc1N0cmluZyIsImdldERlcGVuZGVuY3lOYW1lcyIsImRlcGVuZGVuY3lOYW1lcyIsIk9iamVjdCIsImtleXMiLCJnZXREZXZEZXBlbmRlbmN5TmFtZXMiLCJkZXZEZXBlbmRlbmN5TmFtZXMiLCJnaXQiLCJxdWlldGx5IiwiY2FsbGJhY2siLCJzaGVsbENvbW1hbmRzIiwicmV0cmlldmVTaGVsbENvbW1hbmRzIiwiZ2l0U2hlbGxDb21tYW5kcyIsImV4ZWN1dGVTaGVsbENvbW1hbmRzIiwiaW5zdGFsbCIsImluc3RhbGxTaGVsbENvbW1hbmRzIiwiYnVpbGQiLCJpZ25vcmVkQnVpbGRzIiwicmV0cmlldmVJZ25vcmVkQnVpbGRzIiwic3ViRGlyZWN0b3J5UGF0aHMiLCJzdWJEaXJlY3RvcnlQYXRoc0luY2x1ZGVzU3ViRGlyZWN0b3J5UGF0aCIsImluY2x1ZGVzIiwiYnVpbGRJZ25vcmVkIiwiY29uc29sZSIsImxvZyIsInN1Y2Nlc3MiLCJidWlsZFNoZWxsQ29tbWFuZHMiLCJwdWJsaXNoIiwiaWdub3JlZFB1Ymxpc2hlcyIsInJldHJpZXZlSWdub3JlZFB1Ymxpc2hlcyIsIm5hbWVzIiwibmFtZXNJbmNsdWRlc05hbWUiLCJwdWJsaXNoSWdub3JlZCIsInB1Ymxpc2hTaGVsbENvbW1hbmRzIiwiYnVtcFBhdGNoTnVtYmVyIiwiY3VycmVudFdvcmtpbmdEaXJlY3RvcnlQYXRoIiwicHJvY2VzcyIsImN3ZCIsImNoZGlyIiwiZXhlY3V0ZSIsInVwZGF0ZURlcGVuZGVuY3lWZXJzaW9uIiwidXBkYXRlU2VtdmVyIiwidXBkYXRlRGV2RGVwZW5kZW5jeVZlcnNpb24iLCJmcm9tU3ViRGlyZWN0b3J5UGF0aCIsInJlbGVhc2UiLCJwYWNrYWdlSlNPTiIsInJlYWRQYWNrYWdlSlNPTkZpbGUiLCJkZXBlbmRlbmNpZXMiLCJkZXZEZXBlbmRlbmNpZXMiLCJWZXJzaW9uIiwiZnJvbVZlcnNpb25TdHJpbmciLCJtYXAiLCJzZW12ZXIiLCJleGlzdGluZ1NlbXZlciIsImV4aXN0aW5nVmVyc2lvbiIsImZyb21TdHJpbmciLCJ2ZXJzaW9uR3JlYXRlclRoYW5FeGlzdGluZ1ZlcnNpb24iLCJpc0dyZWF0ZXJUaGFuIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7OztlQVFxQkE7Ozs4REFORDtxQkFFSTsyQkFDWTs2QkFDbUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFeEUsSUFBQSxBQUFNQSx3QkFBTjthQUFNQSxRQUNQQyxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsYUFBYSxFQUFFQyxnQkFBZ0IsRUFBRUMsZ0JBQWdCO2dDQUR6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
323
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5pbXBvcnQgeyBhcnJheVV0aWxpdGllcywgdGVtcGxhdGVVdGlsaXRpZXMsIGFzeW5jaHJvbm91c1V0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIlxuXG5pbXBvcnQgVmVyc2lvbiBmcm9tIFwiLi92ZXJzaW9uXCI7XG5cbmltcG9ydCB7IEVNUFRZX1NUUklORyB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgcmVhZFBhY2thZ2VKU09ORmlsZSB9IGZyb20gXCIuL3V0aWxpdGllcy9wYWNrYWdlSlNPTlwiO1xuaW1wb3J0IHsgZXhlY3V0ZVByb21wdGx5LCBleGVjdXRlUmVwZWF0ZWRseSB9IGZyb20gXCIuL3V0aWxpdGllcy9zaGVsbFwiO1xuaW1wb3J0IHsgcmV0cmlldmVTaGVsbENvbW1hbmRzLCByZXRyaWV2ZUlnbm9yZWRCdWlsZHMsIHJldHJpZXZlSWdub3JlZFB1Ymxpc2hlcyB9IGZyb20gXCIuL2NvbmZpZ3VyYXRpb25cIjtcblxuY29uc3QgeyBldmVudHVhbGx5IH0gPSBhc3luY2hyb25vdXNVdGlsaXRpZXMsXG4gICAgICB7IHBhcnNlQ29udGVudCB9ID0gdGVtcGxhdGVVdGlsaXRpZXMsXG4gICAgICB7IHBydW5lLCBmaWx0ZXIgfSA9IGFycmF5VXRpbGl0aWVzO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBSZWxlYXNlIHtcbiAgY29uc3RydWN0b3IobmFtZSwgdmVyc2lvbiwgZGVwZW5kZW5jeU1hcCwgZGV2RGVwZW5kZW5jeU1hcCwgc3ViRGlyZWN0b3J5UGF0aCkge1xuICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgdGhpcy52ZXJzaW9uID0gdmVyc2lvbjtcbiAgICB0aGlzLmRlcGVuZGVuY3lNYXAgPSBkZXBlbmRlbmN5TWFwO1xuICAgIHRoaXMuZGV2RGVwZW5kZW5jeU1hcCA9IGRldkRlcGVuZGVuY3lNYXA7XG4gICAgdGhpcy5zdWJEaXJlY3RvcnlQYXRoID0gc3ViRGlyZWN0b3J5UGF0aDtcbiAgfVxuXG4gIGdldE5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgfVxuXG4gIGdldFZlcnNpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMudmVyc2lvbjtcbiAgfVxuXG4gIGdldERlcGVuZGVuY3lNYXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGVwZW5kZW5jeU1hcDtcbiAgfVxuXG4gIGdldERldkRlcGVuZGVuY3lNYXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGV2RGVwZW5kZW5jeU1hcDtcbiAgfVxuXG4gIGdldFN1YkRpcmVjdG9yeVBhdGgoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViRGlyZWN0b3J5UGF0aDtcbiAgfVxuXG4gIGlzUHVibGlzaGFibGUoKSB7XG4gICAgY29uc3QgcHVibGlzaGFibGUgPSAodGhpcy5uYW1lICE9PSBudWxsKSAmJiAodGhpcy52ZXJzaW9uICE9PSBudWxsKTtcblxuICAgIHJldHVybiBwdWJsaXNoYWJsZTtcbiAgfVxuXG4gIGdldFZlcnNpb25TdHJpbmcoKSB7XG4gICAgY29uc3QgdmVyc2lvblN0cmluZyA9IHRoaXMudmVyc2lvbi5hc1N0cmluZygpO1xuXG4gICAgcmV0dXJuIHZlcnNpb25TdHJpbmc7IC8vL1xuICB9XG5cbiAgZ2V0RGVwZW5kZW5jeU5hbWVzKCkge1xuICAgIGNvbnN0IGRlcGVuZGVuY3lOYW1lcyA9IE9iamVjdC5rZXlzKHRoaXMuZGVwZW5kZW5jeU1hcCk7XG5cbiAgICByZXR1cm4gZGVwZW5kZW5jeU5hbWVzO1xuICB9XG5cbiAgZ2V0RGV2RGVwZW5kZW5jeU5hbWVzKCkge1xuICAgIGNvbnN0IGRldkRlcGVuZGVuY3lOYW1lcyA9IE9iamVjdC5rZXlzKHRoaXMuZGV2RGVwZW5kZW5jeU1hcCk7XG5cbiAgICByZXR1cm4gZGV2RGVwZW5kZW5jeU5hbWVzO1xuICB9XG5cbiAgZ2V0RGVwZW5kZW5jaWVzKG5hbWVzKSB7XG4gICAgY29uc3QgZGVwZW5kZW5jeU5hbWVzID0gdGhpcy5nZXREZXBlbmRlbmN5TmFtZXMoKSxcbiAgICAgICAgICBkZXZEZXBlbmRlbmN5TmFtZXMgPSB0aGlzLmdldERldkRlcGVuZGVuY3lOYW1lcygpO1xuXG4gICAgZmlsdGVyKGRlcGVuZGVuY3lOYW1lcywgKGRlcGVuZGVuY3lOYW1lKSA9PiB7XG4gICAgICBjb25zdCBuYW1lc0luY2x1ZGVEZXBlbmRlbmN5TmFtZSA9IG5hbWVzLmluY2x1ZGVzKGRlcGVuZGVuY3lOYW1lKTtcblxuICAgICAgaWYgKG5hbWVzSW5jbHVkZURlcGVuZGVuY3lOYW1lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZmlsdGVyKGRldkRlcGVuZGVuY3lOYW1lcywgKGRldkRlcGVuZGVuY3lOYW1lKSA9PiB7XG4gICAgICBjb25zdCBuYW1lc0luY2x1ZGVEZXZEZXBlbmRlbmN5TmFtZSA9IG5hbWVzLmluY2x1ZGVzKGRldkRlcGVuZGVuY3lOYW1lKTtcblxuICAgICAgaWYgKG5hbWVzSW5jbHVkZURldkRlcGVuZGVuY3lOYW1lKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbmFtZXMgPSBbXG4gICAgICAuLi5kZXBlbmRlbmN5TmFtZXMsXG4gICAgICAuLi5kZXZEZXBlbmRlbmN5TmFtZXNcbiAgICBdO1xuXG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gbmFtZXMubWFwKChuYW1lKSA9PiB7XG4gICAgICBsZXQgdmVyc2lvbiA9IHRoaXMuZGVwZW5kZW5jeU1hcFtuYW1lXSB8fCB0aGlzLmRldkRlcGVuZGVuY3lNYXBbbmFtZV07XG5cbiAgICAgIHZlcnNpb24gPSB2ZXJzaW9uLnJlcGxhY2UoL1tcXF5+XS9nLCBFTVBUWV9TVFJJTkcpO1xuXG4gICAgICBjb25zdCBwcm9wYWdhdGVkRGVwZW5kZW5jeSA9IGAke25hbWV9QCR7dmVyc2lvbn1gO1xuXG4gICAgICByZXR1cm4gcHJvcGFnYXRlZERlcGVuZGVuY3k7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZGVwZW5kZW5jaWVzO1xuICB9XG5cbiAgZ2l0KHF1aWV0bHksIGNhbGxiYWNrKSB7XG4gICAgbGV0IHNoZWxsQ29tbWFuZHMgPSByZXRyaWV2ZVNoZWxsQ29tbWFuZHMoKTtcblxuICAgIGNvbnN0IHsgZ2l0IH0gPSBzaGVsbENvbW1hbmRzLFxuICAgICAgZ2l0U2hlbGxDb21tYW5kcyA9IGdpdDtcblxuICAgIHNoZWxsQ29tbWFuZHMgPSBnaXRTaGVsbENvbW1hbmRzOyAvLy9cblxuICAgIHRoaXMuZXhlY3V0ZVNoZWxsQ29tbWFuZHMoc2hlbGxDb21tYW5kcywgcXVpZXRseSwgY2FsbGJhY2spO1xuICB9XG5cbiAgcG9sbChuYW1lcywgcXVpZXRseSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCBkZXBlbmRlbmNpZXMgPSB0aGlzLmdldERlcGVuZGVuY2llcyhuYW1lcyksXG4gICAgICAgICAgZGVwZW5kZW5jaWVzTGVuZ3RoID0gZGVwZW5kZW5jaWVzLmxlbmd0aDtcblxuICAgIGlmIChkZXBlbmRlbmNpZXNMZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBjYWxsYmFjayhzdWNjZXNzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIChkZXBlbmRlbmNpZXNMZW5ndGggPT09IDEpID9cbiAgICAgIGNvbnNvbGUubG9nKGBQb2xsaW5nIGZvciB0aGUgZGVwZW5kZW5jeTpgKSA6XG4gICAgICAgIGNvbnNvbGUubG9nKGBQb2xsaW5nIGZvciB0aGUgZGVwZW5kZW5pZXM6YCk7XG5cbiAgICBjb25zdCBvcGVyYXRpb25zID0gZGVwZW5kZW5jaWVzLm1hcCgoZGVwZW5kZW5jeSkgPT4ge1xuICAgICAgcmV0dXJuIChuZXh0LCBkb25lLCBjb250ZXh0LCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCBzaGVsbENvbW1hbmRzID0gc2hlbGxDb21tYW5kc0Zyb21EZXBlbmRlbmN5KGRlcGVuZGVuY3kpO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKGAgLSAke2RlcGVuZGVuY3l9IGApO1xuXG4gICAgICAgIGV4ZWN1dGVSZXBlYXRlZGx5KHNoZWxsQ29tbWFuZHMsIHF1aWV0bHksIChzdWNjZXNzKSA9PiB7XG4gICAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHBvbGxlZERlcGVuZGVuY3kgPSBkZXBlbmRlbmN5OyAvLy9cblxuICAgICAgICAgICAgcHJ1bmUoZGVwZW5kZW5jaWVzLCAoZGVwZW5kZW5jeSkgPT4ge1xuICAgICAgICAgICAgICBpZiAoZGVwZW5kZW5jeSAhPT0gcG9sbGVkRGVwZW5kZW5jeSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBuZXh0KCk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGV2ZW50dWFsbHkob3BlcmF0aW9ucywgKCkgPT4ge1xuICAgICAgY29uc3QgZGVwZW5kZW5jaWVzTGVuZ3RoID0gZGVwZW5kZW5jaWVzLmxlbmd0aCxcbiAgICAgICAgICAgIHN1Y2Nlc3MgPSAoZGVwZW5kZW5jaWVzTGVuZ3RoID09PSAwKTtcblxuICAgICAgY2FsbGJhY2soc3VjY2Vzcyk7XG4gICAgfSk7XG4gIH1cblxuICBpbnN0YWxsKHF1aWV0bHksIGNhbGxiYWNrKSB7XG4gICAgbGV0IHNoZWxsQ29tbWFuZHMgPSByZXRyaWV2ZVNoZWxsQ29tbWFuZHMoKTtcblxuICAgIGNvbnN0IHsgaW5zdGFsbCB9ID0gc2hlbGxDb21tYW5kcyxcbiAgICAgICAgICBpbnN0YWxsU2hlbGxDb21tYW5kcyA9IGluc3RhbGw7XG5cbiAgICBzaGVsbENvbW1hbmRzID0gaW5zdGFsbFNoZWxsQ29tbWFuZHM7IC8vL1xuXG4gICAgdGhpcy5leGVjdXRlU2hlbGxDb21tYW5kcyhzaGVsbENvbW1hbmRzLCBxdWlldGx5LCBjYWxsYmFjayk7XG4gIH1cblxuICBidWlsZChxdWlldGx5LCBjYWxsYmFjaykge1xuICAgIGNvbnN0IGlnbm9yZWRCdWlsZHMgPSByZXRyaWV2ZUlnbm9yZWRCdWlsZHMoKSxcbiAgICAgICAgICBzdWJEaXJlY3RvcnlQYXRocyA9IGlnbm9yZWRCdWlsZHMsXG4gICAgICAgICAgc3ViRGlyZWN0b3J5UGF0aHNJbmNsdWRlc1N1YkRpcmVjdG9yeVBhdGggPSBzdWJEaXJlY3RvcnlQYXRocy5pbmNsdWRlcyh0aGlzLnN1YkRpcmVjdG9yeVBhdGgpLFxuICAgICAgICAgIGJ1aWxkSWdub3JlZCA9IHN1YkRpcmVjdG9yeVBhdGhzSW5jbHVkZXNTdWJEaXJlY3RvcnlQYXRoOyAvLy9cblxuICAgIGlmIChidWlsZElnbm9yZWQpIHtcbiAgICAgIGNvbnNvbGUubG9nKGBJZ25vcmluZyB0aGUgJyR7dGhpcy5zdWJEaXJlY3RvcnlQYXRofScgYnVpbGQuYCk7XG5cbiAgICAgIGNvbnN0IHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICBjYWxsYmFjayhzdWNjZXNzKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBzaGVsbENvbW1hbmRzID0gcmV0cmlldmVTaGVsbENvbW1hbmRzKCk7XG5cbiAgICBjb25zdCB7IGJ1aWxkIH0gPSBzaGVsbENvbW1hbmRzLFxuICAgICAgICAgIGJ1aWxkU2hlbGxDb21tYW5kcyA9IGJ1aWxkO1xuXG4gICAgc2hlbGxDb21tYW5kcyA9IGJ1aWxkU2hlbGxDb21tYW5kczsgLy8vXG5cbiAgICB0aGlzLmV4ZWN1dGVTaGVsbENvbW1hbmRzKHNoZWxsQ29tbWFuZHMsIHF1aWV0bHksIGNhbGxiYWNrKTtcbiAgfVxuXG4gIHB1Ymxpc2gocXVpZXRseSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCBpZ25vcmVkUHVibGlzaGVzID0gcmV0cmlldmVJZ25vcmVkUHVibGlzaGVzKCksXG4gICAgICAgICAgbmFtZXMgPSBpZ25vcmVkUHVibGlzaGVzLFxuICAgICAgICAgIG5hbWVzSW5jbHVkZXNOYW1lID0gbmFtZXMuaW5jbHVkZXModGhpcy5uYW1lKSxcbiAgICAgICAgICBwdWJsaXNoSWdub3JlZCA9IG5hbWVzSW5jbHVkZXNOYW1lOyAvLy9cblxuICAgIGlmIChwdWJsaXNoSWdub3JlZCkge1xuICAgICAgY29uc29sZS5sb2coYElnbm9yaW5nIHRoZSAnJHt0aGlzLm5hbWV9JyBwdWJsaXNoLmApO1xuXG4gICAgICBjb25zdCBzdWNjZXNzID0gdHJ1ZTtcblxuICAgICAgY2FsbGJhY2soc3VjY2Vzcyk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgc2hlbGxDb21tYW5kcyA9IHJldHJpZXZlU2hlbGxDb21tYW5kcygpO1xuXG4gICAgY29uc3QgeyBwdWJsaXNoIH0gPSBzaGVsbENvbW1hbmRzLFxuICAgICAgICAgIHB1Ymxpc2hTaGVsbENvbW1hbmRzID0gcHVibGlzaDtcblxuICAgIHNoZWxsQ29tbWFuZHMgPSBwdWJsaXNoU2hlbGxDb21tYW5kczsgLy8vXG5cbiAgICB0aGlzLmV4ZWN1dGVTaGVsbENvbW1hbmRzKHNoZWxsQ29tbWFuZHMsIHF1aWV0bHksIGNhbGxiYWNrKTtcbiAgfVxuXG4gIGJ1bXBQYXRjaE51bWJlcigpIHsgdGhpcy52ZXJzaW9uLmJ1bXBQYXRjaE51bWJlcigpOyB9XG5cbiAgZXhlY3V0ZVNoZWxsQ29tbWFuZHMoc2hlbGxDb21tYW5kcywgcXVpZXRseSwgY2FsbGJhY2spIHtcbiAgICBjb25zdCBjdXJyZW50V29ya2luZ0RpcmVjdG9yeVBhdGggPSBwcm9jZXNzLmN3ZCgpO1xuXG4gICAgcHJvY2Vzcy5jaGRpcih0aGlzLnN1YkRpcmVjdG9yeVBhdGgpO1xuXG4gICAgZXhlY3V0ZVByb21wdGx5KHNoZWxsQ29tbWFuZHMsIHF1aWV0bHksIChzdWNjZXNzKSA9PiB7XG4gICAgICBwcm9jZXNzLmNoZGlyKGN1cnJlbnRXb3JraW5nRGlyZWN0b3J5UGF0aCk7XG5cbiAgICAgIGNhbGxiYWNrKHN1Y2Nlc3MpO1xuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlRGVwZW5kZW5jeVZlcnNpb24obmFtZSwgdmVyc2lvblN0cmluZykge1xuICAgIGNvbnN0IHN1Y2Nlc3MgPSB1cGRhdGVTZW12ZXIobmFtZSwgdmVyc2lvblN0cmluZywgdGhpcy5kZXBlbmRlbmN5TWFwKTtcblxuICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgY29uc29sZS5sb2coYEVpdGhlciB0aGUgdmVyc2lvbiBvZiB0aGUgJyR7dGhpcy5zdWJEaXJlY3RvcnlQYXRofScgcmVsZWFzZSdzICcke25hbWV9JyBkZXBlbmRlbmN5IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgcHJvcGFnYXRlZCAnJHt2ZXJzaW9uU3RyaW5nfScgdmVyc2lvbiBvciBpdCBjYW5ub3QgYmUgcGFyc2VkLmApO1xuICAgIH1cblxuICAgIHJldHVybiBzdWNjZXNzO1xuICB9XG5cbiAgdXBkYXRlRGV2RGVwZW5kZW5jeVZlcnNpb24obmFtZSwgdmVyc2lvblN0cmluZykge1xuICAgIGNvbnN0IHN1Y2Nlc3MgPSB1cGRhdGVTZW12ZXIobmFtZSwgdmVyc2lvblN0cmluZywgdGhpcy5kZXZEZXBlbmRlbmN5TWFwKTtcblxuICAgIGlmICghc3VjY2Vzcykge1xuICAgICAgY29uc29sZS5sb2coYEVpdGhlciB0aGUgdmVyc2lvbiBvZiB0aGUgJyR7dGhpcy5zdWJEaXJlY3RvcnlQYXRofScgcmVsZWFzZSdzICcke25hbWV9JyBkZXZlbG9wZXIgZGVwZW5kZW5jeSBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHByb3BhZ2F0ZWQgJyR7dmVyc2lvblN0cmluZ30nIHZlcnNpb24gb3IgaXQgY2Fubm90IGJlIHBhcnNlZC5gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VjY2VzcztcbiAgfVxuXG4gIHN0YXRpYyBmcm9tU3ViRGlyZWN0b3J5UGF0aChzdWJEaXJlY3RvcnlQYXRoKSB7XG4gICAgbGV0IHJlbGVhc2UgPSBudWxsO1xuXG4gICAgY29uc3QgcGFja2FnZUpTT04gPSByZWFkUGFja2FnZUpTT05GaWxlKHN1YkRpcmVjdG9yeVBhdGgpO1xuXG4gICAgaWYgKHBhY2thZ2VKU09OICE9PSBudWxsKSB7XG4gICAgICBsZXQgeyB2ZXJzaW9uID0gbnVsbCB9ID0gcGFja2FnZUpTT047XG5cbiAgICAgIGNvbnN0IHsgbmFtZSA9IG51bGwsIGRlcGVuZGVuY2llcyA9IHt9LCBkZXZEZXBlbmRlbmNpZXMgPSB7fSB9ID0gcGFja2FnZUpTT04sXG4gICAgICAgICAgICB2ZXJzaW9uU3RyaW5nID0gdmVyc2lvbiwgIC8vL1xuICAgICAgICAgICAgZGVwZW5kZW5jeU1hcCA9IGRlcGVuZGVuY2llcywgLy8vXG4gICAgICAgICAgICBkZXZEZXBlbmRlbmN5TWFwID0gZGV2RGVwZW5kZW5jaWVzOyAvLy9cblxuICAgICAgdmVyc2lvbiA9IFZlcnNpb24uZnJvbVZlcnNpb25TdHJpbmcodmVyc2lvblN0cmluZyk7XG5cbiAgICAgIHJlbGVhc2UgPSBuZXcgUmVsZWFzZShuYW1lLCB2ZXJzaW9uLCBkZXBlbmRlbmN5TWFwLCBkZXZEZXBlbmRlbmN5TWFwLCBzdWJEaXJlY3RvcnlQYXRoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVsZWFzZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1cGRhdGVTZW12ZXIobmFtZSwgdmVyc2lvblN0cmluZywgbWFwKSB7XG4gIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgbGV0IHNlbXZlciA9IG1hcFtuYW1lXSB8fCBudWxsO1xuXG4gIGNvbnN0IHZlcnNpb24gPSBWZXJzaW9uLmZyb21WZXJzaW9uU3RyaW5nKHZlcnNpb25TdHJpbmcpLFxuICAgICAgICBleGlzdGluZ1NlbXZlciA9IHNlbXZlciwgLy8vXG4gICAgICAgIGV4aXN0aW5nVmVyc2lvbiA9IFZlcnNpb24uZnJvbVN0cmluZyhleGlzdGluZ1NlbXZlcik7XG5cbiAgaWYgKGV4aXN0aW5nVmVyc2lvbiAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHZlcnNpb25HcmVhdGVyVGhhbkV4aXN0aW5nVmVyc2lvbiA9IHZlcnNpb24uaXNHcmVhdGVyVGhhbihleGlzdGluZ1ZlcnNpb24pO1xuXG4gICAgc3VjY2VzcyA9IHZlcnNpb25HcmVhdGVyVGhhbkV4aXN0aW5nVmVyc2lvbjsgIC8vL1xuXG4gICAgaWYgKHN1Y2Nlc3MpIHtcbiAgICAgIHNlbXZlciA9IHZlcnNpb24udXBkYXRlU2VtdmVyKHNlbXZlcik7XG5cbiAgICAgIG1hcFtuYW1lXSA9IHNlbXZlcjtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3VjY2Vzcztcbn1cblxuZnVuY3Rpb24gc2hlbGxDb21tYW5kc0Zyb21EZXBlbmRlbmN5KGRlcGVuZGVuY3kpIHtcbiAgbGV0IHNoZWxsQ29tbWFuZHMgPSByZXRyaWV2ZVNoZWxsQ29tbWFuZHMoKTtcblxuICBjb25zdCB7IHBvbGwgfSA9IHNoZWxsQ29tbWFuZHMsXG4gICAgICAgIHBvbGxTaGVsbENvbW1hbmRzID0gcG9sbCwgLy8vXG4gICAgICAgIGFyZ3MgPSB7XG4gICAgICAgICAgZGVwZW5kZW5jeVxuICAgICAgICB9O1xuXG4gIHNoZWxsQ29tbWFuZHMgPSBwYXJzZUNvbnRlbnQocG9sbFNoZWxsQ29tbWFuZHMsIGFyZ3MpO1xuXG4gIHJldHVybiBzaGVsbENvbW1hbmRzO1xufVxuIl0sIm5hbWVzIjpbIlJlbGVhc2UiLCJldmVudHVhbGx5IiwiYXN5bmNocm9ub3VzVXRpbGl0aWVzIiwicGFyc2VDb250ZW50IiwidGVtcGxhdGVVdGlsaXRpZXMiLCJwcnVuZSIsImFycmF5VXRpbGl0aWVzIiwiZmlsdGVyIiwibmFtZSIsInZlcnNpb24iLCJkZXBlbmRlbmN5TWFwIiwiZGV2RGVwZW5kZW5jeU1hcCIsInN1YkRpcmVjdG9yeVBhdGgiLCJnZXROYW1lIiwiZ2V0VmVyc2lvbiIsImdldERlcGVuZGVuY3lNYXAiLCJnZXREZXZEZXBlbmRlbmN5TWFwIiwiZ2V0U3ViRGlyZWN0b3J5UGF0aCIsImlzUHVibGlzaGFibGUiLCJwdWJsaXNoYWJsZSIsImdldFZlcnNpb25TdHJpbmciLCJ2ZXJzaW9uU3RyaW5nIiwiYXNTdHJpbmciLCJnZXREZXBlbmRlbmN5TmFtZXMiLCJkZXBlbmRlbmN5TmFtZXMiLCJPYmplY3QiLCJrZXlzIiwiZ2V0RGV2RGVwZW5kZW5jeU5hbWVzIiwiZGV2RGVwZW5kZW5jeU5hbWVzIiwiZ2V0RGVwZW5kZW5jaWVzIiwibmFtZXMiLCJkZXBlbmRlbmN5TmFtZSIsIm5hbWVzSW5jbHVkZURlcGVuZGVuY3lOYW1lIiwiaW5jbHVkZXMiLCJkZXZEZXBlbmRlbmN5TmFtZSIsIm5hbWVzSW5jbHVkZURldkRlcGVuZGVuY3lOYW1lIiwiZGVwZW5kZW5jaWVzIiwibWFwIiwicmVwbGFjZSIsIkVNUFRZX1NUUklORyIsInByb3BhZ2F0ZWREZXBlbmRlbmN5IiwiZ2l0IiwicXVpZXRseSIsImNhbGxiYWNrIiwic2hlbGxDb21tYW5kcyIsInJldHJpZXZlU2hlbGxDb21tYW5kcyIsImdpdFNoZWxsQ29tbWFuZHMiLCJleGVjdXRlU2hlbGxDb21tYW5kcyIsInBvbGwiLCJkZXBlbmRlbmNpZXNMZW5ndGgiLCJsZW5ndGgiLCJzdWNjZXNzIiwiY29uc29sZSIsImxvZyIsIm9wZXJhdGlvbnMiLCJkZXBlbmRlbmN5IiwibmV4dCIsImRvbmUiLCJjb250ZXh0IiwiaW5kZXgiLCJzaGVsbENvbW1hbmRzRnJvbURlcGVuZGVuY3kiLCJleGVjdXRlUmVwZWF0ZWRseSIsInBvbGxlZERlcGVuZGVuY3kiLCJpbnN0YWxsIiwiaW5zdGFsbFNoZWxsQ29tbWFuZHMiLCJidWlsZCIsImlnbm9yZWRCdWlsZHMiLCJyZXRyaWV2ZUlnbm9yZWRCdWlsZHMiLCJzdWJEaXJlY3RvcnlQYXRocyIsInN1YkRpcmVjdG9yeVBhdGhzSW5jbHVkZXNTdWJEaXJlY3RvcnlQYXRoIiwiYnVpbGRJZ25vcmVkIiwiYnVpbGRTaGVsbENvbW1hbmRzIiwicHVibGlzaCIsImlnbm9yZWRQdWJsaXNoZXMiLCJyZXRyaWV2ZUlnbm9yZWRQdWJsaXNoZXMiLCJuYW1lc0luY2x1ZGVzTmFtZSIsInB1Ymxpc2hJZ25vcmVkIiwicHVibGlzaFNoZWxsQ29tbWFuZHMiLCJidW1wUGF0Y2hOdW1iZXIiLCJjdXJyZW50V29ya2luZ0RpcmVjdG9yeVBhdGgiLCJwcm9jZXNzIiwiY3dkIiwiY2hkaXIiLCJleGVjdXRlUHJvbXB0bHkiLCJ1cGRhdGVEZXBlbmRlbmN5VmVyc2lvbiIsInVwZGF0ZVNlbXZlciIsInVwZGF0ZURldkRlcGVuZGVuY3lWZXJzaW9uIiwiZnJvbVN1YkRpcmVjdG9yeVBhdGgiLCJyZWxlYXNlIiwicGFja2FnZUpTT04iLCJyZWFkUGFja2FnZUpTT05GaWxlIiwiZGV2RGVwZW5kZW5jaWVzIiwiVmVyc2lvbiIsImZyb21WZXJzaW9uU3RyaW5nIiwic2VtdmVyIiwiZXhpc3RpbmdTZW12ZXIiLCJleGlzdGluZ1ZlcnNpb24iLCJmcm9tU3RyaW5nIiwidmVyc2lvbkdyZWF0ZXJUaGFuRXhpc3RpbmdWZXJzaW9uIiwiaXNHcmVhdGVyVGhhbiIsInBvbGxTaGVsbENvbW1hbmRzIiwiYXJncyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7ZUFlcUJBOzs7eUJBYm9EOzhEQUVyRDt5QkFFUzsyQkFDTztxQkFDZTs2QkFDb0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRXZGLElBQU0sQUFBRUMsYUFBZUMsZ0NBQXFCLENBQXBDRCxZQUNGLEFBQUVFLGVBQWlCQyw0QkFBaUIsQ0FBbENELGNBQ0FFLFFBQWtCQyx5QkFBYyxDQUFoQ0QsT0FBT0UsU0FBV0QseUJBQWMsQ0FBekJDO0FBRUEsSUFBQSxBQUFNUCx3QkFBTjthQUFNQSxRQUNQUSxJQUFJLEVBQUVDLE9BQU8sRUFBRUMsYUFBYSxFQUFFQyxnQkFBZ0IsRUFBRUMsZ0JBQWdCO2dDQUR6RFo7UUFFakIsSUFBSSxDQUFDUSxJQUFJLEdBQUdBO1FBQ1osSUFBSSxDQUFDQyxPQUFPLEdBQUdBO1FBQ2YsSUFBSSxDQUFDQyxhQUFhLEdBQUdBO1FBQ3JCLElBQUksQ0FBQ0MsZ0JBQWdCLEdBQUdBO1FBQ3hCLElBQUksQ0FBQ0MsZ0JBQWdC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
@@ -2,10 +2,18 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "execute", {
6
- enumerable: true,
7
- get: function() {
8
- return execute;
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: Object.getOwnPropertyDescriptor(all, name).get
9
+ });
10
+ }
11
+ _export(exports, {
12
+ get executePromptly () {
13
+ return executePromptly;
14
+ },
15
+ get executeRepeatedly () {
16
+ return executeRepeatedly;
9
17
  }
10
18
  });
11
19
  var _child_process = /*#__PURE__*/ _interop_require_default(require("child_process"));
@@ -14,19 +22,20 @@ var _validate = require("../utilities/validate");
14
22
  var _prompt = require("../utilities/prompt");
15
23
  var _messages = require("../messages");
16
24
  var _descriptions = require("../descriptions");
25
+ var _constants = require("../constants");
17
26
  function _interop_require_default(obj) {
18
27
  return obj && obj.__esModule ? obj : {
19
28
  default: obj
20
29
  };
21
30
  }
22
- var prompt = _necessary.shellUtilities.prompt, UTF_8_ENCODING = _necessary.encodings.UTF_8_ENCODING;
23
- function execute(shellCommands, quietly, callback) {
31
+ var prompt = _necessary.shellUtilities.prompt, whilst = _necessary.asynchronousUtilities.whilst, UTF_8_ENCODING = _necessary.encodings.UTF_8_ENCODING;
32
+ function executePromptly(shellCommands, quietly, callback) {
24
33
  var success = execSync(shellCommands, quietly);
25
34
  if (success) {
26
35
  callback(success);
27
36
  return;
28
37
  }
29
- var attempts = Infinity, description = _descriptions.FAILED_SCRIPT_DESCRIPTION, errorMessage = _messages.INVALID_ANSWER_MESSAGE, validationFunction = _validate.validateAnswer, options = {
38
+ var attempts = _constants.PROMPT_ATTEMPTS, description = _descriptions.FAILED_SCRIPT_DESCRIPTION, errorMessage = _messages.INVALID_ANSWER_MESSAGE, validationFunction = _validate.validateAnswer, options = {
30
39
  attempts: attempts,
31
40
  description: description,
32
41
  errorMessage: errorMessage,
@@ -44,6 +53,26 @@ function execute(shellCommands, quietly, callback) {
44
53
  callback(success);
45
54
  });
46
55
  }
56
+ function executeRepeatedly(shellCommands, quietly, callback) {
57
+ var success = false;
58
+ var delay = _constants.REPEATED_DELAY, attempts = _constants.REPEATED_ATTEMPTS, operation = function(next, done, context, index) {
59
+ if (index === attempts) {
60
+ done();
61
+ return;
62
+ }
63
+ execAsync(shellCommands, quietly, function(error, output) {
64
+ if (!error) {
65
+ success = true;
66
+ done();
67
+ return;
68
+ }
69
+ setTimeout(next, delay);
70
+ });
71
+ };
72
+ whilst(operation, function() {
73
+ callback(success);
74
+ });
75
+ }
47
76
  function execSync(shellCommands, quietly) {
48
77
  var success;
49
78
  try {
@@ -59,5 +88,17 @@ function execSync(shellCommands, quietly) {
59
88
  }
60
89
  return success;
61
90
  }
91
+ function execAsync(shellCommands, quietly, callback) {
92
+ var encoding = UTF_8_ENCODING, options = {
93
+ encoding: encoding
94
+ };
95
+ _child_process.default.exec(shellCommands, options, function(error, stdout, stderr) {
96
+ var output = error ? stderr : stdout;
97
+ if (!quietly) {
98
+ process.stdout.write(output);
99
+ }
100
+ callback(error, output);
101
+ });
102
+ }
62
103
 
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc2hlbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBjaGlsZFByb2Nlc3MgZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcblxuaW1wb3J0IHsgZW5jb2RpbmdzLCBzaGVsbFV0aWxpdGllcyB9IGZyb20gXCJuZWNlc3NhcnlcIjtcblxuaW1wb3J0IHsgdmFsaWRhdGVBbnN3ZXIgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3ZhbGlkYXRlXCI7XG5pbXBvcnQgeyBpc0Fuc3dlckFmZmlybWF0aXZlIH0gZnJvbSBcIi4uL3V0aWxpdGllcy9wcm9tcHRcIjtcbmltcG9ydCB7IElOVkFMSURfQU5TV0VSX01FU1NBR0UgfSBmcm9tIFwiLi4vbWVzc2FnZXNcIjtcbmltcG9ydCB7IEZBSUxFRF9TQ1JJUFRfREVTQ1JJUFRJT04gfSBmcm9tIFwiLi4vZGVzY3JpcHRpb25zXCI7XG5cbmNvbnN0IHsgcHJvbXB0IH0gPSBzaGVsbFV0aWxpdGllcyxcbiAgICAgIHsgVVRGXzhfRU5DT0RJTkcgfSA9IGVuY29kaW5ncztcblxuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGUoc2hlbGxDb21tYW5kcywgcXVpZXRseSwgY2FsbGJhY2spIHtcbiAgY29uc3Qgc3VjY2VzcyA9IGV4ZWNTeW5jKHNoZWxsQ29tbWFuZHMsIHF1aWV0bHkpO1xuXG4gIGlmIChzdWNjZXNzKSB7XG4gICAgY2FsbGJhY2soc3VjY2Vzcyk7XG5cbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBhdHRlbXB0cyA9IEluZmluaXR5LFxuICAgICAgICBkZXNjcmlwdGlvbiA9IEZBSUxFRF9TQ1JJUFRfREVTQ1JJUFRJT04sXG4gICAgICAgIGVycm9yTWVzc2FnZSA9IElOVkFMSURfQU5TV0VSX01FU1NBR0UsXG4gICAgICAgIHZhbGlkYXRpb25GdW5jdGlvbiA9IHZhbGlkYXRlQW5zd2VyLCAgLy8vXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgYXR0ZW1wdHMsXG4gICAgICAgICAgZGVzY3JpcHRpb24sXG4gICAgICAgICAgZXJyb3JNZXNzYWdlLFxuICAgICAgICAgIHZhbGlkYXRpb25GdW5jdGlvblxuICAgICAgICB9O1xuXG4gIHByb21wdChvcHRpb25zLCAoYW5zd2VyKSA9PiB7XG4gICAgbGV0IHN1Y2Nlc3M7XG5cbiAgICBjb25zdCB2YWxpZCA9IChhbnN3ZXIgIT09IG51bGwpO1xuXG4gICAgaWYgKHZhbGlkKSB7XG4gICAgICBjb25zdCBhZmZpcm1hdGl2ZSA9IGlzQW5zd2VyQWZmaXJtYXRpdmUoYW5zd2VyKTtcblxuICAgICAgc3VjY2VzcyA9IGFmZmlybWF0aXZlID9cbiAgICAgICAgICAgICAgICAgIGV4ZWNTeW5jKHNoZWxsQ29tbWFuZHMsIHF1aWV0bHkpIDpcbiAgICAgICAgICAgICAgICAgICAgdHJ1ZTsgLy8vXG4gICAgfSBlbHNlIHtcbiAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjYWxsYmFjayhzdWNjZXNzKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGV4ZWNTeW5jKHNoZWxsQ29tbWFuZHMsIHF1aWV0bHkpIHtcbiAgbGV0IHN1Y2Nlc3M7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBlbmNvZGluZyA9IFVURl84X0VOQ09ESU5HLCAgLy8vXG4gICAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGVuY29kaW5nXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvdXRwdXQgPSBjaGlsZFByb2Nlc3MuZXhlY1N5bmMoc2hlbGxDb21tYW5kcywgb3B0aW9ucyk7XG5cbiAgICBpZiAoIXF1aWV0bHkpIHtcbiAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKG91dHB1dCk7XG4gICAgfVxuXG4gICAgc3VjY2VzcyA9IHRydWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgc3VjY2VzcyA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHN1Y2Nlc3M7XG59XG4iXSwibmFtZXMiOlsiZXhlY3V0ZSIsInByb21wdCIsInNoZWxsVXRpbGl0aWVzIiwiVVRGXzhfRU5DT0RJTkciLCJlbmNvZGluZ3MiLCJzaGVsbENvbW1hbmRzIiwicXVpZXRseSIsImNhbGxiYWNrIiwic3VjY2VzcyIsImV4ZWNTeW5jIiwiYXR0ZW1wdHMiLCJJbmZpbml0eSIsImRlc2NyaXB0aW9uIiwiRkFJTEVEX1NDUklQVF9ERVNDUklQVElPTiIsImVycm9yTWVzc2FnZSIsIklOVkFMSURfQU5TV0VSX01FU1NBR0UiLCJ2YWxpZGF0aW9uRnVuY3Rpb24iLCJ2YWxpZGF0ZUFuc3dlciIsIm9wdGlvbnMiLCJhbnN3ZXIiLCJ2YWxpZCIsImFmZmlybWF0aXZlIiwiaXNBbnN3ZXJBZmZpcm1hdGl2ZSIsImVuY29kaW5nIiwib3V0cHV0IiwiY2hpbGRQcm9jZXNzIiwicHJvY2VzcyIsInN0ZG91dCIsIndyaXRlIiwiZXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBOzs7OytCQWNnQkE7OztlQUFBQTs7O29FQVpTO3lCQUVpQjt3QkFFWDtzQkFDSzt3QkFDRzs0QkFDRzs7Ozs7O0FBRTFDLElBQU0sQUFBRUMsU0FBV0MseUJBQWMsQ0FBekJELFFBQ0YsQUFBRUUsaUJBQW1CQyxvQkFBUyxDQUE1QkQ7QUFFRCxTQUFTSCxRQUFRSyxhQUFhLEVBQUVDLE9BQU8sRUFBRUMsUUFBUTtJQUN0RCxJQUFNQyxVQUFVQyxTQUFTSixlQUFlQztJQUV4QyxJQUFJRSxTQUFTO1FBQ1hELFNBQVNDO1FBRVQ7SUFDRjtJQUVBLElBQU1FLFdBQVdDLFVBQ1hDLGNBQWNDLHVDQUF5QixFQUN2Q0MsZUFBZUMsZ0NBQXNCLEVBQ3JDQyxxQkFBcUJDLHdCQUFjLEVBQ25DQyxVQUFVO1FBQ1JSLFVBQUFBO1FBQ0FFLGFBQUFBO1FBQ0FFLGNBQUFBO1FBQ0FFLG9CQUFBQTtJQUNGO0lBRU5mLE9BQU9pQixTQUFTLFNBQUNDO1FBQ2YsSUFBSVg7UUFFSixJQUFNWSxRQUFTRCxXQUFXO1FBRTFCLElBQUlDLE9BQU87WUFDVCxJQUFNQyxjQUFjQyxJQUFBQSwyQkFBbUIsRUFBQ0g7WUFFeENYLFVBQVVhLGNBQ0VaLFNBQVNKLGVBQWVDLFdBQ3RCLE1BQU0sR0FBRztRQUN6QixPQUFPO1lBQ0xFLFVBQVU7UUFDWjtRQUVBRCxTQUFTQztJQUNYO0FBQ0Y7QUFFQSxTQUFTQyxTQUFTSixhQUFhLEVBQUVDLE9BQU87SUFDdEMsSUFBSUU7SUFFSixJQUFJO1FBQ0YsSUFBTWUsV0FBV3BCLGdCQUNYZSxVQUFVO1lBQ1JLLFVBQUFBO1FBQ0YsR0FDQUMsU0FBU0Msc0JBQVksQ0FBQ2hCLFFBQVEsQ0FBQ0osZUFBZWE7UUFFcEQsSUFBSSxDQUFDWixTQUFTO1lBQ1pvQixRQUFRQyxNQUFNLENBQUNDLEtBQUssQ0FBQ0o7UUFDdkI7UUFFQWhCLFVBQVU7SUFDWixFQUFFLE9BQU9xQixPQUFPO1FBQ2RyQixVQUFVO0lBQ1o7SUFFQSxPQUFPQTtBQUNUIn0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvc2hlbGwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbmltcG9ydCBjaGlsZFByb2Nlc3MgZnJvbSBcImNoaWxkX3Byb2Nlc3NcIjtcblxuaW1wb3J0IHsgZW5jb2RpbmdzLCBzaGVsbFV0aWxpdGllcywgYXN5bmNocm9ub3VzVXRpbGl0aWVzIH0gZnJvbSBcIm5lY2Vzc2FyeVwiO1xuXG5pbXBvcnQgeyB2YWxpZGF0ZUFuc3dlciB9IGZyb20gXCIuLi91dGlsaXRpZXMvdmFsaWRhdGVcIjtcbmltcG9ydCB7IGlzQW5zd2VyQWZmaXJtYXRpdmUgfSBmcm9tIFwiLi4vdXRpbGl0aWVzL3Byb21wdFwiO1xuaW1wb3J0IHsgSU5WQUxJRF9BTlNXRVJfTUVTU0FHRSB9IGZyb20gXCIuLi9tZXNzYWdlc1wiO1xuaW1wb3J0IHsgRkFJTEVEX1NDUklQVF9ERVNDUklQVElPTiB9IGZyb20gXCIuLi9kZXNjcmlwdGlvbnNcIjtcbmltcG9ydCB7IFJFUEVBVEVEX0RFTEFZLCBQUk9NUFRfQVRURU1QVFMsIFJFUEVBVEVEX0FUVEVNUFRTIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuXG5jb25zdCB7IHByb21wdCB9ID0gc2hlbGxVdGlsaXRpZXMsXG4gICAgICB7IHdoaWxzdCB9ID0gYXN5bmNocm9ub3VzVXRpbGl0aWVzLFxuICAgICAgeyBVVEZfOF9FTkNPRElORyB9ID0gZW5jb2RpbmdzO1xuXG5leHBvcnQgZnVuY3Rpb24gZXhlY3V0ZVByb21wdGx5KHNoZWxsQ29tbWFuZHMsIHF1aWV0bHksIGNhbGxiYWNrKSB7XG4gIGNvbnN0IHN1Y2Nlc3MgPSBleGVjU3luYyhzaGVsbENvbW1hbmRzLCBxdWlldGx5KTtcblxuICBpZiAoc3VjY2Vzcykge1xuICAgIGNhbGxiYWNrKHN1Y2Nlc3MpO1xuXG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYXR0ZW1wdHMgPSBQUk9NUFRfQVRURU1QVFMsXG4gICAgICAgIGRlc2NyaXB0aW9uID0gRkFJTEVEX1NDUklQVF9ERVNDUklQVElPTixcbiAgICAgICAgZXJyb3JNZXNzYWdlID0gSU5WQUxJRF9BTlNXRVJfTUVTU0FHRSxcbiAgICAgICAgdmFsaWRhdGlvbkZ1bmN0aW9uID0gdmFsaWRhdGVBbnN3ZXIsICAvLy9cbiAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICBhdHRlbXB0cyxcbiAgICAgICAgICBkZXNjcmlwdGlvbixcbiAgICAgICAgICBlcnJvck1lc3NhZ2UsXG4gICAgICAgICAgdmFsaWRhdGlvbkZ1bmN0aW9uXG4gICAgICAgIH07XG5cbiAgcHJvbXB0KG9wdGlvbnMsIChhbnN3ZXIpID0+IHtcbiAgICBsZXQgc3VjY2VzcztcblxuICAgIGNvbnN0IHZhbGlkID0gKGFuc3dlciAhPT0gbnVsbCk7XG5cbiAgICBpZiAodmFsaWQpIHtcbiAgICAgIGNvbnN0IGFmZmlybWF0aXZlID0gaXNBbnN3ZXJBZmZpcm1hdGl2ZShhbnN3ZXIpO1xuXG4gICAgICBzdWNjZXNzID0gYWZmaXJtYXRpdmUgP1xuICAgICAgICAgICAgICAgICAgZXhlY1N5bmMoc2hlbGxDb21tYW5kcywgcXVpZXRseSkgOlxuICAgICAgICAgICAgICAgICAgICB0cnVlOyAvLy9cbiAgICB9IGVsc2Uge1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKHN1Y2Nlc3MpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGVSZXBlYXRlZGx5KHNoZWxsQ29tbWFuZHMsIHF1aWV0bHksIGNhbGxiYWNrKSB7XG4gIGxldCBzdWNjZXNzID0gZmFsc2U7XG5cbiAgY29uc3QgZGVsYXkgPSBSRVBFQVRFRF9ERUxBWSxcbiAgICAgICAgYXR0ZW1wdHMgPSBSRVBFQVRFRF9BVFRFTVBUUyxcbiAgICAgICAgb3BlcmF0aW9uID0gKG5leHQsIGRvbmUsIGNvbnRleHQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgaWYgKGluZGV4ID09PSBhdHRlbXB0cykge1xuICAgICAgICAgICAgZG9uZSgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZXhlY0FzeW5jKHNoZWxsQ29tbWFuZHMsIHF1aWV0bHksIChlcnJvciwgb3V0cHV0KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlO1xuXG4gICAgICAgICAgICAgIGRvbmUoKTtcblxuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNldFRpbWVvdXQobmV4dCwgZGVsYXkpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuXG4gIHdoaWxzdChvcGVyYXRpb24sICgpID0+IHtcbiAgICBjYWxsYmFjayhzdWNjZXNzKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGV4ZWNTeW5jKHNoZWxsQ29tbWFuZHMsIHF1aWV0bHkpIHtcbiAgbGV0IHN1Y2Nlc3M7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBlbmNvZGluZyA9IFVURl84X0VOQ09ESU5HLCAgLy8vXG4gICAgICAgICAgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIGVuY29kaW5nXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvdXRwdXQgPSBjaGlsZFByb2Nlc3MuZXhlY1N5bmMoc2hlbGxDb21tYW5kcywgb3B0aW9ucyk7XG5cbiAgICBpZiAoIXF1aWV0bHkpIHtcbiAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKG91dHB1dCk7XG4gICAgfVxuXG4gICAgc3VjY2VzcyA9IHRydWU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgc3VjY2VzcyA9IGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHN1Y2Nlc3M7XG59XG5cbmZ1bmN0aW9uIGV4ZWNBc3luYyhzaGVsbENvbW1hbmRzLCBxdWlldGx5LCBjYWxsYmFjaykge1xuICBjb25zdCBlbmNvZGluZyA9IFVURl84X0VOQ09ESU5HLCAgLy8vXG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgZW5jb2RpbmdcbiAgICAgICAgfTtcblxuICBjaGlsZFByb2Nlc3MuZXhlYyhzaGVsbENvbW1hbmRzLCBvcHRpb25zLCAoZXJyb3IsIHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgY29uc3Qgb3V0cHV0ID0gZXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICAgc3RkZXJyIDpcbiAgICAgICAgICAgICAgICAgICAgICAgc3Rkb3V0O1xuXG4gICAgaWYgKCFxdWlldGx5KSB7XG4gICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShvdXRwdXQpO1xuICAgIH1cblxuICAgIGNhbGxiYWNrKGVycm9yLCBvdXRwdXQpXG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbImV4ZWN1dGVQcm9tcHRseSIsImV4ZWN1dGVSZXBlYXRlZGx5IiwicHJvbXB0Iiwic2hlbGxVdGlsaXRpZXMiLCJ3aGlsc3QiLCJhc3luY2hyb25vdXNVdGlsaXRpZXMiLCJVVEZfOF9FTkNPRElORyIsImVuY29kaW5ncyIsInNoZWxsQ29tbWFuZHMiLCJxdWlldGx5IiwiY2FsbGJhY2siLCJzdWNjZXNzIiwiZXhlY1N5bmMiLCJhdHRlbXB0cyIsIlBST01QVF9BVFRFTVBUUyIsImRlc2NyaXB0aW9uIiwiRkFJTEVEX1NDUklQVF9ERVNDUklQVElPTiIsImVycm9yTWVzc2FnZSIsIklOVkFMSURfQU5TV0VSX01FU1NBR0UiLCJ2YWxpZGF0aW9uRnVuY3Rpb24iLCJ2YWxpZGF0ZUFuc3dlciIsIm9wdGlvbnMiLCJhbnN3ZXIiLCJ2YWxpZCIsImFmZmlybWF0aXZlIiwiaXNBbnN3ZXJBZmZpcm1hdGl2ZSIsImRlbGF5IiwiUkVQRUFURURfREVMQVkiLCJSRVBFQVRFRF9BVFRFTVBUUyIsIm9wZXJhdGlvbiIsIm5leHQiLCJkb25lIiwiY29udGV4dCIsImluZGV4IiwiZXhlY0FzeW5jIiwiZXJyb3IiLCJvdXRwdXQiLCJzZXRUaW1lb3V0IiwiZW5jb2RpbmciLCJjaGlsZFByb2Nlc3MiLCJwcm9jZXNzIiwi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
package/lib/versions.js CHANGED
@@ -15,6 +15,9 @@ _export(exports, {
15
15
  get VERSION_1_10 () {
16
16
  return VERSION_1_10;
17
17
  },
18
+ get VERSION_1_11 () {
19
+ return VERSION_1_11;
20
+ },
18
21
  get VERSION_1_3 () {
19
22
  return VERSION_1_3;
20
23
  },
@@ -30,5 +33,6 @@ var VERSION_1_3 = "1.3";
30
33
  var VERSION_1_7 = "1.7";
31
34
  var VERSION_1_9 = "1.9";
32
35
  var VERSION_1_10 = "1.10";
36
+ var VERSION_1_11 = "1.11";
33
37
 
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGNvbnN0IFZFUlNJT05fMV8wID0gXCIxLjBcIjtcbmV4cG9ydCBjb25zdCBWRVJTSU9OXzFfMyA9IFwiMS4zXCI7XG5leHBvcnQgY29uc3QgVkVSU0lPTl8xXzcgPSBcIjEuN1wiO1xuZXhwb3J0IGNvbnN0IFZFUlNJT05fMV85ID0gXCIxLjlcIjtcbmV4cG9ydCBjb25zdCBWRVJTSU9OXzFfMTAgPSBcIjEuMTBcIjtcbiJdLCJuYW1lcyI6WyJWRVJTSU9OXzFfMCIsIlZFUlNJT05fMV8xMCIsIlZFUlNJT05fMV8zIiwiVkVSU0lPTl8xXzciLCJWRVJTSU9OXzFfOSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBRWFBO2VBQUFBOztRQUlBQztlQUFBQTs7UUFIQUM7ZUFBQUE7O1FBQ0FDO2VBQUFBOztRQUNBQztlQUFBQTs7O0FBSE4sSUFBTUosY0FBYztBQUNwQixJQUFNRSxjQUFjO0FBQ3BCLElBQU1DLGNBQWM7QUFDcEIsSUFBTUMsY0FBYztBQUNwQixJQUFNSCxlQUFlIn0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy92ZXJzaW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZXhwb3J0IGNvbnN0IFZFUlNJT05fMV8wID0gXCIxLjBcIjtcbmV4cG9ydCBjb25zdCBWRVJTSU9OXzFfMyA9IFwiMS4zXCI7XG5leHBvcnQgY29uc3QgVkVSU0lPTl8xXzcgPSBcIjEuN1wiO1xuZXhwb3J0IGNvbnN0IFZFUlNJT05fMV85ID0gXCIxLjlcIjtcbmV4cG9ydCBjb25zdCBWRVJTSU9OXzFfMTAgPSBcIjEuMTBcIjtcbmV4cG9ydCBjb25zdCBWRVJTSU9OXzFfMTEgPSBcIjEuMTFcIjtcbiJdLCJuYW1lcyI6WyJWRVJTSU9OXzFfMCIsIlZFUlNJT05fMV8xMCIsIlZFUlNJT05fMV8xMSIsIlZFUlNJT05fMV8zIiwiVkVSU0lPTl8xXzciLCJWRVJTSU9OXzFfOSJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O1FBRWFBO2VBQUFBOztRQUlBQztlQUFBQTs7UUFDQUM7ZUFBQUE7O1FBSkFDO2VBQUFBOztRQUNBQztlQUFBQTs7UUFDQUM7ZUFBQUE7OztBQUhOLElBQU1MLGNBQWM7QUFDcEIsSUFBTUcsY0FBYztBQUNwQixJQUFNQyxjQUFjO0FBQ3BCLElBQU1DLGNBQWM7QUFDcEIsSUFBTUosZUFBZTtBQUNyQixJQUFNQyxlQUFlIn0=
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "propagate-cli",
3
3
  "author": "James Smith",
4
- "version": "1.10.12",
4
+ "version": "1.11.2",
5
5
  "license": "MIT, Anti-996",
6
6
  "homepage": "https://github.com/djalbat/propagate-cli",
7
7
  "description": "Propagate updated packages throughout a project.",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "argumentative": "^2.0.36",
17
- "necessary": "^16.0.3",
17
+ "necessary": "^16.0.10",
18
18
  "occam-directed-graphs": "^3.0.79"
19
19
  },
20
20
  "devDependencies": {
@@ -19,7 +19,7 @@ Commands:
19
19
 
20
20
  list-directories List directories, including the default directory
21
21
 
22
- set-shell-commands Set the Git, build, install and publish shell commands
22
+ set-shell-commands Set the Git, poll, build, install and publish shell commands
23
23
 
24
24
  add-ignored-dependency Add an ignored dependency
25
25
 
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import setGitShellCommandsPromptOperation from "../operation/prompt/setGitShellCommands";
4
+ import setPollShellCommandsPromptOperation from "../operation/prompt/setPollShellCommands";
4
5
  import setBuildShellCommandsPromptOperation from "../operation/prompt/setBuildShellCommands";
5
6
  import setInstallShellCommandsPromptOperation from "../operation/prompt/setInstallShellCommands";
6
7
  import setPublishShellCommandsPromptOperation from "../operation/prompt/setPublishShellCommands";
@@ -12,6 +13,7 @@ import { FAILED_SET_SHELL_COMMANDS_MESSAGE, SUCCESSFUL_SET_SHELL_COMMANDS_MESSAG
12
13
  export default function setShellCommandsAction() {
13
14
  const operations = [
14
15
  setGitShellCommandsPromptOperation,
16
+ setPollShellCommandsPromptOperation,
15
17
  setInstallShellCommandsPromptOperation,
16
18
  setBuildShellCommandsPromptOperation,
17
19
  setPublishShellCommandsPromptOperation
@@ -1,40 +1,9 @@
1
1
  "use strict";
2
2
 
3
3
  import { VERSION_1_10 } from "../versions";
4
- import { DEFAULT_GIT_SHELL_COMMANDS, DEFAULT_INSTALL_SHELL_COMMANDS, DEFAULT_BUILD_SHELL_COMMANDS, DEFAULT_PUBLISH_SHELL_COMMANDS } from "../defaults";
5
-
6
- export function createConfiguration() {
7
- const git = DEFAULT_GIT_SHELL_COMMANDS, ///
8
- build = DEFAULT_BUILD_SHELL_COMMANDS, ///
9
- install = DEFAULT_INSTALL_SHELL_COMMANDS, ///
10
- publish = DEFAULT_PUBLISH_SHELL_COMMANDS, ///
11
- version = VERSION_1_10, ///
12
- directories = [],
13
- shellCommands = {
14
- git,
15
- build,
16
- install,
17
- publish
18
- },
19
- ignoredBuilds = [],
20
- ignoredPublishes = [],
21
- ignoredDependencies = [],
22
- forcedDependencyRelations = [],
23
- configuration = {
24
- version,
25
- directories,
26
- shellCommands,
27
- ignoredBuilds,
28
- ignoredPublishes,
29
- ignoredDependencies,
30
- forcedDependencyRelations
31
- };
32
-
33
- return configuration;
34
- }
35
4
 
36
5
  export function migrateConfigurationToVersion_1_10(configuration) {
37
- const version = VERSION_1_10, ///
6
+ const version = VERSION_1_10,
38
7
  ignoredBuilds = [],
39
8
  ignoredPublishes = [];
40
9
 
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ import { VERSION_1_11 } from "../versions";
4
+ import { DEFAULT_GIT_SHELL_COMMANDS, DEFAULT_POLL_SHELL_COMMANDS, DEFAULT_INSTALL_SHELL_COMMANDS, DEFAULT_BUILD_SHELL_COMMANDS, DEFAULT_PUBLISH_SHELL_COMMANDS } from "../defaults";
5
+
6
+ export function createConfiguration() {
7
+ const git = DEFAULT_GIT_SHELL_COMMANDS,
8
+ poll = DEFAULT_POLL_SHELL_COMMANDS,
9
+ build = DEFAULT_BUILD_SHELL_COMMANDS,
10
+ install = DEFAULT_INSTALL_SHELL_COMMANDS,
11
+ publish = DEFAULT_PUBLISH_SHELL_COMMANDS,
12
+ version = VERSION_1_11,
13
+ directories = [],
14
+ shellCommands = {
15
+ git,
16
+ poll,
17
+ build,
18
+ install,
19
+ publish
20
+ },
21
+ ignoredBuilds = [],
22
+ ignoredPublishes = [],
23
+ ignoredDependencies = [],
24
+ forcedDependencyRelations = [],
25
+ configuration = {
26
+ version,
27
+ directories,
28
+ shellCommands,
29
+ ignoredBuilds,
30
+ ignoredPublishes,
31
+ ignoredDependencies,
32
+ forcedDependencyRelations
33
+ };
34
+
35
+ return configuration;
36
+ }
37
+
38
+ export function migrateConfigurationToVersion_1_11(configuration) {
39
+ const version = VERSION_1_11;
40
+
41
+ let { shellCommands } = configuration;
42
+
43
+ const poll = DEFAULT_POLL_SHELL_COMMANDS;
44
+
45
+ shellCommands = Object.assign(shellCommands, {
46
+ poll
47
+ });
48
+
49
+ configuration = Object.assign(configuration, {
50
+ version,
51
+ shellCommands
52
+ });
53
+
54
+ return configuration;
55
+ }