gitlab-ci-local 4.28.2 → 4.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +40 -11
- package/package.json +21 -17
- package/src/argv.js +132 -0
- package/src/commander.js +32 -10
- package/src/git-data.js +42 -36
- package/src/handler.js +52 -76
- package/src/index.js +31 -17
- package/src/job-executor.js +4 -4
- package/src/job-expanders.js +17 -24
- package/src/job.js +187 -118
- package/src/parser-includes.js +9 -4
- package/src/parser.js +27 -32
- package/src/state.js +6 -2
- package/src/types/job-options.js +1 -1
- package/src/utils.js +19 -29
- package/src/validator.js +30 -8
- package/src/variables-from-files.js +98 -52
- package/src/types/parser-options.js +0 -3
package/src/git-data.js
CHANGED
|
@@ -42,39 +42,43 @@ class GitData {
|
|
|
42
42
|
}
|
|
43
43
|
static async init(cwd, writeStreams) {
|
|
44
44
|
const gitData = new GitData();
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
writeStreams.stderr((0, chalk_1.default) `{yellow Git not available using fallback}\n`);
|
|
51
|
-
return gitData;
|
|
52
|
-
}
|
|
53
|
-
await gitData.initCommitData(cwd, writeStreams);
|
|
54
|
-
await gitData.initRemoteData(cwd, writeStreams);
|
|
55
|
-
await gitData.initUserData(cwd, writeStreams);
|
|
45
|
+
const promises = [];
|
|
46
|
+
promises.push(gitData.initCommitData(cwd, writeStreams));
|
|
47
|
+
promises.push(gitData.initRemoteData(cwd, writeStreams));
|
|
48
|
+
promises.push(gitData.initUserData(cwd, writeStreams));
|
|
49
|
+
await Promise.all(promises);
|
|
56
50
|
return gitData;
|
|
57
51
|
}
|
|
58
52
|
async initCommitData(cwd, writeStreams) {
|
|
53
|
+
const promises = [];
|
|
54
|
+
const refNamePromise = utils_1.Utils.spawn(["git", "rev-parse", "--abbrev-ref", "HEAD"], cwd);
|
|
55
|
+
refNamePromise.then(({ stdout }) => {
|
|
56
|
+
this.commit.REF_NAME = stdout.trimEnd();
|
|
57
|
+
});
|
|
58
|
+
promises.push(refNamePromise);
|
|
59
|
+
const shaPromise = utils_1.Utils.spawn(["git", "rev-parse", "HEAD"], cwd);
|
|
60
|
+
shaPromise.then(({ stdout }) => {
|
|
61
|
+
this.commit.SHA = stdout.trimEnd();
|
|
62
|
+
});
|
|
63
|
+
promises.push(shaPromise);
|
|
64
|
+
const shortShaPromise = utils_1.Utils.spawn(["git", "rev-parse", "--short", "HEAD"], cwd);
|
|
65
|
+
shortShaPromise.then(({ stdout }) => {
|
|
66
|
+
this.commit.SHORT_SHA = stdout.trimEnd();
|
|
67
|
+
});
|
|
68
|
+
promises.push(shortShaPromise);
|
|
59
69
|
try {
|
|
60
|
-
|
|
61
|
-
const gitLogMatch = gitLogStdout.match(/(?<short_sha>\S*?) (?<sha>\S*) .*HEAD( -> |, tag: |, )(?<ref_name>.*?)(?:,|$)/);
|
|
62
|
-
(0, asserts_1.assert)(gitLogMatch?.groups != null, "git log -1 didn't provide valid matches");
|
|
63
|
-
this.commit.REF_NAME = gitLogMatch.groups.ref_name;
|
|
64
|
-
this.commit.SHA = gitLogMatch.groups.sha;
|
|
65
|
-
this.commit.SHORT_SHA = gitLogMatch.groups.short_sha;
|
|
70
|
+
await Promise.all(promises);
|
|
66
71
|
}
|
|
67
72
|
catch (e) {
|
|
68
73
|
if (e instanceof exit_error_1.ExitError) {
|
|
69
|
-
writeStreams.stderr((0, chalk_1.default) `{yellow ${e.message}}\n`);
|
|
70
|
-
return;
|
|
74
|
+
return writeStreams.stderr((0, chalk_1.default) `{yellow ${e.message}}\n`);
|
|
71
75
|
}
|
|
72
76
|
writeStreams.stderr((0, chalk_1.default) `{yellow Using fallback git commit data}\n`);
|
|
73
77
|
}
|
|
74
78
|
}
|
|
75
79
|
async initRemoteData(cwd, writeStreams) {
|
|
76
80
|
try {
|
|
77
|
-
const { stdout: gitRemote } = await utils_1.Utils.spawn("git remote -v", cwd);
|
|
81
|
+
const { stdout: gitRemote } = await utils_1.Utils.spawn(["git", "remote", "-v"], cwd);
|
|
78
82
|
const gitRemoteMatch = gitRemote.match(/.*(?:\/\/|@)(?<host>[^:/]*)(:(?<port>\d+)\/|:|\/)(?<group>.*)\/(?<project>.*?)(?:\r?\n|\.git)/);
|
|
79
83
|
(0, asserts_1.assert)(gitRemoteMatch?.groups != null, "git remote -v didn't provide valid matches");
|
|
80
84
|
this.remote.port = gitRemoteMatch.groups.port ?? "22";
|
|
@@ -91,27 +95,29 @@ class GitData {
|
|
|
91
95
|
}
|
|
92
96
|
}
|
|
93
97
|
async initUserData(cwd, writeStreams) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
catch
|
|
98
|
+
const promises = [];
|
|
99
|
+
const gitUsernamePromise = utils_1.Utils.spawn(["git", "config", "user.name"], cwd).then(({ stdout }) => {
|
|
100
|
+
this.user.GITLAB_USER_NAME = stdout.trimEnd();
|
|
101
|
+
}).catch(() => {
|
|
98
102
|
writeStreams.stderr((0, chalk_1.default) `{yellow Using fallback git user.name}\n`);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
|
|
103
|
+
});
|
|
104
|
+
promises.push(gitUsernamePromise);
|
|
105
|
+
const gitEmailPromise = utils_1.Utils.spawn(["git", "config", "user.email"], cwd).then(({ stdout }) => {
|
|
106
|
+
const email = stdout.trimEnd();
|
|
102
107
|
this.user.GITLAB_USER_EMAIL = email;
|
|
103
108
|
this.user.GITLAB_USER_LOGIN = email.replace(/@.*/, "");
|
|
104
|
-
}
|
|
105
|
-
catch (e) {
|
|
109
|
+
}).catch(() => {
|
|
106
110
|
writeStreams.stderr((0, chalk_1.default) `{yellow Using fallback git user.email}\n`);
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
catch
|
|
111
|
+
});
|
|
112
|
+
promises.push(gitEmailPromise);
|
|
113
|
+
const osUidPromise = utils_1.Utils.spawn(["id", "-u"], cwd).then(({ stdout }) => {
|
|
114
|
+
this.user.GITLAB_USER_ID = stdout.trimEnd();
|
|
115
|
+
}).catch(() => {
|
|
112
116
|
writeStreams.stderr((0, chalk_1.default) `{yellow Using fallback linux user id}\n`);
|
|
113
|
-
}
|
|
117
|
+
});
|
|
118
|
+
promises.push(osUidPromise);
|
|
119
|
+
await Promise.all(promises);
|
|
114
120
|
}
|
|
115
121
|
}
|
|
116
122
|
exports.GitData = GitData;
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnaXQtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtQ0FBOEI7QUFDOUIsdUNBQWlDO0FBRWpDLGtEQUEwQjtBQUMxQixtREFBNkM7QUFFN0MsTUFBYSxPQUFPO0lBQXBCO1FBRW9CLFNBQUksR0FBRztZQUNuQixpQkFBaUIsRUFBRSxPQUFPO1lBQzFCLGlCQUFpQixFQUFFLGtCQUFrQjtZQUNyQyxnQkFBZ0IsRUFBRSxXQUFXO1lBQzdCLGNBQWMsRUFBRSxNQUFNO1NBQ3pCLENBQUM7UUFFYyxXQUFNLEdBQUc7WUFDckIsSUFBSSxFQUFFLElBQUk7WUFDVixJQUFJLEVBQUUsWUFBWTtZQUNsQixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLE9BQU8sRUFBRSxrQkFBa0I7U0FDOUIsQ0FBQztRQUVjLFdBQU0sR0FBRztZQUNyQixRQUFRLEVBQUUsTUFBTTtZQUNoQixHQUFHLEVBQUUsMENBQTBDO1lBQy9DLFNBQVMsRUFBRSxVQUFVO1NBQ3hCLENBQUM7SUE2Rk4sQ0FBQztJQTNGRyxJQUFJLGVBQWU7UUFDZixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxrQkFBa0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUNwQixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxD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eEU7UUFFRCxJQUFJO1lBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEdBQUcsQ0FBQyxNQUFNLGFBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ2pGO1FBQUMsT0FBTSxDQUFDLEVBQUU7WUFDUCxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUEsZUFBSyxFQUFBLHlDQUF5QyxDQUFDLENBQUM7U0FDdkU7SUFDTCxDQUFDO0NBQ0o7QUFqSEQsMEJBaUhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtVdGlsc30gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7YXNzZXJ0fSBmcm9tIFwiLi9hc3NlcnRzXCI7XG5pbXBvcnQge1dyaXRlU3RyZWFtc30gZnJvbSBcIi4vdHlwZXMvd3JpdGUtc3RyZWFtc1wiO1xuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IHtFeGl0RXJyb3J9IGZyb20gXCIuL3R5cGVzL2V4aXQtZXJyb3JcIjtcblxuZXhwb3J0IGNsYXNzIEdpdERhdGEge1xuXG4gICAgcHVibGljIHJlYWRvbmx5IHVzZXIgPSB7XG4gICAgICAgIEdJVExBQl9VU0VSX0xPR0lOOiBcImxvY2FsXCIsXG4gICAgICAgIEdJVExBQl9VU0VSX0VNQUlMOiBcImxvY2FsQGdpdGxhYi5jb21cIixcbiAgICAgICAgR0lUTEFCX1VTRVJfTkFNRTogXCJCb2IgTG9jYWxcIixcbiAgICAgICAgR0lUTEFCX1VTRVJfSUQ6IFwiMTAwMFwiLFxuICAgIH07XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgcmVtb3RlID0ge1xuICAgICAgICBwb3J0OiBcIjIyXCIsXG4gICAgICAgIGhvc3Q6IFwiZ2l0bGFiLmNvbVwiLFxuICAgICAgICBncm91cDogXCJmYWxsYmFjay5ncm91cFwiLFxuICAgICAgICBwcm9qZWN0OiBcImZhbGxiYWNrLnByb2plY3RcIixcbiAgICB9O1xuXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbW1pdCA9IHtcbiAgICAgICAgUkVGX05BTUU6IFwibWFpblwiLFxuICAgICAgICBTSEE6IFwiMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMFwiLFxuICAgICAgICBTSE9SVF9TSEE6IFwiMDAwMDAwMDBcIixcbiAgICB9O1xuXG4gICAgZ2V0IENJX1BST0pFQ1RfUEFUSCgpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMucmVtb3RlLmdyb3VwfS8ke3RoaXMucmVtb3RlLnByb2plY3R9YDtcbiAgICB9XG5cbiAgICBnZXQgQ0lfUkVHSVNUUlkoKSB7XG4gICAgICAgIHJldHVybiBgbG9jYWwtcmVnaXN0cnkuJHt0aGlzLnJlbW90ZS5ob3N0fWA7XG4gICAgfVxuXG4gICAgZ2V0IENJX1JFR0lTVFJZX0lNQUdFKCkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5DSV9SRUdJU1RSWX0vJHt0aGlzLkNJX1BST0pFQ1RfUEFUSH1gO1xuICAgIH1cblxuICAgIGdldCBDSV9QUk9KRUNUX1BBVEhfU0xVRygpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMucmVtb3RlLmdyb3VwLnJlcGxhY2UoL1xcLy9nLCBcIi1cIil9LSR7dGhpcy5yZW1vdGUucHJvamVjdH1gO1xuICAgIH1cblxuICAgIHN0YXRpYyBhc3luYyBpbml0KGN3ZDogc3RyaW5nLCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcyk6IFByb21pc2U8R2l0RGF0YT4ge1xuICAgICAgICBjb25zdCBnaXREYXRhID0gbmV3IEdpdERhdGEoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGdpdFZlcnNpb24gPSAoYXdhaXQgVXRpbHMuc3Bhd24oXCJnaXQgLS12ZXJzaW9uXCIsIGN3ZCkpLnN0ZG91dC50cmltRW5kKCk7XG4gICAgICAgICAgICBhc3NlcnQoZ2l0VmVyc2lvbiAhPSBudWxsLCBcIldlIGRvIG5vdCB0aGluayBpdCBpcyBzYWZlIHRvIHVzZSBnaXQgd2l0aG91dCBhIHByb3BlciB2ZXJzaW9uIHN0cmluZyFcIik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyBHaXQgbm90IGF2YWlsYWJsZSB1c2luZyBmYWxsYmFja31cXG5gKTtcbiAgICAgICAgICAgIHJldHVybiBnaXREYXRhO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGdpdERhdGEuaW5pdENvbW1pdERhdGEoY3dkLCB3cml0ZVN0cmVhbXMpO1xuICAgICAgICBhd2FpdCBnaXREYXRhLmluaXRSZW1vdGVEYXRhKGN3ZCwgd3JpdGVTdHJlYW1zKTtcbiAgICAgICAgYXdhaXQgZ2l0RGF0YS5pbml0VXNlckRhdGEoY3dkLCB3cml0ZVN0cmVhbXMpO1xuICAgICAgICByZXR1cm4gZ2l0RGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGluaXRDb21taXREYXRhKGN3ZDogc3RyaW5nLCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZ2l0TG9nU3Rkb3V0ID0gKGF3YWl0IFV0aWxzLnNwYXduKFwiZ2l0IGxvZyAtMSAtLXByZXR0eT1mb3JtYXQ6JyVoICVIICVEJ1wiLCBjd2QpKS5zdGRvdXQucmVwbGFjZSgvXFxyP1xcbi9nLCBcIlwiKTtcbiAgICAgICAgICAgIGNvbnN0IGdpdExvZ01hdGNoID0gZ2l0TG9nU3Rkb3V0Lm1hdGNoKC8oPzxzaG9ydF9zaGE+XFxTKj8pICg/PHNoYT5cXFMqKSAuKkhFQUQoIC0+IHwsIHRhZzogfCwgKSg/PHJlZl9uYW1lPi4qPykoPzosfCQpLyk7XG5cbiAgICAgICAgICAgIGFzc2VydChnaXRMb2dNYXRjaD8uZ3JvdXBzICE9IG51bGwsIFwiZ2l0IGxvZyAtMSBkaWRuJ3QgcHJvdmlkZSB2YWxpZCBtYXRjaGVzXCIpO1xuXG4gICAgICAgICAgICB0aGlzLmNvbW1pdC5SRUZfTkFNRSA9IGdpdExvZ01hdGNoLmdyb3Vwcy5yZWZfbmFtZTtcbiAgICAgICAgICAgIHRoaXMuY29tbWl0LlNIQSA9IGdpdExvZ01hdGNoLmdyb3Vwcy5zaGE7XG4gICAgICAgICAgICB0aGlzLmNvbW1pdC5TSE9SVF9TSEEgPSBnaXRMb2dNYXRjaC5ncm91cHMuc2hvcnRfc2hhO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEV4aXRFcnJvcikge1xuICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyAke2UubWVzc2FnZX19XFxuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7eWVsbG93IFVzaW5nIGZhbGxiYWNrIGdpdCBjb21taXQgZGF0YX1cXG5gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgaW5pdFJlbW90ZURhdGEoY3dkOiBzdHJpbmcsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCB7IHN0ZG91dDogZ2l0UmVtb3RlIH0gPSBhd2FpdCBVdGlscy5zcGF3bihcImdpdCByZW1vdGUgLXZcIiwgY3dkKTtcbiAgICAgICAgICAgIGNvbnN0IGdpdFJlbW90ZU1hdGNoID0gZ2l0UmVtb3RlLm1hdGNoKC8uKig/OlxcL1xcL3xAKSg/PGhvc3Q+W146L10qKSg6KD88cG9ydD5cXGQrKVxcL3w6fFxcLykoPzxncm91cD4uKilcXC8oPzxwcm9qZWN0Pi4qPykoPzpcXHI/XFxufFxcLmdpdCkvKTtcblxuICAgICAgICAgICAgYXNzZXJ0KGdpdFJlbW90ZU1hdGNoPy5ncm91cHMgIT0gbnVsbCwgXCJnaXQgcmVtb3RlIC12IGRpZG4ndCBwcm92aWRlIHZhbGlkIG1hdGNoZXNcIik7XG5cbiAgICAgICAgICAgIHRoaXMucmVtb3RlLnBvcnQgPSBnaXRSZW1vdGVNYXRjaC5ncm91cHMucG9ydCA/PyBcIjIyXCI7XG4gICAgICAgICAgICB0aGlzLnJlbW90ZS5ob3N0ID0gZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLmhvc3Q7XG4gICAgICAgICAgICB0aGlzLnJlbW90ZS5ncm91cCA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5ncm91cDtcbiAgICAgICAgICAgIHRoaXMucmVtb3RlLnByb2plY3QgPSBnaXRSZW1vdGVNYXRjaC5ncm91cHMucHJvamVjdDtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFeGl0RXJyb3IpIHtcbiAgICAgICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3RkZXJyKGNoYWxrYHt5ZWxsb3cgJHtlLm1lc3NhZ2V9fVxcbmApO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyBVc2luZyBmYWxsYmFjayBnaXQgcmVtb3RlIGRhdGF9XFxuYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBpbml0VXNlckRhdGEoY3dkOiBzdHJpbmcsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnVzZXIuR0lUTEFCX1VTRVJfTkFNRSA9IChhd2FpdCBVdGlscy5zcGF3bihcImdpdCBjb25maWcgdXNlci5uYW1lXCIsIGN3ZCkpLnN0ZG91dC50cmltRW5kKCk7XG4gICAgICAgIH0gY2F0Y2goZSkge1xuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7eWVsbG93IFVzaW5nIGZhbGxiYWNrIGdpdCB1c2VyLm5hbWV9XFxuYCk7XG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgZW1haWwgPSAoYXdhaXQgVXRpbHMuc3Bhd24oXCJnaXQgY29uZmlnIHVzZXIuZW1haWxcIiwgY3dkKSkuc3Rkb3V0LnRyaW1FbmQoKTtcbiAgICAgICAgICAgIHRoaXMudXNlci5HSVRMQUJfVVNFUl9FTUFJTCA9IGVtYWlsO1xuICAgICAgICAgICAgdGhpcy51c2VyLkdJVExBQl9VU0VSX0xPR0lOID0gZW1haWwucmVwbGFjZSgvQC4qLywgXCJcIik7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyBVc2luZyBmYWxsYmFjayBnaXQgdXNlci5lbWFpbH1cXG5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICB0aGlzLnVzZXIuR0lUTEFCX1VTRVJfSUQgPSAoYXdhaXQgVXRpbHMuc3Bhd24oXCJpZCAtdVwiLCBjd2QpKS5zdGRvdXQudHJpbUVuZCgpO1xuICAgICAgICB9IGNhdGNoKGUpIHtcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyBVc2luZyBmYWxsYmFjayBsaW51eCB1c2VyIGlkfVxcbmApO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0LWRhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnaXQtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxtQ0FBOEI7QUFDOUIsdUNBQWlDO0FBRWpDLGtEQUEwQjtBQUMxQixtREFBNkM7QUFFN0MsTUFBYSxPQUFPO0lBQXBCO1FBRW9CLFNBQUksR0FBRztZQUNuQixpQkFBaUIsRUFBRSxPQUFPO1lBQzFCLGlCQUFpQixFQUFFLGtCQUFrQjtZQUNyQyxnQkFBZ0IsRUFBRSxXQUFXO1lBQzdCLGNBQWMsRUFBRSxNQUFNO1NBQ3pCLENBQUM7UUFFYyxXQUFNLEdBQUc7WUFDckIsSUFBSSxFQUFFLElBQUk7WUFDVixJQUFJLEVBQUUsWUFBWTtZQUNsQixLQUFLLEVBQUUsZ0JBQWdCO1lBQ3ZCLE9BQU8sRUFBRSxrQkFBa0I7U0FDOUIsQ0FBQztRQUVjLFdBQU0sR0FBRztZQUNyQixRQUFRLEVBQUUsTUFBTTtZQUNoQixHQUFHLEVBQUUsMENBQTBDO1lBQy9DLFNBQVMsRUFBRSxVQUFVO1NBQ3hCLENBQUM7SUEyR04sQ0FBQztJQXpHRyxJQUFJLGVBQWU7UUFDZixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxrQkFBa0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUNwQixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxD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QUMsSUFBQSxlQUFLLEVBQUEseUNBQXlDLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztRQUNILFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFNUIsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7Q0FDSjtBQS9IRCwwQkErSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1V0aWxzfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHthc3NlcnR9IGZyb20gXCIuL2Fzc2VydHNcIjtcbmltcG9ydCB7V3JpdGVTdHJlYW1zfSBmcm9tIFwiLi90eXBlcy93cml0ZS1zdHJlYW1zXCI7XG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQge0V4aXRFcnJvcn0gZnJvbSBcIi4vdHlwZXMvZXhpdC1lcnJvclwiO1xuXG5leHBvcnQgY2xhc3MgR2l0RGF0YSB7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgdXNlciA9IHtcbiAgICAgICAgR0lUTEFCX1VTRVJfTE9HSU46IFwibG9jYWxcIixcbiAgICAgICAgR0lUTEFCX1VTRVJfRU1BSUw6IFwibG9jYWxAZ2l0bGFiLmNvbVwiLFxuICAgICAgICBHSVRMQUJfVVNFUl9OQU1FOiBcIkJvYiBMb2NhbFwiLFxuICAgICAgICBHSVRMQUJfVVNFUl9JRDogXCIxMDAwXCIsXG4gICAgfTtcblxuICAgIHB1YmxpYyByZWFkb25seSByZW1vdGUgPSB7XG4gICAgICAgIHBvcnQ6IFwiMjJcIixcbiAgICAgICAgaG9zdDogXCJnaXRsYWIuY29tXCIsXG4gICAgICAgIGdyb3VwOiBcImZhbGxiYWNrLmdyb3VwXCIsXG4gICAgICAgIHByb2plY3Q6IFwiZmFsbGJhY2sucHJvamVjdFwiLFxuICAgIH07XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY29tbWl0ID0ge1xuICAgICAgICBSRUZfTkFNRTogXCJtYWluXCIsXG4gICAgICAgIFNIQTogXCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwXCIsXG4gICAgICAgIFNIT1JUX1NIQTogXCIwMDAwMDAwMFwiLFxuICAgIH07XG5cbiAgICBnZXQgQ0lfUFJPSkVDVF9QQVRIKCkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5yZW1vdGUuZ3JvdXB9LyR7dGhpcy5yZW1vdGUucHJvamVjdH1gO1xuICAgIH1cblxuICAgIGdldCBDSV9SRUdJU1RSWSgpIHtcbiAgICAgICAgcmV0dXJuIGBsb2NhbC1yZWdpc3RyeS4ke3RoaXMucmVtb3RlLmhvc3R9YDtcbiAgICB9XG5cbiAgICBnZXQgQ0lfUkVHSVNUUllfSU1BR0UoKSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLkNJX1JFR0lTVFJZfS8ke3RoaXMuQ0lfUFJPSkVDVF9QQVRIfWA7XG4gICAgfVxuXG4gICAgZ2V0IENJX1BST0pFQ1RfUEFUSF9TTFVHKCkge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5yZW1vdGUuZ3JvdXAucmVwbGFjZSgvXFwvL2csIFwiLVwiKX0tJHt0aGlzLnJlbW90ZS5wcm9qZWN0fWA7XG4gICAgfVxuXG4gICAgc3RhdGljIGFzeW5jIGluaXQoY3dkOiBzdHJpbmcsIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zKTogUHJvbWlzZTxHaXREYXRhPiB7XG4gICAgICAgIGNvbnN0IGdpdERhdGEgPSBuZXcgR2l0RGF0YSgpO1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdO1xuICAgICAgICBwcm9taXNlcy5wdXNoKGdpdERhdGEuaW5pdENvbW1pdERhdGEoY3dkLCB3cml0ZVN0cmVhbXMpKTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChnaXREYXRhLmluaXRSZW1vdGVEYXRhKGN3ZCwgd3JpdGVTdHJlYW1zKSk7XG4gICAgICAgIHByb21pc2VzLnB1c2goZ2l0RGF0YS5pbml0VXNlckRhdGEoY3dkLCB3cml0ZVN0cmVhbXMpKTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICAgICAgICByZXR1cm4gZ2l0RGF0YTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGluaXRDb21taXREYXRhKGN3ZDogc3RyaW5nLCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdO1xuXG4gICAgICAgIGNvbnN0IHJlZk5hbWVQcm9taXNlID0gVXRpbHMuc3Bhd24oW1wiZ2l0XCIsIFwicmV2LXBhcnNlXCIsIFwiLS1hYmJyZXYtcmVmXCIsIFwiSEVBRFwiXSwgY3dkKTtcbiAgICAgICAgcmVmTmFtZVByb21pc2UudGhlbigoe3N0ZG91dH0pID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29tbWl0LlJFRl9OQU1FID0gc3Rkb3V0LnRyaW1FbmQoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHByb21pc2VzLnB1c2gocmVmTmFtZVByb21pc2UpO1xuXG4gICAgICAgIGNvbnN0IHNoYVByb21pc2UgPSBVdGlscy5zcGF3bihbXCJnaXRcIiwgXCJyZXYtcGFyc2VcIiwgXCJIRUFEXCJdLCBjd2QpO1xuICAgICAgICBzaGFQcm9taXNlLnRoZW4oKHtzdGRvdXR9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbW1pdC5TSEEgPSBzdGRvdXQudHJpbUVuZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChzaGFQcm9taXNlKTtcblxuICAgICAgICBjb25zdCBzaG9ydFNoYVByb21pc2UgPSBVdGlscy5zcGF3bihbXCJnaXRcIiwgXCJyZXYtcGFyc2VcIiwgXCItLXNob3J0XCIsIFwiSEVBRFwiXSwgY3dkKTtcbiAgICAgICAgc2hvcnRTaGFQcm9taXNlLnRoZW4oKHtzdGRvdXR9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbW1pdC5TSE9SVF9TSEEgPSBzdGRvdXQudHJpbUVuZCgpO1xuICAgICAgICB9KTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChzaG9ydFNoYVByb21pc2UpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXhpdEVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyAke2UubWVzc2FnZX19XFxuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3RkZXJyKGNoYWxrYHt5ZWxsb3cgVXNpbmcgZmFsbGJhY2sgZ2l0IGNvbW1pdCBkYXRhfVxcbmApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBpbml0UmVtb3RlRGF0YShjd2Q6IHN0cmluZywgd3JpdGVTdHJlYW1zOiBXcml0ZVN0cmVhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc3Rkb3V0OiBnaXRSZW1vdGUgfSA9IGF3YWl0IFV0aWxzLnNwYXduKFtcImdpdFwiLCBcInJlbW90ZVwiLCBcIi12XCJdLCBjd2QpO1xuICAgICAgICAgICAgY29uc3QgZ2l0UmVtb3RlTWF0Y2ggPSBnaXRSZW1vdGUubWF0Y2goLy4qKD86XFwvXFwvfEApKD88aG9zdD5bXjovXSopKDooPzxwb3J0PlxcZCspXFwvfDp8XFwvKSg/PGdyb3VwPi4qKVxcLyg/PHByb2plY3Q+Lio/KSg/Olxccj9cXG58XFwuZ2l0KS8pO1xuXG4gICAgICAgICAgICBhc3NlcnQoZ2l0UmVtb3RlTWF0Y2g/Lmdyb3VwcyAhPSBudWxsLCBcImdpdCByZW1vdGUgLXYgZGlkbid0IHByb3ZpZGUgdmFsaWQgbWF0Y2hlc1wiKTtcblxuICAgICAgICAgICAgdGhpcy5yZW1vdGUucG9ydCA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5wb3J0ID8/IFwiMjJcIjtcbiAgICAgICAgICAgIHRoaXMucmVtb3RlLmhvc3QgPSBnaXRSZW1vdGVNYXRjaC5ncm91cHMuaG9zdDtcbiAgICAgICAgICAgIHRoaXMucmVtb3RlLmdyb3VwID0gZ2l0UmVtb3RlTWF0Y2guZ3JvdXBzLmdyb3VwO1xuICAgICAgICAgICAgdGhpcy5yZW1vdGUucHJvamVjdCA9IGdpdFJlbW90ZU1hdGNoLmdyb3Vwcy5wcm9qZWN0O1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEV4aXRFcnJvcikge1xuICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyAke2UubWVzc2FnZX19XFxuYCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7eWVsbG93IFVzaW5nIGZhbGxiYWNrIGdpdCByZW1vdGUgZGF0YX1cXG5gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGluaXRVc2VyRGF0YShjd2Q6IHN0cmluZywgd3JpdGVTdHJlYW1zOiBXcml0ZVN0cmVhbXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXTtcblxuICAgICAgICBjb25zdCBnaXRVc2VybmFtZVByb21pc2UgPSBVdGlscy5zcGF3bihbXCJnaXRcIiwgXCJjb25maWdcIiwgXCJ1c2VyLm5hbWVcIl0sIGN3ZCkudGhlbigoe3N0ZG91dH0pID0+IHtcbiAgICAgICAgICAgIHRoaXMudXNlci5HSVRMQUJfVVNFUl9OQU1FID0gc3Rkb3V0LnRyaW1FbmQoKTtcbiAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7eWVsbG93IFVzaW5nIGZhbGxiYWNrIGdpdCB1c2VyLm5hbWV9XFxuYCk7XG4gICAgICAgIH0pO1xuICAgICAgICBwcm9taXNlcy5wdXNoKGdpdFVzZXJuYW1lUHJvbWlzZSk7XG5cbiAgICAgICAgY29uc3QgZ2l0RW1haWxQcm9taXNlID0gVXRpbHMuc3Bhd24oW1wiZ2l0XCIsIFwiY29uZmlnXCIsIFwidXNlci5lbWFpbFwiXSwgY3dkKS50aGVuKCh7c3Rkb3V0fSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZW1haWwgPSBzdGRvdXQudHJpbUVuZCgpO1xuICAgICAgICAgICAgdGhpcy51c2VyLkdJVExBQl9VU0VSX0VNQUlMID0gZW1haWw7XG4gICAgICAgICAgICB0aGlzLnVzZXIuR0lUTEFCX1VTRVJfTE9HSU4gPSBlbWFpbC5yZXBsYWNlKC9ALiovLCBcIlwiKTtcbiAgICAgICAgfSkuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZGVycihjaGFsa2B7eWVsbG93IFVzaW5nIGZhbGxiYWNrIGdpdCB1c2VyLmVtYWlsfVxcbmApO1xuICAgICAgICB9KTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChnaXRFbWFpbFByb21pc2UpO1xuXG4gICAgICAgIGNvbnN0IG9zVWlkUHJvbWlzZSA9IFV0aWxzLnNwYXduKFtcImlkXCIsIFwiLXVcIl0sIGN3ZCkudGhlbigoe3N0ZG91dH0pID0+IHtcbiAgICAgICAgICAgIHRoaXMudXNlci5HSVRMQUJfVVNFUl9JRCA9IHN0ZG91dC50cmltRW5kKCk7XG4gICAgICAgIH0pLmNhdGNoKCgpID0+IHtcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge3llbGxvdyBVc2luZyBmYWxsYmFjayBsaW51eCB1c2VyIGlkfVxcbmApO1xuICAgICAgICB9KTtcbiAgICAgICAgcHJvbWlzZXMucHVzaChvc1VpZFByb21pc2UpO1xuXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcbiAgICB9XG59XG4iXX0=
|
package/src/handler.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -30,18 +34,12 @@ const yargs = __importStar(require("yargs"));
|
|
|
30
34
|
const commander_1 = require("./commander");
|
|
31
35
|
const parser_1 = require("./parser");
|
|
32
36
|
const state = __importStar(require("./state"));
|
|
33
|
-
const asserts_1 = require("./asserts");
|
|
34
|
-
const dotenv = __importStar(require("dotenv"));
|
|
35
|
-
const camelcase_1 = __importDefault(require("camelcase"));
|
|
36
37
|
const pretty_hrtime_1 = __importDefault(require("pretty-hrtime"));
|
|
37
38
|
const job_1 = require("./job");
|
|
38
39
|
const utils_1 = require("./utils");
|
|
39
40
|
const exit_error_1 = require("./types/exit-error");
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
const gitlabFilePath = file ? `${cwd}/${file}` : `${cwd}/.gitlab-ci.yml`;
|
|
43
|
-
(0, asserts_1.assert)(fs.existsSync(gitlabFilePath), `${cwd} does not contain ${file ?? ".gitlab-ci.yml"}`);
|
|
44
|
-
};
|
|
41
|
+
const argv_1 = require("./argv");
|
|
42
|
+
const asserts_1 = require("./asserts");
|
|
45
43
|
const generateGitIgnore = (cwd) => {
|
|
46
44
|
const gitIgnoreFilePath = `${cwd}/.gitlab-ci-local/.gitignore`;
|
|
47
45
|
const gitIgnoreContent = "*\n!.gitignore\n";
|
|
@@ -51,7 +49,7 @@ const generateGitIgnore = (cwd) => {
|
|
|
51
49
|
};
|
|
52
50
|
const cleanupResources = async (parser) => {
|
|
53
51
|
if (!parser) {
|
|
54
|
-
|
|
52
|
+
return;
|
|
55
53
|
}
|
|
56
54
|
const promises = [];
|
|
57
55
|
for (const job of parser.jobs.values()) {
|
|
@@ -59,61 +57,45 @@ const cleanupResources = async (parser) => {
|
|
|
59
57
|
}
|
|
60
58
|
await Promise.all(promises);
|
|
61
59
|
};
|
|
62
|
-
async function handler(
|
|
63
|
-
|
|
64
|
-
const cwd = argv.cwd
|
|
60
|
+
async function handler(args, writeStreams) {
|
|
61
|
+
const argv = new argv_1.Argv(args);
|
|
62
|
+
const cwd = argv.cwd;
|
|
63
|
+
const file = argv.file;
|
|
64
|
+
let parser = null;
|
|
65
|
+
process.on("exit", () => {
|
|
66
|
+
if (parser)
|
|
67
|
+
cleanupResources(parser).then().catch();
|
|
68
|
+
});
|
|
65
69
|
process.on("unhandledRejection", async (e) => {
|
|
66
70
|
if (e instanceof exit_error_1.ExitError) {
|
|
67
|
-
process.stderr.write((0, chalk_1.default) `{red ${e.message}}\n`);
|
|
71
|
+
process.stderr.write((0, chalk_1.default) `{red ${e.message.trim()}}\n`);
|
|
68
72
|
}
|
|
69
73
|
else if (e instanceof Error) {
|
|
70
|
-
process.stderr.write((0, chalk_1.default) `{red ${e.stack ?? e.message}}\n`);
|
|
74
|
+
process.stderr.write((0, chalk_1.default) `{red ${e.stack?.trim() ?? e.message.trim()}}\n`);
|
|
71
75
|
}
|
|
72
76
|
else if (e) {
|
|
73
|
-
process.stderr.write((0, chalk_1.default) `{red ${e.toString()}}\n`);
|
|
77
|
+
process.stderr.write((0, chalk_1.default) `{red ${e.toString().trim()}}\n`);
|
|
74
78
|
}
|
|
75
|
-
|
|
79
|
+
if (parser)
|
|
80
|
+
await cleanupResources(parser);
|
|
76
81
|
process.exit(1);
|
|
77
82
|
});
|
|
78
83
|
process.on("SIGINT", async (_, code) => {
|
|
79
84
|
await cleanupResources(parser);
|
|
80
85
|
process.exit(code);
|
|
81
86
|
});
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const config = dotenv.parse(fs.readFileSync(`${cwd}/.gitlab-ci-local-env`));
|
|
85
|
-
for (const [key, value] of Object.entries(config)) {
|
|
86
|
-
const argKey = (0, camelcase_1.default)(key);
|
|
87
|
-
if (argv[argKey] == null) {
|
|
88
|
-
argv[argKey] = value;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
const volumes = typeof argv.volume == "string" ? argv.volume.split(" ") : argv.volume;
|
|
93
|
-
const extraHosts = typeof argv.extraHost == "string" ? argv.extraHost.split(" ") : argv.extraHost;
|
|
94
|
-
const variablePairs = typeof argv.variable == "string" ? argv.variable.split(" ") : argv.variable;
|
|
95
|
-
const shellIsolation = argv.shellIsolation;
|
|
96
|
-
const variables = {};
|
|
97
|
-
(variablePairs ?? []).forEach((variablePair) => {
|
|
98
|
-
const exec = /(?<key>\w*?)(=)(?<value>\w.*)/.exec(variablePair);
|
|
99
|
-
if (exec?.groups?.key) {
|
|
100
|
-
variables[exec.groups.key] = exec?.groups?.value;
|
|
101
|
-
}
|
|
102
|
-
});
|
|
103
|
-
if (argv["fetch-includes"] != null && argv["fetch-includes"]) {
|
|
104
|
-
parser = await parser_1.Parser.create({
|
|
105
|
-
cwd, writeStreams, pipelineIid: 0, file: argv.file, home: argv.home, extraHosts, volumes, variables, mountCache: argv.mountCache, fetchIncludes: true,
|
|
106
|
-
});
|
|
87
|
+
if (argv.completion) {
|
|
88
|
+
yargs.showCompletionScript();
|
|
107
89
|
return new Map();
|
|
108
90
|
}
|
|
109
|
-
|
|
110
|
-
|
|
91
|
+
(0, asserts_1.assert)(fs.existsSync(`${cwd}/${file}`), `${cwd}/${file} could not be found`);
|
|
92
|
+
if (argv.fetchIncludes) {
|
|
93
|
+
parser = await parser_1.Parser.create(argv, writeStreams, 0);
|
|
94
|
+
return new Map();
|
|
111
95
|
}
|
|
112
|
-
|
|
96
|
+
if (argv.preview) {
|
|
113
97
|
const pipelineIid = await state.getPipelineIid(cwd);
|
|
114
|
-
parser = await parser_1.Parser.create(
|
|
115
|
-
cwd, writeStreams, pipelineIid, file: argv.file, home: argv.home, extraHosts, volumes, variables, mountCache: argv.mountCache,
|
|
116
|
-
});
|
|
98
|
+
parser = await parser_1.Parser.create(argv, writeStreams, pipelineIid);
|
|
117
99
|
const gitlabData = parser.gitlabData;
|
|
118
100
|
for (const jobName of Object.keys(gitlabData)) {
|
|
119
101
|
if (jobName === "stages") {
|
|
@@ -125,51 +107,45 @@ async function handler(argv, writeStreams) {
|
|
|
125
107
|
}
|
|
126
108
|
writeStreams.stdout(`---\n${yaml.dump(gitlabData, { lineWidth: 160 })}`);
|
|
127
109
|
}
|
|
128
|
-
else if (argv.list
|
|
129
|
-
checkFolderAndFile(cwd, argv.file);
|
|
110
|
+
else if (argv.list || argv.listAll) {
|
|
130
111
|
const pipelineIid = await state.getPipelineIid(cwd);
|
|
131
|
-
parser = await parser_1.Parser.create(
|
|
132
|
-
|
|
133
|
-
});
|
|
134
|
-
commander_1.Commander.runList(parser, writeStreams, argv.listAll != null);
|
|
112
|
+
parser = await parser_1.Parser.create(argv, writeStreams, pipelineIid);
|
|
113
|
+
commander_1.Commander.runList(parser, writeStreams, argv.listAll);
|
|
135
114
|
}
|
|
136
|
-
else if (argv.
|
|
137
|
-
const
|
|
138
|
-
|
|
115
|
+
else if (argv.listJson) {
|
|
116
|
+
const pipelineIid = await state.getPipelineIid(cwd);
|
|
117
|
+
parser = await parser_1.Parser.create(argv, writeStreams, pipelineIid);
|
|
118
|
+
commander_1.Commander.runJson(parser, writeStreams);
|
|
119
|
+
}
|
|
120
|
+
else if (argv.job.length > 0) {
|
|
139
121
|
generateGitIgnore(cwd);
|
|
140
|
-
|
|
122
|
+
const time = process.hrtime();
|
|
123
|
+
if (argv.needs || argv.onlyNeeds) {
|
|
141
124
|
await fs.remove(`${cwd}/.gitlab-ci-local/artifacts`);
|
|
142
125
|
await state.incrementPipelineIid(cwd);
|
|
143
126
|
}
|
|
144
127
|
const pipelineIid = await state.getPipelineIid(cwd);
|
|
145
|
-
parser = await parser_1.Parser.create(
|
|
146
|
-
cwd, writeStreams, pipelineIid, file: argv.file, home: argv.home, extraHosts, volumes, shellIsolation, variables, mountCache: argv.mountCache,
|
|
147
|
-
});
|
|
128
|
+
parser = await parser_1.Parser.create(argv, writeStreams, pipelineIid);
|
|
148
129
|
await utils_1.Utils.rsyncTrackedFiles(cwd, ".docker");
|
|
149
|
-
await commander_1.Commander.
|
|
150
|
-
if (argv.needs
|
|
151
|
-
writeStreams.
|
|
130
|
+
await commander_1.Commander.runJobs(argv, parser, writeStreams);
|
|
131
|
+
if (argv.needs || argv.onlyNeeds) {
|
|
132
|
+
writeStreams.stderr((0, chalk_1.default) `{grey pipeline finished} in {grey ${(0, pretty_hrtime_1.default)(process.hrtime(time))}}\n`);
|
|
152
133
|
}
|
|
153
134
|
}
|
|
154
135
|
else {
|
|
155
|
-
const time = process.hrtime();
|
|
156
|
-
checkFolderAndFile(cwd, argv.file);
|
|
157
136
|
generateGitIgnore(cwd);
|
|
137
|
+
const time = process.hrtime();
|
|
158
138
|
await fs.remove(`${cwd}/.gitlab-ci-local/artifacts`);
|
|
159
139
|
await state.incrementPipelineIid(cwd);
|
|
160
140
|
const pipelineIid = await state.getPipelineIid(cwd);
|
|
161
|
-
parser = await parser_1.Parser.create(
|
|
162
|
-
cwd, writeStreams, pipelineIid, file: argv.file, home: argv.home, extraHosts, volumes, shellIsolation, variables, mountCache: argv.mountCache,
|
|
163
|
-
});
|
|
141
|
+
parser = await parser_1.Parser.create(argv, writeStreams, pipelineIid);
|
|
164
142
|
await utils_1.Utils.rsyncTrackedFiles(cwd, ".docker");
|
|
165
|
-
await commander_1.Commander.runPipeline(
|
|
166
|
-
writeStreams.
|
|
143
|
+
await commander_1.Commander.runPipeline(argv, parser, writeStreams);
|
|
144
|
+
writeStreams.stderr((0, chalk_1.default) `{grey pipeline finished} in {grey ${(0, pretty_hrtime_1.default)(process.hrtime(time))}}\n`);
|
|
167
145
|
}
|
|
168
146
|
writeStreams.flush();
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
return new Map();
|
|
147
|
+
await cleanupResources(parser);
|
|
148
|
+
return parser.jobs;
|
|
173
149
|
}
|
|
174
150
|
exports.handler = handler;
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDhDQUFnQztBQUNoQyxrREFBMEI7QUFDMUIsNkNBQStCO0FBQy9CLDZDQUErQjtBQUMvQiwyQ0FBc0M7QUFDdEMscUNBQWdDO0FBQ2hDLCtDQUFpQztBQUNqQyx1Q0FBaUM7QUFDakMsK0NBQWlDO0FBQ2pDLDBEQUFrQztBQUNsQyxrRUFBeUM7QUFFekMsK0JBQTBCO0FBQzFCLG1DQUE4QjtBQUM5QixtREFBNkM7QUFFN0MsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUFhLEVBQUUsRUFBRTtJQUN0RCxJQUFBLGdCQUFNLEVBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcscUJBQXFCLENBQUMsQ0FBQztJQUU1RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsaUJBQWlCLENBQUM7SUFDekUsSUFBQSxnQkFBTSxFQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEVBQUUsR0FBRyxHQUFHLHFCQUFxQixJQUFJLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0FBQ2pHLENBQUMsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRTtJQUN0QyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsR0FBRyw4QkFBOEIsQ0FBQztJQUMvRCxNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0lBQzVDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7UUFDbkMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0tBQzFE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QUFNLENBQUMsTUFBTSxDQUFDO1lBQ3pCLEdBQUcsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7U0FDaEosQ0FBQyxDQUFDO1FBQ0gsTUFBTSxhQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0scUJBQVMsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLFlBQVksRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxJQUFJLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNwRyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUEsZUFBSyxFQUFBLHFDQUFxQyxJQUFBLHVCQUFZLEVBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMxRztJQUNELFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVyQixJQUFJLE1BQU0sRUFBRTtRQUNSLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztLQUN0QjtJQUVELE9BQU8sSUFBSSxHQUFHLEVBQWUsQ0FBQztBQUNsQyxDQUFDO0FBcEhELDBCQW9IQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHlhbWwgZnJvbSBcImpzLXlhbWxcIjtcbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSBcInlhcmdzXCI7XG5pbXBvcnQge0NvbW1hbmRlcn0gZnJvbSBcIi4vY29tbWFuZGVyXCI7XG5pbXBvcnQge1BhcnNlcn0gZnJvbSBcIi4vcGFyc2VyXCI7XG5pbXBvcnQgKiBhcyBzdGF0ZSBmcm9tIFwiLi9zdGF0ZVwiO1xuaW1wb3J0IHthc3NlcnR9IGZyb20gXCIuL2Fzc2VydHNcIjtcbmltcG9ydCAqIGFzIGRvdGVudiBmcm9tIFwiZG90ZW52XCI7XG5pbXBvcnQgY2FtZWxDYXNlIGZyb20gXCJjYW1lbGNhc2VcIjtcbmltcG9ydCBwcmV0dHlIcnRpbWUgZnJvbSBcInByZXR0eS1ocnRpbWVcIjtcbmltcG9ydCB7V3JpdGVTdHJlYW1zfSBmcm9tIFwiLi90eXBlcy93cml0ZS1zdHJlYW1zXCI7XG5pbXBvcnQge0pvYn0gZnJvbSBcIi4vam9iXCI7XG5pbXBvcnQge1V0aWxzfSBmcm9tIFwiLi91dGlsc1wiO1xuaW1wb3J0IHtFeGl0RXJyb3J9IGZyb20gXCIuL3R5cGVzL2V4aXQtZXJyb3JcIjtcblxuY29uc3QgY2hlY2tGb2xkZXJBbmRGaWxlID0gKGN3ZDogc3RyaW5nLCBmaWxlPzogc3RyaW5nKSA9PiB7XG4gICAgYXNzZXJ0KGZzLnBhdGhFeGlzdHNTeW5jKGN3ZCksIGAke2N3ZH0gaXMgbm90IGEgZGlyZWN0b3J5YCk7XG5cbiAgICBjb25zdCBnaXRsYWJGaWxlUGF0aCA9IGZpbGUgPyBgJHtjd2R9LyR7ZmlsZX1gIDogYCR7Y3dkfS8uZ2l0bGFiLWNpLnltbGA7XG4gICAgYXNzZXJ0KGZzLmV4aXN0c1N5bmMoZ2l0bGFiRmlsZVBhdGgpLCBgJHtjd2R9IGRvZXMgbm90IGNvbnRhaW4gJHtmaWxlID8/IFwiLmdpdGxhYi1jaS55bWxcIn1gKTtcbn07XG5cbmNvbnN0IGdlbmVyYXRlR2l0SWdub3JlID0gKGN3ZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZ2l0SWdub3JlRmlsZVBhdGggPSBgJHtjd2R9Ly5naXRsYWItY2ktbG9jYWwvLmdpdGlnbm9yZWA7XG4gICAgY29uc3QgZ2l0SWdub3JlQ29udGVudCA9IFwiKlxcbiEuZ2l0aWdub3JlXFxuXCI7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGdpdElnbm9yZUZpbGVQYXRoKSkge1xuICAgICAgICBmcy5vdXRwdXRGaWxlU3luYyhnaXRJZ25vcmVGaWxlUGF0aCwgZ2l0SWdub3JlQ29udGVudCk7XG4gICAgfVxufTtcblxuY29uc3QgY2xlYW51cFJlc291cmNlcyA9IGFzeW5jKHBhcnNlcjogUGFyc2VyfG51bGwpID0+IHtcbiAgICBpZiAoIXBhcnNlcikge1xuICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2VzID0gW107XG4gICAgZm9yIChjb25zdCBqb2Igb2YgcGFyc2VyLmpvYnMudmFsdWVzKCkpIHtcbiAgICAgICAgcHJvbWlzZXMucHVzaChqb2IuY2xlYW51cFJlc291cmNlcygpKTtcbiAgICB9XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoYXJndjogYW55LCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcyk6IFByb21pc2U8UmVhZG9ubHlNYXA8c3RyaW5nLCBKb2I+PiB7XG4gICAgYXNzZXJ0KHR5cGVvZiBhcmd2LmN3ZCAhPSBcIm9iamVjdFwiLCBcIi0tY3dkIG9wdGlvbiBjYW5ub3QgYmUgYW4gYXJyYXlcIik7XG4gICAgY29uc3QgY3dkID0gYXJndi5jd2Q/LnJlcGxhY2UoL1xcLyQvLCBcIlwiKSA/PyBwcm9jZXNzLmN3ZCgpO1xuXG4gICAgcHJvY2Vzcy5vbihcInVuaGFuZGxlZFJlamVjdGlvblwiLCBhc3luYyAoZSkgPT4ge1xuICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEV4aXRFcnJvcikge1xuICAgICAgICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoY2hhbGtge3JlZCAke2UubWVzc2FnZX19XFxuYCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZSBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShjaGFsa2B7cmVkICR7ZS5zdGFjayA/PyBlLm1lc3NhZ2V9fVxcbmApO1xuICAgICAgICB9IGVsc2UgaWYgKGUpIHtcbiAgICAgICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGNoYWxrYHtyZWQgJHtlLnRvU3RyaW5nKCl9fVxcbmApO1xuICAgICAgICB9XG4gICAgICAgIGF3YWl0IGNsZWFudXBSZXNvdXJjZXMocGFyc2VyKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH0pO1xuXG4gICAgcHJvY2Vzcy5vbihcIlNJR0lOVFwiLCBhc3luYyAoXzogc3RyaW5nLCBjb2RlOiBudW1iZXIpID0+IHtcbiAgICAgICAgYXdhaXQgY2xlYW51cFJlc291cmNlcyhwYXJzZXIpO1xuICAgICAgICBwcm9jZXNzLmV4aXQoY29kZSk7XG4gICAgfSk7XG5cbiAgICBsZXQgcGFyc2VyOiBQYXJzZXIgfCBudWxsID0gbnVsbDtcblxuICAgIGlmIChmcy5leGlzdHNTeW5jKGAke2N3ZH0vLmdpdGxhYi1jaS1sb2NhbC1lbnZgKSkge1xuICAgICAgICBjb25zdCBjb25maWcgPSBkb3RlbnYucGFyc2UoZnMucmVhZEZpbGVTeW5jKGAke2N3ZH0vLmdpdGxhYi1jaS1sb2NhbC1lbnZgKSk7XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZykpIHtcbiAgICAgICAgICAgIGNvbnN0IGFyZ0tleSA9IGNhbWVsQ2FzZShrZXkpO1xuICAgICAgICAgICAgaWYgKGFyZ3ZbYXJnS2V5XSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgYXJndlthcmdLZXldID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB2b2x1bWVzID0gdHlwZW9mIGFyZ3Yudm9sdW1lID09IFwic3RyaW5nXCIgPyBhcmd2LnZvbHVtZS5zcGxpdChcIiBcIikgOiBhcmd2LnZvbHVtZTtcbiAgICBjb25zdCBleHRyYUhvc3RzID0gdHlwZW9mIGFyZ3YuZXh0cmFIb3N0ID09IFwic3RyaW5nXCIgPyBhcmd2LmV4dHJhSG9zdC5zcGxpdChcIiBcIikgOiBhcmd2LmV4dHJhSG9zdDtcbiAgICBjb25zdCB2YXJpYWJsZVBhaXJzID0gdHlwZW9mIGFyZ3YudmFyaWFibGUgPT0gXCJzdHJpbmdcIiA/IGFyZ3YudmFyaWFibGUuc3BsaXQoXCIgXCIpIDogYXJndi52YXJpYWJsZTtcbiAgICBjb25zdCBzaGVsbElzb2xhdGlvbiA9IGFyZ3Yuc2hlbGxJc29sYXRpb247XG5cbiAgICBjb25zdCB2YXJpYWJsZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcblxuICAgICh2YXJpYWJsZVBhaXJzID8/IFtdKS5mb3JFYWNoKCh2YXJpYWJsZVBhaXI6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBleGVjID0gLyg/PGtleT5cXHcqPykoPSkoPzx2YWx1ZT5cXHcuKikvLmV4ZWModmFyaWFibGVQYWlyKTtcbiAgICAgICAgaWYgKGV4ZWM/Lmdyb3Vwcz8ua2V5KSB7XG4gICAgICAgICAgICB2YXJpYWJsZXNbZXhlYy5ncm91cHMua2V5XSA9IGV4ZWM/Lmdyb3Vwcz8udmFsdWU7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmIChhcmd2W1wiZmV0Y2gtaW5jbHVkZXNcIl0gIT0gbnVsbCAmJiBhcmd2W1wiZmV0Y2gtaW5jbHVkZXNcIl0pIHtcbiAgICAgICAgcGFyc2VyID0gYXdhaXQgUGFyc2VyLmNyZWF0ZSh7XG4gICAgICAgICAgICBjd2QsIHdyaXRlU3RyZWFtcywgcGlwZWxpbmVJaWQ6IDAsIGZpbGU6IGFyZ3YuZmlsZSwgaG9tZTogYXJndi5ob21lLCBleHRyYUhvc3RzLCB2b2x1bWVzLCB2YXJpYWJsZXMsIG1vdW50Q2FjaGU6IGFyZ3YubW91bnRDYWNoZSwgZmV0Y2hJbmNsdWRlczogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgSm9iPigpO1xuICAgIH1cblxuICAgIGlmIChhcmd2LmNvbXBsZXRpb24gIT0gbnVsbCkge1xuICAgICAgICB5YXJncy5zaG93Q29tcGxldGlvblNjcmlwdCgpO1xuICAgIH0gZWxzZSBpZiAoYXJndi5wcmV2aWV3ICE9IG51bGwpIHtcbiAgICAgICAgY29uc3QgcGlwZWxpbmVJaWQgPSBhd2FpdCBzdGF0ZS5nZXRQaXBlbGluZUlpZChjd2QpO1xuICAgICAgICBwYXJzZXIgPSBhd2FpdCBQYXJzZXIuY3JlYXRlKHtcbiAgICAgICAgICAgIGN3ZCwgd3JpdGVTdHJlYW1zLCBwaXBlbGluZUlpZCwgZmlsZTogYXJndi5maWxlLCBob21lOiBhcmd2LmhvbWUsIGV4dHJhSG9zdHMsIHZvbHVtZXMsIHZhcmlhYmxlcywgbW91bnRDYWNoZTogYXJndi5tb3VudENhY2hlLFxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgZ2l0bGFiRGF0YSA9IHBhcnNlci5naXRsYWJEYXRhO1xuICAgICAgICBmb3IgKGNvbnN0IGpvYk5hbWUgb2YgT2JqZWN0LmtleXMoZ2l0bGFiRGF0YSkpIHtcbiAgICAgICAgICAgIGlmIChqb2JOYW1lID09PSBcInN0YWdlc1wiKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoSm9iLmlsbGVnYWxKb2JOYW1lcy5pbmNsdWRlcyhqb2JOYW1lKSB8fCBqb2JOYW1lLnN0YXJ0c1dpdGgoXCIuXCIpKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGdpdGxhYkRhdGFbam9iTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChgLS0tXFxuJHt5YW1sLmR1bXAoZ2l0bGFiRGF0YSwge2xpbmVXaWR0aDogMTYwfSl9YCk7XG4gICAgfSBlbHNlIGlmIChhcmd2Lmxpc3QgIT0gbnVsbCB8fCBhcmd2Lmxpc3RBbGwgIT0gbnVsbCkge1xuICAgICAgICBjaGVja0ZvbGRlckFuZEZpbGUoY3dkLCBhcmd2LmZpbGUpO1xuICAgICAgICBjb25zdCBwaXBlbGluZUlpZCA9IGF3YWl0IHN0YXRlLmdldFBpcGVsaW5lSWlkKGN3ZCk7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoe1xuICAgICAgICAgICAgY3dkLCB3cml0ZVN0cmVhbXMsIHBpcGVsaW5lSWlkLCBmaWxlOiBhcmd2LmZpbGUsIGhvbWU6IGFyZ3YuaG9tZSwgZXh0cmFIb3N0cywgdm9sdW1lcywgdmFyaWFibGVzLCBtb3VudENhY2hlOiBhcmd2Lm1vdW50Q2FjaGUsXG4gICAgICAgIH0pO1xuICAgICAgICBDb21tYW5kZXIucnVuTGlzdChwYXJzZXIsIHdyaXRlU3RyZWFtcywgYXJndi5saXN0QWxsICE9IG51bGwpO1xuICAgIH0gZWxzZSBpZiAoYXJndi5qb2IpIHtcbiAgICAgICAgY29uc3QgdGltZSA9IHByb2Nlc3MuaHJ0aW1lKCk7XG4gICAgICAgIGNoZWNrRm9sZGVyQW5kRmlsZShjd2QsIGFyZ3YuZmlsZSk7XG4gICAgICAgIGdlbmVyYXRlR2l0SWdub3JlKGN3ZCk7XG4gICAgICAgIGlmIChhcmd2Lm5lZWRzID09PSB0cnVlKSB7XG4gICAgICAgICAgICBhd2FpdCBmcy5yZW1vdmUoYCR7Y3dkfS8uZ2l0bGFiLWNpLWxvY2FsL2FydGlmYWN0c2ApO1xuICAgICAgICAgICAgYXdhaXQgc3RhdGUuaW5jcmVtZW50UGlwZWxpbmVJaWQoY3dkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwaXBlbGluZUlpZCA9IGF3YWl0IHN0YXRlLmdldFBpcGVsaW5lSWlkKGN3ZCk7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoe1xuICAgICAgICAgICAgY3dkLCB3cml0ZVN0cmVhbXMsIHBpcGVsaW5lSWlkLCBmaWxlOiBhcmd2LmZpbGUsIGhvbWU6IGFyZ3YuaG9tZSwgZXh0cmFIb3N0cywgdm9sdW1lcywgc2hlbGxJc29sYXRpb24sIHZhcmlhYmxlcywgbW91bnRDYWNoZTogYXJndi5tb3VudENhY2hlLFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgVXRpbHMucnN5bmNUcmFja2VkRmlsZXMoY3dkLCBcIi5kb2NrZXJcIik7XG4gICAgICAgIGF3YWl0IENvbW1hbmRlci5ydW5TaW5nbGVKb2IocGFyc2VyLCB3cml0ZVN0cmVhbXMsIGFyZ3Yuam9iLCBhcmd2Lm5lZWRzIHx8IGZhbHNlLCBhcmd2Lm1hbnVhbCB8fCBbXSwgYXJndi5wcml2aWxlZ2VkIHx8IGZhbHNlLCBjd2QpO1xuICAgICAgICBpZiAoYXJndi5uZWVkcyA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2B7Z3JleSBwaXBlbGluZSBmaW5pc2hlZH0gaW4ge2dyZXkgJHtwcmV0dHlIcnRpbWUocHJvY2Vzcy5ocnRpbWUodGltZSkpfX1cXG5gKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHRpbWUgPSBwcm9jZXNzLmhydGltZSgpO1xuICAgICAgICBjaGVja0ZvbGRlckFuZEZpbGUoY3dkLCBhcmd2LmZpbGUpO1xuICAgICAgICBnZW5lcmF0ZUdpdElnbm9yZShjd2QpO1xuICAgICAgICBhd2FpdCBmcy5yZW1vdmUoYCR7Y3dkfS8uZ2l0bGFiLWNpLWxvY2FsL2FydGlmYWN0c2ApO1xuICAgICAgICBhd2FpdCBzdGF0ZS5pbmNyZW1lbnRQaXBlbGluZUlpZChjd2QpO1xuICAgICAgICBjb25zdCBwaXBlbGluZUlpZCA9IGF3YWl0IHN0YXRlLmdldFBpcGVsaW5lSWlkKGN3ZCk7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoe1xuICAgICAgICAgICAgY3dkLCB3cml0ZVN0cmVhbXMsIHBpcGVsaW5lSWlkLCBmaWxlOiBhcmd2LmZpbGUsIGhvbWU6IGFyZ3YuaG9tZSwgZXh0cmFIb3N0cywgdm9sdW1lcywgc2hlbGxJc29sYXRpb24sIHZhcmlhYmxlcywgbW91bnRDYWNoZTogYXJndi5tb3VudENhY2hlLFxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgVXRpbHMucnN5bmNUcmFja2VkRmlsZXMoY3dkLCBcIi5kb2NrZXJcIik7XG4gICAgICAgIGF3YWl0IENvbW1hbmRlci5ydW5QaXBlbGluZShwYXJzZXIsIHdyaXRlU3RyZWFtcywgYXJndi5tYW51YWwgfHwgW10sIGFyZ3YucHJpdmlsZWdlZCB8fCBmYWxzZSwgY3dkKTtcbiAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2B7Z3JleSBwaXBlbGluZSBmaW5pc2hlZH0gaW4ge2dyZXkgJHtwcmV0dHlIcnRpbWUocHJvY2Vzcy5ocnRpbWUodGltZSkpfX1cXG5gKTtcbiAgICB9XG4gICAgd3JpdGVTdHJlYW1zLmZsdXNoKCk7XG5cbiAgICBpZiAocGFyc2VyKSB7XG4gICAgICAgIHJldHVybiBwYXJzZXIuam9icztcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IE1hcDxzdHJpbmcsIEpvYj4oKTtcbn1cblxuIl19
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBZ0M7QUFDaEMsa0RBQTBCO0FBQzFCLDZDQUErQjtBQUMvQiw2Q0FBK0I7QUFDL0IsMkNBQXNDO0FBQ3RDLHFDQUFnQztBQUNoQywrQ0FBaUM7QUFDakMsa0VBQXlDO0FBRXpDLCtCQUEwQjtBQUMxQixtQ0FBOEI7QUFDOUIsbURBQTZDO0FBQzdDLGlDQUE0QjtBQUM1Qix1Q0FBaUM7QUFFakMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO0lBQ3RDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxHQUFHLDhCQUE4QixDQUFDO0lBQy9ELE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUM7SUFDNUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRTtRQUNuQyxFQUFFLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7S0FDMUQ7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBQyxNQUFtQixFQUFFLEVBQUU7SUFDbEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNULE9BQU87S0FDVjtJQUNELE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNwQixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDcEMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0tBQ3pDO0lBQ0QsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVLLEtBQUssVUFBVSxPQUFPLENBQUMsSUFBUyxFQUFFLFlBQTBCO0lBQy9ELE1B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U0FBUyxDQUFDLENBQUM7UUFDOUMsTUFBTSxxQkFBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3hELFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBQSxlQUFLLEVBQUEscUNBQXFDLElBQUEsdUJBQVksRUFBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzFHO0lBQ0QsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRXJCLE1BQU0sZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3ZCLENBQUM7QUF6RkQsMEJBeUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgeWFtbCBmcm9tIFwianMteWFtbFwiO1xuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyB5YXJncyBmcm9tIFwieWFyZ3NcIjtcbmltcG9ydCB7Q29tbWFuZGVyfSBmcm9tIFwiLi9jb21tYW5kZXJcIjtcbmltcG9ydCB7UGFyc2VyfSBmcm9tIFwiLi9wYXJzZXJcIjtcbmltcG9ydCAqIGFzIHN0YXRlIGZyb20gXCIuL3N0YXRlXCI7XG5pbXBvcnQgcHJldHR5SHJ0aW1lIGZyb20gXCJwcmV0dHktaHJ0aW1lXCI7XG5pbXBvcnQge1dyaXRlU3RyZWFtc30gZnJvbSBcIi4vdHlwZXMvd3JpdGUtc3RyZWFtc1wiO1xuaW1wb3J0IHtKb2J9IGZyb20gXCIuL2pvYlwiO1xuaW1wb3J0IHtVdGlsc30gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7RXhpdEVycm9yfSBmcm9tIFwiLi90eXBlcy9leGl0LWVycm9yXCI7XG5pbXBvcnQge0FyZ3Z9IGZyb20gXCIuL2FyZ3ZcIjtcbmltcG9ydCB7YXNzZXJ0fSBmcm9tIFwiLi9hc3NlcnRzXCI7XG5cbmNvbnN0IGdlbmVyYXRlR2l0SWdub3JlID0gKGN3ZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZ2l0SWdub3JlRmlsZVBhdGggPSBgJHtjd2R9Ly5naXRsYWItY2ktbG9jYWwvLmdpdGlnbm9yZWA7XG4gICAgY29uc3QgZ2l0SWdub3JlQ29udGVudCA9IFwiKlxcbiEuZ2l0aWdub3JlXFxuXCI7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGdpdElnbm9yZUZpbGVQYXRoKSkge1xuICAgICAgICBmcy5vdXRwdXRGaWxlU3luYyhnaXRJZ25vcmVGaWxlUGF0aCwgZ2l0SWdub3JlQ29udGVudCk7XG4gICAgfVxufTtcblxuY29uc3QgY2xlYW51cFJlc291cmNlcyA9IGFzeW5jKHBhcnNlcjogUGFyc2VyfG51bGwpID0+IHtcbiAgICBpZiAoIXBhcnNlcikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2VzID0gW107XG4gICAgZm9yIChjb25zdCBqb2Igb2YgcGFyc2VyLmpvYnMudmFsdWVzKCkpIHtcbiAgICAgICAgcHJvbWlzZXMucHVzaChqb2IuY2xlYW51cFJlc291cmNlcygpKTtcbiAgICB9XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoYXJnczogYW55LCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcyk6IFByb21pc2U8UmVhZG9ubHlNYXA8c3RyaW5nLCBKb2I+PiB7XG4gICAgY29uc3QgYXJndiA9IG5ldyBBcmd2KGFyZ3MpO1xuICAgIGNvbnN0IGN3ZCA9IGFyZ3YuY3dkO1xuICAgIGNvbnN0IGZpbGUgPSBhcmd2LmZpbGU7XG4gICAgbGV0IHBhcnNlcjogUGFyc2VyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm9jZXNzLm9uKFwiZXhpdFwiLCAoKSA9PiB7XG4gICAgICAgIGlmIChwYXJzZXIpIGNsZWFudXBSZXNvdXJjZXMocGFyc2VyKS50aGVuKCkuY2F0Y2goKTtcbiAgICB9KTtcblxuICAgIHByb2Nlc3Mub24oXCJ1bmhhbmRsZWRSZWplY3Rpb25cIiwgYXN5bmMgKGUpID0+IHtcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFeGl0RXJyb3IpIHtcbiAgICAgICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGNoYWxrYHtyZWQgJHtlLm1lc3NhZ2UudHJpbSgpfX1cXG5gKTtcbiAgICAgICAgfSBlbHNlIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGNoYWxrYHtyZWQgJHtlLnN0YWNrPy50cmltKCkgPz8gZS5tZXNzYWdlLnRyaW0oKX19XFxuYCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZSkge1xuICAgICAgICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoY2hhbGtge3JlZCAke2UudG9TdHJpbmcoKS50cmltKCl9fVxcbmApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJzZXIpIGF3YWl0IGNsZWFudXBSZXNvdXJjZXMocGFyc2VyKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH0pO1xuXG4gICAgcHJvY2Vzcy5vbihcIlNJR0lOVFwiLCBhc3luYyAoXzogc3RyaW5nLCBjb2RlOiBudW1iZXIpID0+IHtcbiAgICAgICAgYXdhaXQgY2xlYW51cFJlc291cmNlcyhwYXJzZXIpO1xuICAgICAgICBwcm9jZXNzLmV4aXQoY29kZSk7XG4gICAgfSk7XG5cbiAgICBpZiAoYXJndi5jb21wbGV0aW9uKSB7XG4gICAgICAgIHlhcmdzLnNob3dDb21wbGV0aW9uU2NyaXB0KCk7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgSm9iPigpO1xuICAgIH1cblxuICAgIGFzc2VydChmcy5leGlzdHNTeW5jKGAke2N3ZH0vJHtmaWxlfWApLCBgJHtjd2R9LyR7ZmlsZX0gY291bGQgbm90IGJlIGZvdW5kYCk7XG5cbiAgICBpZiAoYXJndi5mZXRjaEluY2x1ZGVzKSB7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgd3JpdGVTdHJlYW1zLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBKb2I+KCk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3YucHJldmlldykge1xuICAgICAgICBjb25zdCBwaXBlbGluZUlpZCA9IGF3YWl0IHN0YXRlLmdldFBpcGVsaW5lSWlkKGN3ZCk7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgd3JpdGVTdHJlYW1zLCBwaXBlbGluZUlpZCk7XG4gICAgICAgIGNvbnN0IGdpdGxhYkRhdGEgPSBwYXJzZXIuZ2l0bGFiRGF0YTtcbiAgICAgICAgZm9yIChjb25zdCBqb2JOYW1lIG9mIE9iamVjdC5rZXlzKGdpdGxhYkRhdGEpKSB7XG4gICAgICAgICAgICBpZiAoam9iTmFtZSA9PT0gXCJzdGFnZXNcIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEpvYi5pbGxlZ2FsSm9iTmFtZXMuaW5jbHVkZXMoam9iTmFtZSkgfHwgam9iTmFtZS5zdGFydHNXaXRoKFwiLlwiKSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBnaXRsYWJEYXRhW2pvYk5hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoYC0tLVxcbiR7eWFtbC5kdW1wKGdpdGxhYkRhdGEsIHtsaW5lV2lkdGg6IDE2MH0pfWApO1xuICAgIH0gZWxzZSBpZiAoYXJndi5saXN0IHx8IGFyZ3YubGlzdEFsbCkge1xuICAgICAgICBjb25zdCBwaXBlbGluZUlpZCA9IGF3YWl0IHN0YXRlLmdldFBpcGVsaW5lSWlkKGN3ZCk7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgd3JpdGVTdHJlYW1zLCBwaXBlbGluZUlpZCk7XG4gICAgICAgIENvbW1hbmRlci5ydW5MaXN0KHBhcnNlciwgd3JpdGVTdHJlYW1zLCBhcmd2Lmxpc3RBbGwpO1xuICAgIH0gZWxzZSBpZiAoYXJndi5saXN0SnNvbikge1xuICAgICAgICBjb25zdCBwaXBlbGluZUlpZCA9IGF3YWl0IHN0YXRlLmdldFBpcGVsaW5lSWlkKGN3ZCk7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgd3JpdGVTdHJlYW1zLCBwaXBlbGluZUlpZCk7XG4gICAgICAgIENvbW1hbmRlci5ydW5Kc29uKHBhcnNlciwgd3JpdGVTdHJlYW1zKTtcbiAgICB9IGVsc2UgaWYgKGFyZ3Yuam9iLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZ2VuZXJhdGVHaXRJZ25vcmUoY3dkKTtcbiAgICAgICAgY29uc3QgdGltZSA9IHByb2Nlc3MuaHJ0aW1lKCk7XG4gICAgICAgIGlmIChhcmd2Lm5lZWRzIHx8IGFyZ3Yub25seU5lZWRzKSB7XG4gICAgICAgICAgICBhd2FpdCBmcy5yZW1vdmUoYCR7Y3dkfS8uZ2l0bGFiLWNpLWxvY2FsL2FydGlmYWN0c2ApO1xuICAgICAgICAgICAgYXdhaXQgc3RhdGUuaW5jcmVtZW50UGlwZWxpbmVJaWQoY3dkKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBwaXBlbGluZUlpZCA9IGF3YWl0IHN0YXRlLmdldFBpcGVsaW5lSWlkKGN3ZCk7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgd3JpdGVTdHJlYW1zLCBwaXBlbGluZUlpZCk7XG4gICAgICAgIGF3YWl0IFV0aWxzLnJzeW5jVHJhY2tlZEZpbGVzKGN3ZCwgXCIuZG9ja2VyXCIpO1xuICAgICAgICBhd2FpdCBDb21tYW5kZXIucnVuSm9icyhhcmd2LCBwYXJzZXIsIHdyaXRlU3RyZWFtcyk7XG4gICAgICAgIGlmIChhcmd2Lm5lZWRzIHx8IGFyZ3Yub25seU5lZWRzKSB7XG4gICAgICAgICAgICB3cml0ZVN0cmVhbXMuc3RkZXJyKGNoYWxrYHtncmV5IHBpcGVsaW5lIGZpbmlzaGVkfSBpbiB7Z3JleSAke3ByZXR0eUhydGltZShwcm9jZXNzLmhydGltZSh0aW1lKSl9fVxcbmApO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZ2VuZXJhdGVHaXRJZ25vcmUoY3dkKTtcbiAgICAgICAgY29uc3QgdGltZSA9IHByb2Nlc3MuaHJ0aW1lKCk7XG4gICAgICAgIGF3YWl0IGZzLnJlbW92ZShgJHtjd2R9Ly5naXRsYWItY2ktbG9jYWwvYXJ0aWZhY3RzYCk7XG4gICAgICAgIGF3YWl0IHN0YXRlLmluY3JlbWVudFBpcGVsaW5lSWlkKGN3ZCk7XG4gICAgICAgIGNvbnN0IHBpcGVsaW5lSWlkID0gYXdhaXQgc3RhdGUuZ2V0UGlwZWxpbmVJaWQoY3dkKTtcbiAgICAgICAgcGFyc2VyID0gYXdhaXQgUGFyc2VyLmNyZWF0ZShhcmd2LCB3cml0ZVN0cmVhbXMsIHBpcGVsaW5lSWlkKTtcbiAgICAgICAgYXdhaXQgVXRpbHMucnN5bmNUcmFja2VkRmlsZXMoY3dkLCBcIi5kb2NrZXJcIik7XG4gICAgICAgIGF3YWl0IENvbW1hbmRlci5ydW5QaXBlbGluZShhcmd2LCBwYXJzZXIsIHdyaXRlU3RyZWFtcyk7XG4gICAgICAgIHdyaXRlU3RyZWFtcy5zdGRlcnIoY2hhbGtge2dyZXkgcGlwZWxpbmUgZmluaXNoZWR9IGluIHtncmV5ICR7cHJldHR5SHJ0aW1lKHByb2Nlc3MuaHJ0aW1lKHRpbWUpKX19XFxuYCk7XG4gICAgfVxuICAgIHdyaXRlU3RyZWFtcy5mbHVzaCgpO1xuXG4gICAgYXdhaXQgY2xlYW51cFJlc291cmNlcyhwYXJzZXIpO1xuICAgIHJldHVybiBwYXJzZXIuam9icztcbn1cblxuIl19
|
package/src/index.js
CHANGED
|
@@ -2,7 +2,11 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
4
|
if (k2 === undefined) k2 = k;
|
|
5
|
-
Object.
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
6
10
|
}) : (function(o, m, k, k2) {
|
|
7
11
|
if (k2 === undefined) k2 = k;
|
|
8
12
|
o[k2] = m[k];
|
|
@@ -35,11 +39,12 @@ const process_write_streams_1 = require("./process-write-streams");
|
|
|
35
39
|
const handler_1 = require("./handler");
|
|
36
40
|
const job_executor_1 = require("./job-executor");
|
|
37
41
|
const mock_write_streams_1 = require("./mock-write-streams");
|
|
42
|
+
const argv_1 = require("./argv");
|
|
38
43
|
(() => {
|
|
39
44
|
const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "../package.json"), "utf8"));
|
|
40
45
|
(0, yargs_1.default)(process.argv.slice(2))
|
|
41
|
-
.version(packageJson["version"])
|
|
42
46
|
.showHelpOnFail(false)
|
|
47
|
+
.version(packageJson["version"])
|
|
43
48
|
.wrap(yargs_1.default.terminalWidth())
|
|
44
49
|
.command({
|
|
45
50
|
handler: async (argv) => {
|
|
@@ -74,17 +79,22 @@ const mock_write_streams_1 = require("./mock-write-streams");
|
|
|
74
79
|
requiresArg: true,
|
|
75
80
|
})
|
|
76
81
|
.option("list", {
|
|
77
|
-
type: "
|
|
82
|
+
type: "boolean",
|
|
78
83
|
description: "List jobs and job information, when:never excluded",
|
|
79
84
|
requiresArg: false,
|
|
80
85
|
})
|
|
81
86
|
.option("list-all", {
|
|
82
|
-
type: "
|
|
87
|
+
type: "boolean",
|
|
83
88
|
description: "List jobs and job information, when:never included",
|
|
84
89
|
requiresArg: false,
|
|
90
|
+
})
|
|
91
|
+
.option("list-json", {
|
|
92
|
+
type: "boolean",
|
|
93
|
+
description: "List jobs and job information in json format, when:never included",
|
|
94
|
+
requiresArg: false,
|
|
85
95
|
})
|
|
86
96
|
.option("preview", {
|
|
87
|
-
type: "
|
|
97
|
+
type: "boolean",
|
|
88
98
|
description: "Print YML with defaults, includes, extends and reference's expanded",
|
|
89
99
|
requiresArg: false,
|
|
90
100
|
})
|
|
@@ -94,19 +104,29 @@ const mock_write_streams_1 = require("./mock-write-streams");
|
|
|
94
104
|
requiresArg: true,
|
|
95
105
|
})
|
|
96
106
|
.option("completion", {
|
|
97
|
-
type: "
|
|
107
|
+
type: "boolean",
|
|
98
108
|
description: "Generate tab completion script",
|
|
99
109
|
requiresArg: false,
|
|
100
110
|
})
|
|
101
111
|
.option("needs", {
|
|
102
112
|
type: "boolean",
|
|
103
|
-
description: "Run needed jobs, when executing
|
|
113
|
+
description: "Run needed jobs, when executing specific jobs",
|
|
114
|
+
requiresArg: false,
|
|
115
|
+
})
|
|
116
|
+
.option("onlyNeeds", {
|
|
117
|
+
type: "boolean",
|
|
118
|
+
description: "Run needed jobs, except the specified jobs themselves",
|
|
104
119
|
requiresArg: false,
|
|
105
120
|
})
|
|
106
121
|
.option("variable", {
|
|
107
122
|
type: "array",
|
|
108
123
|
description: "Add variable to all executed jobs (--variable HELLO=world)",
|
|
109
124
|
requiresArg: false,
|
|
125
|
+
})
|
|
126
|
+
.option("remote-variables", {
|
|
127
|
+
type: "string",
|
|
128
|
+
description: "Fetch variables file from remote location",
|
|
129
|
+
requiresArg: false,
|
|
110
130
|
})
|
|
111
131
|
.option("file", {
|
|
112
132
|
type: "string",
|
|
@@ -150,15 +170,9 @@ const mock_write_streams_1 = require("./mock-write-streams");
|
|
|
150
170
|
})
|
|
151
171
|
.completion("completion", false, async (_, yargsArgv) => {
|
|
152
172
|
try {
|
|
153
|
-
const
|
|
154
|
-
const pipelineIid = await state.getPipelineIid(cwd);
|
|
155
|
-
const parser = await parser_1.Parser.create(
|
|
156
|
-
cwd,
|
|
157
|
-
writeStreams: new mock_write_streams_1.MockWriteStreams(),
|
|
158
|
-
pipelineIid,
|
|
159
|
-
file: yargsArgv.file,
|
|
160
|
-
variables: {},
|
|
161
|
-
});
|
|
173
|
+
const argv = new argv_1.Argv({ ...yargsArgv, autoCompleting: true });
|
|
174
|
+
const pipelineIid = await state.getPipelineIid(argv.cwd);
|
|
175
|
+
const parser = await parser_1.Parser.create(argv, new mock_write_streams_1.MockWriteStreams(), pipelineIid);
|
|
162
176
|
return [...parser.jobs.values()].filter((j) => j.when != "never").map((j) => j.name);
|
|
163
177
|
}
|
|
164
178
|
catch (e) {
|
|
@@ -167,4 +181,4 @@ const mock_write_streams_1 = require("./mock-write-streams");
|
|
|
167
181
|
})
|
|
168
182
|
.parse();
|
|
169
183
|
})();
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsdUNBQXFDO0FBQ3JDLGtEQUEwQjtBQUMxQiw2Q0FBK0I7QUFDL0IsMkNBQTZCO0FBQzdCLGtEQUEwQjtBQUMxQixxQ0FBZ0M7QUFDaEMsK0NBQWlDO0FBQ2pDLG1EQUE2QztBQUM3QyxtRUFBNEQ7QUFDNUQsdUNBQWtDO0FBQ2xDLGlEQUEyQztBQUMzQyw2REFBc0Q7QUFFdEQsQ0FBQyxHQUFHLEVBQUU7SUFDRixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLElBQUEsZUFBSyxFQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZCLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDL0IsY0FBYyxDQUFDLEtBQUssQ0FBQztTQUNyQixJQUFJLENBQUMsZUFBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzNCLE9BQU8sQ0FBQztRQUNMLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDcEIsSUFBSTtnQkFDQSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsaUJBQU8sRUFBQyxJQUFJLEVBQUUsSUFBSSwyQ0FBbUIsRUFBRSxDQUFDLENBQUM7Z0JBQzVELE1BQU0sVUFBVSxHQUFHLDBCQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUMvQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQy9DO1lBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLFlBQVksc0JBQVMsRUFBRTtvQkFDeEIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBQSxlQUFLLEVBQUEsUUFBUSxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQztvQkFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDbkI7Z0JBQ0QsTUFBTSxDQUFDLENBQUM7YUFDWDtRQUNMLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxDQUFNLEVBQUUsRUFBRTtZQUNoQixPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO2dCQUN2QixRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxJQUFJLEVBQUUsT0FBTzthQUNoQixDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsT0FBTyxFQUFFLFlBQVk7UUFDckIsUUFBUSxFQUFFLG1DQUFtQztLQUNoRCxDQUFDO1NBQ0QsS0FBSyxDQUFDLHFFQUFxRSxDQUFDO1NBQzVFLGFBQWEsRUFBRTtTQUNmLEdBQUcsQ0FBQyxLQUFLLENBQUM7U0FDVixNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ2QsSUFBSSxFQUFFLE9BQU87UUFDYixXQUFXLEVBQUUsa0RBQWtEO1FBQy9ELFdBQVcsRUFBRSxJQUFJO0tBQ3BCLENBQUM7U0FDRCxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ1osSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXLEVBQUUsb0RBQW9EO1FBQ2pFLFdBQVcsRUFBRSxLQUFLO0tBQ3JCLENBQUM7U0FDRCxNQUFNLENBQUMsVUFBVSxFQUFFO1FBQ2hCLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLG9EQUFvRDtRQUNqRSxXQUFXLEVBQUUsS0FBSztLQUNyQixDQUFDO1NBQ0QsTUFBTSxDQUFDLFNBQVMsRUFBRTtRQUNmLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLHFFQUFxRTtRQUNsRixXQUFXLEVBQUUsS0FBSztLQUNyQixDQUFDO1NBQ0QsTUFBTSxDQUFDLEtBQUssRUFBRTtRQUNYLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLHFDQUFxQztRQUNsRCxXQUFXLEVBQUUsSUFBSTtLQUNwQixDQUFDO1NBQ0QsTUFBTSxDQUFDLFlBQVksRUFBRTtRQUNsQixJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSxnQ0FBZ0M7UUFDN0MsV0FBVyxFQUFFLEtBQUs7S0FDckIsQ0FBQztTQUNELE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDYixJQUFJLEVBQUUsU0FBUztRQUNmLFdBQVcsRUFBRSw4Q0FBOEM7UUFDM0QsV0FBVyxFQUFFLEtBQUs7S0FDckIsQ0FBQztTQUNELE1BQU0sQ0FBQyxVQUFVLEVBQUU7UUFDaEIsSUFBSSxFQUFFLE9BQU87UUFDYixXQUFXLEVBQUUsNERBQTREO1FBQ3pFLFdBQVcsRUFBRSxLQUFLO0tBQ3JCLENBQUM7U0FDRCxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ1osSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXLEVBQUUsNkZBQTZGO1FBQzFHLFdBQVcsRUFBRSxLQUFLO0tBQ3JCLENBQUM7U0FDRCxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ1osSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXLEVBQUUscUVBQXFFO1FBQ2xGLFdBQVcsRUFBRSxLQUFLO0tBQ3JCLENBQUM7U0FDRCxNQUFNLENBQUMsaUJBQWlCLEVBQUU7UUFDdkIsSUFBSSxFQUFFLFNBQVM7UUFDZixXQUFXLEVBQUUsbURBQW1EO1FBQ2hFLFdBQVcsRUFBRSxLQUFLO0tBQ3JCLENBQUM7U0FDRCxNQUFNLENBQUMsYUFBYSxFQUFFO1FBQ25CLElBQUksRUFBRSxTQUFTO1FBQ2YsV0FBVyxFQUFFLG1DQUFtQztRQUNoRCxXQUFXLEVBQUUsS0FBSztLQUNyQixDQUFDO1NBQ0QsTUFBTSxDQUFDLFlBQVksRUFBRTtRQUNsQixJQUFJLEVBQUUsU0FBUztRQUNmLFdBQVcsRUFBRSx3Q0FBd0M7UUFDckQsV0FBVyxFQUFFLEtBQUs7S0FDckIsQ0FBQztTQUNELE1BQU0sQ0FBQyxRQUFRLEVBQUU7UUFDZCxJQUFJLEVBQUUsT0FBTztRQUNiLFdBQVcsRUFBRSxnQ0FBZ0M7UUFDN0MsV0FBVyxFQUFFLEtBQUs7S0FDckIsQ0FBQztTQUNELE1BQU0sQ0FBQyxZQUFZLEVBQUU7UUFDbEIsSUFBSSxFQUFFLE9BQU87UUFDYixXQUFXLEVBQUUsK0JBQStCO1FBQzVDLFdBQVcsRUFBRSxLQUFLO0tBQ3JCLENBQUM7U0FDRCxNQUFNLENBQUMsZ0JBQWdCLEVBQUU7UUFDdEIsSUFBSSxFQUFFLFNBQVM7UUFDZixXQUFXLEVBQUUsMkNBQTJDO1FBQ3hELFdBQVcsRUFBRSxLQUFLO0tBQ3JCLENBQUM7U0FDRCxVQUFVLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLFNBQVMsRUFBRSxFQUFFO1FBQ3BELElBQUk7WUFDQSxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMzQyxNQUFNLFdBQVcsR0FBRyxNQUFNLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxlQUFNLENBQUMsTUFBTSxDQUFDO2dCQUMvQixHQUFHO2dCQUNILFlBQVksRUFBRSxJQUFJLHFDQUFnQixFQUFFO2dCQUNwQyxXQUFXO2dCQUNYLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSTtnQkFDcEIsU0FBUyxFQUFFLEVBQUU7YUFDaEIsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN4RjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1IsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDN0I7SUFFTCxDQUFDLENBQUM7U0FDRCxLQUFLLEVBQUUsQ0FBQztBQUNqQixDQUFDLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0IFwic291cmNlLW1hcC1zdXBwb3J0L3JlZ2lzdGVyXCI7XG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB5YXJncyBmcm9tIFwieWFyZ3NcIjtcbmltcG9ydCB7UGFyc2VyfSBmcm9tIFwiLi9wYXJzZXJcIjtcbmltcG9ydCAqIGFzIHN0YXRlIGZyb20gXCIuL3N0YXRlXCI7XG5pbXBvcnQge0V4aXRFcnJvcn0gZnJvbSBcIi4vdHlwZXMvZXhpdC1lcnJvclwiO1xuaW1wb3J0IHtQcm9jZXNzV3JpdGVTdHJlYW1zfSBmcm9tIFwiLi9wcm9jZXNzLXdyaXRlLXN0cmVhbXNcIjtcbmltcG9ydCB7aGFuZGxlcn0gZnJvbSBcIi4vaGFuZGxlclwiO1xuaW1wb3J0IHtKb2JFeGVjdXRvcn0gZnJvbSBcIi4vam9iLWV4ZWN1dG9yXCI7XG5pbXBvcnQge01vY2tXcml0ZVN0cmVhbXN9IGZyb20gXCIuL21vY2std3JpdGUtc3RyZWFtc1wiO1xuXG4oKCkgPT4ge1xuICAgIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi9wYWNrYWdlLmpzb25cIiksIFwidXRmOFwiKSk7XG4gICAgeWFyZ3MocHJvY2Vzcy5hcmd2LnNsaWNlKDIpKVxuICAgICAgICAudmVyc2lvbihwYWNrYWdlSnNvbltcInZlcnNpb25cIl0pXG4gICAgICAgIC5zaG93SGVscE9uRmFpbChmYWxzZSlcbiAgICAgICAgLndyYXAoeWFyZ3MudGVybWluYWxXaWR0aCgpKVxuICAgICAgICAuY29tbWFuZCh7XG4gICAgICAgICAgICBoYW5kbGVyOiBhc3luYyAoYXJndikgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGpvYnMgPSBhd2FpdCBoYW5kbGVyKGFyZ3YsIG5ldyBQcm9jZXNzV3JpdGVTdHJlYW1zKCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmYWlsZWRKb2JzID0gSm9iRXhlY3V0b3IuZ2V0RmFpbGVkKGpvYnMpO1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXQoZmFpbGVkSm9icy5sZW5ndGggPiAwID8gMSA6IDApO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFeGl0RXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGNoYWxrYHtyZWQgJHtlLm1lc3NhZ2V9fVxcbmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJ1aWxkZXI6ICh5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geS5wb3NpdGlvbmFsKFwiam9iXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmU6IFwiSm9ibmFtZSdzIHRvIGV4ZWN1dGVcIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbW1hbmQ6IFwiJDAgW2pvYi4uXVwiLFxuICAgICAgICAgICAgZGVzY3JpYmU6IFwiUnVucyB0aGUgZW50aXJlIHBpcGVsaW5lIG9yIGpvYidzXCIsXG4gICAgICAgIH0pXG4gICAgICAgIC51c2FnZShcIkZpbmQgbW9yZSBpbmZvcm1hdGlvbiBhdCBodHRwczovL2dpdGh1Yi5jb20vZmlyZWNvdy9naXRsYWItY2ktbG9jYWxcIilcbiAgICAgICAgLnN0cmljdE9wdGlvbnMoKVxuICAgICAgICAuZW52KFwiR0NMXCIpXG4gICAgICAgIC5vcHRpb24oXCJtYW51YWxcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiT25lIG9yIG1vcmUgbWFudWFsIGpvYnMgdG8gcnVuIGR1cmluZyBhIHBpcGVsaW5lXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImxpc3RcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkxpc3Qgam9icyBhbmQgam9iIGluZm9ybWF0aW9uLCB3aGVuOm5ldmVyIGV4Y2x1ZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJsaXN0LWFsbFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiTGlzdCBqb2JzIGFuZCBqb2IgaW5mb3JtYXRpb24sIHdoZW46bmV2ZXIgaW5jbHVkZWRcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInByZXZpZXdcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlByaW50IFlNTCB3aXRoIGRlZmF1bHRzLCBpbmNsdWRlcywgZXh0ZW5kcyBhbmQgcmVmZXJlbmNlJ3MgZXhwYW5kZWRcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImN3ZFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiUGF0aCB0byBhIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnlcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwiY29tcGxldGlvblwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiR2VuZXJhdGUgdGFiIGNvbXBsZXRpb24gc2NyaXB0XCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJuZWVkc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlJ1biBuZWVkZWQgam9icywgd2hlbiBleGVjdXRpbmcgYSBzaW5nbGUgam9iXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJ2YXJpYWJsZVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBZGQgdmFyaWFibGUgdG8gYWxsIGV4ZWN1dGVkIGpvYnMgKC0tdmFyaWFibGUgSEVMTE89d29ybGQpXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJmaWxlXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJTcGVjaWZ5IGN1c3RvbSBsb2NhdGlvbiBvZiB0aGUgLmdpdGxhYi1jaS55bWwuIFJlbGF0aXZlIHRvIGN3ZCwgZWcuIChnaXRsYWIvLmdpdGxhYi1jaS55bWwpXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJob21lXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJTcGVjaWZ5IGN1c3RvbSBIT01FIGxvY2F0aW9uICgkSE9NRS8uZ2l0bGFiLWNpLWxvY2FsL3ZhcmlhYmxlcy55bWwpXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJzaGVsbC1pc29sYXRpb25cIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJFbmFibGUgYXJ0aWZhY3QgaXNvbGF0aW9uIGZvciBzaGVsbC1leGVjdXRvciBqb2JzXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJtb3VudC1jYWNoZVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkVuYWJsZSBkb2NrZXIgbW91bnQgYmFzZWQgY2FjaGluZ1wiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwicHJpdmlsZWdlZFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlNldCBkb2NrZXIgZXhlY3V0b3IgdG8gcHJpdmlsZWdlZCBtb2RlXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJ2b2x1bWVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWRkIHZvbHVtZXMgdG8gZG9ja2VyIGV4ZWN1dG9yXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJleHRyYS1ob3N0XCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkFkZCBleHRyYSBkb2NrZXIgaG9zdCBlbnRyaWVzXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJmZXRjaC1pbmNsdWRlc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkZldGNoIGFsbCBleHRlcm5hbCBpbmNsdWRlcyBvbmUgbW9yZSB0aW1lXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5jb21wbGV0aW9uKFwiY29tcGxldGlvblwiLCBmYWxzZSwgYXN5bmMgKF8sIHlhcmdzQXJndikgPT4ge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjd2QgPSB5YXJnc0FyZ3YuY3dkIHx8IHByb2Nlc3MuY3dkKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGlwZWxpbmVJaWQgPSBhd2FpdCBzdGF0ZS5nZXRQaXBlbGluZUlpZChjd2QpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoe1xuICAgICAgICAgICAgICAgICAgICBjd2QsXG4gICAgICAgICAgICAgICAgICAgIHdyaXRlU3RyZWFtczogbmV3IE1vY2tXcml0ZVN0cmVhbXMoKSxcbiAgICAgICAgICAgICAgICAgICAgcGlwZWxpbmVJaWQsXG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IHlhcmdzQXJndi5maWxlLFxuICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZXM6IHt9LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybiBbLi4ucGFyc2VyLmpvYnMudmFsdWVzKCldLmZpbHRlcigoaikgPT4gai53aGVuICE9IFwibmV2ZXJcIikubWFwKChqKSA9PiBqLm5hbWUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXCJQYXJzZXItRmFpbGVkIVwiXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KVxuICAgICAgICAucGFyc2UoKTtcbn0pKCk7XG5cbiJdfQ==
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHVDQUFxQztBQUNyQyxrREFBMEI7QUFDMUIsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUM3QixrREFBMEI7QUFDMUIscUNBQWdDO0FBQ2hDLCtDQUFpQztBQUNqQyxtREFBNkM7QUFDN0MsbUVBQTREO0FBQzVELHVDQUFrQztBQUNsQyxpREFBMkM7QUFDM0MsNkRBQXNEO0FBQ3RELGlDQUE0QjtBQUU1QixDQUFDLEdBQUcsRUFBRTtJQUNGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDakcsSUFBQSxlQUFLLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkIsY0FBYyxDQUFDLEtBQUssQ0FBQztTQUNyQixPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQy9CLElBQUksQ0FBQyxlQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDM0IsT0FBTyxDQUFDO1FBQ0wsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNwQixJQUFJO2dCQUNBLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxpQkFBTyxFQUFDLElBQUksRUFBRSxJQUFJLDJDQUFtQixFQUFFLENBQUMsQ0FBQztnQkFDNUQsTUFBTSxVQUFVLEdBQUcsMEJBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9DLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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QUFJLEVBQUUsSUFBSSxxQ0FBZ0IsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzlFLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDeEY7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1NBQzdCO0lBRUwsQ0FBQyxDQUFDO1NBQ0QsS0FBSyxFQUFFLENBQUM7QUFDakIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCBcInNvdXJjZS1tYXAtc3VwcG9ydC9yZWdpc3RlclwiO1xuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeWFyZ3MgZnJvbSBcInlhcmdzXCI7XG5pbXBvcnQge1BhcnNlcn0gZnJvbSBcIi4vcGFyc2VyXCI7XG5pbXBvcnQgKiBhcyBzdGF0ZSBmcm9tIFwiLi9zdGF0ZVwiO1xuaW1wb3J0IHtFeGl0RXJyb3J9IGZyb20gXCIuL3R5cGVzL2V4aXQtZXJyb3JcIjtcbmltcG9ydCB7UHJvY2Vzc1dyaXRlU3RyZWFtc30gZnJvbSBcIi4vcHJvY2Vzcy13cml0ZS1zdHJlYW1zXCI7XG5pbXBvcnQge2hhbmRsZXJ9IGZyb20gXCIuL2hhbmRsZXJcIjtcbmltcG9ydCB7Sm9iRXhlY3V0b3J9IGZyb20gXCIuL2pvYi1leGVjdXRvclwiO1xuaW1wb3J0IHtNb2NrV3JpdGVTdHJlYW1zfSBmcm9tIFwiLi9tb2NrLXdyaXRlLXN0cmVhbXNcIjtcbmltcG9ydCB7QXJndn0gZnJvbSBcIi4vYXJndlwiO1xuXG4oKCkgPT4ge1xuICAgIGNvbnN0IHBhY2thZ2VKc29uID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMocGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi9wYWNrYWdlLmpzb25cIiksIFwidXRmOFwiKSk7XG4gICAgeWFyZ3MocHJvY2Vzcy5hcmd2LnNsaWNlKDIpKVxuICAgICAgICAuc2hvd0hlbHBPbkZhaWwoZmFsc2UpXG4gICAgICAgIC52ZXJzaW9uKHBhY2thZ2VKc29uW1widmVyc2lvblwiXSlcbiAgICAgICAgLndyYXAoeWFyZ3MudGVybWluYWxXaWR0aCgpKVxuICAgICAgICAuY29tbWFuZCh7XG4gICAgICAgICAgICBoYW5kbGVyOiBhc3luYyAoYXJndikgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGpvYnMgPSBhd2FpdCBoYW5kbGVyKGFyZ3YsIG5ldyBQcm9jZXNzV3JpdGVTdHJlYW1zKCkpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmYWlsZWRKb2JzID0gSm9iRXhlY3V0b3IuZ2V0RmFpbGVkKGpvYnMpO1xuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXQoZmFpbGVkSm9icy5sZW5ndGggPiAwID8gMSA6IDApO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFeGl0RXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGNoYWxrYHtyZWQgJHtlLm1lc3NhZ2V9fVxcbmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJ1aWxkZXI6ICh5OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4geS5wb3NpdGlvbmFsKFwiam9iXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgZGVzY3JpYmU6IFwiSm9ibmFtZSdzIHRvIGV4ZWN1dGVcIixcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbW1hbmQ6IFwiJDAgW2pvYi4uXVwiLFxuICAgICAgICAgICAgZGVzY3JpYmU6IFwiUnVucyB0aGUgZW50aXJlIHBpcGVsaW5lIG9yIGpvYidzXCIsXG4gICAgICAgIH0pXG4gICAgICAgIC51c2FnZShcIkZpbmQgbW9yZSBpbmZvcm1hdGlvbiBhdCBodHRwczovL2dpdGh1Yi5jb20vZmlyZWNvdy9naXRsYWItY2ktbG9jYWxcIilcbiAgICAgICAgLnN0cmljdE9wdGlvbnMoKVxuICAgICAgICAuZW52KFwiR0NMXCIpXG4gICAgICAgIC5vcHRpb24oXCJtYW51YWxcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiT25lIG9yIG1vcmUgbWFudWFsIGpvYnMgdG8gcnVuIGR1cmluZyBhIHBpcGVsaW5lXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImxpc3RcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJMaXN0IGpvYnMgYW5kIGpvYiBpbmZvcm1hdGlvbiwgd2hlbjpuZXZlciBleGNsdWRlZFwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwibGlzdC1hbGxcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJMaXN0IGpvYnMgYW5kIGpvYiBpbmZvcm1hdGlvbiwgd2hlbjpuZXZlciBpbmNsdWRlZFwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwibGlzdC1qc29uXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiTGlzdCBqb2JzIGFuZCBqb2IgaW5mb3JtYXRpb24gaW4ganNvbiBmb3JtYXQsIHdoZW46bmV2ZXIgaW5jbHVkZWRcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInByZXZpZXdcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJQcmludCBZTUwgd2l0aCBkZWZhdWx0cywgaW5jbHVkZXMsIGV4dGVuZHMgYW5kIHJlZmVyZW5jZSdzIGV4cGFuZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJjd2RcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlBhdGggdG8gYSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImNvbXBsZXRpb25cIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJHZW5lcmF0ZSB0YWIgY29tcGxldGlvbiBzY3JpcHRcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcIm5lZWRzXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiUnVuIG5lZWRlZCBqb2JzLCB3aGVuIGV4ZWN1dGluZyBzcGVjaWZpYyBqb2JzXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJvbmx5TmVlZHNcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJSdW4gbmVlZGVkIGpvYnMsIGV4Y2VwdCB0aGUgc3BlY2lmaWVkIGpvYnMgdGhlbXNlbHZlc1wiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwidmFyaWFibGVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWRkIHZhcmlhYmxlIHRvIGFsbCBleGVjdXRlZCBqb2JzICgtLXZhcmlhYmxlIEhFTExPPXdvcmxkKVwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwicmVtb3RlLXZhcmlhYmxlc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmV0Y2ggdmFyaWFibGVzIGZpbGUgZnJvbSByZW1vdGUgbG9jYXRpb25cIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImZpbGVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlNwZWNpZnkgY3VzdG9tIGxvY2F0aW9uIG9mIHRoZSAuZ2l0bGFiLWNpLnltbC4gUmVsYXRpdmUgdG8gY3dkLCBlZy4gKGdpdGxhYi8uZ2l0bGFiLWNpLnltbClcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImhvbWVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlNwZWNpZnkgY3VzdG9tIEhPTUUgbG9jYXRpb24gKCRIT01FLy5naXRsYWItY2ktbG9jYWwvdmFyaWFibGVzLnltbClcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInNoZWxsLWlzb2xhdGlvblwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkVuYWJsZSBhcnRpZmFjdCBpc29sYXRpb24gZm9yIHNoZWxsLWV4ZWN1dG9yIGpvYnNcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcIm1vdW50LWNhY2hlXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRW5hYmxlIGRvY2tlciBtb3VudCBiYXNlZCBjYWNoaW5nXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJwcml2aWxlZ2VkXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiU2V0IGRvY2tlciBleGVjdXRvciB0byBwcml2aWxlZ2VkIG1vZGVcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInZvbHVtZVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBZGQgdm9sdW1lcyB0byBkb2NrZXIgZXhlY3V0b3JcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImV4dHJhLWhvc3RcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWRkIGV4dHJhIGRvY2tlciBob3N0IGVudHJpZXNcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImZldGNoLWluY2x1ZGVzXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmV0Y2ggYWxsIGV4dGVybmFsIGluY2x1ZGVzIG9uZSBtb3JlIHRpbWVcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLmNvbXBsZXRpb24oXCJjb21wbGV0aW9uXCIsIGZhbHNlLCBhc3luYyAoXywgeWFyZ3NBcmd2KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3YgPSBuZXcgQXJndih7Li4ueWFyZ3NBcmd2LCBhdXRvQ29tcGxldGluZzogdHJ1ZX0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBpcGVsaW5lSWlkID0gYXdhaXQgc3RhdGUuZ2V0UGlwZWxpbmVJaWQoYXJndi5jd2QpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgbmV3IE1vY2tXcml0ZVN0cmVhbXMoKSwgcGlwZWxpbmVJaWQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbLi4ucGFyc2VyLmpvYnMudmFsdWVzKCldLmZpbHRlcigoaikgPT4gai53aGVuICE9IFwibmV2ZXJcIikubWFwKChqKSA9PiBqLm5hbWUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXCJQYXJzZXItRmFpbGVkIVwiXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KVxuICAgICAgICAucGFyc2UoKTtcbn0pKCk7XG5cbiJdfQ==
|