@aws-cdk-testing/cli-integ 3.15.1 → 3.16.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/npm-shrinkwrap.json +468 -468
- package/package.json +17 -17
- package/resources/cdk-apps/refactoring/refactoring.js +28 -9
- package/tests/cli-integ-tests/refactor/cdk-refactor-dry-run.integtest.js +9 -7
- package/tests/cli-integ-tests/refactor/cdk-refactor-move-same-to-different-stacks.integtest.d.ts +7 -0
- package/tests/cli-integ-tests/refactor/cdk-refactor-move-same-to-different-stacks.integtest.js +47 -0
- package/tests/cli-integ-tests/refactor/cdk-refactor-no-ambiguities-execution.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/refactor/cdk-refactor-no-ambiguities-execution.integtest.js +42 -0
- package/tests/cli-integ-tests/refactor/cdk-refactor-with-ambiguities-execution.integtest.d.ts +7 -0
- package/tests/cli-integ-tests/refactor/cdk-refactor-with-ambiguities-execution.integtest.js +68 -0
- package/tests/cli-integ-tests/synth/cdk-synth-telemetry-with-errors.integtest.js +1 -3
- package/tests/cli-integ-tests/synth/cdk-synth-telemetry.integtest.js +1 -3
package/package.json
CHANGED
|
@@ -39,9 +39,9 @@
|
|
|
39
39
|
"organization": true
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@aws-cdk/toolkit-lib": "1.
|
|
42
|
+
"@aws-cdk/toolkit-lib": "1.8.0",
|
|
43
43
|
"@aws-cdk/yarn-cling": "0.0.0",
|
|
44
|
-
"@cdklabs/eslint-plugin": "^1.3.
|
|
44
|
+
"@cdklabs/eslint-plugin": "^1.3.4",
|
|
45
45
|
"@stylistic/eslint-plugin": "^3",
|
|
46
46
|
"@types/fs-extra": "^9",
|
|
47
47
|
"@types/jest": "^29.5.14",
|
|
@@ -67,20 +67,20 @@
|
|
|
67
67
|
"typescript": "5.8"
|
|
68
68
|
},
|
|
69
69
|
"dependencies": {
|
|
70
|
-
"@aws-sdk/client-cloudformation": "^3.
|
|
71
|
-
"@aws-sdk/client-codeartifact": "^3.
|
|
72
|
-
"@aws-sdk/client-ecr": "^3.
|
|
73
|
-
"@aws-sdk/client-ecr-public": "^3.
|
|
74
|
-
"@aws-sdk/client-ecs": "^3.
|
|
75
|
-
"@aws-sdk/client-iam": "^3.
|
|
76
|
-
"@aws-sdk/client-lambda": "^3.
|
|
77
|
-
"@aws-sdk/client-s3": "^3.
|
|
78
|
-
"@aws-sdk/client-secrets-manager": "^3.
|
|
79
|
-
"@aws-sdk/client-sns": "^3.
|
|
80
|
-
"@aws-sdk/client-sso": "^3.
|
|
81
|
-
"@aws-sdk/client-sts": "^3.
|
|
82
|
-
"@aws-sdk/credential-providers": "^3.
|
|
83
|
-
"@cdklabs/cdk-atmosphere-client": "^0.0.
|
|
70
|
+
"@aws-sdk/client-cloudformation": "^3.879.0",
|
|
71
|
+
"@aws-sdk/client-codeartifact": "^3.879.0",
|
|
72
|
+
"@aws-sdk/client-ecr": "^3.879.0",
|
|
73
|
+
"@aws-sdk/client-ecr-public": "^3.879.0",
|
|
74
|
+
"@aws-sdk/client-ecs": "^3.879.0",
|
|
75
|
+
"@aws-sdk/client-iam": "^3.879.0",
|
|
76
|
+
"@aws-sdk/client-lambda": "^3.879.0",
|
|
77
|
+
"@aws-sdk/client-s3": "^3.879.0",
|
|
78
|
+
"@aws-sdk/client-secrets-manager": "^3.879.0",
|
|
79
|
+
"@aws-sdk/client-sns": "^3.879.0",
|
|
80
|
+
"@aws-sdk/client-sso": "^3.879.0",
|
|
81
|
+
"@aws-sdk/client-sts": "^3.879.0",
|
|
82
|
+
"@aws-sdk/credential-providers": "^3.879.0",
|
|
83
|
+
"@cdklabs/cdk-atmosphere-client": "^0.0.62",
|
|
84
84
|
"@octokit/rest": "^20",
|
|
85
85
|
"@smithy/types": "^4.3.2",
|
|
86
86
|
"@smithy/util-retry": "^4.0.7",
|
|
@@ -116,7 +116,7 @@
|
|
|
116
116
|
"publishConfig": {
|
|
117
117
|
"access": "public"
|
|
118
118
|
},
|
|
119
|
-
"version": "3.
|
|
119
|
+
"version": "3.16.0",
|
|
120
120
|
"types": "lib/index.d.ts",
|
|
121
121
|
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
|
|
122
122
|
}
|
|
@@ -1,18 +1,37 @@
|
|
|
1
1
|
const cdk = require('aws-cdk-lib');
|
|
2
2
|
const sqs = require('aws-cdk-lib/aws-sqs');
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
constructor(parent, id, props) {
|
|
6
|
-
super(parent, id, props);
|
|
7
|
-
new sqs.Queue(this, props.queueName);
|
|
8
|
-
}
|
|
9
|
-
}
|
|
3
|
+
const lambda = require('aws-cdk-lib/aws-lambda');
|
|
4
|
+
const s3 = require('aws-cdk-lib/aws-s3');
|
|
10
5
|
|
|
11
6
|
const stackPrefix = process.env.STACK_NAME_PREFIX;
|
|
12
7
|
const app = new cdk.App();
|
|
13
8
|
|
|
14
|
-
new
|
|
15
|
-
|
|
9
|
+
const mainStack = new cdk.Stack(app, `${stackPrefix}-basic`);
|
|
10
|
+
new sqs.Queue(mainStack, process.env.BASIC_QUEUE_LOGICAL_ID ?? 'BasicQueue');
|
|
11
|
+
|
|
12
|
+
const bucketStack = new cdk.Stack(app, `${stackPrefix}-bucket-stack`);
|
|
13
|
+
const dummy = new s3.Bucket(bucketStack, 'DummyBucket', {
|
|
14
|
+
bucketName: `dummy-bucket-for-${stackPrefix}`
|
|
16
15
|
});
|
|
17
16
|
|
|
17
|
+
// This part is to test adding a resource to an existing stack
|
|
18
|
+
|
|
19
|
+
if (process.env.ADDITIONAL_QUEUE_LOGICAL_ID) {
|
|
20
|
+
new sqs.Queue(mainStack, process.env.ADDITIONAL_QUEUE_LOGICAL_ID);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
// This part is to test moving a resource to a separate stack
|
|
24
|
+
const bucket = new s3.Bucket(process.env.BUCKET_IN_SEPARATE_STACK ? bucketStack : mainStack, 'Bucket');
|
|
25
|
+
|
|
26
|
+
new lambda.Function(mainStack, 'Func', {
|
|
27
|
+
runtime: lambda.Runtime.NODEJS_22_X,
|
|
28
|
+
code: lambda.Code.fromInline(`exports.handler = handler.toString()`),
|
|
29
|
+
handler: 'index.handler',
|
|
30
|
+
environment: {
|
|
31
|
+
BUCKET: bucket.bucketName
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
18
37
|
app.synth();
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const lib_1 = require("../../../lib");
|
|
4
|
-
(0, lib_1.integTest)('detects refactoring changes and prints the result', (0, lib_1.withSpecificFixture)('refactoring', async (fixture) => {
|
|
5
|
-
// First, deploy
|
|
4
|
+
(0, lib_1.integTest)('cdk refactor - detects refactoring changes and prints the result', (0, lib_1.withSpecificFixture)('refactoring', async (fixture) => {
|
|
5
|
+
// First, deploy the stacks
|
|
6
|
+
await fixture.cdkDeploy('bucket-stack');
|
|
6
7
|
await fixture.cdkDeploy('basic', {
|
|
7
8
|
modEnv: {
|
|
8
9
|
BASIC_QUEUE_LOGICAL_ID: 'OldName',
|
|
@@ -12,8 +13,8 @@ const lib_1 = require("../../../lib");
|
|
|
12
13
|
const stdErr = await fixture.cdkRefactor({
|
|
13
14
|
options: ['--dry-run', '--unstable=refactor'],
|
|
14
15
|
allowErrExit: true,
|
|
15
|
-
// Making sure the synthesized stack has
|
|
16
|
-
// so that a refactor is detected
|
|
16
|
+
// Making sure the synthesized stack has a queue with
|
|
17
|
+
// the new name so that a refactor is detected
|
|
17
18
|
modEnv: {
|
|
18
19
|
BASIC_QUEUE_LOGICAL_ID: 'NewName',
|
|
19
20
|
},
|
|
@@ -21,11 +22,12 @@ const lib_1 = require("../../../lib");
|
|
|
21
22
|
expect(stdErr).toContain('The following resources were moved or renamed:');
|
|
22
23
|
expect(removeColor(stdErr)).toMatch(/│ AWS::SQS::Queue │ .*\/OldName\/Resource │ .*\/NewName\/Resource │/);
|
|
23
24
|
}));
|
|
24
|
-
(0, lib_1.integTest)('no refactoring changes detected', (0, lib_1.withSpecificFixture)('refactoring', async (fixture) => {
|
|
25
|
+
(0, lib_1.integTest)('cdk refactor - no refactoring changes detected', (0, lib_1.withSpecificFixture)('refactoring', async (fixture) => {
|
|
25
26
|
const modEnv = {
|
|
26
27
|
BASIC_QUEUE_LOGICAL_ID: 'OldName',
|
|
27
28
|
};
|
|
28
|
-
// First, deploy
|
|
29
|
+
// First, deploy the stacks
|
|
30
|
+
await fixture.cdkDeploy('bucket-stack');
|
|
29
31
|
await fixture.cdkDeploy('basic', { modEnv });
|
|
30
32
|
// Then see if the refactoring tool detects the change
|
|
31
33
|
const stdErr = await fixture.cdkRefactor({
|
|
@@ -38,4 +40,4 @@ const lib_1 = require("../../../lib");
|
|
|
38
40
|
function removeColor(str) {
|
|
39
41
|
return str.replace(/\x1B[[(?);]{0,2}(;?\d)*./g, '');
|
|
40
42
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXJlZmFjdG9yLWRyeS1ydW4uaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLXJlZmFjdG9yLWRyeS1ydW4uaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsc0NBQThEO0FBRTlELElBQUEsZUFBUyxFQUNQLGtFQUFrRSxFQUNsRSxJQUFBLHlCQUFtQixFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkQsMkJBQTJCO0lBQzNCLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO1FBQy9CLE1BQU0sRUFBRTtZQUNOLHNCQUFzQixFQUFFLFNBQVM7U0FDbEM7S0FDRixDQUFDLENBQUM7SUFFSCxzREFBc0Q7SUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxxQkFBcUIsQ0FBQztRQUM3QyxZQUFZLEVBQUUsSUFBSTtRQUNsQixxREFBcUQ7UUFDckQsOENBQThDO1FBQzlDLE1BQU0sRUFBRTtZQUNOLHNCQUFzQixFQUFFLFNBQVM7U0FDbEM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7SUFDM0UsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO0FBQzdHLENBQUMsQ0FBQyxDQUNILENBQUM7QUFFRixJQUFBLGVBQVMsRUFDUCxnREFBZ0QsRUFDaEQsSUFBQSx5QkFBbUIsRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25ELE1BQU0sTUFBTSxHQUFHO1FBQ2Isc0JBQXNCLEVBQUUsU0FBUztLQUNsQyxDQUFDO0lBRUYsMkJBQTJCO0lBQzNCLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUU3QyxzREFBc0Q7SUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxxQkFBcUIsQ0FBQztRQUM3QyxZQUFZLEVBQUUsSUFBSTtRQUNsQixNQUFNO0tBQ1AsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0FBQ2xELENBQUMsQ0FBQyxDQUNILENBQUM7QUFFRixTQUFTLFdBQVcsQ0FBQyxHQUFXO0lBQzlCLE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN0RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoU3BlY2lmaWNGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuaW50ZWdUZXN0KFxuICAnY2RrIHJlZmFjdG9yIC0gZGV0ZWN0cyByZWZhY3RvcmluZyBjaGFuZ2VzIGFuZCBwcmludHMgdGhlIHJlc3VsdCcsXG4gIHdpdGhTcGVjaWZpY0ZpeHR1cmUoJ3JlZmFjdG9yaW5nJywgYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICAvLyBGaXJzdCwgZGVwbG95IHRoZSBzdGFja3NcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnYnVja2V0LXN0YWNrJyk7XG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2Jhc2ljJywge1xuICAgICAgbW9kRW52OiB7XG4gICAgICAgIEJBU0lDX1FVRVVFX0xPR0lDQUxfSUQ6ICdPbGROYW1lJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBUaGVuIHNlZSBpZiB0aGUgcmVmYWN0b3JpbmcgdG9vbCBkZXRlY3RzIHRoZSBjaGFuZ2VcbiAgICBjb25zdCBzdGRFcnIgPSBhd2FpdCBmaXh0dXJlLmNka1JlZmFjdG9yKHtcbiAgICAgIG9wdGlvbnM6IFsnLS1kcnktcnVuJywgJy0tdW5zdGFibGU9cmVmYWN0b3InXSxcbiAgICAgIGFsbG93RXJyRXhpdDogdHJ1ZSxcbiAgICAgIC8vIE1ha2luZyBzdXJlIHRoZSBzeW50aGVzaXplZCBzdGFjayBoYXMgYSBxdWV1ZSB3aXRoXG4gICAgICAvLyB0aGUgbmV3IG5hbWUgc28gdGhhdCBhIHJlZmFjdG9yIGlzIGRldGVjdGVkXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgQkFTSUNfUVVFVUVfTE9HSUNBTF9JRDogJ05ld05hbWUnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGV4cGVjdChzdGRFcnIpLnRvQ29udGFpbignVGhlIGZvbGxvd2luZyByZXNvdXJjZXMgd2VyZSBtb3ZlZCBvciByZW5hbWVkOicpO1xuICAgIGV4cGVjdChyZW1vdmVDb2xvcihzdGRFcnIpKS50b01hdGNoKC/ilIIgQVdTOjpTUVM6OlF1ZXVlIOKUgiAuKlxcL09sZE5hbWVcXC9SZXNvdXJjZSDilIIgLipcXC9OZXdOYW1lXFwvUmVzb3VyY2Ug4pSCLyk7XG4gIH0pLFxuKTtcblxuaW50ZWdUZXN0KFxuICAnY2RrIHJlZmFjdG9yIC0gbm8gcmVmYWN0b3JpbmcgY2hhbmdlcyBkZXRlY3RlZCcsXG4gIHdpdGhTcGVjaWZpY0ZpeHR1cmUoJ3JlZmFjdG9yaW5nJywgYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBjb25zdCBtb2RFbnYgPSB7XG4gICAgICBCQVNJQ19RVUVVRV9MT0dJQ0FMX0lEOiAnT2xkTmFtZScsXG4gICAgfTtcblxuICAgIC8vIEZpcnN0LCBkZXBsb3kgdGhlIHN0YWNrc1xuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdidWNrZXQtc3RhY2snKTtcbiAgICBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnYmFzaWMnLCB7IG1vZEVudiB9KTtcblxuICAgIC8vIFRoZW4gc2VlIGlmIHRoZSByZWZhY3RvcmluZyB0b29sIGRldGVjdHMgdGhlIGNoYW5nZVxuICAgIGNvbnN0IHN0ZEVyciA9IGF3YWl0IGZpeHR1cmUuY2RrUmVmYWN0b3Ioe1xuICAgICAgb3B0aW9uczogWyctLWRyeS1ydW4nLCAnLS11bnN0YWJsZT1yZWZhY3RvciddLFxuICAgICAgYWxsb3dFcnJFeGl0OiB0cnVlLFxuICAgICAgbW9kRW52LFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KHN0ZEVycikudG9Db250YWluKCdOb3RoaW5nIHRvIHJlZmFjdG9yJyk7XG4gIH0pLFxuKTtcblxuZnVuY3Rpb24gcmVtb3ZlQ29sb3Ioc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc3RyLnJlcGxhY2UoL1xceDFCW1soPyk7XXswLDJ9KDs/XFxkKSouL2csICcnKTtcbn1cblxuIl19
|
package/tests/cli-integ-tests/refactor/cdk-refactor-move-same-to-different-stacks.integtest.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStackInfoFromArn = getStackInfoFromArn;
|
|
4
|
+
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
5
|
+
const lib_1 = require("../../../lib");
|
|
6
|
+
(0, lib_1.integTest)('cdk refactor - moves a referenced resource to a different stack', (0, lib_1.withSpecificFixture)('refactoring', async (fixture) => {
|
|
7
|
+
// First, deploy the stacks
|
|
8
|
+
await fixture.cdkDeploy('bucket-stack');
|
|
9
|
+
const originalStackArn = await fixture.cdkDeploy('basic');
|
|
10
|
+
const originalStackInfo = getStackInfoFromArn(originalStackArn);
|
|
11
|
+
const stackPrefix = originalStackInfo.name.replace(/-basic$/, '');
|
|
12
|
+
// Then see if the refactoring tool detects the change
|
|
13
|
+
const stdErr = await fixture.cdkRefactor({
|
|
14
|
+
options: ['--unstable=refactor', '--force'],
|
|
15
|
+
allowErrExit: true,
|
|
16
|
+
// Making sure the synthesized stack has a queue with
|
|
17
|
+
// the new name so that a refactor is detected
|
|
18
|
+
modEnv: {
|
|
19
|
+
BUCKET_IN_SEPARATE_STACK: 'true',
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
expect(stdErr).toMatch('Stack refactor complete');
|
|
23
|
+
const stacks = await fixture.aws.cloudFormation.send(new client_cloudformation_1.ListStacksCommand());
|
|
24
|
+
const bucketStack = (stacks.StackSummaries ?? []).find((s) => s.StackName === `${stackPrefix}-bucket-stack`);
|
|
25
|
+
expect(bucketStack).toBeDefined();
|
|
26
|
+
const stackDescription = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStackResourcesCommand({
|
|
27
|
+
StackName: bucketStack.StackName,
|
|
28
|
+
}));
|
|
29
|
+
const resources = Object.fromEntries((stackDescription.StackResources ?? []).map((resource) => [resource.LogicalResourceId, resource]));
|
|
30
|
+
expect(resources.Bucket83908E77).toBeDefined();
|
|
31
|
+
// CloudFormation may complete the refactoring, while the stack is still in the "UPDATE_IN_PROGRESS" state.
|
|
32
|
+
// Give it a couple of seconds to finish the update.
|
|
33
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
34
|
+
}));
|
|
35
|
+
function getStackInfoFromArn(stackArn) {
|
|
36
|
+
// Example ARN: arn:aws:cloudformation:region:account-id:stack/stack-name/guid
|
|
37
|
+
const arnParts = stackArn.split(':');
|
|
38
|
+
const resource = arnParts[5]; // "stack/stack-name/guid"
|
|
39
|
+
const resourceParts = resource.split('/');
|
|
40
|
+
// The stack name is the second part: ["stack", "stack-name", "guid"]
|
|
41
|
+
return {
|
|
42
|
+
region: arnParts[3],
|
|
43
|
+
account: arnParts[4],
|
|
44
|
+
name: resourceParts[1],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXJlZmFjdG9yLW1vdmUtc2FtZS10by1kaWZmZXJlbnQtc3RhY2tzLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1yZWZhY3Rvci1tb3ZlLXNhbWUtdG8tZGlmZmVyZW50LXN0YWNrcy5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUF5REEsa0RBV0M7QUFwRUQsMEVBQXNIO0FBQ3RILHNDQUE4RDtBQUU5RCxJQUFBLGVBQVMsRUFDUCxpRUFBaUUsRUFDakUsSUFBQSx5QkFBbUIsRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25ELDJCQUEyQjtJQUMzQixNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUQsTUFBTSxpQkFBaUIsR0FBRyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sV0FBVyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRWxFLHNEQUFzRDtJQUN0RCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFDdkMsT0FBTyxFQUFFLENBQUMscUJBQXFCLEVBQUUsU0FBUyxDQUFDO1FBQzNDLFlBQVksRUFBRSxJQUFJO1FBQ2xCLHFEQUFxRDtRQUNyRCw4Q0FBOEM7UUFDOUMsTUFBTSxFQUFFO1lBQ04sd0JBQXdCLEVBQUUsTUFBTTtTQUNqQztLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUVsRCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLHlDQUFpQixFQUFFLENBQUMsQ0FBQztJQUU5RSxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxLQUFLLEdBQUcsV0FBVyxlQUFlLENBQUMsQ0FBQztJQUU3RyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFbEMsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDNUQsSUFBSSxxREFBNkIsQ0FBQztRQUNoQyxTQUFTLEVBQUUsV0FBWSxDQUFDLFNBQVM7S0FDbEMsQ0FBQyxDQUNILENBQUM7SUFFRixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUNsQyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQ3pDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxpQkFBa0IsRUFBRSxRQUFRLENBQTRCLENBQ2pGLENBQ0YsQ0FBQztJQUVGLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFL0MsMkdBQTJHO0lBQzNHLG9EQUFvRDtJQUNwRCxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQVFGLFNBQWdCLG1CQUFtQixDQUFDLFFBQWdCO0lBQ2xELDhFQUE4RTtJQUM5RSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtJQUN4RCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLHFFQUFxRTtJQUNyRSxPQUFPO1FBQ0wsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7S0FDdkIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmliZVN0YWNrUmVzb3VyY2VzQ29tbWFuZCwgTGlzdFN0YWNrc0NvbW1hbmQsIHR5cGUgU3RhY2tSZXNvdXJjZSB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhTcGVjaWZpY0ZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgcmVmYWN0b3IgLSBtb3ZlcyBhIHJlZmVyZW5jZWQgcmVzb3VyY2UgdG8gYSBkaWZmZXJlbnQgc3RhY2snLFxuICB3aXRoU3BlY2lmaWNGaXh0dXJlKCdyZWZhY3RvcmluZycsIGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gRmlyc3QsIGRlcGxveSB0aGUgc3RhY2tzXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2J1Y2tldC1zdGFjaycpO1xuICAgIGNvbnN0IG9yaWdpbmFsU3RhY2tBcm4gPSBhd2FpdCBmaXh0dXJlLmNka0RlcGxveSgnYmFzaWMnKTtcbiAgICBjb25zdCBvcmlnaW5hbFN0YWNrSW5mbyA9IGdldFN0YWNrSW5mb0Zyb21Bcm4ob3JpZ2luYWxTdGFja0Fybik7XG4gICAgY29uc3Qgc3RhY2tQcmVmaXggPSBvcmlnaW5hbFN0YWNrSW5mby5uYW1lLnJlcGxhY2UoLy1iYXNpYyQvLCAnJyk7XG5cbiAgICAvLyBUaGVuIHNlZSBpZiB0aGUgcmVmYWN0b3JpbmcgdG9vbCBkZXRlY3RzIHRoZSBjaGFuZ2VcbiAgICBjb25zdCBzdGRFcnIgPSBhd2FpdCBmaXh0dXJlLmNka1JlZmFjdG9yKHtcbiAgICAgIG9wdGlvbnM6IFsnLS11bnN0YWJsZT1yZWZhY3RvcicsICctLWZvcmNlJ10sXG4gICAgICBhbGxvd0VyckV4aXQ6IHRydWUsXG4gICAgICAvLyBNYWtpbmcgc3VyZSB0aGUgc3ludGhlc2l6ZWQgc3RhY2sgaGFzIGEgcXVldWUgd2l0aFxuICAgICAgLy8gdGhlIG5ldyBuYW1lIHNvIHRoYXQgYSByZWZhY3RvciBpcyBkZXRlY3RlZFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIEJVQ0tFVF9JTl9TRVBBUkFURV9TVEFDSzogJ3RydWUnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGV4cGVjdChzdGRFcnIpLnRvTWF0Y2goJ1N0YWNrIHJlZmFjdG9yIGNvbXBsZXRlJyk7XG5cbiAgICBjb25zdCBzdGFja3MgPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKG5ldyBMaXN0U3RhY2tzQ29tbWFuZCgpKTtcblxuICAgIGNvbnN0IGJ1Y2tldFN0YWNrID0gKHN0YWNrcy5TdGFja1N1bW1hcmllcyA/PyBbXSkuZmluZCgocykgPT4gcy5TdGFja05hbWUgPT09IGAke3N0YWNrUHJlZml4fS1idWNrZXQtc3RhY2tgKTtcblxuICAgIGV4cGVjdChidWNrZXRTdGFjaykudG9CZURlZmluZWQoKTtcblxuICAgIGNvbnN0IHN0YWNrRGVzY3JpcHRpb24gPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKFxuICAgICAgbmV3IERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiBidWNrZXRTdGFjayEuU3RhY2tOYW1lLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc291cmNlcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIChzdGFja0Rlc2NyaXB0aW9uLlN0YWNrUmVzb3VyY2VzID8/IFtdKS5tYXAoXG4gICAgICAgIChyZXNvdXJjZSkgPT4gW3Jlc291cmNlLkxvZ2ljYWxSZXNvdXJjZUlkISwgcmVzb3VyY2VdIGFzIFtzdHJpbmcsIFN0YWNrUmVzb3VyY2VdLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgZXhwZWN0KHJlc291cmNlcy5CdWNrZXQ4MzkwOEU3NykudG9CZURlZmluZWQoKTtcblxuICAgIC8vIENsb3VkRm9ybWF0aW9uIG1heSBjb21wbGV0ZSB0aGUgcmVmYWN0b3JpbmcsIHdoaWxlIHRoZSBzdGFjayBpcyBzdGlsbCBpbiB0aGUgXCJVUERBVEVfSU5fUFJPR1JFU1NcIiBzdGF0ZS5cbiAgICAvLyBHaXZlIGl0IGEgY291cGxlIG9mIHNlY29uZHMgdG8gZmluaXNoIHRoZSB1cGRhdGUuXG4gICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgMjAwMCkpO1xuICB9KSxcbik7XG5cbmludGVyZmFjZSBTdGFja0luZm8ge1xuICByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGFja0luZm9Gcm9tQXJuKHN0YWNrQXJuOiBzdHJpbmcpOiBTdGFja0luZm8ge1xuICAvLyBFeGFtcGxlIEFSTjogYXJuOmF3czpjbG91ZGZvcm1hdGlvbjpyZWdpb246YWNjb3VudC1pZDpzdGFjay9zdGFjay1uYW1lL2d1aWRcbiAgY29uc3QgYXJuUGFydHMgPSBzdGFja0Fybi5zcGxpdCgnOicpO1xuICBjb25zdCByZXNvdXJjZSA9IGFyblBhcnRzWzVdOyAvLyBcInN0YWNrL3N0YWNrLW5hbWUvZ3VpZFwiXG4gIGNvbnN0IHJlc291cmNlUGFydHMgPSByZXNvdXJjZS5zcGxpdCgnLycpO1xuICAvLyBUaGUgc3RhY2sgbmFtZSBpcyB0aGUgc2Vjb25kIHBhcnQ6IFtcInN0YWNrXCIsIFwic3RhY2stbmFtZVwiLCBcImd1aWRcIl1cbiAgcmV0dXJuIHtcbiAgICByZWdpb246IGFyblBhcnRzWzNdLFxuICAgIGFjY291bnQ6IGFyblBhcnRzWzRdLFxuICAgIG5hbWU6IHJlc291cmNlUGFydHNbMV0sXG4gIH07XG59XG5cbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getStackNameFromArn(stackArn: string): string;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStackNameFromArn = getStackNameFromArn;
|
|
4
|
+
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
5
|
+
const lib_1 = require("../../../lib");
|
|
6
|
+
(0, lib_1.integTest)('cdk refactor - detects refactoring changes and executes the refactor', (0, lib_1.withSpecificFixture)('refactoring', async (fixture) => {
|
|
7
|
+
// First, deploy the stacks
|
|
8
|
+
await fixture.cdkDeploy('bucket-stack');
|
|
9
|
+
const stackArn = await fixture.cdkDeploy('basic', {
|
|
10
|
+
modEnv: {
|
|
11
|
+
BASIC_QUEUE_LOGICAL_ID: 'OldName',
|
|
12
|
+
},
|
|
13
|
+
});
|
|
14
|
+
// Then see if the refactoring tool detects the change
|
|
15
|
+
const stdErr = await fixture.cdkRefactor({
|
|
16
|
+
options: ['--unstable=refactor', '--force'],
|
|
17
|
+
allowErrExit: true,
|
|
18
|
+
// Making sure the synthesized stack has a queue with
|
|
19
|
+
// the new name so that a refactor is detected
|
|
20
|
+
modEnv: {
|
|
21
|
+
BASIC_QUEUE_LOGICAL_ID: 'NewName',
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
expect(stdErr).toMatch('Stack refactor complete');
|
|
25
|
+
const stackDescription = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStackResourcesCommand({
|
|
26
|
+
StackName: getStackNameFromArn(stackArn),
|
|
27
|
+
}));
|
|
28
|
+
const resources = Object.fromEntries((stackDescription.StackResources ?? []).map((resource) => [resource.LogicalResourceId, resource]));
|
|
29
|
+
expect(resources.NewName57B171FE).toBeDefined();
|
|
30
|
+
// CloudFormation may complete the refactoring, while the stack is still in the "UPDATE_IN_PROGRESS" state.
|
|
31
|
+
// Give it a couple of seconds to finish the update.
|
|
32
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
33
|
+
}));
|
|
34
|
+
function getStackNameFromArn(stackArn) {
|
|
35
|
+
// Example ARN: arn:aws:cloudformation:region:account-id:stack/stack-name/guid
|
|
36
|
+
const arnParts = stackArn.split(':');
|
|
37
|
+
const resource = arnParts[5]; // "stack/stack-name/guid"
|
|
38
|
+
const resourceParts = resource.split('/');
|
|
39
|
+
// The stack name is the second part: ["stack", "stack-name", "guid"]
|
|
40
|
+
return resourceParts[1];
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXJlZmFjdG9yLW5vLWFtYmlndWl0aWVzLWV4ZWN1dGlvbi5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstcmVmYWN0b3Itbm8tYW1iaWd1aXRpZXMtZXhlY3V0aW9uLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQStDQSxrREFPQztBQXRERCwwRUFBbUc7QUFDbkcsc0NBQThEO0FBRTlELElBQUEsZUFBUyxFQUNQLHNFQUFzRSxFQUN0RSxJQUFBLHlCQUFtQixFQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkQsMkJBQTJCO0lBQzNCLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxNQUFNLFFBQVEsR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFO1FBQ2hELE1BQU0sRUFBRTtZQUNOLHNCQUFzQixFQUFFLFNBQVM7U0FDbEM7S0FDRixDQUFDLENBQUM7SUFFSCxzREFBc0Q7SUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQ3ZDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLFNBQVMsQ0FBQztRQUMzQyxZQUFZLEVBQUUsSUFBSTtRQUNsQixxREFBcUQ7UUFDckQsOENBQThDO1FBQzlDLE1BQU0sRUFBRTtZQUNOLHNCQUFzQixFQUFFLFNBQVM7U0FDbEM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFFbEQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDNUQsSUFBSSxxREFBNkIsQ0FBQztRQUNoQyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsUUFBUSxDQUFDO0tBQ3pDLENBQUMsQ0FDSCxDQUFDO0lBRUYsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FDbEMsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUN6QyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsaUJBQWtCLEVBQUUsUUFBUSxDQUE0QixDQUNqRixDQUNGLENBQUM7SUFFRixNQUFNLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRWhELDJHQUEyRztJQUMzRyxvREFBb0Q7SUFDcEQsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUMsQ0FBQyxDQUNILENBQUM7QUFFRixTQUFnQixtQkFBbUIsQ0FBQyxRQUFnQjtJQUNsRCw4RUFBOEU7SUFDOUUsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNyQyxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQywwQkFBMEI7SUFDeEQsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxxRUFBcUU7SUFDckUsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kLCB0eXBlIFN0YWNrUmVzb3VyY2UgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtY2xvdWRmb3JtYXRpb24nO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoU3BlY2lmaWNGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuaW50ZWdUZXN0KFxuICAnY2RrIHJlZmFjdG9yIC0gZGV0ZWN0cyByZWZhY3RvcmluZyBjaGFuZ2VzIGFuZCBleGVjdXRlcyB0aGUgcmVmYWN0b3InLFxuICB3aXRoU3BlY2lmaWNGaXh0dXJlKCdyZWZhY3RvcmluZycsIGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgLy8gRmlyc3QsIGRlcGxveSB0aGUgc3RhY2tzXG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2J1Y2tldC1zdGFjaycpO1xuICAgIGNvbnN0IHN0YWNrQXJuID0gYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ2Jhc2ljJywge1xuICAgICAgbW9kRW52OiB7XG4gICAgICAgIEJBU0lDX1FVRVVFX0xPR0lDQUxfSUQ6ICdPbGROYW1lJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBUaGVuIHNlZSBpZiB0aGUgcmVmYWN0b3JpbmcgdG9vbCBkZXRlY3RzIHRoZSBjaGFuZ2VcbiAgICBjb25zdCBzdGRFcnIgPSBhd2FpdCBmaXh0dXJlLmNka1JlZmFjdG9yKHtcbiAgICAgIG9wdGlvbnM6IFsnLS11bnN0YWJsZT1yZWZhY3RvcicsICctLWZvcmNlJ10sXG4gICAgICBhbGxvd0VyckV4aXQ6IHRydWUsXG4gICAgICAvLyBNYWtpbmcgc3VyZSB0aGUgc3ludGhlc2l6ZWQgc3RhY2sgaGFzIGEgcXVldWUgd2l0aFxuICAgICAgLy8gdGhlIG5ldyBuYW1lIHNvIHRoYXQgYSByZWZhY3RvciBpcyBkZXRlY3RlZFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIEJBU0lDX1FVRVVFX0xPR0lDQUxfSUQ6ICdOZXdOYW1lJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBleHBlY3Qoc3RkRXJyKS50b01hdGNoKCdTdGFjayByZWZhY3RvciBjb21wbGV0ZScpO1xuXG4gICAgY29uc3Qgc3RhY2tEZXNjcmlwdGlvbiA9IGF3YWl0IGZpeHR1cmUuYXdzLmNsb3VkRm9ybWF0aW9uLnNlbmQoXG4gICAgICBuZXcgRGVzY3JpYmVTdGFja1Jlc291cmNlc0NvbW1hbmQoe1xuICAgICAgICBTdGFja05hbWU6IGdldFN0YWNrTmFtZUZyb21Bcm4oc3RhY2tBcm4pLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGNvbnN0IHJlc291cmNlcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgIChzdGFja0Rlc2NyaXB0aW9uLlN0YWNrUmVzb3VyY2VzID8/IFtdKS5tYXAoXG4gICAgICAgIChyZXNvdXJjZSkgPT4gW3Jlc291cmNlLkxvZ2ljYWxSZXNvdXJjZUlkISwgcmVzb3VyY2VdIGFzIFtzdHJpbmcsIFN0YWNrUmVzb3VyY2VdLFxuICAgICAgKSxcbiAgICApO1xuXG4gICAgZXhwZWN0KHJlc291cmNlcy5OZXdOYW1lNTdCMTcxRkUpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAvLyBDbG91ZEZvcm1hdGlvbiBtYXkgY29tcGxldGUgdGhlIHJlZmFjdG9yaW5nLCB3aGlsZSB0aGUgc3RhY2sgaXMgc3RpbGwgaW4gdGhlIFwiVVBEQVRFX0lOX1BST0dSRVNTXCIgc3RhdGUuXG4gICAgLy8gR2l2ZSBpdCBhIGNvdXBsZSBvZiBzZWNvbmRzIHRvIGZpbmlzaCB0aGUgdXBkYXRlLlxuICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDIwMDApKTtcbiAgfSksXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhY2tOYW1lRnJvbUFybihzdGFja0Fybjogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gRXhhbXBsZSBBUk46IGFybjphd3M6Y2xvdWRmb3JtYXRpb246cmVnaW9uOmFjY291bnQtaWQ6c3RhY2svc3RhY2stbmFtZS9ndWlkXG4gIGNvbnN0IGFyblBhcnRzID0gc3RhY2tBcm4uc3BsaXQoJzonKTtcbiAgY29uc3QgcmVzb3VyY2UgPSBhcm5QYXJ0c1s1XTsgLy8gXCJzdGFjay9zdGFjay1uYW1lL2d1aWRcIlxuICBjb25zdCByZXNvdXJjZVBhcnRzID0gcmVzb3VyY2Uuc3BsaXQoJy8nKTtcbiAgLy8gVGhlIHN0YWNrIG5hbWUgaXMgdGhlIHNlY29uZCBwYXJ0OiBbXCJzdGFja1wiLCBcInN0YWNrLW5hbWVcIiwgXCJndWlkXCJdXG4gIHJldHVybiByZXNvdXJjZVBhcnRzWzFdO1xufVxuIl19
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getStackInfoFromArn = getStackInfoFromArn;
|
|
4
|
+
const fs = require("node:fs");
|
|
5
|
+
const os = require("node:os");
|
|
6
|
+
const path = require("node:path");
|
|
7
|
+
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
8
|
+
const lib_1 = require("../../../lib");
|
|
9
|
+
(0, lib_1.integTest)('cdk refactor - detects refactoring changes and executes the refactor, overriding ambiguities', (0, lib_1.withSpecificFixture)('refactoring', async (fixture) => {
|
|
10
|
+
// First, deploy the stacks
|
|
11
|
+
await fixture.cdkDeploy('bucket-stack');
|
|
12
|
+
const stackArn = await fixture.cdkDeploy('basic', {
|
|
13
|
+
modEnv: {
|
|
14
|
+
BASIC_QUEUE_LOGICAL_ID: 'OldName',
|
|
15
|
+
ADDITIONAL_QUEUE_LOGICAL_ID: 'AdditionalOldName',
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
const stackInfo = getStackInfoFromArn(stackArn);
|
|
19
|
+
const stackName = stackInfo.name;
|
|
20
|
+
const overrides = {
|
|
21
|
+
environments: [
|
|
22
|
+
{
|
|
23
|
+
account: stackInfo.account,
|
|
24
|
+
region: stackInfo.region,
|
|
25
|
+
resources: {
|
|
26
|
+
[`${stackName}/OldName/Resource`]: `${stackName}/NewName/Resource`,
|
|
27
|
+
[`${stackName}/AdditionalOldName/Resource`]: `${stackName}/AdditionalNewName/Resource`,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
};
|
|
32
|
+
const overridesPath = path.join(os.tmpdir(), `overrides-${Date.now()}.json`);
|
|
33
|
+
fs.writeFileSync(overridesPath, JSON.stringify(overrides));
|
|
34
|
+
// Then see if the refactoring tool detects the change
|
|
35
|
+
const stdErr = await fixture.cdkRefactor({
|
|
36
|
+
options: ['--unstable=refactor', '--force', `--override-file=${overridesPath}`],
|
|
37
|
+
allowErrExit: true,
|
|
38
|
+
// Making sure the synthesized stack has a queue with
|
|
39
|
+
// the new name so that a refactor is detected
|
|
40
|
+
modEnv: {
|
|
41
|
+
BASIC_QUEUE_LOGICAL_ID: 'NewName',
|
|
42
|
+
ADDITIONAL_QUEUE_LOGICAL_ID: 'AdditionalNewName',
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
expect(stdErr).toMatch('Stack refactor complete');
|
|
46
|
+
const stackDescription = await fixture.aws.cloudFormation.send(new client_cloudformation_1.DescribeStackResourcesCommand({
|
|
47
|
+
StackName: stackName,
|
|
48
|
+
}));
|
|
49
|
+
const resources = Object.fromEntries((stackDescription.StackResources ?? []).map((resource) => [resource.LogicalResourceId, resource]));
|
|
50
|
+
expect(resources.AdditionalNewNameE2FC5A4C).toBeDefined();
|
|
51
|
+
expect(resources.NewName57B171FE).toBeDefined();
|
|
52
|
+
// CloudFormation may complete the refactoring, while the stack is still in the "UPDATE_IN_PROGRESS" state.
|
|
53
|
+
// Give it a couple of seconds to finish the update.
|
|
54
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
55
|
+
}));
|
|
56
|
+
function getStackInfoFromArn(stackArn) {
|
|
57
|
+
// Example ARN: arn:aws:cloudformation:region:account-id:stack/stack-name/guid
|
|
58
|
+
const arnParts = stackArn.split(':');
|
|
59
|
+
const resource = arnParts[5]; // "stack/stack-name/guid"
|
|
60
|
+
const resourceParts = resource.split('/');
|
|
61
|
+
// The stack name is the second part: ["stack", "stack-name", "guid"]
|
|
62
|
+
return {
|
|
63
|
+
region: arnParts[3],
|
|
64
|
+
account: arnParts[4],
|
|
65
|
+
name: resourceParts[1],
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXJlZmFjdG9yLXdpdGgtYW1iaWd1aXRpZXMtZXhlY3V0aW9uLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1yZWZhY3Rvci13aXRoLWFtYmlndWl0aWVzLWV4ZWN1dGlvbi5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUErRUEsa0RBV0M7QUExRkQsOEJBQThCO0FBQzlCLDhCQUE4QjtBQUM5QixrQ0FBa0M7QUFFbEMsMEVBQStFO0FBQy9FLHNDQUE4RDtBQUU5RCxJQUFBLGVBQVMsRUFDUCw4RkFBOEYsRUFDOUYsSUFBQSx5QkFBbUIsRUFBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25ELDJCQUEyQjtJQUMzQixNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRTtRQUNoRCxNQUFNLEVBQUU7WUFDTixzQkFBc0IsRUFBRSxTQUFTO1lBQ2pDLDJCQUEyQixFQUFFLG1CQUFtQjtTQUNqRDtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sU0FBUyxHQUFHLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUM7SUFFakMsTUFBTSxTQUFTLEdBQUc7UUFDaEIsWUFBWSxFQUFFO1lBQ1o7Z0JBQ0UsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO2dCQUMxQixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07Z0JBQ3hCLFNBQVMsRUFBRTtvQkFDVCxDQUFDLEdBQUcsU0FBUyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsU0FBUyxtQkFBbUI7b0JBQ2xFLENBQUMsR0FBRyxTQUFTLDZCQUE2QixDQUFDLEVBQUUsR0FBRyxTQUFTLDZCQUE2QjtpQkFDdkY7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUVGLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RSxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFFM0Qsc0RBQXNEO0lBQ3RELE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUN2QyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLGFBQWEsRUFBRSxDQUFDO1FBQy9FLFlBQVksRUFBRSxJQUFJO1FBQ2xCLHFEQUFxRDtRQUNyRCw4Q0FBOEM7UUFDOUMsTUFBTSxFQUFFO1lBQ04sc0JBQXNCLEVBQUUsU0FBUztZQUNqQywyQkFBMkIsRUFBRSxtQkFBbUI7U0FDakQ7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFFbEQsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDNUQsSUFBSSxxREFBNkIsQ0FBQztRQUNoQyxTQUFTLEVBQUUsU0FBUztLQUNyQixDQUFDLENBQ0gsQ0FBQztJQUVGLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ2xDLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FDekMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFrQixFQUFFLFFBQVEsQ0FBNEIsQ0FDakYsQ0FDRixDQUFDO0lBRUYsTUFBTSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFELE1BQU0sQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFaEQsMkdBQTJHO0lBQzNHLG9EQUFvRDtJQUNwRCxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUQsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQVFGLFNBQWdCLG1CQUFtQixDQUFDLFFBQWdCO0lBQ2xELDhFQUE4RTtJQUM5RSxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLDBCQUEwQjtJQUN4RCxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFDLHFFQUFxRTtJQUNyRSxPQUFPO1FBQ0wsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDbkIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDcEIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7S0FDdkIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdub2RlOmZzJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ25vZGU6b3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHR5cGUgeyBTdGFja1Jlc291cmNlIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aFNwZWNpZmljRml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5cbmludGVnVGVzdChcbiAgJ2NkayByZWZhY3RvciAtIGRldGVjdHMgcmVmYWN0b3JpbmcgY2hhbmdlcyBhbmQgZXhlY3V0ZXMgdGhlIHJlZmFjdG9yLCBvdmVycmlkaW5nIGFtYmlndWl0aWVzJyxcbiAgd2l0aFNwZWNpZmljRml4dHVyZSgncmVmYWN0b3JpbmcnLCBhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIC8vIEZpcnN0LCBkZXBsb3kgdGhlIHN0YWNrc1xuICAgIGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdidWNrZXQtc3RhY2snKTtcbiAgICBjb25zdCBzdGFja0FybiA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KCdiYXNpYycsIHtcbiAgICAgIG1vZEVudjoge1xuICAgICAgICBCQVNJQ19RVUVVRV9MT0dJQ0FMX0lEOiAnT2xkTmFtZScsXG4gICAgICAgIEFERElUSU9OQUxfUVVFVUVfTE9HSUNBTF9JRDogJ0FkZGl0aW9uYWxPbGROYW1lJyxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdGFja0luZm8gPSBnZXRTdGFja0luZm9Gcm9tQXJuKHN0YWNrQXJuKTtcbiAgICBjb25zdCBzdGFja05hbWUgPSBzdGFja0luZm8ubmFtZTtcblxuICAgIGNvbnN0IG92ZXJyaWRlcyA9IHtcbiAgICAgIGVudmlyb25tZW50czogW1xuICAgICAgICB7XG4gICAgICAgICAgYWNjb3VudDogc3RhY2tJbmZvLmFjY291bnQsXG4gICAgICAgICAgcmVnaW9uOiBzdGFja0luZm8ucmVnaW9uLFxuICAgICAgICAgIHJlc291cmNlczoge1xuICAgICAgICAgICAgW2Ake3N0YWNrTmFtZX0vT2xkTmFtZS9SZXNvdXJjZWBdOiBgJHtzdGFja05hbWV9L05ld05hbWUvUmVzb3VyY2VgLFxuICAgICAgICAgICAgW2Ake3N0YWNrTmFtZX0vQWRkaXRpb25hbE9sZE5hbWUvUmVzb3VyY2VgXTogYCR7c3RhY2tOYW1lfS9BZGRpdGlvbmFsTmV3TmFtZS9SZXNvdXJjZWAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfTtcblxuICAgIGNvbnN0IG92ZXJyaWRlc1BhdGggPSBwYXRoLmpvaW4ob3MudG1wZGlyKCksIGBvdmVycmlkZXMtJHtEYXRlLm5vdygpfS5qc29uYCk7XG4gICAgZnMud3JpdGVGaWxlU3luYyhvdmVycmlkZXNQYXRoLCBKU09OLnN0cmluZ2lmeShvdmVycmlkZXMpKTtcblxuICAgIC8vIFRoZW4gc2VlIGlmIHRoZSByZWZhY3RvcmluZyB0b29sIGRldGVjdHMgdGhlIGNoYW5nZVxuICAgIGNvbnN0IHN0ZEVyciA9IGF3YWl0IGZpeHR1cmUuY2RrUmVmYWN0b3Ioe1xuICAgICAgb3B0aW9uczogWyctLXVuc3RhYmxlPXJlZmFjdG9yJywgJy0tZm9yY2UnLCBgLS1vdmVycmlkZS1maWxlPSR7b3ZlcnJpZGVzUGF0aH1gXSxcbiAgICAgIGFsbG93RXJyRXhpdDogdHJ1ZSxcbiAgICAgIC8vIE1ha2luZyBzdXJlIHRoZSBzeW50aGVzaXplZCBzdGFjayBoYXMgYSBxdWV1ZSB3aXRoXG4gICAgICAvLyB0aGUgbmV3IG5hbWUgc28gdGhhdCBhIHJlZmFjdG9yIGlzIGRldGVjdGVkXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgQkFTSUNfUVVFVUVfTE9HSUNBTF9JRDogJ05ld05hbWUnLFxuICAgICAgICBBRERJVElPTkFMX1FVRVVFX0xPR0lDQUxfSUQ6ICdBZGRpdGlvbmFsTmV3TmFtZScsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgZXhwZWN0KHN0ZEVycikudG9NYXRjaCgnU3RhY2sgcmVmYWN0b3IgY29tcGxldGUnKTtcblxuICAgIGNvbnN0IHN0YWNrRGVzY3JpcHRpb24gPSBhd2FpdCBmaXh0dXJlLmF3cy5jbG91ZEZvcm1hdGlvbi5zZW5kKFxuICAgICAgbmV3IERlc2NyaWJlU3RhY2tSZXNvdXJjZXNDb21tYW5kKHtcbiAgICAgICAgU3RhY2tOYW1lOiBzdGFja05hbWUsXG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgY29uc3QgcmVzb3VyY2VzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgKHN0YWNrRGVzY3JpcHRpb24uU3RhY2tSZXNvdXJjZXMgPz8gW10pLm1hcChcbiAgICAgICAgKHJlc291cmNlKSA9PiBbcmVzb3VyY2UuTG9naWNhbFJlc291cmNlSWQhLCByZXNvdXJjZV0gYXMgW3N0cmluZywgU3RhY2tSZXNvdXJjZV0sXG4gICAgICApLFxuICAgICk7XG5cbiAgICBleHBlY3QocmVzb3VyY2VzLkFkZGl0aW9uYWxOZXdOYW1lRTJGQzVBNEMpLnRvQmVEZWZpbmVkKCk7XG4gICAgZXhwZWN0KHJlc291cmNlcy5OZXdOYW1lNTdCMTcxRkUpLnRvQmVEZWZpbmVkKCk7XG5cbiAgICAvLyBDbG91ZEZvcm1hdGlvbiBtYXkgY29tcGxldGUgdGhlIHJlZmFjdG9yaW5nLCB3aGlsZSB0aGUgc3RhY2sgaXMgc3RpbGwgaW4gdGhlIFwiVVBEQVRFX0lOX1BST0dSRVNTXCIgc3RhdGUuXG4gICAgLy8gR2l2ZSBpdCBhIGNvdXBsZSBvZiBzZWNvbmRzIHRvIGZpbmlzaCB0aGUgdXBkYXRlLlxuICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDIwMDApKTtcbiAgfSksXG4pO1xuXG5pbnRlcmZhY2UgU3RhY2tJbmZvIHtcbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhY2tJbmZvRnJvbUFybihzdGFja0Fybjogc3RyaW5nKTogU3RhY2tJbmZvIHtcbiAgLy8gRXhhbXBsZSBBUk46IGFybjphd3M6Y2xvdWRmb3JtYXRpb246cmVnaW9uOmFjY291bnQtaWQ6c3RhY2svc3RhY2stbmFtZS9ndWlkXG4gIGNvbnN0IGFyblBhcnRzID0gc3RhY2tBcm4uc3BsaXQoJzonKTtcbiAgY29uc3QgcmVzb3VyY2UgPSBhcm5QYXJ0c1s1XTsgLy8gXCJzdGFjay9zdGFjay1uYW1lL2d1aWRcIlxuICBjb25zdCByZXNvdXJjZVBhcnRzID0gcmVzb3VyY2Uuc3BsaXQoJy8nKTtcbiAgLy8gVGhlIHN0YWNrIG5hbWUgaXMgdGhlIHNlY29uZCBwYXJ0OiBbXCJzdGFja1wiLCBcInN0YWNrLW5hbWVcIiwgXCJndWlkXCJdXG4gIHJldHVybiB7XG4gICAgcmVnaW9uOiBhcm5QYXJ0c1szXSxcbiAgICBhY2NvdW50OiBhcm5QYXJ0c1s0XSxcbiAgICBuYW1lOiByZXNvdXJjZVBhcnRzWzFdLFxuICB9O1xufVxuIl19
|
|
@@ -28,7 +28,6 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
|
|
|
28
28
|
json: false,
|
|
29
29
|
debug: false,
|
|
30
30
|
staging: true,
|
|
31
|
-
notices: true,
|
|
32
31
|
['no-color']: false,
|
|
33
32
|
ci: expect.anything(), // changes based on where this is called
|
|
34
33
|
validation: true,
|
|
@@ -77,7 +76,6 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
|
|
|
77
76
|
json: false,
|
|
78
77
|
debug: false,
|
|
79
78
|
staging: true,
|
|
80
|
-
notices: true,
|
|
81
79
|
['no-color']: false,
|
|
82
80
|
ci: expect.anything(), // changes based on where this is called
|
|
83
81
|
validation: true,
|
|
@@ -119,4 +117,4 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
|
|
|
119
117
|
]);
|
|
120
118
|
fs.unlinkSync(telemetryFile);
|
|
121
119
|
}));
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXN5bnRoLXRlbGVtZXRyeS13aXRoLWVycm9ycy5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstc3ludGgtdGVsZW1ldHJ5LXdpdGgtZXJyb3JzLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0Isc0NBQTZEO0FBRTdELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCx1RUFBdUUsRUFDdkUsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RixNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLGFBQWEsRUFBRSxDQUFDLEVBQUU7UUFDdkcsWUFBWSxFQUFFLElBQUk7UUFDbEIsTUFBTSxFQUFFO1lBQ04sZUFBZSxFQUFFLG1CQUFtQjtTQUNyQztLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUU3QyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9C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RUFBRTtnQkFDakMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQzVCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLGFBQWEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNoQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFO2dCQUNyRCxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDekIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RDLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2FBQzdCLENBQUM7WUFDRixXQUFXLEVBQUU7Z0JBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JCLEVBQUUsRUFBRTtvQkFDRixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtvQkFDM0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7aUJBQzNCO2dCQUNELFdBQVcsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2FBQy9CO1lBQ0QsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDekI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLGVBQWU7YUFDdEI7U0FDRixDQUFDO0tBQ0gsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KFxuICAnY2RrIHN5bnRoIHdpdGggdGVsZW1ldHJ5IGFuZCB2YWxpZGF0aW9uIGVycm9yIGxlYWRzIHRvIGludm9rZSBmYWlsdXJlJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3QgdGVsZW1ldHJ5RmlsZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgYHRlbGVtZXRyeS0ke0RhdGUubm93KCl9Lmpzb25gKTtcbiAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNkayhbJ3N5bnRoJywgJy0tdW5zdGFibGU9dGVsZW1ldHJ5JywgYC0tdGVsZW1ldHJ5LWZpbGU9JHt0ZWxlbWV0cnlGaWxlfWBdLCB7XG4gICAgICBhbGxvd0VyckV4aXQ6IHRydWUsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgSU5URUdfU1RBQ0tfU0VUOiAnc3RhZ2Utd2l0aC1lcnJvcnMnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGV4cGVjdChvdXRwdXQpLnRvQ29udGFpbignVGhpcyBpcyBhbiBlcnJvcicpO1xuXG4gICAgY29uc3QganNvbiA9IGZzLnJlYWRKU09OU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgICBleHBlY3QoanNvbikudG9FcXVhbChbXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydzeW50aCddLFxuICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICB2ZXJib3NlOiAxLFxuICAgICAgICAgICAgICB1bnN0YWJsZTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBbJ3RlbGVtZXRyeS1maWxlJ106ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgbG9va3VwczogdHJ1ZSxcbiAgICAgICAgICAgICAgWydpZ25vcmUtZXJyb3JzJ106IGZhbHNlLFxuICAgICAgICAgICAgICBqc29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgZGVidWc6IGZhbHNlLFxuICAgICAgICAgICAgICBzdGFnaW5nOiB0cnVlLFxuICAgICAgICAgICAgICBub3RpY2VzOiB0cnVlLFxuICAgICAgICAgICAgICBbJ25vLWNvbG9yJ106IGZhbHNlLFxuICAgICAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksIC8vIGNoYW5nZXMgYmFzZWQgb24gd2hlcmUgdGhpcyBpcyBjYWxsZWRcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcXVpZXQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICBjb250ZXh0OiB7fSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3RhdGU6ICdTVUNDRUVERUQnLFxuICAgICAgICAgIGV2ZW50VHlwZTogJ1NZTlRIJyxcbiAgICAgICAgfSksXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgaW5zdGFsbGF0aW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHNlc3Npb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgdGVsZW1ldHJ5VmVyc2lvbjogJzEuMCcsXG4gICAgICAgICAgY2RrQ2xpVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgY2RrTGlicmFyeVZlcnNpb246IGZpeHR1cmUubGlicmFyeS5yZXF1ZXN0ZWRWZXJzaW9uKCksXG4gICAgICAgICAgcmVnaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjEnKSxcbiAgICAgICAgICB0aW1lc3RhbXA6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgb3M6IHtcbiAgICAgICAgICAgIHBsYXRmb3JtOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICAgIHJlbGVhc2U6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbm9kZVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9LFxuICAgICAgICBwcm9qZWN0OiB7fSxcbiAgICAgICAgZHVyYXRpb246IHtcbiAgICAgICAgICB0b3RhbDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgZXZlbnQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjb21tYW5kOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICBwYXRoOiBbJ3N5bnRoJ10sXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgIHZlcmJvc2U6IDEsXG4gICAgICAgICAgICAgIHVuc3RhYmxlOiAnPHJlZGFjdGVkPicsXG4gICAgICAgICAgICAgIFsndGVsZW1ldHJ5LWZpbGUnXTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBsb29rdXBzOiB0cnVlLFxuICAgICAgICAgICAgICBbJ2lnbm9yZS1lcnJvcnMnXTogZmFsc2UsXG4gICAgICAgICAgICAgIGpzb246IGZhbHNlLFxuICAgICAgICAgICAgICBkZWJ1ZzogZmFsc2UsXG4gICAgICAgICAgICAgIHN0YWdpbmc6IHRydWUsXG4gICAgICAgICAgICAgIG5vdGljZXM6IHRydWUsXG4gICAgICAgICAgICAgIFsnbm8tY29sb3InXTogZmFsc2UsXG4gICAgICAgICAgICAgIGNpOiBleHBlY3QuYW55dGhpbmcoKSwgLy8gY2hhbmdlcyBiYXNlZCBvbiB3aGVyZSB0aGlzIGlzIGNhbGxlZFxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICBxdWlldDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdGF0ZTogJ0ZBSUxFRCcsXG4gICAgICAgICAgZXZlbnRUeXBlOiAnSU5WT0tFJyxcbiAgICAgICAgfSksXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgaW5zdGFsbGF0aW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHNlc3Npb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgdGVsZW1ldHJ5VmVyc2lvbjogJzEuMCcsXG4gICAgICAgICAgY2RrQ2xpVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgY2RrTGlicmFyeVZlcnNpb246IGZpeHR1cmUubGlicmFyeS5yZXF1ZXN0ZWRWZXJzaW9uKCksXG4gICAgICAgICAgcmVnaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjInKSxcbiAgICAgICAgICB0aW1lc3RhbXA6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgb3M6IHtcbiAgICAgICAgICAgIHBsYXRmb3JtOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICAgIHJlbGVhc2U6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbm9kZVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9LFxuICAgICAgICBwcm9qZWN0OiB7fSxcbiAgICAgICAgZHVyYXRpb246IHtcbiAgICAgICAgICB0b3RhbDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgbmFtZTogJ0Fzc2VtYmx5RXJyb3InLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgXSk7XG4gICAgZnMudW5saW5rU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgfSksXG4pO1xuXG4iXX0=
|
|
120
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXN5bnRoLXRlbGVtZXRyeS13aXRoLWVycm9ycy5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstc3ludGgtdGVsZW1ldHJ5LXdpdGgtZXJyb3JzLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0Isc0NBQTZEO0FBRTdELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCx1RUFBdUUsRUFDdkUsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RixNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLGFBQWEsRUFBRSxDQUFDLEVBQUU7UUFDdkcsWUFBWSxFQUFFLElBQUk7UUFDbEIsTUFBTSxFQUFFO1lBQ04sZUFBZSxFQUFFLG1CQUFtQjtTQUNyQztLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUU3QyxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkIsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9CLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQztvQkFDZixVQUFVLEVBQUU7d0JBQ1YsT0FBTyxFQUFFLENBQUM7d0JBQ1YsUUFBUSxFQUFFLFlBQVk7d0JBQ3RCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxZQUFZO3dCQUNoQyxPQUFPLEVBQUUsSUFBSTt3QkFDYixDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUs7d0JBQ3hCLElBQUksRUFBRSxLQUFLO3dCQUNYLEtBQUssRUFBRSxLQUFLO3dCQUNaLE9BQU8sRUFBRSxJQUFJO3dCQUNiLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSzt3QkFDbkIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSx3Q0FBd0M7d0JBQy9ELFVBQVUsRUFBRSxJQUFJO3dCQUNoQixLQUFLLEVBQUUsS0FBSztxQkFDYjtvQkFDRCxNQUFNLEVBQUU7d0JBQ04sT0FBTyxFQUFFLEVBQUU7cUJBQ1o7aUJBQ0YsQ0FBQztnQkFDRixLQUFLLEVBQUUsV0FBVztnQkFDbEIsU0FBUyxFQUFFLE9BQU87YUFDbkIsQ0FBQztZQUNGLFdBQVcsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ25DLGNBQWMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNqQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDNUIsZ0JBQWdCLEVBQUUsS0FBSztnQkFDdkIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3JELE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDdEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDN0IsQ0FBQztZQUNGLFdBQVcsRUFBRTtnQkFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDckIsRUFBRSxFQUFFO29CQUNGLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUMzQixPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtpQkFDM0I7Z0JBQ0QsV0FBVyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDL0I7WUFDRCxPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTthQUN6QjtTQUNGLENBQUM7UUFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDL0IsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUNmLFVBQVUsRUFBRTt3QkFDVixPQUFPLEVBQUUsQ0FBQzt3QkFDVixRQUFRLEVBQUUsWUFBWTt3QkFDdEIsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLFlBQVk7d0JBQ2hDLE9BQU8sRUFBRSxJQUFJO3dCQUNiLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSzt3QkFDeEIsSUFBSSxFQUFFLEtBQUs7d0JBQ1gsS0FBSyxFQUFFLEtBQUs7d0JBQ1osT0FBTyxFQUFFLElBQUk7d0JBQ2IsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLO3dCQUNuQixFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLHdDQUF3Qzt3QkFDL0QsVUFBVSxFQUFFLElBQUk7d0JBQ2hCLEtBQUssRUFBRSxLQUFLO3FCQUNiO29CQUNELE1BQU0sRUFBRTt3QkFDTixPQUFPLEVBQUUsRUFBRTtxQkFDWjtpQkFDRixDQUFDO2dCQUNGLEtBQUssRUFBRSxRQUFRO2dCQUNmLFNBQVMsRUFBRSxRQUFRO2FBQ3BCLENBQUM7WUFDRixXQUFXLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuQyxjQUFjLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDakMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQzVCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLGFBQWEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNoQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFO2dCQUNyRCxNQUFNLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDekIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7Z0JBQ3RDLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2FBQzdCLENBQUM7WUFDRixXQUFXLEVBQUU7Z0JBQ1gsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JCLEVBQUUsRUFBRTtvQkFDRixRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtvQkFDM0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7aUJBQzNCO2dCQUNELFdBQVcsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2FBQy9CO1lBQ0QsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDekI7WUFDRCxLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLGVBQWU7YUFDdEI7U0FDRixDQUFDO0tBQ0gsQ0FBQyxDQUFDO0lBQ0gsRUFBRSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KFxuICAnY2RrIHN5bnRoIHdpdGggdGVsZW1ldHJ5IGFuZCB2YWxpZGF0aW9uIGVycm9yIGxlYWRzIHRvIGludm9rZSBmYWlsdXJlJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3QgdGVsZW1ldHJ5RmlsZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgYHRlbGVtZXRyeS0ke0RhdGUubm93KCl9Lmpzb25gKTtcbiAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNkayhbJ3N5bnRoJywgJy0tdW5zdGFibGU9dGVsZW1ldHJ5JywgYC0tdGVsZW1ldHJ5LWZpbGU9JHt0ZWxlbWV0cnlGaWxlfWBdLCB7XG4gICAgICBhbGxvd0VyckV4aXQ6IHRydWUsXG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgSU5URUdfU1RBQ0tfU0VUOiAnc3RhZ2Utd2l0aC1lcnJvcnMnLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGV4cGVjdChvdXRwdXQpLnRvQ29udGFpbignVGhpcyBpcyBhbiBlcnJvcicpO1xuXG4gICAgY29uc3QganNvbiA9IGZzLnJlYWRKU09OU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgICBleHBlY3QoanNvbikudG9FcXVhbChbXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydzeW50aCddLFxuICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICB2ZXJib3NlOiAxLFxuICAgICAgICAgICAgICB1bnN0YWJsZTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBbJ3RlbGVtZXRyeS1maWxlJ106ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgbG9va3VwczogdHJ1ZSxcbiAgICAgICAgICAgICAgWydpZ25vcmUtZXJyb3JzJ106IGZhbHNlLFxuICAgICAgICAgICAgICBqc29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgZGVidWc6IGZhbHNlLFxuICAgICAgICAgICAgICBzdGFnaW5nOiB0cnVlLFxuICAgICAgICAgICAgICBbJ25vLWNvbG9yJ106IGZhbHNlLFxuICAgICAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksIC8vIGNoYW5nZXMgYmFzZWQgb24gd2hlcmUgdGhpcyBpcyBjYWxsZWRcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcXVpZXQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICBjb250ZXh0OiB7fSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3RhdGU6ICdTVUNDRUVERUQnLFxuICAgICAgICAgIGV2ZW50VHlwZTogJ1NZTlRIJyxcbiAgICAgICAgfSksXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgaW5zdGFsbGF0aW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHNlc3Npb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgdGVsZW1ldHJ5VmVyc2lvbjogJzEuMCcsXG4gICAgICAgICAgY2RrQ2xpVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgY2RrTGlicmFyeVZlcnNpb246IGZpeHR1cmUubGlicmFyeS5yZXF1ZXN0ZWRWZXJzaW9uKCksXG4gICAgICAgICAgcmVnaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjEnKSxcbiAgICAgICAgICB0aW1lc3RhbXA6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgb3M6IHtcbiAgICAgICAgICAgIHBsYXRmb3JtOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICAgIHJlbGVhc2U6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbm9kZVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9LFxuICAgICAgICBwcm9qZWN0OiB7fSxcbiAgICAgICAgZHVyYXRpb246IHtcbiAgICAgICAgICB0b3RhbDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgZXZlbnQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjb21tYW5kOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICBwYXRoOiBbJ3N5bnRoJ10sXG4gICAgICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgIHZlcmJvc2U6IDEsXG4gICAgICAgICAgICAgIHVuc3RhYmxlOiAnPHJlZGFjdGVkPicsXG4gICAgICAgICAgICAgIFsndGVsZW1ldHJ5LWZpbGUnXTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBsb29rdXBzOiB0cnVlLFxuICAgICAgICAgICAgICBbJ2lnbm9yZS1lcnJvcnMnXTogZmFsc2UsXG4gICAgICAgICAgICAgIGpzb246IGZhbHNlLFxuICAgICAgICAgICAgICBkZWJ1ZzogZmFsc2UsXG4gICAgICAgICAgICAgIHN0YWdpbmc6IHRydWUsXG4gICAgICAgICAgICAgIFsnbm8tY29sb3InXTogZmFsc2UsXG4gICAgICAgICAgICAgIGNpOiBleHBlY3QuYW55dGhpbmcoKSwgLy8gY2hhbmdlcyBiYXNlZCBvbiB3aGVyZSB0aGlzIGlzIGNhbGxlZFxuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICBxdWlldDogZmFsc2UsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgIGNvbnRleHQ6IHt9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBzdGF0ZTogJ0ZBSUxFRCcsXG4gICAgICAgICAgZXZlbnRUeXBlOiAnSU5WT0tFJyxcbiAgICAgICAgfSksXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgaW5zdGFsbGF0aW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHNlc3Npb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgdGVsZW1ldHJ5VmVyc2lvbjogJzEuMCcsXG4gICAgICAgICAgY2RrQ2xpVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgY2RrTGlicmFyeVZlcnNpb246IGZpeHR1cmUubGlicmFyeS5yZXF1ZXN0ZWRWZXJzaW9uKCksXG4gICAgICAgICAgcmVnaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjInKSxcbiAgICAgICAgICB0aW1lc3RhbXA6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgb3M6IHtcbiAgICAgICAgICAgIHBsYXRmb3JtOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICAgIHJlbGVhc2U6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbm9kZVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9LFxuICAgICAgICBwcm9qZWN0OiB7fSxcbiAgICAgICAgZHVyYXRpb246IHtcbiAgICAgICAgICB0b3RhbDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgbmFtZTogJ0Fzc2VtYmx5RXJyb3InLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgXSk7XG4gICAgZnMudW5saW5rU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgfSksXG4pO1xuXG4iXX0=
|
|
@@ -22,7 +22,6 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
|
|
|
22
22
|
json: false,
|
|
23
23
|
debug: false,
|
|
24
24
|
staging: true,
|
|
25
|
-
notices: true,
|
|
26
25
|
['no-color']: false,
|
|
27
26
|
ci: expect.anything(), // changes based on where this is called
|
|
28
27
|
validation: true,
|
|
@@ -72,7 +71,6 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
|
|
|
72
71
|
json: false,
|
|
73
72
|
debug: false,
|
|
74
73
|
staging: true,
|
|
75
|
-
notices: true,
|
|
76
74
|
['no-color']: false,
|
|
77
75
|
ci: expect.anything(), // changes based on where this is called
|
|
78
76
|
validation: true,
|
|
@@ -111,4 +109,4 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
|
|
|
111
109
|
]);
|
|
112
110
|
fs.unlinkSync(telemetryFile);
|
|
113
111
|
}));
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXN5bnRoLXRlbGVtZXRyeS5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstc3ludGgtdGVsZW1ldHJ5LmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0Isc0NBQTZEO0FBRTdELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCwrQkFBK0IsRUFDL0IsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNILE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDNUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNuQixNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDL0IsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztvQkFDNUIsVUFBVSxFQUFFO3dCQUNWLE9BQU8sRUFBRSxDQUFDO3dCQUNWLFFBQVEsRUFBRSxZQUFZO3dCQUN0QixDQUFDLGdCQUFnQixDQUFDLEVBQUUsWUFBWTt3QkFDaEMsT0FBTyxFQUFFLElBQUk7d0JBQ2IsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLO3dCQUN4QixJQUFJLEVBQUUsS0FBSzt3QkFDWCxLQUFLLEVBQUUsS0FBSzt3QkFDWixPQUFPLEVBQUUsSUFBSTt3QkFDYixDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUs7d0JBQ25CLEVBQUUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLEVBQUUsd0NBQXdDO3dCQUMvRCxVQUFVLEVBQUUsSUFBSTt3QkFDaEIsS0FBSyxFQUFFLEtBQUs7cUJBQ2I7b0JBQ0QsTUFBTSxFQUFFO3dCQUNOLE9BQU8sRUFBRSxFQUFFO3FCQUNaO2lCQUNGLENBQUM7Z0JBQ0YsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLFNBQVMsRUFBRSxPQUFPO2FBQ25CLENBQUM7WUFDRixzRUFBc0U7WUFDdEUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDbkMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pDLFNBQVMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUM1QixnQkFBZ0IsRUFBRSxLQUFLO2dCQUN2QixhQUFhLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDaEMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDckQsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3pCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2dCQUN0QyxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTthQUM3QixDQUFDO1lBQ0YsV0FBVyxFQUFFO2dCQUNYLEVBQUUsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNyQixFQUFFLEVBQUU7b0JBQ0YsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7b0JBQzNCLE9BQU8sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2lCQUMzQjtnQkFDRCxXQUFXLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTthQUMvQjtZQUNELE9BQU8sRUFBRSxFQUFFO1lBQ1gsUUFBUSxFQUFFO2dCQUNSLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2FBQ3pCO1NBQ0YsQ0FBQztRQUNGLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztZQUN0QixLQUFLLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUM3QixPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO29CQUMvQixJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO29CQUM1QixVQUFVLEVBQUU7d0JBQ1YsT0FBTyxFQUFFLENBQUM7d0JBQ1YsUUFBUSxFQUFFLFlBQVk7d0JBQ3RCLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxZQUFZO3dCQUNoQyxPQUFPLEVBQUUsSUFBSTt3QkFDYixDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUs7d0JBQ3hCLElBQUksRUFBRSxLQUFLO3dCQUNYLEtBQUssRUFBRSxLQUFLO3dCQUNaLE9BQU8sRUFBRSxJQUFJO3dCQUNiLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSzt3QkFDbkIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSx3Q0FBd0M7d0JBQy9ELFVBQVUsRUFBRSxJQUFJO3dCQUNoQixLQUFLLEVBQUUsS0FBSztxQkFDYjtvQkFDRCxNQUFNLEVBQUU7d0JBQ04sT0FBTyxFQUFFLEVBQUU7cUJBQ1o7aUJBQ0YsQ0FBQztnQkFDRixLQUFLLEVBQUUsV0FBVztnQkFDbEIsU0FBUyxFQUFFLFFBQVE7YUFDcEIsQ0FBQztZQUNGLFdBQVcsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ25DLGNBQWMsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNqQyxTQUFTLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDNUIsZ0JBQWdCLEVBQUUsS0FBSztnQkFDdkIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ2hDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3JELE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUN6QixPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDdEMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDN0IsQ0FBQztZQUNGLFdBQVcsRUFBRTtnQkFDWCxFQUFFLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtnQkFDckIsRUFBRSxFQUFFO29CQUNGLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUMzQixPQUFPLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTtpQkFDM0I7Z0JBQ0QsV0FBVyxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7YUFDL0I7WUFDRCxPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRTtnQkFDUixLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRTthQUN6QjtTQUNGLENBQUM7S0FDSCxDQUFDLENBQUM7SUFDSCxFQUFFLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgc3ludGggd2l0aCB0ZWxlbWV0cnkgZGF0YScsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHRlbGVtZXRyeUZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIGB0ZWxlbWV0cnktJHtEYXRlLm5vdygpfS5qc29uYCk7XG4gICAgYXdhaXQgZml4dHVyZS5jZGsoWydzeW50aCcsIGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgndGVzdC0xJyksICctLXVuc3RhYmxlPXRlbGVtZXRyeScsIGAtLXRlbGVtZXRyeS1maWxlPSR7dGVsZW1ldHJ5RmlsZX1gXSk7XG4gICAgY29uc3QganNvbiA9IGZzLnJlYWRKU09OU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgICBleHBlY3QoanNvbikudG9FcXVhbChbXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydzeW50aCcsICckU1RBQ0tTXzEnXSxcbiAgICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgdmVyYm9zZTogMSxcbiAgICAgICAgICAgICAgdW5zdGFibGU6ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgWyd0ZWxlbWV0cnktZmlsZSddOiAnPHJlZGFjdGVkPicsXG4gICAgICAgICAgICAgIGxvb2t1cHM6IHRydWUsXG4gICAgICAgICAgICAgIFsnaWdub3JlLWVycm9ycyddOiBmYWxzZSxcbiAgICAgICAgICAgICAganNvbjogZmFsc2UsXG4gICAgICAgICAgICAgIGRlYnVnOiBmYWxzZSxcbiAgICAgICAgICAgICAgc3RhZ2luZzogdHJ1ZSxcbiAgICAgICAgICAgICAgWyduby1jb2xvciddOiBmYWxzZSxcbiAgICAgICAgICAgICAgY2k6IGV4cGVjdC5hbnl0aGluZygpLCAvLyBjaGFuZ2VzIGJhc2VkIG9uIHdoZXJlIHRoaXMgaXMgY2FsbGVkXG4gICAgICAgICAgICAgIHZhbGlkYXRpb246IHRydWUsXG4gICAgICAgICAgICAgIHF1aWV0OiBmYWxzZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgY29udGV4dDoge30sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdTWU5USCcsXG4gICAgICAgIH0pLFxuICAgICAgICAvLyBzb21lIG9mIHRoZXNlIGNhbiBjaGFuZ2U7IGJ1dCB3ZSBhc3NlcnQgdGhhdCBzb21lIHZhbHVlIGlzIHJlY29yZGVkXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgaW5zdGFsbGF0aW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHNlc3Npb25JZDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgdGVsZW1ldHJ5VmVyc2lvbjogJzEuMCcsXG4gICAgICAgICAgY2RrQ2xpVmVyc2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgY2RrTGlicmFyeVZlcnNpb246IGZpeHR1cmUubGlicmFyeS5yZXF1ZXN0ZWRWZXJzaW9uKCksXG4gICAgICAgICAgcmVnaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjEnKSxcbiAgICAgICAgICB0aW1lc3RhbXA6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9KSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgb3M6IHtcbiAgICAgICAgICAgIHBsYXRmb3JtOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICAgIHJlbGVhc2U6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbm9kZVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9LFxuICAgICAgICBwcm9qZWN0OiB7fSxcbiAgICAgICAgZHVyYXRpb246IHtcbiAgICAgICAgICB0b3RhbDogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgZXZlbnQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBjb21tYW5kOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgICBwYXRoOiBbJ3N5bnRoJywgJyRTVEFDS1NfMSddLFxuICAgICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICB2ZXJib3NlOiAxLFxuICAgICAgICAgICAgICB1bnN0YWJsZTogJzxyZWRhY3RlZD4nLFxuICAgICAgICAgICAgICBbJ3RlbGVtZXRyeS1maWxlJ106ICc8cmVkYWN0ZWQ+JyxcbiAgICAgICAgICAgICAgbG9va3VwczogdHJ1ZSxcbiAgICAgICAgICAgICAgWydpZ25vcmUtZXJyb3JzJ106IGZhbHNlLFxuICAgICAgICAgICAgICBqc29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgZGVidWc6IGZhbHNlLFxuICAgICAgICAgICAgICBzdGFnaW5nOiB0cnVlLFxuICAgICAgICAgICAgICBbJ25vLWNvbG9yJ106IGZhbHNlLFxuICAgICAgICAgICAgICBjaTogZXhwZWN0LmFueXRoaW5nKCksIC8vIGNoYW5nZXMgYmFzZWQgb24gd2hlcmUgdGhpcyBpcyBjYWxsZWRcbiAgICAgICAgICAgICAgdmFsaWRhdGlvbjogdHJ1ZSxcbiAgICAgICAgICAgICAgcXVpZXQ6IGZhbHNlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICBjb250ZXh0OiB7fSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3RhdGU6ICdTVUNDRUVERUQnLFxuICAgICAgICAgIGV2ZW50VHlwZTogJ0lOVk9LRScsXG4gICAgICAgIH0pLFxuICAgICAgICBpZGVudGlmaWVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGluc3RhbGxhdGlvbklkOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICBzZXNzaW9uSWQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIHRlbGVtZXRyeVZlcnNpb246ICcxLjAnLFxuICAgICAgICAgIGNka0NsaVZlcnNpb246IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIGNka0xpYnJhcnlWZXJzaW9uOiBmaXh0dXJlLmxpYnJhcnkucmVxdWVzdGVkVmVyc2lvbigpLFxuICAgICAgICAgIHJlZ2lvbjogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgZXZlbnRJZDogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJzoyJyksXG4gICAgICAgICAgdGltZXN0YW1wOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSksXG4gICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgY2k6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICAgIG9zOiB7XG4gICAgICAgICAgICBwbGF0Zm9ybTogZXhwZWN0LmFueXRoaW5nKCksXG4gICAgICAgICAgICByZWxlYXNlOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG5vZGVWZXJzaW9uOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJvamVjdDoge30sXG4gICAgICAgIGR1cmF0aW9uOiB7XG4gICAgICAgICAgdG90YWw6IGV4cGVjdC5hbnl0aGluZygpLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgXSk7XG4gICAgZnMudW5saW5rU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgfSksXG4pO1xuIl19
|