gitlab-ci-local 4.29.0 → 4.30.1
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 +19 -5
- package/package.json +12 -10
- package/src/argv.js +7 -1
- package/src/handler.js +23 -19
- package/src/index.js +8 -3
- package/src/job.js +88 -48
- package/src/parser.js +2 -2
- package/src/types/job-options.js +1 -1
- package/src/utils.js +12 -51
- package/src/variables-from-files.js +90 -48
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@ Get rid of all those dev specific shell scripts and make files.
|
|
|
30
30
|
* [Bash alias](#bash-alias)
|
|
31
31
|
* [Tab completion](#tab-completion)
|
|
32
32
|
* [Quirks](#quirks)
|
|
33
|
-
* [Tracked Files](#tracked-files)
|
|
33
|
+
* [Tracked Files](#tracked-files)
|
|
34
34
|
* [Home Variables](#home-variables)
|
|
35
35
|
* [Project Variables](#project-variables)
|
|
36
36
|
* [Decorators](#decorators)
|
|
@@ -57,7 +57,6 @@ sudo apt-get update
|
|
|
57
57
|
sudo apt-get install gitlab-ci-local
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
|
|
61
60
|
### Macos
|
|
62
61
|
|
|
63
62
|
```bash
|
|
@@ -110,8 +109,6 @@ Untracked and ignored files will not be synced inside isolated jobs, only tracke
|
|
|
110
109
|
|
|
111
110
|
Remember `git add`
|
|
112
111
|
|
|
113
|
-
|
|
114
|
-
|
|
115
112
|
### Home variables
|
|
116
113
|
|
|
117
114
|
Put a file like this in `$HOME/.gitlab-ci-local/variables.yml`
|
|
@@ -133,10 +130,26 @@ group:
|
|
|
133
130
|
global:
|
|
134
131
|
# Will be type File, because value is a file path
|
|
135
132
|
KNOWN_HOSTS: '~/.ssh/known_hosts'
|
|
133
|
+
DEPLOY_ENV_SPECIFIC:
|
|
134
|
+
type: variable # Optional and defaults to variable
|
|
135
|
+
values:
|
|
136
|
+
'*production*': 'Im production only value'
|
|
137
|
+
'staging': 'Im staging only value'
|
|
138
|
+
FILE_CONTENT_IN_VALLUES:
|
|
139
|
+
type: file
|
|
140
|
+
values:
|
|
141
|
+
'*': |
|
|
142
|
+
Im staging only value
|
|
143
|
+
I'm great for certs n' stuff
|
|
136
144
|
```
|
|
137
145
|
|
|
138
146
|
Variables will now appear in your jobs, if project or group matches git remote, global's are always present
|
|
139
147
|
|
|
148
|
+
### Remote file variables
|
|
149
|
+
```shell
|
|
150
|
+
gitlab-ci-local --remote-variables git@gitlab.com:firecow/example.git=gitlab-variables.yml=master
|
|
151
|
+
```
|
|
152
|
+
|
|
140
153
|
### Project variables
|
|
141
154
|
|
|
142
155
|
Put a file like this in `$CWD/.gitlab-ci-local-variables.yml`
|
|
@@ -203,10 +216,11 @@ Prevent artifacts from being copied to source folder
|
|
|
203
216
|
produce:
|
|
204
217
|
stage: build
|
|
205
218
|
script: mkdir -p path/ && touch path/file1
|
|
206
|
-
artifacts: {paths: [path/] }
|
|
219
|
+
artifacts: { paths: [path/] }
|
|
207
220
|
```
|
|
208
221
|
|
|
209
222
|
### Includes
|
|
223
|
+
|
|
210
224
|
Includes from external sources are only fetched once. Use `--fetch-includes` to invoke an external fetching rutine.
|
|
211
225
|
|
|
212
226
|
### Artifacts
|
package/package.json
CHANGED
|
@@ -3,15 +3,16 @@
|
|
|
3
3
|
"description": "Tired of pushing to test your .gitlab-ci.yml?",
|
|
4
4
|
"main": "src/index.js",
|
|
5
5
|
"bin": "src/index.js",
|
|
6
|
-
"version": "4.
|
|
6
|
+
"version": "4.30.1",
|
|
7
7
|
"scripts": {
|
|
8
|
+
"prepublishOnly": "npm run check-all && chmod +x src/index.js",
|
|
8
9
|
"pkg-linux": "pkg src/index.js --public -t node16-linux-x64 -o bin/linux/gitlab-ci-local && chmod +x bin/linux/gitlab-ci-local && gzip -c bin/linux/gitlab-ci-local > bin/linux.gz",
|
|
9
10
|
"pkg-macos": "pkg src/index.js --public -t node16-macos-x64 -o bin/macos/gitlab-ci-local && gzip -c bin/macos/gitlab-ci-local > bin/macos.gz",
|
|
10
11
|
"pkg-win": "pkg src/index.js --public -t node16-win-x64 -o bin/win/gitlab-ci-local && gzip -c bin/win/gitlab-ci-local.exe > bin/win.gz",
|
|
11
12
|
"pkg-all": "npm run pkg-linux && npm run pkg-macos && npm run pkg-win",
|
|
12
13
|
"pkg": "pkg",
|
|
13
14
|
"build": "rm -f src/*.js src/*.d.ts && tsc",
|
|
14
|
-
"check-all": "npm run build && npm run lint && npm run coverage
|
|
15
|
+
"check-all": "npm run build && npm run lint && npm run coverage",
|
|
15
16
|
"audit": "npm audit --parseable",
|
|
16
17
|
"lint": "npx eslint .",
|
|
17
18
|
"test": "jest --testTimeout 30000",
|
|
@@ -19,18 +20,19 @@
|
|
|
19
20
|
"start": "ts-node --log-error src/index.ts --cwd examples/docker-compose-nodejs"
|
|
20
21
|
},
|
|
21
22
|
"dependencies": {
|
|
22
|
-
"axios": "^0.26.
|
|
23
|
+
"axios": "^0.26.1",
|
|
23
24
|
"base64url": "^3.0.1",
|
|
24
25
|
"camelcase": "^6.3.0",
|
|
25
26
|
"chalk": "^4.1.2",
|
|
26
27
|
"checksum": "^1.0.0",
|
|
27
28
|
"deep-extend": "^0.6.0",
|
|
28
29
|
"dotenv": "^16.0.0",
|
|
30
|
+
"execa": "^5.1.1",
|
|
29
31
|
"fs-extra": "^10.0.1",
|
|
30
32
|
"js-yaml": "^4.1.0",
|
|
31
33
|
"pretty-hrtime": "^1.0.3",
|
|
32
34
|
"source-map-support": "^0.5.21",
|
|
33
|
-
"yargs": "^17.
|
|
35
|
+
"yargs": "^17.4.0"
|
|
34
36
|
},
|
|
35
37
|
"devDependencies": {
|
|
36
38
|
"@types/checksum": "0.1.33",
|
|
@@ -41,18 +43,18 @@
|
|
|
41
43
|
"@types/js-yaml": "4.0.5",
|
|
42
44
|
"@types/pretty-hrtime": "1.0.1",
|
|
43
45
|
"@types/source-map-support": "0.5.4",
|
|
44
|
-
"@types/yargs": "17.0.
|
|
45
|
-
"@typescript-eslint/eslint-plugin": "5.
|
|
46
|
-
"@typescript-eslint/parser": "5.
|
|
46
|
+
"@types/yargs": "17.0.10",
|
|
47
|
+
"@typescript-eslint/eslint-plugin": "5.17.0",
|
|
48
|
+
"@typescript-eslint/parser": "5.17.0",
|
|
47
49
|
"axios-mock-adapter": "1.20.0",
|
|
48
50
|
"depcheck": "1.4.3",
|
|
49
|
-
"eslint": "8.
|
|
51
|
+
"eslint": "8.12.0",
|
|
50
52
|
"jest": "27.5.1",
|
|
51
53
|
"jest-when": "3.5.1",
|
|
52
54
|
"pkg": "5.5.2",
|
|
53
|
-
"ts-jest": "27.1.
|
|
55
|
+
"ts-jest": "27.1.4",
|
|
54
56
|
"ts-node": "10.7.0",
|
|
55
|
-
"typescript": "4.6.
|
|
57
|
+
"typescript": "4.6.3"
|
|
56
58
|
},
|
|
57
59
|
"engines": {
|
|
58
60
|
"node": ">=16.10.0"
|
package/src/argv.js
CHANGED
|
@@ -69,6 +69,9 @@ class Argv {
|
|
|
69
69
|
const val = this.map.get("extraHost") ?? [];
|
|
70
70
|
return typeof val == "string" ? val.split(" ") : val;
|
|
71
71
|
}
|
|
72
|
+
get remoteVariables() {
|
|
73
|
+
return this.map.get("remoteVariables");
|
|
74
|
+
}
|
|
72
75
|
get variable() {
|
|
73
76
|
const val = this.map.get("variable");
|
|
74
77
|
const variables = {};
|
|
@@ -88,6 +91,9 @@ class Argv {
|
|
|
88
91
|
get job() {
|
|
89
92
|
return this.map.get("job") ?? [];
|
|
90
93
|
}
|
|
94
|
+
get autoCompleting() {
|
|
95
|
+
return this.map.get("autoCompleting") ?? false;
|
|
96
|
+
}
|
|
91
97
|
get privileged() {
|
|
92
98
|
return this.map.get("privileged") ?? false;
|
|
93
99
|
}
|
|
@@ -117,4 +123,4 @@ class Argv {
|
|
|
117
123
|
}
|
|
118
124
|
}
|
|
119
125
|
exports.Argv = Argv;
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJndi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFyZ3YudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBaUM7QUFDakMsNkNBQStCO0FBQy9CLCtDQUFpQztBQUNqQywwREFBa0M7QUFFbEMsTUFBYSxJQUFJO0lBSWIsWUFBWSxJQUFTO1FBRmIsUUFBRyxHQUFxQixJQUFJLEdBQUcsRUFBZSxDQUFDO1FBR25ELEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM1QjtRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7UUFDckIsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyx1QkFBdUIsQ0FBQyxFQUFFO1lBQzlDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLEdBQUcsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1lBQzVFLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUMvQyxNQUFNLE1BQU0sR0FBRyxJQUFBLG1CQUFTLEVBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRTtvQkFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUMvQjthQUNKO1NBQ0o7SUFDTCxDQUFDO0lBRUQsSUFBSSxHQUFHO1FBQ0gsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FB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VixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUMvQyxDQUFDO0NBQ0o7QUFoSEQsb0JBZ0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHthc3NlcnR9IGZyb20gXCIuL2Fzc2VydHNcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgZG90ZW52IGZyb20gXCJkb3RlbnZcIjtcbmltcG9ydCBjYW1lbENhc2UgZnJvbSBcImNhbWVsY2FzZVwiO1xuXG5leHBvcnQgY2xhc3MgQXJndiB7XG5cbiAgICBwcml2YXRlIG1hcDogTWFwPHN0cmluZywgYW55PiA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihhcmd2OiBhbnkpIHtcbiAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoYXJndikpIHtcbiAgICAgICAgICAgIHRoaXMubWFwLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGN3ZCA9IHRoaXMuY3dkO1xuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhgJHtjd2R9Ly5naXRsYWItY2ktbG9jYWwtZW52YCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbmZpZyA9IGRvdGVudi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoYCR7Y3dkfS8uZ2l0bGFiLWNpLWxvY2FsLWVudmApKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGNvbmZpZykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhcmdLZXkgPSBjYW1lbENhc2Uoa2V5KTtcbiAgICAgICAgICAgICAgICBpZiAoYXJndlthcmdLZXldID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tYXAuc2V0KGFyZ0tleSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBjd2QoKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGN3ZCA9IHRoaXMubWFwLmdldChcImN3ZFwiKSA/PyBwcm9jZXNzLmN3ZCgpO1xuICAgICAgICBhc3NlcnQodHlwZW9mIGN3ZCAhPSBcIm9iamVjdFwiLCBcIi0tY3dkIG9wdGlvbiBjYW5ub3QgYmUgYW4gYXJyYXlcIik7XG4gICAgICAgIGN3ZCA9IGN3ZC5yZXBsYWNlKC9cXC8kLywgXCJcIik7XG4gICAgICAgIGFzc2VydChmcy5wYXRoRXhpc3RzU3luYyhjd2QpLCBgJHtjd2R9IGlzIG5vdCBhIGRpcmVjdG9yeWApO1xuICAgICAgICByZXR1cm4gY3dkO1xuICAgIH1cblxuICAgIGdldCBmaWxlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcC5nZXQoXCJmaWxlXCIpID8/IFwiLmdpdGxhYi1jaS55bWxcIjtcbiAgICB9XG5cbiAgICBnZXQgaG9tZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gKHRoaXMubWFwLmdldChcImhvbWVcIikgPz8gcHJvY2Vzcy5lbnYuSE9NRSA/PyBcIlwiKS5yZXBsYWNlKC9cXC8kLywgXCJcIik7XG4gICAgfVxuXG4gICAgZ2V0IHZvbHVtZSgpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IHRoaXMubWFwLmdldChcInZvbHVtZVwiKSA/PyBbXTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT0gXCJzdHJpbmdcIiA/IHZhbC5zcGxpdChcIiBcIikgOiB2YWw7XG4gICAgfVxuXG4gICAgZ2V0IGV4dHJhSG9zdCgpOiBzdHJpbmdbXSB7XG4gICAgICAgIGNvbnN0IHZhbCA9IHRoaXMubWFwLmdldChcImV4dHJhSG9zdFwiKSA/PyBbXTtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWwgPT0gXCJzdHJpbmdcIiA/IHZhbC5zcGxpdChcIiBcIikgOiB2YWw7XG4gICAgfVxuXG4gICAgZ2V0IHJlbW90ZVZhcmlhYmxlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXAuZ2V0KFwicmVtb3RlVmFyaWFibGVzXCIpO1xuICAgIH1cblxuICAgIGdldCB2YXJpYWJsZSgpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICAgICAgY29uc3QgdmFsID0gdGhpcy5tYXAuZ2V0KFwidmFyaWFibGVcIik7XG4gICAgICAgIGNvbnN0IHZhcmlhYmxlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgICAgICBjb25zdCBwYWlycyA9IHR5cGVvZiB2YWwgPT0gXCJzdHJpbmdcIiA/IHZhbC5zcGxpdChcIiBcIikgOiB2YWw7XG4gICAgICAgIChwYWlycyA/PyBbXSkuZm9yRWFjaCgodmFyaWFibGVQYWlyOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4ZWMgPSAvKD88a2V5Plxcdyo/KSg9KSg/PHZhbHVlPlxcdy4qKS8uZXhlYyh2YXJpYWJsZVBhaXIpO1xuICAgICAgICAgICAgaWYgKGV4ZWM/Lmdyb3Vwcz8ua2V5KSB7XG4gICAgICAgICAgICAgICAgdmFyaWFibGVzW2V4ZWMuZ3JvdXBzLmtleV0gPSBleGVjPy5ncm91cHM/LnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlcztcbiAgICB9XG5cbiAgICBnZXQgbWFudWFsKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgY29uc3QgdmFsID0gdGhpcy5tYXAuZ2V0KFwibWFudWFsXCIpID8/IFtdO1xuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbCA9PSBcInN0cmluZ1wiID8gdmFsLnNwbGl0KFwiIFwiKSA6IHZhbDtcbiAgICB9XG5cbiAgICBnZXQgam9iKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwLmdldChcImpvYlwiKSA/PyBbXTtcbiAgICB9XG5cbiAgICBnZXQgYXV0b0NvbXBsZXRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcC5nZXQoXCJhdXRvQ29tcGxldGluZ1wiKSA/PyBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXQgcHJpdmlsZWdlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwLmdldChcInByaXZpbGVnZWRcIikgPz8gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0IG5lZWRzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXAuZ2V0KFwibmVlZHNcIikgPz8gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0IGNvbXBsZXRpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcC5nZXQoXCJjb21wbGV0aW9uXCIpID8/IGZhbHNlO1xuICAgIH1cblxuICAgIGdldCBsaXN0KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXAuZ2V0KFwibGlzdFwiKSA/PyBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXQgbGlzdEFsbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwLmdldChcImxpc3RBbGxcIikgPz8gZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0IHByZXZpZXcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1hcC5nZXQoXCJwcmV2aWV3XCIpID8/IGZhbHNlO1xuICAgIH1cblxuICAgIGdldCBzaGVsbElzb2xhdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwLmdldChcInNoZWxsSXNvbGF0aW9uXCIpID8/IGZhbHNlO1xuICAgIH1cblxuICAgIGdldCBmZXRjaEluY2x1ZGVzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5tYXAuZ2V0KFwiZmV0Y2hJbmNsdWRlc1wiKSA/PyBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXQgbW91bnRDYWNoZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWFwLmdldChcIm1vdW50Q2FjaGVcIikgPz8gZmFsc2U7XG4gICAgfVxufVxuIl19
|
package/src/handler.js
CHANGED
|
@@ -40,8 +40,7 @@ const utils_1 = require("./utils");
|
|
|
40
40
|
const exit_error_1 = require("./types/exit-error");
|
|
41
41
|
const argv_1 = require("./argv");
|
|
42
42
|
const asserts_1 = require("./asserts");
|
|
43
|
-
const generateGitIgnore = (cwd
|
|
44
|
-
(0, asserts_1.assert)(fs.existsSync(`${cwd}/${file}`), `${cwd}/${file} could not be found`);
|
|
43
|
+
const generateGitIgnore = (cwd) => {
|
|
45
44
|
const gitIgnoreFilePath = `${cwd}/.gitlab-ci-local/.gitignore`;
|
|
46
45
|
const gitIgnoreContent = "*\n!.gitignore\n";
|
|
47
46
|
if (!fs.existsSync(gitIgnoreFilePath)) {
|
|
@@ -50,7 +49,7 @@ const generateGitIgnore = (cwd, file) => {
|
|
|
50
49
|
};
|
|
51
50
|
const cleanupResources = async (parser) => {
|
|
52
51
|
if (!parser) {
|
|
53
|
-
|
|
52
|
+
return;
|
|
54
53
|
}
|
|
55
54
|
const promises = [];
|
|
56
55
|
for (const job of parser.jobs.values()) {
|
|
@@ -62,32 +61,39 @@ async function handler(args, writeStreams) {
|
|
|
62
61
|
const argv = new argv_1.Argv(args);
|
|
63
62
|
const cwd = argv.cwd;
|
|
64
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
|
-
|
|
87
|
+
if (argv.completion) {
|
|
88
|
+
yargs.showCompletionScript();
|
|
89
|
+
return new Map();
|
|
90
|
+
}
|
|
91
|
+
(0, asserts_1.assert)(fs.existsSync(`${cwd}/${file}`), `${cwd}/${file} could not be found`);
|
|
83
92
|
if (argv.fetchIncludes) {
|
|
84
93
|
parser = await parser_1.Parser.create(argv, writeStreams, 0);
|
|
85
94
|
return new Map();
|
|
86
95
|
}
|
|
87
|
-
if (argv.
|
|
88
|
-
yargs.showCompletionScript();
|
|
89
|
-
}
|
|
90
|
-
else if (argv.preview) {
|
|
96
|
+
if (argv.preview) {
|
|
91
97
|
const pipelineIid = await state.getPipelineIid(cwd);
|
|
92
98
|
parser = await parser_1.Parser.create(argv, writeStreams, pipelineIid);
|
|
93
99
|
const gitlabData = parser.gitlabData;
|
|
@@ -107,8 +113,8 @@ async function handler(args, writeStreams) {
|
|
|
107
113
|
commander_1.Commander.runList(parser, writeStreams, argv.listAll);
|
|
108
114
|
}
|
|
109
115
|
else if (argv.job.length > 0) {
|
|
116
|
+
generateGitIgnore(cwd);
|
|
110
117
|
const time = process.hrtime();
|
|
111
|
-
generateGitIgnore(cwd, file);
|
|
112
118
|
if (argv.needs) {
|
|
113
119
|
await fs.remove(`${cwd}/.gitlab-ci-local/artifacts`);
|
|
114
120
|
await state.incrementPipelineIid(cwd);
|
|
@@ -122,8 +128,8 @@ async function handler(args, writeStreams) {
|
|
|
122
128
|
}
|
|
123
129
|
}
|
|
124
130
|
else {
|
|
131
|
+
generateGitIgnore(cwd);
|
|
125
132
|
const time = process.hrtime();
|
|
126
|
-
generateGitIgnore(cwd, file);
|
|
127
133
|
await fs.remove(`${cwd}/.gitlab-ci-local/artifacts`);
|
|
128
134
|
await state.incrementPipelineIid(cwd);
|
|
129
135
|
const pipelineIid = await state.getPipelineIid(cwd);
|
|
@@ -133,10 +139,8 @@ async function handler(args, writeStreams) {
|
|
|
133
139
|
writeStreams.stdout((0, chalk_1.default) `{grey pipeline finished} in {grey ${(0, pretty_hrtime_1.default)(process.hrtime(time))}}\n`);
|
|
134
140
|
}
|
|
135
141
|
writeStreams.flush();
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
return new Map();
|
|
142
|
+
await cleanupResources(parser);
|
|
143
|
+
return parser.jobs;
|
|
140
144
|
}
|
|
141
145
|
exports.handler = handler;
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBZ0M7QUFDaEMsa0RBQTBCO0FBQzFCLDZDQUErQjtBQUMvQiw2Q0FBK0I7QUFDL0IsMkNBQXNDO0FBQ3RDLHFDQUFnQztBQUNoQywrQ0FBaUM7QUFDakMsa0VBQXlDO0FBRXpDLCtCQUEwQjtBQUMxQixtQ0FBOEI7QUFDOUIsbURBQTZDO0FBQzdDLGlDQUE0QjtBQUM1Qix1Q0FBaUM7QUFFakMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUFZLEVBQUUsRUFBRTtJQUNwRCxJQUFBLGdCQUFNLEVBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxJQUFJLElBQUkscUJBQXFCLENBQUMsQ0FBQztJQUM3RSxNQUFNLGlCQUFpQixHQUFHLEdBQUcsR0FBRyw4QkFBOEIsQ0FBQztJQUMvRCxNQUFNLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO0lBQzVDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUU7UUFDbkMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0tBQzFEO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLEVBQUMsTUFBbUIsRUFBRSxFQUFFO0lBQ2xELElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDVCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ25CO0lBQ0QsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3BCLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUNwQyxRQUFRLENBQUMsSUFB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RUFBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFHO0tBQ0o7U0FBTTtRQUNILE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM5QixpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDN0IsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsR0FBRyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sS0FBSyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sV0FBVyxHQUFHLE1BQU0sS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRCxNQUFNLEdBQUcsTUFBTSxlQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDOUQsTUFBTSxhQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLE1BQU0scUJBQVMsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN4RCxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUEsZUFBSyxFQUFBLHFDQUFxQyxJQUFBLHVCQUFZLEVBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMxRztJQUNELFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVyQixJQUFJLE1BQU0sRUFBRTtRQUNSLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQztLQUN0QjtJQUVELE9BQU8sSUFBSSxHQUFHLEVBQWUsQ0FBQztBQUNsQyxDQUFDO0FBaEZELDBCQWdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHlhbWwgZnJvbSBcImpzLXlhbWxcIjtcbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSBcInlhcmdzXCI7XG5pbXBvcnQge0NvbW1hbmRlcn0gZnJvbSBcIi4vY29tbWFuZGVyXCI7XG5pbXBvcnQge1BhcnNlcn0gZnJvbSBcIi4vcGFyc2VyXCI7XG5pbXBvcnQgKiBhcyBzdGF0ZSBmcm9tIFwiLi9zdGF0ZVwiO1xuaW1wb3J0IHByZXR0eUhydGltZSBmcm9tIFwicHJldHR5LWhydGltZVwiO1xuaW1wb3J0IHtXcml0ZVN0cmVhbXN9IGZyb20gXCIuL3R5cGVzL3dyaXRlLXN0cmVhbXNcIjtcbmltcG9ydCB7Sm9ifSBmcm9tIFwiLi9qb2JcIjtcbmltcG9ydCB7VXRpbHN9IGZyb20gXCIuL3V0aWxzXCI7XG5pbXBvcnQge0V4aXRFcnJvcn0gZnJvbSBcIi4vdHlwZXMvZXhpdC1lcnJvclwiO1xuaW1wb3J0IHtBcmd2fSBmcm9tIFwiLi9hcmd2XCI7XG5pbXBvcnQge2Fzc2VydH0gZnJvbSBcIi4vYXNzZXJ0c1wiO1xuXG5jb25zdCBnZW5lcmF0ZUdpdElnbm9yZSA9IChjd2Q6IHN0cmluZywgZmlsZTogc3RyaW5nKSA9PiB7XG4gICAgYXNzZXJ0KGZzLmV4aXN0c1N5bmMoYCR7Y3dkfS8ke2ZpbGV9YCksIGAke2N3ZH0vJHtmaWxlfSBjb3VsZCBub3QgYmUgZm91bmRgKTtcbiAgICBjb25zdCBnaXRJZ25vcmVGaWxlUGF0aCA9IGAke2N3ZH0vLmdpdGxhYi1jaS1sb2NhbC8uZ2l0aWdub3JlYDtcbiAgICBjb25zdCBnaXRJZ25vcmVDb250ZW50ID0gXCIqXFxuIS5naXRpZ25vcmVcXG5cIjtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZ2l0SWdub3JlRmlsZVBhdGgpKSB7XG4gICAgICAgIGZzLm91dHB1dEZpbGVTeW5jKGdpdElnbm9yZUZpbGVQYXRoLCBnaXRJZ25vcmVDb250ZW50KTtcbiAgICB9XG59O1xuXG5jb25zdCBjbGVhbnVwUmVzb3VyY2VzID0gYXN5bmMocGFyc2VyOiBQYXJzZXJ8bnVsbCkgPT4ge1xuICAgIGlmICghcGFyc2VyKSB7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gICAgY29uc3QgcHJvbWlzZXMgPSBbXTtcbiAgICBmb3IgKGNvbnN0IGpvYiBvZiBwYXJzZXIuam9icy52YWx1ZXMoKSkge1xuICAgICAgICBwcm9taXNlcy5wdXNoKGpvYi5jbGVhbnVwUmVzb3VyY2VzKCkpO1xuICAgIH1cbiAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcyk7XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlcihhcmdzOiBhbnksIHdyaXRlU3RyZWFtczogV3JpdGVTdHJlYW1zKTogUHJvbWlzZTxSZWFkb25seU1hcDxzdHJpbmcsIEpvYj4+IHtcbiAgICBjb25zdCBhcmd2ID0gbmV3IEFyZ3YoYXJncyk7XG4gICAgY29uc3QgY3dkID0gYXJndi5jd2Q7XG4gICAgY29uc3QgZmlsZSA9IGFyZ3YuZmlsZTtcblxuICAgIHByb2Nlc3Mub24oXCJ1bmhhbmRsZWRSZWplY3Rpb25cIiwgYXN5bmMgKGUpID0+IHtcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFeGl0RXJyb3IpIHtcbiAgICAgICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGNoYWxrYHtyZWQgJHtlLm1lc3NhZ2V9fVxcbmApO1xuICAgICAgICB9IGVsc2UgaWYgKGUgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoY2hhbGtge3JlZCAke2Uuc3RhY2sgPz8gZS5tZXNzYWdlfX1cXG5gKTtcbiAgICAgICAgfSBlbHNlIGlmIChlKSB7XG4gICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShjaGFsa2B7cmVkICR7ZS50b1N0cmluZygpfX1cXG5gKTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBjbGVhbnVwUmVzb3VyY2VzKHBhcnNlcik7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9KTtcblxuICAgIHByb2Nlc3Mub24oXCJTSUdJTlRcIiwgYXN5bmMgKF86IHN0cmluZywgY29kZTogbnVtYmVyKSA9PiB7XG4gICAgICAgIGF3YWl0IGNsZWFudXBSZXNvdXJjZXMocGFyc2VyKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KGNvZGUpO1xuICAgIH0pO1xuXG4gICAgbGV0IHBhcnNlcjogUGFyc2VyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAoYXJndi5mZXRjaEluY2x1ZGVzKSB7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgd3JpdGVTdHJlYW1zLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBKb2I+KCk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3YuY29tcGxldGlvbikge1xuICAgICAgICB5YXJncy5zaG93Q29tcGxldGlvblNjcmlwdCgpO1xuICAgIH0gZWxzZSBpZiAoYXJndi5wcmV2aWV3KSB7XG4gICAgICAgIGNvbnN0IHBpcGVsaW5lSWlkID0gYXdhaXQgc3RhdGUuZ2V0UGlwZWxpbmVJaWQoY3dkKTtcbiAgICAgICAgcGFyc2VyID0gYXdhaXQgUGFyc2VyLmNyZWF0ZShhcmd2LCB3cml0ZVN0cmVhbXMsIHBpcGVsaW5lSWlkKTtcbiAgICAgICAgY29uc3QgZ2l0bGFiRGF0YSA9IHBhcnNlci5naXRsYWJEYXRhO1xuICAgICAgICBmb3IgKGNvbnN0IGpvYk5hbWUgb2YgT2JqZWN0LmtleXMoZ2l0bGFiRGF0YSkpIHtcbiAgICAgICAgICAgIGlmIChqb2JOYW1lID09PSBcInN0YWdlc1wiKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoSm9iLmlsbGVnYWxKb2JOYW1lcy5pbmNsdWRlcyhqb2JOYW1lKSB8fCBqb2JOYW1lLnN0YXJ0c1dpdGgoXCIuXCIpKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIGdpdGxhYkRhdGFbam9iTmFtZV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChgLS0tXFxuJHt5YW1sLmR1bXAoZ2l0bGFiRGF0YSwge2xpbmVXaWR0aDogMTYwfSl9YCk7XG4gICAgfSBlbHNlIGlmIChhcmd2Lmxpc3QgfHwgYXJndi5saXN0QWxsKSB7XG4gICAgICAgIGNvbnN0IHBpcGVsaW5lSWlkID0gYXdhaXQgc3RhdGUuZ2V0UGlwZWxpbmVJaWQoY3dkKTtcbiAgICAgICAgcGFyc2VyID0gYXdhaXQgUGFyc2VyLmNyZWF0ZShhcmd2LCB3cml0ZVN0cmVhbXMsIHBpcGVsaW5lSWlkKTtcbiAgICAgICAgQ29tbWFuZGVyLnJ1bkxpc3QocGFyc2VyLCB3cml0ZVN0cmVhbXMsIGFyZ3YubGlzdEFsbCk7XG4gICAgfSBlbHNlIGlmIChhcmd2LmpvYi5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHRpbWUgPSBwcm9jZXNzLmhydGltZSgpO1xuICAgICAgICBnZW5lcmF0ZUdpdElnbm9yZShjd2QsIGZpbGUpO1xuICAgICAgICBpZiAoYXJndi5uZWVkcykge1xuICAgICAgICAgICAgYXdhaXQgZnMucmVtb3ZlKGAke2N3ZH0vLmdpdGxhYi1jaS1sb2NhbC9hcnRpZmFjdHNgKTtcbiAgICAgICAgICAgIGF3YWl0IHN0YXRlLmluY3JlbWVudFBpcGVsaW5lSWlkKGN3ZCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgcGlwZWxpbmVJaWQgPSBhd2FpdCBzdGF0ZS5nZXRQaXBlbGluZUlpZChjd2QpO1xuICAgICAgICBwYXJzZXIgPSBhd2FpdCBQYXJzZXIuY3JlYXRlKGFyZ3YsIHdyaXRlU3RyZWFtcywgcGlwZWxpbmVJaWQpO1xuICAgICAgICBhd2FpdCBVdGlscy5yc3luY1RyYWNrZWRGaWxlcyhjd2QsIFwiLmRvY2tlclwiKTtcbiAgICAgICAgYXdhaXQgQ29tbWFuZGVyLnJ1bkpvYnMoYXJndiwgcGFyc2VyLCB3cml0ZVN0cmVhbXMpO1xuICAgICAgICBpZiAoYXJndi5uZWVkcykge1xuICAgICAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2B7Z3JleSBwaXBlbGluZSBmaW5pc2hlZH0gaW4ge2dyZXkgJHtwcmV0dHlIcnRpbWUocHJvY2Vzcy5ocnRpbWUodGltZSkpfX1cXG5gKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHRpbWUgPSBwcm9jZXNzLmhydGltZSgpO1xuICAgICAgICBnZW5lcmF0ZUdpdElnbm9yZShjd2QsIGZpbGUpO1xuICAgICAgICBhd2FpdCBmcy5yZW1vdmUoYCR7Y3dkfS8uZ2l0bGFiLWNpLWxvY2FsL2FydGlmYWN0c2ApO1xuICAgICAgICBhd2FpdCBzdGF0ZS5pbmNyZW1lbnRQaXBlbGluZUlpZChjd2QpO1xuICAgICAgICBjb25zdCBwaXBlbGluZUlpZCA9IGF3YWl0IHN0YXRlLmdldFBpcGVsaW5lSWlkKGN3ZCk7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgd3JpdGVTdHJlYW1zLCBwaXBlbGluZUlpZCk7XG4gICAgICAgIGF3YWl0IFV0aWxzLnJzeW5jVHJhY2tlZEZpbGVzKGN3ZCwgXCIuZG9ja2VyXCIpO1xuICAgICAgICBhd2FpdCBDb21tYW5kZXIucnVuUGlwZWxpbmUoYXJndiwgcGFyc2VyLCB3cml0ZVN0cmVhbXMpO1xuICAgICAgICB3cml0ZVN0cmVhbXMuc3Rkb3V0KGNoYWxrYHtncmV5IHBpcGVsaW5lIGZpbmlzaGVkfSBpbiB7Z3JleSAke3ByZXR0eUhydGltZShwcm9jZXNzLmhydGltZSh0aW1lKSl9fVxcbmApO1xuICAgIH1cbiAgICB3cml0ZVN0cmVhbXMuZmx1c2goKTtcblxuICAgIGlmIChwYXJzZXIpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlci5qb2JzO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgSm9iPigpO1xufVxuXG4iXX0=
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw4Q0FBZ0M7QUFDaEMsa0RBQTBCO0FBQzFCLDZDQUErQjtBQUMvQiw2Q0FBK0I7QUFDL0IsMkNBQXNDO0FBQ3RDLHFDQUFnQztBQUNoQywrQ0FBaUM7QUFDakMsa0VBQXlDO0FBRXpDLCtCQUEwQjtBQUMxQixtQ0FBOEI7QUFDOUIsbURBQTZDO0FBQzdDLGlDQUE0QjtBQUM1Qix1Q0FBaUM7QUFFakMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO0lBQ3RDLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxHQUFHLDhCQUE4QixDQUFDO0lBQy9ELE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUM7SUFDNUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRTtRQUNuQyxFQUFFLENBQUMsY0FBYyxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7S0FDMUQ7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBQyxNQUFtQixFQUFFLEVBQUU7SUFDbEQsSUFBSSxDQUFDLE1BQU0sRUFBRTtRQUNULE9BQU87S0FDVjtJQUNELE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNwQixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDcEMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0tBQ3pDO0lBQ0QsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVLLEtBQUssVUFBVSxPQUFPLENBQUMsSUFBUyxFQUFFLFlBQTBCO0lBQy9ELE1B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QUM7SUFDL0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0FBQ3ZCLENBQUM7QUFyRkQsMEJBcUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgeWFtbCBmcm9tIFwianMteWFtbFwiO1xuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyB5YXJncyBmcm9tIFwieWFyZ3NcIjtcbmltcG9ydCB7Q29tbWFuZGVyfSBmcm9tIFwiLi9jb21tYW5kZXJcIjtcbmltcG9ydCB7UGFyc2VyfSBmcm9tIFwiLi9wYXJzZXJcIjtcbmltcG9ydCAqIGFzIHN0YXRlIGZyb20gXCIuL3N0YXRlXCI7XG5pbXBvcnQgcHJldHR5SHJ0aW1lIGZyb20gXCJwcmV0dHktaHJ0aW1lXCI7XG5pbXBvcnQge1dyaXRlU3RyZWFtc30gZnJvbSBcIi4vdHlwZXMvd3JpdGUtc3RyZWFtc1wiO1xuaW1wb3J0IHtKb2J9IGZyb20gXCIuL2pvYlwiO1xuaW1wb3J0IHtVdGlsc30gZnJvbSBcIi4vdXRpbHNcIjtcbmltcG9ydCB7RXhpdEVycm9yfSBmcm9tIFwiLi90eXBlcy9leGl0LWVycm9yXCI7XG5pbXBvcnQge0FyZ3Z9IGZyb20gXCIuL2FyZ3ZcIjtcbmltcG9ydCB7YXNzZXJ0fSBmcm9tIFwiLi9hc3NlcnRzXCI7XG5cbmNvbnN0IGdlbmVyYXRlR2l0SWdub3JlID0gKGN3ZDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgZ2l0SWdub3JlRmlsZVBhdGggPSBgJHtjd2R9Ly5naXRsYWItY2ktbG9jYWwvLmdpdGlnbm9yZWA7XG4gICAgY29uc3QgZ2l0SWdub3JlQ29udGVudCA9IFwiKlxcbiEuZ2l0aWdub3JlXFxuXCI7XG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGdpdElnbm9yZUZpbGVQYXRoKSkge1xuICAgICAgICBmcy5vdXRwdXRGaWxlU3luYyhnaXRJZ25vcmVGaWxlUGF0aCwgZ2l0SWdub3JlQ29udGVudCk7XG4gICAgfVxufTtcblxuY29uc3QgY2xlYW51cFJlc291cmNlcyA9IGFzeW5jKHBhcnNlcjogUGFyc2VyfG51bGwpID0+IHtcbiAgICBpZiAoIXBhcnNlcikge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHByb21pc2VzID0gW107XG4gICAgZm9yIChjb25zdCBqb2Igb2YgcGFyc2VyLmpvYnMudmFsdWVzKCkpIHtcbiAgICAgICAgcHJvbWlzZXMucHVzaChqb2IuY2xlYW51cFJlc291cmNlcygpKTtcbiAgICB9XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xufTtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoYXJnczogYW55LCB3cml0ZVN0cmVhbXM6IFdyaXRlU3RyZWFtcyk6IFByb21pc2U8UmVhZG9ubHlNYXA8c3RyaW5nLCBKb2I+PiB7XG4gICAgY29uc3QgYXJndiA9IG5ldyBBcmd2KGFyZ3MpO1xuICAgIGNvbnN0IGN3ZCA9IGFyZ3YuY3dkO1xuICAgIGNvbnN0IGZpbGUgPSBhcmd2LmZpbGU7XG4gICAgbGV0IHBhcnNlcjogUGFyc2VyIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm9jZXNzLm9uKFwiZXhpdFwiLCAoKSA9PiB7XG4gICAgICAgIGlmIChwYXJzZXIpIGNsZWFudXBSZXNvdXJjZXMocGFyc2VyKS50aGVuKCkuY2F0Y2goKTtcbiAgICB9KTtcblxuICAgIHByb2Nlc3Mub24oXCJ1bmhhbmRsZWRSZWplY3Rpb25cIiwgYXN5bmMgKGUpID0+IHtcbiAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBFeGl0RXJyb3IpIHtcbiAgICAgICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGNoYWxrYHtyZWQgJHtlLm1lc3NhZ2UudHJpbSgpfX1cXG5gKTtcbiAgICAgICAgfSBlbHNlIGlmIChlIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgICAgIHByb2Nlc3Muc3RkZXJyLndyaXRlKGNoYWxrYHtyZWQgJHtlLnN0YWNrPy50cmltKCkgPz8gZS5tZXNzYWdlLnRyaW0oKX19XFxuYCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZSkge1xuICAgICAgICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoY2hhbGtge3JlZCAke2UudG9TdHJpbmcoKS50cmltKCl9fVxcbmApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwYXJzZXIpIGF3YWl0IGNsZWFudXBSZXNvdXJjZXMocGFyc2VyKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH0pO1xuXG4gICAgcHJvY2Vzcy5vbihcIlNJR0lOVFwiLCBhc3luYyAoXzogc3RyaW5nLCBjb2RlOiBudW1iZXIpID0+IHtcbiAgICAgICAgYXdhaXQgY2xlYW51cFJlc291cmNlcyhwYXJzZXIpO1xuICAgICAgICBwcm9jZXNzLmV4aXQoY29kZSk7XG4gICAgfSk7XG5cbiAgICBpZiAoYXJndi5jb21wbGV0aW9uKSB7XG4gICAgICAgIHlhcmdzLnNob3dDb21wbGV0aW9uU2NyaXB0KCk7XG4gICAgICAgIHJldHVybiBuZXcgTWFwPHN0cmluZywgSm9iPigpO1xuICAgIH1cblxuICAgIGFzc2VydChmcy5leGlzdHNTeW5jKGAke2N3ZH0vJHtmaWxlfWApLCBgJHtjd2R9LyR7ZmlsZX0gY291bGQgbm90IGJlIGZvdW5kYCk7XG5cbiAgICBpZiAoYXJndi5mZXRjaEluY2x1ZGVzKSB7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgd3JpdGVTdHJlYW1zLCAwKTtcbiAgICAgICAgcmV0dXJuIG5ldyBNYXA8c3RyaW5nLCBKb2I+KCk7XG4gICAgfVxuXG4gICAgaWYgKGFyZ3YucHJldmlldykge1xuICAgICAgICBjb25zdCBwaXBlbGluZUlpZCA9IGF3YWl0IHN0YXRlLmdldFBpcGVsaW5lSWlkKGN3ZCk7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgd3JpdGVTdHJlYW1zLCBwaXBlbGluZUlpZCk7XG4gICAgICAgIGNvbnN0IGdpdGxhYkRhdGEgPSBwYXJzZXIuZ2l0bGFiRGF0YTtcbiAgICAgICAgZm9yIChjb25zdCBqb2JOYW1lIG9mIE9iamVjdC5rZXlzKGdpdGxhYkRhdGEpKSB7XG4gICAgICAgICAgICBpZiAoam9iTmFtZSA9PT0gXCJzdGFnZXNcIikge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKEpvYi5pbGxlZ2FsSm9iTmFtZXMuaW5jbHVkZXMoam9iTmFtZSkgfHwgam9iTmFtZS5zdGFydHNXaXRoKFwiLlwiKSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBnaXRsYWJEYXRhW2pvYk5hbWVdO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoYC0tLVxcbiR7eWFtbC5kdW1wKGdpdGxhYkRhdGEsIHtsaW5lV2lkdGg6IDE2MH0pfWApO1xuICAgIH0gZWxzZSBpZiAoYXJndi5saXN0IHx8IGFyZ3YubGlzdEFsbCkge1xuICAgICAgICBjb25zdCBwaXBlbGluZUlpZCA9IGF3YWl0IHN0YXRlLmdldFBpcGVsaW5lSWlkKGN3ZCk7XG4gICAgICAgIHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgd3JpdGVTdHJlYW1zLCBwaXBlbGluZUlpZCk7XG4gICAgICAgIENvbW1hbmRlci5ydW5MaXN0KHBhcnNlciwgd3JpdGVTdHJlYW1zLCBhcmd2Lmxpc3RBbGwpO1xuICAgIH0gZWxzZSBpZiAoYXJndi5qb2IubGVuZ3RoID4gMCkge1xuICAgICAgICBnZW5lcmF0ZUdpdElnbm9yZShjd2QpO1xuICAgICAgICBjb25zdCB0aW1lID0gcHJvY2Vzcy5ocnRpbWUoKTtcbiAgICAgICAgaWYgKGFyZ3YubmVlZHMpIHtcbiAgICAgICAgICAgIGF3YWl0IGZzLnJlbW92ZShgJHtjd2R9Ly5naXRsYWItY2ktbG9jYWwvYXJ0aWZhY3RzYCk7XG4gICAgICAgICAgICBhd2FpdCBzdGF0ZS5pbmNyZW1lbnRQaXBlbGluZUlpZChjd2QpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBpcGVsaW5lSWlkID0gYXdhaXQgc3RhdGUuZ2V0UGlwZWxpbmVJaWQoY3dkKTtcbiAgICAgICAgcGFyc2VyID0gYXdhaXQgUGFyc2VyLmNyZWF0ZShhcmd2LCB3cml0ZVN0cmVhbXMsIHBpcGVsaW5lSWlkKTtcbiAgICAgICAgYXdhaXQgVXRpbHMucnN5bmNUcmFja2VkRmlsZXMoY3dkLCBcIi5kb2NrZXJcIik7XG4gICAgICAgIGF3YWl0IENvbW1hbmRlci5ydW5Kb2JzKGFyZ3YsIHBhcnNlciwgd3JpdGVTdHJlYW1zKTtcbiAgICAgICAgaWYgKGFyZ3YubmVlZHMpIHtcbiAgICAgICAgICAgIHdyaXRlU3RyZWFtcy5zdGRvdXQoY2hhbGtge2dyZXkgcGlwZWxpbmUgZmluaXNoZWR9IGluIHtncmV5ICR7cHJldHR5SHJ0aW1lKHByb2Nlc3MuaHJ0aW1lKHRpbWUpKX19XFxuYCk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBnZW5lcmF0ZUdpdElnbm9yZShjd2QpO1xuICAgICAgICBjb25zdCB0aW1lID0gcHJvY2Vzcy5ocnRpbWUoKTtcbiAgICAgICAgYXdhaXQgZnMucmVtb3ZlKGAke2N3ZH0vLmdpdGxhYi1jaS1sb2NhbC9hcnRpZmFjdHNgKTtcbiAgICAgICAgYXdhaXQgc3RhdGUuaW5jcmVtZW50UGlwZWxpbmVJaWQoY3dkKTtcbiAgICAgICAgY29uc3QgcGlwZWxpbmVJaWQgPSBhd2FpdCBzdGF0ZS5nZXRQaXBlbGluZUlpZChjd2QpO1xuICAgICAgICBwYXJzZXIgPSBhd2FpdCBQYXJzZXIuY3JlYXRlKGFyZ3YsIHdyaXRlU3RyZWFtcywgcGlwZWxpbmVJaWQpO1xuICAgICAgICBhd2FpdCBVdGlscy5yc3luY1RyYWNrZWRGaWxlcyhjd2QsIFwiLmRvY2tlclwiKTtcbiAgICAgICAgYXdhaXQgQ29tbWFuZGVyLnJ1blBpcGVsaW5lKGFyZ3YsIHBhcnNlciwgd3JpdGVTdHJlYW1zKTtcbiAgICAgICAgd3JpdGVTdHJlYW1zLnN0ZG91dChjaGFsa2B7Z3JleSBwaXBlbGluZSBmaW5pc2hlZH0gaW4ge2dyZXkgJHtwcmV0dHlIcnRpbWUocHJvY2Vzcy5ocnRpbWUodGltZSkpfX1cXG5gKTtcbiAgICB9XG4gICAgd3JpdGVTdHJlYW1zLmZsdXNoKCk7XG5cbiAgICBhd2FpdCBjbGVhbnVwUmVzb3VyY2VzKHBhcnNlcik7XG4gICAgcmV0dXJuIHBhcnNlci5qb2JzO1xufVxuXG4iXX0=
|
package/src/index.js
CHANGED
|
@@ -43,8 +43,8 @@ const argv_1 = require("./argv");
|
|
|
43
43
|
(() => {
|
|
44
44
|
const packageJson = JSON.parse(fs.readFileSync(path.join(__dirname, "../package.json"), "utf8"));
|
|
45
45
|
(0, yargs_1.default)(process.argv.slice(2))
|
|
46
|
-
.version(packageJson["version"])
|
|
47
46
|
.showHelpOnFail(false)
|
|
47
|
+
.version(packageJson["version"])
|
|
48
48
|
.wrap(yargs_1.default.terminalWidth())
|
|
49
49
|
.command({
|
|
50
50
|
handler: async (argv) => {
|
|
@@ -112,6 +112,11 @@ const argv_1 = require("./argv");
|
|
|
112
112
|
type: "array",
|
|
113
113
|
description: "Add variable to all executed jobs (--variable HELLO=world)",
|
|
114
114
|
requiresArg: false,
|
|
115
|
+
})
|
|
116
|
+
.option("remote-variables", {
|
|
117
|
+
type: "string",
|
|
118
|
+
description: "Fetch variables file from remote location",
|
|
119
|
+
requiresArg: false,
|
|
115
120
|
})
|
|
116
121
|
.option("file", {
|
|
117
122
|
type: "string",
|
|
@@ -155,7 +160,7 @@ const argv_1 = require("./argv");
|
|
|
155
160
|
})
|
|
156
161
|
.completion("completion", false, async (_, yargsArgv) => {
|
|
157
162
|
try {
|
|
158
|
-
const argv = new argv_1.Argv(yargsArgv);
|
|
163
|
+
const argv = new argv_1.Argv({ ...yargsArgv, autoCompleting: true });
|
|
159
164
|
const pipelineIid = await state.getPipelineIid(argv.cwd);
|
|
160
165
|
const parser = await parser_1.Parser.create(argv, new mock_write_streams_1.MockWriteStreams(), pipelineIid);
|
|
161
166
|
return [...parser.jobs.values()].filter((j) => j.when != "never").map((j) => j.name);
|
|
@@ -166,4 +171,4 @@ const argv_1 = require("./argv");
|
|
|
166
171
|
})
|
|
167
172
|
.parse();
|
|
168
173
|
})();
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHVDQUFxQztBQUNyQyxrREFBMEI7QUFDMUIsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUM3QixrREFBMEI7QUFDMUIscUNBQWdDO0FBQ2hDLCtDQUFpQztBQUNqQyxtREFBNkM7QUFDN0MsbUVBQTREO0FBQzVELHVDQUFrQztBQUNsQyxpREFBMkM7QUFDM0MsNkRBQXNEO0FBQ3RELGlDQUE0QjtBQUU1QixDQUFDLEdBQUcsRUFBRTtJQUNGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDakcsSUFBQSxlQUFLLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUMvQixjQUFjLENBQUMsS0FBSyxDQUFDO1NBQ3JCLElBQUksQ0FBQyxlQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDM0IsT0FBTyxDQUFDO1FBQ0wsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNwQixJQUFJO2dCQUNBLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxpQkFBTyxFQUFDLElBQUksRUFBRSxJQUFJLDJDQUFtQixFQUFFLENBQUMsQ0FBQztnQkFDNUQsTUFBTSxVQUFVLEdBQUcsMEJBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9DLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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QUNqQixDQUFDLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0IFwic291cmNlLW1hcC1zdXBwb3J0L3JlZ2lzdGVyXCI7XG5pbXBvcnQgY2hhbGsgZnJvbSBcImNoYWxrXCI7XG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB5YXJncyBmcm9tIFwieWFyZ3NcIjtcbmltcG9ydCB7UGFyc2VyfSBmcm9tIFwiLi9wYXJzZXJcIjtcbmltcG9ydCAqIGFzIHN0YXRlIGZyb20gXCIuL3N0YXRlXCI7XG5pbXBvcnQge0V4aXRFcnJvcn0gZnJvbSBcIi4vdHlwZXMvZXhpdC1lcnJvclwiO1xuaW1wb3J0IHtQcm9jZXNzV3JpdGVTdHJlYW1zfSBmcm9tIFwiLi9wcm9jZXNzLXdyaXRlLXN0cmVhbXNcIjtcbmltcG9ydCB7aGFuZGxlcn0gZnJvbSBcIi4vaGFuZGxlclwiO1xuaW1wb3J0IHtKb2JFeGVjdXRvcn0gZnJvbSBcIi4vam9iLWV4ZWN1dG9yXCI7XG5pbXBvcnQge01vY2tXcml0ZVN0cmVhbXN9IGZyb20gXCIuL21vY2std3JpdGUtc3RyZWFtc1wiO1xuaW1wb3J0IHtBcmd2fSBmcm9tIFwiLi9hcmd2XCI7XG5cbigoKSA9PiB7XG4gICAgY29uc3QgcGFja2FnZUpzb24gPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uL3BhY2thZ2UuanNvblwiKSwgXCJ1dGY4XCIpKTtcbiAgICB5YXJncyhwcm9jZXNzLmFyZ3Yuc2xpY2UoMikpXG4gICAgICAgIC52ZXJzaW9uKHBhY2thZ2VKc29uW1widmVyc2lvblwiXSlcbiAgICAgICAgLnNob3dIZWxwT25GYWlsKGZhbHNlKVxuICAgICAgICAud3JhcCh5YXJncy50ZXJtaW5hbFdpZHRoKCkpXG4gICAgICAgIC5jb21tYW5kKHtcbiAgICAgICAgICAgIGhhbmRsZXI6IGFzeW5jIChhcmd2KSA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgam9icyA9IGF3YWl0IGhhbmRsZXIoYXJndiwgbmV3IFByb2Nlc3NXcml0ZVN0cmVhbXMoKSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZhaWxlZEpvYnMgPSBKb2JFeGVjdXRvci5nZXRGYWlsZWQoam9icyk7XG4gICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZXhpdChmYWlsZWRKb2JzLmxlbmd0aCA+IDAgPyAxIDogMCk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIEV4aXRFcnJvcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5zdGRlcnIud3JpdGUoY2hhbGtge3JlZCAke2UubWVzc2FnZX19XFxuYCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYnVpbGRlcjogKHk6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB5LnBvc2l0aW9uYWwoXCJqb2JcIiwge1xuICAgICAgICAgICAgICAgICAgICBkZXNjcmliZTogXCJKb2JuYW1lJ3MgdG8gZXhlY3V0ZVwiLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tbWFuZDogXCIkMCBbam9iLi5dXCIsXG4gICAgICAgICAgICBkZXNjcmliZTogXCJSdW5zIHRoZSBlbnRpcmUgcGlwZWxpbmUgb3Igam9iJ3NcIixcbiAgICAgICAgfSlcbiAgICAgICAgLnVzYWdlKFwiRmluZCBtb3JlIGluZm9ybWF0aW9uIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9maXJlY293L2dpdGxhYi1jaS1sb2NhbFwiKVxuICAgICAgICAuc3RyaWN0T3B0aW9ucygpXG4gICAgICAgIC5lbnYoXCJHQ0xcIilcbiAgICAgICAgLm9wdGlvbihcIm1hbnVhbFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJPbmUgb3IgbW9yZSBtYW51YWwgam9icyB0byBydW4gZHVyaW5nIGEgcGlwZWxpbmVcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwibGlzdFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkxpc3Qgam9icyBhbmQgam9iIGluZm9ybWF0aW9uLCB3aGVuOm5ldmVyIGV4Y2x1ZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJsaXN0LWFsbFwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkxpc3Qgam9icyBhbmQgam9iIGluZm9ybWF0aW9uLCB3aGVuOm5ldmVyIGluY2x1ZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJwcmV2aWV3XCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiUHJpbnQgWU1MIHdpdGggZGVmYXVsdHMsIGluY2x1ZGVzLCBleHRlbmRzIGFuZCByZWZlcmVuY2UncyBleHBhbmRlZFwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwiY3dkXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJQYXRoIHRvIGEgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeVwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJjb21wbGV0aW9uXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJHZW5lcmF0ZSB0YWIgY29tcGxldGlvbiBzY3JpcHRcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcIm5lZWRzXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiUnVuIG5lZWRlZCBqb2JzLCB3aGVuIGV4ZWN1dGluZyBhIHNpbmdsZSBqb2JcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInZhcmlhYmxlXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkFkZCB2YXJpYWJsZSB0byBhbGwgZXhlY3V0ZWQgam9icyAoLS12YXJpYWJsZSBIRUxMTz13b3JsZClcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImZpbGVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlNwZWNpZnkgY3VzdG9tIGxvY2F0aW9uIG9mIHRoZSAuZ2l0bGFiLWNpLnltbC4gUmVsYXRpdmUgdG8gY3dkLCBlZy4gKGdpdGxhYi8uZ2l0bGFiLWNpLnltbClcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImhvbWVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlNwZWNpZnkgY3VzdG9tIEhPTUUgbG9jYXRpb24gKCRIT01FLy5naXRsYWItY2ktbG9jYWwvdmFyaWFibGVzLnltbClcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInNoZWxsLWlzb2xhdGlvblwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkVuYWJsZSBhcnRpZmFjdCBpc29sYXRpb24gZm9yIHNoZWxsLWV4ZWN1dG9yIGpvYnNcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcIm1vdW50LWNhY2hlXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRW5hYmxlIGRvY2tlciBtb3VudCBiYXNlZCBjYWNoaW5nXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJwcml2aWxlZ2VkXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiU2V0IGRvY2tlciBleGVjdXRvciB0byBwcml2aWxlZ2VkIG1vZGVcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInZvbHVtZVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBZGQgdm9sdW1lcyB0byBkb2NrZXIgZXhlY3V0b3JcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImV4dHJhLWhvc3RcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWRkIGV4dHJhIGRvY2tlciBob3N0IGVudHJpZXNcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImZldGNoLWluY2x1ZGVzXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmV0Y2ggYWxsIGV4dGVybmFsIGluY2x1ZGVzIG9uZSBtb3JlIHRpbWVcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLmNvbXBsZXRpb24oXCJjb21wbGV0aW9uXCIsIGZhbHNlLCBhc3luYyAoXywgeWFyZ3NBcmd2KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3YgPSBuZXcgQXJndih5YXJnc0FyZ3YpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBpcGVsaW5lSWlkID0gYXdhaXQgc3RhdGUuZ2V0UGlwZWxpbmVJaWQoYXJndi5jd2QpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgbmV3IE1vY2tXcml0ZVN0cmVhbXMoKSwgcGlwZWxpbmVJaWQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbLi4ucGFyc2VyLmpvYnMudmFsdWVzKCldLmZpbHRlcigoaikgPT4gai53aGVuICE9IFwibmV2ZXJcIikubWFwKChqKSA9PiBqLm5hbWUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXCJQYXJzZXItRmFpbGVkIVwiXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KVxuICAgICAgICAucGFyc2UoKTtcbn0pKCk7XG5cbiJdfQ==
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHVDQUFxQztBQUNyQyxrREFBMEI7QUFDMUIsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUM3QixrREFBMEI7QUFDMUIscUNBQWdDO0FBQ2hDLCtDQUFpQztBQUNqQyxtREFBNkM7QUFDN0MsbUVBQTREO0FBQzVELHVDQUFrQztBQUNsQyxpREFBMkM7QUFDM0MsNkRBQXNEO0FBQ3RELGlDQUE0QjtBQUU1QixDQUFDLEdBQUcsRUFBRTtJQUNGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDakcsSUFBQSxlQUFLLEVBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdkIsY0FBYyxDQUFDLEtBQUssQ0FBQztTQUNyQixPQUFPLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQy9CLElBQUksQ0FBQyxlQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDM0IsT0FBTyxDQUFDO1FBQ0wsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtZQUNwQixJQUFJO2dCQUNBLE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBQSxpQkFBTyxFQUFDLElBQUksRUFBRSxJQUFJLDJDQUFtQixFQUFFLENBQUMsQ0FBQztnQkFDNUQsTUFBTSxVQUFVLEdBQUcsMEJBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQy9DLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENB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RSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hGO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDUixPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztTQUM3QjtJQUVMLENBQUMsQ0FBQztTQUNELEtBQUssRUFBRSxDQUFDO0FBQ2pCLENBQUMsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgXCJzb3VyY2UtbWFwLXN1cHBvcnQvcmVnaXN0ZXJcIjtcbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHlhcmdzIGZyb20gXCJ5YXJnc1wiO1xuaW1wb3J0IHtQYXJzZXJ9IGZyb20gXCIuL3BhcnNlclwiO1xuaW1wb3J0ICogYXMgc3RhdGUgZnJvbSBcIi4vc3RhdGVcIjtcbmltcG9ydCB7RXhpdEVycm9yfSBmcm9tIFwiLi90eXBlcy9leGl0LWVycm9yXCI7XG5pbXBvcnQge1Byb2Nlc3NXcml0ZVN0cmVhbXN9IGZyb20gXCIuL3Byb2Nlc3Mtd3JpdGUtc3RyZWFtc1wiO1xuaW1wb3J0IHtoYW5kbGVyfSBmcm9tIFwiLi9oYW5kbGVyXCI7XG5pbXBvcnQge0pvYkV4ZWN1dG9yfSBmcm9tIFwiLi9qb2ItZXhlY3V0b3JcIjtcbmltcG9ydCB7TW9ja1dyaXRlU3RyZWFtc30gZnJvbSBcIi4vbW9jay13cml0ZS1zdHJlYW1zXCI7XG5pbXBvcnQge0FyZ3Z9IGZyb20gXCIuL2FyZ3ZcIjtcblxuKCgpID0+IHtcbiAgICBjb25zdCBwYWNrYWdlSnNvbiA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi4vcGFja2FnZS5qc29uXCIpLCBcInV0ZjhcIikpO1xuICAgIHlhcmdzKHByb2Nlc3MuYXJndi5zbGljZSgyKSlcbiAgICAgICAgLnNob3dIZWxwT25GYWlsKGZhbHNlKVxuICAgICAgICAudmVyc2lvbihwYWNrYWdlSnNvbltcInZlcnNpb25cIl0pXG4gICAgICAgIC53cmFwKHlhcmdzLnRlcm1pbmFsV2lkdGgoKSlcbiAgICAgICAgLmNvbW1hbmQoe1xuICAgICAgICAgICAgaGFuZGxlcjogYXN5bmMgKGFyZ3YpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBqb2JzID0gYXdhaXQgaGFuZGxlcihhcmd2LCBuZXcgUHJvY2Vzc1dyaXRlU3RyZWFtcygpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmFpbGVkSm9icyA9IEpvYkV4ZWN1dG9yLmdldEZhaWxlZChqb2JzKTtcbiAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0KGZhaWxlZEpvYnMubGVuZ3RoID4gMCA/IDEgOiAwKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgRXhpdEVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzLnN0ZGVyci53cml0ZShjaGFsa2B7cmVkICR7ZS5tZXNzYWdlfX1cXG5gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBidWlsZGVyOiAoeTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHkucG9zaXRpb25hbChcImpvYlwiLCB7XG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaWJlOiBcIkpvYm5hbWUncyB0byBleGVjdXRlXCIsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21tYW5kOiBcIiQwIFtqb2IuLl1cIixcbiAgICAgICAgICAgIGRlc2NyaWJlOiBcIlJ1bnMgdGhlIGVudGlyZSBwaXBlbGluZSBvciBqb2Inc1wiLFxuICAgICAgICB9KVxuICAgICAgICAudXNhZ2UoXCJGaW5kIG1vcmUgaW5mb3JtYXRpb24gYXQgaHR0cHM6Ly9naXRodWIuY29tL2ZpcmVjb3cvZ2l0bGFiLWNpLWxvY2FsXCIpXG4gICAgICAgIC5zdHJpY3RPcHRpb25zKClcbiAgICAgICAgLmVudihcIkdDTFwiKVxuICAgICAgICAub3B0aW9uKFwibWFudWFsXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYXJyYXlcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIk9uZSBvciBtb3JlIG1hbnVhbCBqb2JzIHRvIHJ1biBkdXJpbmcgYSBwaXBlbGluZVwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJsaXN0XCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiTGlzdCBqb2JzIGFuZCBqb2IgaW5mb3JtYXRpb24sIHdoZW46bmV2ZXIgZXhjbHVkZWRcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImxpc3QtYWxsXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiTGlzdCBqb2JzIGFuZCBqb2IgaW5mb3JtYXRpb24sIHdoZW46bmV2ZXIgaW5jbHVkZWRcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInByZXZpZXdcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJQcmludCBZTUwgd2l0aCBkZWZhdWx0cywgaW5jbHVkZXMsIGV4dGVuZHMgYW5kIHJlZmVyZW5jZSdzIGV4cGFuZGVkXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJjd2RcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlBhdGggdG8gYSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImNvbXBsZXRpb25cIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkdlbmVyYXRlIHRhYiBjb21wbGV0aW9uIHNjcmlwdFwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwibmVlZHNcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJib29sZWFuXCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJSdW4gbmVlZGVkIGpvYnMsIHdoZW4gZXhlY3V0aW5nIGEgc2luZ2xlIGpvYlwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwidmFyaWFibGVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWRkIHZhcmlhYmxlIHRvIGFsbCBleGVjdXRlZCBqb2JzICgtLXZhcmlhYmxlIEhFTExPPXdvcmxkKVwiLFxuICAgICAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwicmVtb3RlLXZhcmlhYmxlc1wiLCB7XG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmV0Y2ggdmFyaWFibGVzIGZpbGUgZnJvbSByZW1vdGUgbG9jYXRpb25cIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImZpbGVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlNwZWNpZnkgY3VzdG9tIGxvY2F0aW9uIG9mIHRoZSAuZ2l0bGFiLWNpLnltbC4gUmVsYXRpdmUgdG8gY3dkLCBlZy4gKGdpdGxhYi8uZ2l0bGFiLWNpLnltbClcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImhvbWVcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJzdHJpbmdcIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlNwZWNpZnkgY3VzdG9tIEhPTUUgbG9jYXRpb24gKCRIT01FLy5naXRsYWItY2ktbG9jYWwvdmFyaWFibGVzLnltbClcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInNoZWxsLWlzb2xhdGlvblwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIkVuYWJsZSBhcnRpZmFjdCBpc29sYXRpb24gZm9yIHNoZWxsLWV4ZWN1dG9yIGpvYnNcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcIm1vdW50LWNhY2hlXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRW5hYmxlIGRvY2tlciBtb3VudCBiYXNlZCBjYWNoaW5nXCIsXG4gICAgICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJwcml2aWxlZ2VkXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiU2V0IGRvY2tlciBleGVjdXRvciB0byBwcml2aWxlZ2VkIG1vZGVcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInZvbHVtZVwiLCB7XG4gICAgICAgICAgICB0eXBlOiBcImFycmF5XCIsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJBZGQgdm9sdW1lcyB0byBkb2NrZXIgZXhlY3V0b3JcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImV4dHJhLWhvc3RcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiQWRkIGV4dHJhIGRvY2tlciBob3N0IGVudHJpZXNcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcImZldGNoLWluY2x1ZGVzXCIsIHtcbiAgICAgICAgICAgIHR5cGU6IFwiYm9vbGVhblwiLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiRmV0Y2ggYWxsIGV4dGVybmFsIGluY2x1ZGVzIG9uZSBtb3JlIHRpbWVcIixcbiAgICAgICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgfSlcbiAgICAgICAgLmNvbXBsZXRpb24oXCJjb21wbGV0aW9uXCIsIGZhbHNlLCBhc3luYyAoXywgeWFyZ3NBcmd2KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFyZ3YgPSBuZXcgQXJndih7Li4ueWFyZ3NBcmd2LCBhdXRvQ29tcGxldGluZzogdHJ1ZX0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBpcGVsaW5lSWlkID0gYXdhaXQgc3RhdGUuZ2V0UGlwZWxpbmVJaWQoYXJndi5jd2QpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcnNlciA9IGF3YWl0IFBhcnNlci5jcmVhdGUoYXJndiwgbmV3IE1vY2tXcml0ZVN0cmVhbXMoKSwgcGlwZWxpbmVJaWQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBbLi4ucGFyc2VyLmpvYnMudmFsdWVzKCldLmZpbHRlcigoaikgPT4gai53aGVuICE9IFwibmV2ZXJcIikubWFwKChqKSA9PiBqLm5hbWUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXCJQYXJzZXItRmFpbGVkIVwiXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KVxuICAgICAgICAucGFyc2UoKTtcbn0pKCk7XG5cbiJdfQ==
|