jsii-release 0.2.1018 → 0.2.1020
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 +1 -0
- package/lib/bin/publib-golang.js +2 -1
- package/lib/help/git.d.ts +27 -1
- package/lib/help/git.js +43 -9
- package/lib/help/shell.d.ts +8 -0
- package/lib/help/shell.js +18 -1
- package/lib/targets/go.d.ts +8 -0
- package/lib/targets/go.js +12 -4
- package/package.json +5 -5
- package/package.json.bak +5 -5
package/README.md
CHANGED
|
@@ -274,6 +274,7 @@ Repository tags will be in the following format:
|
|
|
274
274
|
| `GIT_USER_NAME` | Optional | Username to perform the commit with. Defaults to the git user.name config in the current directory. Fails if it doesn't exist. |
|
|
275
275
|
| `GIT_USER_EMAIL` | Optional | Email to perform the commit with. Defaults to the git user.email config in the current directory. Fails if it doesn't exist. |
|
|
276
276
|
| `GIT_COMMIT_MESSAGE` | Optional | The commit message. Defaults to 'chore(release): $VERSION'. |
|
|
277
|
+
| `GIT_CLONE_DEPTH` | Optional | The git clone depth. Usually only the latest commit is required. Defaults to 1. |
|
|
277
278
|
| `DRYRUN` | Optional | Set to "true" for a dry run. |
|
|
278
279
|
|
|
279
280
|
## Publish to CodeArtifact for testing
|
package/lib/bin/publib-golang.js
CHANGED
|
@@ -42,6 +42,7 @@ const releaser = new go.GoReleaser({
|
|
|
42
42
|
email: process.env.GIT_USER_EMAIL,
|
|
43
43
|
username: process.env.GIT_USER_NAME,
|
|
44
44
|
version: process.env.VERSION,
|
|
45
|
+
cloneDepth: process.env.GIT_CLONE_DEPTH ? parseInt(process.env.GIT_CLONE_DEPTH) || 1 : 1,
|
|
45
46
|
});
|
|
46
47
|
releaser.release();
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGliLWdvbGFuZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iaW4vcHVibGliLWdvbGFuZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxrREFBb0M7QUFFcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDO0lBQ2pDLEdBQUcsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNwQixNQUFNLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVO0lBQzlCLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLE1BQU07SUFDaEUsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYztJQUNqQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhO0lBQ25DLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU87SUFDNUIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Q0FDekYsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0ICogYXMgZ28gZnJvbSAnLi4vdGFyZ2V0cy9nbyc7XG5cbmNvbnN0IHJlbGVhc2VyID0gbmV3IGdvLkdvUmVsZWFzZXIoe1xuICBkaXI6IHByb2Nlc3MuYXJndlsyXSxcbiAgYnJhbmNoOiBwcm9jZXNzLmVudi5HSVRfQlJBTkNILFxuICBkcnlSdW46IChwcm9jZXNzLmVudi5EUllSVU4gPz8gJ2ZhbHNlJykudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnLFxuICBlbWFpbDogcHJvY2Vzcy5lbnYuR0lUX1VTRVJfRU1BSUwsXG4gIHVzZXJuYW1lOiBwcm9jZXNzLmVudi5HSVRfVVNFUl9OQU1FLFxuICB2ZXJzaW9uOiBwcm9jZXNzLmVudi5WRVJTSU9OLFxuICBjbG9uZURlcHRoOiBwcm9jZXNzLmVudi5HSVRfQ0xPTkVfREVQVEggPyBwYXJzZUludChwcm9jZXNzLmVudi5HSVRfQ0xPTkVfREVQVEgpIHx8IDEgOiAxLFxufSk7XG5cbnJlbGVhc2VyLnJlbGVhc2UoKTtcbiJdfQ==
|
package/lib/help/git.d.ts
CHANGED
|
@@ -1,10 +1,24 @@
|
|
|
1
|
+
export interface CloneOptions {
|
|
2
|
+
/**
|
|
3
|
+
* @default 1
|
|
4
|
+
*/
|
|
5
|
+
readonly depth?: number;
|
|
6
|
+
/**
|
|
7
|
+
* @default false
|
|
8
|
+
*/
|
|
9
|
+
readonly tags?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* @default - default branch
|
|
12
|
+
*/
|
|
13
|
+
readonly branch?: string;
|
|
14
|
+
}
|
|
1
15
|
/**
|
|
2
16
|
* Clones a repository from GitHub. Requires a `GITHUB_TOKEN` env variable.
|
|
3
17
|
*
|
|
4
18
|
* @param repositoryUrl the repository to clone.
|
|
5
19
|
* @param targetDir the clone directory.
|
|
6
20
|
*/
|
|
7
|
-
export declare function clone(repositoryUrl: string, targetDir: string): void;
|
|
21
|
+
export declare function clone(repositoryUrl: string, targetDir: string, { depth, tags, branch }?: CloneOptions): void;
|
|
8
22
|
/**
|
|
9
23
|
* Checks if the current environment is an GHE environment.
|
|
10
24
|
*
|
|
@@ -38,6 +52,14 @@ export declare function diffIndex(): boolean;
|
|
|
38
52
|
* @param p the path.
|
|
39
53
|
*/
|
|
40
54
|
export declare function add(p: string): void;
|
|
55
|
+
/**
|
|
56
|
+
* Remove files from the working tree and from the index
|
|
57
|
+
*
|
|
58
|
+
* @param p the path.
|
|
59
|
+
*/
|
|
60
|
+
export declare function rm(p: string, options?: {
|
|
61
|
+
recursive?: boolean;
|
|
62
|
+
}): void;
|
|
41
63
|
/**
|
|
42
64
|
* Commit.
|
|
43
65
|
*
|
|
@@ -87,3 +109,7 @@ export declare function email(): string | undefined;
|
|
|
87
109
|
* @param email the email address.
|
|
88
110
|
*/
|
|
89
111
|
export declare function identify(user: string, address: string): void;
|
|
112
|
+
/**
|
|
113
|
+
* Does the given branch exists on the remote.
|
|
114
|
+
*/
|
|
115
|
+
export declare function branchExistsOnRemote(repositoryUrl: string, branch: string): boolean;
|
package/lib/help/git.js
CHANGED
|
@@ -39,6 +39,7 @@ exports.getToken = getToken;
|
|
|
39
39
|
exports.detectSSH = detectSSH;
|
|
40
40
|
exports.diffIndex = diffIndex;
|
|
41
41
|
exports.add = add;
|
|
42
|
+
exports.rm = rm;
|
|
42
43
|
exports.commit = commit;
|
|
43
44
|
exports.init = init;
|
|
44
45
|
exports.tag = tag;
|
|
@@ -47,6 +48,7 @@ exports.checkout = checkout;
|
|
|
47
48
|
exports.username = username;
|
|
48
49
|
exports.email = email;
|
|
49
50
|
exports.identify = identify;
|
|
51
|
+
exports.branchExistsOnRemote = branchExistsOnRemote;
|
|
50
52
|
const shell = __importStar(require("./shell"));
|
|
51
53
|
/**
|
|
52
54
|
* Clones a repository from GitHub. Requires a `GITHUB_TOKEN` env variable.
|
|
@@ -54,19 +56,32 @@ const shell = __importStar(require("./shell"));
|
|
|
54
56
|
* @param repositoryUrl the repository to clone.
|
|
55
57
|
* @param targetDir the clone directory.
|
|
56
58
|
*/
|
|
57
|
-
function clone(repositoryUrl, targetDir) {
|
|
59
|
+
function clone(repositoryUrl, targetDir, { depth = 1, tags = false, branch } = {}) {
|
|
60
|
+
const cmd = ['git', 'clone'];
|
|
61
|
+
if (depth) {
|
|
62
|
+
cmd.push(`--depth ${depth}`);
|
|
63
|
+
}
|
|
64
|
+
if (branch) {
|
|
65
|
+
cmd.push(`--branch ${branch}`);
|
|
66
|
+
}
|
|
67
|
+
if (tags) {
|
|
68
|
+
cmd.push('--tags');
|
|
69
|
+
}
|
|
70
|
+
cmd.push(tryDetectRepositoryUrl(repositoryUrl));
|
|
71
|
+
cmd.push(targetDir);
|
|
72
|
+
shell.run(cmd.join(' '));
|
|
73
|
+
}
|
|
74
|
+
function tryDetectRepositoryUrl(repositoryUrl) {
|
|
58
75
|
const gitHubUseSsh = detectSSH();
|
|
59
76
|
if (gitHubUseSsh) {
|
|
60
77
|
const sshRepositoryUrl = repositoryUrl.replace('/', ':');
|
|
61
|
-
|
|
78
|
+
return `git@${sshRepositoryUrl}.git`;
|
|
62
79
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
throw new Error('GITHUB_TOKEN env variable is required when GITHUB_USE_SSH env variable is not used');
|
|
67
|
-
}
|
|
68
|
-
shell.run(`git clone https://${gitHubToken}@${repositoryUrl}.git ${targetDir}`);
|
|
80
|
+
const gitHubToken = getToken(detectGHE());
|
|
81
|
+
if (!gitHubToken) {
|
|
82
|
+
throw new Error('GITHUB_TOKEN env variable is required when GITHUB_USE_SSH env variable is not used');
|
|
69
83
|
}
|
|
84
|
+
return `https://${gitHubToken}@${repositoryUrl}.git`;
|
|
70
85
|
}
|
|
71
86
|
/**
|
|
72
87
|
* Checks if the current environment is an GHE environment.
|
|
@@ -124,6 +139,19 @@ function diffIndex() {
|
|
|
124
139
|
function add(p) {
|
|
125
140
|
shell.run(`git add ${p}`);
|
|
126
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Remove files from the working tree and from the index
|
|
144
|
+
*
|
|
145
|
+
* @param p the path.
|
|
146
|
+
*/
|
|
147
|
+
function rm(p, options = {}) {
|
|
148
|
+
const cmd = ['git', 'rm'];
|
|
149
|
+
if (options.recursive) {
|
|
150
|
+
cmd.push('-r');
|
|
151
|
+
}
|
|
152
|
+
cmd.push(p);
|
|
153
|
+
shell.run(cmd.join(' '));
|
|
154
|
+
}
|
|
127
155
|
/**
|
|
128
156
|
* Commit.
|
|
129
157
|
*
|
|
@@ -225,4 +253,10 @@ function identify(user, address) {
|
|
|
225
253
|
shell.run(`git config user.name "${user}"`);
|
|
226
254
|
shell.run(`git config user.email "${address}"`);
|
|
227
255
|
}
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHAvZ2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUUEsc0JBYUM7QUFXRCw4QkFNQztBQVFELDRCQU1DO0FBT0QsOEJBRUM7QUFPRCw4QkFPQztBQU9ELGtCQUVDO0FBT0Qsd0JBRUM7QUFLRCxvQkFFQztBQVFELGtCQVVDO0FBT0Qsb0JBRUM7QUFRRCw0QkFhQztBQU1ELDRCQVNDO0FBTUQsc0JBU0M7QUFRRCw0QkFHQztBQTdMRCwrQ0FBaUM7QUFFakM7Ozs7O0dBS0c7QUFDSCxTQUFnQixLQUFLLENBQUMsYUFBcUIsRUFBRSxTQUFpQjtJQUM1RCxNQUFNLFlBQVksR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUNqQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDekQsS0FBSyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsZ0JBQWdCLFFBQVEsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO1NBQU0sQ0FBQztRQUNOLE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLG9GQUFvRixDQUFDLENBQUM7UUFDeEcsQ0FBQztRQUNELEtBQUssQ0FBQyxHQUFHLENBQUMscUJBQXFCLFdBQVcsSUFBSSxhQUFhLFFBQVEsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUVsRixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsU0FBUztJQUN2QixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQztJQUNoRCxNQUFNLE1B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S0FBSyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsSUFBSSxHQUFHLENBQUMsQ0FBQztJQUM1QyxLQUFLLENBQUMsR0FBRyxDQUFDLDBCQUEwQixPQUFPLEdBQUcsQ0FBQyxDQUFDO0FBQ2xELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBzaGVsbCBmcm9tICcuL3NoZWxsJztcblxuLyoqXG4gKiBDbG9uZXMgYSByZXBvc2l0b3J5IGZyb20gR2l0SHViLiBSZXF1aXJlcyBhIGBHSVRIVUJfVE9LRU5gIGVudiB2YXJpYWJsZS5cbiAqXG4gKiBAcGFyYW0gcmVwb3NpdG9yeVVybCB0aGUgcmVwb3NpdG9yeSB0byBjbG9uZS5cbiAqIEBwYXJhbSB0YXJnZXREaXIgdGhlIGNsb25lIGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsb25lKHJlcG9zaXRvcnlVcmw6IHN0cmluZywgdGFyZ2V0RGlyOiBzdHJpbmcpIHtcbiAgY29uc3QgZ2l0SHViVXNlU3NoID0gZGV0ZWN0U1NIKCk7XG4gIGlmIChnaXRIdWJVc2VTc2gpIHtcbiAgICBjb25zdCBzc2hSZXBvc2l0b3J5VXJsID0gcmVwb3NpdG9yeVVybC5yZXBsYWNlKCcvJywgJzonKTtcbiAgICBzaGVsbC5ydW4oYGdpdCBjbG9uZSBnaXRAJHtzc2hSZXBvc2l0b3J5VXJsfS5naXQgJHt0YXJnZXREaXJ9YCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgZ2l0SHViVG9rZW4gPSBnZXRUb2tlbihkZXRlY3RHSEUoKSk7XG4gICAgaWYgKCFnaXRIdWJUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdHSVRIVUJfVE9LRU4gZW52IHZhcmlhYmxlIGlzIHJlcXVpcmVkIHdoZW4gR0lUSFVCX1VTRV9TU0ggZW52IHZhcmlhYmxlIGlzIG5vdCB1c2VkJyk7XG4gICAgfVxuICAgIHNoZWxsLnJ1bihgZ2l0IGNsb25lIGh0dHBzOi8vJHtnaXRIdWJUb2tlbn1AJHtyZXBvc2l0b3J5VXJsfS5naXQgJHt0YXJnZXREaXJ9YCk7XG5cbiAgfVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiB0aGUgY3VycmVudCBlbnZpcm9ubWVudCBpcyBhbiBHSEUgZW52aXJvbm1lbnQuXG4gKlxuICogVGhpcyBjaGVjayBpcyB1c2luZyBHSVRIVUJfQVBJX1VSTCBzZXQgaW4gR2l0SHViIEFjdGlvbnMgd29ya2Zsb3csIGFzIHdlbGwgYXMgY29tbW9uIGdoIGNsaSBlbnYgdmFyaWFibGVzLlxuICogaHR0cHM6Ly9kb2NzLmdpdGh1Yi5jb20vZW4vYWN0aW9ucy9sZWFybi1naXRodWItYWN0aW9ucy92YXJpYWJsZXMjZGVmYXVsdC1lbnZpcm9ubWVudC12YXJpYWJsZXNcbiAqIGh0dHBzOi8vY2xpLmdpdGh1Yi5jb20vbWFudWFsL2doX2hlbHBfZW52aXJvbm1lbnRcbiAqXG4gKiBAcmV0dXJuIC0gYHRydWVgIGlmIEdIX0hPU1Qgb3IgR0lUSFVCX0FQSV9VUkwgZW52IHZhciBhcmUgZGVmaW5lZCBhbmQgbm90IGVxdWFsIHRvIHRoZSBwdWJsaWMgZ2l0aHViIGVuZHBvaW50LCBvdGhlcndpc2UgYGZhbHNlYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGV0ZWN0R0hFKCk6IGJvb2xlYW4ge1xuICBjb25zdCBnaXRodWJBcGlVcmwgPSBwcm9jZXNzLmVudi5HSVRIVUJfQVBJX1VSTDtcbiAgY29uc3QgZ2hIb3N0ID0gcHJvY2Vzcy5lbnYuR0hfSE9TVDtcblxuICByZXR1cm4gKEJvb2xlYW4oZ2hIb3N0KSAmJiBnaEhvc3QhLnRyaW0oKS50b0xvd2VyQ2FzZSgpICE9ICdnaXRodWIuY29tJylcbiAgICB8fCAoQm9vbGVhbihnaXRodWJBcGlVcmwpICYmIGdpdGh1YkFwaVVybCEudHJpbSgpLnRvTG93ZXJDYXNlKCkgIT0gJ2h0dHBzOi8vYXBpLmdpdGh1Yi5jb20nKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGFuIGFwcHJvcHJpYXRlIGdpdGh1YiB0b2tlbiBmcm9tIHRoZSBlbnZpcm9ubWVudC5cbiAqXG4gKiBAcmV0dXJuIEdIX0VOVEVSUFJJU0VfVE9LRU4gb3IgR0lUSFVCX0VOVEVSUFJJU0VfVE9LRU4gb3IgR0lUSFVCX1RPS0VOIGlmIGluIGFuIEdIRSBlbnZpcm9ubWVudCwgb3RoZXJ3aXNlIEdJVEhVQl9UT0tFTlxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb2tlbihpc0dIRTogYm9vbGVhbik6IChzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgaWYgKGlzR0hFKSB7XG4gICAgY29uc3QgZ2l0aHViRW50ZXJwaXNlVG9rZW4gPSBwcm9jZXNzLmVudi5HSF9FTlRFUlBSSVNFX1RPS0VOID8/IHByb2Nlc3MuZW52LkdJVEhVQl9FTlRFUlBSSVNFX1RPS0VOID8/IHByb2Nlc3MuZW52LkdJVEhVQl9UT0tFTjtcbiAgICByZXR1cm4gZ2l0aHViRW50ZXJwaXNlVG9rZW47XG4gIH1cbiAgcmV0dXJuIHByb2Nlc3MuZW52LkdJVEhVQl9UT0tFTjtcbn1cblxuLyoqXG4gKiBDaGVja3MgaWYgU1NIIHNob3VsZCBiZSB1c2VkIHRvIGNsb25lIHJlcG8uXG4gKiBUaGlzIGNoZWNrcyB0aGUgcHJlc2VuY2UgYW5kIHZhbHVlcyBvZiB0aGUgR0lUX1VTRV9TU0ggZW52IHZhcmlhYmxlIGFuZCB0aGUgZGVwcmVjYXRlZCBHSVRIVUJfVVNFX1NTSCBmb3IgbGVnYWN5IHJlYXNvbi4gUmV0dXJucyB0cnVlIGlmIGVpdGhlciBvZiB0aGVzZSBlbnYgdmFycyBhcmUgZGVmaW5lZCBhbmQgbm90IGZhbHN5LlxuICovXG5cbmV4cG9ydCBmdW5jdGlvbiBkZXRlY3RTU0goKTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKHByb2Nlc3MuZW52LkdJVF9VU0VfU1NIID8/IHByb2Nlc3MuZW52LkdJVEhVQl9VU0VfU1NIKTtcbn1cblxuLyoqXG4gKiBRdWVyeSB0aGUgZ2l0IGluZGV4IGZvciBjaGFuZ2VzLlxuICpcbiAqIEByZXR1cm4gVHJ1ZSBpZiBjaGFuZ2VzIGV4aXN0LCBGYWxzZSBvdGhlcndpc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkaWZmSW5kZXgoKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgc2hlbGwucnVuKCdnaXQgZGlmZi1pbmRleCAtLWV4aXQtY29kZSBIRUFEIC0tJyk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxufVxuXG4vKipcbiAqIEFkZCBmaWxlcyB0byB0aGUgaW5kZXguXG4gKlxuICogQHBhcmFtIHAgdGhlIHBhdGguXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGQocDogc3RyaW5nKSB7XG4gIHNoZWxsLnJ1bihgZ2l0IGFkZCAke3B9YCk7XG59XG5cbi8qKlxuICogQ29tbWl0LlxuICpcbiAqIEBwYXJhbSBtZXNzYWdlIHRoZSBjb21taXQgbWVzc2FnZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbW1pdChtZXNzYWdlOiBzdHJpbmcpIHtcbiAgc2hlbGwucnVuKGBnaXQgY29tbWl0IC1tIFwiJHttZXNzYWdlfVwiYCk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbml0KCkge1xuICBzaGVsbC5ydW4oJ2dpdCBpbml0Jyk7XG59XG5cbi8qKlxuICogQ2VyYXRlIGEgdGFnLlxuICpcbiAqIEBwYXJhbSBuYW1lIHRhZyBuYW1lLlxuICogQHJldHVybnMgdHJ1ZSBpZiB0aGUgdGFnIHdhcyBjcmVhdGVkLCBmYWxzZSBpZiBpdCBhbHJlYWR5IGV4aXN0cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRhZyhuYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBzaGVsbC5ydW4oYGdpdCB0YWcgLWEgJHtuYW1lfSAtbSAke25hbWV9YCwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKGUgaW5zdGFuY2VvZiBFcnJvciAmJiBlLm1lc3NhZ2UuaW5jbHVkZXMoJ2FscmVhZHkgZXhpc3RzJykpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhyb3cgZTtcbiAgfVxufVxuXG4vKipcbiAqIFB1c2ggYSByZWYgdG8gb3JpZ2luLlxuICpcbiAqIEBwYXJhbSByZWYgdGhlIHJlZlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHVzaChyZWY6IHN0cmluZykge1xuICBzaGVsbC5ydW4oYGdpdCBwdXNoIG9yaWdpbiAke3JlZn1gKTtcbn1cblxuLyoqXG4gKiBDaGVja291dCB0byBhIG5ldyBicmFuY2guIENyZWF0ZXMgYSBuZXcgb25lIGlmIGBvcHRpb25zLmNyZWF0ZUlmTWlzc2luZ2AgaXMgVHJ1ZSBhbmQgdGhlIGJyYW5jaCBkb2Vzbid0IGV4aXN0LlxuICpcbiAqIEBwYXJhbSBicmFuY2ggdGhlIGJyYW5jaC5cbiAqIEBwYXJhbSBvcHRpb25zIG9wdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja291dChicmFuY2g6IHN0cmluZywgb3B0aW9uczogeyBjcmVhdGVJZk1pc3Npbmc/OiBib29sZWFuIH0gKSB7XG4gIGlmIChvcHRpb25zLmNyZWF0ZUlmTWlzc2luZykge1xuICAgIHRyeSB7XG4gICAgICBzaGVsbC5ydW4oYGdpdCBzaG93LWJyYW5jaCBvcmlnaW4vJHticmFuY2h9YCwgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5tZXNzYWdlLmluY2x1ZGVzKCdmYXRhbDogYmFkIHNoYTEgcmVmZXJlbmNlJykpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ1JlbW90ZSBicmFuY2ggbm90IGZvdW5kLCBjcmVhdGluZyBuZXcgYnJhbmNoLicpO1xuICAgICAgICBzaGVsbC5ydW4oYGdpdCBjaGVja291dCAtQiAke2JyYW5jaH1gKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBzaGVsbC5ydW4oYGdpdCBjaGVja291dCAke2JyYW5jaH1gKTtcbn1cblxuLyoqXG4gKiBGZXRjaCB0aGUgY29uZmlndXJlZCBnaXQgdXNlciBuYW1lIGZvciB0aGUgY3VycmVudCBkaXJlY3RvcnkuXG4gKiBSZXR1cm5zIHVuZGVmaW5lZCBpZiBub3QgY29uZmlndXJlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZXJuYW1lKCkge1xuICB0cnkge1xuICAgIHJldHVybiBzaGVsbC5ydW4oJ2dpdCBjb25maWcgdXNlci5uYW1lJywgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybihlcnIubWVzc2FnZSk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBGZXRjaCB0aGUgY29uZmlndXJlZCBnaXQgdXNlciBlbWFpbCBmb3IgdGhlIGN1cnJlbnQgZGlyZWN0b3J5LlxuICogUmV0dXJucyB1bmRlZmluZWQgaWYgbm90IGNvbmZpZ3VyZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbWFpbCgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gc2hlbGwucnVuKCdnaXQgY29uZmlnIHVzZXIuZW1haWwnLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgY29uc29sZS53YXJuKGVyci5tZXNzYWdlKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuXG4vKipcbiAqIElkZW50aWZ5IHRoZSBjb21taXR0ZXIgd2l0aCBhIHVzZXJuYW1lIGFuZCBlbWFpbC5cbiAqXG4gKiBAcGFyYW0gdXNlciB0aGUgdXNlcm5hbWUuXG4gKiBAcGFyYW0gZW1haWwgdGhlIGVtYWlsIGFkZHJlc3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpZGVudGlmeSh1c2VyOiBzdHJpbmcsIGFkZHJlc3M6IHN0cmluZykge1xuICBzaGVsbC5ydW4oYGdpdCBjb25maWcgdXNlci5uYW1lIFwiJHt1c2VyfVwiYCk7XG4gIHNoZWxsLnJ1bihgZ2l0IGNvbmZpZyB1c2VyLmVtYWlsIFwiJHthZGRyZXNzfVwiYCk7XG59XG4iXX0=
|
|
256
|
+
/**
|
|
257
|
+
* Does the given branch exists on the remote.
|
|
258
|
+
*/
|
|
259
|
+
function branchExistsOnRemote(repositoryUrl, branch) {
|
|
260
|
+
return shell.check(`git ls-remote --exit-code --heads ${tryDetectRepositoryUrl(repositoryUrl)} ${branch}`, { capture: true });
|
|
261
|
+
}
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hlbHAvZ2l0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBeUJBLHNCQW1CQztBQXlCRCw4QkFNQztBQVFELDRCQU1DO0FBT0QsOEJBRUM7QUFPRCw4QkFPQztBQU9ELGtCQUVDO0FBT0QsZ0JBU0M7QUFPRCx3QkFFQztBQUtELG9CQUVDO0FBUUQsa0JBVUM7QUFPRCxvQkFFQztBQVFELDRCQWFDO0FBTUQsNEJBU0M7QUFNRCxzQkFTQztBQVFELDRCQUdDO0FBS0Qsb0RBRUM7QUF6UEQsK0NBQWlDO0FBbUJqQzs7Ozs7R0FLRztBQUNILFNBQWdCLEtBQUssQ0FBQyxhQUFxQixFQUFFLFNBQWlCLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLElBQUksR0FBRyxLQUFLLEVBQUUsTUFBTSxLQUFtQixFQUFFO0lBQ3BILE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRTdCLElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNYLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ1QsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO0lBQ2hELEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFcEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcs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LE9BQU8sR0FBRyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsYUFBcUIsRUFBRSxNQUFjO0lBQ3hFLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLElBQUksTUFBTSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNoSSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgc2hlbGwgZnJvbSAnLi9zaGVsbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvbmVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGRlcHRoPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBicmFuY2hcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDbG9uZXMgYSByZXBvc2l0b3J5IGZyb20gR2l0SHViLiBSZXF1aXJlcyBhIGBHSVRIVUJfVE9LRU5gIGVudiB2YXJpYWJsZS5cbiAqXG4gKiBAcGFyYW0gcmVwb3NpdG9yeVVybCB0aGUgcmVwb3NpdG9yeSB0byBjbG9uZS5cbiAqIEBwYXJhbSB0YXJnZXREaXIgdGhlIGNsb25lIGRpcmVjdG9yeS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsb25lKHJlcG9zaXRvcnlVcmw6IHN0cmluZywgdGFyZ2V0RGlyOiBzdHJpbmcsIHsgZGVwdGggPSAxLCB0YWdzID0gZmFsc2UsIGJyYW5jaCB9OiBDbG9uZU9wdGlvbnMgPSB7fSkge1xuICBjb25zdCBjbWQgPSBbJ2dpdCcsICdjbG9uZSddO1xuXG4gIGlmIChkZXB0aCkge1xuICAgIGNtZC5wdXNoKGAtLWRlcHRoICR7ZGVwdGh9YCk7XG4gIH1cblxuICBpZiAoYnJhbmNoKSB7XG4gICAgY21kLnB1c2goYC0tYnJhbmNoICR7YnJhbmNofWApO1xuICB9XG5cbiAgaWYgKHRhZ3MpIHtcbiAgICBjbWQucHVzaCgnLS10YWdzJyk7XG4gIH1cblxuICBjbWQucHVzaCh0cnlEZXRlY3RSZXBvc2l0b3J5VXJsKHJlcG9zaXRvcnlVcmwpKTtcbiAgY21kLnB1c2godGFyZ2V0RGlyKTtcblxuICBzaGVsbC5ydW4oY21kLmpvaW4oJyAnKSk7XG59XG5cbmZ1bmN0aW9uIHRyeURldGVjdFJlcG9zaXRvcnlVcmwocmVwb3NpdG9yeVVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZ2l0SHViVXNlU3NoID0gZGV0ZWN0U1NIKCk7XG4gIGlmIChnaXRIdWJVc2VTc2gpIHtcbiAgICBjb25zdCBzc2hSZXBvc2l0b3J5VXJsID0gcmVwb3NpdG9yeVVybC5yZXBsYWNlKCcvJywgJzonKTtcbiAgICByZXR1cm4gYGdpdEAke3NzaFJlcG9zaXRvcnlVcmx9LmdpdGA7XG4gIH1cblxuICBjb25zdCBnaXRIdWJUb2tlbiA9IGdldFRva2VuKGRldGVjdEdIRSgpKTtcbiAgaWYgKCFnaXRIdWJUb2tlbikge1xuICAgIHRocm93IG5ldyBFcnJvcignR0lUSFVCX1RPS0VOIGVudiB2YXJpYWJsZSBpcyByZXF1aXJlZCB3aGVuIEdJVEhVQl9VU0VfU1NIIGVudiB2YXJpYWJsZSBpcyBub3QgdXNlZCcpO1xuICB9XG4gIHJldHVybiBgaHR0cHM6Ly8ke2dpdEh1YlRva2VufUAke3JlcG9zaXRvcnlVcmx9LmdpdGA7XG59XG5cbi8qKlxuICogQ2hlY2tzIGlmIHRoZSBjdXJyZW50IGVudmlyb25tZW50IGlzIGFuIEdIRSBlbnZpcm9ubWVudC5cbiAqXG4gKiBUaGlzIGNoZWNrIGlzIHVzaW5nIEdJVEhVQl9BUElfVVJMIHNldCBpbiBHaXRIdWIgQWN0aW9ucyB3b3JrZmxvdywgYXMgd2VsbCBhcyBjb21tb24gZ2ggY2xpIGVudiB2YXJpYWJsZXMuXG4gKiBodHRwczovL2RvY3MuZ2l0aHViLmNvbS9lbi9hY3Rpb25zL2xlYXJuLWdpdGh1Yi1hY3Rpb25zL3ZhcmlhYmxlcyNkZWZhdWx0LWVudmlyb25tZW50LXZhcmlhYmxlc1xuICogaHR0cHM6Ly9jbGkuZ2l0aHViLmNvbS9tYW51YWwvZ2hfaGVscF9lbnZpcm9ubWVudFxuICpcbiAqIEByZXR1cm4gLSBgdHJ1ZWAgaWYgR0hfSE9TVCBvciBHSVRIVUJfQVBJX1VSTCBlbnYgdmFyIGFyZSBkZWZpbmVkIGFuZCBub3QgZXF1YWwgdG8gdGhlIHB1YmxpYyBnaXRodWIgZW5kcG9pbnQsIG90aGVyd2lzZSBgZmFsc2VgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXRlY3RHSEUoKTogYm9vbGVhbiB7XG4gIGNvbnN0IGdpdGh1YkFwaVVybCA9IHByb2Nlc3MuZW52LkdJVEhVQl9BUElfVVJMO1xuICBjb25zdCBnaEhvc3QgPSBwcm9jZXNzLmVudi5HSF9IT1NUO1xuXG4gIHJldHVybiAoQm9vbGVhbihnaEhvc3QpICYmIGdoSG9zdCEudHJpbSgpLnRvTG93ZXJDYXNlKCkgIT0gJ2dpdGh1Yi5jb20nKVxuICAgIHx8IChCb29sZWFuKGdpdGh1YkFwaVVybCkgJiYgZ2l0aHViQXBpVXJsIS50cmltKCkudG9Mb3dlckNhc2UoKSAhPSAnaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbScpO1xufVxuXG4vKipcbiAqIFJldHVybnMgYW4gYXBwcm9wcmlhdGUgZ2l0aHViIHRva2VuIGZyb20gdGhlIGVudmlyb25tZW50LlxuICpcbiAqIEByZXR1cm4gR0hfRU5URVJQUklTRV9UT0tFTiBvciBHSVRIVUJfRU5URVJQUklTRV9UT0tFTiBvciBHSVRIVUJfVE9LRU4gaWYgaW4gYW4gR0hFIGVudmlyb25tZW50LCBvdGhlcndpc2UgR0lUSFVCX1RPS0VOXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRva2VuKGlzR0hFOiBib29sZWFuKTogKHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICBpZiAoaXNHSEUpIHtcbiAgICBjb25zdCBnaXRodWJFbnRlcnBpc2VUb2tlbiA9IHByb2Nlc3MuZW52LkdIX0VOVEVSUFJJU0VfVE9LRU4gPz8gcHJvY2Vzcy5lbnYuR0lUSFVCX0VOVEVSUFJJU0VfVE9LRU4gPz8gcHJvY2Vzcy5lbnYuR0lUSFVCX1RPS0VOO1xuICAgIHJldHVybiBnaXRodWJFbnRlcnBpc2VUb2tlbjtcbiAgfVxuICByZXR1cm4gcHJvY2Vzcy5lbnYuR0lUSFVCX1RPS0VOO1xufVxuXG4vKipcbiAqIENoZWNrcyBpZiBTU0ggc2hvdWxkIGJlIHVzZWQgdG8gY2xvbmUgcmVwby5cbiAqIFRoaXMgY2hlY2tzIHRoZSBwcmVzZW5jZSBhbmQgdmFsdWVzIG9mIHRoZSBHSVRfVVNFX1NTSCBlbnYgdmFyaWFibGUgYW5kIHRoZSBkZXByZWNhdGVkIEdJVEhVQl9VU0VfU1NIIGZvciBsZWdhY3kgcmVhc29uLiBSZXR1cm5zIHRydWUgaWYgZWl0aGVyIG9mIHRoZXNlIGVudiB2YXJzIGFyZSBkZWZpbmVkIGFuZCBub3QgZmFsc3kuXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGRldGVjdFNTSCgpOiBib29sZWFuIHtcbiAgcmV0dXJuIEJvb2xlYW4ocHJvY2Vzcy5lbnYuR0lUX1VTRV9TU0ggPz8gcHJvY2Vzcy5lbnYuR0lUSFVCX1VTRV9TU0gpO1xufVxuXG4vKipcbiAqIFF1ZXJ5IHRoZSBnaXQgaW5kZXggZm9yIGNoYW5nZXMuXG4gKlxuICogQHJldHVybiBUcnVlIGlmIGNoYW5nZXMgZXhpc3QsIEZhbHNlIG90aGVyd2lzZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZJbmRleCgpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICBzaGVsbC5ydW4oJ2dpdCBkaWZmLWluZGV4IC0tZXhpdC1jb2RlIEhFQUQgLS0nKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG59XG5cbi8qKlxuICogQWRkIGZpbGVzIHRvIHRoZSBpbmRleC5cbiAqXG4gKiBAcGFyYW0gcCB0aGUgcGF0aC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZChwOiBzdHJpbmcpIHtcbiAgc2hlbGwucnVuKGBnaXQgYWRkICR7cH1gKTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgZmlsZXMgZnJvbSB0aGUgd29ya2luZyB0cmVlIGFuZCBmcm9tIHRoZSBpbmRleFxuICpcbiAqIEBwYXJhbSBwIHRoZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcm0ocDogc3RyaW5nLCBvcHRpb25zOiB7IHJlY3Vyc2l2ZT86IGJvb2xlYW4gfSA9IHt9KSB7XG4gIGNvbnN0IGNtZCA9IFsnZ2l0JywgJ3JtJ107XG4gIGlmIChvcHRpb25zLnJlY3Vyc2l2ZSkge1xuICAgIGNtZC5wdXNoKCctcicpO1xuICB9XG5cbiAgY21kLnB1c2gocCk7XG5cbiAgc2hlbGwucnVuKGNtZC5qb2luKCcgJykpO1xufVxuXG4vKipcbiAqIENvbW1pdC5cbiAqXG4gKiBAcGFyYW0gbWVzc2FnZSB0aGUgY29tbWl0IG1lc3NhZ2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21taXQobWVzc2FnZTogc3RyaW5nKSB7XG4gIHNoZWxsLnJ1bihgZ2l0IGNvbW1pdCAtbSBcIiR7bWVzc2FnZX1cImApO1xufVxuXG4vKipcbiAqIEluaXRpYWxpemUgYSByZXBvc2l0b3J5LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdCgpIHtcbiAgc2hlbGwucnVuKCdnaXQgaW5pdCcpO1xufVxuXG4vKipcbiAqIENlcmF0ZSBhIHRhZy5cbiAqXG4gKiBAcGFyYW0gbmFtZSB0YWcgbmFtZS5cbiAqIEByZXR1cm5zIHRydWUgaWYgdGhlIHRhZyB3YXMgY3JlYXRlZCwgZmFsc2UgaWYgaXQgYWxyZWFkeSBleGlzdHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0YWcobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgc2hlbGwucnVuKGBnaXQgdGFnIC1hICR7bmFtZX0gLW0gJHtuYW1lfWAsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChlIGluc3RhbmNlb2YgRXJyb3IgJiYgZS5tZXNzYWdlLmluY2x1ZGVzKCdhbHJlYWR5IGV4aXN0cycpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRocm93IGU7XG4gIH1cbn1cblxuLyoqXG4gKiBQdXNoIGEgcmVmIHRvIG9yaWdpbi5cbiAqXG4gKiBAcGFyYW0gcmVmIHRoZSByZWZcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHB1c2gocmVmOiBzdHJpbmcpIHtcbiAgc2hlbGwucnVuKGBnaXQgcHVzaCBvcmlnaW4gJHtyZWZ9YCk7XG59XG5cbi8qKlxuICogQ2hlY2tvdXQgdG8gYSBuZXcgYnJhbmNoLiBDcmVhdGVzIGEgbmV3IG9uZSBpZiBgb3B0aW9ucy5jcmVhdGVJZk1pc3NpbmdgIGlzIFRydWUgYW5kIHRoZSBicmFuY2ggZG9lc24ndCBleGlzdC5cbiAqXG4gKiBAcGFyYW0gYnJhbmNoIHRoZSBicmFuY2guXG4gKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tvdXQoYnJhbmNoOiBzdHJpbmcsIG9wdGlvbnM6IHsgY3JlYXRlSWZNaXNzaW5nPzogYm9vbGVhbiB9ICkge1xuICBpZiAob3B0aW9ucy5jcmVhdGVJZk1pc3NpbmcpIHtcbiAgICB0cnkge1xuICAgICAgc2hlbGwucnVuKGBnaXQgc2hvdy1icmFuY2ggb3JpZ2luLyR7YnJhbmNofWAsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBpZiAoZSBpbnN0YW5jZW9mIEVycm9yICYmIGUubWVzc2FnZS5pbmNsdWRlcygnZmF0YWw6IGJhZCBzaGExIHJlZmVyZW5jZScpKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdSZW1vdGUgYnJhbmNoIG5vdCBmb3VuZCwgY3JlYXRpbmcgbmV3IGJyYW5jaC4nKTtcbiAgICAgICAgc2hlbGwucnVuKGBnaXQgY2hlY2tvdXQgLUIgJHticmFuY2h9YCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgc2hlbGwucnVuKGBnaXQgY2hlY2tvdXQgJHticmFuY2h9YCk7XG59XG5cbi8qKlxuICogRmV0Y2ggdGhlIGNvbmZpZ3VyZWQgZ2l0IHVzZXIgbmFtZSBmb3IgdGhlIGN1cnJlbnQgZGlyZWN0b3J5LlxuICogUmV0dXJucyB1bmRlZmluZWQgaWYgbm90IGNvbmZpZ3VyZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VybmFtZSgpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gc2hlbGwucnVuKCdnaXQgY29uZmlnIHVzZXIubmFtZScsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBjb25zb2xlLndhcm4oZXJyLm1lc3NhZ2UpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8qKlxuICogRmV0Y2ggdGhlIGNvbmZpZ3VyZWQgZ2l0IHVzZXIgZW1haWwgZm9yIHRoZSBjdXJyZW50IGRpcmVjdG9yeS5cbiAqIFJldHVybnMgdW5kZWZpbmVkIGlmIG5vdCBjb25maWd1cmVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZW1haWwoKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHNoZWxsLnJ1bignZ2l0IGNvbmZpZyB1c2VyLmVtYWlsJywgeyBjYXB0dXJlOiB0cnVlIH0pO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGNvbnNvbGUud2FybihlcnIubWVzc2FnZSk7XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBJZGVudGlmeSB0aGUgY29tbWl0dGVyIHdpdGggYSB1c2VybmFtZSBhbmQgZW1haWwuXG4gKlxuICogQHBhcmFtIHVzZXIgdGhlIHVzZXJuYW1lLlxuICogQHBhcmFtIGVtYWlsIHRoZSBlbWFpbCBhZGRyZXNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaWRlbnRpZnkodXNlcjogc3RyaW5nLCBhZGRyZXNzOiBzdHJpbmcpIHtcbiAgc2hlbGwucnVuKGBnaXQgY29uZmlnIHVzZXIubmFtZSBcIiR7dXNlcn1cImApO1xuICBzaGVsbC5ydW4oYGdpdCBjb25maWcgdXNlci5lbWFpbCBcIiR7YWRkcmVzc31cImApO1xufVxuXG4vKipcbiAqIERvZXMgdGhlIGdpdmVuIGJyYW5jaCBleGlzdHMgb24gdGhlIHJlbW90ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJyYW5jaEV4aXN0c09uUmVtb3RlKHJlcG9zaXRvcnlVcmw6IHN0cmluZywgYnJhbmNoOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIHNoZWxsLmNoZWNrKGBnaXQgbHMtcmVtb3RlIC0tZXhpdC1jb2RlIC0taGVhZHMgJHt0cnlEZXRlY3RSZXBvc2l0b3J5VXJsKHJlcG9zaXRvcnlVcmwpfSAke2JyYW5jaH1gLCB7IGNhcHR1cmU6IHRydWUgfSk7XG59XG4iXX0=
|
package/lib/help/shell.d.ts
CHANGED
|
@@ -32,6 +32,14 @@ export interface RunOptions {
|
|
|
32
32
|
* @param command command (e.g 'git commit -m')
|
|
33
33
|
*/
|
|
34
34
|
export declare function run(command: string, options?: RunOptions): string;
|
|
35
|
+
/**
|
|
36
|
+
* Run a shell command and return a boolean indicating success or failure.
|
|
37
|
+
*
|
|
38
|
+
* Use this is when the result of the command informs a decision but is otherwise inconsequential.
|
|
39
|
+
*
|
|
40
|
+
* @param command command (e.g 'git ls-remote --exit-code')
|
|
41
|
+
*/
|
|
42
|
+
export declare function check(command: string, options?: RunOptions): boolean;
|
|
35
43
|
/**
|
|
36
44
|
* Return the path under which a program is available.
|
|
37
45
|
* Empty string if the program is not installed.
|
package/lib/help/shell.js
CHANGED
|
@@ -34,6 +34,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.run = run;
|
|
37
|
+
exports.check = check;
|
|
37
38
|
exports.which = which;
|
|
38
39
|
const child = __importStar(require("child_process"));
|
|
39
40
|
const shlex = __importStar(require("shlex"));
|
|
@@ -67,6 +68,22 @@ function run(command, options = {}) {
|
|
|
67
68
|
}
|
|
68
69
|
return stdout;
|
|
69
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Run a shell command and return a boolean indicating success or failure.
|
|
73
|
+
*
|
|
74
|
+
* Use this is when the result of the command informs a decision but is otherwise inconsequential.
|
|
75
|
+
*
|
|
76
|
+
* @param command command (e.g 'git ls-remote --exit-code')
|
|
77
|
+
*/
|
|
78
|
+
function check(command, options = {}) {
|
|
79
|
+
try {
|
|
80
|
+
run(command, options);
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
70
87
|
/**
|
|
71
88
|
* Return the path under which a program is available.
|
|
72
89
|
* Empty string if the program is not installed.
|
|
@@ -81,4 +98,4 @@ function which(program) {
|
|
|
81
98
|
return '';
|
|
82
99
|
}
|
|
83
100
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
101
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hlbGwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGVscC9zaGVsbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXlDQSxrQkF5QkM7QUFTRCxzQkFPQztBQVFELHNCQU1DO0FBaEdELHFEQUF1QztBQUN2Qyw2Q0FBK0I7QUFrQy9COzs7OztHQUtHO0FBQ0gsU0FBZ0IsR0FBRyxDQUFDLE9BQWUsRUFBRSxVQUFzQixFQUFFO0lBQzNELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUEsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUNyRSxNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsRCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQzNELEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDO1FBQy9DLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztRQUNoQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7UUFDcEIsR0FBRztLQUNKLENBQUMsQ0FBQztJQUNILElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLE1BQU0sTUFBTSxDQUFDLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQztJQUN6QyxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBRXpDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixNQUFNLE9BQU8sR0FBRztzQkFDRSxPQUFPO2dCQUNiLE1BQU07ZUFDUCxNQUFNLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsS0FBSyxDQUFDLE9BQWUsRUFBRSxVQUFzQixFQUFFO0lBQzdELElBQUksQ0FBQztRQUNILEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQWdCLEtBQUssQ0FBQyxPQUFlO0lBQ25DLElBQUksQ0FBQztRQUNILE9BQU8sR0FBRyxDQUFDLFNBQVMsT0FBTyxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjaGlsZCBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCAqIGFzIHNobGV4IGZyb20gJ3NobGV4JztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB0aGUgYHJ1bmAgZnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUnVuT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFdva3JpbmcgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBwcm9jZXNzLmN3ZCgpXG4gICAqL1xuICByZWFkb25seSBjd2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENhcHR1cmUgdGhlIG91dHB1dCBvZiB0aGUgY29tbWFuZCBhbmQgcmV0dXJuIHRvIGNhbGxlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjYXB0dXJlLCBvdXRwdXQgaXMgcHJpbnRlZCB0byBzdGRvdXQuXG4gICAqL1xuICByZWFkb25seSBjYXB0dXJlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUnVuIHRoZSBjb21tYW5kIGluc2lkZSBhIHNoZWxsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2hlbGw/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIHRvIGFkZCB0byAnZW52J1xuICAgKi9cbiAgcmVhZG9ubHkgbW9kRW52PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBSdW4gYSBzaGVsbCBjb21tYW5kIGFuZCByZXR1cm4gdGhlIG91dHB1dC5cbiAqIFRocm93cyBpZiB0aGUgY29tbWFuZCBmYWlscy5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCBjb21tYW5kIChlLmcgJ2dpdCBjb21taXQgLW0nKVxuICovXG5leHBvcnQgZnVuY3Rpb24gcnVuKGNvbW1hbmQ6IHN0cmluZywgb3B0aW9uczogUnVuT3B0aW9ucyA9IHt9KTogc3RyaW5nIHtcbiAgY29uc3Qgc2hzcGxpdCA9IHNobGV4LnNwbGl0KGNvbW1hbmQpO1xuICBjb25zdCBwaXBlT3JJbmhlcml0ID0gKG9wdGlvbnMuY2FwdHVyZSA/PyBmYWxzZSkgPyAncGlwZSc6ICdpbmhlcml0JztcbiAgY29uc3QgZW52ID0geyAuLi5wcm9jZXNzLmVudiwgLi4ub3B0aW9ucy5tb2RFbnYgfTtcbiAgY29uc3QgcmVzdWx0ID0gY2hpbGQuc3Bhd25TeW5jKHNoc3BsaXRbMF0sIHNoc3BsaXQuc2xpY2UoMSksIHtcbiAgICBzdGRpbzogWydpZ25vcmUnLCBwaXBlT3JJbmhlcml0LCBwaXBlT3JJbmhlcml0XSxcbiAgICBjd2Q6IG9wdGlvbnMuY3dkLFxuICAgIHNoZWxsOiBvcHRpb25zLnNoZWxsLFxuICAgIGVudixcbiAgfSk7XG4gIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICB0aHJvdyByZXN1bHQuZXJyb3I7XG4gIH1cblxuICBjb25zdCBzdGRvdXQgPSByZXN1bHQuc3Rkb3V0Py50b1N0cmluZygpO1xuICBjb25zdCBzdGRlcnIgPSByZXN1bHQuc3RkZXJyPy50b1N0cmluZygpO1xuXG4gIGlmIChyZXN1bHQuc3RhdHVzICE9PSAwKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBcbiAgICBDb21tYW5kIGZhaWxlZDogJHtjb21tYW5kfS5cbiAgICAgIE91dHB1dDogJHtzdGRvdXR9XG4gICAgICBFcnJvcjogJHtzdGRlcnJ9YDtcbiAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gIH1cbiAgcmV0dXJuIHN0ZG91dDtcbn1cblxuLyoqXG4gKiBSdW4gYSBzaGVsbCBjb21tYW5kIGFuZCByZXR1cm4gYSBib29sZWFuIGluZGljYXRpbmcgc3VjY2VzcyBvciBmYWlsdXJlLlxuICpcbiAqIFVzZSB0aGlzIGlzIHdoZW4gdGhlIHJlc3VsdCBvZiB0aGUgY29tbWFuZCBpbmZvcm1zIGEgZGVjaXNpb24gYnV0IGlzIG90aGVyd2lzZSBpbmNvbnNlcXVlbnRpYWwuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgY29tbWFuZCAoZS5nICdnaXQgbHMtcmVtb3RlIC0tZXhpdC1jb2RlJylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrKGNvbW1hbmQ6IHN0cmluZywgb3B0aW9uczogUnVuT3B0aW9ucyA9IHt9KTogYm9vbGVhbiB7XG4gIHRyeSB7XG4gICAgcnVuKGNvbW1hbmQsIG9wdGlvbnMpO1xuICAgIHJldHVybiB0cnVlO1xuICB9IGNhdGNoIChlKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5cbi8qKlxuICogUmV0dXJuIHRoZSBwYXRoIHVuZGVyIHdoaWNoIGEgcHJvZ3JhbSBpcyBhdmFpbGFibGUuXG4gKiBFbXB0eSBzdHJpbmcgaWYgdGhlIHByb2dyYW0gaXMgbm90IGluc3RhbGxlZC5cbiAqXG4gKiBAcGFyYW0gcHJvZ3JhbSBwcm9ncmFtIHRvIGNoZWNrIChlLmcgJ2dpdCcpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aGljaChwcm9ncmFtOiBzdHJpbmcpOiBzdHJpbmcge1xuICB0cnkge1xuICAgIHJldHVybiBydW4oYHdoaWNoICR7cHJvZ3JhbX1gLCB7IGNhcHR1cmU6IHRydWUgfSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiAnJztcbiAgfVxufVxuXG4iXX0=
|
package/lib/targets/go.d.ts
CHANGED
|
@@ -59,6 +59,14 @@ export interface GoReleaserProps {
|
|
|
59
59
|
* The message to use for the commit marking the release.
|
|
60
60
|
*/
|
|
61
61
|
readonly message?: string;
|
|
62
|
+
/**
|
|
63
|
+
* The git clone depth.
|
|
64
|
+
*
|
|
65
|
+
* Usually only the latest commit is required.
|
|
66
|
+
*
|
|
67
|
+
* @default 1
|
|
68
|
+
*/
|
|
69
|
+
readonly cloneDepth?: number;
|
|
62
70
|
}
|
|
63
71
|
/**
|
|
64
72
|
* Information about a specific module.
|
package/lib/targets/go.js
CHANGED
|
@@ -78,7 +78,15 @@ class GoReleaser {
|
|
|
78
78
|
modules.forEach(m => console.log(` - ${m.modFile}`));
|
|
79
79
|
const repoURL = this.extractRepoURL(modules);
|
|
80
80
|
const repoDir = path.join(os.mkdtempSync(), 'repo');
|
|
81
|
-
git.
|
|
81
|
+
const branchExists = git.branchExistsOnRemote(repoURL, this.gitBranch);
|
|
82
|
+
if (!branchExists) {
|
|
83
|
+
console.log(`Remote branch '${this.gitBranch}' not found, continuing with default branch.`);
|
|
84
|
+
}
|
|
85
|
+
const cloneOptions = {
|
|
86
|
+
tags: true, // we need to know about all tags to not re-create an existing one
|
|
87
|
+
branch: branchExists ? this.gitBranch : undefined,
|
|
88
|
+
};
|
|
89
|
+
git.clone(repoURL, repoDir, cloneOptions);
|
|
82
90
|
const cwd = process.cwd();
|
|
83
91
|
try {
|
|
84
92
|
process.chdir(repoDir);
|
|
@@ -196,14 +204,14 @@ class GoReleaser {
|
|
|
196
204
|
// so we just empty it out
|
|
197
205
|
fs.readdirSync(repoDir)
|
|
198
206
|
.filter(f => f !== '.git')
|
|
199
|
-
.forEach(f =>
|
|
207
|
+
.forEach(f => git.rm(path.join(repoDir, f), { recursive: true }));
|
|
200
208
|
}
|
|
201
209
|
else {
|
|
202
210
|
// otherwise, we selectively remove the submodules only.
|
|
203
211
|
for (const p of fs.readdirSync(repoDir)) {
|
|
204
212
|
const submodule = path.join(repoDir, p, 'go.mod');
|
|
205
213
|
if (fs.existsSync(submodule)) {
|
|
206
|
-
|
|
214
|
+
git.rm(path.join(repoDir, p), { recursive: true });
|
|
207
215
|
}
|
|
208
216
|
}
|
|
209
217
|
}
|
|
@@ -236,4 +244,4 @@ class GoReleaser {
|
|
|
236
244
|
}
|
|
237
245
|
}
|
|
238
246
|
exports.GoReleaser = GoReleaser;
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ28uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFyZ2V0cy9nby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsNkNBQStCO0FBQy9CLGlEQUFtQztBQUNuQywrQ0FBaUM7QUFDakMscURBQXVDO0FBNEd2Qzs7R0FFRztBQUNILE1BQWEsVUFBVTtJQVdyQixZQUFZLEtBQXNCO1FBRWhDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO1FBQzVGLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDdEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1FBRXBDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWhELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLGdHQUFn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SUFBSSxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ25CLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBTSxDQUFDO0lBQ3RDLENBQUM7SUFFTyxjQUFjLENBQUMsZUFBdUI7UUFFNUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFMUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNqQyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFdkcsSUFBSSxXQUFXLElBQUksYUFBYSxJQUFJLFdBQVcsS0FBSyxhQUFhLEVBQUUsQ0FBQztZQUNsRSxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixXQUFXLG9DQUFvQyxhQUFhLG1CQUFtQixlQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3JJLENBQUM7UUFFRCxzRUFBc0U7UUFDdEUsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUU1RCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxlQUFlLElBQUk7a0JBQ3hFLHNHQUFzRyxDQUFDLENBQUM7UUFDOUcsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBRWpCLENBQUM7Q0FFRjtBQWxQRCxnQ0FrUEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgZ2l0IGZyb20gJy4uL2hlbHAvZ2l0JztcbmltcG9ydCAqIGFzIG9zIGZyb20gJy4uL2hlbHAvb3MnO1xuaW1wb3J0ICogYXMgc2hlbGwgZnJvbSAnLi4vaGVscC9zaGVsbCc7XG5cbi8qKlxuICogRW5jYXBzdWxhdGVzIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHJlbGVhc2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR29SZWxlYXNlIHtcblxuICAvKipcbiAgICogVGhlIHRhZ3MgdGhlIHJlbGVhc2UgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGNvbW1pdCBtZXNzYWdlIG9mIHRoZSByZWxlYXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWl0TWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgcmVwb3NpdG9yeSB3YXMgcmVsZWFzZWQgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9EaXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgYEdvUmVsZWFzZXJgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdvUmVsZWFzZXJQcm9wcyB7XG5cbiAgLyoqXG4gICAqIFRoZSBzb3VyY2UgY29kZSBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdkaXN0L2dvJ1xuICAgKi9cbiAgcmVhZG9ubHkgZGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFeGVjdXRlIGEgZHJ5IHJ1biBvbmx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZHJ5UnVuPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGJyYW5jaCB0byBwdXNoIHRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHVzZXJuYW1lIHRvIHVzZSBmb3IgdGhlIGNvbW1pdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0YWtlbiBmcm9tIGdpdCBjb25maWcuIHRocm93cyBpZiBub3QgY29uZmlndXJlZC5cbiAgICovXG4gIHJlYWRvbmx5IHVzZXJuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZW1haWwgdG8gdXNlIGZvciB0aGUgY29tbWl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRha2VuIGZyb20gZ2l0IGNvbmZpZy4gdGhyb3dzIGlmIG5vdCBjb25maWd1cmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW1haWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRha2VuIGZyb20gdGhlICd2ZXJzaW9uJy4gdGhyb3dzIGlmIGRvZXNuJ3QgZXhpc3QuXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbWVzc2FnZSB0byB1c2UgZm9yIHRoZSBjb21taXQgbWFya2luZyB0aGUgcmVsZWFzZS5cbiAgICovXG4gIHJlYWRvbmx5IG1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgYSBzcGVjaWZpYyBtb2R1bGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR29Nb2R1bGUge1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBtb2QgZmlsZS5cbiAgICovXG4gIHJlYWRvbmx5IG1vZEZpbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIG1vZHVsZS5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNhbm5vbmljYWwgbmFtZSBvZiB0aGUgbW9kdWxlLiAoZS5nICdnaXRodWIuY29tL2F3cy9jb25zdHJ1Y3RzLWdvL2NvbnN0cnVjdHMvdjNgKVxuICAgKi9cbiAgcmVhZG9ubHkgY2Fubm9uaWNhbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdGggaW5zaWRlIHRoZSByZXBvc2l0b3J5IHRoZSBtb2R1bGUgaXMgbG9jYXRlZCBpbi4gKGUuZyAnY29uc3RydWN0cycpXG4gICAqL1xuICByZWFkb25seSByZXBvUGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVwb3NpdG9yeSBVUkwuIChlLmcgJ2dpdGh1Yi5jb20vYXdzL2NvbnN0cnVjdHMnKVxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb1VSTDogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogUmVsZWFzZSBhIHNldCBvZiBHb2xhbmcgbW9kdWxlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdvUmVsZWFzZXIge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBnaXRDb21taXRNZXNzYWdlPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGlyOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZHJ5UnVuOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGdpdEJyYW5jaDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGdpdFVzZXJuYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ2l0VXNlcmVtYWlsOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IEdvUmVsZWFzZXJQcm9wcykge1xuXG4gICAgaWYgKCFzaGVsbC53aGljaCgnZ2l0JykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignZ2l0IG11c3QgYmUgYXZhaWxhYmxlIHRvIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gcHVzaCBHbyBjb2RlIHRvIEdpdEh1YicpO1xuICAgIH1cblxuICAgIHRoaXMudmVyc2lvbiA9IHByb3BzLnZlcnNpb247XG4gICAgdGhpcy5naXRDb21taXRNZXNzYWdlID0gcHJvcHMubWVzc2FnZTtcbiAgICB0aGlzLmRpciA9IHBhdGgucmVzb2x2ZShwcm9wcy5kaXIgPz8gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksICdkaXN0JywgJ2dvJykpO1xuICAgIHRoaXMuZ2l0QnJhbmNoID0gcHJvcHMuYnJhbmNoID8/ICdtYWluJztcbiAgICB0aGlzLmRyeVJ1biA9IHByb3BzLmRyeVJ1biA/PyBmYWxzZTtcblxuICAgIGNvbnN0IGdpdFVzZXJuYW1lID0gcHJvcHMudXNlcm5hbWUgPz8gZ2l0LnVzZXJuYW1lKCk7XG4gICAgY29uc3QgZ2l0VXNlcmVtYWlsID0gcHJvcHMuZW1haWwgPz8gZ2l0LmVtYWlsKCk7XG5cbiAgICBpZiAoIWdpdFVzZXJuYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBkZXRlY3QgdXNlcm5hbWUuIGVpdGhlciBjb25maWd1cmUgYSBnaXQgdXNlci5uYW1lIG9yIHBhc3MgR0lUX1VTRVJfTkFNRSBlbnYgdmFyaWFibGUnKTtcbiAgICB9XG5cbiAgICBpZiAoIWdpdFVzZXJlbWFpbCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZGV0ZWN0IHVzZXIgZW1haWwuIGVpdGhlciBjb25maWd1cmUgYSBnaXQgdXNlci5lbWFpbCBvciBwYXNzIEdJVF9VU0VSX0VNQUlMIGVudiB2YXJpYWJsZScpO1xuICAgIH1cblxuICAgIHRoaXMuZ2l0VXNlcmVtYWlsID0gZ2l0VXNlcmVtYWlsO1xuICAgIHRoaXMuZ2l0VXNlcm5hbWUgPSBnaXRVc2VybmFtZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gdGhlIHJlbGVhc2UgcHJvY2Vzcy5cbiAgICpcbiAgICogQHJldHVybnMgbWV0YWRhdGEgYWJvdXQgdGhlIHJlbGVhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVsZWFzZSgpOiBHb1JlbGVhc2Uge1xuICAgIGNvbnN0IG1vZHVsZXMgPSB0aGlzLmNvbGxlY3RNb2R1bGVzKHRoaXMuZGlyKTtcbiAgICBpZiAobW9kdWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKCdObyBtb2R1bGVzIGRldGVjdGVkLiBTa2lwcGluZycpO1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKCdEZXRlY3RlZCBtb2R1bGVzOicpO1xuICAgIG1vZHVsZXMuZm9yRWFjaChtID0+IGNvbnNvbGUubG9nKGAgLSAke20ubW9kRmlsZX1gKSk7XG5cbiAgICBjb25zdCByZXBvVVJMID0gdGhpcy5leHRyYWN0UmVwb1VSTChtb2R1bGVzKTtcbiAgICBjb25zdCByZXBvRGlyID0gcGF0aC5qb2luKG9zLm1rZHRlbXBTeW5jKCksICdyZXBvJyk7XG4gICAgZ2l0LmNsb25lKHJlcG9VUkwsIHJlcG9EaXIpO1xuXG4gICAgY29uc3QgY3dkID0gcHJvY2Vzcy5jd2QoKTtcbiAgICB0cnkge1xuICAgICAgcHJvY2Vzcy5jaGRpcihyZXBvRGlyKTtcbiAgICAgIHJldHVybiB0aGlzLmRvUmVsZWFzZShtb2R1bGVzLCByZXBvRGlyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgcHJvY2Vzcy5jaGRpcihjd2QpO1xuICAgIH1cblxuICB9XG5cbiAgcHJpdmF0ZSBkb1JlbGVhc2UobW9kdWxlczogR29Nb2R1bGVbXSwgcmVwb0Rpcjogc3RyaW5nKTogR29SZWxlYXNlIHtcblxuICAgIGdpdC5pZGVudGlmeSh0aGlzLmdpdFVzZXJuYW1lLCB0aGlzLmdpdFVzZXJlbWFpbCk7XG4gICAgZ2l0LmNoZWNrb3V0KHRoaXMuZ2l0QnJhbmNoLCB7IGNyZWF0ZUlmTWlzc2luZzogdHJ1ZSB9KTtcbiAgICB0aGlzLnN5bmNSZXBvKHJlcG9EaXIpO1xuXG4gICAgZ2l0LmFkZCgnLicpO1xuICAgIGlmICghZ2l0LmRpZmZJbmRleCgpKSB7XG4gICAgICBjb25zb2xlLmxvZygnTm8gY2hhbmdlcy4gU2tpcHBpbmcgcmVsZWFzZScpO1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGNvbnN0IGNvbW1pdE1lc3NhZ2UgPSB0aGlzLmdpdENvbW1pdE1lc3NhZ2UgPz8gdGhpcy5idWlsZFJlbGVhc2VNZXNzYWdlKG1vZHVsZXMpO1xuICAgIGdpdC5jb21taXQoY29tbWl0TWVzc2FnZSk7XG5cbiAgICBjb25zdCB0YWdzID0gW107XG4gICAgZm9yIChjb25zdCBtb2R1bGUgb2YgbW9kdWxlcykge1xuICAgICAgY29uc3QgbmFtZSA9IHRoaXMuYnVpbGRUYWdOYW1lKG1vZHVsZSk7XG4gICAgICBjb25zdCBjcmVhdGVkID0gZ2l0LnRhZyhuYW1lKTtcbiAgICAgIGlmIChjcmVhdGVkKSB7IHRhZ3MucHVzaChuYW1lKTsgfVxuICAgIH1cblxuICAgIGlmICh0YWdzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29uc29sZS5sb2coJ0FsbCB0YWdzIGFscmVhZHkgZXhpc3QuIFNraXBwaW5nIHJlbGVhc2UnKTtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zdCByZWZzID0gWy4uLnRhZ3MsIHRoaXMuZ2l0QnJhbmNoXTtcblxuICAgIGlmICh0aGlzLmRyeVJ1bikge1xuICAgICAgY29uc29sZS5sb2coJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nKTtcbiAgICAgIGNvbnNvbGUubG9nKCcgICAgICAgICAgICDwn4+c77iPIERSWS1SVU4gTU9ERSDwn4+c77iPJyk7XG4gICAgICBjb25zb2xlLmxvZygnPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PScpO1xuICAgICAgcmVmcy5mb3JFYWNoKHQgPT4gY29uc29sZS5sb2coYFJlbW90ZSByZWYgd2lsbCBiZSB1cGRhdGVkOiAke3R9YCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZWZzLmZvckVhY2godCA9PiBnaXQucHVzaCh0KSk7XG4gICAgfVxuICAgIHJldHVybiB7IHRhZ3MsIGNvbW1pdE1lc3NhZ2UsIHJlcG9EaXIgfTtcbiAgfVxuXG4gIHByaXZhdGUgY29sbGVjdE1vZHVsZXMoZGlyOiBzdHJpbmcpOiBHb01vZHVsZVtdIHtcbiAgICBjb25zdCBtb2R1bGVzOiBHb01vZHVsZVtdID0gW107XG4gICAgZm9yIChjb25zdCBwIG9mIFsuLi5mcy5yZWFkZGlyU3luYyhkaXIpLCAnLiddKSB7XG4gICAgICBjb25zdCBtb2RGaWxlID0gcGF0aC5qb2luKGRpciwgcCwgJ2dvLm1vZCcpO1xuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMobW9kRmlsZSkpIHtcbiAgICAgICAgbW9kdWxlcy5wdXNoKHRoaXMucGFyc2VNb2R1bGUobW9kRmlsZSkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbW9kdWxlcztcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VNb2R1bGUobW9kRmlsZTogc3RyaW5nKTogR29Nb2R1bGUge1xuXG4gICAgY29uc3QgdmVyc2lvbiA9IHRoaXMuZXh0cmFjdFZlcnNpb24ocGF0aC5kaXJuYW1lKG1vZEZpbGUpKTtcbiAgICBjb25zdCBtYWpvclZlcnNpb24gPSBOdW1iZXIodmVyc2lvbi5zcGxpdCgnLicpWzBdKTtcblxuICAgIC8vIGV4dHJhY3QgdGhlIG1vZHVsZSBkZWNsZXJhdGlvbiAoZS5nICdtb2R1bGUgZ2l0aHViLmNvbS9hd3MvY29uc3RydWN0cy1nby9jb25zdHJ1Y3RzL3YzJylcbiAgICBjb25zdCBtYXRjaCA9IGZzLnJlYWRGaWxlU3luYyhtb2RGaWxlKS50b1N0cmluZygpLm1hdGNoKC9tb2R1bGUgKC4qKS8pO1xuICAgIGlmICghbWF0Y2ggfHwgIW1hdGNoWzFdKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBkZXRlY3RlZCBtb2R1bGUgZGVjbGFyYXRpb24gaW4gJHttb2RGaWxlfWApO1xuICAgIH1cblxuICAgIC8vIGUuZyAnZ2l0aHViLmNvbS9hd3MvY29uc3RydWN0cy1nby9jb25zdHJ1Y3RzL3YzJ1xuICAgIGNvbnN0IGNhbm5vbmljYWxOYW1lID0gbWF0Y2hbMV07XG5cbiAgICAvLyBlLmcgWydnaXRodWIuY29tJywgJ2F3cycsICdjb25zdHJ1Y3RzLWdvJywgJ2NvbnN0cnVjdHMnLCAndjMnXVxuICAgIGNvbnN0IGNhbm5vbmljYWxOYW1lUGFydHMgPSBjYW5ub25pY2FsTmFtZS5zcGxpdCgnLycpO1xuXG4gICAgLy8gZS5nICdnaXRodWIuY29tL2F3cy9jb25zdHJ1Y3RzLWdvJ1xuICAgIGNvbnN0IHJlcG9VUkwgPSBjYW5ub25pY2FsTmFtZVBhcnRzLnNsaWNlKDAsIDMpLmpvaW4oJy8nKTtcblxuICAgIC8vIGUuZyAndjMnXG4gICAgY29uc3QgbWFqb3JWZXJzaW9uU3VmZml4ID0gbWFqb3JWZXJzaW9uID4gMSA/IGAvdiR7bWFqb3JWZXJzaW9ufWAgOiAnJztcblxuICAgIGlmICghY2Fubm9uaWNhbE5hbWUuZW5kc1dpdGgobWFqb3JWZXJzaW9uU3VmZml4KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNb2R1bGUgZGVjbGFyYXRpb24gaW4gJyR7bW9kRmlsZX0nIGV4cGVjdGVkIHRvIGVuZCB3aXRoICcke21ham9yVmVyc2lvblN1ZmZpeH0nIHNpbmNlIGl0cyBtYWpvciB2ZXJzaW9uIGlzIGxhcmdlciB0aGFuIDFgKTtcbiAgICB9XG5cbiAgICBpZiAoIXJlcG9VUkwuc3RhcnRzV2l0aCgnZ2l0aHViLmNvbScpKSB7XG4gICAgICBpZiAoIShnaXQuZGV0ZWN0U1NIKCkgfHwgZ2l0LmRldGVjdEdIRSgpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlcG9zaXRvcnkgbXVzdCBiZSBob3N0ZWQgb24gZ2l0aHViLmNvbS4gRm91bmQ6ICcke3JlcG9VUkx9JyBpbiAke21vZEZpbGV9YCk7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCByZXBvUGF0aCA9IGNhbm5vbmljYWxOYW1lUGFydHNcbiAgICAgIC5zbGljZSgzKSAvLyBlLmcgWydjb25zdHJ1Y3RzJywgJ3YzJ11cbiAgICAgIC5qb2luKCcvJyk7IC8vIGUuZyAnY29uc3RydWN0cy92MydcblxuICAgIC8vIHdlIGNvdWxkIGhhdmUgc29tZXRoaW5nIGxpa2VcbiAgICAvLyBjb25zdHJ1Y3RzL3YzXG4gICAgLy8gb3Igc29tZXRoaW5nIGxpa2VcbiAgICAvLyBjb25zdHJ1Y3RzdjMvdjNcbiAgICAvLyB3ZSBvbmx5IHdhbnQgdG8gc3RyaXAgdGhlIGxhc3QgJ3YzJ1xuICAgIGNvbnN0IHNwbGl0ID0gcmVwb1BhdGguc3BsaXQoJy8nKTtcbiAgICBpZiAoc3BsaXRbc3BsaXQubGVuZ3RoIC0gMV0gPT09IGB2JHttYWpvclZlcnNpb259YCkge1xuICAgICAgc3BsaXQucG9wKCk7XG4gICAgICByZXBvUGF0aCA9IHNwbGl0LmpvaW4oJy8nKTtcbiAgICB9XG5cbiAgICAvLyBzdHJpcCAnLycgaWYgZXhpc3RzICh3b250IGV4aXN0IGZvciB0b3AgbGV2ZWwgbW9kdWxlcylcbiAgICByZXBvUGF0aCA9IHJlcG9QYXRoLmVuZHNXaXRoKCcvJykgPyByZXBvUGF0aC5zdWJzdHIoMCwgcmVwb1BhdGgubGVuZ3RoIC0gMSkgOiByZXBvUGF0aDtcblxuICAgIHJldHVybiB7IG1vZEZpbGUsIHZlcnNpb24sIGNhbm5vbmljYWxOYW1lLCByZXBvUGF0aCwgcmVwb1VSTCB9O1xuXG4gIH1cblxuICBwcml2YXRlIGJ1aWxkVGFnTmFtZShtOiBHb01vZHVsZSkge1xuICAgIHJldHVybiBtLnJlcG9QYXRoID09PSAnJyA/IGB2JHttLnZlcnNpb259YCA6IGAke20ucmVwb1BhdGh9L3Yke20udmVyc2lvbn1gO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFJlbGVhc2VNZXNzYWdlKG1vZHVsZXM6IEdvTW9kdWxlW10pIHtcbiAgICBjb25zdCBzZW1hbnRpYyA9ICdjaG9yZShyZWxlYXNlKSc7XG4gICAgY29uc3QgdmVyc2lvbnMgPSBuZXcgU2V0KG1vZHVsZXMubWFwKG0gPT4gbS52ZXJzaW9uKSk7XG4gICAgaWYgKHZlcnNpb25zLnNpemUgPT09IDEpIHtcbiAgICAgIC8vIHNpbmdsZSB2ZXJzaW9uIChlLmcgY2hvcmUocmVsZWFzZSk6IHYxLjIuMylcbiAgICAgIHJldHVybiBgJHtzZW1hbnRpY306IHYke3ZlcnNpb25zLnZhbHVlcygpLm5leHQoKS52YWx1ZX1gO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBtdWx0aXBsZSB2ZXJzaW9ucyAoZS5nIGNob3JlKHJlbGVhc2UpOiBjaG9yZShyZWxlYXNlKTogbW9kdWxlMUB2MS4yLjMgIG1vZHVsZTJAdjEuMi4zKVxuICAgICAgcmV0dXJuIGAke3NlbWFudGljfTogJHttb2R1bGVzLm1hcChtID0+IGAke20ucmVwb1BhdGggPyBgJHttLnJlcG9QYXRofUBgIDogJyd9diR7bS52ZXJzaW9ufWApLmpvaW4oJyAnKX1gO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3luY1JlcG8ocmVwb0Rpcjogc3RyaW5nKSB7XG4gICAgY29uc3QgdG9wTGV2ZWwgPSBwYXRoLmpvaW4ocmVwb0RpciwgJ2dvLm1vZCcpO1xuICAgIGlmIChmcy5leGlzdHNTeW5jKHRvcExldmVsKSkge1xuICAgICAgLy8gd2l0aCB0b3AgbGV2ZWwgbW9kdWxlcyB3ZSBzeW5jIHRoZSBlbnRpcmUgcmVwb3NpdG9yeVxuICAgICAgLy8gc28gd2UganVzdCBlbXB0eSBpdCBvdXRcbiAgICAgIGZzLnJlYWRkaXJTeW5jKHJlcG9EaXIpXG4gICAgICAgIC5maWx0ZXIoZiA9PiBmICE9PSAnLmdpdCcpXG4gICAgICAgIC5mb3JFYWNoKGYgPT4gZnMucmVtb3ZlU3luYyhwYXRoLmpvaW4ocmVwb0RpciwgZikpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gb3RoZXJ3aXNlLCB3ZSBzZWxlY3RpdmVseSByZW1vdmUgdGhlIHN1Ym1vZHVsZXMgb25seS5cbiAgICAgIGZvciAoY29uc3QgcCBvZiBmcy5yZWFkZGlyU3luYyhyZXBvRGlyKSkge1xuICAgICAgICBjb25zdCBzdWJtb2R1bGUgPSBwYXRoLmpvaW4ocmVwb0RpciwgcCwgJ2dvLm1vZCcpO1xuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhzdWJtb2R1bGUpKSB7XG4gICAgICAgICAgZnMucmVtb3ZlU3luYyhwYXRoLmpvaW4ocmVwb0RpciwgcCkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIGZzLmNvcHlTeW5jKHRoaXMuZGlyLCByZXBvRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdFJlcG9VUkwobW9kdWxlczogR29Nb2R1bGVbXSk6IHN0cmluZyB7XG4gICAgY29uc3QgcmVwb3MgPSBuZXcgU2V0PHN0cmluZz4obW9kdWxlcy5tYXAobSA9PiBtLnJlcG9VUkwpKTtcbiAgICBpZiAocmVwb3Muc2l6ZSA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZGV0ZWN0IHJlcG9zaXRvcnkgZnJvbSBtb2R1bGUgZmlsZXMuJyk7XG4gICAgfVxuICAgIGlmIChyZXBvcy5zaXplID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNdWx0aXBsZSByZXBvc2l0b3JpZXMgZm91bmQgaW4gbW9kdWxlIGZpbGVzJyk7XG4gICAgfVxuICAgIHJldHVybiByZXBvcy52YWx1ZXMoKS5uZXh0KCkudmFsdWUhO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0VmVyc2lvbihtb2R1bGVEaXJlY3Rvcnk6IHN0cmluZyk6IHN0cmluZyB7XG5cbiAgICBjb25zdCB2ZXJzaW9uRmlsZSA9IHBhdGguam9pbihtb2R1bGVEaXJlY3RvcnksICd2ZXJzaW9uJyk7XG5cbiAgICBjb25zdCByZXBvVmVyc2lvbiA9IHRoaXMudmVyc2lvbjtcbiAgICBjb25zdCBtb2R1bGVWZXJzaW9uID0gZnMuZXhpc3RzU3luYyh2ZXJzaW9uRmlsZSkgPyBmcy5yZWFkRmlsZVN5bmModmVyc2lvbkZpbGUpLnRvU3RyaW5nKCkgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAocmVwb1ZlcnNpb24gJiYgbW9kdWxlVmVyc2lvbiAmJiByZXBvVmVyc2lvbiAhPT0gbW9kdWxlVmVyc2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZXBvIHZlcnNpb24gKCR7cmVwb1ZlcnNpb259KSBjb25mbGljdHMgd2l0aCBtb2R1bGUgdmVyc2lvbiAoJHttb2R1bGVWZXJzaW9ufSkgZm9yIG1vZHVsZSBpbiAke21vZHVsZURpcmVjdG9yeX1gKTtcbiAgICB9XG5cbiAgICAvLyBqdXN0IHRha2UgdGhlIG9uZSB0aGF0cyBkZWZpbmVkLCB0aGV5IGhhdmUgdG8gdGhlIHNhbWUgaWYgYm90aCBhcmUuXG4gICAgY29uc3QgdmVyc2lvbiA9IG1vZHVsZVZlcnNpb24gPyBtb2R1bGVWZXJzaW9uIDogcmVwb1ZlcnNpb247XG5cbiAgICBpZiAoIXZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGRldGVybWluZSB2ZXJzaW9uIG9mIG1vZHVsZSAke21vZHVsZURpcmVjdG9yeX0uIGBcbiAgICAgICAgKyBcIkVpdGhlciBpbmNsdWRlIGEgJ3ZlcnNpb24nIGZpbGUsIG9yIHNwZWNpZnkgYSBnbG9iYWwgdmVyc2lvbiB1c2luZyB0aGUgVkVSU0lPTiBlbnZpcm9ubWVudCB2YXJpYWJsZS5cIik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHZlcnNpb247XG5cbiAgfVxuXG59XG4iXX0=
|
|
247
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ28uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGFyZ2V0cy9nby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQ0FBNkI7QUFDN0IsNkNBQStCO0FBQy9CLGlEQUFtQztBQUNuQywrQ0FBaUM7QUFDakMscURBQXVDO0FBcUh2Qzs7R0FFRztBQUNILE1BQWEsVUFBVTtJQVdyQixZQUFZLEtBQXNCO1FBRWhDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO1FBQzVGLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7UUFDdEMsSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQztRQUN4QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1FBRXBDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3JELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWhELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLGdHQUFnRyxDQUFDLENBQUM7UUFDcEgsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLG9HQUFvRyxDQUFDLENBQUM7UUFDeEgsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksT0FBTztRQUNaLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7WUFDN0MsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXBELE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLENBQUMsU0FBUyw4Q0FBOEMsQ0FBQyxDQUFDO1FBQzlGLENBQUM7UUFDRCxNQUFNLFlBQVksR0FBRztZQUNuQixJQUFJLEVBQUUsSUFBSSxFQUFFLGtFQUFrRTtZQUM5RSxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ2xELENBQUM7UUFFRixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFMUMsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQztZQUNILE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUMxQyxDQUFDO2dCQUFTLENBQUM7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUM7SUFFSCxDQUFDO0lBRU8sU0FBUyxDQUFDLE9BQW1CLEVBQUUsT0FBZTtRQUVwRCxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xELEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdkIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7WUFDNUMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRixHQUFHLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTFCLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoQixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQzdCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5QixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFBQyxDQUFDO1FBQ25DLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO1lBQ3hELE9BQU8sRUFBRSxDQUFDO1FBQ1osQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXZDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkNBQTZDLENBQUMsQ0FBQztZQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLGtDQUFrQyxDQUFDLENBQUM7WUFDaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1lBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRU8sY0FBYyxDQUFDLEdBQVc7UUFDaEMsTUFBTSxPQUFPLEdBQWUsRUFBRSxDQUFDO1FBQy9CLEtBQUssTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDNUMsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzNCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxPQUFlO1FBRWpDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sWUFBWSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbkQsMkZBQTJGO1FBQzNGLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7UUFFRCxtREFBbUQ7UUFDbkQsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWhDLGlFQUFpRTtRQUNqRSxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFdEQscUNBQXFDO1FBQ3JDLE1BQU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTFELFdBQVc7UUFDWCxNQUFNLGtCQUFrQixHQUFHLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUV2RSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsT0FBTywyQkFBMkIsa0JBQWtCLDRDQUE0QyxDQUFDLENBQUM7UUFDOUksQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELE9BQU8sUUFBUSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2hHLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxRQUFRLEdBQUcsbUJBQW1CO2FBQy9CLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQywyQkFBMkI7YUFDcEMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO1FBRXBDLCtCQUErQjtRQUMvQixnQkFBZ0I7UUFDaEIsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQixzQ0FBc0M7UUFDdEMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLElBQUksWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUNuRCxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDWixRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBRUQseURBQXlEO1FBQ3pELFFBQVEsR0FBRyxRQUFRLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7UUFFdkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUVqRSxDQUFDO0lBRU8sWUFBWSxDQUFDLENBQVc7UUFDOUIsT0FBTyxDQUFDLENBQUMsUUFBUSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0UsQ0FBQztJQUVPLG1CQUFtQixDQUFDLE9BQW1CO1FBQzdDLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDO1FBQ2xDLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEIsOENBQThDO1lBQzlDLE9BQU8sR0FBRyxRQUFRLE1BQU0sUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNELENBQUM7YUFBTSxDQUFDO1lBQ04seUZBQXlGO1lBQ3pGLE9BQU8sR0FBRyxRQUFRLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1RyxDQUFDO0lBQ0gsQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUFlO1FBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVCLHVEQUF1RDtZQUN2RCwwQkFBMEI7WUFDMUIsRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUM7aUJBQ3BCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxNQUFNLENBQUM7aUJBQ3pCLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RFLENBQUM7YUFBTSxDQUFDO1lBQ04sd0RBQXdEO1lBQ3hELEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ2xELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO29CQUM3QixHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3JELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU8sY0FBYyxDQUFDLE9BQW1CO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFTLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMzRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnREFBZ0QsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO1FBQ2pFLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFNLENBQUM7SUFDdEMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxlQUF1QjtRQUU1QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUUxRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2pDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUV2RyxJQUFJLFdBQVcsSUFBSSxhQUFhLElBQUksV0FBVyxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQ2xFLE1BQU0sSUFBSSxLQUFLLENBQUMsaUJBQWlCLFdBQVcsb0NBQW9DLGFBQWEsbUJBQW1CLGVBQWUsRUFBRSxDQUFDLENBQUM7UUFDckksQ0FBQztRQUVELHNFQUFzRTtRQUN0RSxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDO1FBRTVELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMseUNBQXlDLGVBQWUsSUFBSTtrQkFDeEUsc0dBQXNHLENBQUMsQ0FBQztRQUM5RyxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFFakIsQ0FBQztDQUVGO0FBNVBELGdDQTRQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBnaXQgZnJvbSAnLi4vaGVscC9naXQnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnLi4vaGVscC9vcyc7XG5pbXBvcnQgKiBhcyBzaGVsbCBmcm9tICcuLi9oZWxwL3NoZWxsJztcblxuLyoqXG4gKiBFbmNhcHN1bGF0ZXMgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgcmVsZWFzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHb1JlbGVhc2Uge1xuXG4gIC8qKlxuICAgKiBUaGUgdGFncyB0aGUgcmVsZWFzZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tbWl0IG1lc3NhZ2Ugb2YgdGhlIHJlbGVhc2UuXG4gICAqL1xuICByZWFkb25seSBjb21taXRNZXNzYWdlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZGlyZWN0b3J5IHdoZXJlIHRoZSByZXBvc2l0b3J5IHdhcyByZWxlYXNlZCBmcm9tLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb0Rpcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBgR29SZWxlYXNlcmAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR29SZWxlYXNlclByb3BzIHtcblxuICAvKipcbiAgICogVGhlIHNvdXJjZSBjb2RlIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2Rpc3QvZ28nXG4gICAqL1xuICByZWFkb25seSBkaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgYSBkcnkgcnVuIG9ubHkuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgYnJhbmNoIHRvIHB1c2ggdG8uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdtYWluJ1xuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmNoPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgdXNlcm5hbWUgdG8gdXNlIGZvciB0aGUgY29tbWl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRha2VuIGZyb20gZ2l0IGNvbmZpZy4gdGhyb3dzIGlmIG5vdCBjb25maWd1cmVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdXNlcm5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBlbWFpbCB0byB1c2UgZm9yIHRoZSBjb21taXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGFrZW4gZnJvbSBnaXQgY29uZmlnLiB0aHJvd3MgaWYgbm90IGNvbmZpZ3VyZWQuXG4gICAqL1xuICByZWFkb25seSBlbWFpbD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGFrZW4gZnJvbSB0aGUgJ3ZlcnNpb24nLiB0aHJvd3MgaWYgZG9lc24ndCBleGlzdC5cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXNzYWdlIHRvIHVzZSBmb3IgdGhlIGNvbW1pdCBtYXJraW5nIHRoZSByZWxlYXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWVzc2FnZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGdpdCBjbG9uZSBkZXB0aC5cbiAgICpcbiAgICogVXN1YWxseSBvbmx5IHRoZSBsYXRlc3QgY29tbWl0IGlzIHJlcXVpcmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBjbG9uZURlcHRoPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgbW9kdWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdvTW9kdWxlIHtcblxuICAvKipcbiAgICogUGF0aCB0byB0aGUgbW9kIGZpbGUuXG4gICAqL1xuICByZWFkb25seSBtb2RGaWxlOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB2ZXJzaW9uIG9mIHRoZSBtb2R1bGUuXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjYW5ub25pY2FsIG5hbWUgb2YgdGhlIG1vZHVsZS4gKGUuZyAnZ2l0aHViLmNvbS9hd3MvY29uc3RydWN0cy1nby9jb25zdHJ1Y3RzL3YzYClcbiAgICovXG4gIHJlYWRvbmx5IGNhbm5vbmljYWxOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIGluc2lkZSB0aGUgcmVwb3NpdG9yeSB0aGUgbW9kdWxlIGlzIGxvY2F0ZWQgaW4uIChlLmcgJ2NvbnN0cnVjdHMnKVxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb1BhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlcG9zaXRvcnkgVVJMLiAoZS5nICdnaXRodWIuY29tL2F3cy9jb25zdHJ1Y3RzJylcbiAgICovXG4gIHJlYWRvbmx5IHJlcG9VUkw6IHN0cmluZztcblxufVxuXG4vKipcbiAqIFJlbGVhc2UgYSBzZXQgb2YgR29sYW5nIG1vZHVsZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBHb1JlbGVhc2VyIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ2l0Q29tbWl0TWVzc2FnZT86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGRpcjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGRyeVJ1bjogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBnaXRCcmFuY2g6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBnaXRVc2VybmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGdpdFVzZXJlbWFpbDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBHb1JlbGVhc2VyUHJvcHMpIHtcblxuICAgIGlmICghc2hlbGwud2hpY2goJ2dpdCcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2dpdCBtdXN0IGJlIGF2YWlsYWJsZSB0byBpbiBvcmRlciB0byBiZSBhYmxlIHRvIHB1c2ggR28gY29kZSB0byBHaXRIdWInKTtcbiAgICB9XG5cbiAgICB0aGlzLnZlcnNpb24gPSBwcm9wcy52ZXJzaW9uO1xuICAgIHRoaXMuZ2l0Q29tbWl0TWVzc2FnZSA9IHByb3BzLm1lc3NhZ2U7XG4gICAgdGhpcy5kaXIgPSBwYXRoLnJlc29sdmUocHJvcHMuZGlyID8/IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCAnZGlzdCcsICdnbycpKTtcbiAgICB0aGlzLmdpdEJyYW5jaCA9IHByb3BzLmJyYW5jaCA/PyAnbWFpbic7XG4gICAgdGhpcy5kcnlSdW4gPSBwcm9wcy5kcnlSdW4gPz8gZmFsc2U7XG5cbiAgICBjb25zdCBnaXRVc2VybmFtZSA9IHByb3BzLnVzZXJuYW1lID8/IGdpdC51c2VybmFtZSgpO1xuICAgIGNvbnN0IGdpdFVzZXJlbWFpbCA9IHByb3BzLmVtYWlsID8/IGdpdC5lbWFpbCgpO1xuXG4gICAgaWYgKCFnaXRVc2VybmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdVbmFibGUgdG8gZGV0ZWN0IHVzZXJuYW1lLiBlaXRoZXIgY29uZmlndXJlIGEgZ2l0IHVzZXIubmFtZSBvciBwYXNzIEdJVF9VU0VSX05BTUUgZW52IHZhcmlhYmxlJyk7XG4gICAgfVxuXG4gICAgaWYgKCFnaXRVc2VyZW1haWwpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVW5hYmxlIHRvIGRldGVjdCB1c2VyIGVtYWlsLiBlaXRoZXIgY29uZmlndXJlIGEgZ2l0IHVzZXIuZW1haWwgb3IgcGFzcyBHSVRfVVNFUl9FTUFJTCBlbnYgdmFyaWFibGUnKTtcbiAgICB9XG5cbiAgICB0aGlzLmdpdFVzZXJlbWFpbCA9IGdpdFVzZXJlbWFpbDtcbiAgICB0aGlzLmdpdFVzZXJuYW1lID0gZ2l0VXNlcm5hbWU7XG4gIH1cblxuICAvKipcbiAgICogUnVuIHRoZSByZWxlYXNlIHByb2Nlc3MuXG4gICAqXG4gICAqIEByZXR1cm5zIG1ldGFkYXRhIGFib3V0IHRoZSByZWxlYXNlLlxuICAgKi9cbiAgcHVibGljIHJlbGVhc2UoKTogR29SZWxlYXNlIHtcbiAgICBjb25zdCBtb2R1bGVzID0gdGhpcy5jb2xsZWN0TW9kdWxlcyh0aGlzLmRpcik7XG4gICAgaWYgKG1vZHVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zb2xlLmxvZygnTm8gbW9kdWxlcyBkZXRlY3RlZC4gU2tpcHBpbmcnKTtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZygnRGV0ZWN0ZWQgbW9kdWxlczonKTtcbiAgICBtb2R1bGVzLmZvckVhY2gobSA9PiBjb25zb2xlLmxvZyhgIC0gJHttLm1vZEZpbGV9YCkpO1xuXG4gICAgY29uc3QgcmVwb1VSTCA9IHRoaXMuZXh0cmFjdFJlcG9VUkwobW9kdWxlcyk7XG4gICAgY29uc3QgcmVwb0RpciA9IHBhdGguam9pbihvcy5ta2R0ZW1wU3luYygpLCAncmVwbycpO1xuXG4gICAgY29uc3QgYnJhbmNoRXhpc3RzID0gZ2l0LmJyYW5jaEV4aXN0c09uUmVtb3RlKHJlcG9VUkwsIHRoaXMuZ2l0QnJhbmNoKTtcbiAgICBpZiAoIWJyYW5jaEV4aXN0cykge1xuICAgICAgY29uc29sZS5sb2coYFJlbW90ZSBicmFuY2ggJyR7dGhpcy5naXRCcmFuY2h9JyBub3QgZm91bmQsIGNvbnRpbnVpbmcgd2l0aCBkZWZhdWx0IGJyYW5jaC5gKTtcbiAgICB9XG4gICAgY29uc3QgY2xvbmVPcHRpb25zID0ge1xuICAgICAgdGFnczogdHJ1ZSwgLy8gd2UgbmVlZCB0byBrbm93IGFib3V0IGFsbCB0YWdzIHRvIG5vdCByZS1jcmVhdGUgYW4gZXhpc3Rpbmcgb25lXG4gICAgICBicmFuY2g6IGJyYW5jaEV4aXN0cyA/IHRoaXMuZ2l0QnJhbmNoIDogdW5kZWZpbmVkLFxuICAgIH07XG5cbiAgICBnaXQuY2xvbmUocmVwb1VSTCwgcmVwb0RpciwgY2xvbmVPcHRpb25zKTtcblxuICAgIGNvbnN0IGN3ZCA9IHByb2Nlc3MuY3dkKCk7XG4gICAgdHJ5IHtcbiAgICAgIHByb2Nlc3MuY2hkaXIocmVwb0Rpcik7XG4gICAgICByZXR1cm4gdGhpcy5kb1JlbGVhc2UobW9kdWxlcywgcmVwb0Rpcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHByb2Nlc3MuY2hkaXIoY3dkKTtcbiAgICB9XG5cbiAgfVxuXG4gIHByaXZhdGUgZG9SZWxlYXNlKG1vZHVsZXM6IEdvTW9kdWxlW10sIHJlcG9EaXI6IHN0cmluZyk6IEdvUmVsZWFzZSB7XG5cbiAgICBnaXQuaWRlbnRpZnkodGhpcy5naXRVc2VybmFtZSwgdGhpcy5naXRVc2VyZW1haWwpO1xuICAgIGdpdC5jaGVja291dCh0aGlzLmdpdEJyYW5jaCwgeyBjcmVhdGVJZk1pc3Npbmc6IHRydWUgfSk7XG4gICAgdGhpcy5zeW5jUmVwbyhyZXBvRGlyKTtcblxuICAgIGdpdC5hZGQoJy4nKTtcbiAgICBpZiAoIWdpdC5kaWZmSW5kZXgoKSkge1xuICAgICAgY29uc29sZS5sb2coJ05vIGNoYW5nZXMuIFNraXBwaW5nIHJlbGVhc2UnKTtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICBjb25zdCBjb21taXRNZXNzYWdlID0gdGhpcy5naXRDb21taXRNZXNzYWdlID8/IHRoaXMuYnVpbGRSZWxlYXNlTWVzc2FnZShtb2R1bGVzKTtcbiAgICBnaXQuY29tbWl0KGNvbW1pdE1lc3NhZ2UpO1xuXG4gICAgY29uc3QgdGFncyA9IFtdO1xuICAgIGZvciAoY29uc3QgbW9kdWxlIG9mIG1vZHVsZXMpIHtcbiAgICAgIGNvbnN0IG5hbWUgPSB0aGlzLmJ1aWxkVGFnTmFtZShtb2R1bGUpO1xuICAgICAgY29uc3QgY3JlYXRlZCA9IGdpdC50YWcobmFtZSk7XG4gICAgICBpZiAoY3JlYXRlZCkgeyB0YWdzLnB1c2gobmFtZSk7IH1cbiAgICB9XG5cbiAgICBpZiAodGFncy5sZW5ndGggPT09IDApIHtcbiAgICAgIGNvbnNvbGUubG9nKCdBbGwgdGFncyBhbHJlYWR5IGV4aXN0LiBTa2lwcGluZyByZWxlYXNlJyk7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgcmVmcyA9IFsuLi50YWdzLCB0aGlzLmdpdEJyYW5jaF07XG5cbiAgICBpZiAodGhpcy5kcnlSdW4pIHtcbiAgICAgIGNvbnNvbGUubG9nKCc9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Jyk7XG4gICAgICBjb25zb2xlLmxvZygnICAgICAgICAgICAg8J+PnO+4jyBEUlktUlVOIE1PREUg8J+PnO+4jycpO1xuICAgICAgY29uc29sZS5sb2coJz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0nKTtcbiAgICAgIHJlZnMuZm9yRWFjaCh0ID0+IGNvbnNvbGUubG9nKGBSZW1vdGUgcmVmIHdpbGwgYmUgdXBkYXRlZDogJHt0fWApKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVmcy5mb3JFYWNoKHQgPT4gZ2l0LnB1c2godCkpO1xuICAgIH1cbiAgICByZXR1cm4geyB0YWdzLCBjb21taXRNZXNzYWdlLCByZXBvRGlyIH07XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RNb2R1bGVzKGRpcjogc3RyaW5nKTogR29Nb2R1bGVbXSB7XG4gICAgY29uc3QgbW9kdWxlczogR29Nb2R1bGVbXSA9IFtdO1xuICAgIGZvciAoY29uc3QgcCBvZiBbLi4uZnMucmVhZGRpclN5bmMoZGlyKSwgJy4nXSkge1xuICAgICAgY29uc3QgbW9kRmlsZSA9IHBhdGguam9pbihkaXIsIHAsICdnby5tb2QnKTtcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKG1vZEZpbGUpKSB7XG4gICAgICAgIG1vZHVsZXMucHVzaCh0aGlzLnBhcnNlTW9kdWxlKG1vZEZpbGUpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1vZHVsZXM7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlTW9kdWxlKG1vZEZpbGU6IHN0cmluZyk6IEdvTW9kdWxlIHtcblxuICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLmV4dHJhY3RWZXJzaW9uKHBhdGguZGlybmFtZShtb2RGaWxlKSk7XG4gICAgY29uc3QgbWFqb3JWZXJzaW9uID0gTnVtYmVyKHZlcnNpb24uc3BsaXQoJy4nKVswXSk7XG5cbiAgICAvLyBleHRyYWN0IHRoZSBtb2R1bGUgZGVjbGVyYXRpb24gKGUuZyAnbW9kdWxlIGdpdGh1Yi5jb20vYXdzL2NvbnN0cnVjdHMtZ28vY29uc3RydWN0cy92MycpXG4gICAgY29uc3QgbWF0Y2ggPSBmcy5yZWFkRmlsZVN5bmMobW9kRmlsZSkudG9TdHJpbmcoKS5tYXRjaCgvbW9kdWxlICguKikvKTtcbiAgICBpZiAoIW1hdGNoIHx8ICFtYXRjaFsxXSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZGV0ZWN0ZWQgbW9kdWxlIGRlY2xhcmF0aW9uIGluICR7bW9kRmlsZX1gKTtcbiAgICB9XG5cbiAgICAvLyBlLmcgJ2dpdGh1Yi5jb20vYXdzL2NvbnN0cnVjdHMtZ28vY29uc3RydWN0cy92MydcbiAgICBjb25zdCBjYW5ub25pY2FsTmFtZSA9IG1hdGNoWzFdO1xuXG4gICAgLy8gZS5nIFsnZ2l0aHViLmNvbScsICdhd3MnLCAnY29uc3RydWN0cy1nbycsICdjb25zdHJ1Y3RzJywgJ3YzJ11cbiAgICBjb25zdCBjYW5ub25pY2FsTmFtZVBhcnRzID0gY2Fubm9uaWNhbE5hbWUuc3BsaXQoJy8nKTtcblxuICAgIC8vIGUuZyAnZ2l0aHViLmNvbS9hd3MvY29uc3RydWN0cy1nbydcbiAgICBjb25zdCByZXBvVVJMID0gY2Fubm9uaWNhbE5hbWVQYXJ0cy5zbGljZSgwLCAzKS5qb2luKCcvJyk7XG5cbiAgICAvLyBlLmcgJ3YzJ1xuICAgIGNvbnN0IG1ham9yVmVyc2lvblN1ZmZpeCA9IG1ham9yVmVyc2lvbiA+IDEgPyBgL3Yke21ham9yVmVyc2lvbn1gIDogJyc7XG5cbiAgICBpZiAoIWNhbm5vbmljYWxOYW1lLmVuZHNXaXRoKG1ham9yVmVyc2lvblN1ZmZpeCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTW9kdWxlIGRlY2xhcmF0aW9uIGluICcke21vZEZpbGV9JyBleHBlY3RlZCB0byBlbmQgd2l0aCAnJHttYWpvclZlcnNpb25TdWZmaXh9JyBzaW5jZSBpdHMgbWFqb3IgdmVyc2lvbiBpcyBsYXJnZXIgdGhhbiAxYCk7XG4gICAgfVxuXG4gICAgaWYgKCFyZXBvVVJMLnN0YXJ0c1dpdGgoJ2dpdGh1Yi5jb20nKSkge1xuICAgICAgaWYgKCEoZ2l0LmRldGVjdFNTSCgpIHx8IGdpdC5kZXRlY3RHSEUoKSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBSZXBvc2l0b3J5IG11c3QgYmUgaG9zdGVkIG9uIGdpdGh1Yi5jb20uIEZvdW5kOiAnJHtyZXBvVVJMfScgaW4gJHttb2RGaWxlfWApO1xuICAgICAgfVxuICAgIH1cbiAgICBsZXQgcmVwb1BhdGggPSBjYW5ub25pY2FsTmFtZVBhcnRzXG4gICAgICAuc2xpY2UoMykgLy8gZS5nIFsnY29uc3RydWN0cycsICd2MyddXG4gICAgICAuam9pbignLycpOyAvLyBlLmcgJ2NvbnN0cnVjdHMvdjMnXG5cbiAgICAvLyB3ZSBjb3VsZCBoYXZlIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gY29uc3RydWN0cy92M1xuICAgIC8vIG9yIHNvbWV0aGluZyBsaWtlXG4gICAgLy8gY29uc3RydWN0c3YzL3YzXG4gICAgLy8gd2Ugb25seSB3YW50IHRvIHN0cmlwIHRoZSBsYXN0ICd2MydcbiAgICBjb25zdCBzcGxpdCA9IHJlcG9QYXRoLnNwbGl0KCcvJyk7XG4gICAgaWYgKHNwbGl0W3NwbGl0Lmxlbmd0aCAtIDFdID09PSBgdiR7bWFqb3JWZXJzaW9ufWApIHtcbiAgICAgIHNwbGl0LnBvcCgpO1xuICAgICAgcmVwb1BhdGggPSBzcGxpdC5qb2luKCcvJyk7XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgJy8nIGlmIGV4aXN0cyAod29udCBleGlzdCBmb3IgdG9wIGxldmVsIG1vZHVsZXMpXG4gICAgcmVwb1BhdGggPSByZXBvUGF0aC5lbmRzV2l0aCgnLycpID8gcmVwb1BhdGguc3Vic3RyKDAsIHJlcG9QYXRoLmxlbmd0aCAtIDEpIDogcmVwb1BhdGg7XG5cbiAgICByZXR1cm4geyBtb2RGaWxlLCB2ZXJzaW9uLCBjYW5ub25pY2FsTmFtZSwgcmVwb1BhdGgsIHJlcG9VUkwgfTtcblxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFRhZ05hbWUobTogR29Nb2R1bGUpIHtcbiAgICByZXR1cm4gbS5yZXBvUGF0aCA9PT0gJycgPyBgdiR7bS52ZXJzaW9ufWAgOiBgJHttLnJlcG9QYXRofS92JHttLnZlcnNpb259YDtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRSZWxlYXNlTWVzc2FnZShtb2R1bGVzOiBHb01vZHVsZVtdKSB7XG4gICAgY29uc3Qgc2VtYW50aWMgPSAnY2hvcmUocmVsZWFzZSknO1xuICAgIGNvbnN0IHZlcnNpb25zID0gbmV3IFNldChtb2R1bGVzLm1hcChtID0+IG0udmVyc2lvbikpO1xuICAgIGlmICh2ZXJzaW9ucy5zaXplID09PSAxKSB7XG4gICAgICAvLyBzaW5nbGUgdmVyc2lvbiAoZS5nIGNob3JlKHJlbGVhc2UpOiB2MS4yLjMpXG4gICAgICByZXR1cm4gYCR7c2VtYW50aWN9OiB2JHt2ZXJzaW9ucy52YWx1ZXMoKS5uZXh0KCkudmFsdWV9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gbXVsdGlwbGUgdmVyc2lvbnMgKGUuZyBjaG9yZShyZWxlYXNlKTogY2hvcmUocmVsZWFzZSk6IG1vZHVsZTFAdjEuMi4zICBtb2R1bGUyQHYxLjIuMylcbiAgICAgIHJldHVybiBgJHtzZW1hbnRpY306ICR7bW9kdWxlcy5tYXAobSA9PiBgJHttLnJlcG9QYXRoID8gYCR7bS5yZXBvUGF0aH1AYCA6ICcnfXYke20udmVyc2lvbn1gKS5qb2luKCcgJyl9YDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN5bmNSZXBvKHJlcG9EaXI6IHN0cmluZykge1xuICAgIGNvbnN0IHRvcExldmVsID0gcGF0aC5qb2luKHJlcG9EaXIsICdnby5tb2QnKTtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyh0b3BMZXZlbCkpIHtcbiAgICAgIC8vIHdpdGggdG9wIGxldmVsIG1vZHVsZXMgd2Ugc3luYyB0aGUgZW50aXJlIHJlcG9zaXRvcnlcbiAgICAgIC8vIHNvIHdlIGp1c3QgZW1wdHkgaXQgb3V0XG4gICAgICBmcy5yZWFkZGlyU3luYyhyZXBvRGlyKVxuICAgICAgICAuZmlsdGVyKGYgPT4gZiAhPT0gJy5naXQnKVxuICAgICAgICAuZm9yRWFjaChmID0+IGdpdC5ybShwYXRoLmpvaW4ocmVwb0RpciwgZiksIHsgcmVjdXJzaXZlOiB0cnVlIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gb3RoZXJ3aXNlLCB3ZSBzZWxlY3RpdmVseSByZW1vdmUgdGhlIHN1Ym1vZHVsZXMgb25seS5cbiAgICAgIGZvciAoY29uc3QgcCBvZiBmcy5yZWFkZGlyU3luYyhyZXBvRGlyKSkge1xuICAgICAgICBjb25zdCBzdWJtb2R1bGUgPSBwYXRoLmpvaW4ocmVwb0RpciwgcCwgJ2dvLm1vZCcpO1xuICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhzdWJtb2R1bGUpKSB7XG4gICAgICAgICAgZ2l0LnJtKHBhdGguam9pbihyZXBvRGlyLCBwKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgZnMuY29weVN5bmModGhpcy5kaXIsIHJlcG9EaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBleHRyYWN0UmVwb1VSTChtb2R1bGVzOiBHb01vZHVsZVtdKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXBvcyA9IG5ldyBTZXQ8c3RyaW5nPihtb2R1bGVzLm1hcChtID0+IG0ucmVwb1VSTCkpO1xuICAgIGlmIChyZXBvcy5zaXplID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1VuYWJsZSB0byBkZXRlY3QgcmVwb3NpdG9yeSBmcm9tIG1vZHVsZSBmaWxlcy4nKTtcbiAgICB9XG4gICAgaWYgKHJlcG9zLnNpemUgPiAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ011bHRpcGxlIHJlcG9zaXRvcmllcyBmb3VuZCBpbiBtb2R1bGUgZmlsZXMnKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlcG9zLnZhbHVlcygpLm5leHQoKS52YWx1ZSE7XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3RWZXJzaW9uKG1vZHVsZURpcmVjdG9yeTogc3RyaW5nKTogc3RyaW5nIHtcblxuICAgIGNvbnN0IHZlcnNpb25GaWxlID0gcGF0aC5qb2luKG1vZHVsZURpcmVjdG9yeSwgJ3ZlcnNpb24nKTtcblxuICAgIGNvbnN0IHJlcG9WZXJzaW9uID0gdGhpcy52ZXJzaW9uO1xuICAgIGNvbnN0IG1vZHVsZVZlcnNpb24gPSBmcy5leGlzdHNTeW5jKHZlcnNpb25GaWxlKSA/IGZzLnJlYWRGaWxlU3luYyh2ZXJzaW9uRmlsZSkudG9TdHJpbmcoKSA6IHVuZGVmaW5lZDtcblxuICAgIGlmIChyZXBvVmVyc2lvbiAmJiBtb2R1bGVWZXJzaW9uICYmIHJlcG9WZXJzaW9uICE9PSBtb2R1bGVWZXJzaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFJlcG8gdmVyc2lvbiAoJHtyZXBvVmVyc2lvbn0pIGNvbmZsaWN0cyB3aXRoIG1vZHVsZSB2ZXJzaW9uICgke21vZHVsZVZlcnNpb259KSBmb3IgbW9kdWxlIGluICR7bW9kdWxlRGlyZWN0b3J5fWApO1xuICAgIH1cblxuICAgIC8vIGp1c3QgdGFrZSB0aGUgb25lIHRoYXRzIGRlZmluZWQsIHRoZXkgaGF2ZSB0byB0aGUgc2FtZSBpZiBib3RoIGFyZS5cbiAgICBjb25zdCB2ZXJzaW9uID0gbW9kdWxlVmVyc2lvbiA/IG1vZHVsZVZlcnNpb24gOiByZXBvVmVyc2lvbjtcblxuICAgIGlmICghdmVyc2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBVbmFibGUgdG8gZGV0ZXJtaW5lIHZlcnNpb24gb2YgbW9kdWxlICR7bW9kdWxlRGlyZWN0b3J5fS4gYFxuICAgICAgICArIFwiRWl0aGVyIGluY2x1ZGUgYSAndmVyc2lvbicgZmlsZSwgb3Igc3BlY2lmeSBhIGdsb2JhbCB2ZXJzaW9uIHVzaW5nIHRoZSBWRVJTSU9OIGVudmlyb25tZW50IHZhcmlhYmxlLlwiKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmVyc2lvbjtcblxuICB9XG5cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -75,16 +75,16 @@
|
|
|
75
75
|
"typescript": "~5.7"
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@aws-sdk/client-codeartifact": "^3.
|
|
79
|
-
"@aws-sdk/credential-providers": "^3.
|
|
80
|
-
"@aws-sdk/types": "^3.
|
|
78
|
+
"@aws-sdk/client-codeartifact": "^3.893.0",
|
|
79
|
+
"@aws-sdk/credential-providers": "^3.893.0",
|
|
80
|
+
"@aws-sdk/types": "^3.893.0",
|
|
81
81
|
"@types/fs-extra": "^8.0.0",
|
|
82
82
|
"fs-extra": "^8.0.0",
|
|
83
83
|
"glob": "10.0.0",
|
|
84
84
|
"p-queue": "6",
|
|
85
85
|
"shlex": "^2.1.2",
|
|
86
86
|
"yargs": "^17",
|
|
87
|
-
"zx": "^8.8.
|
|
87
|
+
"zx": "^8.8.3"
|
|
88
88
|
},
|
|
89
89
|
"main": "lib/index.js",
|
|
90
90
|
"license": "Apache-2.0",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"publishConfig": {
|
|
93
93
|
"access": "public"
|
|
94
94
|
},
|
|
95
|
-
"version": "0.2.
|
|
95
|
+
"version": "0.2.1020",
|
|
96
96
|
"jest": {
|
|
97
97
|
"coverageProvider": "v8",
|
|
98
98
|
"testMatch": [
|
package/package.json.bak
CHANGED
|
@@ -75,16 +75,16 @@
|
|
|
75
75
|
"typescript": "~5.7"
|
|
76
76
|
},
|
|
77
77
|
"dependencies": {
|
|
78
|
-
"@aws-sdk/client-codeartifact": "^3.
|
|
79
|
-
"@aws-sdk/credential-providers": "^3.
|
|
80
|
-
"@aws-sdk/types": "^3.
|
|
78
|
+
"@aws-sdk/client-codeartifact": "^3.893.0",
|
|
79
|
+
"@aws-sdk/credential-providers": "^3.893.0",
|
|
80
|
+
"@aws-sdk/types": "^3.893.0",
|
|
81
81
|
"@types/fs-extra": "^8.0.0",
|
|
82
82
|
"fs-extra": "^8.0.0",
|
|
83
83
|
"glob": "10.0.0",
|
|
84
84
|
"p-queue": "6",
|
|
85
85
|
"shlex": "^2.1.2",
|
|
86
86
|
"yargs": "^17",
|
|
87
|
-
"zx": "^8.8.
|
|
87
|
+
"zx": "^8.8.3"
|
|
88
88
|
},
|
|
89
89
|
"main": "lib/index.js",
|
|
90
90
|
"license": "Apache-2.0",
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
"publishConfig": {
|
|
93
93
|
"access": "public"
|
|
94
94
|
},
|
|
95
|
-
"version": "0.2.
|
|
95
|
+
"version": "0.2.1020",
|
|
96
96
|
"jest": {
|
|
97
97
|
"coverageProvider": "v8",
|
|
98
98
|
"testMatch": [
|