@aws-cdk-testing/cli-integ 3.35.1 → 3.36.1
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 +1 -1
- package/package.json +2 -2
- package/tests/cli-integ-tests/output/cdk-ci-true-output-to-stdout.integtest.js +10 -5
- package/tests/cli-integ-tests/validate/cdk-validate-reports-violations.integtest.js +2 -2
- package/tests/init-typescript-app/init-typescript-app.integtest.js +10 -4
package/npm-shrinkwrap.json
CHANGED
package/package.json
CHANGED
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"organization": true
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@aws-cdk/toolkit-lib": "1.
|
|
42
|
+
"@aws-cdk/toolkit-lib": "1.36.0",
|
|
43
43
|
"@aws-cdk/yarn-cling": "0.0.0",
|
|
44
44
|
"@cdklabs/eslint-plugin": "^2.0.11",
|
|
45
45
|
"@stylistic/eslint-plugin": "^3",
|
|
@@ -126,7 +126,7 @@
|
|
|
126
126
|
"publishConfig": {
|
|
127
127
|
"access": "public"
|
|
128
128
|
},
|
|
129
|
-
"version": "3.
|
|
129
|
+
"version": "3.36.1",
|
|
130
130
|
"packageManager": "yarn@4.13.0",
|
|
131
131
|
"types": "lib/index.d.ts",
|
|
132
132
|
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"yarn projen\"."
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const lib_1 = require("../../../lib");
|
|
4
|
-
(0, lib_1.integTest)('ci=true output to stdout',
|
|
4
|
+
(0, lib_1.integTest)('ci=true output to stdout',
|
|
5
|
+
// We need to use an app that we are sure is not going to lead to
|
|
6
|
+
// CloudFormation-Validate warnings, because those will interfere
|
|
7
|
+
// with the stdout/stderr checks.
|
|
8
|
+
(0, lib_1.withSpecificFixture)('simple-app', async (fixture) => {
|
|
5
9
|
const execOptions = {
|
|
6
10
|
captureStderr: true,
|
|
7
11
|
onlyStderr: true,
|
|
@@ -18,11 +22,12 @@ const lib_1 = require("../../../lib");
|
|
|
18
22
|
},
|
|
19
23
|
options: ['--no-notices'],
|
|
20
24
|
};
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
25
|
+
const stackName = 'simple-1';
|
|
26
|
+
const deployOutput = await fixture.cdkDeploy(stackName, execOptions);
|
|
27
|
+
const diffOutput = await fixture.cdk(['diff', '--no-notices', fixture.fullStackName(stackName)], execOptions);
|
|
28
|
+
const destroyOutput = await fixture.cdkDestroy(stackName, execOptions);
|
|
24
29
|
expect(deployOutput).toEqual('');
|
|
25
30
|
expect(destroyOutput).toEqual('');
|
|
26
31
|
expect(diffOutput).toEqual('');
|
|
27
32
|
}));
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNpLXRydWUtb3V0cHV0LXRvLXN0ZG91dC5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstY2ktdHJ1ZS1vdXRwdXQtdG8tc3Rkb3V0LmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLHNDQUE4RDtBQUU5RCxJQUFBLGVBQVMsRUFDUCwwQkFBMEI7QUFFMUIsaUVBQWlFO0FBQ2pFLGlFQUFpRTtBQUNqRSxpQ0FBaUM7QUFDakMsSUFBQSx5QkFBbUIsRUFBQyxZQUFZLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ2xELE1BQU0sV0FBVyxHQUFrQjtRQUNqQyxhQUFhLEVBQUUsSUFBSTtRQUNuQixVQUFVLEVBQUUsSUFBSTtRQUNoQixNQUFNLEVBQUU7WUFDTixFQUFFLEVBQUUsTUFBTTtZQUVWLHVDQUF1QztZQUN2Qyw4Q0FBOEMsRUFBRSxNQUFNO1lBQ3RELDBDQUEwQyxFQUFFLE1BQU07WUFDbEQsNENBQTRDLEVBQUUsTUFBTTtZQUVwRCxnRkFBZ0Y7WUFDaEYsZUFBZSxFQUFFLE9BQU87WUFFeEIsMkVBQTJFO1lBQzNFLGdCQUFnQixFQUFFLEdBQUc7U0FDdEI7UUFDRCxPQUFPLEVBQUUsQ0FBQyxjQUFjLENBQUM7S0FDMUIsQ0FBQztJQUVGLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQztJQUU3QixNQUFNLFlBQVksR0FBRyxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sVUFBVSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzlHLE1BQU0sYUFBYSxHQUFHLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNqQyxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2RrQ2xpT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhTcGVjaWZpY0ZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5pbnRlZ1Rlc3QoXG4gICdjaT10cnVlIG91dHB1dCB0byBzdGRvdXQnLFxuXG4gIC8vIFdlIG5lZWQgdG8gdXNlIGFuIGFwcCB0aGF0IHdlIGFyZSBzdXJlIGlzIG5vdCBnb2luZyB0byBsZWFkIHRvXG4gIC8vIENsb3VkRm9ybWF0aW9uLVZhbGlkYXRlIHdhcm5pbmdzLCBiZWNhdXNlIHRob3NlIHdpbGwgaW50ZXJmZXJlXG4gIC8vIHdpdGggdGhlIHN0ZG91dC9zdGRlcnIgY2hlY2tzLlxuICB3aXRoU3BlY2lmaWNGaXh0dXJlKCdzaW1wbGUtYXBwJywgYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBjb25zdCBleGVjT3B0aW9uczogQ2RrQ2xpT3B0aW9ucyA9IHtcbiAgICAgIGNhcHR1cmVTdGRlcnI6IHRydWUsXG4gICAgICBvbmx5U3RkZXJyOiB0cnVlLFxuICAgICAgbW9kRW52OiB7XG4gICAgICAgIENJOiAndHJ1ZScsXG5cbiAgICAgICAgLy8gRGlzYWJsZSBhbGwgTm9kZS5qcyB2ZXJzaW9uIHdhcm5pbmdzXG4gICAgICAgIEpTSUlfU0lMRU5DRV9XQVJOSU5HX0tOT1dOX0JST0tFTl9OT0RFX1ZFUlNJT046ICd0cnVlJyxcbiAgICAgICAgSlNJSV9TSUxFTkNFX1dBUk5JTkdfVU5URVNURURfTk9ERV9WRVJTSU9OOiAndHJ1ZScsXG4gICAgICAgIEpTSUlfU0lMRU5DRV9XQVJOSU5HX0RFUFJFQ0FURURfTk9ERV9WRVJTSU9OOiAndHJ1ZScsXG5cbiAgICAgICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHdhcm4gb24gdXNlIG9mIGRlcHJlY2F0ZWQgQVBJcyAodGhhdCBjYW5ub3QgYmUgcmVkaXJlY3RlZClcbiAgICAgICAgSlNJSV9ERVBSRUNBVEVEOiAncXVpZXQnLFxuXG4gICAgICAgIC8vIFN1cHByZXNzIE5vZGUuanMgcHJvY2VzcyB3YXJuaW5ncyAoZS5nLiBmcy1leHRyYSBjb21wYXRpYmlsaXR5IHdhcm5pbmdzKVxuICAgICAgICBOT0RFX05PX1dBUk5JTkdTOiAnMScsXG4gICAgICB9LFxuICAgICAgb3B0aW9uczogWyctLW5vLW5vdGljZXMnXSxcbiAgICB9O1xuXG4gICAgY29uc3Qgc3RhY2tOYW1lID0gJ3NpbXBsZS0xJztcblxuICAgIGNvbnN0IGRlcGxveU91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrRGVwbG95KHN0YWNrTmFtZSwgZXhlY09wdGlvbnMpO1xuICAgIGNvbnN0IGRpZmZPdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNkayhbJ2RpZmYnLCAnLS1uby1ub3RpY2VzJywgZml4dHVyZS5mdWxsU3RhY2tOYW1lKHN0YWNrTmFtZSldLCBleGVjT3B0aW9ucyk7XG4gICAgY29uc3QgZGVzdHJveU91dHB1dCA9IGF3YWl0IGZpeHR1cmUuY2RrRGVzdHJveShzdGFja05hbWUsIGV4ZWNPcHRpb25zKTtcbiAgICBleHBlY3QoZGVwbG95T3V0cHV0KS50b0VxdWFsKCcnKTtcbiAgICBleHBlY3QoZGVzdHJveU91dHB1dCkudG9FcXVhbCgnJyk7XG4gICAgZXhwZWN0KGRpZmZPdXRwdXQpLnRvRXF1YWwoJycpO1xuICB9KSxcbik7XG5cbiJdfQ==
|
|
@@ -12,6 +12,6 @@ const lib_1 = require("../../../lib");
|
|
|
12
12
|
expect(output).toContain('SecurityPlugin');
|
|
13
13
|
// Construct Annotations plugin picks up the addWarningV2
|
|
14
14
|
expect(output).toContain('This bucket has no lifecycle rules configured');
|
|
15
|
-
expect(output).toContain('
|
|
15
|
+
expect(output).toContain('Annotation');
|
|
16
16
|
}));
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXZhbGlkYXRlLXJlcG9ydHMtdmlvbGF0aW9ucy5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstdmFsaWRhdGUtcmVwb3J0cy12aW9sYXRpb25zLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHNDQUE4RDtBQUU5RCxJQUFBLGVBQVMsRUFDUCxpQ0FBaUMsRUFDakMsSUFBQSx5QkFBbUIsRUFBQyxjQUFjLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ3BELE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDOUIsQ0FBQyxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUN0RTtRQUNFLFlBQVksRUFBRSxJQUFJO0tBQ25CLENBQ0YsQ0FBQztJQUVGLDRCQUE0QjtJQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFDdkUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO0lBQ2hGLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsK0RBQStELENBQUMsQ0FBQztJQUMxRixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFM0MseURBQXlEO0lBQ3pELE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLENBQUMsK0NBQStDLENBQUMsQ0FBQztJQUMxRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhTcGVjaWZpY0ZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5pbnRlZ1Rlc3QoXG4gICdjZGsgdmFsaWRhdGUgcmVwb3J0cyB2aW9sYXRpb25zJyxcbiAgd2l0aFNwZWNpZmljRml4dHVyZSgndmFsaWRhdGUtYXBwJywgYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBjb25zdCBvdXRwdXQgPSBhd2FpdCBmaXh0dXJlLmNkayhcbiAgICAgIFsnLS11bnN0YWJsZT12YWxpZGF0ZScsICd2YWxpZGF0ZScsIGZpeHR1cmUuZnVsbFN0YWNrTmFtZSgndmFsaWRhdGUnKV0sXG4gICAgICB7XG4gICAgICAgIGFsbG93RXJyRXhpdDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIC8vIFNlY3VyaXR5UGx1Z2luIHZpb2xhdGlvbnNcbiAgICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oJ1MzIEJ1Y2tldHMgbXVzdCBub3QgYmUgcHVibGljbHkgYWNjZXNzaWJsZScpO1xuICAgIGV4cGVjdChvdXRwdXQpLnRvQ29udGFpbignUzMgQnVja2V0cyBtdXN0IGhhdmUgc2VydmVyLXNpZGUgZW5jcnlwdGlvbiBlbmFibGVkJyk7XG4gICAgZXhwZWN0KG91dHB1dCkudG9Db250YWluKCdTMyBCdWNrZXRzIHNob3VsZCBoYXZlIHZlcnNpb25pbmcgZW5hYmxlZCBmb3IgZGF0YSBwcm90ZWN0aW9uJyk7XG4gICAgZXhwZWN0KG91dHB1dCkudG9Db250YWluKCdTZWN1cml0eVBsdWdpbicpO1xuXG4gICAgLy8gQ29uc3RydWN0IEFubm90YXRpb25zIHBsdWdpbiBwaWNrcyB1cCB0aGUgYWRkV2FybmluZ1YyXG4gICAgZXhwZWN0KG91dHB1dCkudG9Db250YWluKCdUaGlzIGJ1Y2tldCBoYXMgbm8gbGlmZWN5Y2xlIHJ1bGVzIGNvbmZpZ3VyZWQnKTtcbiAgICBleHBlY3Qob3V0cHV0KS50b0NvbnRhaW4oJ0Fubm90YXRpb24nKTtcbiAgfSksXG4pO1xuIl19
|
|
@@ -66,9 +66,9 @@ TYPESCRIPT_VERSIONS.forEach(tsVersion => {
|
|
|
66
66
|
// Necessary because recent versions of ts-jest require TypeScript>=4.3 but we
|
|
67
67
|
// still want to test with older versions as well.
|
|
68
68
|
await removeDevDependencies(context);
|
|
69
|
-
|
|
70
|
-
//
|
|
71
|
-
await shell.shell(['npm', 'install', '--save-dev', '
|
|
69
|
+
// The generated app type-checks with `tsc` and runs through `tsx`, so those
|
|
70
|
+
// two packages are the only toolchain needed for `cdk synth`.
|
|
71
|
+
await shell.shell(['npm', 'install', '--save-dev', `typescript@${tsVersion}`, 'tsx@^4']);
|
|
72
72
|
await shell.shell(['npm', 'install']); // Older versions of npm require this to be a separate step from the one above
|
|
73
73
|
await shell.shell(['npx', 'tsc', '--version']);
|
|
74
74
|
await shell.shell(['npm', 'prune']);
|
|
@@ -84,5 +84,11 @@ async function removeDevDependencies(context) {
|
|
|
84
84
|
const pj = JSON.parse(await fs_1.promises.readFile(filename, { encoding: 'utf-8' }));
|
|
85
85
|
delete pj.devDependencies;
|
|
86
86
|
await fs_1.promises.writeFile(filename, JSON.stringify(pj, undefined, 2), { encoding: 'utf-8' });
|
|
87
|
+
// The generated tsconfig explicitly lists the @types packages we just removed;
|
|
88
|
+
// with them gone, tsc would fail on the missing type definition files.
|
|
89
|
+
const tsconfigFilename = path.join(context.integTestDir, 'tsconfig.json');
|
|
90
|
+
const tsconfig = JSON.parse(await fs_1.promises.readFile(tsconfigFilename, { encoding: 'utf-8' }));
|
|
91
|
+
delete tsconfig.compilerOptions.types;
|
|
92
|
+
await fs_1.promises.writeFile(tsconfigFilename, JSON.stringify(tsconfig, undefined, 2), { encoding: 'utf-8' });
|
|
87
93
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC10eXBlc2NyaXB0LWFwcC5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbml0LXR5cGVzY3JpcHQtYXBwLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJCQUFvQztBQUNwQywyQ0FBNkI7QUFFN0IsbUNBQXlGO0FBQ3pGLHVDQUE4RjtBQUU5RixDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUU7SUFDdkMsSUFBQSxlQUFTLEVBQUMsbUJBQW1CLFFBQVEsRUFBRSxFQUFFLElBQUEsNEJBQXNCLEVBQUMsSUFBQSxrQkFBWSxFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUM3RixNQUFNLEtBQUssR0FBRyxpQkFBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMvQyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUVyQyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRXRILE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsa0ZBQWtGO1FBRXBILE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsb0RBQW9EO1FBQ3RGLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUss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QUM7SUFDakUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLGFBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxRSxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7SUFDMUIsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUV0RiwrRUFBK0U7SUFDL0UsdUVBQXVFO0lBQ3ZFLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxhQUFFLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RixPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQ3RDLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUN0RyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHR5cGUgeyBUZW1wb3JhcnlEaXJlY3RvcnlDb250ZXh0IH0gZnJvbSAnLi4vLi4vbGliJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aFRlbXBvcmFyeURpcmVjdG9yeSwgU2hlbGxIZWxwZXIsIHdpdGhQYWNrYWdlcyB9IGZyb20gJy4uLy4uL2xpYic7XG5pbXBvcnQgeyB0eXBlc2NyaXB0VmVyc2lvbnNTeW5jLCB0eXBlc2NyaXB0VmVyc2lvbnNZb3VuZ2VyVGhhbkRheXNTeW5jIH0gZnJvbSAnLi4vLi4vbGliL25wbSc7XG5cblsnYXBwJywgJ3NhbXBsZS1hcHAnXS5mb3JFYWNoKHRlbXBsYXRlID0+IHtcbiAgaW50ZWdUZXN0KGB0eXBlc2NyaXB0IGluaXQgJHt0ZW1wbGF0ZX1gLCB3aXRoVGVtcG9yYXJ5RGlyZWN0b3J5KHdpdGhQYWNrYWdlcyhhc3luYyAoY29udGV4dCkgPT4ge1xuICAgIGNvbnN0IHNoZWxsID0gU2hlbGxIZWxwZXIuZnJvbUNvbnRleHQoY29udGV4dCk7XG4gICAgYXdhaXQgY29udGV4dC5jbGkubWFrZUNsaUF2YWlsYWJsZSgpO1xuXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnaW5pdCcsICctLWxpYi12ZXJzaW9uJywgY29udGV4dC5saWJyYXJ5LnJlcXVlc3RlZFZlcnNpb24oKSwgJy1sJywgJ3R5cGVzY3JpcHQnLCB0ZW1wbGF0ZV0pO1xuXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAnY2knXSk7IC8vIHRoaXMgd2lsbCBmYWlsIGlmIHdlIGhhdmUgYnVuZGxlZCBkZXBlbmRlbmNpZXMgdGhhdCBpbnRyb2R1Y2UgdmVyc2lvbiBjb25mbGljdHNcblxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ3BydW5lJ10pO1xuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ2xzJ10pOyAvLyB0aGlzIHdpbGwgZmFpbCBpZiB3ZSBoYXZlIHVubWV0IHBlZXIgZGVwZW5kZW5jaWVzXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAncnVuJywgJ2J1aWxkJ10pO1xuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ3J1bicsICd0ZXN0J10pO1xuXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnc3ludGgnXSk7XG4gIH0pKSwgMzAwXzAwMCk7XG59KTtcblxuLy8gU2FtZSBhcyBodHRwczovL2dpdGh1Yi5jb20vRGVmaW5pdGVseVR5cGVkL0RlZmluaXRlbHlUeXBlZD90YWI9cmVhZG1lLW92LWZpbGUjc3VwcG9ydC13aW5kb3dcbmNvbnN0IFRZUEVTQ1JJUFRfVkVSU0lPTl9BR0VfREFZUyA9IDIgKiAzNjU7XG5cbmNvbnN0IFRZUEVTQ1JJUFRfVkVSU0lPTlMgPSB0eXBlc2NyaXB0VmVyc2lvbnNZb3VuZ2VyVGhhbkRheXNTeW5jKFRZUEVTQ1JJUFRfVkVSU0lPTl9BR0VfREFZUywgdHlwZXNjcmlwdFZlcnNpb25zU3luYygpKTtcblxuLyoqXG4gKiBUZXN0IG91ciBnZW5lcmF0ZWQgY29kZSB3aXRoIHZhcmlvdXMgdmVyc2lvbnMgb2YgVHlwZVNjcmlwdFxuICovXG5UWVBFU0NSSVBUX1ZFUlNJT05TLmZvckVhY2godHNWZXJzaW9uID0+IHtcbiAgaW50ZWdUZXN0KGB0eXBlc2NyaXB0ICR7dHNWZXJzaW9ufSBpbml0IGFwcGAsIHdpdGhUZW1wb3JhcnlEaXJlY3Rvcnkod2l0aFBhY2thZ2VzKGFzeW5jIChjb250ZXh0KSA9PiB7XG4gICAgY29uc3Qgc2hlbGwgPSBTaGVsbEhlbHBlci5mcm9tQ29udGV4dChjb250ZXh0KTtcbiAgICBhd2FpdCBjb250ZXh0LmNsaS5tYWtlQ2xpQXZhaWxhYmxlKCk7XG5cbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25vZGUnLCAnLS12ZXJzaW9uJ10pO1xuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJy0tdmVyc2lvbiddKTtcblxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnY2RrJywgJ2luaXQnLCAnLS1saWItdmVyc2lvbicsIGNvbnRleHQubGlicmFyeS5yZXF1ZXN0ZWRWZXJzaW9uKCksICctbCcsICd0eXBlc2NyaXB0JywgJ2FwcCcsICctLWdlbmVyYXRlLW9ubHknXSk7XG5cbiAgICAvLyBOZWNlc3NhcnkgYmVjYXVzZSByZWNlbnQgdmVyc2lvbnMgb2YgdHMtamVzdCByZXF1aXJlIFR5cGVTY3JpcHQ+PTQuMyBidXQgd2VcbiAgICAvLyBzdGlsbCB3YW50IHRvIHRlc3Qgd2l0aCBvbGRlciB2ZXJzaW9ucyBhcyB3ZWxsLlxuICAgIGF3YWl0IHJlbW92ZURldkRlcGVuZGVuY2llcyhjb250ZXh0KTtcblxuICAgIC8vIFRoZSBnZW5lcmF0ZWQgYXBwIHR5cGUtY2hlY2tzIHdpdGggYHRzY2AgYW5kIHJ1bnMgdGhyb3VnaCBgdHN4YCwgc28gdGhvc2VcbiAgICAvLyB0d28gcGFja2FnZXMgYXJlIHRoZSBvbmx5IHRvb2xjaGFpbiBuZWVkZWQgZm9yIGBjZGsgc3ludGhgLlxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnBtJywgJ2luc3RhbGwnLCAnLS1zYXZlLWRldicsIGB0eXBlc2NyaXB0QCR7dHNWZXJzaW9ufWAsICd0c3hAXjQnXSk7XG5cbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdpbnN0YWxsJ10pOyAvLyBPbGRlciB2ZXJzaW9ucyBvZiBucG0gcmVxdWlyZSB0aGlzIHRvIGJlIGEgc2VwYXJhdGUgc3RlcCBmcm9tIHRoZSBvbmUgYWJvdmVcblxuICAgIGF3YWl0IHNoZWxsLnNoZWxsKFsnbnB4JywgJ3RzYycsICctLXZlcnNpb24nXSk7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAncHJ1bmUnXSk7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWyducG0nLCAnbHMnXSk7IC8vIHRoaXMgd2lsbCBmYWlsIGlmIHdlIGhhdmUgdW5tZXQgcGVlciBkZXBlbmRlbmNpZXNcblxuICAgIC8vIFdlIGp1c3QgcmVtb3ZlZCB0aGUgJ2plc3QnIGRlcGVuZGVuY3kgc28gcmVtb3ZlIHRoZSB0ZXN0cyBhcyB3ZWxsIGJlY2F1c2UgdGhleSB3b24ndCBjb21waWxlXG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydybScsICctcmYnLCAndGVzdC8nXSk7XG5cbiAgICBhd2FpdCBzaGVsbC5zaGVsbChbJ25wbScsICdydW4nLCAnYnVpbGQnXSk7XG4gICAgYXdhaXQgc2hlbGwuc2hlbGwoWydjZGsnLCAnc3ludGgnXSk7XG4gIH0pKSk7XG59KTtcblxuYXN5bmMgZnVuY3Rpb24gcmVtb3ZlRGV2RGVwZW5kZW5jaWVzKGNvbnRleHQ6IFRlbXBvcmFyeURpcmVjdG9yeUNvbnRleHQpIHtcbiAgY29uc3QgZmlsZW5hbWUgPSBwYXRoLmpvaW4oY29udGV4dC5pbnRlZ1Rlc3REaXIsICdwYWNrYWdlLmpzb24nKTtcbiAgY29uc3QgcGogPSBKU09OLnBhcnNlKGF3YWl0IGZzLnJlYWRGaWxlKGZpbGVuYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pKTtcbiAgZGVsZXRlIHBqLmRldkRlcGVuZGVuY2llcztcbiAgYXdhaXQgZnMud3JpdGVGaWxlKGZpbGVuYW1lLCBKU09OLnN0cmluZ2lmeShwaiwgdW5kZWZpbmVkLCAyKSwgeyBlbmNvZGluZzogJ3V0Zi04JyB9KTtcblxuICAvLyBUaGUgZ2VuZXJhdGVkIHRzY29uZmlnIGV4cGxpY2l0bHkgbGlzdHMgdGhlIEB0eXBlcyBwYWNrYWdlcyB3ZSBqdXN0IHJlbW92ZWQ7XG4gIC8vIHdpdGggdGhlbSBnb25lLCB0c2Mgd291bGQgZmFpbCBvbiB0aGUgbWlzc2luZyB0eXBlIGRlZmluaXRpb24gZmlsZXMuXG4gIGNvbnN0IHRzY29uZmlnRmlsZW5hbWUgPSBwYXRoLmpvaW4oY29udGV4dC5pbnRlZ1Rlc3REaXIsICd0c2NvbmZpZy5qc29uJyk7XG4gIGNvbnN0IHRzY29uZmlnID0gSlNPTi5wYXJzZShhd2FpdCBmcy5yZWFkRmlsZSh0c2NvbmZpZ0ZpbGVuYW1lLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pKTtcbiAgZGVsZXRlIHRzY29uZmlnLmNvbXBpbGVyT3B0aW9ucy50eXBlcztcbiAgYXdhaXQgZnMud3JpdGVGaWxlKHRzY29uZmlnRmlsZW5hbWUsIEpTT04uc3RyaW5naWZ5KHRzY29uZmlnLCB1bmRlZmluZWQsIDIpLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xufVxuIl19
|