@aws-cdk-testing/cli-integ 2.173.4 → 2.174.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/NOTICE +1 -1
- package/bin/query-github +1 -1
- package/bin/run-suite +1 -1
- package/bin/stage-distribution +1 -1
- package/bin/test-root +1 -1
- package/lib/cli/query-github.js +53 -0
- package/lib/cli/run-suite.js +130 -0
- package/{bin → lib/cli}/stage-distribution.js +9 -9
- package/{bin → lib/cli}/test-root.js +2 -2
- package/lib/with-cdk-app.js +2 -1
- package/package.json +3 -3
- package/tests/cli-integ-tests/cli.integtest.js +61 -4
- package/bin/query-github.js +0 -54
- package/bin/run-suite.js +0 -131
- /package/{bin → lib/cli}/query-github.d.ts +0 -0
- /package/{bin → lib/cli}/run-suite.d.ts +0 -0
- /package/{bin → lib/cli}/stage-distribution.d.ts +0 -0
- /package/{bin → lib/cli}/test-root.d.ts +0 -0
package/bin/query-github.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
// eslint-disable-next-line jest/no-jest-import
|
|
4
|
-
const yargs = require("yargs");
|
|
5
|
-
const github_1 = require("../lib/github");
|
|
6
|
-
async function main() {
|
|
7
|
-
const args = await yargs
|
|
8
|
-
.option('token', {
|
|
9
|
-
descripton: 'GitHub token (default: from environment GITHUB_TOKEN)',
|
|
10
|
-
alias: 't',
|
|
11
|
-
type: 'string',
|
|
12
|
-
requiresArg: true,
|
|
13
|
-
})
|
|
14
|
-
.command('last-release', 'Query the last release', cmd => cmd
|
|
15
|
-
.option('prior-to', {
|
|
16
|
-
description: 'Return the most recent release before the given version',
|
|
17
|
-
alias: 'p',
|
|
18
|
-
type: 'string',
|
|
19
|
-
requiresArg: true,
|
|
20
|
-
})
|
|
21
|
-
.option('major', {
|
|
22
|
-
description: 'Return the most recent release that matches',
|
|
23
|
-
alias: 'm',
|
|
24
|
-
type: 'string',
|
|
25
|
-
requiresArg: true,
|
|
26
|
-
}))
|
|
27
|
-
.demandCommand()
|
|
28
|
-
.help()
|
|
29
|
-
.showHelpOnFail(false)
|
|
30
|
-
.argv;
|
|
31
|
-
const command = args._[0];
|
|
32
|
-
const token = args.token ?? process.env.GITHUB_TOKEN;
|
|
33
|
-
if (!token) {
|
|
34
|
-
throw new Error('Either pass --token or set GITHUB_TOKEN.');
|
|
35
|
-
}
|
|
36
|
-
switch (command) {
|
|
37
|
-
case 'last-release':
|
|
38
|
-
if (args['prior-to'] && args.major) {
|
|
39
|
-
throw new Error('Cannot pass both `--prior-to and --major at the same time');
|
|
40
|
-
}
|
|
41
|
-
// eslint-disable-next-line no-console
|
|
42
|
-
console.log(await (0, github_1.fetchPreviousVersion)(token, {
|
|
43
|
-
priorTo: args['prior-to'],
|
|
44
|
-
majorVersion: args.major,
|
|
45
|
-
}));
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
main().catch(e => {
|
|
50
|
-
// eslint-disable-next-line no-console
|
|
51
|
-
console.error(e);
|
|
52
|
-
process.exitCode = 1;
|
|
53
|
-
});
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicXVlcnktZ2l0aHViLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0NBQStDO0FBQy9DLCtCQUErQjtBQUMvQiwwQ0FBcUQ7QUFFckQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLO1NBQ3JCLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDZixVQUFVLEVBQUUsdURBQXVEO1FBQ25FLEtBQUssRUFBRSxHQUFHO1FBQ1YsSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXLEVBQUUsSUFBSTtLQUNsQixDQUFDO1NBQ0QsT0FBTyxDQUFDLGNBQWMsRUFBRSx3QkFBd0IsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUc7U0FDMUQsTUFBTSxDQUFDLFVBQVUsRUFBRTtRQUNsQixXQUFXLEVBQUUseURBQXlEO1FBQ3RFLEtBQUssRUFBRSxHQUFHO1FBQ1YsSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXLEVBQUUsSUFBSTtLQUNsQixDQUFDO1NBQ0QsTUFBTSxDQUFDLE9BQU8sRUFBRTtRQUNmLFdBQVcsRUFBRSw2Q0FBNkM7UUFDMUQsS0FBSyxFQUFFLEdBQUc7UUFDVixJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSxJQUFJO0tBQ2xCLENBQUMsQ0FBQztTQUNKLGFBQWEsRUFBRTtTQUNmLElBQUksRUFBRTtTQUNOLGNBQWMsQ0FBQyxLQUFLLENBQUM7U0FDckIsSUFBSSxDQUFDO0lBRVIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUxQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDO0lBQ3JELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsUUFBUSxPQUFPLEVBQUUsQ0FBQztRQUNoQixLQUFLLGNBQWM7WUFDakIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNuQyxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUM7WUFDL0UsQ0FBQztZQUVELHNDQUFzQztZQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBQSw2QkFBb0IsRUFBQyxLQUFLLEVBQUU7Z0JBQzVDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDO2dCQUN6QixZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDekIsQ0FBQyxDQUFDLENBQUM7WUFDSixNQUFNO0lBQ1YsQ0FBQztBQUNILENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDZixzQ0FBc0M7SUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqZXN0L25vLWplc3QtaW1wb3J0XG5pbXBvcnQgKiBhcyB5YXJncyBmcm9tICd5YXJncyc7XG5pbXBvcnQgeyBmZXRjaFByZXZpb3VzVmVyc2lvbiB9IGZyb20gJy4uL2xpYi9naXRodWInO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBjb25zdCBhcmdzID0gYXdhaXQgeWFyZ3NcbiAgICAub3B0aW9uKCd0b2tlbicsIHtcbiAgICAgIGRlc2NyaXB0b246ICdHaXRIdWIgdG9rZW4gKGRlZmF1bHQ6IGZyb20gZW52aXJvbm1lbnQgR0lUSFVCX1RPS0VOKScsXG4gICAgICBhbGlhczogJ3QnLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICB9KVxuICAgIC5jb21tYW5kKCdsYXN0LXJlbGVhc2UnLCAnUXVlcnkgdGhlIGxhc3QgcmVsZWFzZScsIGNtZCA9PiBjbWRcbiAgICAgIC5vcHRpb24oJ3ByaW9yLXRvJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1JldHVybiB0aGUgbW9zdCByZWNlbnQgcmVsZWFzZSBiZWZvcmUgdGhlIGdpdmVuIHZlcnNpb24nLFxuICAgICAgICBhbGlhczogJ3AnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignbWFqb3InLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUmV0dXJuIHRoZSBtb3N0IHJlY2VudCByZWxlYXNlIHRoYXQgbWF0Y2hlcycsXG4gICAgICAgIGFsaWFzOiAnbScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICAgIH0pKVxuICAgIC5kZW1hbmRDb21tYW5kKClcbiAgICAuaGVscCgpXG4gICAgLnNob3dIZWxwT25GYWlsKGZhbHNlKVxuICAgIC5hcmd2O1xuXG4gIGNvbnN0IGNvbW1hbmQgPSBhcmdzLl9bMF07XG5cbiAgY29uc3QgdG9rZW4gPSBhcmdzLnRva2VuID8/IHByb2Nlc3MuZW52LkdJVEhVQl9UT0tFTjtcbiAgaWYgKCF0b2tlbikge1xuICAgIHRocm93IG5ldyBFcnJvcignRWl0aGVyIHBhc3MgLS10b2tlbiBvciBzZXQgR0lUSFVCX1RPS0VOLicpO1xuICB9XG5cbiAgc3dpdGNoIChjb21tYW5kKSB7XG4gICAgY2FzZSAnbGFzdC1yZWxlYXNlJzpcbiAgICAgIGlmIChhcmdzWydwcmlvci10byddICYmIGFyZ3MubWFqb3IpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcGFzcyBib3RoIGAtLXByaW9yLXRvIGFuZCAtLW1ham9yIGF0IHRoZSBzYW1lIHRpbWUnKTtcbiAgICAgIH1cblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKGF3YWl0IGZldGNoUHJldmlvdXNWZXJzaW9uKHRva2VuLCB7XG4gICAgICAgIHByaW9yVG86IGFyZ3NbJ3ByaW9yLXRvJ10sXG4gICAgICAgIG1ham9yVmVyc2lvbjogYXJncy5tYWpvcixcbiAgICAgIH0pKTtcbiAgICAgIGJyZWFrO1xuICB9XG59XG5cbm1haW4oKS5jYXRjaChlID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5lcnJvcihlKTtcbiAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG59KTtcbiJdfQ==
|
package/bin/run-suite.js
DELETED
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
/* eslint-disable no-console */
|
|
4
|
-
const path = require("path");
|
|
5
|
-
// eslint-disable-next-line jest/no-jest-import
|
|
6
|
-
const jest = require("jest");
|
|
7
|
-
const yargs = require("yargs");
|
|
8
|
-
const release_source_1 = require("../lib/package-sources/release-source");
|
|
9
|
-
const repo_source_1 = require("../lib/package-sources/repo-source");
|
|
10
|
-
const subprocess_1 = require("../lib/package-sources/subprocess");
|
|
11
|
-
async function main() {
|
|
12
|
-
const args = await yargs
|
|
13
|
-
.usage('$0 <SUITENAME>')
|
|
14
|
-
.positional('SUITENAME', {
|
|
15
|
-
descripton: 'Name of the test suite to run',
|
|
16
|
-
type: 'string',
|
|
17
|
-
demandOption: true,
|
|
18
|
-
})
|
|
19
|
-
.option('test', {
|
|
20
|
-
descripton: 'Test pattern to selectively run tests',
|
|
21
|
-
alias: 't',
|
|
22
|
-
type: 'string',
|
|
23
|
-
requiresArg: true,
|
|
24
|
-
})
|
|
25
|
-
.option('test-file', {
|
|
26
|
-
description: 'The specific test file to run',
|
|
27
|
-
type: 'string',
|
|
28
|
-
requiresArg: true,
|
|
29
|
-
})
|
|
30
|
-
.option('use-source', {
|
|
31
|
-
descripton: 'Use TypeScript packages from the given source repository (or "auto")',
|
|
32
|
-
alias: 's',
|
|
33
|
-
type: 'string',
|
|
34
|
-
requiresArg: true,
|
|
35
|
-
})
|
|
36
|
-
.option('use-cli-release', {
|
|
37
|
-
descripton: 'Run the current tests against the CLI at the given version',
|
|
38
|
-
alias: 'u',
|
|
39
|
-
type: 'string',
|
|
40
|
-
requiresArg: true,
|
|
41
|
-
})
|
|
42
|
-
.option('auto-source', {
|
|
43
|
-
alias: 'a',
|
|
44
|
-
description: 'Automatically find the source tree from the current working directory',
|
|
45
|
-
type: 'boolean',
|
|
46
|
-
requiresArg: false,
|
|
47
|
-
})
|
|
48
|
-
.option('runInBand', {
|
|
49
|
-
descripton: 'Run all tests in one Node process',
|
|
50
|
-
alias: 'i',
|
|
51
|
-
type: 'boolean',
|
|
52
|
-
})
|
|
53
|
-
.options('framework-version', {
|
|
54
|
-
description: 'Framework version to use, if different than the CLI version (not all suites respect this)',
|
|
55
|
-
alias: 'f',
|
|
56
|
-
type: 'string',
|
|
57
|
-
})
|
|
58
|
-
.options('verbose', {
|
|
59
|
-
alias: 'v',
|
|
60
|
-
description: 'Run in verbose mode',
|
|
61
|
-
type: 'boolean',
|
|
62
|
-
requiresArg: false,
|
|
63
|
-
})
|
|
64
|
-
.options('passWithNoTests', {
|
|
65
|
-
description: 'Allow passing if the test suite is not found (default true when IS_CANARY mode, false otherwise)',
|
|
66
|
-
type: 'boolean',
|
|
67
|
-
requiresArg: false,
|
|
68
|
-
})
|
|
69
|
-
.help()
|
|
70
|
-
.showHelpOnFail(false)
|
|
71
|
-
.argv;
|
|
72
|
-
const suiteName = args._[0];
|
|
73
|
-
if (!suiteName) {
|
|
74
|
-
throw new Error('Usage: run-suite <SUITENAME>');
|
|
75
|
-
}
|
|
76
|
-
let packageSource;
|
|
77
|
-
function usePackageSource(s) {
|
|
78
|
-
if (packageSource) {
|
|
79
|
-
throw new Error('Cannot specify two package sources');
|
|
80
|
-
}
|
|
81
|
-
packageSource = s;
|
|
82
|
-
}
|
|
83
|
-
if (args['use-source'] || args['auto-source']) {
|
|
84
|
-
if (args['framework-version']) {
|
|
85
|
-
throw new Error('Cannot use --framework-version with --use-source');
|
|
86
|
-
}
|
|
87
|
-
const root = args['use-source'] && args['use-source'] !== 'auto'
|
|
88
|
-
? args['use-source']
|
|
89
|
-
: await (0, repo_source_1.autoFindRoot)();
|
|
90
|
-
usePackageSource(new repo_source_1.RepoPackageSourceSetup(root));
|
|
91
|
-
}
|
|
92
|
-
else if (args['use-cli-release']) {
|
|
93
|
-
usePackageSource(new release_source_1.ReleasePackageSourceSetup(args['use-cli-release'], args['framework-version']));
|
|
94
|
-
}
|
|
95
|
-
if (!packageSource) {
|
|
96
|
-
throw new Error('Specify either --use-source or --use-cli-release');
|
|
97
|
-
}
|
|
98
|
-
console.log(`Package source: ${packageSource.description}`);
|
|
99
|
-
console.log(`Test suite: ${suiteName}`);
|
|
100
|
-
await packageSource.prepare();
|
|
101
|
-
(0, subprocess_1.serializeForSubprocess)(packageSource);
|
|
102
|
-
if (args.verbose) {
|
|
103
|
-
process.env.VERBOSE = '1';
|
|
104
|
-
}
|
|
105
|
-
// Motivation behind this behavior: when adding a new test suite to the pipeline, because of the way our
|
|
106
|
-
// Pipeline package works, the suite would be added to the pipeline AND as a canary immediately. The canary
|
|
107
|
-
// would fail until the package was actually released, so for canaries we make an exception so that the initial
|
|
108
|
-
// canary would succeed even if the suite wasn't yet available. The fact that the suite is not optional in
|
|
109
|
-
// the pipeline protects us from typos.
|
|
110
|
-
const passWithNoTests = args.passWithNoTests ?? !!process.env.IS_CANARY;
|
|
111
|
-
// Communicate with the config file (integ.jest.config.js)
|
|
112
|
-
process.env.TEST_SUITE_NAME = suiteName;
|
|
113
|
-
try {
|
|
114
|
-
await jest.run([
|
|
115
|
-
...args.runInBand ? ['-i'] : [],
|
|
116
|
-
...args.test ? ['-t', args.test] : [],
|
|
117
|
-
...args.verbose ? ['--verbose'] : [],
|
|
118
|
-
...passWithNoTests ? ['--passWithNoTests'] : [],
|
|
119
|
-
...args['test-file'] ? [args['test-file']] : [],
|
|
120
|
-
], path.resolve(__dirname, '..', 'resources', 'integ.jest.config.js'));
|
|
121
|
-
}
|
|
122
|
-
finally {
|
|
123
|
-
await packageSource.cleanup();
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
main().catch(e => {
|
|
127
|
-
// eslint-disable-next-line no-console
|
|
128
|
-
console.error(e);
|
|
129
|
-
process.exitCode = 1;
|
|
130
|
-
});
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXN1aXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicnVuLXN1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUM3QiwrQ0FBK0M7QUFDL0MsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQiwwRUFBa0Y7QUFDbEYsb0VBQTBGO0FBRTFGLGtFQUEyRTtBQUUzRSxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLEtBQUs7U0FDckIsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1NBQ3ZCLFVBQVUsQ0FBQyxXQUFXLEVBQUU7UUFDdkIsVUFBVSxFQUFFLCtCQUErQjtRQUMzQyxJQUFJLEVBQUUsUUFBUTtRQUNkLFlBQVksRUFBRSxJQUFJO0tBQ25CLENBQUM7U0FDRCxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2QsVUFBVSxFQUFFLHVDQUF1QztRQUNuRCxLQUFLLEVBQUUsR0FBRztRQUNWLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLElBQUk7S0FDbEIsQ0FBQztTQUNELE1BQU0sQ0FBQyxXQUFXLEVBQUU7UUFDbkIsV0FBVyxFQUFFLCtCQUErQjtRQUM1QyxJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSxJQUFJO0tBQ2xCLENBQUM7U0FDRCxNQUFNLENBQUMsWUFBWSxFQUFFO1FBQ3BCLFVBQVUsRUFBRSxzRUFBc0U7UUFDbEYsS0FBSyxFQUFFLEdBQUc7UUFDVixJQUFJLEVBQUUsUUFBUTtRQUNkLFdBQVcsRUFBRSxJQUFJO0tBQ2xCLENBQUM7U0FDRCxNQUFNLENBQUMsaUJBQWlCLEVBQUU7UUFDekIsVUFBVSxFQUFFLDREQUE0RDtRQUN4RSxLQUFLLEVBQUUsR0FBRztRQUNWLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLElBQUk7S0FDbEIsQ0FBQztTQUNELE1BQU0sQ0FBQyxhQUFhLEVBQUU7UUFDckIsS0FBSyxFQUFFLEdBQUc7UUFDVixX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LENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGplc3Qvbm8tamVzdC1pbXBvcnRcbmltcG9ydCAqIGFzIGplc3QgZnJvbSAnamVzdCc7XG5pbXBvcnQgKiBhcyB5YXJncyBmcm9tICd5YXJncyc7XG5pbXBvcnQgeyBSZWxlYXNlUGFja2FnZVNvdXJjZVNldHVwIH0gZnJvbSAnLi4vbGliL3BhY2thZ2Utc291cmNlcy9yZWxlYXNlLXNvdXJjZSc7XG5pbXBvcnQgeyBSZXBvUGFja2FnZVNvdXJjZVNldHVwLCBhdXRvRmluZFJvb3QgfSBmcm9tICcuLi9saWIvcGFja2FnZS1zb3VyY2VzL3JlcG8tc291cmNlJztcbmltcG9ydCB7IElQYWNrYWdlU291cmNlU2V0dXAgfSBmcm9tICcuLi9saWIvcGFja2FnZS1zb3VyY2VzL3NvdXJjZSc7XG5pbXBvcnQgeyBzZXJpYWxpemVGb3JTdWJwcm9jZXNzIH0gZnJvbSAnLi4vbGliL3BhY2thZ2Utc291cmNlcy9zdWJwcm9jZXNzJztcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgYXJncyA9IGF3YWl0IHlhcmdzXG4gICAgLnVzYWdlKCckMCA8U1VJVEVOQU1FPicpXG4gICAgLnBvc2l0aW9uYWwoJ1NVSVRFTkFNRScsIHtcbiAgICAgIGRlc2NyaXB0b246ICdOYW1lIG9mIHRoZSB0ZXN0IHN1aXRlIHRvIHJ1bicsXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIGRlbWFuZE9wdGlvbjogdHJ1ZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ3Rlc3QnLCB7XG4gICAgICBkZXNjcmlwdG9uOiAnVGVzdCBwYXR0ZXJuIHRvIHNlbGVjdGl2ZWx5IHJ1biB0ZXN0cycsXG4gICAgICBhbGlhczogJ3QnLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ3Rlc3QtZmlsZScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIHNwZWNpZmljIHRlc3QgZmlsZSB0byBydW4nLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ3VzZS1zb3VyY2UnLCB7XG4gICAgICBkZXNjcmlwdG9uOiAnVXNlIFR5cGVTY3JpcHQgcGFja2FnZXMgZnJvbSB0aGUgZ2l2ZW4gc291cmNlIHJlcG9zaXRvcnkgKG9yIFwiYXV0b1wiKScsXG4gICAgICBhbGlhczogJ3MnLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ3VzZS1jbGktcmVsZWFzZScsIHtcbiAgICAgIGRlc2NyaXB0b246ICdSdW4gdGhlIGN1cnJlbnQgdGVzdHMgYWdhaW5zdCB0aGUgQ0xJIGF0IHRoZSBnaXZlbiB2ZXJzaW9uJyxcbiAgICAgIGFsaWFzOiAndScsXG4gICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgIH0pXG4gICAgLm9wdGlvbignYXV0by1zb3VyY2UnLCB7XG4gICAgICBhbGlhczogJ2EnLFxuICAgICAgZGVzY3JpcHRpb246ICdBdXRvbWF0aWNhbGx5IGZpbmQgdGhlIHNvdXJjZSB0cmVlIGZyb20gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnknLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgIH0pXG4gICAgLm9wdGlvbigncnVuSW5CYW5kJywge1xuICAgICAgZGVzY3JpcHRvbjogJ1J1biBhbGwgdGVzdHMgaW4gb25lIE5vZGUgcHJvY2VzcycsXG4gICAgICBhbGlhczogJ2knLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIH0pXG4gICAgLm9wdGlvbnMoJ2ZyYW1ld29yay12ZXJzaW9uJywge1xuICAgICAgZGVzY3JpcHRpb246ICdGcmFtZXdvcmsgdmVyc2lvbiB0byB1c2UsIGlmIGRpZmZlcmVudCB0aGFuIHRoZSBDTEkgdmVyc2lvbiAobm90IGFsbCBzdWl0ZXMgcmVzcGVjdCB0aGlzKScsXG4gICAgICBhbGlhczogJ2YnLFxuICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgfSlcbiAgICAub3B0aW9ucygndmVyYm9zZScsIHtcbiAgICAgIGFsaWFzOiAndicsXG4gICAgICBkZXNjcmlwdGlvbjogJ1J1biBpbiB2ZXJib3NlIG1vZGUnLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgIH0pXG4gICAgLm9wdGlvbnMoJ3Bhc3NXaXRoTm9UZXN0cycsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnQWxsb3cgcGFzc2luZyBpZiB0aGUgdGVzdCBzdWl0ZSBpcyBub3QgZm91bmQgKGRlZmF1bHQgdHJ1ZSB3aGVuIElTX0NBTkFSWSBtb2RlLCBmYWxzZSBvdGhlcndpc2UpJyxcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICB9KVxuICAgIC5oZWxwKClcbiAgICAuc2hvd0hlbHBPbkZhaWwoZmFsc2UpXG4gICAgLmFyZ3Y7XG5cbiAgY29uc3Qgc3VpdGVOYW1lID0gYXJncy5fWzBdIGFzIHN0cmluZztcbiAgaWYgKCFzdWl0ZU5hbWUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1VzYWdlOiBydW4tc3VpdGUgPFNVSVRFTkFNRT4nKTtcbiAgfVxuXG4gIGxldCBwYWNrYWdlU291cmNlOiB1bmRlZmluZWQgfCBJUGFja2FnZVNvdXJjZVNldHVwO1xuICBmdW5jdGlvbiB1c2VQYWNrYWdlU291cmNlKHM6IElQYWNrYWdlU291cmNlU2V0dXApIHtcbiAgICBpZiAocGFja2FnZVNvdXJjZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3Qgc3BlY2lmeSB0d28gcGFja2FnZSBzb3VyY2VzJyk7XG4gICAgfVxuICAgIHBhY2thZ2VTb3VyY2UgPSBzO1xuICB9XG5cbiAgaWYgKGFyZ3NbJ3VzZS1zb3VyY2UnXSB8fCBhcmdzWydhdXRvLXNvdXJjZSddKSB7XG4gICAgaWYgKGFyZ3NbJ2ZyYW1ld29yay12ZXJzaW9uJ10pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IHVzZSAtLWZyYW1ld29yay12ZXJzaW9uIHdpdGggLS11c2Utc291cmNlJyk7XG4gICAgfVxuXG4gICAgY29uc3Qgcm9vdCA9IGFyZ3NbJ3VzZS1zb3VyY2UnXSAmJiBhcmdzWyd1c2Utc291cmNlJ10gIT09ICdhdXRvJ1xuICAgICAgPyBhcmdzWyd1c2Utc291cmNlJ11cbiAgICAgIDogYXdhaXQgYXV0b0ZpbmRSb290KCk7XG5cbiAgICB1c2VQYWNrYWdlU291cmNlKG5ldyBSZXBvUGFja2FnZVNvdXJjZVNldHVwKHJvb3QpKTtcbiAgfSBlbHNlIGlmIChhcmdzWyd1c2UtY2xpLXJlbGVhc2UnXSkge1xuICAgIHVzZVBhY2thZ2VTb3VyY2UobmV3IFJlbGVhc2VQYWNrYWdlU291cmNlU2V0dXAoYXJnc1sndXNlLWNsaS1yZWxlYXNlJ10sIGFyZ3NbJ2ZyYW1ld29yay12ZXJzaW9uJ10pKTtcbiAgfVxuICBpZiAoIXBhY2thZ2VTb3VyY2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1NwZWNpZnkgZWl0aGVyIC0tdXNlLXNvdXJjZSBvciAtLXVzZS1jbGktcmVsZWFzZScpO1xuICB9XG5cbiAgY29uc29sZS5sb2coYFBhY2thZ2Ugc291cmNlOiAke3BhY2thZ2VTb3VyY2UuZGVzY3JpcHRpb259YCk7XG4gIGNvbnNvbGUubG9nKGBUZXN0IHN1aXRlOiAgICAgJHtzdWl0ZU5hbWV9YCk7XG5cbiAgYXdhaXQgcGFja2FnZVNvdXJjZS5wcmVwYXJlKCk7XG4gIHNlcmlhbGl6ZUZvclN1YnByb2Nlc3MocGFja2FnZVNvdXJjZSk7XG5cbiAgaWYgKGFyZ3MudmVyYm9zZSkge1xuICAgIHByb2Nlc3MuZW52LlZFUkJPU0UgPSAnMSc7XG4gIH1cblxuICAvLyBNb3RpdmF0aW9uIGJlaGluZCB0aGlzIGJlaGF2aW9yOiB3aGVuIGFkZGluZyBhIG5ldyB0ZXN0IHN1aXRlIHRvIHRoZSBwaXBlbGluZSwgYmVjYXVzZSBvZiB0aGUgd2F5IG91clxuICAvLyBQaXBlbGluZSBwYWNrYWdlIHdvcmtzLCB0aGUgc3VpdGUgd291bGQgYmUgYWRkZWQgdG8gdGhlIHBpcGVsaW5lIEFORCBhcyBhIGNhbmFyeSBpbW1lZGlhdGVseS4gVGhlIGNhbmFyeVxuICAvLyB3b3VsZCBmYWlsIHVudGlsIHRoZSBwYWNrYWdlIHdhcyBhY3R1YWxseSByZWxlYXNlZCwgc28gZm9yIGNhbmFyaWVzIHdlIG1ha2UgYW4gZXhjZXB0aW9uIHNvIHRoYXQgdGhlIGluaXRpYWxcbiAgLy8gY2FuYXJ5IHdvdWxkIHN1Y2NlZWQgZXZlbiBpZiB0aGUgc3VpdGUgd2Fzbid0IHlldCBhdmFpbGFibGUuIFRoZSBmYWN0IHRoYXQgdGhlIHN1aXRlIGlzIG5vdCBvcHRpb25hbCBpblxuICAvLyB0aGUgcGlwZWxpbmUgcHJvdGVjdHMgdXMgZnJvbSB0eXBvcy5cbiAgY29uc3QgcGFzc1dpdGhOb1Rlc3RzID0gYXJncy5wYXNzV2l0aE5vVGVzdHMgPz8gISFwcm9jZXNzLmVudi5JU19DQU5BUlk7XG5cbiAgLy8gQ29tbXVuaWNhdGUgd2l0aCB0aGUgY29uZmlnIGZpbGUgKGludGVnLmplc3QuY29uZmlnLmpzKVxuICBwcm9jZXNzLmVudi5URVNUX1NVSVRFX05BTUUgPSBzdWl0ZU5hbWU7XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBqZXN0LnJ1bihbXG4gICAgICAuLi5hcmdzLnJ1bkluQmFuZCA/IFsnLWknXSA6IFtdLFxuICAgICAgLi4uYXJncy50ZXN0ID8gWyctdCcsIGFyZ3MudGVzdF0gOiBbXSxcbiAgICAgIC4uLmFyZ3MudmVyYm9zZSA/IFsnLS12ZXJib3NlJ10gOiBbXSxcbiAgICAgIC4uLnBhc3NXaXRoTm9UZXN0cyA/IFsnLS1wYXNzV2l0aE5vVGVzdHMnXSA6IFtdLFxuICAgICAgLi4uYXJnc1sndGVzdC1maWxlJ10gPyBbYXJnc1sndGVzdC1maWxlJ11dIDogW10sXG4gICAgXSwgcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJ3Jlc291cmNlcycsICdpbnRlZy5qZXN0LmNvbmZpZy5qcycpKTtcblxuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IHBhY2thZ2VTb3VyY2UuY2xlYW51cCgpO1xuICB9XG59XG5cbm1haW4oKS5jYXRjaChlID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5lcnJvcihlKTtcbiAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG59KTtcbiJdfQ==
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|