@aws-cdk-testing/cli-integ 2.111.0 → 2.113.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/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/with-cli-lib.d.ts +17 -0
- package/lib/with-cli-lib.js +123 -0
- package/package.json +5 -5
- package/resources/cdk-apps/simple-app/app.js +26 -0
- package/resources/cdk-apps/simple-app/cdk.json +7 -0
- package/tests/cli-integ-tests/cli-lib.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/cli-lib.integtest.js +60 -0
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -19,6 +19,7 @@ __exportStar(require("./corking"), exports);
|
|
|
19
19
|
__exportStar(require("./integ-test"), exports);
|
|
20
20
|
__exportStar(require("./memoize"), exports);
|
|
21
21
|
__exportStar(require("./resource-pool"), exports);
|
|
22
|
+
__exportStar(require("./with-cli-lib"), exports);
|
|
22
23
|
__exportStar(require("./with-sam"), exports);
|
|
23
24
|
__exportStar(require("./shell"), exports);
|
|
24
25
|
__exportStar(require("./with-aws"), exports);
|
|
@@ -26,4 +27,4 @@ __exportStar(require("./with-cdk-app"), exports);
|
|
|
26
27
|
__exportStar(require("./with-packages"), exports);
|
|
27
28
|
__exportStar(require("./with-temporary-directory"), exports);
|
|
28
29
|
__exportStar(require("./resources"), exports);
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsd0NBQXNCO0FBQ3RCLDRDQUEwQjtBQUMxQiwrQ0FBNkI7QUFDN0IsNENBQTBCO0FBQzFCLGtEQUFnQztBQUNoQyxpREFBK0I7QUFDL0IsNkNBQTJCO0FBQzNCLDBDQUF3QjtBQUN4Qiw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLGtEQUFnQztBQUNoQyw2REFBMkM7QUFDM0MsOENBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hd3MnO1xuZXhwb3J0ICogZnJvbSAnLi9jb3JraW5nJztcbmV4cG9ydCAqIGZyb20gJy4vaW50ZWctdGVzdCc7XG5leHBvcnQgKiBmcm9tICcuL21lbW9pemUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNvdXJjZS1wb29sJztcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1jbGktbGliJztcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1zYW0nO1xuZXhwb3J0ICogZnJvbSAnLi9zaGVsbCc7XG5leHBvcnQgKiBmcm9tICcuL3dpdGgtYXdzJztcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1jZGstYXBwJztcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1wYWNrYWdlcyc7XG5leHBvcnQgKiBmcm9tICcuL3dpdGgtdGVtcG9yYXJ5LWRpcmVjdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc291cmNlcyc7Il19
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { TestContext } from './integ-test';
|
|
2
|
+
import { AwsContext } from './with-aws';
|
|
3
|
+
import { TestFixture, CdkCliOptions } from './with-cdk-app';
|
|
4
|
+
/**
|
|
5
|
+
* Higher order function to execute a block with a CliLib Integration CDK app fixture
|
|
6
|
+
*/
|
|
7
|
+
export declare function withCliLibIntegrationCdkApp<A extends TestContext & AwsContext>(block: (context: CliLibIntegrationTestFixture) => Promise<void>): (context: A) => Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* SAM Integration test fixture for CDK - SAM integration test cases
|
|
10
|
+
*/
|
|
11
|
+
export declare function withCliLibFixture(block: (context: CliLibIntegrationTestFixture) => Promise<void>): (context: TestContext) => Promise<void>;
|
|
12
|
+
export declare class CliLibIntegrationTestFixture extends TestFixture {
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
cdk(args: string[], options?: CdkCliOptions): Promise<string>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CliLibIntegrationTestFixture = exports.withCliLibFixture = exports.withCliLibIntegrationCdkApp = void 0;
|
|
4
|
+
const os = require("os");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const resources_1 = require("./resources");
|
|
7
|
+
const with_aws_1 = require("./with-aws");
|
|
8
|
+
const with_cdk_app_1 = require("./with-cdk-app");
|
|
9
|
+
const with_timeout_1 = require("./with-timeout");
|
|
10
|
+
/**
|
|
11
|
+
* Higher order function to execute a block with a CliLib Integration CDK app fixture
|
|
12
|
+
*/
|
|
13
|
+
function withCliLibIntegrationCdkApp(block) {
|
|
14
|
+
return async (context) => {
|
|
15
|
+
const randy = context.randomString;
|
|
16
|
+
const stackNamePrefix = `cdktest-${randy}`;
|
|
17
|
+
const integTestDir = path.join(os.tmpdir(), `cdk-integ-${randy}`);
|
|
18
|
+
context.log(` Stack prefix: ${stackNamePrefix}\n`);
|
|
19
|
+
context.log(` Test directory: ${integTestDir}\n`);
|
|
20
|
+
context.log(` Region: ${context.aws.region}\n`);
|
|
21
|
+
await (0, with_cdk_app_1.cloneDirectory)(path.join(resources_1.RESOURCES_DIR, 'cdk-apps', 'simple-app'), integTestDir, context.output);
|
|
22
|
+
const fixture = new CliLibIntegrationTestFixture(integTestDir, stackNamePrefix, context.output, context.aws, context.randomString);
|
|
23
|
+
let success = true;
|
|
24
|
+
try {
|
|
25
|
+
const installationVersion = fixture.packages.requestedFrameworkVersion();
|
|
26
|
+
if (fixture.packages.majorVersion() === '1') {
|
|
27
|
+
throw new Error('This test suite is only compatible with AWS CDK v2');
|
|
28
|
+
}
|
|
29
|
+
const alphaInstallationVersion = fixture.packages.requestedAlphaVersion();
|
|
30
|
+
await (0, with_cdk_app_1.installNpmPackages)(fixture, {
|
|
31
|
+
'aws-cdk-lib': installationVersion,
|
|
32
|
+
'@aws-cdk/cli-lib-alpha': alphaInstallationVersion,
|
|
33
|
+
'@aws-cdk/aws-lambda-go-alpha': alphaInstallationVersion,
|
|
34
|
+
'@aws-cdk/aws-lambda-python-alpha': alphaInstallationVersion,
|
|
35
|
+
'constructs': '^10',
|
|
36
|
+
});
|
|
37
|
+
await block(fixture);
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
// We survive certain cases involving gopkg.in
|
|
41
|
+
if (errorCausedByGoPkg(e.message)) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
success = false;
|
|
45
|
+
throw e;
|
|
46
|
+
}
|
|
47
|
+
finally {
|
|
48
|
+
if (process.env.INTEG_NO_CLEAN) {
|
|
49
|
+
context.log(`Left test directory in '${integTestDir}' ($INTEG_NO_CLEAN)\n`);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
await fixture.dispose(success);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
exports.withCliLibIntegrationCdkApp = withCliLibIntegrationCdkApp;
|
|
58
|
+
/**
|
|
59
|
+
* Return whether or not the error is being caused by gopkg.in being down
|
|
60
|
+
*
|
|
61
|
+
* Our Go build depends on https://gopkg.in/, which has errors pretty often
|
|
62
|
+
* (every couple of days). It is run by a single volunteer.
|
|
63
|
+
*/
|
|
64
|
+
function errorCausedByGoPkg(error) {
|
|
65
|
+
// The error is different depending on what request fails. Messages recognized:
|
|
66
|
+
////////////////////////////////////////////////////////////////////
|
|
67
|
+
// go: github.com/aws/aws-lambda-go@v1.28.0 requires
|
|
68
|
+
// gopkg.in/yaml.v3@v3.0.0-20200615113413-eeeca48fe776: invalid version: git ls-remote -q origin in /go/pkg/mod/cache/vcs/0901dc1ef67fcce1c9b3ae51078740de4a0e2dc673e720584ac302973af82f36: exit status 128:
|
|
69
|
+
// remote: Cannot obtain refs from GitHub: cannot talk to GitHub: Get https://github.com/go-yaml/yaml.git/info/refs?service=git-upload-pack: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
|
|
70
|
+
// fatal: unable to access 'https://gopkg.in/yaml.v3/': The requested URL returned error: 502
|
|
71
|
+
////////////////////////////////////////////////////////////////////
|
|
72
|
+
// go: downloading github.com/aws/aws-lambda-go v1.28.0
|
|
73
|
+
// go: github.com/aws/aws-lambda-go@v1.28.0 requires
|
|
74
|
+
// gopkg.in/yaml.v3@v3.0.0-20200615113413-eeeca48fe776: unrecognized import path "gopkg.in/yaml.v3": reading https://gopkg.in/yaml.v3?go-get=1: 502 Bad Gateway
|
|
75
|
+
// server response: Cannot obtain refs from GitHub: cannot talk to GitHub: Get https://github.com/go-yaml/yaml.git/info/refs?service=git-upload-pack: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
|
|
76
|
+
////////////////////////////////////////////////////////////////////
|
|
77
|
+
// go: github.com/aws/aws-lambda-go@v1.28.0 requires
|
|
78
|
+
// gopkg.in/yaml.v3@v3.0.0-20200615113413-eeeca48fe776: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /go/pkg/mod/cache/vcs/0901dc1ef67fcce1c9b3ae51078740de4a0e2dc673e720584ac302973af82f36: exit status 128:
|
|
79
|
+
// error: RPC failed; HTTP 502 curl 22 The requested URL returned error: 502
|
|
80
|
+
// fatal: the remote end hung up unexpectedly
|
|
81
|
+
////////////////////////////////////////////////////////////////////
|
|
82
|
+
return (error.includes('gopkg\.in.*invalid version.*exit status 128')
|
|
83
|
+
|| error.match(/unrecognized import path[^\n]gopkg\.in/));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* SAM Integration test fixture for CDK - SAM integration test cases
|
|
87
|
+
*/
|
|
88
|
+
function withCliLibFixture(block) {
|
|
89
|
+
return (0, with_aws_1.withAws)((0, with_timeout_1.withTimeout)(with_cdk_app_1.DEFAULT_TEST_TIMEOUT_S, withCliLibIntegrationCdkApp(block)));
|
|
90
|
+
}
|
|
91
|
+
exports.withCliLibFixture = withCliLibFixture;
|
|
92
|
+
class CliLibIntegrationTestFixture extends with_cdk_app_1.TestFixture {
|
|
93
|
+
/**
|
|
94
|
+
*
|
|
95
|
+
*/
|
|
96
|
+
async cdk(args, options = {}) {
|
|
97
|
+
const action = args[0];
|
|
98
|
+
const stackName = args[1];
|
|
99
|
+
const cliOpts = {
|
|
100
|
+
stacks: stackName ? [stackName] : undefined,
|
|
101
|
+
};
|
|
102
|
+
if (action === 'deploy') {
|
|
103
|
+
cliOpts.requireApproval = options.neverRequireApproval ? 'never' : 'broadening';
|
|
104
|
+
}
|
|
105
|
+
return this.shell(['node', '--input-type=module', `<<__EOS__
|
|
106
|
+
import { AwsCdkCli } from '@aws-cdk/cli-lib-alpha';
|
|
107
|
+
const cli = AwsCdkCli.fromCdkAppDirectory();
|
|
108
|
+
|
|
109
|
+
await cli.${action}(${JSON.stringify(cliOpts)});
|
|
110
|
+
__EOS__`], {
|
|
111
|
+
...options,
|
|
112
|
+
modEnv: {
|
|
113
|
+
AWS_REGION: this.aws.region,
|
|
114
|
+
AWS_DEFAULT_REGION: this.aws.region,
|
|
115
|
+
STACK_NAME_PREFIX: this.stackNamePrefix,
|
|
116
|
+
PACKAGE_LAYOUT_VERSION: this.packages.majorVersion(),
|
|
117
|
+
...options.modEnv,
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.CliLibIntegrationTestFixture = CliLibIntegrationTestFixture;
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jbGktbGliLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid2l0aC1jbGktbGliLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFFN0IsMkNBQTRDO0FBQzVDLHlDQUFpRDtBQUNqRCxpREFBd0g7QUFDeEgsaURBQTZDO0FBRTdDOztHQUVHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQXFDLEtBQStEO0lBQzdJLE9BQU8sS0FBSyxFQUFFLE9BQVUsRUFBRSxFQUFFO1FBQzFCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUM7UUFDbkMsTUFBTSxlQUFlLEdBQUcsV0FBVyxLQUFLLEVBQUUsQ0FBQztRQUMzQyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxhQUFhLEtBQUssRUFBRSxDQUFDLENBQUM7UUFFbEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsZUFBZSxJQUFJLENBQUMsQ0FBQztRQUNyRCxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixZQUFZLElBQUksQ0FBQyxDQUFDO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUV4RCxNQUFNLElBQUEsNkJBQWMsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUFhLEVBQUUsVUFBVSxFQUFFLFlBQVksQ0FBQyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkcsTUFBTSxPQUFPLEdBQUcsSUFBSSw0QkFBNEIsQ0FDOUMsWUFBWSxFQUNaLGVBQWUsRUFDZixPQUFPLENBQUMsTUFBTSxFQUNkLE9BQU8sQ0FBQyxHQUFHLEVBQ1gsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRXhCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztRQUNuQixJQUFJ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TSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBQzNDLENBQUMsRUFBRTtZQUNMLEdBQUcsT0FBTztZQUNWLE1BQU0sRUFBRTtnQkFDTixVQUFVLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNO2dCQUMzQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU07Z0JBQ25DLGlCQUFpQixFQUFFLElBQUksQ0FBQyxlQUFlO2dCQUN2QyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksRUFBRTtnQkFDcEQsR0FBRyxPQUFPLENBQUMsTUFBTTthQUNsQjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FFRjtBQWpDRCxvRUFpQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgVGVzdENvbnRleHQgfSBmcm9tICcuL2ludGVnLXRlc3QnO1xuaW1wb3J0IHsgUkVTT1VSQ0VTX0RJUiB9IGZyb20gJy4vcmVzb3VyY2VzJztcbmltcG9ydCB7IEF3c0NvbnRleHQsIHdpdGhBd3MgfSBmcm9tICcuL3dpdGgtYXdzJztcbmltcG9ydCB7IGNsb25lRGlyZWN0b3J5LCBpbnN0YWxsTnBtUGFja2FnZXMsIFRlc3RGaXh0dXJlLCBERUZBVUxUX1RFU1RfVElNRU9VVF9TLCBDZGtDbGlPcHRpb25zIH0gZnJvbSAnLi93aXRoLWNkay1hcHAnO1xuaW1wb3J0IHsgd2l0aFRpbWVvdXQgfSBmcm9tICcuL3dpdGgtdGltZW91dCc7XG5cbi8qKlxuICogSGlnaGVyIG9yZGVyIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgYSBibG9jayB3aXRoIGEgQ2xpTGliIEludGVncmF0aW9uIENESyBhcHAgZml4dHVyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aENsaUxpYkludGVncmF0aW9uQ2RrQXBwPEEgZXh0ZW5kcyBUZXN0Q29udGV4dCAmIEF3c0NvbnRleHQ+KGJsb2NrOiAoY29udGV4dDogQ2xpTGliSW50ZWdyYXRpb25UZXN0Rml4dHVyZSkgPT4gUHJvbWlzZTx2b2lkPikge1xuICByZXR1cm4gYXN5bmMgKGNvbnRleHQ6IEEpID0+IHtcbiAgICBjb25zdCByYW5keSA9IGNvbnRleHQucmFuZG9tU3RyaW5nO1xuICAgIGNvbnN0IHN0YWNrTmFtZVByZWZpeCA9IGBjZGt0ZXN0LSR7cmFuZHl9YDtcbiAgICBjb25zdCBpbnRlZ1Rlc3REaXIgPSBwYXRoLmpvaW4ob3MudG1wZGlyKCksIGBjZGstaW50ZWctJHtyYW5keX1gKTtcblxuICAgIGNvbnRleHQubG9nKGAgU3RhY2sgcHJlZml4OiAgICR7c3RhY2tOYW1lUHJlZml4fVxcbmApO1xuICAgIGNvbnRleHQubG9nKGAgVGVzdCBkaXJlY3Rvcnk6ICR7aW50ZWdUZXN0RGlyfVxcbmApO1xuICAgIGNvbnRleHQubG9nKGAgUmVnaW9uOiAgICAgICAgICR7Y29udGV4dC5hd3MucmVnaW9ufVxcbmApO1xuXG4gICAgYXdhaXQgY2xvbmVEaXJlY3RvcnkocGF0aC5qb2luKFJFU09VUkNFU19ESVIsICdjZGstYXBwcycsICdzaW1wbGUtYXBwJyksIGludGVnVGVzdERpciwgY29udGV4dC5vdXRwdXQpO1xuICAgIGNvbnN0IGZpeHR1cmUgPSBuZXcgQ2xpTGliSW50ZWdyYXRpb25UZXN0Rml4dHVyZShcbiAgICAgIGludGVnVGVzdERpcixcbiAgICAgIHN0YWNrTmFtZVByZWZpeCxcbiAgICAgIGNvbnRleHQub3V0cHV0LFxuICAgICAgY29udGV4dC5hd3MsXG4gICAgICBjb250ZXh0LnJhbmRvbVN0cmluZyk7XG5cbiAgICBsZXQgc3VjY2VzcyA9IHRydWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGluc3RhbGxhdGlvblZlcnNpb24gPSBmaXh0dXJlLnBhY2thZ2VzLnJlcXVlc3RlZEZyYW1ld29ya1ZlcnNpb24oKTtcblxuICAgICAgaWYgKGZpeHR1cmUucGFja2FnZXMubWFqb3JWZXJzaW9uKCkgPT09ICcxJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RoaXMgdGVzdCBzdWl0ZSBpcyBvbmx5IGNvbXBhdGlibGUgd2l0aCBBV1MgQ0RLIHYyJyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGFscGhhSW5zdGFsbGF0aW9uVmVyc2lvbiA9IGZpeHR1cmUucGFja2FnZXMucmVxdWVzdGVkQWxwaGFWZXJzaW9uKCk7XG4gICAgICBhd2FpdCBpbnN0YWxsTnBtUGFja2FnZXMoZml4dHVyZSwge1xuICAgICAgICAnYXdzLWNkay1saWInOiBpbnN0YWxsYXRpb25WZXJzaW9uLFxuICAgICAgICAnQGF3cy1jZGsvY2xpLWxpYi1hbHBoYSc6IGFscGhhSW5zdGFsbGF0aW9uVmVyc2lvbixcbiAgICAgICAgJ0Bhd3MtY2RrL2F3cy1sYW1iZGEtZ28tYWxwaGEnOiBhbHBoYUluc3RhbGxhdGlvblZlcnNpb24sXG4gICAgICAgICdAYXdzLWNkay9hd3MtbGFtYmRhLXB5dGhvbi1hbHBoYSc6IGFscGhhSW5zdGFsbGF0aW9uVmVyc2lvbixcbiAgICAgICAgJ2NvbnN0cnVjdHMnOiAnXjEwJyxcbiAgICAgIH0pO1xuXG4gICAgICBhd2FpdCBibG9jayhmaXh0dXJlKTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIFdlIHN1cnZpdmUgY2VydGFpbiBjYXNlcyBpbnZvbHZpbmcgZ29wa2cuaW5cbiAgICAgIGlmIChlcnJvckNhdXNlZEJ5R29Qa2coZS5tZXNzYWdlKSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBzdWNjZXNzID0gZmFsc2U7XG4gICAgICB0aHJvdyBlO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuSU5URUdfTk9fQ0xFQU4pIHtcbiAgICAgICAgY29udGV4dC5sb2coYExlZnQgdGVzdCBkaXJlY3RvcnkgaW4gJyR7aW50ZWdUZXN0RGlyfScgKCRJTlRFR19OT19DTEVBTilcXG5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IGZpeHR1cmUuZGlzcG9zZShzdWNjZXNzKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG59XG5cbi8qKlxuICogUmV0dXJuIHdoZXRoZXIgb3Igbm90IHRoZSBlcnJvciBpcyBiZWluZyBjYXVzZWQgYnkgZ29wa2cuaW4gYmVpbmcgZG93blxuICpcbiAqIE91ciBHbyBidWlsZCBkZXBlbmRzIG9uIGh0dHBzOi8vZ29wa2cuaW4vLCB3aGljaCBoYXMgZXJyb3JzIHByZXR0eSBvZnRlblxuICogKGV2ZXJ5IGNvdXBsZSBvZiBkYXlzKS4gSXQgaXMgcnVuIGJ5IGEgc2luZ2xlIHZvbHVudGVlci5cbiAqL1xuZnVuY3Rpb24gZXJyb3JDYXVzZWRCeUdvUGtnKGVycm9yOiBzdHJpbmcpIHtcbiAgLy8gVGhlIGVycm9yIGlzIGRpZmZlcmVudCBkZXBlbmRpbmcgb24gd2hhdCByZXF1ZXN0IGZhaWxzLiBNZXNzYWdlcyByZWNvZ25pemVkOlxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyAgICBnbzogZ2l0aHViLmNvbS9hd3MvYXdzLWxhbWJkYS1nb0B2MS4yOC4wIHJlcXVpcmVzXG4gIC8vICAgICAgICBnb3BrZy5pbi95YW1sLnYzQHYzLjAuMC0yMDIwMDYxNTExMzQxMy1lZWVjYTQ4ZmU3NzY6IGludmFsaWQgdmVyc2lvbjogZ2l0IGxzLXJlbW90ZSAtcSBvcmlnaW4gaW4gL2dvL3BrZy9tb2QvY2FjaGUvdmNzLzA5MDFkYzFlZjY3ZmNjZTFjOWIzYWU1MTA3ODc0MGRlNGEwZTJkYzY3M2U3MjA1ODRhYzMwMjk3M2FmODJmMzY6IGV4aXQgc3RhdHVzIDEyODpcbiAgLy8gICAgICAgIHJlbW90ZTogQ2Fubm90IG9idGFpbiByZWZzIGZyb20gR2l0SHViOiBjYW5ub3QgdGFsayB0byBHaXRIdWI6IEdldCBodHRwczovL2dpdGh1Yi5jb20vZ28teWFtbC95YW1sLmdpdC9pbmZvL3JlZnM/c2VydmljZT1naXQtdXBsb2FkLXBhY2s6IG5ldC9odHRwOiByZXF1ZXN0IGNhbmNlbGVkIChDbGllbnQuVGltZW91dCBleGNlZWRlZCB3aGlsZSBhd2FpdGluZyBoZWFkZXJzKVxuICAvLyAgICAgICAgZmF0YWw6IHVuYWJsZSB0byBhY2Nlc3MgJ2h0dHBzOi8vZ29wa2cuaW4veWFtbC52My8nOiBUaGUgcmVxdWVzdGVkIFVSTCByZXR1cm5lZCBlcnJvcjogNTAyXG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gIC8vICAgIGdvOiBkb3dubG9hZGluZyBnaXRodWIuY29tL2F3cy9hd3MtbGFtYmRhLWdvIHYxLjI4LjBcbiAgLy8gICAgZ286IGdpdGh1Yi5jb20vYXdzL2F3cy1sYW1iZGEtZ29AdjEuMjguMCByZXF1aXJlc1xuICAvLyAgICAgICAgZ29wa2cuaW4veWFtbC52M0B2My4wLjAtMjAyMDA2MTUxMTM0MTMtZWVlY2E0OGZlNzc2OiB1bnJlY29nbml6ZWQgaW1wb3J0IHBhdGggXCJnb3BrZy5pbi95YW1sLnYzXCI6IHJlYWRpbmcgaHR0cHM6Ly9nb3BrZy5pbi95YW1sLnYzP2dvLWdldD0xOiA1MDIgQmFkIEdhdGV3YXlcbiAgLy8gICAgICAgIHNlcnZlciByZXNwb25zZTogQ2Fubm90IG9idGFpbiByZWZzIGZyb20gR2l0SHViOiBjYW5ub3QgdGFsayB0byBHaXRIdWI6IEdldCBodHRwczovL2dpdGh1Yi5jb20vZ28teWFtbC95YW1sLmdpdC9pbmZvL3JlZnM/c2VydmljZT1naXQtdXBsb2FkLXBhY2s6IG5ldC9odHRwOiByZXF1ZXN0IGNhbmNlbGVkIChDbGllbnQuVGltZW91dCBleGNlZWRlZCB3aGlsZSBhd2FpdGluZyBoZWFkZXJzKVxuICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAvLyAgICBnbzogZ2l0aHViLmNvbS9hd3MvYXdzLWxhbWJkYS1nb0B2MS4yOC4wIHJlcXVpcmVzXG4gIC8vICAgICAgICBnb3BrZy5pbi95YW1sLnYzQHYzLjAuMC0yMDIwMDYxNTExMzQxMy1lZWVjYTQ4ZmU3NzY6IGludmFsaWQgdmVyc2lvbjogZ2l0IGZldGNoIC1mIG9yaWdpbiByZWZzL2hlYWRzLyo6cmVmcy9oZWFkcy8qIHJlZnMvdGFncy8qOnJlZnMvdGFncy8qIGluIC9nby9wa2cvbW9kL2NhY2hlL3Zjcy8wOTAxZGMxZWY2N2ZjY2UxYzliM2FlNTEwNzg3NDBkZTRhMGUyZGM2NzNlNzIwNTg0YWMzMDI5NzNhZjgyZjM2OiBleGl0IHN0YXR1cyAxMjg6XG4gIC8vICAgICAgICBlcnJvcjogUlBDIGZhaWxlZDsgSFRUUCA1MDIgY3VybCAyMiBUaGUgcmVxdWVzdGVkIFVSTCByZXR1cm5lZCBlcnJvcjogNTAyXG4gIC8vICAgICAgICBmYXRhbDogdGhlIHJlbW90ZSBlbmQgaHVuZyB1cCB1bmV4cGVjdGVkbHlcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICByZXR1cm4gKGVycm9yLmluY2x1ZGVzKCdnb3BrZ1xcLmluLippbnZhbGlkIHZlcnNpb24uKmV4aXQgc3RhdHVzIDEyOCcpXG4gICAgfHwgZXJyb3IubWF0Y2goL3VucmVjb2duaXplZCBpbXBvcnQgcGF0aFteXFxuXWdvcGtnXFwuaW4vKSk7XG59XG5cbi8qKlxuICogU0FNIEludGVncmF0aW9uIHRlc3QgZml4dHVyZSBmb3IgQ0RLIC0gU0FNIGludGVncmF0aW9uIHRlc3QgY2FzZXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhDbGlMaWJGaXh0dXJlKGJsb2NrOiAoY29udGV4dDogQ2xpTGliSW50ZWdyYXRpb25UZXN0Rml4dHVyZSkgPT4gUHJvbWlzZTx2b2lkPikge1xuICByZXR1cm4gd2l0aEF3cyh3aXRoVGltZW91dChERUZBVUxUX1RFU1RfVElNRU9VVF9TLCB3aXRoQ2xpTGliSW50ZWdyYXRpb25DZGtBcHAoYmxvY2spKSk7XG59XG5cbmV4cG9ydCBjbGFzcyBDbGlMaWJJbnRlZ3JhdGlvblRlc3RGaXh0dXJlIGV4dGVuZHMgVGVzdEZpeHR1cmUge1xuICAvKipcbiAgICpcbiAgICovXG4gIHB1YmxpYyBhc3luYyBjZGsoYXJnczogc3RyaW5nW10sIG9wdGlvbnM6IENka0NsaU9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IGFjdGlvbiA9IGFyZ3NbMF07XG4gICAgY29uc3Qgc3RhY2tOYW1lID0gYXJnc1sxXTtcblxuICAgIGNvbnN0IGNsaU9wdHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7XG4gICAgICBzdGFja3M6IHN0YWNrTmFtZSA/IFtzdGFja05hbWVdIDogdW5kZWZpbmVkLFxuICAgIH07XG5cbiAgICBpZiAoYWN0aW9uID09PSAnZGVwbG95Jykge1xuICAgICAgY2xpT3B0cy5yZXF1aXJlQXBwcm92YWwgPSBvcHRpb25zLm5ldmVyUmVxdWlyZUFwcHJvdmFsID8gJ25ldmVyJyA6ICdicm9hZGVuaW5nJztcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5zaGVsbChbJ25vZGUnLCAnLS1pbnB1dC10eXBlPW1vZHVsZScsIGA8PF9fRU9TX19cbiAgICAgIGltcG9ydCB7IEF3c0Nka0NsaSB9IGZyb20gJ0Bhd3MtY2RrL2NsaS1saWItYWxwaGEnO1xuICAgICAgY29uc3QgY2xpID0gQXdzQ2RrQ2xpLmZyb21DZGtBcHBEaXJlY3RvcnkoKTtcblxuICAgICAgYXdhaXQgY2xpLiR7YWN0aW9ufSgke0pTT04uc3RyaW5naWZ5KGNsaU9wdHMpfSk7XG5fX0VPU19fYF0sIHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgQVdTX1JFR0lPTjogdGhpcy5hd3MucmVnaW9uLFxuICAgICAgICBBV1NfREVGQVVMVF9SRUdJT046IHRoaXMuYXdzLnJlZ2lvbixcbiAgICAgICAgU1RBQ0tfTkFNRV9QUkVGSVg6IHRoaXMuc3RhY2tOYW1lUHJlZml4LFxuICAgICAgICBQQUNLQUdFX0xBWU9VVF9WRVJTSU9OOiB0aGlzLnBhY2thZ2VzLm1ham9yVmVyc2lvbigpLFxuICAgICAgICAuLi5vcHRpb25zLm1vZEVudixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxufVxuIl19
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk-testing/cli-integ",
|
|
3
3
|
"description": "Integration tests for the AWS CDK CLI",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.113.0",
|
|
5
5
|
"bin": {
|
|
6
6
|
"run-suite": "bin/run-suite",
|
|
7
7
|
"download-and-run-old-tests": "bin/download-and-run-old-tests",
|
|
@@ -29,18 +29,18 @@
|
|
|
29
29
|
},
|
|
30
30
|
"license": "Apache-2.0",
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
32
|
+
"@aws-cdk/cdk-build-tools": "2.113.0-alpha.0",
|
|
33
33
|
"@types/semver": "^7.5.5",
|
|
34
34
|
"@types/yargs": "^15.0.18",
|
|
35
35
|
"@types/fs-extra": "^9.0.13",
|
|
36
36
|
"@types/glob": "^7.2.0",
|
|
37
37
|
"@types/npm": "^7.19.3",
|
|
38
|
-
"@aws-cdk/pkglint": "2.
|
|
38
|
+
"@aws-cdk/pkglint": "2.113.0-alpha.0"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@octokit/rest": "^18.12.0",
|
|
42
|
-
"aws-sdk": "^2.
|
|
43
|
-
"axios": "^1.6.
|
|
42
|
+
"aws-sdk": "^2.1498.0",
|
|
43
|
+
"axios": "^1.6.2",
|
|
44
44
|
"fs-extra": "^9.1.0",
|
|
45
45
|
"glob": "^7.2.3",
|
|
46
46
|
"jest": "^29.7.0",
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const cdk = require('aws-cdk-lib/core');
|
|
2
|
+
const iam = require('aws-cdk-lib/aws-iam');
|
|
3
|
+
const sqs = require('aws-cdk-lib/aws-sqs');
|
|
4
|
+
|
|
5
|
+
const stackPrefix = process.env.STACK_NAME_PREFIX;
|
|
6
|
+
if (!stackPrefix) {
|
|
7
|
+
throw new Error(`the STACK_NAME_PREFIX environment variable is required`);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
class SimpleStack extends cdk.Stack {
|
|
11
|
+
constructor(scope, id, props) {
|
|
12
|
+
super(scope, id, props);
|
|
13
|
+
const queue = new sqs.Queue(this, 'queue', {
|
|
14
|
+
visibilityTimeout: cdk.Duration.seconds(300),
|
|
15
|
+
});
|
|
16
|
+
const role = new iam.Role(this, 'role', {
|
|
17
|
+
assumedBy: new iam.AnyPrincipal(),
|
|
18
|
+
});
|
|
19
|
+
queue.grantConsumeMessages(role);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const app = new cdk.App();
|
|
24
|
+
new SimpleStack(app, `${stackPrefix}-simple-1`);
|
|
25
|
+
|
|
26
|
+
app.synth();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const lib_1 = require("../../lib");
|
|
4
|
+
jest.setTimeout(2 * 60 * 60000); // Includes the time to acquire locks, worst-case single-threaded runtime
|
|
5
|
+
(0, lib_1.integTest)('cli-lib synth', (0, lib_1.withCliLibFixture)(async (fixture) => {
|
|
6
|
+
await fixture.cdk(['synth', fixture.fullStackName('simple-1')]);
|
|
7
|
+
expect(fixture.template('simple-1')).toEqual(expect.objectContaining({
|
|
8
|
+
// Checking for a small subset is enough as proof that synth worked
|
|
9
|
+
Resources: expect.objectContaining({
|
|
10
|
+
queue276F7297: expect.objectContaining({
|
|
11
|
+
Type: 'AWS::SQS::Queue',
|
|
12
|
+
Properties: {
|
|
13
|
+
VisibilityTimeout: 300,
|
|
14
|
+
},
|
|
15
|
+
Metadata: {
|
|
16
|
+
'aws:cdk:path': `${fixture.stackNamePrefix}-simple-1/queue/Resource`,
|
|
17
|
+
},
|
|
18
|
+
}),
|
|
19
|
+
}),
|
|
20
|
+
}));
|
|
21
|
+
}));
|
|
22
|
+
(0, lib_1.integTest)('cli-lib list', (0, lib_1.withCliLibFixture)(async (fixture) => {
|
|
23
|
+
const listing = await fixture.cdk(['list'], { captureStderr: false });
|
|
24
|
+
expect(listing).toContain(fixture.fullStackName('simple-1'));
|
|
25
|
+
}));
|
|
26
|
+
(0, lib_1.integTest)('cli-lib deploy', (0, lib_1.withCliLibFixture)(async (fixture) => {
|
|
27
|
+
const stackName = fixture.fullStackName('simple-1');
|
|
28
|
+
try {
|
|
29
|
+
// deploy the stack
|
|
30
|
+
await fixture.cdk(['deploy', stackName], {
|
|
31
|
+
neverRequireApproval: true,
|
|
32
|
+
});
|
|
33
|
+
// verify the number of resources in the stack
|
|
34
|
+
const expectedStack = await fixture.aws.cloudFormation('describeStackResources', {
|
|
35
|
+
StackName: stackName,
|
|
36
|
+
});
|
|
37
|
+
expect(expectedStack.StackResources?.length).toEqual(3);
|
|
38
|
+
}
|
|
39
|
+
finally {
|
|
40
|
+
// delete the stack
|
|
41
|
+
await fixture.cdk(['destroy', stackName], {
|
|
42
|
+
captureStderr: false,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}));
|
|
46
|
+
(0, lib_1.integTest)('security related changes without a CLI are expected to fail when approval is required', (0, lib_1.withCliLibFixture)(async (fixture) => {
|
|
47
|
+
const stdErr = await fixture.cdk(['deploy', fixture.fullStackName('simple-1')], {
|
|
48
|
+
onlyStderr: true,
|
|
49
|
+
captureStderr: true,
|
|
50
|
+
allowErrExit: true,
|
|
51
|
+
neverRequireApproval: false,
|
|
52
|
+
});
|
|
53
|
+
expect(stdErr).toContain('This deployment will make potentially sensitive changes according to your current security approval level');
|
|
54
|
+
expect(stdErr).toContain('Deployment failed: Error: \"--require-approval\" is enabled and stack includes security-sensitive updates');
|
|
55
|
+
// Ensure stack was not deployed
|
|
56
|
+
await expect(fixture.aws.cloudFormation('describeStacks', {
|
|
57
|
+
StackName: fixture.fullStackName('simple-1'),
|
|
58
|
+
})).rejects.toThrow('does not exist');
|
|
59
|
+
}));
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWxpYi5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjbGktbGliLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1DQUF5RDtBQUV6RCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsS0FBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQUMsZUFBZSxFQUFFLElBQUEsdUJBQWlCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQzdELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRSxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUM7UUFDbkUsbUVBQW1FO1FBQ25FLFNBQVMsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDakMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDckMsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsVUFBVSxFQUFFO29CQUNWLGlCQUFpQixFQUFFLEdBQUc7aUJBQ3ZCO2dCQUNELFFBQVEsRUFBRTtvQkFDUixjQUFjLEVBQUUsR0FBRyxPQUFPLENBQUMsZUFBZSwwQkFBMEI7aUJBQ3JFO2FBQ0YsQ0FBQztTQUNILENBQUM7S0FDSCxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFSixJQUFBLGVBQVMsRUFBQyxjQUFjLEVBQUUsSUFBQSx1QkFBaUIsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDNUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN0RSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUMvRCxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRUosSUFBQSxlQUFTLEVBQUMsZ0JBQWdCLEVBQUUsSUFBQSx1QkFBaUIsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDOUQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVwRCxJQUFJO1FBQ0YsbUJBQW1CO1FBQ25CLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsRUFBRTtZQUN2QyxvQkFBb0IsRUFBRSxJQUFJO1NBQzNCLENBQUMsQ0FBQztRQUVILDhDQUE4QztRQUM5QyxNQUFNLGFBQWEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLHdCQUF3QixFQUFFO1lBQy9FLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxhQUFhLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUN6RDtZQUFTO1FBQ1IsbUJBQW1CO1FBQ25CLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRTtZQUN4QyxhQUFhLEVBQUUsS0FBSztTQUNyQixDQUFDLENBQUM7S0FDSjtBQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFSixJQUFBLGVBQVMsRUFBQyx1RkFBdUYsRUFBRSxJQUFBLHVCQUFpQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNySSxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFO1FBQzlFLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLFlBQVksRUFBRSxJQUFJO1FBQ2xCLG9CQUFvQixFQUFFLEtBQUs7S0FDNUIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQywyR0FBMkcsQ0FBQyxDQUFDO0lBQ3RJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsMkdBQTJHLENBQUMsQ0FBQztJQUV0SSxnQ0FBZ0M7SUFDaEMsTUFBTSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUU7UUFDeEQsU0FBUyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO0tBQzdDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztBQUN4QyxDQUFDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoQ2xpTGliRml4dHVyZSB9IGZyb20gJy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdCgnY2xpLWxpYiBzeW50aCcsIHdpdGhDbGlMaWJGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gIGF3YWl0IGZpeHR1cmUuY2RrKFsnc3ludGgnLCBmaXh0dXJlLmZ1bGxTdGFja05hbWUoJ3NpbXBsZS0xJyldKTtcbiAgZXhwZWN0KGZpeHR1cmUudGVtcGxhdGUoJ3NpbXBsZS0xJykpLnRvRXF1YWwoZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgIC8vIENoZWNraW5nIGZvciBhIHNtYWxsIHN1YnNldCBpcyBlbm91Z2ggYXMgcHJvb2YgdGhhdCBzeW50aCB3b3JrZWRcbiAgICBSZXNvdXJjZXM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgIHF1ZXVlMjc2RjcyOTc6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZScsXG4gICAgICAgIFByb3BlcnRpZXM6IHtcbiAgICAgICAgICBWaXNpYmlsaXR5VGltZW91dDogMzAwLFxuICAgICAgICB9LFxuICAgICAgICBNZXRhZGF0YToge1xuICAgICAgICAgICdhd3M6Y2RrOnBhdGgnOiBgJHtmaXh0dXJlLnN0YWNrTmFtZVByZWZpeH0tc2ltcGxlLTEvcXVldWUvUmVzb3VyY2VgLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSksXG4gIH0pKTtcbn0pKTtcblxuaW50ZWdUZXN0KCdjbGktbGliIGxpc3QnLCB3aXRoQ2xpTGliRml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICBjb25zdCBsaXN0aW5nID0gYXdhaXQgZml4dHVyZS5jZGsoWydsaXN0J10sIHsgY2FwdHVyZVN0ZGVycjogZmFsc2UgfSk7XG4gIGV4cGVjdChsaXN0aW5nKS50b0NvbnRhaW4oZml4dHVyZS5mdWxsU3RhY2tOYW1lKCdzaW1wbGUtMScpKTtcbn0pKTtcblxuaW50ZWdUZXN0KCdjbGktbGliIGRlcGxveScsIHdpdGhDbGlMaWJGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gIGNvbnN0IHN0YWNrTmFtZSA9IGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnc2ltcGxlLTEnKTtcblxuICB0cnkge1xuICAgIC8vIGRlcGxveSB0aGUgc3RhY2tcbiAgICBhd2FpdCBmaXh0dXJlLmNkayhbJ2RlcGxveScsIHN0YWNrTmFtZV0sIHtcbiAgICAgIG5ldmVyUmVxdWlyZUFwcHJvdmFsOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gdmVyaWZ5IHRoZSBudW1iZXIgb2YgcmVzb3VyY2VzIGluIHRoZSBzdGFja1xuICAgIGNvbnN0IGV4cGVjdGVkU3RhY2sgPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbignZGVzY3JpYmVTdGFja1Jlc291cmNlcycsIHtcbiAgICAgIFN0YWNrTmFtZTogc3RhY2tOYW1lLFxuICAgIH0pO1xuICAgIGV4cGVjdChleHBlY3RlZFN0YWNrLlN0YWNrUmVzb3VyY2VzPy5sZW5ndGgpLnRvRXF1YWwoMyk7XG4gIH0gZmluYWxseSB7XG4gICAgLy8gZGVsZXRlIHRoZSBzdGFja1xuICAgIGF3YWl0IGZpeHR1cmUuY2RrKFsnZGVzdHJveScsIHN0YWNrTmFtZV0sIHtcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgIH0pO1xuICB9XG59KSk7XG5cbmludGVnVGVzdCgnc2VjdXJpdHkgcmVsYXRlZCBjaGFuZ2VzIHdpdGhvdXQgYSBDTEkgYXJlIGV4cGVjdGVkIHRvIGZhaWwgd2hlbiBhcHByb3ZhbCBpcyByZXF1aXJlZCcsIHdpdGhDbGlMaWJGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gIGNvbnN0IHN0ZEVyciA9IGF3YWl0IGZpeHR1cmUuY2RrKFsnZGVwbG95JywgZml4dHVyZS5mdWxsU3RhY2tOYW1lKCdzaW1wbGUtMScpXSwge1xuICAgIG9ubHlTdGRlcnI6IHRydWUsXG4gICAgY2FwdHVyZVN0ZGVycjogdHJ1ZSxcbiAgICBhbGxvd0VyckV4aXQ6IHRydWUsXG4gICAgbmV2ZXJSZXF1aXJlQXBwcm92YWw6IGZhbHNlLFxuICB9KTtcblxuICBleHBlY3Qoc3RkRXJyKS50b0NvbnRhaW4oJ1RoaXMgZGVwbG95bWVudCB3aWxsIG1ha2UgcG90ZW50aWFsbHkgc2Vuc2l0aXZlIGNoYW5nZXMgYWNjb3JkaW5nIHRvIHlvdXIgY3VycmVudCBzZWN1cml0eSBhcHByb3ZhbCBsZXZlbCcpO1xuICBleHBlY3Qoc3RkRXJyKS50b0NvbnRhaW4oJ0RlcGxveW1lbnQgZmFpbGVkOiBFcnJvcjogXFxcIi0tcmVxdWlyZS1hcHByb3ZhbFxcXCIgaXMgZW5hYmxlZCBhbmQgc3RhY2sgaW5jbHVkZXMgc2VjdXJpdHktc2Vuc2l0aXZlIHVwZGF0ZXMnKTtcblxuICAvLyBFbnN1cmUgc3RhY2sgd2FzIG5vdCBkZXBsb3llZFxuICBhd2FpdCBleHBlY3QoZml4dHVyZS5hd3MuY2xvdWRGb3JtYXRpb24oJ2Rlc2NyaWJlU3RhY2tzJywge1xuICAgIFN0YWNrTmFtZTogZml4dHVyZS5mdWxsU3RhY2tOYW1lKCdzaW1wbGUtMScpLFxuICB9KSkucmVqZWN0cy50b1Rocm93KCdkb2VzIG5vdCBleGlzdCcpO1xufSkpO1xuIl19
|