@aws-cdk-testing/cli-integ 3.13.0 → 3.14.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.
Files changed (36) hide show
  1. package/lib/aws.d.ts +16 -3
  2. package/lib/aws.js +92 -6
  3. package/lib/cli/run-suite.js +40 -4
  4. package/lib/corking.d.ts +1 -1
  5. package/lib/npm.js +2 -1
  6. package/lib/package-sources/cli-npm-source.d.ts +2 -1
  7. package/lib/package-sources/cli-npm-source.js +6 -4
  8. package/lib/package-sources/cli-repo-source.d.ts +3 -2
  9. package/lib/package-sources/cli-repo-source.js +5 -3
  10. package/lib/package-sources/subprocess.d.ts +1 -0
  11. package/lib/package-sources/subprocess.js +1 -1
  12. package/lib/shell.d.ts +1 -0
  13. package/lib/shell.js +5 -2
  14. package/lib/with-aws.js +27 -17
  15. package/lib/with-cdk-app.d.ts +2 -0
  16. package/lib/with-cdk-app.js +4 -1
  17. package/npm-shrinkwrap.json +1094 -889
  18. package/package.json +21 -20
  19. package/tests/cli-integ-tests/cdk-assets/asset_helpers.d.ts +12 -0
  20. package/tests/cli-integ-tests/cdk-assets/asset_helpers.js +45 -0
  21. package/tests/cli-integ-tests/cdk-assets/cdk-assets-can-read-lib-output.integtest.d.ts +1 -0
  22. package/tests/cli-integ-tests/cdk-assets/cdk-assets-can-read-lib-output.integtest.js +13 -0
  23. package/tests/cli-integ-tests/cdk-assets/cdk-assets-docker-credential.integtest.js +64 -11
  24. package/tests/cli-integ-tests/cdk-assets/cdk-assets-uses-profile.integtest.js +3 -4
  25. package/tests/cli-integ-tests/cdk-assets/smoketest.integtest.js +10 -25
  26. package/tests/cli-integ-tests/cli-telemetry/cdk-cli-telemetry-adds-context-value.integtest.js +2 -2
  27. package/tests/cli-integ-tests/cli-telemetry/cdk-cli-telemetry-reports-status.integtest.d.ts +1 -0
  28. package/tests/cli-integ-tests/cli-telemetry/cdk-cli-telemetry-reports-status.integtest.js +22 -0
  29. package/tests/cli-integ-tests/cli-telemetry/cdk-cli-telemetry-send-to-file-unstable.integtest.d.ts +1 -0
  30. package/tests/cli-integ-tests/cli-telemetry/cdk-cli-telemetry-send-to-file-unstable.integtest.js +18 -0
  31. package/tests/cli-integ-tests/deploy/cdk-deploy-telemetry.integtest.d.ts +1 -0
  32. package/tests/cli-integ-tests/deploy/cdk-deploy-telemetry.integtest.js +54 -0
  33. package/tests/cli-integ-tests/synth/cdk-synth-telemetry-with-errors.integtest.d.ts +1 -0
  34. package/tests/cli-integ-tests/synth/cdk-synth-telemetry-with-errors.integtest.js +122 -0
  35. package/tests/cli-integ-tests/synth/cdk-synth-telemetry.integtest.d.ts +1 -0
  36. package/tests/cli-integ-tests/synth/cdk-synth-telemetry.integtest.js +114 -0
package/package.json CHANGED
@@ -39,12 +39,11 @@
39
39
  "organization": true
40
40
  },
41
41
  "devDependencies": {
42
- "@aws-cdk/toolkit-lib": "1.2.2",
42
+ "@aws-cdk/toolkit-lib": "1.3.1",
43
43
  "@aws-cdk/yarn-cling": "0.0.0",
44
44
  "@cdklabs/eslint-plugin": "^1.3.2",
45
45
  "@stylistic/eslint-plugin": "^3",
46
46
  "@types/fs-extra": "^9",
47
- "@types/glob": "^7",
48
47
  "@types/jest": "^29.5.14",
49
48
  "@types/node": "^16",
50
49
  "@types/semver": "^7",
@@ -54,40 +53,41 @@
54
53
  "commit-and-tag-version": "^12",
55
54
  "constructs": "^10.0.0",
56
55
  "eslint": "^9",
57
- "eslint-config-prettier": "^9.1.0",
56
+ "eslint-config-prettier": "^9.1.2",
58
57
  "eslint-import-resolver-typescript": "^3.10.1",
59
58
  "eslint-plugin-import": "^2.32.0",
60
59
  "eslint-plugin-jest": "^28.14.0",
61
60
  "eslint-plugin-jsdoc": "^50.8.0",
62
- "eslint-plugin-prettier": "^5.5.1",
61
+ "eslint-plugin-prettier": "^5.5.3",
63
62
  "jest": "^29.7.0",
64
63
  "jest-junit": "^16",
65
64
  "license-checker": "^25.0.1",
66
65
  "prettier": "^2.8",
67
66
  "ts-jest": "^29.2.5",
68
- "typescript": "5.6"
67
+ "typescript": "5.8"
69
68
  },
70
69
  "dependencies": {
71
- "@aws-sdk/client-cloudformation": "3.839.0",
72
- "@aws-sdk/client-codeartifact": "3.839.0",
73
- "@aws-sdk/client-ecr": "3.839.0",
74
- "@aws-sdk/client-ecr-public": "3.839.0",
75
- "@aws-sdk/client-ecs": "3.839.0",
76
- "@aws-sdk/client-iam": "3.839.0",
77
- "@aws-sdk/client-lambda": "3.839.0",
78
- "@aws-sdk/client-s3": "3.839.0",
79
- "@aws-sdk/client-sns": "3.839.0",
80
- "@aws-sdk/client-sso": "3.839.0",
81
- "@aws-sdk/client-sts": "3.839.0",
82
- "@aws-sdk/credential-providers": "3.839.0",
83
- "@cdklabs/cdk-atmosphere-client": "^0.0.56",
70
+ "@aws-sdk/client-cloudformation": "^3.848.0",
71
+ "@aws-sdk/client-codeartifact": "^3.848.0",
72
+ "@aws-sdk/client-ecr": "^3.848.0",
73
+ "@aws-sdk/client-ecr-public": "^3.848.0",
74
+ "@aws-sdk/client-ecs": "^3.848.0",
75
+ "@aws-sdk/client-iam": "^3.848.0",
76
+ "@aws-sdk/client-lambda": "^3.848.0",
77
+ "@aws-sdk/client-s3": "^3.848.0",
78
+ "@aws-sdk/client-secrets-manager": "^3.848.0",
79
+ "@aws-sdk/client-sns": "^3.848.0",
80
+ "@aws-sdk/client-sso": "^3.848.0",
81
+ "@aws-sdk/client-sts": "^3.848.0",
82
+ "@aws-sdk/credential-providers": "^3.848.0",
83
+ "@cdklabs/cdk-atmosphere-client": "^0.0.58",
84
84
  "@octokit/rest": "^20",
85
85
  "@smithy/types": "^4.3.1",
86
86
  "@smithy/util-retry": "^4.0.6",
87
87
  "axios": "^1",
88
88
  "chalk": "^4",
89
89
  "fs-extra": "^9",
90
- "glob": "^7",
90
+ "glob": "^9",
91
91
  "jest": "^29",
92
92
  "jest-junit": "^15",
93
93
  "make-runnable": "^1",
@@ -95,6 +95,7 @@
95
95
  "node-pty": "^1.0.0",
96
96
  "npm": "^10",
97
97
  "p-queue": "^6",
98
+ "proxy-agent": "^6.5.0",
98
99
  "semver": "^7",
99
100
  "sinon": "^9",
100
101
  "ts-jest": "^29",
@@ -115,7 +116,7 @@
115
116
  "publishConfig": {
116
117
  "access": "public"
117
118
  },
118
- "version": "3.13.0",
119
+ "version": "3.14.0",
119
120
  "types": "lib/index.d.ts",
120
121
  "//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"npx projen\"."
121
122
  }
