@aws-cdk-testing/cli-integ 3.36.2 → 3.37.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.
@@ -0,0 +1,74 @@
1
+ const cdk = require('aws-cdk-lib/core');
2
+ const iam = require('aws-cdk-lib/aws-iam');
3
+ const lambda = require('aws-cdk-lib/aws-lambda');
4
+ const s3 = require('aws-cdk-lib/aws-s3');
5
+
6
+ const stackPrefix = process.env.STACK_NAME_PREFIX;
7
+ if (!stackPrefix) {
8
+ throw new Error('the STACK_NAME_PREFIX environment variable is required');
9
+ }
10
+
11
+ const testStackName = `${stackPrefix}-lambda-hook-test`;
12
+
13
+ // The detailed failure reason, only available through the hook result APIs
14
+ const hookFailureMessage = 'Ingress must not allow 0.0.0.0/0 to non-HTTP(s) ports';
15
+
16
+ // Setup a Lambda Hook that will fail change sets of the test stack
17
+ class LambdaHookSetupStack extends cdk.Stack {
18
+ constructor(scope, id, props) {
19
+ super(scope, id, props);
20
+
21
+ // Hook handler that always fails with a detailed message
22
+ const hookFunction = new lambda.Function(this, 'HookFunction', {
23
+ runtime: lambda.Runtime.NODEJS_LATEST,
24
+ handler: 'index.handler',
25
+ code: lambda.Code.fromInline(`
26
+ exports.handler = async (event) => {
27
+ return {
28
+ hookStatus: 'FAILED',
29
+ errorCode: 'NonCompliant',
30
+ message: ${JSON.stringify(hookFailureMessage)},
31
+ clientRequestToken: event.clientRequestToken,
32
+ };
33
+ };
34
+ `),
35
+ });
36
+
37
+ // IAM role for Lambda Hook execution
38
+ const hookRole = new iam.Role(this, 'LambdaHookExecutionRole', {
39
+ assumedBy: new iam.ServicePrincipal('hooks.cloudformation.amazonaws.com'),
40
+ });
41
+ hookFunction.grantInvoke(hookRole);
42
+
43
+ // Lambda Hook - fails CHANGE_SET operations, but only for the test stack
44
+ new cdk.CfnLambdaHook(this, 'LambdaHook', {
45
+ alias: 'Private::Lambda::TestHook',
46
+ executionRole: hookRole.roleArn,
47
+ failureMode: 'FAIL',
48
+ hookStatus: 'ENABLED',
49
+ lambdaFunction: hookFunction.functionArn,
50
+ targetOperations: ['CHANGE_SET'],
51
+ stackFilters: {
52
+ filteringCriteria: 'ALL',
53
+ stackNames: {
54
+ // Only evaluate the test stack, to not interfere with anything else in the account
55
+ include: [testStackName],
56
+ },
57
+ },
58
+ });
59
+ }
60
+ }
61
+
62
+ class LambdaHookTestStack extends cdk.Stack {
63
+ constructor(scope, id, props) {
64
+ super(scope, id, props);
65
+
66
+ new s3.CfnBucket(this, 'SomeBucket');
67
+ }
68
+ }
69
+
70
+ const app = new cdk.App();
71
+ new LambdaHookSetupStack(app, `${stackPrefix}-lambda-hook-setup`);
72
+ new LambdaHookTestStack(app, testStackName);
73
+
74
+ app.synth();
@@ -0,0 +1,4 @@
1
+ {
2
+ "app": "node app.js",
3
+ "versionReporting": false
4
+ }
@@ -44,8 +44,8 @@ async function writeFileAsset(fixture) {
44
44
  for (const toCreate of [relativeAssetFile]) {
45
45
  await fs_1.promises.writeFile(path.join(fixture.integTestDir, toCreate), 'some asset file');
46
46
  }
47
- const bucketName = `cdk-hnb659fds-assets-${account}-${region}`;
48
- const assumeRoleArn = `arn:\${AWS::Partition}:iam::${account}:role/cdk-hnb659fds-file-publishing-role-${account}-${region}`;
47
+ const bucketName = `cdk-${fixture.qualifier}-assets-${account}-${region}`;
48
+ const assumeRoleArn = `arn:\${AWS::Partition}:iam::${account}:role/cdk-${fixture.qualifier}-file-publishing-role-${account}-${region}`;
49
49
  return {
50
50
  relativeAssetFile,
51
51
  bucketName,
@@ -65,8 +65,8 @@ async function writeDockerAsset(fixture) {
65
65
  ].join('\n'));
66
66
  const account = await fixture.aws.account();
67
67
  const region = fixture.aws.region;
68
- const repositoryName = `cdk-hnb659fds-container-assets-${account}-${region}`;
69
- const assumeRoleArn = `arn:\${AWS::Partition}:iam::${account}:role/cdk-hnb659fds-image-publishing-role-${account}-${region}`;
68
+ const repositoryName = `cdk-${fixture.qualifier}-container-assets-${account}-${region}`;
69
+ const assumeRoleArn = `arn:\${AWS::Partition}:iam::${account}:role/cdk-${fixture.qualifier}-image-publishing-role-${account}-${region}`;
70
70
  const repositoryDomain = `${account}.dkr.ecr.${region}.amazonaws.com`;
71
71
  return {
72
72
  repositoryName,
@@ -75,4 +75,4 @@ async function writeDockerAsset(fixture) {
75
75
  repositoryDomain,
76
76
  };
77
77
  }
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRfaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0X2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQSx3Q0FnQkM7QUFFRCw0Q0EwQkM7QUFoREQsMkJBQW9DO0FBQ3BDLDJDQUE2QjtBQUd0QixLQUFLLFVBQVUsY0FBYyxDQUFDLE9BQW9CO0lBQ3ZELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUVsQyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztJQUN6QyxLQUFLLE1BQU0sUUFBUSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsd0JBQXdCLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUMvRCxNQUFNLGFBQWEsR0FBRywrQkFBK0IsT0FBTyw0Q0FBNEMsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBRTVILE9BQU87UUFDTCxpQkFBaUI7UUFDakIsVUFBVTtRQUNWLGFBQWE7S0FDZCxDQUFDO0FBQ0osQ0FBQztBQUVNLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxPQUFvQjtJQUN6RCxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztJQUNwQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sYUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXRELEtBQUssTUFBTSxRQUFRLElBQUksQ0FBQyxHQUFHLGdCQUFnQixlQUFlLENBQUMsRUFBRSxDQUFDO1FBQzVELE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLEVBQUU7UUFDNUQsY0FBYztRQUNkLCtCQUErQjtLQUNoQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRWQsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ2xDLE1BQU0sY0FBYyxHQUFHLGtDQUFrQyxPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7SUFDN0UsTUFBTSxhQUFhLEdBQUcsK0JBQStCLE9BQU8sNkNBQTZDLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUM3SCxNQUFNLGdCQUFnQixHQUFHLEdBQUcsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7SUFFdEUsT0FBTztRQUNMLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtLQUNqQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgVGVzdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWIvd2l0aC1jZGstYXBwJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlRmlsZUFzc2V0KGZpeHR1cmU6IFRlc3RGaXh0dXJlKSB7XG4gIGNvbnN0IGFjY291bnQgPSBhd2FpdCBmaXh0dXJlLmF3cy5hY2NvdW50KCk7XG4gIGNvbnN0IHJlZ2lvbiA9IGZpeHR1cmUuYXdzLnJlZ2lvbjtcblxuICBjb25zdCByZWxhdGl2ZUFzc2V0RmlsZSA9ICd0ZXN0ZmlsZS50eHQnO1xuICBmb3IgKGNvbnN0IHRvQ3JlYXRlIG9mIFtyZWxhdGl2ZUFzc2V0RmlsZV0pIHtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCB0b0NyZWF0ZSksICdzb21lIGFzc2V0IGZpbGUnKTtcbiAgfVxuICBjb25zdCBidWNrZXROYW1lID0gYGNkay1obmI2NTlmZHMtYXNzZXRzLSR7YWNjb3VudH0tJHtyZWdpb259YDtcbiAgY29uc3QgYXNzdW1lUm9sZUFybiA9IGBhcm46XFwke0FXUzo6UGFydGl0aW9ufTppYW06OiR7YWNjb3VudH06cm9sZS9jZGstaG5iNjU5ZmRzLWZpbGUtcHVibGlzaGluZy1yb2xlLSR7YWNjb3VudH0tJHtyZWdpb259YDtcblxuICByZXR1cm4ge1xuICAgIHJlbGF0aXZlQXNzZXRGaWxlLFxuICAgIGJ1Y2tldE5hbWUsXG4gICAgYXNzdW1lUm9sZUFybixcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlRG9ja2VyQXNzZXQoZml4dHVyZTogVGVzdEZpeHR1cmUpIHtcbiAgY29uc3QgcmVsYXRpdmVJbWFnZURpciA9ICdpbWFnZWRpcic7XG4gIGNvbnN0IGFic29sdXRlSW1hZ2VEaXIgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIHJlbGF0aXZlSW1hZ2VEaXIpO1xuICBhd2FpdCBmcy5ta2RpcihhYnNvbHV0ZUltYWdlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBmb3IgKGNvbnN0IHRvQ3JlYXRlIG9mIFtgJHthYnNvbHV0ZUltYWdlRGlyfS9kYXRhZmlsZS50eHRgXSkge1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0b0NyZWF0ZSwgJ3NvbWUgYXNzZXQgZmlsZScpO1xuICB9XG5cbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihhYnNvbHV0ZUltYWdlRGlyLCAnRG9ja2VyZmlsZScpLCBbXG4gICAgJ0ZST00gc2NyYXRjaCcsXG4gICAgJ0FERCBkYXRhZmlsZS50eHQgZGF0YWZpbGUudHh0JyxcbiAgXS5qb2luKCdcXG4nKSk7XG5cbiAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGZpeHR1cmUuYXdzLmFjY291bnQoKTtcbiAgY29uc3QgcmVnaW9uID0gZml4dHVyZS5hd3MucmVnaW9uO1xuICBjb25zdCByZXBvc2l0b3J5TmFtZSA9IGBjZGstaG5iNjU5ZmRzLWNvbnRhaW5lci1hc3NldHMtJHthY2NvdW50fS0ke3JlZ2lvbn1gO1xuICBjb25zdCBhc3N1bWVSb2xlQXJuID0gYGFybjpcXCR7QVdTOjpQYXJ0aXRpb259OmlhbTo6JHthY2NvdW50fTpyb2xlL2Nkay1obmI2NTlmZHMtaW1hZ2UtcHVibGlzaGluZy1yb2xlLSR7YWNjb3VudH0tJHtyZWdpb259YDtcbiAgY29uc3QgcmVwb3NpdG9yeURvbWFpbiA9IGAke2FjY291bnR9LmRrci5lY3IuJHtyZWdpb259LmFtYXpvbmF3cy5jb21gO1xuXG4gIHJldHVybiB7XG4gICAgcmVwb3NpdG9yeU5hbWUsXG4gICAgYXNzdW1lUm9sZUFybixcbiAgICByZWxhdGl2ZUltYWdlRGlyLFxuICAgIHJlcG9zaXRvcnlEb21haW4sXG4gIH07XG59XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRfaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0X2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJQSx3Q0FnQkM7QUFFRCw0Q0EwQkM7QUFoREQsMkJBQW9DO0FBQ3BDLDJDQUE2QjtBQUd0QixLQUFLLFVBQVUsY0FBYyxDQUFDLE9BQW9CO0lBQ3ZELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUVsQyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztJQUN6QyxLQUFLLE1BQU0sUUFBUSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxPQUFPLENBQUMsU0FBUyxXQUFXLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUMxRSxNQUFNLGFBQWEsR0FBRywrQkFBK0IsT0FBTyxhQUFhLE9BQU8sQ0FBQyxTQUFTLHlCQUF5QixPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7SUFFdkksT0FBTztRQUNMLGlCQUFpQjtRQUNqQixVQUFVO1FBQ1YsYUFBYTtLQUNkLENBQUM7QUFDSixDQUFDO0FBRU0sS0FBSyxVQUFVLGdCQUFnQixDQUFDLE9BQW9CO0lBQ3pELE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxDQUFDO0lBQ3BDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDM0UsTUFBTSxhQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFdEQsS0FBSyxNQUFNLFFBQVEsSUFBSSxDQUFDLEdBQUcsZ0JBQWdCLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDNUQsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLENBQUMsRUFBRTtRQUM1RCxjQUFjO1FBQ2QsK0JBQStCO0tBQ2hDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFZCxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDbEMsTUFBTSxjQUFjLEdBQUcsT0FBTyxPQUFPLENBQUMsU0FBUyxxQkFBcUIsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQ3hGLE1BQU0sYUFBYSxHQUFHLCtCQUErQixPQUFPLGFBQWEsT0FBTyxDQUFDLFNBQVMsMEJBQTBCLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUN4SSxNQUFNLGdCQUFnQixHQUFHLEdBQUcsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7SUFFdEUsT0FBTztRQUNMLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtLQUNqQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgVGVzdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWIvd2l0aC1jZGstYXBwJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlRmlsZUFzc2V0KGZpeHR1cmU6IFRlc3RGaXh0dXJlKSB7XG4gIGNvbnN0IGFjY291bnQgPSBhd2FpdCBmaXh0dXJlLmF3cy5hY2NvdW50KCk7XG4gIGNvbnN0IHJlZ2lvbiA9IGZpeHR1cmUuYXdzLnJlZ2lvbjtcblxuICBjb25zdCByZWxhdGl2ZUFzc2V0RmlsZSA9ICd0ZXN0ZmlsZS50eHQnO1xuICBmb3IgKGNvbnN0IHRvQ3JlYXRlIG9mIFtyZWxhdGl2ZUFzc2V0RmlsZV0pIHtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCB0b0NyZWF0ZSksICdzb21lIGFzc2V0IGZpbGUnKTtcbiAgfVxuICBjb25zdCBidWNrZXROYW1lID0gYGNkay0ke2ZpeHR1cmUucXVhbGlmaWVyfS1hc3NldHMtJHthY2NvdW50fS0ke3JlZ2lvbn1gO1xuICBjb25zdCBhc3N1bWVSb2xlQXJuID0gYGFybjpcXCR7QVdTOjpQYXJ0aXRpb259OmlhbTo6JHthY2NvdW50fTpyb2xlL2Nkay0ke2ZpeHR1cmUucXVhbGlmaWVyfS1maWxlLXB1Ymxpc2hpbmctcm9sZS0ke2FjY291bnR9LSR7cmVnaW9ufWA7XG5cbiAgcmV0dXJuIHtcbiAgICByZWxhdGl2ZUFzc2V0RmlsZSxcbiAgICBidWNrZXROYW1lLFxuICAgIGFzc3VtZVJvbGVBcm4sXG4gIH07XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB3cml0ZURvY2tlckFzc2V0KGZpeHR1cmU6IFRlc3RGaXh0dXJlKSB7XG4gIGNvbnN0IHJlbGF0aXZlSW1hZ2VEaXIgPSAnaW1hZ2VkaXInO1xuICBjb25zdCBhYnNvbHV0ZUltYWdlRGlyID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCByZWxhdGl2ZUltYWdlRGlyKTtcbiAgYXdhaXQgZnMubWtkaXIoYWJzb2x1dGVJbWFnZURpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgZm9yIChjb25zdCB0b0NyZWF0ZSBvZiBbYCR7YWJzb2x1dGVJbWFnZURpcn0vZGF0YWZpbGUudHh0YF0pIHtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUodG9DcmVhdGUsICdzb21lIGFzc2V0IGZpbGUnKTtcbiAgfVxuXG4gIGF3YWl0IGZzLndyaXRlRmlsZShwYXRoLmpvaW4oYWJzb2x1dGVJbWFnZURpciwgJ0RvY2tlcmZpbGUnKSwgW1xuICAgICdGUk9NIHNjcmF0Y2gnLFxuICAgICdBREQgZGF0YWZpbGUudHh0IGRhdGFmaWxlLnR4dCcsXG4gIF0uam9pbignXFxuJykpO1xuXG4gIGNvbnN0IGFjY291bnQgPSBhd2FpdCBmaXh0dXJlLmF3cy5hY2NvdW50KCk7XG4gIGNvbnN0IHJlZ2lvbiA9IGZpeHR1cmUuYXdzLnJlZ2lvbjtcbiAgY29uc3QgcmVwb3NpdG9yeU5hbWUgPSBgY2RrLSR7Zml4dHVyZS5xdWFsaWZpZXJ9LWNvbnRhaW5lci1hc3NldHMtJHthY2NvdW50fS0ke3JlZ2lvbn1gO1xuICBjb25zdCBhc3N1bWVSb2xlQXJuID0gYGFybjpcXCR7QVdTOjpQYXJ0aXRpb259OmlhbTo6JHthY2NvdW50fTpyb2xlL2Nkay0ke2ZpeHR1cmUucXVhbGlmaWVyfS1pbWFnZS1wdWJsaXNoaW5nLXJvbGUtJHthY2NvdW50fS0ke3JlZ2lvbn1gO1xuICBjb25zdCByZXBvc2l0b3J5RG9tYWluID0gYCR7YWNjb3VudH0uZGtyLmVjci4ke3JlZ2lvbn0uYW1hem9uYXdzLmNvbWA7XG5cbiAgcmV0dXJuIHtcbiAgICByZXBvc2l0b3J5TmFtZSxcbiAgICBhc3N1bWVSb2xlQXJuLFxuICAgIHJlbGF0aXZlSW1hZ2VEaXIsXG4gICAgcmVwb3NpdG9yeURvbWFpbixcbiAgfTtcbn1cbiJdfQ==
@@ -41,7 +41,7 @@ const lib_1 = require("../../../lib");
41
41
  await fixture.cdkAssets.makeCliAvailable();
42
42
  const account = await fixture.aws.account();
43
43
  const region = fixture.aws.region;
44
- const bucketName = `cdk-hnb659fds-assets-${account}-${region}`;
44
+ const bucketName = `cdk-${fixture.qualifier}-assets-${account}-${region}`;
45
45
  // Write some asset files. Its important to have more than 1 because cdk-assets
46
46
  // code has some funky state mutations that happens on each asset publishing.
47
47
  const assetFile1 = 'testfile.txt';
@@ -60,7 +60,7 @@ const lib_1 = require("../../../lib");
60
60
  destinations: {
61
61
  current: {
62
62
  region,
63
- assumeRoleArn: `arn:\${AWS::Partition}:iam::${account}:role/cdk-hnb659fds-file-publishing-role-${account}-${region}`,
63
+ assumeRoleArn: `arn:\${AWS::Partition}:iam::${account}:role/cdk-${fixture.qualifier}-file-publishing-role-${account}-${region}`,
64
64
  bucketName,
65
65
  objectKey: `test-file1-${Date.now()}.json`,
66
66
  },
@@ -74,7 +74,7 @@ const lib_1 = require("../../../lib");
74
74
  destinations: {
75
75
  current: {
76
76
  region,
77
- assumeRoleArn: `arn:\${AWS::Partition}:iam::${account}:role/cdk-hnb659fds-file-publishing-role-${account}-${region}`,
77
+ assumeRoleArn: `arn:\${AWS::Partition}:iam::${account}:role/cdk-${fixture.qualifier}-file-publishing-role-${account}-${region}`,
78
78
  bucketName,
79
79
  objectKey: `test-file2-${Date.now()}.json`,
80
80
  },
@@ -108,4 +108,4 @@ aws_session_token=${currentCreds.sessionToken}`);
108
108
  },
109
109
  });
110
110
  }));
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFzc2V0cy11c2VzLXByb2ZpbGUuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWFzc2V0cy11c2VzLXByb2ZpbGUuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMkJBQW9DO0FBQ3BDLDJDQUE2QjtBQUM3QixzQ0FBNkQ7QUFFN0QsSUFBQSxlQUFTLEVBQUMsd0NBQXdDLEVBQUUsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDdkYsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRXJELE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxNQUFNLFVBQVUsR0FBRyx3QkFBd0IsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBRS9ELCtFQUErRTtJQUMvRSw2RUFBNkU7SUFDN0UsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDO0lBQ2xDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQztJQUNsQyxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDbkYsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRW5GLHNFQUFzRTtJQUN0RSxNQUFNLFVBQVUsR0FBRztRQUNqQixPQUFPLEVBQUUsUUFBUTtRQUNqQixLQUFLLEVBQUU7WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxVQUFVO29CQUNoQixTQUFTLEVBQUUsTUFBTTtpQkFDbEI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLE9BQU8sRUFBRTt3QkFDUCxNQUFNO3dCQUNOLGFBQWEsRUFBRSwrQkFBK0IsT0FBTyw0Q0FBNEMsT0FBTyxJQUFJLE1BQU0sRUFBRTt3QkFDcEgsVUFBVTt3QkFDVixTQUFTLEVBQUUsY0FBYyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU87cUJBQzNDO2lCQUNGO2FBQ0Y7WUFDRCxTQUFTLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxVQUFVO29CQUNoQixTQUFTLEVBQUUsTUFBTTtpQkFDbEI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLE9BQU8sRUFBRTt3QkFDUCxNQUFNO3dCQUNOLGFBQWEsRUFBRSwrQkFBK0IsT0FBTyw0Q0FBNEMsT0FBTyxJQUFJLE1BQU0sRUFBRTt3QkFDcEgsVUFBVTt3QkFDVixTQUFTLEVBQUUsY0FBYyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU87cUJBQzNDO2lCQUNGO2FBQ0Y7U0FDRjtLQUNGLENBQUM7SUFFRixpREFBaUQ7SUFDakQsRUFBRTtJQUNGLG9HQUFvRztJQUNwRywyRkFBMkY7SUFDM0YsMkZBQTJGO0lBQzNGLHdCQUF3QjtJQUN4QixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUMzRSxNQUFNLE9BQU8sR0FBRyxZQUFZLENBQUM7SUFFN0IsOEVBQThFO0lBQzlFLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsSUFBSSxPQUFPO29CQUM3QixZQUFZLENBQUMsV0FBVzt3QkFDcEIsWUFBWSxDQUFDLGVBQWU7b0JBQ2hDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBRS9DLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0csTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsRUFBRTtRQUM1RixNQUFNLEVBQUU7WUFDTixHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDeEIsMkJBQTJCLEVBQUUsZUFBZTtZQUU1Qyw4REFBOEQ7WUFDOUQsaUZBQWlGO1lBQ2pGLGlCQUFpQixFQUFFLEVBQUU7WUFDckIscUJBQXFCLEVBQUUsRUFBRTtZQUN6QixpQkFBaUIsRUFBRSxFQUFFO1NBRXRCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5pbnRlZ1Rlc3QoJ2Nkay1hc3NldHMgdXNlcyBwcm9maWxlIHdoZW4gc3BlY2lmaWVkJywgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnRDcmVkcyA9IGF3YWl0IGZpeHR1cmUuYXdzLmNyZWRlbnRpYWxzKCk7XG5cbiAgYXdhaXQgZml4dHVyZS5jZGtBc3NldHMubWFrZUNsaUF2YWlsYWJsZSgpO1xuXG4gIGNvbnN0IGFjY291bnQgPSBhd2FpdCBmaXh0dXJlLmF3cy5hY2NvdW50KCk7XG4gIGNvbnN0IHJlZ2lvbiA9IGZpeHR1cmUuYXdzLnJlZ2lvbjtcbiAgY29uc3QgYnVja2V0TmFtZSA9IGBjZGstaG5iNjU5ZmRzLWFzc2V0cy0ke2FjY291bnR9LSR7cmVnaW9ufWA7XG5cbiAgLy8gV3JpdGUgc29tZSBhc3NldCBmaWxlcy4gSXRzIGltcG9ydGFudCB0byBoYXZlIG1vcmUgdGhhbiAxIGJlY2F1c2UgY2RrLWFzc2V0c1xuICAvLyBjb2RlIGhhcyBzb21lIGZ1bmt5IHN0YXRlIG11dGF0aW9ucyB0aGF0IGhhcHBlbnMgb24gZWFjaCBhc3NldCBwdWJsaXNoaW5nLlxuICBjb25zdCBhc3NldEZpbGUxID0gJ3Rlc3RmaWxlLnR4dCc7XG4gIGNvbnN0IGFzc2V0RmlsZTIgPSAndGVzdGZpbGUudHh0JztcbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgYXNzZXRGaWxlMSksICdzb21lIGFzc2V0IGZpbGUnKTtcbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgYXNzZXRGaWxlMiksICdzb21lIGFzc2V0IGZpbGUnKTtcblxuICAvLyBXcml0ZSBhbiBhc3NldCBKU09OIGZpbGUgdG8gcHVibGlzaCB0byB0aGUgYm9vdHN0cmFwcGVkIGVudmlyb25tZW50XG4gIGNvbnN0IGFzc2V0c0pzb24gPSB7XG4gICAgdmVyc2lvbjogJzM4LjAuMScsXG4gICAgZmlsZXM6IHtcbiAgICAgIHRlc3RmaWxlMToge1xuICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICBwYXRoOiBhc3NldEZpbGUxLFxuICAgICAgICAgIHBhY2thZ2luZzogJ2ZpbGUnLFxuICAgICAgICB9LFxuICAgICAgICBkZXN0aW5hdGlvbnM6IHtcbiAgICAgICAgICBjdXJyZW50OiB7XG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICBhc3N1bWVSb2xlQXJuOiBgYXJuOlxcJHtBV1M6OlBhcnRpdGlvbn06aWFtOjoke2FjY291bnR9OnJvbGUvY2RrLWhuYjY1OWZkcy1maWxlLXB1Ymxpc2hpbmctcm9sZS0ke2FjY291bnR9LSR7cmVnaW9ufWAsXG4gICAgICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICAgICAgb2JqZWN0S2V5OiBgdGVzdC1maWxlMS0ke0RhdGUubm93KCl9Lmpzb25gLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGVzdGZpbGUyOiB7XG4gICAgICAgIHNvdXJjZToge1xuICAgICAgICAgIHBhdGg6IGFzc2V0RmlsZTIsXG4gICAgICAgICAgcGFja2FnaW5nOiAnZmlsZScsXG4gICAgICAgIH0sXG4gICAgICAgIGRlc3RpbmF0aW9uczoge1xuICAgICAgICAgIGN1cnJlbnQ6IHtcbiAgICAgICAgICAgIHJlZ2lvbixcbiAgICAgICAgICAgIGFzc3VtZVJvbGVBcm46IGBhcm46XFwke0FXUzo6UGFydGl0aW9ufTppYW06OiR7YWNjb3VudH06cm9sZS9jZGstaG5iNjU5ZmRzLWZpbGUtcHVibGlzaGluZy1yb2xlLSR7YWNjb3VudH0tJHtyZWdpb259YCxcbiAgICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICBvYmplY3RLZXk6IGB0ZXN0LWZpbGUyLSR7RGF0ZS5ub3coKX0uanNvbmAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgfTtcblxuICAvLyBjcmVhdGUgYSBwcm9maWxlIHdpdGggb3VyIGN1cnJlbnQgY3JlZGVudGlhbHMuXG4gIC8vXG4gIC8vIGlmIHlvdSdyZSB3b25kZXJpbmcgd2h5IGNhbid0IHdlIGRvIHRoZSByZXZlcnNlIChpLmUgd3JpdGUgYSBib2d1cyBwcm9maWxlIGFuZCBhc3NlcnQgYSBmYWlsdXJlKSxcbiAgLy8gaXRzIGJlY2F1c2Ugd2hlbiBjZGstYXNzZXRzIGRpc2NvdmVycyB0aGUgY3VycmVudCBhY2NvdW50LCBpdCBET0VTIGNvbnNpZGVyIHRoZSBwcm9maWxlLlxuICAvLyB3cml0aW5nIGEgYm9ndXMgcHJvZmlsZSB3b3VsZCBmYWlsIHRoaXMgb3BlcmF0aW9uIGFuZCB3ZSB3b24ndCBiZSBhYmxlIHRvIHJlYWNoIHRoZSBjb2RlXG4gIC8vIHdlJ3JlIHRyeWluZyB0byB0ZXN0LlxuICBjb25zdCBjcmVkZW50aWFsc0ZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICdhd3MuY3JlZGVudGlhbHMnKTtcbiAgY29uc3QgcHJvZmlsZSA9ICdjZGstYXNzZXRzJztcblxuICAvLyB0aGlzIGtpbmQgc3Vja3MgYnV0IGl0cyB3aGF0IGl0IGlzIGdpdmVuIHdlIG5lZWQgdG8gd3JpdGUgYSB3b3JraW5nIHByb2ZpbGVcbiAgYXdhaXQgZnMud3JpdGVGaWxlKGNyZWRlbnRpYWxzRmlsZSwgYFske3Byb2ZpbGV9XVxuYXdzX2FjY2Vzc19rZXlfaWQ9JHtjdXJyZW50Q3JlZHMuYWNjZXNzS2V5SWR9XG5hd3Nfc2VjcmV0X2FjY2Vzc19rZXk9JHtjdXJyZW50Q3JlZHMuc2VjcmV0QWNjZXNzS2V5fVxuYXdzX3Nlc3Npb25fdG9rZW49JHtjdXJyZW50Q3JlZHMuc2Vzc2lvblRva2VufWApO1xuXG4gIGF3YWl0IGZzLndyaXRlRmlsZShwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICdhc3NldHMuanNvbicpLCBKU09OLnN0cmluZ2lmeShhc3NldHNKc29uLCB1bmRlZmluZWQsIDIpKTtcbiAgYXdhaXQgZml4dHVyZS5zaGVsbChbJ2Nkay1hc3NldHMnLCAnLS1wYXRoJywgJ2Fzc2V0cy5qc29uJywgJ3B1Ymxpc2gnLCAnLS1wcm9maWxlJywgcHJvZmlsZV0sIHtcbiAgICBtb2RFbnY6IHtcbiAgICAgIC4uLmZpeHR1cmUuY2RrU2hlbGxFbnYoKSxcbiAgICAgIEFXU19TSEFSRURfQ1JFREVOVElBTFNfRklMRTogY3JlZGVudGlhbHNGaWxlLFxuXG4gICAgICAvLyByZW1vdmUgdGhlIGRlZmF1bHQgY3JlZHMgc28gdGhhdCBpZiB0aGUgY29tbWFuZCBkb2Vzbid0IHVzZVxuICAgICAgLy8gdGhlIHByb2ZpbGUsIGl0IHdpbGwgZmFpbCB3aXRoIFwiQ291bGQgbm90IGxvYWQgY3JlZGVudGlhbHMgZnJvbSBhbnkgcHJvdmlkZXJzXCJcbiAgICAgIEFXU19BQ0NFU1NfS0VZX0lEOiAnJyxcbiAgICAgIEFXU19TRUNSRVRfQUNDRVNTX0tFWTogJycsXG4gICAgICBBV1NfU0VTU0lPTl9UT0tFTjogJycsXG5cbiAgICB9LFxuICB9KTtcbn0pLFxuKTtcbiJdfQ==
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFzc2V0cy11c2VzLXByb2ZpbGUuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWFzc2V0cy11c2VzLXByb2ZpbGUuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsMkJBQW9DO0FBQ3BDLDJDQUE2QjtBQUM3QixzQ0FBNkQ7QUFFN0QsSUFBQSxlQUFTLEVBQUMsd0NBQXdDLEVBQUUsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDdkYsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRXJELE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxNQUFNLFVBQVUsR0FBRyxPQUFPLE9BQU8sQ0FBQyxTQUFTLFdBQVcsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBRTFFLCtFQUErRTtJQUMvRSw2RUFBNkU7SUFDN0UsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDO0lBQ2xDLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQztJQUNsQyxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDbkYsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBRW5GLHNFQUFzRTtJQUN0RSxNQUFNLFVBQVUsR0FBRztRQUNqQixPQUFPLEVBQUUsUUFBUTtRQUNqQixLQUFLLEVBQUU7WUFDTCxTQUFTLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFO29CQUNOLElBQUksRUFBRSxVQUFVO29CQUNoQixTQUFTLEVBQUUsTUFBTTtpQkFDbEI7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLE9BQU8sRUFBRTt3QkFDUCxNQUFNO3dCQUNOLGFBQWEsRUFBRSwrQkFBK0IsT0FBTyxhQUFhLE9BQU8sQ0FBQyxTQUFTLHlCQUF5QixPQUFPLElBQUksTUFBTSxFQUFFO3dCQUMvSCxVQUFVO3dCQUNWLFNBQVMsRUFBRSxjQUFjLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTztxQkFDM0M7aUJBQ0Y7YUFDRjtZQUNELFNBQVMsRUFBRTtnQkFDVCxNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFNBQVMsRUFBRSxNQUFNO2lCQUNsQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osT0FBTyxFQUFFO3dCQUNQLE1BQU07d0JBQ04sYUFBYSxFQUFFLCtCQUErQixPQUFPLGFBQWEsT0FBTyxDQUFDLFNBQVMseUJBQXlCLE9BQU8sSUFBSSxNQUFNLEVBQUU7d0JBQy9ILFVBQVU7d0JBQ1YsU0FBUyxFQUFFLGNBQWMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPO3FCQUMzQztpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsaURBQWlEO0lBQ2pELEVBQUU7SUFDRixvR0FBb0c7SUFDcEcsMkZBQTJGO0lBQzNGLDJGQUEyRjtJQUMzRix3QkFBd0I7SUFDeEIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDM0UsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0lBRTdCLDhFQUE4RTtJQUM5RSxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLElBQUksT0FBTztvQkFDN0IsWUFBWSxDQUFDLFdBQVc7d0JBQ3BCLFlBQVksQ0FBQyxlQUFlO29CQUNoQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUUvQyxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdHLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDNUYsTUFBTSxFQUFFO1lBQ04sR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ3hCLDJCQUEyQixFQUFFLGVBQWU7WUFFNUMsOERBQThEO1lBQzlELGlGQUFpRjtZQUNqRixpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLHFCQUFxQixFQUFFLEVBQUU7WUFDekIsaUJBQWlCLEVBQUUsRUFBRTtTQUV0QjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuaW50ZWdUZXN0KCdjZGstYXNzZXRzIHVzZXMgcHJvZmlsZSB3aGVuIHNwZWNpZmllZCcsIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICBjb25zdCBjdXJyZW50Q3JlZHMgPSBhd2FpdCBmaXh0dXJlLmF3cy5jcmVkZW50aWFscygpO1xuXG4gIGF3YWl0IGZpeHR1cmUuY2RrQXNzZXRzLm1ha2VDbGlBdmFpbGFibGUoKTtcblxuICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZml4dHVyZS5hd3MuYWNjb3VudCgpO1xuICBjb25zdCByZWdpb24gPSBmaXh0dXJlLmF3cy5yZWdpb247XG4gIGNvbnN0IGJ1Y2tldE5hbWUgPSBgY2RrLSR7Zml4dHVyZS5xdWFsaWZpZXJ9LWFzc2V0cy0ke2FjY291bnR9LSR7cmVnaW9ufWA7XG5cbiAgLy8gV3JpdGUgc29tZSBhc3NldCBmaWxlcy4gSXRzIGltcG9ydGFudCB0byBoYXZlIG1vcmUgdGhhbiAxIGJlY2F1c2UgY2RrLWFzc2V0c1xuICAvLyBjb2RlIGhhcyBzb21lIGZ1bmt5IHN0YXRlIG11dGF0aW9ucyB0aGF0IGhhcHBlbnMgb24gZWFjaCBhc3NldCBwdWJsaXNoaW5nLlxuICBjb25zdCBhc3NldEZpbGUxID0gJ3Rlc3RmaWxlLnR4dCc7XG4gIGNvbnN0IGFzc2V0RmlsZTIgPSAndGVzdGZpbGUudHh0JztcbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgYXNzZXRGaWxlMSksICdzb21lIGFzc2V0IGZpbGUnKTtcbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgYXNzZXRGaWxlMiksICdzb21lIGFzc2V0IGZpbGUnKTtcblxuICAvLyBXcml0ZSBhbiBhc3NldCBKU09OIGZpbGUgdG8gcHVibGlzaCB0byB0aGUgYm9vdHN0cmFwcGVkIGVudmlyb25tZW50XG4gIGNvbnN0IGFzc2V0c0pzb24gPSB7XG4gICAgdmVyc2lvbjogJzM4LjAuMScsXG4gICAgZmlsZXM6IHtcbiAgICAgIHRlc3RmaWxlMToge1xuICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICBwYXRoOiBhc3NldEZpbGUxLFxuICAgICAgICAgIHBhY2thZ2luZzogJ2ZpbGUnLFxuICAgICAgICB9LFxuICAgICAgICBkZXN0aW5hdGlvbnM6IHtcbiAgICAgICAgICBjdXJyZW50OiB7XG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICBhc3N1bWVSb2xlQXJuOiBgYXJuOlxcJHtBV1M6OlBhcnRpdGlvbn06aWFtOjoke2FjY291bnR9OnJvbGUvY2RrLSR7Zml4dHVyZS5xdWFsaWZpZXJ9LWZpbGUtcHVibGlzaGluZy1yb2xlLSR7YWNjb3VudH0tJHtyZWdpb259YCxcbiAgICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICBvYmplY3RLZXk6IGB0ZXN0LWZpbGUxLSR7RGF0ZS5ub3coKX0uanNvbmAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB0ZXN0ZmlsZTI6IHtcbiAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgcGF0aDogYXNzZXRGaWxlMixcbiAgICAgICAgICBwYWNrYWdpbmc6ICdmaWxlJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzdGluYXRpb25zOiB7XG4gICAgICAgICAgY3VycmVudDoge1xuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgYXNzdW1lUm9sZUFybjogYGFybjpcXCR7QVdTOjpQYXJ0aXRpb259OmlhbTo6JHthY2NvdW50fTpyb2xlL2Nkay0ke2ZpeHR1cmUucXVhbGlmaWVyfS1maWxlLXB1Ymxpc2hpbmctcm9sZS0ke2FjY291bnR9LSR7cmVnaW9ufWAsXG4gICAgICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICAgICAgb2JqZWN0S2V5OiBgdGVzdC1maWxlMi0ke0RhdGUubm93KCl9Lmpzb25gLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgLy8gY3JlYXRlIGEgcHJvZmlsZSB3aXRoIG91ciBjdXJyZW50IGNyZWRlbnRpYWxzLlxuICAvL1xuICAvLyBpZiB5b3UncmUgd29uZGVyaW5nIHdoeSBjYW4ndCB3ZSBkbyB0aGUgcmV2ZXJzZSAoaS5lIHdyaXRlIGEgYm9ndXMgcHJvZmlsZSBhbmQgYXNzZXJ0IGEgZmFpbHVyZSksXG4gIC8vIGl0cyBiZWNhdXNlIHdoZW4gY2RrLWFzc2V0cyBkaXNjb3ZlcnMgdGhlIGN1cnJlbnQgYWNjb3VudCwgaXQgRE9FUyBjb25zaWRlciB0aGUgcHJvZmlsZS5cbiAgLy8gd3JpdGluZyBhIGJvZ3VzIHByb2ZpbGUgd291bGQgZmFpbCB0aGlzIG9wZXJhdGlvbiBhbmQgd2Ugd29uJ3QgYmUgYWJsZSB0byByZWFjaCB0aGUgY29kZVxuICAvLyB3ZSdyZSB0cnlpbmcgdG8gdGVzdC5cbiAgY29uc3QgY3JlZGVudGlhbHNGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnYXdzLmNyZWRlbnRpYWxzJyk7XG4gIGNvbnN0IHByb2ZpbGUgPSAnY2RrLWFzc2V0cyc7XG5cbiAgLy8gdGhpcyBraW5kIHN1Y2tzIGJ1dCBpdHMgd2hhdCBpdCBpcyBnaXZlbiB3ZSBuZWVkIHRvIHdyaXRlIGEgd29ya2luZyBwcm9maWxlXG4gIGF3YWl0IGZzLndyaXRlRmlsZShjcmVkZW50aWFsc0ZpbGUsIGBbJHtwcm9maWxlfV1cbmF3c19hY2Nlc3Nfa2V5X2lkPSR7Y3VycmVudENyZWRzLmFjY2Vzc0tleUlkfVxuYXdzX3NlY3JldF9hY2Nlc3Nfa2V5PSR7Y3VycmVudENyZWRzLnNlY3JldEFjY2Vzc0tleX1cbmF3c19zZXNzaW9uX3Rva2VuPSR7Y3VycmVudENyZWRzLnNlc3Npb25Ub2tlbn1gKTtcblxuICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnYXNzZXRzLmpzb24nKSwgSlNPTi5zdHJpbmdpZnkoYXNzZXRzSnNvbiwgdW5kZWZpbmVkLCAyKSk7XG4gIGF3YWl0IGZpeHR1cmUuc2hlbGwoWydjZGstYXNzZXRzJywgJy0tcGF0aCcsICdhc3NldHMuanNvbicsICdwdWJsaXNoJywgJy0tcHJvZmlsZScsIHByb2ZpbGVdLCB7XG4gICAgbW9kRW52OiB7XG4gICAgICAuLi5maXh0dXJlLmNka1NoZWxsRW52KCksXG4gICAgICBBV1NfU0hBUkVEX0NSRURFTlRJQUxTX0ZJTEU6IGNyZWRlbnRpYWxzRmlsZSxcblxuICAgICAgLy8gcmVtb3ZlIHRoZSBkZWZhdWx0IGNyZWRzIHNvIHRoYXQgaWYgdGhlIGNvbW1hbmQgZG9lc24ndCB1c2VcbiAgICAgIC8vIHRoZSBwcm9maWxlLCBpdCB3aWxsIGZhaWwgd2l0aCBcIkNvdWxkIG5vdCBsb2FkIGNyZWRlbnRpYWxzIGZyb20gYW55IHByb3ZpZGVyc1wiXG4gICAgICBBV1NfQUNDRVNTX0tFWV9JRDogJycsXG4gICAgICBBV1NfU0VDUkVUX0FDQ0VTU19LRVk6ICcnLFxuICAgICAgQVdTX1NFU1NJT05fVE9LRU46ICcnLFxuXG4gICAgfSxcbiAgfSk7XG59KSxcbik7XG4iXX0=
@@ -5,9 +5,15 @@ const lib_1 = require("../../../lib");
5
5
  const primaryRegion = fixture.aws.region;
6
6
  const availableRegions = (process.env.AWS_REGIONS ?? 'us-east-1,us-west-2').split(',');
7
7
  const secondaryRegion = availableRegions.find((r) => r !== primaryRegion) ?? 'us-west-2';
8
- // Bootstrap the secondary region
8
+ // Bootstrap the secondary region (with the same random qualifier the app
9
+ // is synthesized with, and a unique stack name to avoid clashing with
10
+ // other tests bootstrapping this region)
9
11
  const account = await fixture.aws.account();
10
- await fixture.cdk(['bootstrap', '--bootstrap-kms-key-id', 'AWS_MANAGED_KEY', `aws://${account}/${secondaryRegion}`], {
12
+ await fixture.cdk(['bootstrap',
13
+ '--bootstrap-kms-key-id', 'AWS_MANAGED_KEY',
14
+ '--qualifier', fixture.qualifier,
15
+ '--toolkit-stack-name', fixture.bootstrapStackName,
16
+ `aws://${account}/${secondaryRegion}`], {
11
17
  modEnv: { CDK_NEW_BOOTSTRAP: '1' },
12
18
  });
13
19
  // Deploy both stacks — same docker source, different target regions
@@ -15,4 +21,4 @@ const lib_1 = require("../../../lib");
15
21
  modEnv: { CDK_SECONDARY_REGION: secondaryRegion },
16
22
  });
17
23
  }));
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS1kb2NrZXItYXNzZXQtbXVsdGktcmVnaW9uLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1kZXBsb3ktZG9ja2VyLWFzc2V0LW11bHRpLXJlZ2lvbi5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FBNkQ7QUFFN0QsSUFBQSxlQUFTLEVBQ1AsOENBQThDLEVBQzlDLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RixNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUM7SUFFekYsaUNBQWlDO0lBQ2pDLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxPQUFPLElBQUksZUFBZSxFQUFFLENBQUMsRUFBRTtRQUNuSCxNQUFNLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUU7S0FDbkMsQ0FBQyxDQUFDO0lBRUgsb0VBQW9FO0lBQ3BFLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDLEVBQUU7UUFDMUUsTUFBTSxFQUFFLEVBQUUsb0JBQW9CLEVBQUUsZUFBZSxFQUFFO0tBQ2xELENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5cbmludGVnVGVzdChcbiAgJ2RlcGxveSBzYW1lIGRvY2tlciBhc3NldCB0byBtdWx0aXBsZSByZWdpb25zJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3QgcHJpbWFyeVJlZ2lvbiA9IGZpeHR1cmUuYXdzLnJlZ2lvbjtcbiAgICBjb25zdCBhdmFpbGFibGVSZWdpb25zID0gKHByb2Nlc3MuZW52LkFXU19SRUdJT05TID8/ICd1cy1lYXN0LTEsdXMtd2VzdC0yJykuc3BsaXQoJywnKTtcbiAgICBjb25zdCBzZWNvbmRhcnlSZWdpb24gPSBhdmFpbGFibGVSZWdpb25zLmZpbmQoKHIpID0+IHIgIT09IHByaW1hcnlSZWdpb24pID8/ICd1cy13ZXN0LTInO1xuXG4gICAgLy8gQm9vdHN0cmFwIHRoZSBzZWNvbmRhcnkgcmVnaW9uXG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGZpeHR1cmUuYXdzLmFjY291bnQoKTtcbiAgICBhd2FpdCBmaXh0dXJlLmNkayhbJ2Jvb3RzdHJhcCcsICctLWJvb3RzdHJhcC1rbXMta2V5LWlkJywgJ0FXU19NQU5BR0VEX0tFWScsIGBhd3M6Ly8ke2FjY291bnR9LyR7c2Vjb25kYXJ5UmVnaW9ufWBdLCB7XG4gICAgICBtb2RFbnY6IHsgQ0RLX05FV19CT09UU1RSQVA6ICcxJyB9LFxuICAgIH0pO1xuXG4gICAgLy8gRGVwbG95IGJvdGggc3RhY2tzIOKAlCBzYW1lIGRvY2tlciBzb3VyY2UsIGRpZmZlcmVudCB0YXJnZXQgcmVnaW9uc1xuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KFsnZG9ja2VyLW11bHRpLXJlZ2lvbi0xJywgJ2RvY2tlci1tdWx0aS1yZWdpb24tMiddLCB7XG4gICAgICBtb2RFbnY6IHsgQ0RLX1NFQ09OREFSWV9SRUdJT046IHNlY29uZGFyeVJlZ2lvbiB9LFxuICAgIH0pO1xuICB9KSxcbik7XG4iXX0=
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS1kb2NrZXItYXNzZXQtbXVsdGktcmVnaW9uLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1kZXBsb3ktZG9ja2VyLWFzc2V0LW11bHRpLXJlZ2lvbi5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FBNkQ7QUFFN0QsSUFBQSxlQUFTLEVBQ1AsOENBQThDLEVBQzlDLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ3pDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2RixNQUFNLGVBQWUsR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxhQUFhLENBQUMsSUFBSSxXQUFXLENBQUM7SUFFekYseUVBQXlFO0lBQ3pFLHNFQUFzRTtJQUN0RSx5Q0FBeUM7SUFDekMsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVc7UUFDNUIsd0JBQXdCLEVBQUUsaUJBQWlCO1FBQzNDLGFBQWEsRUFBRSxPQUFPLENBQUMsU0FBUztRQUNoQyxzQkFBc0IsRUFBRSxPQUFPLENBQUMsa0JBQWtCO1FBQ2xELFNBQVMsT0FBTyxJQUFJLGVBQWUsRUFBRSxDQUFDLEVBQUU7UUFDeEMsTUFBTSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0tBQ25DLENBQUMsQ0FBQztJQUVILG9FQUFvRTtJQUNwRSxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQyxFQUFFO1FBQzFFLE1BQU0sRUFBRSxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRTtLQUNsRCxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5pbnRlZ1Rlc3QoXG4gICdkZXBsb3kgc2FtZSBkb2NrZXIgYXNzZXQgdG8gbXVsdGlwbGUgcmVnaW9ucycsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHByaW1hcnlSZWdpb24gPSBmaXh0dXJlLmF3cy5yZWdpb247XG4gICAgY29uc3QgYXZhaWxhYmxlUmVnaW9ucyA9IChwcm9jZXNzLmVudi5BV1NfUkVHSU9OUyA/PyAndXMtZWFzdC0xLHVzLXdlc3QtMicpLnNwbGl0KCcsJyk7XG4gICAgY29uc3Qgc2Vjb25kYXJ5UmVnaW9uID0gYXZhaWxhYmxlUmVnaW9ucy5maW5kKChyKSA9PiByICE9PSBwcmltYXJ5UmVnaW9uKSA/PyAndXMtd2VzdC0yJztcblxuICAgIC8vIEJvb3RzdHJhcCB0aGUgc2Vjb25kYXJ5IHJlZ2lvbiAod2l0aCB0aGUgc2FtZSByYW5kb20gcXVhbGlmaWVyIHRoZSBhcHBcbiAgICAvLyBpcyBzeW50aGVzaXplZCB3aXRoLCBhbmQgYSB1bmlxdWUgc3RhY2sgbmFtZSB0byBhdm9pZCBjbGFzaGluZyB3aXRoXG4gICAgLy8gb3RoZXIgdGVzdHMgYm9vdHN0cmFwcGluZyB0aGlzIHJlZ2lvbilcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZml4dHVyZS5hd3MuYWNjb3VudCgpO1xuICAgIGF3YWl0IGZpeHR1cmUuY2RrKFsnYm9vdHN0cmFwJyxcbiAgICAgICctLWJvb3RzdHJhcC1rbXMta2V5LWlkJywgJ0FXU19NQU5BR0VEX0tFWScsXG4gICAgICAnLS1xdWFsaWZpZXInLCBmaXh0dXJlLnF1YWxpZmllcixcbiAgICAgICctLXRvb2xraXQtc3RhY2stbmFtZScsIGZpeHR1cmUuYm9vdHN0cmFwU3RhY2tOYW1lLFxuICAgICAgYGF3czovLyR7YWNjb3VudH0vJHtzZWNvbmRhcnlSZWdpb259YF0sIHtcbiAgICAgIG1vZEVudjogeyBDREtfTkVXX0JPT1RTVFJBUDogJzEnIH0sXG4gICAgfSk7XG5cbiAgICAvLyBEZXBsb3kgYm90aCBzdGFja3Mg4oCUIHNhbWUgZG9ja2VyIHNvdXJjZSwgZGlmZmVyZW50IHRhcmdldCByZWdpb25zXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koWydkb2NrZXItbXVsdGktcmVnaW9uLTEnLCAnZG9ja2VyLW11bHRpLXJlZ2lvbi0yJ10sIHtcbiAgICAgIG1vZEVudjogeyBDREtfU0VDT05EQVJZX1JFR0lPTjogc2Vjb25kYXJ5UmVnaW9uIH0sXG4gICAgfSk7XG4gIH0pLFxuKTtcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const lib_1 = require("../../../lib");
4
+ jest.setTimeout(2 * 60 * 60_000);
5
+ (0, lib_1.integTest)('deploy with lambda hook change set failure displays hook status reason', (0, lib_1.withSpecificFixture)('lambda-hook-app', async (fixture) => {
6
+ // Deploy the setup stack which creates the Lambda Hook via CloudFormation
7
+ await fixture.cdkDeploy('lambda-hook-setup');
8
+ // Attempt to deploy the test stack; the Lambda Hook fails its change set.
9
+ // Lambda Hooks don't emit annotations, so the detailed failure reason is only
10
+ // available via the hook result APIs and must be surfaced from there.
11
+ const deployOutput = await fixture.cdkDeploy('lambda-hook-test', {
12
+ allowErrExit: true,
13
+ });
14
+ expect(deployOutput).toContain("Hook 'Private::Lambda::TestHook' failed");
15
+ expect(deployOutput).toContain('Ingress must not allow 0.0.0.0/0 to non-HTTP(s) ports');
16
+ }));
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS1sYW1iZGEtaG9vay1jaGFuZ2Utc2V0LWZhaWx1cmUtZGlzcGxheXMtaG9vay1zdGF0dXMtcmVhc29uLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1kZXBsb3ktbGFtYmRhLWhvb2stY2hhbmdlLXNldC1mYWlsdXJlLWRpc3BsYXlzLWhvb2stc3RhdHVzLXJlYXNvbi5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzQ0FBOEQ7QUFFOUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDO0FBRWpDLElBQUEsZUFBUyxFQUNQLHdFQUF3RSxFQUN4RSxJQUFBLHlCQUFtQixFQUFDLGlCQUFpQixFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUN2RCwwRUFBMEU7SUFDMUUsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFN0MsMEVBQTBFO0lBQzFFLDhFQUE4RTtJQUM5RSxzRUFBc0U7SUFDdEUsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLGtCQUFrQixFQUFFO1FBQy9ELFlBQVksRUFBRSxJQUFJO0tBQ25CLENBQUMsQ0FBQztJQUNILE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMseUNBQXlDLENBQUMsQ0FBQztJQUMxRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7QUFDMUYsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGludGVnVGVzdCwgd2l0aFNwZWNpZmljRml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApO1xuXG5pbnRlZ1Rlc3QoXG4gICdkZXBsb3kgd2l0aCBsYW1iZGEgaG9vayBjaGFuZ2Ugc2V0IGZhaWx1cmUgZGlzcGxheXMgaG9vayBzdGF0dXMgcmVhc29uJyxcbiAgd2l0aFNwZWNpZmljRml4dHVyZSgnbGFtYmRhLWhvb2stYXBwJywgYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBEZXBsb3kgdGhlIHNldHVwIHN0YWNrIHdoaWNoIGNyZWF0ZXMgdGhlIExhbWJkYSBIb29rIHZpYSBDbG91ZEZvcm1hdGlvblxuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdsYW1iZGEtaG9vay1zZXR1cCcpO1xuXG4gICAgLy8gQXR0ZW1wdCB0byBkZXBsb3kgdGhlIHRlc3Qgc3RhY2s7IHRoZSBMYW1iZGEgSG9vayBmYWlscyBpdHMgY2hhbmdlIHNldC5cbiAgICAvLyBMYW1iZGEgSG9va3MgZG9uJ3QgZW1pdCBhbm5vdGF0aW9ucywgc28gdGhlIGRldGFpbGVkIGZhaWx1cmUgcmVhc29uIGlzIG9ubHlcbiAgICAvLyBhdmFpbGFibGUgdmlhIHRoZSBob29rIHJlc3VsdCBBUElzIGFuZCBtdXN0IGJlIHN1cmZhY2VkIGZyb20gdGhlcmUuXG4gICAgY29uc3QgZGVwbG95T3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2xhbWJkYS1ob29rLXRlc3QnLCB7XG4gICAgICBhbGxvd0VyckV4aXQ6IHRydWUsXG4gICAgfSk7XG4gICAgZXhwZWN0KGRlcGxveU91dHB1dCkudG9Db250YWluKFwiSG9vayAnUHJpdmF0ZTo6TGFtYmRhOjpUZXN0SG9vaycgZmFpbGVkXCIpO1xuICAgIGV4cGVjdChkZXBsb3lPdXRwdXQpLnRvQ29udGFpbignSW5ncmVzcyBtdXN0IG5vdCBhbGxvdyAwLjAuMC4wLzAgdG8gbm9uLUhUVFAocykgcG9ydHMnKTtcbiAgfSksXG4pO1xuIl19
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const lib_1 = require("../../../lib");
4
+ jest.setTimeout(2 * 60 * 60_000);
5
+ (0, lib_1.integTest)('cdk diagnose after guard hook failure displays hook failure details', (0, lib_1.withSpecificFixture)('guard-hook-app', async (fixture) => {
6
+ // Deploy the setup stack which creates the Guard Hook via CloudFormation
7
+ await fixture.cdkDeploy('guard-hook-setup');
8
+ // Attempt to deploy the non-compliant stack; it fails due to the Guard Hook.
9
+ // --no-rollback leaves the stack in CREATE_FAILED so diagnose can inspect it.
10
+ const deployOutput = await fixture.cdkDeploy('guard-hook-test', {
11
+ options: ['--no-rollback'],
12
+ allowErrExit: true,
13
+ });
14
+ expect(deployOutput).toContain('CREATE_FAILED');
15
+ // Run cdk diagnose on the failed stack
16
+ const diagnoseOutput = await fixture.cdk(['--unstable=diagnose', 'diagnose', fixture.fullStackName('guard-hook-test')], { allowErrExit: true });
17
+ // diagnose has no live activity stream, so the hook failure details must have
18
+ // been fetched via the GetHookResult API and attached to the diagnosis
19
+ expect(diagnoseOutput).toContain("Hook 'Private::Guard::TestHook' failed: NonCompliant Rules:");
20
+ expect(diagnoseOutput).toContain('[AWS_S3_Bucket_AccessControl]');
21
+ expect(diagnoseOutput).toContain('• Check was not compliant as property [/Resources/NonCompliantBucket/Properties/AccessControl[L:0,C:91]] existed.');
22
+ expect(diagnoseOutput).toContain('Remediation: AccessControl is deprecated');
23
+ }));
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRpYWdub3NlLWd1YXJkLWhvb2stZmFpbHVyZS1kaXNwbGF5cy1ob29rLWRldGFpbHMuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWRpYWdub3NlLWd1YXJkLWhvb2stZmFpbHVyZS1kaXNwbGF5cy1ob29rLWRldGFpbHMuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0NBQThEO0FBRTlELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQztBQUVqQyxJQUFBLGVBQVMsRUFDUCxxRUFBcUUsRUFDckUsSUFBQSx5QkFBbUIsRUFBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDdEQseUVBQXlFO0lBQ3pFLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBRTVDLDZFQUE2RTtJQUM3RSw4RUFBOEU7SUFDOUUsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLGlCQUFpQixFQUFFO1FBQzlELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztRQUMxQixZQUFZLEVBQUUsSUFBSTtLQUNuQixDQUFDLENBQUM7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRWhELHVDQUF1QztJQUN2QyxNQUFNLGNBQWMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ3RDLENBQUMscUJBQXFCLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUM3RSxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUsQ0FDdkIsQ0FBQztJQUVGLDhFQUE4RTtJQUM5RSx1RUFBdUU7SUFDdkUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyw2REFBNkQsQ0FBQyxDQUFDO0lBQ2hHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUNsRSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLG1IQUFtSCxDQUFDLENBQUM7SUFDdEosTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0FBQy9FLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhTcGVjaWZpY0ZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTtcblxuaW50ZWdUZXN0KFxuICAnY2RrIGRpYWdub3NlIGFmdGVyIGd1YXJkIGhvb2sgZmFpbHVyZSBkaXNwbGF5cyBob29rIGZhaWx1cmUgZGV0YWlscycsXG4gIHdpdGhTcGVjaWZpY0ZpeHR1cmUoJ2d1YXJkLWhvb2stYXBwJywgYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBEZXBsb3kgdGhlIHNldHVwIHN0YWNrIHdoaWNoIGNyZWF0ZXMgdGhlIEd1YXJkIEhvb2sgdmlhIENsb3VkRm9ybWF0aW9uXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2d1YXJkLWhvb2stc2V0dXAnKTtcblxuICAgIC8vIEF0dGVtcHQgdG8gZGVwbG95IHRoZSBub24tY29tcGxpYW50IHN0YWNrOyBpdCBmYWlscyBkdWUgdG8gdGhlIEd1YXJkIEhvb2suXG4gICAgLy8gLS1uby1yb2xsYmFjayBsZWF2ZXMgdGhlIHN0YWNrIGluIENSRUFURV9GQUlMRUQgc28gZGlhZ25vc2UgY2FuIGluc3BlY3QgaXQuXG4gICAgY29uc3QgZGVwbG95T3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2d1YXJkLWhvb2stdGVzdCcsIHtcbiAgICAgIG9wdGlvbnM6IFsnLS1uby1yb2xsYmFjayddLFxuICAgICAgYWxsb3dFcnJFeGl0OiB0cnVlLFxuICAgIH0pO1xuICAgIGV4cGVjdChkZXBsb3lPdXRwdXQpLnRvQ29udGFpbignQ1JFQVRFX0ZBSUxFRCcpO1xuXG4gICAgLy8gUnVuIGNkayBkaWFnbm9zZSBvbiB0aGUgZmFpbGVkIHN0YWNrXG4gICAgY29uc3QgZGlhZ25vc2VPdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNkayhcbiAgICAgIFsnLS11bnN0YWJsZT1kaWFnbm9zZScsICdkaWFnbm9zZScsIGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnZ3VhcmQtaG9vay10ZXN0JyldLFxuICAgICAgeyBhbGxvd0VyckV4aXQ6IHRydWUgfSxcbiAgICApO1xuXG4gICAgLy8gZGlhZ25vc2UgaGFzIG5vIGxpdmUgYWN0aXZpdHkgc3RyZWFtLCBzbyB0aGUgaG9vayBmYWlsdXJlIGRldGFpbHMgbXVzdCBoYXZlXG4gICAgLy8gYmVlbiBmZXRjaGVkIHZpYSB0aGUgR2V0SG9va1Jlc3VsdCBBUEkgYW5kIGF0dGFjaGVkIHRvIHRoZSBkaWFnbm9zaXNcbiAgICBleHBlY3QoZGlhZ25vc2VPdXRwdXQpLnRvQ29udGFpbihcIkhvb2sgJ1ByaXZhdGU6Okd1YXJkOjpUZXN0SG9vaycgZmFpbGVkOiBOb25Db21wbGlhbnQgUnVsZXM6XCIpO1xuICAgIGV4cGVjdChkaWFnbm9zZU91dHB1dCkudG9Db250YWluKCdbQVdTX1MzX0J1Y2tldF9BY2Nlc3NDb250cm9sXScpO1xuICAgIGV4cGVjdChkaWFnbm9zZU91dHB1dCkudG9Db250YWluKCfigKIgQ2hlY2sgd2FzIG5vdCBjb21wbGlhbnQgYXMgcHJvcGVydHkgWy9SZXNvdXJjZXMvTm9uQ29tcGxpYW50QnVja2V0L1Byb3BlcnRpZXMvQWNjZXNzQ29udHJvbFtMOjAsQzo5MV1dIGV4aXN0ZWQuJyk7XG4gICAgZXhwZWN0KGRpYWdub3NlT3V0cHV0KS50b0NvbnRhaW4oJ1JlbWVkaWF0aW9uOiBBY2Nlc3NDb250cm9sIGlzIGRlcHJlY2F0ZWQnKTtcbiAgfSksXG4pO1xuIl19
@@ -36,7 +36,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  const fs = __importStar(require("fs"));
37
37
  const path = __importStar(require("path"));