@@ -0,0 +1,12 @@
1
+ import type { TestFixture } from '../../../lib/with-cdk-app';
2
+ export declare function writeFileAsset(fixture: TestFixture): Promise<{
3
+ relativeAssetFile: string;
4
+ bucketName: string;
5
+ assumeRoleArn: string;
6
+ }>;
7
+ export declare function writeDockerAsset(fixture: TestFixture): Promise<{
8
+ repositoryName: string;
9
+ assumeRoleArn: string;
10
+ relativeImageDir: string;
11
+ repositoryDomain: string;
12
+ }>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.writeFileAsset = writeFileAsset;
4
+ exports.writeDockerAsset = writeDockerAsset;
5
+ const fs_1 = require("fs");
6
+ const path = require("path");
7
+ async function writeFileAsset(fixture) {
8
+ const account = await fixture.aws.account();
9
+ const region = fixture.aws.region;
10
+ const relativeAssetFile = 'testfile.txt';
11
+ for (const toCreate of [relativeAssetFile]) {
12
+ await fs_1.promises.writeFile(path.join(fixture.integTestDir, toCreate), 'some asset file');
13
+ }
14
+ const bucketName = `cdk-hnb659fds-assets-${account}-${region}`;
15
+ const assumeRoleArn = `arn:\${AWS::Partition}:iam::${account}:role/cdk-hnb659fds-file-publishing-role-${account}-${region}`;
16
+ return {
17
+ relativeAssetFile,
18
+ bucketName,
19
+ assumeRoleArn,
20
+ };
21
+ }
22
+ async function writeDockerAsset(fixture) {
23
+ const relativeImageDir = 'imagedir';
24
+ const absoluteImageDir = path.join(fixture.integTestDir, relativeImageDir);
25
+ await fs_1.promises.mkdir(absoluteImageDir, { recursive: true });
26
+ for (const toCreate of [`${absoluteImageDir}/datafile.txt`]) {
27
+ await fs_1.promises.writeFile(toCreate, 'some asset file');
28
+ }
29
+ await fs_1.promises.writeFile(path.join(absoluteImageDir, 'Dockerfile'), [
30
+ 'FROM scratch',
31
+ 'ADD datafile.txt datafile.txt',
32
+ ].join('\n'));
33
+ const account = await fixture.aws.account();
34
+ const region = fixture.aws.region;
35
+ const repositoryName = `cdk-hnb659fds-container-assets-${account}-${region}`;
36
+ const assumeRoleArn = `arn:\${AWS::Partition}:iam::${account}:role/cdk-hnb659fds-image-publishing-role-${account}-${region}`;
37
+ const repositoryDomain = `${account}.dkr.ecr.${region}.amazonaws.com`;
38
+ return {
39
+ repositoryName,
40
+ assumeRoleArn,
41
+ relativeImageDir,
42
+ repositoryDomain,
43
+ };
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRfaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0X2hlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSx3Q0FnQkM7QUFFRCw0Q0EwQkM7QUFoREQsMkJBQW9DO0FBQ3BDLDZCQUE2QjtBQUd0QixLQUFLLFVBQVUsY0FBYyxDQUFDLE9BQW9CO0lBQ3ZELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUVsQyxNQUFNLGlCQUFpQixHQUFHLGNBQWMsQ0FBQztJQUN6QyxLQUFLLE1BQU0sUUFBUSxJQUFJLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDO1FBQzNDLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBQ0QsTUFBTSxVQUFVLEdBQUcsd0JBQXdCLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUMvRCxNQUFNLGFBQWEsR0FBRywrQkFBK0IsT0FBTyw0Q0FBNEMsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBRTVILE9BQU87UUFDTCxpQkFBaUI7UUFDakIsVUFBVTtRQUNWLGFBQWE7S0FDZCxDQUFDO0FBQ0osQ0FBQztBQUVNLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxPQUFvQjtJQUN6RCxNQUFNLGdCQUFnQixHQUFHLFVBQVUsQ0FBQztJQUNwQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sYUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRXRELEtBQUssTUFBTSxRQUFRLElBQUksQ0FBQyxHQUFHLGdCQUFnQixlQUFlLENBQUMsRUFBRSxDQUFDO1FBQzVELE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLEVBQUU7UUFDNUQsY0FBYztRQUNkLCtCQUErQjtLQUNoQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRWQsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ2xDLE1BQU0sY0FBYyxHQUFHLGtDQUFrQyxPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7SUFDN0UsTUFBTSxhQUFhLEdBQUcsK0JBQStCLE9BQU8sNkNBQTZDLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUM3SCxNQUFNLGdCQUFnQixHQUFHLEdBQUcsT0FBTyxZQUFZLE1BQU0sZ0JBQWdCLENBQUM7SUFFdEUsT0FBTztRQUNMLGNBQWM7UUFDZCxhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtLQUNqQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB0eXBlIHsgVGVzdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWIvd2l0aC1jZGstYXBwJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlRmlsZUFzc2V0KGZpeHR1cmU6IFRlc3RGaXh0dXJlKSB7XG4gIGNvbnN0IGFjY291bnQgPSBhd2FpdCBmaXh0dXJlLmF3cy5hY2NvdW50KCk7XG4gIGNvbnN0IHJlZ2lvbiA9IGZpeHR1cmUuYXdzLnJlZ2lvbjtcblxuICBjb25zdCByZWxhdGl2ZUFzc2V0RmlsZSA9ICd0ZXN0ZmlsZS50eHQnO1xuICBmb3IgKGNvbnN0IHRvQ3JlYXRlIG9mIFtyZWxhdGl2ZUFzc2V0RmlsZV0pIHtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCB0b0NyZWF0ZSksICdzb21lIGFzc2V0IGZpbGUnKTtcbiAgfVxuICBjb25zdCBidWNrZXROYW1lID0gYGNkay1obmI2NTlmZHMtYXNzZXRzLSR7YWNjb3VudH0tJHtyZWdpb259YDtcbiAgY29uc3QgYXNzdW1lUm9sZUFybiA9IGBhcm46XFwke0FXUzo6UGFydGl0aW9ufTppYW06OiR7YWNjb3VudH06cm9sZS9jZGstaG5iNjU5ZmRzLWZpbGUtcHVibGlzaGluZy1yb2xlLSR7YWNjb3VudH0tJHtyZWdpb259YDtcblxuICByZXR1cm4ge1xuICAgIHJlbGF0aXZlQXNzZXRGaWxlLFxuICAgIGJ1Y2tldE5hbWUsXG4gICAgYXNzdW1lUm9sZUFybixcbiAgfTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHdyaXRlRG9ja2VyQXNzZXQoZml4dHVyZTogVGVzdEZpeHR1cmUpIHtcbiAgY29uc3QgcmVsYXRpdmVJbWFnZURpciA9ICdpbWFnZWRpcic7XG4gIGNvbnN0IGFic29sdXRlSW1hZ2VEaXIgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIHJlbGF0aXZlSW1hZ2VEaXIpO1xuICBhd2FpdCBmcy5ta2RpcihhYnNvbHV0ZUltYWdlRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBmb3IgKGNvbnN0IHRvQ3JlYXRlIG9mIFtgJHthYnNvbHV0ZUltYWdlRGlyfS9kYXRhZmlsZS50eHRgXSkge1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0b0NyZWF0ZSwgJ3NvbWUgYXNzZXQgZmlsZScpO1xuICB9XG5cbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihhYnNvbHV0ZUltYWdlRGlyLCAnRG9ja2VyZmlsZScpLCBbXG4gICAgJ0ZST00gc2NyYXRjaCcsXG4gICAgJ0FERCBkYXRhZmlsZS50eHQgZGF0YWZpbGUudHh0JyxcbiAgXS5qb2luKCdcXG4nKSk7XG5cbiAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGZpeHR1cmUuYXdzLmFjY291bnQoKTtcbiAgY29uc3QgcmVnaW9uID0gZml4dHVyZS5hd3MucmVnaW9uO1xuICBjb25zdCByZXBvc2l0b3J5TmFtZSA9IGBjZGstaG5iNjU5ZmRzLWNvbnRhaW5lci1hc3NldHMtJHthY2NvdW50fS0ke3JlZ2lvbn1gO1xuICBjb25zdCBhc3N1bWVSb2xlQXJuID0gYGFybjpcXCR7QVdTOjpQYXJ0aXRpb259OmlhbTo6JHthY2NvdW50fTpyb2xlL2Nkay1obmI2NTlmZHMtaW1hZ2UtcHVibGlzaGluZy1yb2xlLSR7YWNjb3VudH0tJHtyZWdpb259YDtcbiAgY29uc3QgcmVwb3NpdG9yeURvbWFpbiA9IGAke2FjY291bnR9LmRrci5lY3IuJHtyZWdpb259LmFtYXpvbmF3cy5jb21gO1xuXG4gIHJldHVybiB7XG4gICAgcmVwb3NpdG9yeU5hbWUsXG4gICAgYXNzdW1lUm9sZUFybixcbiAgICByZWxhdGl2ZUltYWdlRGlyLFxuICAgIHJlcG9zaXRvcnlEb21haW4sXG4gIH07XG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path = require("path");
4
+ const integ_test_1 = require("../../../lib/integ-test");
5
+ const with_cdk_app_1 = require("../../../lib/with-cdk-app");
6
+ (0, integ_test_1.integTest)('cdk-assets can read lib output', (0, with_cdk_app_1.withDefaultFixture)(async (fixture) => {
7
+ await fixture.cdkSynth();
8
+ await fixture.cdkAssets.makeCliAvailable();
9
+ const assetManifestFile = path.join(fixture.integTestDir, 'cdk.out', `${fixture.fullStackName('test-1')}.assets.json`);
10
+ // Should not fail
11
+ await fixture.shell(['cdk-assets', '--path', assetManifestFile, 'ls']);
12
+ }));
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFzc2V0cy1jYW4tcmVhZC1saWItb3V0cHV0LmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1hc3NldHMtY2FuLXJlYWQtbGliLW91dHB1dC5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBNkI7QUFDN0Isd0RBQW9EO0FBQ3BELDREQUErRDtBQUUvRCxJQUFBLHNCQUFTLEVBQUMsZ0NBQWdDLEVBQUUsSUFBQSxpQ0FBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDL0UsTUFBTSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7SUFFekIsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFFM0MsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFFdkgsa0JBQWtCO0lBQ2xCLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN6RSxDQUFDLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGludGVnVGVzdCB9IGZyb20gJy4uLy4uLy4uL2xpYi9pbnRlZy10ZXN0JztcbmltcG9ydCB7IHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYi93aXRoLWNkay1hcHAnO1xuXG5pbnRlZ1Rlc3QoJ2Nkay1hc3NldHMgY2FuIHJlYWQgbGliIG91dHB1dCcsIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICBhd2FpdCBmaXh0dXJlLmNka1N5bnRoKCk7XG5cbiAgYXdhaXQgZml4dHVyZS5jZGtBc3NldHMubWFrZUNsaUF2YWlsYWJsZSgpO1xuXG4gIGNvbnN0IGFzc2V0TWFuaWZlc3RGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnY2RrLm91dCcsIGAke2ZpeHR1cmUuZnVsbFN0YWNrTmFtZSgndGVzdC0xJyl9LmFzc2V0cy5qc29uYCk7XG5cbiAgLy8gU2hvdWxkIG5vdCBmYWlsXG4gIGF3YWl0IGZpeHR1cmUuc2hlbGwoWydjZGstYXNzZXRzJywgJy0tcGF0aCcsIGFzc2V0TWFuaWZlc3RGaWxlLCAnbHMnXSk7XG59KSk7XG4iXX0=
@@ -2,32 +2,85 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const fs = require("fs");
4
4
  const path = require("path");
5
+ // import { CreateSecretCommand, DeleteSecretCommand } from '@aws-sdk/client-secrets-manager';
5
6
  const client_sts_1 = require("@aws-sdk/client-sts");
6
7
  const lib_1 = require("../../../lib");
7
8
  jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
8
- (0, lib_1.integTest)('docker-credential-cdk-assets can be invoked as a program', (0, lib_1.withDefaultFixture)(async (fixture) => {
9
- await fixture.shell(['npm', 'init', '-y']);
10
- await fixture.shell(['npm', 'install', 'cdk-assets@latest']);
11
- const caller = await fixture.aws.sts.send(new client_sts_1.GetCallerIdentityCommand());
9
+ (0, lib_1.integTest)('docker-credential-cdk-assets can assume role and fetch ECR credentials', (0, lib_1.withDefaultFixture)(async (fixture) => {
10
+ const caller = await fixture.aws.sts.send(new client_sts_1.GetCallerIdentityCommand({}));
11
+ const roleArn = await fixture.aws.temporaryRole('ecr-repo-role', [
12
+ {
13
+ Action: 'sts:AssumeRole',
14
+ Effect: 'Allow',
15
+ Principal: { AWS: caller.Account },
16
+ },
17
+ ], [
18
+ {
19
+ Effect: 'Allow',
20
+ Resource: '*',
21
+ Action: ['ecr:GetAuthorizationToken'],
22
+ },
23
+ ]);
24
+ await fixture.aws.waitForAssumeRole(roleArn);
25
+ await testDockerCredential(fixture, {
26
+ ecrRepository: true,
27
+ // This role must have permissions to call `ecr:GetAuthorizationToken`
28
+ assumeRoleArn: roleArn,
29
+ });
30
+ }));
31
+ /*
32
+
33
+ // SKIPPED FOR NOW
34
+ // Requires SecretsManager permissions on the role that's executing this, and that's
35
+ // too much to set up right now.
36
+
37
+ integTest(
38
+ 'docker-credential-cdk-assets read from SecretsManager',
39
+ withDefaultFixture(async (fixture) => {
40
+ const secret = await fixture.aws.secretsManager.send(new CreateSecretCommand({
41
+ Name: `our-secret-${fixture.randomString}`,
42
+ SecretString: JSON.stringify({
43
+ username: 'test-user',
44
+ password: 'test-password',
45
+ }),
46
+ }));
47
+ fixture.aws.addCleanup(() => fixture.aws.secretsManager.send(new DeleteSecretCommand({
48
+ SecretId: secret.ARN,
49
+ })));
50
+
51
+ await testDockerCredential(fixture, {
52
+ secretsManagerSecretId: secret.ARN,
53
+ secretsUsernameField: 'username',
54
+ secretsPasswordField: 'password',
55
+ });
56
+ }),
57
+ );
58
+
59
+ */
60
+ async function testDockerCredential(fixture, credSource) {
12
61
  const domain = 'integ.test.domain';
13
62
  const credsFilePath = path.join(fixture.integTestDir, 'cdk-docker-creds.json');
14
63
  fs.writeFileSync(credsFilePath, JSON.stringify({
15
64
  version: '1.0',
16
65
  domainCredentials: {
17
- [domain]: {
18
- ecrRepository: true,
19
- roleArn: caller.Arn,
20
- },
66
+ [domain]: credSource,
21
67
  },
22
68
  }));
23
69
  const input = path.join(fixture.integTestDir, 'input.txt');
24
70
  fs.writeFileSync(input, `${domain}\n`);
25
- await fixture.shell(['node', './node_modules/cdk-assets/bin/docker-credential-cdk-assets', 'get'], {
71
+ await fixture.cdkAssets.makeCliAvailable();
72
+ const output = await fixture.shell(['docker-credential-cdk-assets', 'get'], {
26
73
  modEnv: {
27
74
  ...fixture.cdkShellEnv(),
28
75
  CDK_DOCKER_CREDS_FILE: credsFilePath,
29
76
  },
30
77
  stdio: [fs.openSync(input, 'r')],
78
+ captureStderr: false,
31
79
  });
32
- }));
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFzc2V0cy1kb2NrZXItY3JlZGVudGlhbC5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstYXNzZXRzLWRvY2tlci1jcmVkZW50aWFsLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0Isb0RBQStEO0FBQy9ELHNDQUE2RDtBQUU3RCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1AsMERBQTBELEVBQzFELElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzQyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUU3RCxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLHFDQUF3QixFQUFFLENBQUMsQ0FBQztJQUMxRSxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQztJQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsdUJBQXVCLENBQUMsQ0FBQztJQUUvRSxFQUFFLENBQUMsYUFBYSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzdDLE9BQU8sRUFBRSxLQUFLO1FBQ2QsaUJBQWlCLEVBQUU7WUFDakIsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDUixhQUFhLEVBQUUsSUFBSTtnQkFDbkIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHO2FBQ3BCO1NBQ0Y7S0FDRixDQUFDLENBQUMsQ0FBQztJQUVKLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMzRCxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFFdkMsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLDREQUE0RCxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ2pHLE1BQU0sRUFBRTtZQUNOLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUN4QixxQkFBcUIsRUFBRSxhQUFhO1NBQ3JDO1FBQ0QsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7S0FDakMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBHZXRDYWxsZXJJZGVudGl0eUNvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc3RzJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KFxuICAnZG9ja2VyLWNyZWRlbnRpYWwtY2RrLWFzc2V0cyBjYW4gYmUgaW52b2tlZCBhcyBhIHByb2dyYW0nLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBhd2FpdCBmaXh0dXJlLnNoZWxsKFsnbnBtJywgJ2luaXQnLCAnLXknXSk7XG4gICAgYXdhaXQgZml4dHVyZS5zaGVsbChbJ25wbScsICdpbnN0YWxsJywgJ2Nkay1hc3NldHNAbGF0ZXN0J10pO1xuXG4gICAgY29uc3QgY2FsbGVyID0gYXdhaXQgZml4dHVyZS5hd3Muc3RzLnNlbmQobmV3IEdldENhbGxlcklkZW50aXR5Q29tbWFuZCgpKTtcbiAgICBjb25zdCBkb21haW4gPSAnaW50ZWcudGVzdC5kb21haW4nO1xuICAgIGNvbnN0IGNyZWRzRmlsZVBhdGggPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICdjZGstZG9ja2VyLWNyZWRzLmpzb24nKTtcblxuICAgIGZzLndyaXRlRmlsZVN5bmMoY3JlZHNGaWxlUGF0aCwgSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgdmVyc2lvbjogJzEuMCcsXG4gICAgICBkb21haW5DcmVkZW50aWFsczoge1xuICAgICAgICBbZG9tYWluXToge1xuICAgICAgICAgIGVjclJlcG9zaXRvcnk6IHRydWUsXG4gICAgICAgICAgcm9sZUFybjogY2FsbGVyLkFybixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSkpO1xuXG4gICAgY29uc3QgaW5wdXQgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICdpbnB1dC50eHQnKTtcbiAgICBmcy53cml0ZUZpbGVTeW5jKGlucHV0LCBgJHtkb21haW59XFxuYCk7XG5cbiAgICBhd2FpdCBmaXh0dXJlLnNoZWxsKFsnbm9kZScsICcuL25vZGVfbW9kdWxlcy9jZGstYXNzZXRzL2Jpbi9kb2NrZXItY3JlZGVudGlhbC1jZGstYXNzZXRzJywgJ2dldCddLCB7XG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgLi4uZml4dHVyZS5jZGtTaGVsbEVudigpLFxuICAgICAgICBDREtfRE9DS0VSX0NSRURTX0ZJTEU6IGNyZWRzRmlsZVBhdGgsXG4gICAgICB9LFxuICAgICAgc3RkaW86IFtmcy5vcGVuU3luYyhpbnB1dCwgJ3InKV0sXG4gICAgfSk7XG4gIH0pLFxuKTtcbiJdfQ==
80
+ const response = JSON.parse(output);
81
+ expect(response).toMatchObject({
82
+ Username: expect.anything(),
83
+ Secret: expect.anything(),
84
+ });
85
+ }
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFzc2V0cy1kb2NrZXItY3JlZGVudGlhbC5pbnRlZ3Rlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJjZGstYXNzZXRzLWRvY2tlci1jcmVkZW50aWFsLmludGVndGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsOEZBQThGO0FBQzlGLG9EQUErRDtBQUkvRCxzQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLHdFQUF3RSxFQUN4RSxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLE1BQU0sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLHFDQUF3QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFNUUsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUU7UUFDL0Q7WUFDRSxNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsU0FBUyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUU7U0FDbkM7S0FDRixFQUFFO1FBQ0Q7WUFDRSxNQUFNLEVBQUUsT0FBTztZQUNmLFFBQVEsRUFBRSxHQUFHO1lBQ2IsTUFBTSxFQUFFLENBQUMsMkJBQTJCLENBQUM7U0FDdEM7S0FDRixDQUFDLENBQUM7SUFFSCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFN0MsTUFBTSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUU7UUFDbEMsYUFBYSxFQUFFLElBQUk7UUFDbkIsc0VBQXNFO1FBQ3RFLGFBQWEsRUFBRSxPQUFPO0tBQ3ZCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUNILENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQTRCRTtBQUVGLEtBQUssVUFBVSxvQkFBb0IsQ0FBQyxPQUFvQixFQUFFLFVBQXdDO0lBQ2hHLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDO0lBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0lBRS9FLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDN0MsT0FBTyxFQUFFLEtBQUs7UUFDZCxpQkFBaUIsRUFBRTtZQUNqQixDQUFDLE1BQU0sQ0FBQyxFQUFFLFVBQVU7U0FDckI7S0FDRixDQUFDLENBQUMsQ0FBQztJQUVKLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMzRCxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUM7SUFFdkMsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDM0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsOEJBQThCLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFDMUUsTUFBTSxFQUFFO1lBQ04sR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ3hCLHFCQUFxQixFQUFFLGFBQWE7U0FDckM7UUFDRCxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNoQyxhQUFhLEVBQUUsS0FBSztLQUNyQixDQUFDLENBQUM7SUFFSCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFDN0IsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7UUFDM0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUU7S0FDMUIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG4vLyBpbXBvcnQgeyBDcmVhdGVTZWNyZXRDb21tYW5kLCBEZWxldGVTZWNyZXRDb21tYW5kIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlcic7XG5pbXBvcnQgeyBHZXRDYWxsZXJJZGVudGl0eUNvbW1hbmQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtc3RzJztcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tcmVsYXRpdmUtcGFja2FnZXNcbmltcG9ydCB0eXBlIHsgRG9ja2VyRG9tYWluQ3JlZGVudGlhbFNvdXJjZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL0Bhd3MtY2RrL2Nkay1hc3NldHMtbGliL2xpYi9wcml2YXRlL2RvY2tlci1jcmVkZW50aWFscyc7XG5pbXBvcnQgdHlwZSB7IFRlc3RGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KFxuICAnZG9ja2VyLWNyZWRlbnRpYWwtY2RrLWFzc2V0cyBjYW4gYXNzdW1lIHJvbGUgYW5kIGZldGNoIEVDUiBjcmVkZW50aWFscycsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IGNhbGxlciA9IGF3YWl0IGZpeHR1cmUuYXdzLnN0cy5zZW5kKG5ldyBHZXRDYWxsZXJJZGVudGl0eUNvbW1hbmQoe30pKTtcblxuICAgIGNvbnN0IHJvbGVBcm4gPSBhd2FpdCBmaXh0dXJlLmF3cy50ZW1wb3JhcnlSb2xlKCdlY3ItcmVwby1yb2xlJywgW1xuICAgICAge1xuICAgICAgICBBY3Rpb246ICdzdHM6QXNzdW1lUm9sZScsXG4gICAgICAgIEVmZmVjdDogJ0FsbG93JyxcbiAgICAgICAgUHJpbmNpcGFsOiB7IEFXUzogY2FsbGVyLkFjY291bnQgfSxcbiAgICAgIH0sXG4gICAgXSwgW1xuICAgICAge1xuICAgICAgICBFZmZlY3Q6ICdBbGxvdycsXG4gICAgICAgIFJlc291cmNlOiAnKicsXG4gICAgICAgIEFjdGlvbjogWydlY3I6R2V0QXV0aG9yaXphdGlvblRva2VuJ10sXG4gICAgICB9LFxuICAgIF0pO1xuXG4gICAgYXdhaXQgZml4dHVyZS5hd3Mud2FpdEZvckFzc3VtZVJvbGUocm9sZUFybik7XG5cbiAgICBhd2FpdCB0ZXN0RG9ja2VyQ3JlZGVudGlhbChmaXh0dXJlLCB7XG4gICAgICBlY3JSZXBvc2l0b3J5OiB0cnVlLFxuICAgICAgLy8gVGhpcyByb2xlIG11c3QgaGF2ZSBwZXJtaXNzaW9ucyB0byBjYWxsIGBlY3I6R2V0QXV0aG9yaXphdGlvblRva2VuYFxuICAgICAgYXNzdW1lUm9sZUFybjogcm9sZUFybixcbiAgICB9KTtcbiAgfSksXG4pO1xuXG4vKlxuXG4vLyBTS0lQUEVEIEZPUiBOT1dcbi8vIFJlcXVpcmVzIFNlY3JldHNNYW5hZ2VyIHBlcm1pc3Npb25zIG9uIHRoZSByb2xlIHRoYXQncyBleGVjdXRpbmcgdGhpcywgYW5kIHRoYXQnc1xuLy8gdG9vIG11Y2ggdG8gc2V0IHVwIHJpZ2h0IG5vdy5cblxuaW50ZWdUZXN0KFxuICAnZG9ja2VyLWNyZWRlbnRpYWwtY2RrLWFzc2V0cyByZWFkIGZyb20gU2VjcmV0c01hbmFnZXInLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBjb25zdCBzZWNyZXQgPSBhd2FpdCBmaXh0dXJlLmF3cy5zZWNyZXRzTWFuYWdlci5zZW5kKG5ldyBDcmVhdGVTZWNyZXRDb21tYW5kKHtcbiAgICAgIE5hbWU6IGBvdXItc2VjcmV0LSR7Zml4dHVyZS5yYW5kb21TdHJpbmd9YCxcbiAgICAgIFNlY3JldFN0cmluZzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICB1c2VybmFtZTogJ3Rlc3QtdXNlcicsXG4gICAgICAgIHBhc3N3b3JkOiAndGVzdC1wYXNzd29yZCcsXG4gICAgICB9KSxcbiAgICB9KSk7XG4gICAgZml4dHVyZS5hd3MuYWRkQ2xlYW51cCgoKSA9PiBmaXh0dXJlLmF3cy5zZWNyZXRzTWFuYWdlci5zZW5kKG5ldyBEZWxldGVTZWNyZXRDb21tYW5kKHtcbiAgICAgIFNlY3JldElkOiBzZWNyZXQuQVJOLFxuICAgIH0pKSk7XG5cbiAgICBhd2FpdCB0ZXN0RG9ja2VyQ3JlZGVudGlhbChmaXh0dXJlLCB7XG4gICAgICBzZWNyZXRzTWFuYWdlclNlY3JldElkOiBzZWNyZXQuQVJOLFxuICAgICAgc2VjcmV0c1VzZXJuYW1lRmllbGQ6ICd1c2VybmFtZScsXG4gICAgICBzZWNyZXRzUGFzc3dvcmRGaWVsZDogJ3Bhc3N3b3JkJyxcbiAgICB9KTtcbiAgfSksXG4pO1xuXG4qL1xuXG5hc3luYyBmdW5jdGlvbiB0ZXN0RG9ja2VyQ3JlZGVudGlhbChmaXh0dXJlOiBUZXN0Rml4dHVyZSwgY3JlZFNvdXJjZTogRG9ja2VyRG9tYWluQ3JlZGVudGlhbFNvdXJjZSkge1xuICBjb25zdCBkb21haW4gPSAnaW50ZWcudGVzdC5kb21haW4nO1xuICBjb25zdCBjcmVkc0ZpbGVQYXRoID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnY2RrLWRvY2tlci1jcmVkcy5qc29uJyk7XG5cbiAgZnMud3JpdGVGaWxlU3luYyhjcmVkc0ZpbGVQYXRoLCBKU09OLnN0cmluZ2lmeSh7XG4gICAgdmVyc2lvbjogJzEuMCcsXG4gICAgZG9tYWluQ3JlZGVudGlhbHM6IHtcbiAgICAgIFtkb21haW5dOiBjcmVkU291cmNlLFxuICAgIH0sXG4gIH0pKTtcblxuICBjb25zdCBpbnB1dCA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ2lucHV0LnR4dCcpO1xuICBmcy53cml0ZUZpbGVTeW5jKGlucHV0LCBgJHtkb21haW59XFxuYCk7XG5cbiAgYXdhaXQgZml4dHVyZS5jZGtBc3NldHMubWFrZUNsaUF2YWlsYWJsZSgpO1xuICBjb25zdCBvdXRwdXQgPSBhd2FpdCBmaXh0dXJlLnNoZWxsKFsnZG9ja2VyLWNyZWRlbnRpYWwtY2RrLWFzc2V0cycsICdnZXQnXSwge1xuICAgIG1vZEVudjoge1xuICAgICAgLi4uZml4dHVyZS5jZGtTaGVsbEVudigpLFxuICAgICAgQ0RLX0RPQ0tFUl9DUkVEU19GSUxFOiBjcmVkc0ZpbGVQYXRoLFxuICAgIH0sXG4gICAgc3RkaW86IFtmcy5vcGVuU3luYyhpbnB1dCwgJ3InKV0sXG4gICAgY2FwdHVyZVN0ZGVycjogZmFsc2UsXG4gIH0pO1xuXG4gIGNvbnN0IHJlc3BvbnNlID0gSlNPTi5wYXJzZShvdXRwdXQpO1xuICBleHBlY3QocmVzcG9uc2UpLnRvTWF0Y2hPYmplY3Qoe1xuICAgIFVzZXJuYW1lOiBleHBlY3QuYW55dGhpbmcoKSxcbiAgICBTZWNyZXQ6IGV4cGVjdC5hbnl0aGluZygpLFxuICB9KTtcbn1cbiJdfQ==
@@ -6,8 +6,7 @@ const lib_1 = require("../../../lib");
6
6
  jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
7
  (0, lib_1.integTest)('cdk-assets uses profile when specified', (0, lib_1.withDefaultFixture)(async (fixture) => {
8
8
  const currentCreds = await fixture.aws.credentials();
9
- await fixture.shell(['npm', 'init', '-y']);
10
- await fixture.shell(['npm', 'install', 'cdk-assets@latest']);
9
+ await fixture.cdkAssets.makeCliAvailable();
11
10
  const account = await fixture.aws.account();
12
11
  const region = fixture.aws.region;
13
12
  const bucketName = `cdk-hnb659fds-assets-${account}-${region}`;
@@ -65,7 +64,7 @@ aws_access_key_id=${currentCreds.accessKeyId}
65
64
  aws_secret_access_key=${currentCreds.secretAccessKey}
66
65
  aws_session_token=${currentCreds.sessionToken}`);
67
66
  await fs_1.promises.writeFile(path.join(fixture.integTestDir, 'assets.json'), JSON.stringify(assetsJson, undefined, 2));
68
- await fixture.shell(['npx', 'cdk-assets', '--path', 'assets.json', 'publish', '--profile', profile], {
67
+ await fixture.shell(['cdk-assets', '--path', 'assets.json', 'publish', '--profile', profile], {
69
68
  modEnv: {
70
69
  ...fixture.cdkShellEnv(),
71
70
  AWS_SHARED_CREDENTIALS_FILE: credentialsFile,
@@ -77,4 +76,4 @@ aws_session_token=${currentCreds.sessionToken}`);
77
76
  },
78
77
  });
79
78
  }));
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFzc2V0cy11c2VzLXByb2ZpbGUuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWFzc2V0cy11c2VzLXByb2ZpbGUuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsMkJBQW9DO0FBQ3BDLDZCQUE2QjtBQUM3QixzQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUFDLHdDQUF3QyxFQUFFLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ3ZGLE1BQU0sWUFBWSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUVyRCxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0MsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUM7SUFFN0QsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ2xDLE1BQU0sVUFBVSxHQUFHLHdCQUF3QixPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7SUFFL0QsK0VBQStFO0lBQy9FLDZFQUE2RTtJQUM3RSxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUM7SUFDbEMsTUFBTSxVQUFVLEdBQUcsY0FBYyxDQUFDO0lBQ2xDLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUNuRixNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFFbkYsc0VBQXNFO0lBQ3RFLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLE9BQU8sRUFBRSxRQUFRO1FBQ2pCLEtBQUssRUFBRTtZQUNMLFNBQVMsRUFBRTtnQkFDVCxNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFNBQVMsRUFBRSxNQUFNO2lCQUNsQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osT0FBTyxFQUFFO3dCQUNQLE1BQU07d0JBQ04sYUFBYSxFQUFFLCtCQUErQixPQUFPLDRDQUE0QyxPQUFPLElBQUksTUFBTSxFQUFFO3dCQUNwSCxVQUFVO3dCQUNWLFNBQVMsRUFBRSxjQUFjLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTztxQkFDM0M7aUJBQ0Y7YUFDRjtZQUNELFNBQVMsRUFBRTtnQkFDVCxNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFLFVBQVU7b0JBQ2hCLFNBQVMsRUFBRSxNQUFNO2lCQUNsQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osT0FBTyxFQUFFO3dCQUNQLE1BQU07d0JBQ04sYUFBYSxFQUFFLCtCQUErQixPQUFPLDRDQUE0QyxPQUFPLElBQUksTUFBTSxFQUFFO3dCQUNwSCxVQUFVO3dCQUNWLFNBQVMsRUFBRSxjQUFjLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTztxQkFDM0M7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUVGLGlEQUFpRDtJQUNqRCxFQUFFO0lBQ0Ysb0dBQW9HO0lBQ3BHLDJGQUEyRjtJQUMzRiwyRkFBMkY7SUFDM0Ysd0JBQXdCO0lBQ3hCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQztJQUU3Qiw4RUFBOEU7SUFDOUUsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxJQUFJLE9BQU87b0JBQzdCLFlBQVksQ0FBQyxXQUFXO3dCQUNwQixZQUFZLENBQUMsZUFBZTtvQkFDaEMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFFL0MsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsRUFBRTtRQUNuRyxNQUFNLEVBQUU7WUFDTixHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDeEIsMkJBQTJCLEVBQUUsZUFBZTtZQUU1Qyw4REFBOEQ7WUFDOUQsaUZBQWlGO1lBQ2pGLGlCQUFpQixFQUFFLEVBQUU7WUFDckIscUJBQXFCLEVBQUUsRUFBRTtZQUN6QixpQkFBaUIsRUFBRSxFQUFFO1NBRXRCO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQ0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoJ2Nkay1hc3NldHMgdXNlcyBwcm9maWxlIHdoZW4gc3BlY2lmaWVkJywgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gIGNvbnN0IGN1cnJlbnRDcmVkcyA9IGF3YWl0IGZpeHR1cmUuYXdzLmNyZWRlbnRpYWxzKCk7XG5cbiAgYXdhaXQgZml4dHVyZS5zaGVsbChbJ25wbScsICdpbml0JywgJy15J10pO1xuICBhd2FpdCBmaXh0dXJlLnNoZWxsKFsnbnBtJywgJ2luc3RhbGwnLCAnY2RrLWFzc2V0c0BsYXRlc3QnXSk7XG5cbiAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGZpeHR1cmUuYXdzLmFjY291bnQoKTtcbiAgY29uc3QgcmVnaW9uID0gZml4dHVyZS5hd3MucmVnaW9uO1xuICBjb25zdCBidWNrZXROYW1lID0gYGNkay1obmI2NTlmZHMtYXNzZXRzLSR7YWNjb3VudH0tJHtyZWdpb259YDtcblxuICAvLyBXcml0ZSBzb21lIGFzc2V0IGZpbGVzLiBJdHMgaW1wb3J0YW50IHRvIGhhdmUgbW9yZSB0aGFuIDEgYmVjYXVzZSBjZGstYXNzZXRzXG4gIC8vIGNvZGUgaGFzIHNvbWUgZnVua3kgc3RhdGUgbXV0YXRpb25zIHRoYXQgaGFwcGVucyBvbiBlYWNoIGFzc2V0IHB1Ymxpc2hpbmcuXG4gIGNvbnN0IGFzc2V0RmlsZTEgPSAndGVzdGZpbGUudHh0JztcbiAgY29uc3QgYXNzZXRGaWxlMiA9ICd0ZXN0ZmlsZS50eHQnO1xuICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCBhc3NldEZpbGUxKSwgJ3NvbWUgYXNzZXQgZmlsZScpO1xuICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCBhc3NldEZpbGUyKSwgJ3NvbWUgYXNzZXQgZmlsZScpO1xuXG4gIC8vIFdyaXRlIGFuIGFzc2V0IEpTT04gZmlsZSB0byBwdWJsaXNoIHRvIHRoZSBib290c3RyYXBwZWQgZW52aXJvbm1lbnRcbiAgY29uc3QgYXNzZXRzSnNvbiA9IHtcbiAgICB2ZXJzaW9uOiAnMzguMC4xJyxcbiAgICBmaWxlczoge1xuICAgICAgdGVzdGZpbGUxOiB7XG4gICAgICAgIHNvdXJjZToge1xuICAgICAgICAgIHBhdGg6IGFzc2V0RmlsZTEsXG4gICAgICAgICAgcGFja2FnaW5nOiAnZmlsZScsXG4gICAgICAgIH0sXG4gICAgICAgIGRlc3RpbmF0aW9uczoge1xuICAgICAgICAgIGN1cnJlbnQ6IHtcbiAgICAgICAgICAgIHJlZ2lvbixcbiAgICAgICAgICAgIGFzc3VtZVJvbGVBcm46IGBhcm46XFwke0FXUzo6UGFydGl0aW9ufTppYW06OiR7YWNjb3VudH06cm9sZS9jZGstaG5iNjU5ZmRzLWZpbGUtcHVibGlzaGluZy1yb2xlLSR7YWNjb3VudH0tJHtyZWdpb259YCxcbiAgICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICBvYmplY3RLZXk6IGB0ZXN0LWZpbGUxLSR7RGF0ZS5ub3coKX0uanNvbmAsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB0ZXN0ZmlsZTI6IHtcbiAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgcGF0aDogYXNzZXRGaWxlMixcbiAgICAgICAgICBwYWNrYWdpbmc6ICdmaWxlJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzdGluYXRpb25zOiB7XG4gICAgICAgICAgY3VycmVudDoge1xuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgYXNzdW1lUm9sZUFybjogYGFybjpcXCR7QVdTOjpQYXJ0aXRpb259OmlhbTo6JHthY2NvdW50fTpyb2xlL2Nkay1obmI2NTlmZHMtZmlsZS1wdWJsaXNoaW5nLXJvbGUtJHthY2NvdW50fS0ke3JlZ2lvbn1gLFxuICAgICAgICAgICAgYnVja2V0TmFtZSxcbiAgICAgICAgICAgIG9iamVjdEtleTogYHRlc3QtZmlsZTItJHtEYXRlLm5vdygpfS5qc29uYCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICB9O1xuXG4gIC8vIGNyZWF0ZSBhIHByb2ZpbGUgd2l0aCBvdXIgY3VycmVudCBjcmVkZW50aWFscy5cbiAgLy9cbiAgLy8gaWYgeW91J3JlIHdvbmRlcmluZyB3aHkgY2FuJ3Qgd2UgZG8gdGhlIHJldmVyc2UgKGkuZSB3cml0ZSBhIGJvZ3VzIHByb2ZpbGUgYW5kIGFzc2VydCBhIGZhaWx1cmUpLFxuICAvLyBpdHMgYmVjYXVzZSB3aGVuIGNkay1hc3NldHMgZGlzY292ZXJzIHRoZSBjdXJyZW50IGFjY291bnQsIGl0IERPRVMgY29uc2lkZXIgdGhlIHByb2ZpbGUuXG4gIC8vIHdyaXRpbmcgYSBib2d1cyBwcm9maWxlIHdvdWxkIGZhaWwgdGhpcyBvcGVyYXRpb24gYW5kIHdlIHdvbid0IGJlIGFibGUgdG8gcmVhY2ggdGhlIGNvZGVcbiAgLy8gd2UncmUgdHJ5aW5nIHRvIHRlc3QuXG4gIGNvbnN0IGNyZWRlbnRpYWxzRmlsZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ2F3cy5jcmVkZW50aWFscycpO1xuICBjb25zdCBwcm9maWxlID0gJ2Nkay1hc3NldHMnO1xuXG4gIC8vIHRoaXMga2luZCBzdWNrcyBidXQgaXRzIHdoYXQgaXQgaXMgZ2l2ZW4gd2UgbmVlZCB0byB3cml0ZSBhIHdvcmtpbmcgcHJvZmlsZVxuICBhd2FpdCBmcy53cml0ZUZpbGUoY3JlZGVudGlhbHNGaWxlLCBgWyR7cHJvZmlsZX1dXG5hd3NfYWNjZXNzX2tleV9pZD0ke2N1cnJlbnRDcmVkcy5hY2Nlc3NLZXlJZH1cbmF3c19zZWNyZXRfYWNjZXNzX2tleT0ke2N1cnJlbnRDcmVkcy5zZWNyZXRBY2Nlc3NLZXl9XG5hd3Nfc2Vzc2lvbl90b2tlbj0ke2N1cnJlbnRDcmVkcy5zZXNzaW9uVG9rZW59YCk7XG5cbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ2Fzc2V0cy5qc29uJyksIEpTT04uc3RyaW5naWZ5KGFzc2V0c0pzb24sIHVuZGVmaW5lZCwgMikpO1xuICBhd2FpdCBmaXh0dXJlLnNoZWxsKFsnbnB4JywgJ2Nkay1hc3NldHMnLCAnLS1wYXRoJywgJ2Fzc2V0cy5qc29uJywgJ3B1Ymxpc2gnLCAnLS1wcm9maWxlJywgcHJvZmlsZV0sIHtcbiAgICBtb2RFbnY6IHtcbiAgICAgIC4uLmZpeHR1cmUuY2RrU2hlbGxFbnYoKSxcbiAgICAgIEFXU19TSEFSRURfQ1JFREVOVElBTFNfRklMRTogY3JlZGVudGlhbHNGaWxlLFxuXG4gICAgICAvLyByZW1vdmUgdGhlIGRlZmF1bHQgY3JlZHMgc28gdGhhdCBpZiB0aGUgY29tbWFuZCBkb2Vzbid0IHVzZVxuICAgICAgLy8gdGhlIHByb2ZpbGUsIGl0IHdpbGwgZmFpbCB3aXRoIFwiQ291bGQgbm90IGxvYWQgY3JlZGVudGlhbHMgZnJvbSBhbnkgcHJvdmlkZXJzXCJcbiAgICAgIEFXU19BQ0NFU1NfS0VZX0lEOiAnJyxcbiAgICAgIEFXU19TRUNSRVRfQUNDRVNTX0tFWTogJycsXG4gICAgICBBV1NfU0VTU0lPTl9UT0tFTjogJycsXG5cbiAgICB9LFxuICB9KTtcbn0pLFxuKTtcbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWFzc2V0cy11c2VzLXByb2ZpbGUuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWFzc2V0cy11c2VzLXByb2ZpbGUuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQ0EsMkJBQW9DO0FBQ3BDLDZCQUE2QjtBQUM3QixzQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUFDLHdDQUF3QyxFQUFFLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ3ZGLE1BQU0sWUFBWSxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUVyRCxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUUzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDNUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDbEMsTUFBTSxVQUFVLEdBQUcsd0JBQXdCLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUUvRCwrRUFBK0U7SUFDL0UsNkVBQTZFO0lBQzdFLE1BQU0sVUFBVSxHQUFHLGNBQWMsQ0FBQztJQUNsQyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUM7SUFDbEMsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25GLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUVuRixzRUFBc0U7SUFDdEUsTUFBTSxVQUFVLEdBQUc7UUFDakIsT0FBTyxFQUFFLFFBQVE7UUFDakIsS0FBSyxFQUFFO1lBQ0wsU0FBUyxFQUFFO2dCQUNULE1BQU0sRUFBRTtvQkFDTixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsU0FBUyxFQUFFLE1BQU07aUJBQ2xCO2dCQUNELFlBQVksRUFBRTtvQkFDWixPQUFPLEVBQUU7d0JBQ1AsTUFBTTt3QkFDTixhQUFhLEVBQUUsK0JBQStCLE9BQU8sNENBQTRDLE9BQU8sSUFBSSxNQUFNLEVBQUU7d0JBQ3BILFVBQVU7d0JBQ1YsU0FBUyxFQUFFLGNBQWMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPO3FCQUMzQztpQkFDRjthQUNGO1lBQ0QsU0FBUyxFQUFFO2dCQUNULE1BQU0sRUFBRTtvQkFDTixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsU0FBUyxFQUFFLE1BQU07aUJBQ2xCO2dCQUNELFlBQVksRUFBRTtvQkFDWixPQUFPLEVBQUU7d0JBQ1AsTUFBTTt3QkFDTixhQUFhLEVBQUUsK0JBQStCLE9BQU8sNENBQTRDLE9BQU8sSUFBSSxNQUFNLEVBQUU7d0JBQ3BILFVBQVU7d0JBQ1YsU0FBUyxFQUFFLGNBQWMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPO3FCQUMzQztpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsaURBQWlEO0lBQ2pELEVBQUU7SUFDRixvR0FBb0c7SUFDcEcsMkZBQTJGO0lBQzNGLDJGQUEyRjtJQUMzRix3QkFBd0I7SUFDeEIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDM0UsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDO0lBRTdCLDhFQUE4RTtJQUM5RSxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLElBQUksT0FBTztvQkFDN0IsWUFBWSxDQUFDLFdBQVc7d0JBQ3BCLFlBQVksQ0FBQyxlQUFlO29CQUNoQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUUvQyxNQUFNLGFBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLGFBQWEsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzdHLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDNUYsTUFBTSxFQUFFO1lBQ04sR0FBRyxPQUFPLENBQUMsV0FBVyxFQUFFO1lBQ3hCLDJCQUEyQixFQUFFLGVBQWU7WUFFNUMsOERBQThEO1lBQzlELGlGQUFpRjtZQUNqRixpQkFBaUIsRUFBRSxFQUFFO1lBQ3JCLHFCQUFxQixFQUFFLEVBQUU7WUFDekIsaUJBQWlCLEVBQUUsRUFBRTtTQUV0QjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KCdjZGstYXNzZXRzIHVzZXMgcHJvZmlsZSB3aGVuIHNwZWNpZmllZCcsIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICBjb25zdCBjdXJyZW50Q3JlZHMgPSBhd2FpdCBmaXh0dXJlLmF3cy5jcmVkZW50aWFscygpO1xuXG4gIGF3YWl0IGZpeHR1cmUuY2RrQXNzZXRzLm1ha2VDbGlBdmFpbGFibGUoKTtcblxuICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZml4dHVyZS5hd3MuYWNjb3VudCgpO1xuICBjb25zdCByZWdpb24gPSBmaXh0dXJlLmF3cy5yZWdpb247XG4gIGNvbnN0IGJ1Y2tldE5hbWUgPSBgY2RrLWhuYjY1OWZkcy1hc3NldHMtJHthY2NvdW50fS0ke3JlZ2lvbn1gO1xuXG4gIC8vIFdyaXRlIHNvbWUgYXNzZXQgZmlsZXMuIEl0cyBpbXBvcnRhbnQgdG8gaGF2ZSBtb3JlIHRoYW4gMSBiZWNhdXNlIGNkay1hc3NldHNcbiAgLy8gY29kZSBoYXMgc29tZSBmdW5reSBzdGF0ZSBtdXRhdGlvbnMgdGhhdCBoYXBwZW5zIG9uIGVhY2ggYXNzZXQgcHVibGlzaGluZy5cbiAgY29uc3QgYXNzZXRGaWxlMSA9ICd0ZXN0ZmlsZS50eHQnO1xuICBjb25zdCBhc3NldEZpbGUyID0gJ3Rlc3RmaWxlLnR4dCc7XG4gIGF3YWl0IGZzLndyaXRlRmlsZShwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIGFzc2V0RmlsZTEpLCAnc29tZSBhc3NldCBmaWxlJyk7XG4gIGF3YWl0IGZzLndyaXRlRmlsZShwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIGFzc2V0RmlsZTIpLCAnc29tZSBhc3NldCBmaWxlJyk7XG5cbiAgLy8gV3JpdGUgYW4gYXNzZXQgSlNPTiBmaWxlIHRvIHB1Ymxpc2ggdG8gdGhlIGJvb3RzdHJhcHBlZCBlbnZpcm9ubWVudFxuICBjb25zdCBhc3NldHNKc29uID0ge1xuICAgIHZlcnNpb246ICczOC4wLjEnLFxuICAgIGZpbGVzOiB7XG4gICAgICB0ZXN0ZmlsZTE6IHtcbiAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgcGF0aDogYXNzZXRGaWxlMSxcbiAgICAgICAgICBwYWNrYWdpbmc6ICdmaWxlJyxcbiAgICAgICAgfSxcbiAgICAgICAgZGVzdGluYXRpb25zOiB7XG4gICAgICAgICAgY3VycmVudDoge1xuICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgYXNzdW1lUm9sZUFybjogYGFybjpcXCR7QVdTOjpQYXJ0aXRpb259OmlhbTo6JHthY2NvdW50fTpyb2xlL2Nkay1obmI2NTlmZHMtZmlsZS1wdWJsaXNoaW5nLXJvbGUtJHthY2NvdW50fS0ke3JlZ2lvbn1gLFxuICAgICAgICAgICAgYnVja2V0TmFtZSxcbiAgICAgICAgICAgIG9iamVjdEtleTogYHRlc3QtZmlsZTEtJHtEYXRlLm5vdygpfS5qc29uYCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHRlc3RmaWxlMjoge1xuICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICBwYXRoOiBhc3NldEZpbGUyLFxuICAgICAgICAgIHBhY2thZ2luZzogJ2ZpbGUnLFxuICAgICAgICB9LFxuICAgICAgICBkZXN0aW5hdGlvbnM6IHtcbiAgICAgICAgICBjdXJyZW50OiB7XG4gICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICBhc3N1bWVSb2xlQXJuOiBgYXJuOlxcJHtBV1M6OlBhcnRpdGlvbn06aWFtOjoke2FjY291bnR9OnJvbGUvY2RrLWhuYjY1OWZkcy1maWxlLXB1Ymxpc2hpbmctcm9sZS0ke2FjY291bnR9LSR7cmVnaW9ufWAsXG4gICAgICAgICAgICBidWNrZXROYW1lLFxuICAgICAgICAgICAgb2JqZWN0S2V5OiBgdGVzdC1maWxlMi0ke0RhdGUubm93KCl9Lmpzb25gLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgLy8gY3JlYXRlIGEgcHJvZmlsZSB3aXRoIG91ciBjdXJyZW50IGNyZWRlbnRpYWxzLlxuICAvL1xuICAvLyBpZiB5b3UncmUgd29uZGVyaW5nIHdoeSBjYW4ndCB3ZSBkbyB0aGUgcmV2ZXJzZSAoaS5lIHdyaXRlIGEgYm9ndXMgcHJvZmlsZSBhbmQgYXNzZXJ0IGEgZmFpbHVyZSksXG4gIC8vIGl0cyBiZWNhdXNlIHdoZW4gY2RrLWFzc2V0cyBkaXNjb3ZlcnMgdGhlIGN1cnJlbnQgYWNjb3VudCwgaXQgRE9FUyBjb25zaWRlciB0aGUgcHJvZmlsZS5cbiAgLy8gd3JpdGluZyBhIGJvZ3VzIHByb2ZpbGUgd291bGQgZmFpbCB0aGlzIG9wZXJhdGlvbiBhbmQgd2Ugd29uJ3QgYmUgYWJsZSB0byByZWFjaCB0aGUgY29kZVxuICAvLyB3ZSdyZSB0cnlpbmcgdG8gdGVzdC5cbiAgY29uc3QgY3JlZGVudGlhbHNGaWxlID0gcGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnYXdzLmNyZWRlbnRpYWxzJyk7XG4gIGNvbnN0IHByb2ZpbGUgPSAnY2RrLWFzc2V0cyc7XG5cbiAgLy8gdGhpcyBraW5kIHN1Y2tzIGJ1dCBpdHMgd2hhdCBpdCBpcyBnaXZlbiB3ZSBuZWVkIHRvIHdyaXRlIGEgd29ya2luZyBwcm9maWxlXG4gIGF3YWl0IGZzLndyaXRlRmlsZShjcmVkZW50aWFsc0ZpbGUsIGBbJHtwcm9maWxlfV1cbmF3c19hY2Nlc3Nfa2V5X2lkPSR7Y3VycmVudENyZWRzLmFjY2Vzc0tleUlkfVxuYXdzX3NlY3JldF9hY2Nlc3Nfa2V5PSR7Y3VycmVudENyZWRzLnNlY3JldEFjY2Vzc0tleX1cbmF3c19zZXNzaW9uX3Rva2VuPSR7Y3VycmVudENyZWRzLnNlc3Npb25Ub2tlbn1gKTtcblxuICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnYXNzZXRzLmpzb24nKSwgSlNPTi5zdHJpbmdpZnkoYXNzZXRzSnNvbiwgdW5kZWZpbmVkLCAyKSk7XG4gIGF3YWl0IGZpeHR1cmUuc2hlbGwoWydjZGstYXNzZXRzJywgJy0tcGF0aCcsICdhc3NldHMuanNvbicsICdwdWJsaXNoJywgJy0tcHJvZmlsZScsIHByb2ZpbGVdLCB7XG4gICAgbW9kRW52OiB7XG4gICAgICAuLi5maXh0dXJlLmNka1NoZWxsRW52KCksXG4gICAgICBBV1NfU0hBUkVEX0NSRURFTlRJQUxTX0ZJTEU6IGNyZWRlbnRpYWxzRmlsZSxcblxuICAgICAgLy8gcmVtb3ZlIHRoZSBkZWZhdWx0IGNyZWRzIHNvIHRoYXQgaWYgdGhlIGNvbW1hbmQgZG9lc24ndCB1c2VcbiAgICAgIC8vIHRoZSBwcm9maWxlLCBpdCB3aWxsIGZhaWwgd2l0aCBcIkNvdWxkIG5vdCBsb2FkIGNyZWRlbnRpYWxzIGZyb20gYW55IHByb3ZpZGVyc1wiXG4gICAgICBBV1NfQUNDRVNTX0tFWV9JRDogJycsXG4gICAgICBBV1NfU0VDUkVUX0FDQ0VTU19LRVk6ICcnLFxuICAgICAgQVdTX1NFU1NJT05fVE9LRU46ICcnLFxuXG4gICAgfSxcbiAgfSk7XG59KSxcbik7XG4iXX0=
@@ -5,41 +5,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  */
6
6
  const fs_1 = require("fs");
7
7
  const path = require("path");
8
+ const asset_helpers_1 = require("./asset_helpers");
8
9
  const lib_1 = require("../../../lib");
9
10
  jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
10
11
  (0, lib_1.integTest)('cdk-assets smoke test', (0, lib_1.withDefaultFixture)(async (fixture) => {
11
12
  await fixture.shell(['npm', 'init', '-y']);
12
13
  await fixture.shell(['npm', 'install', 'cdk-assets@latest']);
13
- const account = await fixture.aws.account();
14
14
  const region = fixture.aws.region;
15
- const bucketName = `cdk-hnb659fds-assets-${account}-${region}`;
16
- const repositoryName = `cdk-hnb659fds-container-assets-${account}-${region}`;
17
- const imageDir = 'imagedir';
18
- await fs_1.promises.mkdir(path.join(fixture.integTestDir, imageDir), { recursive: true });
19
- // Write an asset file and a data file for the Docker image
20
- const assetFile = 'testfile.txt';
21
- for (const toCreate of [assetFile, `${imageDir}/datafile.txt`]) {
22
- await fs_1.promises.writeFile(path.join(fixture.integTestDir, toCreate), 'some asset file');
23
- }
24
- // Write a Dockerfile for the image build with a data file in it
25
- await fs_1.promises.writeFile(path.join(fixture.integTestDir, imageDir, 'Dockerfile'), [
26
- 'FROM scratch',
27
- 'ADD datafile.txt datafile.txt',
28
- ].join('\n'));
15
+ const fileAsset = await (0, asset_helpers_1.writeFileAsset)(fixture);
16
+ const imageAsset = await (0, asset_helpers_1.writeDockerAsset)(fixture);
29
17
  // Write an asset JSON file to publish to the bootstrapped environment
30
18
  const assetsJson = {
31
19
  version: '38.0.1',
32
20
  files: {
33
21
  testfile: {
34
22
  source: {
35
- path: assetFile,
23
+ path: fileAsset.relativeAssetFile,
36
24
  packaging: 'file',
37
25
  },
38
26
  destinations: {
39
27
  current: {
40
28
  region,
41
- assumeRoleArn: `arn:\${AWS::Partition}:iam::${account}:role/cdk-hnb659fds-file-publishing-role-${account}-${region}`,
42
- bucketName,
29
+ assumeRoleArn: fileAsset.assumeRoleArn,
30
+ bucketName: fileAsset.bucketName,
43
31
  objectKey: `test-file-${Date.now()}.json`,
44
32
  },
45
33
  },
@@ -48,13 +36,13 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
48
36
  dockerImages: {
49
37
  testimage: {
50
38
  source: {
51
- directory: imageDir,
39
+ directory: imageAsset.relativeImageDir,
52
40
  },
53
41
  destinations: {
54
42
  current: {
55
43
  region,
56
- assumeRoleArn: `arn:\${AWS::Partition}:iam::${account}:role/cdk-hnb659fds-image-publishing-role-${account}-${region}`,
57
- repositoryName,
44
+ assumeRoleArn: imageAsset.assumeRoleArn,
45
+ repositoryName: imageAsset.repositoryName,
58
46
  imageTag: 'test-image', // Not fresh on every run because we'll run out of tags too easily
59
47
  },
60
48
  },
@@ -65,10 +53,7 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
65
53
  await fixture.shell(['npx', 'cdk-assets', '--path', 'assets.json', '--verbose', 'publish'], {
66
54
  modEnv: {
67
55
  ...fixture.cdkShellEnv(),
68
- // This is necessary for cdk-assets v2, if the credentials are supplied via
69
- // config file (which they are on the CodeBuild canaries).
70
- AWS_SDK_LOAD_CONFIG: '1',
71
56
  },
72
57
  });
73
58
  }));
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21va2V0ZXN0LmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNtb2tldGVzdC5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7R0FFRztBQUNILDJCQUFvQztBQUNwQyw2QkFBNkI7QUFDN0Isc0NBQTZEO0FBRTdELElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLHlFQUF5RTtBQUUzRyxJQUFBLGVBQVMsRUFDUCx1QkFBdUIsRUFDdkIsSUFBQSx3QkFBa0IsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7SUFDbkMsTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNDLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO0lBRTdELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM1QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNsQyxNQUFNLFVBQVUsR0FBRyx3QkFBd0IsT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQy9ELE1BQU0sY0FBYyxHQUFHLGtDQUFrQyxPQUFPLElBQUksTUFBTSxFQUFFLENBQUM7SUFFN0UsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzVCLE1BQU0sYUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUvRSwyREFBMkQ7SUFDM0QsTUFBTSxTQUFTLEdBQUcsY0FBYyxDQUFDO0lBQ2pDLEtBQUssTUFBTSxRQUFRLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxRQUFRLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDL0QsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsWUFBWSxDQUFDLEVBQUU7UUFDMUUsY0FBYztRQUNkLCtCQUErQjtLQUNoQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBRWQsc0VBQXNFO0lBQ3RFLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLE9BQU8sRUFBRSxRQUFRO1FBQ2pCLEtBQUssRUFBRTtZQUNMLFFBQVEsRUFBRTtnQkFDUixNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFLFNBQVM7b0JBQ2YsU0FBUyxFQUFFLE1BQU07aUJBQ2xCO2dCQUNELFlBQVksRUFBRTtvQkFDWixPQUFPLEVBQUU7d0JBQ1AsTUFBTTt3QkFDTixhQUFhLEVBQUUsK0JBQStCLE9BQU8sNENBQTRDLE9BQU8sSUFBSSxNQUFNLEVBQUU7d0JBQ3BILFVBQVU7d0JBQ1YsU0FBUyxFQUFFLGFBQWEsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPO3FCQUMxQztpQkFDRjthQUNGO1NBQ0Y7UUFDRCxZQUFZLEVBQUU7WUFDWixTQUFTLEVBQUU7Z0JBQ1QsTUFBTSxFQUFFO29CQUNOLFNBQVMsRUFBRSxRQUFRO2lCQUNwQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osT0FBTyxFQUFFO3dCQUNQLE1BQU07d0JBQ04sYUFBYSxFQUFFLCtCQUErQixPQUFPLDZDQUE2QyxPQUFPLElBQUksTUFBTSxFQUFFO3dCQUNySCxjQUFjO3dCQUNkLFFBQVEsRUFBRSxZQUFZLEVBQUUsa0VBQWtFO3FCQUMzRjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1FBQzFGLE1BQU0sRUFBRTtZQUNOLEdBQUcsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUN4QiwyRUFBMkU7WUFDM0UsMERBQTBEO1lBQzFELG1CQUFtQixFQUFFLEdBQUc7U0FDekI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUZXN0cyBmb3IgdGhlIHN0YW5kYWxvbmUgY2RrLWFzc2V0cyBleGVjdXRhYmxlLCBhcyB1c2VkIGJ5IENESyBQaXBlbGluZXNcbiAqL1xuaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdjZGstYXNzZXRzIHNtb2tlIHRlc3QnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBhd2FpdCBmaXh0dXJlLnNoZWxsKFsnbnBtJywgJ2luaXQnLCAnLXknXSk7XG4gICAgYXdhaXQgZml4dHVyZS5zaGVsbChbJ25wbScsICdpbnN0YWxsJywgJ2Nkay1hc3NldHNAbGF0ZXN0J10pO1xuXG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IGZpeHR1cmUuYXdzLmFjY291bnQoKTtcbiAgICBjb25zdCByZWdpb24gPSBmaXh0dXJlLmF3cy5yZWdpb247XG4gICAgY29uc3QgYnVja2V0TmFtZSA9IGBjZGstaG5iNjU5ZmRzLWFzc2V0cy0ke2FjY291bnR9LSR7cmVnaW9ufWA7XG4gICAgY29uc3QgcmVwb3NpdG9yeU5hbWUgPSBgY2RrLWhuYjY1OWZkcy1jb250YWluZXItYXNzZXRzLSR7YWNjb3VudH0tJHtyZWdpb259YDtcblxuICAgIGNvbnN0IGltYWdlRGlyID0gJ2ltYWdlZGlyJztcbiAgICBhd2FpdCBmcy5ta2RpcihwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsIGltYWdlRGlyKSwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgICAvLyBXcml0ZSBhbiBhc3NldCBmaWxlIGFuZCBhIGRhdGEgZmlsZSBmb3IgdGhlIERvY2tlciBpbWFnZVxuICAgIGNvbnN0IGFzc2V0RmlsZSA9ICd0ZXN0ZmlsZS50eHQnO1xuICAgIGZvciAoY29uc3QgdG9DcmVhdGUgb2YgW2Fzc2V0RmlsZSwgYCR7aW1hZ2VEaXJ9L2RhdGFmaWxlLnR4dGBdKSB7XG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCB0b0NyZWF0ZSksICdzb21lIGFzc2V0IGZpbGUnKTtcbiAgICB9XG5cbiAgICAvLyBXcml0ZSBhIERvY2tlcmZpbGUgZm9yIHRoZSBpbWFnZSBidWlsZCB3aXRoIGEgZGF0YSBmaWxlIGluIGl0XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgaW1hZ2VEaXIsICdEb2NrZXJmaWxlJyksIFtcbiAgICAgICdGUk9NIHNjcmF0Y2gnLFxuICAgICAgJ0FERCBkYXRhZmlsZS50eHQgZGF0YWZpbGUudHh0JyxcbiAgICBdLmpvaW4oJ1xcbicpKTtcblxuICAgIC8vIFdyaXRlIGFuIGFzc2V0IEpTT04gZmlsZSB0byBwdWJsaXNoIHRvIHRoZSBib290c3RyYXBwZWQgZW52aXJvbm1lbnRcbiAgICBjb25zdCBhc3NldHNKc29uID0ge1xuICAgICAgdmVyc2lvbjogJzM4LjAuMScsXG4gICAgICBmaWxlczoge1xuICAgICAgICB0ZXN0ZmlsZToge1xuICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgcGF0aDogYXNzZXRGaWxlLFxuICAgICAgICAgICAgcGFja2FnaW5nOiAnZmlsZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZXN0aW5hdGlvbnM6IHtcbiAgICAgICAgICAgIGN1cnJlbnQ6IHtcbiAgICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgICBhc3N1bWVSb2xlQXJuOiBgYXJuOlxcJHtBV1M6OlBhcnRpdGlvbn06aWFtOjoke2FjY291bnR9OnJvbGUvY2RrLWhuYjY1OWZkcy1maWxlLXB1Ymxpc2hpbmctcm9sZS0ke2FjY291bnR9LSR7cmVnaW9ufWAsXG4gICAgICAgICAgICAgIGJ1Y2tldE5hbWUsXG4gICAgICAgICAgICAgIG9iamVjdEtleTogYHRlc3QtZmlsZS0ke0RhdGUubm93KCl9Lmpzb25gLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGRvY2tlckltYWdlczoge1xuICAgICAgICB0ZXN0aW1hZ2U6IHtcbiAgICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICAgIGRpcmVjdG9yeTogaW1hZ2VEaXIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBkZXN0aW5hdGlvbnM6IHtcbiAgICAgICAgICAgIGN1cnJlbnQ6IHtcbiAgICAgICAgICAgICAgcmVnaW9uLFxuICAgICAgICAgICAgICBhc3N1bWVSb2xlQXJuOiBgYXJuOlxcJHtBV1M6OlBhcnRpdGlvbn06aWFtOjoke2FjY291bnR9OnJvbGUvY2RrLWhuYjY1OWZkcy1pbWFnZS1wdWJsaXNoaW5nLXJvbGUtJHthY2NvdW50fS0ke3JlZ2lvbn1gLFxuICAgICAgICAgICAgICByZXBvc2l0b3J5TmFtZSxcbiAgICAgICAgICAgICAgaW1hZ2VUYWc6ICd0ZXN0LWltYWdlJywgLy8gTm90IGZyZXNoIG9uIGV2ZXJ5IHJ1biBiZWNhdXNlIHdlJ2xsIHJ1biBvdXQgb2YgdGFncyB0b28gZWFzaWx5XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH07XG5cbiAgICBhd2FpdCBmcy53cml0ZUZpbGUocGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnYXNzZXRzLmpzb24nKSwgSlNPTi5zdHJpbmdpZnkoYXNzZXRzSnNvbiwgdW5kZWZpbmVkLCAyKSk7XG4gICAgYXdhaXQgZml4dHVyZS5zaGVsbChbJ25weCcsICdjZGstYXNzZXRzJywgJy0tcGF0aCcsICdhc3NldHMuanNvbicsICctLXZlcmJvc2UnLCAncHVibGlzaCddLCB7XG4gICAgICBtb2RFbnY6IHtcbiAgICAgICAgLi4uZml4dHVyZS5jZGtTaGVsbEVudigpLFxuICAgICAgICAvLyBUaGlzIGlzIG5lY2Vzc2FyeSBmb3IgY2RrLWFzc2V0cyB2MiwgaWYgdGhlIGNyZWRlbnRpYWxzIGFyZSBzdXBwbGllZCB2aWFcbiAgICAgICAgLy8gY29uZmlnIGZpbGUgKHdoaWNoIHRoZXkgYXJlIG9uIHRoZSBDb2RlQnVpbGQgY2FuYXJpZXMpLlxuICAgICAgICBBV1NfU0RLX0xPQURfQ09ORklHOiAnMScsXG4gICAgICB9LFxuICAgIH0pO1xuICB9KSxcbik7XG4iXX0=
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21va2V0ZXN0LmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNtb2tldGVzdC5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQTs7R0FFRztBQUNILDJCQUFvQztBQUNwQyw2QkFBNkI7QUFDN0IsbURBQW1FO0FBQ25FLHNDQUE2RDtBQUU3RCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1AsdUJBQXVCLEVBQ3ZCLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzQyxNQUFNLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQztJQUU3RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUVsQyxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEsOEJBQWMsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUNoRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUEsZ0NBQWdCLEVBQUMsT0FBTyxDQUFDLENBQUM7SUFFbkQsc0VBQXNFO0lBQ3RFLE1BQU0sVUFBVSxHQUFHO1FBQ2pCLE9BQU8sRUFBRSxRQUFRO1FBQ2pCLEtBQUssRUFBRTtZQUNMLFFBQVEsRUFBRTtnQkFDUixNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFLFNBQVMsQ0FBQyxpQkFBaUI7b0JBQ2pDLFNBQVMsRUFBRSxNQUFNO2lCQUNsQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osT0FBTyxFQUFFO3dCQUNQLE1BQU07d0JBQ04sYUFBYSxFQUFFLFNBQVMsQ0FBQyxhQUFhO3dCQUN0QyxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVU7d0JBQ2hDLFNBQVMsRUFBRSxhQUFhLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTztxQkFDMUM7aUJBQ0Y7YUFDRjtTQUNGO1FBQ0QsWUFBWSxFQUFFO1lBQ1osU0FBUyxFQUFFO2dCQUNULE1BQU0sRUFBRTtvQkFDTixTQUFTLEVBQUUsVUFBVSxDQUFDLGdCQUFnQjtpQkFDdkM7Z0JBQ0QsWUFBWSxFQUFFO29CQUNaLE9BQU8sRUFBRTt3QkFDUCxNQUFNO3dCQUNOLGFBQWEsRUFBRSxVQUFVLENBQUMsYUFBYTt3QkFDdkMsY0FBYyxFQUFFLFVBQVUsQ0FBQyxjQUFjO3dCQUN6QyxRQUFRLEVBQUUsWUFBWSxFQUFFLGtFQUFrRTtxQkFDM0Y7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUVGLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsYUFBYSxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0csTUFBTSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxTQUFTLENBQUMsRUFBRTtRQUMxRixNQUFNLEVBQUU7WUFDTixHQUFHLE9BQU8sQ0FBQyxXQUFXLEVBQUU7U0FDekI7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUZXN0cyBmb3IgdGhlIHN0YW5kYWxvbmUgY2RrLWFzc2V0cyBleGVjdXRhYmxlLCBhcyB1c2VkIGJ5IENESyBQaXBlbGluZXNcbiAqL1xuaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgd3JpdGVEb2NrZXJBc3NldCwgd3JpdGVGaWxlQXNzZXQgfSBmcm9tICcuL2Fzc2V0X2hlbHBlcnMnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdjZGstYXNzZXRzIHNtb2tlIHRlc3QnLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBhd2FpdCBmaXh0dXJlLnNoZWxsKFsnbnBtJywgJ2luaXQnLCAnLXknXSk7XG4gICAgYXdhaXQgZml4dHVyZS5zaGVsbChbJ25wbScsICdpbnN0YWxsJywgJ2Nkay1hc3NldHNAbGF0ZXN0J10pO1xuXG4gICAgY29uc3QgcmVnaW9uID0gZml4dHVyZS5hd3MucmVnaW9uO1xuXG4gICAgY29uc3QgZmlsZUFzc2V0ID0gYXdhaXQgd3JpdGVGaWxlQXNzZXQoZml4dHVyZSk7XG4gICAgY29uc3QgaW1hZ2VBc3NldCA9IGF3YWl0IHdyaXRlRG9ja2VyQXNzZXQoZml4dHVyZSk7XG5cbiAgICAvLyBXcml0ZSBhbiBhc3NldCBKU09OIGZpbGUgdG8gcHVibGlzaCB0byB0aGUgYm9vdHN0cmFwcGVkIGVudmlyb25tZW50XG4gICAgY29uc3QgYXNzZXRzSnNvbiA9IHtcbiAgICAgIHZlcnNpb246ICczOC4wLjEnLFxuICAgICAgZmlsZXM6IHtcbiAgICAgICAgdGVzdGZpbGU6IHtcbiAgICAgICAgICBzb3VyY2U6IHtcbiAgICAgICAgICAgIHBhdGg6IGZpbGVBc3NldC5yZWxhdGl2ZUFzc2V0RmlsZSxcbiAgICAgICAgICAgIHBhY2thZ2luZzogJ2ZpbGUnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgZGVzdGluYXRpb25zOiB7XG4gICAgICAgICAgICBjdXJyZW50OiB7XG4gICAgICAgICAgICAgIHJlZ2lvbixcbiAgICAgICAgICAgICAgYXNzdW1lUm9sZUFybjogZmlsZUFzc2V0LmFzc3VtZVJvbGVBcm4sXG4gICAgICAgICAgICAgIGJ1Y2tldE5hbWU6IGZpbGVBc3NldC5idWNrZXROYW1lLFxuICAgICAgICAgICAgICBvYmplY3RLZXk6IGB0ZXN0LWZpbGUtJHtEYXRlLm5vdygpfS5qc29uYCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBkb2NrZXJJbWFnZXM6IHtcbiAgICAgICAgdGVzdGltYWdlOiB7XG4gICAgICAgICAgc291cmNlOiB7XG4gICAgICAgICAgICBkaXJlY3Rvcnk6IGltYWdlQXNzZXQucmVsYXRpdmVJbWFnZURpcixcbiAgICAgICAgICB9LFxuICAgICAgICAgIGRlc3RpbmF0aW9uczoge1xuICAgICAgICAgICAgY3VycmVudDoge1xuICAgICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICAgIGFzc3VtZVJvbGVBcm46IGltYWdlQXNzZXQuYXNzdW1lUm9sZUFybixcbiAgICAgICAgICAgICAgcmVwb3NpdG9yeU5hbWU6IGltYWdlQXNzZXQucmVwb3NpdG9yeU5hbWUsXG4gICAgICAgICAgICAgIGltYWdlVGFnOiAndGVzdC1pbWFnZScsIC8vIE5vdCBmcmVzaCBvbiBldmVyeSBydW4gYmVjYXVzZSB3ZSdsbCBydW4gb3V0IG9mIHRhZ3MgdG9vIGVhc2lseVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ2Fzc2V0cy5qc29uJyksIEpTT04uc3RyaW5naWZ5KGFzc2V0c0pzb24sIHVuZGVmaW5lZCwgMikpO1xuICAgIGF3YWl0IGZpeHR1cmUuc2hlbGwoWyducHgnLCAnY2RrLWFzc2V0cycsICctLXBhdGgnLCAnYXNzZXRzLmpzb24nLCAnLS12ZXJib3NlJywgJ3B1Ymxpc2gnXSwge1xuICAgICAgbW9kRW52OiB7XG4gICAgICAgIC4uLmZpeHR1cmUuY2RrU2hlbGxFbnYoKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pLFxuKTtcbiJdfQ==
@@ -33,7 +33,7 @@ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-c
33
33
  });
34
34
  }
35
35
  finally {
36
- await fs_1.promises.unlink(path.join(fixture.integTestDir, 'cdk.context.json'));
36
+ await fs_1.promises.unlink(contextFile);
37
37
  }
38
38
  }));
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNsaS10ZWxlbWV0cnktYWRkcy1jb250ZXh0LXZhbHVlLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1jbGktdGVsZW1ldHJ5LWFkZHMtY29udGV4dC12YWx1ZS5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQkFBb0M7QUFDcEMsNkJBQTZCO0FBQzdCLHNDQUE2RDtBQUU3RCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1Asc0RBQXNELEVBQ3RELElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sT0FBTyxHQUFHO1FBQ2QsYUFBYSxFQUFFLGVBQWU7S0FDL0IsQ0FBQztJQUNGLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FDaEIsV0FBVyxFQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQ3hCLENBQUM7SUFDRixJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxhQUFFLENBQUMsUUFBUSxDQUM5QyxXQUFXLENBQ1osQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDZixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ3pCLEdBQUcsT0FBTztZQUNWLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSztTQUN6QixDQUFDLENBQUM7UUFFSCwyQ0FBMkM7UUFDM0MsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDakQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sYUFBRSxDQUFDLFFBQVEsQ0FDaEQsV0FBVyxDQUNaLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMzQixHQUFHLE9BQU87WUFDVixDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUk7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsK0RBQStEO1FBQy9ELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLGFBQUUsQ0FBQyxRQUFRLENBQ2pELFdBQVcsQ0FDWixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNmLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDNUIsR0FBRyxPQUFPO1lBQ1YsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7WUFBUyxDQUFDO1FBQ1QsTUFBTSxhQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztBQUNILENBQUMsQ0FBQyxDQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ0NMSSBUZWxlbWV0cnkgYWRkcyBjb250ZXh0IHZhbHVlIHRvIGNkay5jb250ZXh0Lmpzb24nLFxuICB3aXRoRGVmYXVsdEZpeHR1cmUoYXN5bmMgKGZpeHR1cmUpID0+IHtcbiAgICBjb25zdCBjb250ZXh0RmlsZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ2Nkay5jb250ZXh0Lmpzb24nKTtcbiAgICBjb25zdCBjb250ZXh0ID0ge1xuICAgICAgZXhpc3RlZEJlZm9yZTogJ3RoaXMgd2FzIGhlcmUnLFxuICAgIH07XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKFxuICAgICAgY29udGV4dEZpbGUsXG4gICAgICBKU09OLnN0cmluZ2lmeShjb250ZXh0KSxcbiAgICApO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXh0dXJlLmNkayhbJ2NsaS10ZWxlbWV0cnknLCAnLS1kaXNhYmxlJ10pO1xuICAgICAgY29uc3QgbmV3Q29udGV4dCA9IEpTT04ucGFyc2UoKGF3YWl0IGZzLnJlYWRGaWxlKFxuICAgICAgICBjb250ZXh0RmlsZSxcbiAgICAgICkpLnRvU3RyaW5nKCkpO1xuICAgICAgZXhwZWN0KG5ld0NvbnRleHQpLnRvRXF1YWwoe1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICBbJ2NsaS10ZWxlbWV0cnknXTogZmFsc2UsXG4gICAgICB9KTtcblxuICAgICAgLy8gVGVzdCB0aGF0IGNsaS10ZWxlbWV0cnkgZW5hYmxlIHdvcmtzIHRvb1xuICAgICAgYXdhaXQgZml4dHVyZS5jZGsoWydjbGktdGVsZW1ldHJ5JywgJy0tZW5hYmxlJ10pO1xuICAgICAgY29uc3QgbmV3ZXJDb250ZXh0ID0gSlNPTi5wYXJzZSgoYXdhaXQgZnMucmVhZEZpbGUoXG4gICAgICAgIGNvbnRleHRGaWxlLFxuICAgICAgKSkudG9TdHJpbmcoKSk7XG4gICAgICBleHBlY3QobmV3ZXJDb250ZXh0KS50b0VxdWFsKHtcbiAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgWydjbGktdGVsZW1ldHJ5J106IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gVGVzdCB0aGF0IGNsaS10ZWxlbWV0cnkgLS1uby1lbmFibGUgd29ya3MgKGVxdWFscyAtLWRpc2FibGUpXG4gICAgICBhd2FpdCBmaXh0dXJlLmNkayhbJ2NsaS10ZWxlbWV0cnknLCAnLS1uby1lbmFibGUnXSk7XG4gICAgICBjb25zdCBuZXdlc3RDb250ZXh0ID0gSlNPTi5wYXJzZSgoYXdhaXQgZnMucmVhZEZpbGUoXG4gICAgICAgIGNvbnRleHRGaWxlLFxuICAgICAgKSkudG9TdHJpbmcoKSk7XG4gICAgICBleHBlY3QobmV3ZXN0Q29udGV4dCkudG9FcXVhbCh7XG4gICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgIFsnY2xpLXRlbGVtZXRyeSddOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBhd2FpdCBmcy51bmxpbmsocGF0aC5qb2luKGZpeHR1cmUuaW50ZWdUZXN0RGlyLCAnY2RrLmNvbnRleHQuanNvbicpKTtcbiAgICB9XG4gIH0pLFxuKTtcbiJdfQ==
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNsaS10ZWxlbWV0cnktYWRkcy1jb250ZXh0LXZhbHVlLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1jbGktdGVsZW1ldHJ5LWFkZHMtY29udGV4dC12YWx1ZS5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQkFBb0M7QUFDcEMsNkJBQTZCO0FBQzdCLHNDQUE2RDtBQUU3RCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1Asc0RBQXNELEVBQ3RELElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sT0FBTyxHQUFHO1FBQ2QsYUFBYSxFQUFFLGVBQWU7S0FDL0IsQ0FBQztJQUNGLE1BQU0sYUFBRSxDQUFDLFNBQVMsQ0FDaEIsV0FBVyxFQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQ3hCLENBQUM7SUFDRixJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxlQUFlLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUNsRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxhQUFFLENBQUMsUUFBUSxDQUM5QyxXQUFXLENBQ1osQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDZixNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ3pCLEdBQUcsT0FBTztZQUNWLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSztTQUN6QixDQUFDLENBQUM7UUFFSCwyQ0FBMkM7UUFDM0MsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDakQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sYUFBRSxDQUFDLFFBQVEsQ0FDaEQsV0FBVyxDQUNaLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2YsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUMzQixHQUFHLE9BQU87WUFDVixDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUk7U0FDeEIsQ0FBQyxDQUFDO1FBRUgsK0RBQStEO1FBQy9ELE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLGFBQUUsQ0FBQyxRQUFRLENBQ2pELFdBQVcsQ0FDWixDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNmLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUM7WUFDNUIsR0FBRyxPQUFPO1lBQ1YsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7WUFBUyxDQUFDO1FBQ1QsTUFBTSxhQUFFLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvbWlzZXMgYXMgZnMgfSBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgaW50ZWdUZXN0LCB3aXRoRGVmYXVsdEZpeHR1cmUgfSBmcm9tICcuLi8uLi8uLi9saWInO1xuXG5qZXN0LnNldFRpbWVvdXQoMiAqIDYwICogNjBfMDAwKTsgLy8gSW5jbHVkZXMgdGhlIHRpbWUgdG8gYWNxdWlyZSBsb2Nrcywgd29yc3QtY2FzZSBzaW5nbGUtdGhyZWFkZWQgcnVudGltZVxuXG5pbnRlZ1Rlc3QoXG4gICdDTEkgVGVsZW1ldHJ5IGFkZHMgY29udGV4dCB2YWx1ZSB0byBjZGsuY29udGV4dC5qc29uJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3QgY29udGV4dEZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICdjZGsuY29udGV4dC5qc29uJyk7XG4gICAgY29uc3QgY29udGV4dCA9IHtcbiAgICAgIGV4aXN0ZWRCZWZvcmU6ICd0aGlzIHdhcyBoZXJlJyxcbiAgICB9O1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZShcbiAgICAgIGNvbnRleHRGaWxlLFxuICAgICAgSlNPTi5zdHJpbmdpZnkoY29udGV4dCksXG4gICAgKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZml4dHVyZS5jZGsoWydjbGktdGVsZW1ldHJ5JywgJy0tZGlzYWJsZSddKTtcbiAgICAgIGNvbnN0IG5ld0NvbnRleHQgPSBKU09OLnBhcnNlKChhd2FpdCBmcy5yZWFkRmlsZShcbiAgICAgICAgY29udGV4dEZpbGUsXG4gICAgICApKS50b1N0cmluZygpKTtcbiAgICAgIGV4cGVjdChuZXdDb250ZXh0KS50b0VxdWFsKHtcbiAgICAgICAgLi4uY29udGV4dCxcbiAgICAgICAgWydjbGktdGVsZW1ldHJ5J106IGZhbHNlLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRlc3QgdGhhdCBjbGktdGVsZW1ldHJ5IGVuYWJsZSB3b3JrcyB0b29cbiAgICAgIGF3YWl0IGZpeHR1cmUuY2RrKFsnY2xpLXRlbGVtZXRyeScsICctLWVuYWJsZSddKTtcbiAgICAgIGNvbnN0IG5ld2VyQ29udGV4dCA9IEpTT04ucGFyc2UoKGF3YWl0IGZzLnJlYWRGaWxlKFxuICAgICAgICBjb250ZXh0RmlsZSxcbiAgICAgICkpLnRvU3RyaW5nKCkpO1xuICAgICAgZXhwZWN0KG5ld2VyQ29udGV4dCkudG9FcXVhbCh7XG4gICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgIFsnY2xpLXRlbGVtZXRyeSddOiB0cnVlLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIFRlc3QgdGhhdCBjbGktdGVsZW1ldHJ5IC0tbm8tZW5hYmxlIHdvcmtzIChlcXVhbHMgLS1kaXNhYmxlKVxuICAgICAgYXdhaXQgZml4dHVyZS5jZGsoWydjbGktdGVsZW1ldHJ5JywgJy0tbm8tZW5hYmxlJ10pO1xuICAgICAgY29uc3QgbmV3ZXN0Q29udGV4dCA9IEpTT04ucGFyc2UoKGF3YWl0IGZzLnJlYWRGaWxlKFxuICAgICAgICBjb250ZXh0RmlsZSxcbiAgICAgICkpLnRvU3RyaW5nKCkpO1xuICAgICAgZXhwZWN0KG5ld2VzdENvbnRleHQpLnRvRXF1YWwoe1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICBbJ2NsaS10ZWxlbWV0cnknXTogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgYXdhaXQgZnMudW5saW5rKGNvbnRleHRGaWxlKTtcbiAgICB9XG4gIH0pLFxuKTtcbiJdfQ==
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs_1 = require("fs");
4
+ const path = require("path");
5
+ const lib_1 = require("../../../lib");
6
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
+ (0, lib_1.integTest)('CLI Telemetry reports status', (0, lib_1.withDefaultFixture)(async (fixture) => {
8
+ const userContextFile = path.join(fixture.integTestDir, 'cdk.json');
9
+ try {
10
+ // default status is enabled
11
+ const output1 = await fixture.cdk(['cli-telemetry', '--status']);
12
+ expect(output1).toContain('CLI Telemetry is enabled. See https://github.com/aws/aws-cdk-cli/tree/main/packages/aws-cdk#cdk-cli-telemetry for ways to disable.');
13
+ // disable status
14
+ await fs_1.promises.writeFile(userContextFile, JSON.stringify({ context: { 'cli-telemetry': false } }));
15
+ const output2 = await fixture.cdk(['cli-telemetry', '--status']);
16
+ expect(output2).toContain('CLI Telemetry is disabled. See https://github.com/aws/aws-cdk-cli/tree/main/packages/aws-cdk#cdk-cli-telemetry for ways to enable.');
17
+ }
18
+ finally {
19
+ await fs_1.promises.unlink(userContextFile);
20
+ }
21
+ }));
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNsaS10ZWxlbWV0cnktcmVwb3J0cy1zdGF0dXMuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWNsaS10ZWxlbWV0cnktcmVwb3J0cy1zdGF0dXMuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkJBQW9DO0FBQ3BDLDZCQUE2QjtBQUM3QixzQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLDhCQUE4QixFQUM5QixJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDcEUsSUFBSSxDQUFDO1FBQ0gsNEJBQTRCO1FBQzVCLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsb0lBQW9JLENBQUMsQ0FBQztRQUVoSyxpQkFBaUI7UUFDakIsTUFBTSxhQUFFLENBQUMsU0FBUyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdGLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsb0lBQW9JLENBQUMsQ0FBQztJQUNsSyxDQUFDO1lBQVMsQ0FBQztRQUNULE1BQU0sYUFBRSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNuQyxDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByb21pc2VzIGFzIGZzIH0gZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KFxuICAnQ0xJIFRlbGVtZXRyeSByZXBvcnRzIHN0YXR1cycsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHVzZXJDb250ZXh0RmlsZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgJ2Nkay5qc29uJyk7XG4gICAgdHJ5IHtcbiAgICAgIC8vIGRlZmF1bHQgc3RhdHVzIGlzIGVuYWJsZWRcbiAgICAgIGNvbnN0IG91dHB1dDEgPSBhd2FpdCBmaXh0dXJlLmNkayhbJ2NsaS10ZWxlbWV0cnknLCAnLS1zdGF0dXMnXSk7XG4gICAgICBleHBlY3Qob3V0cHV0MSkudG9Db250YWluKCdDTEkgVGVsZW1ldHJ5IGlzIGVuYWJsZWQuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGstY2xpL3RyZWUvbWFpbi9wYWNrYWdlcy9hd3MtY2RrI2Nkay1jbGktdGVsZW1ldHJ5IGZvciB3YXlzIHRvIGRpc2FibGUuJyk7XG5cbiAgICAgIC8vIGRpc2FibGUgc3RhdHVzXG4gICAgICBhd2FpdCBmcy53cml0ZUZpbGUodXNlckNvbnRleHRGaWxlLCBKU09OLnN0cmluZ2lmeSh7IGNvbnRleHQ6IHsgJ2NsaS10ZWxlbWV0cnknOiBmYWxzZSB9IH0pKTtcbiAgICAgIGNvbnN0IG91dHB1dDIgPSBhd2FpdCBmaXh0dXJlLmNkayhbJ2NsaS10ZWxlbWV0cnknLCAnLS1zdGF0dXMnXSk7XG4gICAgICBleHBlY3Qob3V0cHV0MikudG9Db250YWluKCdDTEkgVGVsZW1ldHJ5IGlzIGRpc2FibGVkLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrLWNsaS90cmVlL21haW4vcGFja2FnZXMvYXdzLWNkayNjZGstY2xpLXRlbGVtZXRyeSBmb3Igd2F5cyB0byBlbmFibGUuJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGF3YWl0IGZzLnVubGluayh1c2VyQ29udGV4dEZpbGUpO1xuICAgIH1cbiAgfSksXG4pO1xuIl19
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path = require("path");
4
+ const fs = require("fs-extra");
5
+ const lib_1 = require("../../../lib");
6
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
+ (0, lib_1.integTest)('sending cli telemetry to file fails if not invoked with --unstable', (0, lib_1.withDefaultFixture)(async (fixture) => {
8
+ const telemetryFile = path.join(fixture.integTestDir, `telemetry-${Date.now()}.json`);
9
+ try {
10
+ await fixture.cdk(['list', `--telemetry-file=${telemetryFile}`]);
11
+ throw new Error('Expected command to fail');
12
+ }
13
+ catch (error) {
14
+ expect(fs.existsSync(telemetryFile)).toBeFalsy();
15
+ expect(fixture.output.toString()).toContain('Unstable feature use');
16
+ }
17
+ }));
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNsaS10ZWxlbWV0cnktc2VuZC10by1maWxlLXVuc3RhYmxlLmludGVndGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNkay1jbGktdGVsZW1ldHJ5LXNlbmQtdG8tZmlsZS11bnN0YWJsZS5pbnRlZ3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLHNDQUE2RDtBQUU3RCxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyx5RUFBeUU7QUFFM0csSUFBQSxlQUFTLEVBQ1Asb0VBQW9FLEVBQ3BFLElBQUEsd0JBQWtCLEVBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO0lBQ25DLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxhQUFhLElBQUksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEYsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLG9CQUFvQixhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakUsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqRCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7QUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB7IGludGVnVGVzdCwgd2l0aERlZmF1bHRGaXh0dXJlIH0gZnJvbSAnLi4vLi4vLi4vbGliJztcblxuamVzdC5zZXRUaW1lb3V0KDIgKiA2MCAqIDYwXzAwMCk7IC8vIEluY2x1ZGVzIHRoZSB0aW1lIHRvIGFjcXVpcmUgbG9ja3MsIHdvcnN0LWNhc2Ugc2luZ2xlLXRocmVhZGVkIHJ1bnRpbWVcblxuaW50ZWdUZXN0KFxuICAnc2VuZGluZyBjbGkgdGVsZW1ldHJ5IHRvIGZpbGUgZmFpbHMgaWYgbm90IGludm9rZWQgd2l0aCAtLXVuc3RhYmxlJyxcbiAgd2l0aERlZmF1bHRGaXh0dXJlKGFzeW5jIChmaXh0dXJlKSA9PiB7XG4gICAgY29uc3QgdGVsZW1ldHJ5RmlsZSA9IHBhdGguam9pbihmaXh0dXJlLmludGVnVGVzdERpciwgYHRlbGVtZXRyeS0ke0RhdGUubm93KCl9Lmpzb25gKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgZml4dHVyZS5jZGsoWydsaXN0JywgYC0tdGVsZW1ldHJ5LWZpbGU9JHt0ZWxlbWV0cnlGaWxlfWBdKTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgY29tbWFuZCB0byBmYWlsJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGV4cGVjdChmcy5leGlzdHNTeW5jKHRlbGVtZXRyeUZpbGUpKS50b0JlRmFsc3koKTtcbiAgICAgIGV4cGVjdChmaXh0dXJlLm91dHB1dC50b1N0cmluZygpKS50b0NvbnRhaW4oJ1Vuc3RhYmxlIGZlYXR1cmUgdXNlJyk7XG4gICAgfVxuICB9KSxcbik7XG4iXX0=
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path = require("path");
4
+ const fs = require("fs-extra");
5
+ const lib_1 = require("../../../lib");
6
+ jest.setTimeout(2 * 60 * 60_000); // Includes the time to acquire locks, worst-case single-threaded runtime
7
+ (0, lib_1.integTest)('cdk deploy with telemetry data', (0, lib_1.withDefaultFixture)(async (fixture) => {
8
+ const telemetryFile = path.join(fixture.integTestDir, 'telemetry.json');
9
+ // Deploy stack while collecting telemetry
10
+ await fixture.cdkDeploy('test-1', {
11
+ telemetryFile,
12
+ });
13
+ const json = fs.readJSONSync(telemetryFile);
14
+ expect(json).toEqual([
15
+ expect.objectContaining({
16
+ event: expect.objectContaining({
17
+ command: expect.objectContaining({
18
+ path: ['deploy', '$STACKS_1'],
19
+ }),
20
+ state: 'SUCCEEDED',
21
+ eventType: 'SYNTH',
22
+ }),
23
+ identifiers: expect.objectContaining({
24
+ eventId: expect.stringContaining(':1'),
25
+ }),
26
+ }),
27
+ expect.objectContaining({
28
+ event: expect.objectContaining({
29
+ command: expect.objectContaining({
30
+ path: ['deploy', '$STACKS_1'],
31
+ }),
32
+ state: 'SUCCEEDED',
33
+ eventType: 'DEPLOY',
34
+ }),
35
+ identifiers: expect.objectContaining({
36
+ eventId: expect.stringContaining(':2'),
37
+ }),
38
+ }),
39
+ expect.objectContaining({
40
+ event: expect.objectContaining({
41
+ command: expect.objectContaining({
42
+ path: ['deploy', '$STACKS_1'],
43
+ }),
44
+ state: 'SUCCEEDED',
45
+ eventType: 'INVOKE',
46
+ }),
47
+ identifiers: expect.objectContaining({
48
+ eventId: expect.stringContaining(':3'),
49
+ }),
50
+ }),
51
+ ]);
52
+ fs.unlinkSync(telemetryFile);
53
+ }));
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS10ZWxlbWV0cnkuaW50ZWd0ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2RrLWRlcGxveS10ZWxlbWV0cnkuaW50ZWd0ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQixzQ0FBNkQ7QUFFN0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMseUVBQXlFO0FBRTNHLElBQUEsZUFBUyxFQUNQLGdDQUFnQyxFQUNoQyxJQUFBLHdCQUFrQixFQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtJQUNuQyxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUV4RSwwQ0FBMEM7SUFDMUMsTUFBTSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRTtRQUNoQyxhQUFhO0tBQ2QsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ25CLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztZQUN0QixLQUFLLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUM3QixPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO29CQUMvQixJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDO2lCQUM5QixDQUFDO2dCQUNGLEtBQUssRUFBRSxXQUFXO2dCQUNsQixTQUFTLEVBQUUsT0FBTzthQUNuQixDQUFDO1lBQ0YsV0FBVyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDbkMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7YUFDdkMsQ0FBQztTQUNILENBQUM7UUFDRixNQUFNLENBQUMsZ0JBQWdCLENBQUM7WUFDdEIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztnQkFDN0IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQztvQkFDL0IsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsQ0FBQztpQkFDOUIsQ0FBQztnQkFDRixLQUFLLEVBQUUsV0FBVztnQkFDbEIsU0FBUyxFQUFFLFFBQVE7YUFDcEIsQ0FBQztZQUNGLFdBQVcsRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQ25DLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2FBQ3ZDLENBQUM7U0FDSCxDQUFDO1FBQ0YsTUFBTSxDQUFDLGdCQUFnQixDQUFDO1lBQ3RCLEtBQUssRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7b0JBQy9CLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUM7aUJBQzlCLENBQUM7Z0JBQ0YsS0FBSyxFQUFFLFdBQVc7Z0JBQ2xCLFNBQVMsRUFBRSxRQUFRO2FBQ3BCLENBQUM7WUFDRixXQUFXLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDO2dCQUNuQyxPQUFPLEVBQUUsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUN2QyxDQUFDO1NBQ0gsQ0FBQztLQUNILENBQUMsQ0FBQztJQUNILEVBQUUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDL0IsQ0FBQyxDQUFDLENBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBpbnRlZ1Rlc3QsIHdpdGhEZWZhdWx0Rml4dHVyZSB9IGZyb20gJy4uLy4uLy4uL2xpYic7XG5cbmplc3Quc2V0VGltZW91dCgyICogNjAgKiA2MF8wMDApOyAvLyBJbmNsdWRlcyB0aGUgdGltZSB0byBhY3F1aXJlIGxvY2tzLCB3b3JzdC1jYXNlIHNpbmdsZS10aHJlYWRlZCBydW50aW1lXG5cbmludGVnVGVzdChcbiAgJ2NkayBkZXBsb3kgd2l0aCB0ZWxlbWV0cnkgZGF0YScsXG4gIHdpdGhEZWZhdWx0Rml4dHVyZShhc3luYyAoZml4dHVyZSkgPT4ge1xuICAgIGNvbnN0IHRlbGVtZXRyeUZpbGUgPSBwYXRoLmpvaW4oZml4dHVyZS5pbnRlZ1Rlc3REaXIsICd0ZWxlbWV0cnkuanNvbicpO1xuXG4gICAgLy8gRGVwbG95IHN0YWNrIHdoaWxlIGNvbGxlY3RpbmcgdGVsZW1ldHJ5XG4gICAgYXdhaXQgZml4dHVyZS5jZGtEZXBsb3koJ3Rlc3QtMScsIHtcbiAgICAgIHRlbGVtZXRyeUZpbGUsXG4gICAgfSk7XG4gICAgY29uc3QganNvbiA9IGZzLnJlYWRKU09OU3luYyh0ZWxlbWV0cnlGaWxlKTtcbiAgICBleHBlY3QoanNvbikudG9FcXVhbChbXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydkZXBsb3knLCAnJFNUQUNLU18xJ10sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3RhdGU6ICdTVUNDRUVERUQnLFxuICAgICAgICAgIGV2ZW50VHlwZTogJ1NZTlRIJyxcbiAgICAgICAgfSksXG4gICAgICAgIGlkZW50aWZpZXJzOiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgZXZlbnRJZDogZXhwZWN0LnN0cmluZ0NvbnRhaW5pbmcoJzoxJyksXG4gICAgICAgIH0pLFxuICAgICAgfSksXG4gICAgICBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgIGV2ZW50OiBleHBlY3Qub2JqZWN0Q29udGFpbmluZyh7XG4gICAgICAgICAgY29tbWFuZDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgICAgcGF0aDogWydkZXBsb3knLCAnJFNUQUNLU18xJ10sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgc3RhdGU6ICdTVUNDRUVERUQnLFxuICAgICAgICAgIGV2ZW50VHlwZTogJ0RFUExPWScsXG4gICAgICAgIH0pLFxuICAgICAgICBpZGVudGlmaWVyczogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGV2ZW50SWQ6IGV4cGVjdC5zdHJpbmdDb250YWluaW5nKCc6MicpLFxuICAgICAgICB9KSxcbiAgICAgIH0pLFxuICAgICAgZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICBldmVudDogZXhwZWN0Lm9iamVjdENvbnRhaW5pbmcoe1xuICAgICAgICAgIGNvbW1hbmQ6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICAgIHBhdGg6IFsnZGVwbG95JywgJyRTVEFDS1NfMSddLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIHN0YXRlOiAnU1VDQ0VFREVEJyxcbiAgICAgICAgICBldmVudFR5cGU6ICdJTlZPS0UnLFxuICAgICAgICB9KSxcbiAgICAgICAgaWRlbnRpZmllcnM6IGV4cGVjdC5vYmplY3RDb250YWluaW5nKHtcbiAgICAgICAgICBldmVudElkOiBleHBlY3Quc3RyaW5nQ29udGFpbmluZygnOjMnKSxcbiAgICAgICAgfSksXG4gICAgICB9KSxcbiAgICBdKTtcbiAgICBmcy51bmxpbmtTeW5jKHRlbGVtZXRyeUZpbGUpO1xuICB9KSxcbik7XG4iXX0=