38
38
  const lib_1 = require("../../../lib");
39
- const regions_1 = require("../../../lib/regions");
40
39
  jest.setTimeout(5 * 60 * 1000);
41
40
  (0, lib_1.integTest)('hotswap deployment caches template and uses it for subsequent hotswaps', (0, lib_1.withDefaultFixture)(async (fixture) => {
42
41
  const stackName = 'cc-hotswap';
@@ -60,7 +59,7 @@ jest.setTimeout(5 * 60 * 1000);
60
59
  const fullStackName = fixture.fullStackName(stackName);
61
60
  const cacheFile = path.join(fixture.integTestDir, 'cdk.out', '.hotswap-cache', `${fullStackName}.json`);
62
61
  expect(fs.existsSync(cacheFile)).toBe(true);
63
- // THEN - second hotswap changes only the Agent (via DYNAMIC_CC_PROPERTY_VALUE_2).
62
+ // THEN - second hotswap changes only the Dashboard (via DYNAMIC_CC_PROPERTY_VALUE_2).
64
63
  // If the cache is used, the diff is against the cached template, only 1 resource should be hotswapped.
65
64
  const deployOutput = await fixture.cdkDeploy(stackName, {
66
65
  options: ['--hotswap'],
@@ -74,7 +73,7 @@ jest.setTimeout(5 * 60 * 1000);
74
73
  // should only see one hotswapped message in output
75
74
  const hotswapCount = (deployOutput.match(/hotswapped!/g) || []).length;
76
75
  expect(hotswapCount).toBe(1);
77
- }, { aws: { regions: regions_1.BEDROCK_AGENT_REGIONS } }));
76
+ }));
78
77
  (0, lib_1.integTest)('hotswap cache is invalidated after a full CloudFormation deployment', (0, lib_1.withDefaultFixture)(async (fixture) => {
79
78
  // GIVEN - deploy then hotswap to create cache
80
79
  await fixture.cdkDeploy('lambda-hotswap', {
@@ -103,4 +102,4 @@ jest.setTimeout(5 * 60 * 1000);
103
102
  // THEN - cache should be invalidated
104
103
  expect(fs.existsSync(cacheFile)).toBe(false);
105
104
  }));
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1jYWNoZXMtdGVtcGxhdGUuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1jYWNoZXMtdGVtcGxhdGUuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixzQ0FBNkQ7QUFDN0Qsa0RBQTZEO0FBRTdELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztBQUUvQixJQUFBLGVBQVMsRUFDUCx3RUFBd0UsRUFDeEUsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDO0lBRS9CLDhCQUE4QjtJQUM5QixNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1FBQ2pDLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLE1BQU0sRUFBRTtZQUNOLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsMkJBQTJCLEVBQUUsSUFBSTtTQUNsQztLQUNGLENBQUMsQ0FBQztJQUVILGdFQUFnRTtJQUNoRSxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1FBQ2pDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN0QixhQUFhLEVBQUUsS0FBSztRQUNwQixNQUFNLEVBQUU7WUFDTix5QkFBeUIsRUFBRSxJQUFJO1lBQy9CLDJCQUEyQixFQUFFLElBQUk7U0FDbEM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxhQUFhLE9BQU8sQ0FBQyxDQUFDO0lBQ3hHLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVDLGtGQUFrRjtJQUNsRix1R0FBdUc7SUFDdkcsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRTtRQUN0RCxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDdEIsYUFBYSxFQUFFLElBQUk7UUFDbkIsVUFBVSxFQUFFLElBQUk7UUFDaEIsTUFBTSxFQUFFO1lBQ04seUJBQXlCLEVBQUUsSUFBSSxFQUFFLCtCQUErQjtZQUNoRSwyQkFBMkIsRUFBRSxJQUFJO1NBQ2xDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsbURBQW1EO0lBQ25ELE1BQU0sWUFBWSxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvQixDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsK0JBQXFCLEVBQUUsRUFBRSxDQUFDLENBQ2hELENBQUM7QUFFRixJQUFBLGVBQVMsRUFDUCxxRUFBcUUsRUFDckUsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsOENBQThDO0lBQzlDLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtRQUN4QyxhQUFhLEVBQUUsS0FBSztRQUNwQixNQUFNLEVBQUU7WUFDTiw2QkFBNkIsRUFBRSxJQUFJO1NBQ3BDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFO1FBQ3hDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN0QixhQUFhLEVBQUUsS0FBSztRQUNwQixNQUFNLEVBQUU7WUFDTiw2QkFBNkIsRUFBRSxJQUFJO1NBQ3BDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxTQUFTLE9BQU8sQ0FBQyxDQUFDO0lBQ3BHLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVDLHlCQUF5QjtJQUN6QixNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUU7UUFDeEMsYUFBYSxFQUFFLEtBQUs7UUFDcEIsTUFBTSxFQUFFO1lBQ04sNkJBQTZCLEVBQUUsSUFBSTtTQUNwQztLQUNGLENBQUMsQ0FBQztJQUVILHFDQUFxQztJQUNyQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcbmltcG9ydCB7IEJFRFJPQ0tfQUdFTlRfUkVHSU9OUyB9IGZyb20gJy4uLy4uLy4uL2xpYi9yZWdpb25zJztcblxuamVzdC5zZXRUaW1lb3V0KDUgKiA2MCAqIDEwMDApO1xuXG5pbnRlZ1Rlc3QoXG4gICdob3Rzd2FwIGRlcGxveW1lbnQgY2FjaGVzIHRlbXBsYXRlIGFuZCB1c2VzIGl0IGZvciBzdWJzZXF1ZW50IGhvdHN3YXBzJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3Qgc3RhY2tOYW1lID0gJ2NjLWhvdHN3YXAnO1xuXG4gICAgLy8gR0lWRU4gLSBpbml0aWFsIGZ1bGwgZGVwbG95XG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koc3RhY2tOYW1lLCB7XG4gICAgICBjYXB0dXJlU3RkZXJyOiBmYWxzZSxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBEWU5BTUlDX0NDX1BST1BFUlRZX1ZBTFVFOiAndjEnLFxuICAgICAgICBEWU5BTUlDX0NDX1BST1BFUlRZX1ZBTFVFXzI6ICd2MScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gV0hFTiAtIGZpcnN0IGhvdHN3YXAgY2hhbmdlcyBBTEwgcmVzb3VyY2VzLCBjcmVhdGVzIHRoZSBjYWNoZVxuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KHN0YWNrTmFtZSwge1xuICAgICAgb3B0aW9uczogWyctLWhvdHN3YXAnXSxcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUU6ICd2MicsXG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUVfMjogJ3YyJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBmdWxsU3RhY2tOYW1lID0gZml4dHVyZS5mdWxsU3RhY2tOYW1lKHN0YWNrTmFtZSk7XG4gICAgY29uc3QgY2FjaGVGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnY2RrLm91dCcsICcuaG90c3dhcC1jYWNoZScsIGAke2Z1bGxTdGFja05hbWV9Lmpzb25gKTtcbiAgICBleHBlY3QoZnMuZXhpc3RzU3luYyhjYWNoZUZpbGUpKS50b0JlKHRydWUpO1xuXG4gICAgLy8gVEhFTiAtIHNlY29uZCBob3Rzd2FwIGNoYW5nZXMgb25seSB0aGUgQWdlbnQgKHZpYSBEWU5BTUlDX0NDX1BST1BFUlRZX1ZBTFVFXzIpLlxuICAgIC8vIElmIHRoZSBjYWNoZSBpcyB1c2VkLCB0aGUgZGlmZiBpcyBhZ2FpbnN0IHRoZSBjYWNoZWQgdGVtcGxhdGUsIG9ubHkgMSByZXNvdXJjZSBzaG91bGQgYmUgaG90c3dhcHBlZC5cbiAgICBjb25zdCBkZXBsb3lPdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNka0RlcGxveShzdGFja05hbWUsIHtcbiAgICAgIG9wdGlvbnM6IFsnLS1ob3Rzd2FwJ10sXG4gICAgICBjYXB0dXJlU3RkZXJyOiB0cnVlLFxuICAgICAgb25seVN0ZGVycjogdHJ1ZSxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBEWU5BTUlDX0NDX1BST1BFUlRZX1ZBTFVFOiAndjInLCAvLyB1bmNoYW5nZWQgZnJvbSBmaXJzdCBob3Rzd2FwXG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUVfMjogJ3YzJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBzaG91bGQgb25seSBzZWUgb25lIGhvdHN3YXBwZWQgbWVzc2FnZSBpbiBvdXRwdXRcbiAgICBjb25zdCBob3Rzd2FwQ291bnQgPSAoZGVwbG95T3V0cHV0Lm1hdGNoKC9ob3Rzd2FwcGVkIS9nKSB8fCBbXSkubGVuZ3RoO1xuICAgIGV4cGVjdChob3Rzd2FwQ291bnQpLnRvQmUoMSk7XG4gIH0sIHsgYXdzOiB7IHJlZ2lvbnM6IEJFRFJPQ0tfQUdFTlRfUkVHSU9OUyB9IH0pLFxuKTtcblxuaW50ZWdUZXN0KFxuICAnaG90c3dhcCBjYWNoZSBpcyBpbnZhbGlkYXRlZCBhZnRlciBhIGZ1bGwgQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudCcsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIC8vIEdJVkVOIC0gZGVwbG95IHRoZW4gaG90c3dhcCB0byBjcmVhdGUgY2FjaGVcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnbGFtYmRhLWhvdHN3YXAnLCB7XG4gICAgICBjYXB0dXJlU3RkZXJyOiBmYWxzZSxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBEWU5BTUlDX0xBTUJEQV9QUk9QRVJUWV9WQUxVRTogJ3YxJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnbGFtYmRhLWhvdHN3YXAnLCB7XG4gICAgICBvcHRpb25zOiBbJy0taG90c3dhcCddLFxuICAgICAgY2FwdHVyZVN0ZGVycjogZmFsc2UsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgRFlOQU1JQ19MQU1CREFfUFJPUEVSVFlfVkFMVUU6ICd2MicsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3RhY2tOYW1lID0gZml4dHVyZS5mdWxsU3RhY2tOYW1lKCdsYW1iZGEtaG90c3dhcCcpO1xuICAgIGNvbnN0IGNhY2hlRmlsZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ2Nkay5vdXQnLCAnLmhvdHN3YXAtY2FjaGUnLCBgJHtzdGFja05hbWV9Lmpzb25gKTtcbiAgICBleHBlY3QoZnMuZXhpc3RzU3luYyhjYWNoZUZpbGUpKS50b0JlKHRydWUpO1xuXG4gICAgLy8gV0hFTiAtIGZ1bGwgQ0ZOIGRlcGxveVxuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdsYW1iZGEtaG90c3dhcCcsIHtcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfTEFNQkRBX1BST1BFUlRZX1ZBTFVFOiAndjMnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIC8vIFRIRU4gLSBjYWNoZSBzaG91bGQgYmUgaW52YWxpZGF0ZWRcbiAgICBleHBlY3QoZnMuZXhpc3RzU3luYyhjYWNoZUZpbGUpKS50b0JlKGZhbHNlKTtcbiAgfSksXG4pO1xuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1jYWNoZXMtdGVtcGxhdGUuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1jYWNoZXMtdGVtcGxhdGUuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLDJDQUE2QjtBQUM3QixzQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO0FBRS9CLElBQUEsZUFBUyxFQUNQLHdFQUF3RSxFQUN4RSxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUM7SUFFL0IsOEJBQThCO0lBQzlCLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7UUFDakMsYUFBYSxFQUFFLEtBQUs7UUFDcEIsTUFBTSxFQUFFO1lBQ04seUJBQXlCLEVBQUUsSUFBSTtZQUMvQiwyQkFBMkIsRUFBRSxJQUFJO1NBQ2xDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsZ0VBQWdFO0lBQ2hFLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUU7UUFDakMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ3RCLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLE1BQU0sRUFBRTtZQUNOLHlCQUF5QixFQUFFLElBQUk7WUFDL0IsMkJBQTJCLEVBQUUsSUFBSTtTQUNsQztLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLGFBQWEsT0FBTyxDQUFDLENBQUM7SUFDeEcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUMsc0ZBQXNGO0lBQ3RGLHVHQUF1RztJQUN2RyxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1FBQ3RELE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN0QixhQUFhLEVBQUUsSUFBSTtRQUNuQixVQUFVLEVBQUUsSUFBSTtRQUNoQixNQUFNLEVBQUU7WUFDTix5QkFBeUIsRUFBRSxJQUFJLEVBQUUsK0JBQStCO1lBQ2hFLDJCQUEyQixFQUFFLElBQUk7U0FDbEM7S0FDRixDQUFDLENBQUM7SUFFSCxtREFBbUQ7SUFDbkQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN2RSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUNILENBQUM7QUFFRixJQUFBLGVBQVMsRUFDUCxxRUFBcUUsRUFDckUsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsOENBQThDO0lBQzlDLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRTtRQUN4QyxhQUFhLEVBQUUsS0FBSztRQUNwQixNQUFNLEVBQUU7WUFDTiw2QkFBNkIsRUFBRSxJQUFJO1NBQ3BDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFO1FBQ3hDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN0QixhQUFhLEVBQUUsS0FBSztRQUNwQixNQUFNLEVBQUU7WUFDTiw2QkFBNkIsRUFBRSxJQUFJO1NBQ3BDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxTQUFTLE9BQU8sQ0FBQyxDQUFDO0lBQ3BHLE1BQU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTVDLHlCQUF5QjtJQUN6QixNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUU7UUFDeEMsYUFBYSxFQUFFLEtBQUs7UUFDcEIsTUFBTSxFQUFFO1lBQ04sNkJBQTZCLEVBQUUsSUFBSTtTQUNwQztLQUNGLENBQUMsQ0FBQztJQUVILHFDQUFxQztJQUNyQyxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDUgKiA2MCAqIDEwMDApO1xuXG5pbnRlZ1Rlc3QoXG4gICdob3Rzd2FwIGRlcGxveW1lbnQgY2FjaGVzIHRlbXBsYXRlIGFuZCB1c2VzIGl0IGZvciBzdWJzZXF1ZW50IGhvdHN3YXBzJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3Qgc3RhY2tOYW1lID0gJ2NjLWhvdHN3YXAnO1xuXG4gICAgLy8gR0lWRU4gLSBpbml0aWFsIGZ1bGwgZGVwbG95XG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koc3RhY2tOYW1lLCB7XG4gICAgICBjYXB0dXJlU3RkZXJyOiBmYWxzZSxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBEWU5BTUlDX0NDX1BST1BFUlRZX1ZBTFVFOiAndjEnLFxuICAgICAgICBEWU5BTUlDX0NDX1BST1BFUlRZX1ZBTFVFXzI6ICd2MScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gV0hFTiAtIGZpcnN0IGhvdHN3YXAgY2hhbmdlcyBBTEwgcmVzb3VyY2VzLCBjcmVhdGVzIHRoZSBjYWNoZVxuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KHN0YWNrTmFtZSwge1xuICAgICAgb3B0aW9uczogWyctLWhvdHN3YXAnXSxcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUU6ICd2MicsXG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUVfMjogJ3YyJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBmdWxsU3RhY2tOYW1lID0gZml4dHVyZS5mdWxsU3RhY2tOYW1lKHN0YWNrTmFtZSk7XG4gICAgY29uc3QgY2FjaGVGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnY2RrLm91dCcsICcuaG90c3dhcC1jYWNoZScsIGAke2Z1bGxTdGFja05hbWV9Lmpzb25gKTtcbiAgICBleHBlY3QoZnMuZXhpc3RzU3luYyhjYWNoZUZpbGUpKS50b0JlKHRydWUpO1xuXG4gICAgLy8gVEhFTiAtIHNlY29uZCBob3Rzd2FwIGNoYW5nZXMgb25seSB0aGUgRGFzaGJvYXJkICh2aWEgRFlOQU1JQ19DQ19QUk9QRVJUWV9WQUxVRV8yKS5cbiAgICAvLyBJZiB0aGUgY2FjaGUgaXMgdXNlZCwgdGhlIGRpZmYgaXMgYWdhaW5zdCB0aGUgY2FjaGVkIHRlbXBsYXRlLCBvbmx5IDEgcmVzb3VyY2Ugc2hvdWxkIGJlIGhvdHN3YXBwZWQuXG4gICAgY29uc3QgZGVwbG95T3V0cHV0ID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koc3RhY2tOYW1lLCB7XG4gICAgICBvcHRpb25zOiBbJy0taG90c3dhcCddLFxuICAgICAgY2FwdHVyZVN0ZGVycjogdHJ1ZSxcbiAgICAgIG9ubHlTdGRlcnI6IHRydWUsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgRFlOQU1JQ19DQ19QUk9QRVJUWV9WQUxVRTogJ3YyJywgLy8gdW5jaGFuZ2VkIGZyb20gZmlyc3QgaG90c3dhcFxuICAgICAgICBEWU5BTUlDX0NDX1BST1BFUlRZX1ZBTFVFXzI6ICd2MycsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gc2hvdWxkIG9ubHkgc2VlIG9uZSBob3Rzd2FwcGVkIG1lc3NhZ2UgaW4gb3V0cHV0XG4gICAgY29uc3QgaG90c3dhcENvdW50ID0gKGRlcGxveU91dHB1dC5tYXRjaCgvaG90c3dhcHBlZCEvZykgfHwgW10pLmxlbmd0aDtcbiAgICBleHBlY3QoaG90c3dhcENvdW50KS50b0JlKDEpO1xuICB9KSxcbik7XG5cbmludGVnVGVzdChcbiAgJ2hvdHN3YXAgY2FjaGUgaXMgaW52YWxpZGF0ZWQgYWZ0ZXIgYSBmdWxsIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnQnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBHSVZFTiAtIGRlcGxveSB0aGVuIGhvdHN3YXAgdG8gY3JlYXRlIGNhY2hlXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2xhbWJkYS1ob3Rzd2FwJywge1xuICAgICAgY2FwdHVyZVN0ZGVycjogZmFsc2UsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgRFlOQU1JQ19MQU1CREFfUFJPUEVSVFlfVkFMVUU6ICd2MScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2xhbWJkYS1ob3Rzd2FwJywge1xuICAgICAgb3B0aW9uczogWyctLWhvdHN3YXAnXSxcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfTEFNQkRBX1BST1BFUlRZX1ZBTFVFOiAndjInLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHN0YWNrTmFtZSA9IGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgnbGFtYmRhLWhvdHN3YXAnKTtcbiAgICBjb25zdCBjYWNoZUZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICdjZGsub3V0JywgJy5ob3Rzd2FwLWNhY2hlJywgYCR7c3RhY2tOYW1lfS5qc29uYCk7XG4gICAgZXhwZWN0KGZzLmV4aXN0c1N5bmMoY2FjaGVGaWxlKSkudG9CZSh0cnVlKTtcblxuICAgIC8vIFdIRU4gLSBmdWxsIENGTiBkZXBsb3lcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnbGFtYmRhLWhvdHN3YXAnLCB7XG4gICAgICBjYXB0dXJlU3RkZXJyOiBmYWxzZSxcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBEWU5BTUlDX0xBTUJEQV9QUk9QRVJUWV9WQUxVRTogJ3YzJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBUSEVOIC0gY2FjaGUgc2hvdWxkIGJlIGludmFsaWRhdGVkXG4gICAgZXhwZWN0KGZzLmV4aXN0c1N5bmMoY2FjaGVGaWxlKSkudG9CZShmYWxzZSk7XG4gIH0pLFxuKTtcbiJdfQ==
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
4
4
  const lib_1 = require("../../../lib");
5
- const regions_1 = require("../../../lib/regions");
6
5
  jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
6
  (0, lib_1.integTest)('hotswap deployment supports CloudControl-based resources with attribute resolution', (0, lib_1.withDefaultFixture)(async (fixture) => {
8
7
  // GIVEN
@@ -26,7 +25,7 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
26
25
  StackName: fixture.fullStackName(stackName),
27
26
  }));
28
27
  const queueUrl = response.Stacks?.[0].Outputs?.find((output) => output.OutputKey === 'QueueUrl')?.OutputValue;
29
- const agentName = response.Stacks?.[0].Outputs?.find((output) => output.OutputKey === 'AgentName')?.OutputValue;
28
+ const dashboardName = response.Stacks?.[0].Outputs?.find((output) => output.OutputKey === 'DashboardName')?.OutputValue;
30
29
  const ruleName = response.Stacks?.[0].Outputs?.find((output) => output.OutputKey === 'RuleName')?.OutputValue;
31
30
  // THEN
32
31
  // The deployment should not trigger a full deployment, thus the stack's status must remain
@@ -36,7 +35,7 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
36
35
  expect(deployOutput).toMatch(/hotswapped!/);
37
36
  // Verify all three CCAPI-based resources were hotswapped
38
37
  expect(queueUrl).toBeDefined();
39
- expect(agentName).toBeDefined();
38
+ expect(dashboardName).toBeDefined();
40
39
  expect(ruleName).toBeDefined();
41
- }, { aws: { regions: regions_1.BEDROCK_AGENT_REGIONS } }));
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1zdXBwb3J0cy1jbG91ZGNvbnRyb2wtYmFzZWQtcmVzb3VyY2VzLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1ob3Rzd2FwLWRlcGxveW1lbnQtc3VwcG9ydHMtY2xvdWRjb250cm9sLWJhc2VkLXJlc291cmNlcy5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwRUFBdUU7QUFDdkUsc0NBQTZEO0FBQzdELGtEQUE2RDtBQUU3RCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1Asb0ZBQW9GLEVBQ3BGLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLFFBQVE7SUFDUixNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUM7SUFDL0IsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRTtRQUNqQyxhQUFhLEVBQUUsS0FBSztRQUNwQixNQUFNLEVBQUU7WUFDTix5QkFBeUIsRUFBRSxnQkFBZ0I7U0FDNUM7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPO0lBQ1AsTUFBTSxZQUFZLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRTtRQUN0RCxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUM7UUFDdEIsYUFBYSxFQUFFLElBQUk7UUFDbkIsVUFBVSxFQUFFLElBQUk7UUFDaEIsTUFBTSxFQUFFO1lBQ04seUJBQXlCLEVBQUUsV0FBVztTQUN2QztLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUNwRCxJQUFJLDZDQUFxQixDQUFDO1FBQ3hCLFNBQVMsRUFBRSxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztLQUM1QyxDQUFDLENBQ0gsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLFVBQVUsQ0FBQyxFQUFFLFdBQVcsQ0FBQztJQUM5RyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxXQUFXLENBQUMsRUFBRSxXQUFXLENBQUM7SUFDaEgsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssVUFBVSxDQUFDLEVBQUUsV0FBVyxDQUFDO0lBRTlHLE9BQU87SUFFUCwyRkFBMkY7SUFDM0Ysb0JBQW9CO0lBQ3BCLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDcEUsMEJBQTBCO0lBQzFCLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUMseURBQXlEO0lBQ3pELE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQixNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDaEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ2pDLENBQUMsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSwrQkFBcUIsRUFBRSxFQUFFLENBQUMsQ0FDaEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaWJlU3RhY2tzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5pbXBvcnQgeyBCRURST0NLX0FHRU5UX1JFR0lPTlMgfSBmcm9tICcuLi8uLi8uLi9saWIvcmVnaW9ucyc7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ2hvdHN3YXAgZGVwbG95bWVudCBzdXBwb3J0cyBDbG91ZENvbnRyb2wtYmFzZWQgcmVzb3VyY2VzIHdpdGggYXR0cmlidXRlIHJlc29sdXRpb24nLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrTmFtZSA9ICdjYy1ob3Rzd2FwJztcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveShzdGFja05hbWUsIHtcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUU6ICdvcmlnaW5hbCB2YWx1ZScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gV0hFTlxuICAgIGNvbnN0IGRlcGxveU91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KHN0YWNrTmFtZSwge1xuICAgICAgb3B0aW9uczogWyctLWhvdHN3YXAnXSxcbiAgICAgIGNhcHR1cmVTdGRlcnI6IHRydWUsXG4gICAgICBvbmx5U3RkZXJyOiB0cnVlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUU6ICduZXcgdmFsdWUnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZml4dHVyZS5hd3MuY2xvdWRGb3JtYXRpb24uc2VuZChcbiAgICAgIG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe1xuICAgICAgICBTdGFja05hbWU6IGZpeHR1cmUuZnVsbFN0YWNrTmFtZShzdGFja05hbWUpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IHF1ZXVlVXJsID0gcmVzcG9uc2UuU3RhY2tzPy5bMF0uT3V0cHV0cz8uZmluZCgob3V0cHV0KSA9PiBvdXRwdXQuT3V0cHV0S2V5ID09PSAnUXVldWVVcmwnKT8uT3V0cHV0VmFsdWU7XG4gICAgY29uc3QgYWdlbnROYW1lID0gcmVzcG9uc2UuU3RhY2tzPy5bMF0uT3V0cHV0cz8uZmluZCgob3V0cHV0KSA9PiBvdXRwdXQuT3V0cHV0S2V5ID09PSAnQWdlbnROYW1lJyk/Lk91dHB1dFZhbHVlO1xuICAgIGNvbnN0IHJ1bGVOYW1lID0gcmVzcG9uc2UuU3RhY2tzPy5bMF0uT3V0cHV0cz8uZmluZCgob3V0cHV0KSA9PiBvdXRwdXQuT3V0cHV0S2V5ID09PSAnUnVsZU5hbWUnKT8uT3V0cHV0VmFsdWU7XG5cbiAgICAvLyBUSEVOXG5cbiAgICAvLyBUaGUgZGVwbG95bWVudCBzaG91bGQgbm90IHRyaWdnZXIgYSBmdWxsIGRlcGxveW1lbnQsIHRodXMgdGhlIHN0YWNrJ3Mgc3RhdHVzIG11c3QgcmVtYWluXG4gICAgLy8gXCJDUkVBVEVfQ09NUExFVEVcIlxuICAgIGV4cGVjdChyZXNwb25zZS5TdGFja3M/LlswXS5TdGFja1N0YXR1cykudG9FcXVhbCgnQ1JFQVRFX0NPTVBMRVRFJyk7XG4gICAgLy8gVmVyaWZ5IGhvdHN3YXAgd2FzIHVzZWRcbiAgICBleHBlY3QoZGVwbG95T3V0cHV0KS50b01hdGNoKC9ob3Rzd2FwcGVkIS8pO1xuICAgIC8vIFZlcmlmeSBhbGwgdGhyZWUgQ0NBUEktYmFzZWQgcmVzb3VyY2VzIHdlcmUgaG90c3dhcHBlZFxuICAgIGV4cGVjdChxdWV1ZVVybCkudG9CZURlZmluZWQoKTtcbiAgICBleHBlY3QoYWdlbnROYW1lKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChydWxlTmFtZSkudG9CZURlZmluZWQoKTtcbiAgfSwgeyBhd3M6IHsgcmVnaW9uczogQkVEUk9DS19BR0VOVF9SRUdJT05TIH0gfSksXG4pO1xuIl19
40
+ }));
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWhvdHN3YXAtZGVwbG95bWVudC1zdXBwb3J0cy1jbG91ZGNvbnRyb2wtYmFzZWQtcmVzb3VyY2VzLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1ob3Rzd2FwLWRlcGxveW1lbnQtc3VwcG9ydHMtY2xvdWRjb250cm9sLWJhc2VkLXJlc291cmNlcy5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwwRUFBdUU7QUFDdkUsc0NBQTZEO0FBRTdELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCxvRkFBb0YsRUFDcEYsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsUUFBUTtJQUNSLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQztJQUMvQixNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1FBQ2pDLGFBQWEsRUFBRSxLQUFLO1FBQ3BCLE1BQU0sRUFBRTtZQUNOLHlCQUF5QixFQUFFLGdCQUFnQjtTQUM1QztLQUNGLENBQUMsQ0FBQztJQUVILE9BQU87SUFDUCxNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFO1FBQ3RELE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUN0QixhQUFhLEVBQUUsSUFBSTtRQUNuQixVQUFVLEVBQUUsSUFBSTtRQUNoQixNQUFNLEVBQUU7WUFDTix5QkFBeUIsRUFBRSxXQUFXO1NBQ3ZDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3BELElBQUksNkNBQXFCLENBQUM7UUFDeEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO0tBQzVDLENBQUMsQ0FDSCxDQUFDO0lBRUYsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEtBQUssVUFBVSxDQUFDLEVBQUUsV0FBVyxDQUFDO0lBQzlHLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsU0FBUyxLQUFLLGVBQWUsQ0FBQyxFQUFFLFdBQVcsQ0FBQztJQUN4SCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQUMsRUFBRSxXQUFXLENBQUM7SUFFOUcsT0FBTztJQUVQLDJGQUEyRjtJQUMzRixvQkFBb0I7SUFDcEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUNwRSwwQkFBMEI7SUFDMUIsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1Qyx5REFBeUQ7SUFDekQsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQy9CLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaWJlU3RhY2tzQ29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ2hvdHN3YXAgZGVwbG95bWVudCBzdXBwb3J0cyBDbG91ZENvbnRyb2wtYmFzZWQgcmVzb3VyY2VzIHdpdGggYXR0cmlidXRlIHJlc29sdXRpb24nLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBHSVZFTlxuICAgIGNvbnN0IHN0YWNrTmFtZSA9ICdjYy1ob3Rzd2FwJztcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveShzdGFja05hbWUsIHtcbiAgICAgIGNhcHR1cmVTdGRlcnI6IGZhbHNlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUU6ICdvcmlnaW5hbCB2YWx1ZScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgLy8gV0hFTlxuICAgIGNvbnN0IGRlcGxveU91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KHN0YWNrTmFtZSwge1xuICAgICAgb3B0aW9uczogWyctLWhvdHN3YXAnXSxcbiAgICAgIGNhcHR1cmVTdGRlcnI6IHRydWUsXG4gICAgICBvbmx5U3RkZXJyOiB0cnVlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIERZTkFNSUNfQ0NfUFJPUEVSVFlfVkFMVUU6ICduZXcgdmFsdWUnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZml4dHVyZS5hd3MuY2xvdWRGb3JtYXRpb24uc2VuZChcbiAgICAgIG5ldyBEZXNjcmliZVN0YWNrc0NvbW1hbmQoe1xuICAgICAgICBTdGFja05hbWU6IGZpeHR1cmUuZnVsbFN0YWNrTmFtZShzdGFja05hbWUpLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IHF1ZXVlVXJsID0gcmVzcG9uc2UuU3RhY2tzPy5bMF0uT3V0cHV0cz8uZmluZCgob3V0cHV0KSA9PiBvdXRwdXQuT3V0cHV0S2V5ID09PSAnUXVldWVVcmwnKT8uT3V0cHV0VmFsdWU7XG4gICAgY29uc3QgZGFzaGJvYXJkTmFtZSA9IHJlc3BvbnNlLlN0YWNrcz8uWzBdLk91dHB1dHM/LmZpbmQoKG91dHB1dCkgPT4gb3V0cHV0Lk91dHB1dEtleSA9PT0gJ0Rhc2hib2FyZE5hbWUnKT8uT3V0cHV0VmFsdWU7XG4gICAgY29uc3QgcnVsZU5hbWUgPSByZXNwb25zZS5TdGFja3M/LlswXS5PdXRwdXRzPy5maW5kKChvdXRwdXQpID0+IG91dHB1dC5PdXRwdXRLZXkgPT09ICdSdWxlTmFtZScpPy5PdXRwdXRWYWx1ZTtcblxuICAgIC8vIFRIRU5cblxuICAgIC8vIFRoZSBkZXBsb3ltZW50IHNob3VsZCBub3QgdHJpZ2dlciBhIGZ1bGwgZGVwbG95bWVudCwgdGh1cyB0aGUgc3RhY2sncyBzdGF0dXMgbXVzdCByZW1haW5cbiAgICAvLyBcIkNSRUFURV9DT01QTEVURVwiXG4gICAgZXhwZWN0KHJlc3BvbnNlLlN0YWNrcz8uWzBdLlN0YWNrU3RhdHVzKS50b0VxdWFsKCdDUkVBVEVfQ09NUExFVEUnKTtcbiAgICAvLyBWZXJpZnkgaG90c3dhcCB3YXMgdXNlZFxuICAgIGV4cGVjdChkZXBsb3lPdXRwdXQpLnRvTWF0Y2goL2hvdHN3YXBwZWQhLyk7XG4gICAgLy8gVmVyaWZ5IGFsbCB0aHJlZSBDQ0FQSS1iYXNlZCByZXNvdXJjZXMgd2VyZSBob3Rzd2FwcGVkXG4gICAgZXhwZWN0KHF1ZXVlVXJsKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChkYXNoYm9hcmROYW1lKS50b0JlRGVmaW5lZCgpO1xuICAgIGV4cGVjdChydWxlTmFtZSkudG9CZURlZmluZWQoKTtcbiAgfSksXG4pO1xuIl19