@aws-cdk/toolkit-lib 0.1.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 (102) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +16 -0
  3. package/README.md +432 -0
  4. package/build-info.json +4 -0
  5. package/db.json.gz +0 -0
  6. package/lib/actions/deploy/index.d.ts +178 -0
  7. package/lib/actions/deploy/index.js +78 -0
  8. package/lib/actions/deploy/private/deploy-options.d.ts +78 -0
  9. package/lib/actions/deploy/private/deploy-options.js +3 -0
  10. package/lib/actions/deploy/private/helpers.d.ts +15 -0
  11. package/lib/actions/deploy/private/helpers.js +41 -0
  12. package/lib/actions/deploy/private/index.d.ts +2 -0
  13. package/lib/actions/deploy/private/index.js +19 -0
  14. package/lib/actions/destroy/index.d.ts +17 -0
  15. package/lib/actions/destroy/index.js +3 -0
  16. package/lib/actions/diff/index.d.ts +83 -0
  17. package/lib/actions/diff/index.js +45 -0
  18. package/lib/actions/diff/private/helpers.d.ts +7 -0
  19. package/lib/actions/diff/private/helpers.js +20 -0
  20. package/lib/actions/diff/private/index.d.ts +1 -0
  21. package/lib/actions/diff/private/index.js +18 -0
  22. package/lib/actions/import/index.d.ts +21 -0
  23. package/lib/actions/import/index.js +3 -0
  24. package/lib/actions/index.d.ts +6 -0
  25. package/lib/actions/index.js +23 -0
  26. package/lib/actions/list/index.d.ts +7 -0
  27. package/lib/actions/list/index.js +3 -0
  28. package/lib/actions/rollback/index.d.ts +39 -0
  29. package/lib/actions/rollback/index.js +3 -0
  30. package/lib/actions/synth/index.d.ts +12 -0
  31. package/lib/actions/synth/index.js +3 -0
  32. package/lib/actions/watch/index.d.ts +35 -0
  33. package/lib/actions/watch/index.js +3 -0
  34. package/lib/actions/watch/private/helpers.d.ts +4 -0
  35. package/lib/actions/watch/private/helpers.js +8 -0
  36. package/lib/actions/watch/private/index.d.ts +1 -0
  37. package/lib/actions/watch/private/index.js +18 -0
  38. package/lib/api/aws-auth/index.d.ts +1 -0
  39. package/lib/api/aws-auth/index.js +18 -0
  40. package/lib/api/aws-auth/types.d.ts +32 -0
  41. package/lib/api/aws-auth/types.js +3 -0
  42. package/lib/api/aws-cdk.d.ts +25 -0
  43. package/lib/api/aws-cdk.js +9329 -0
  44. package/lib/api/aws-cdk.js.map +7 -0
  45. package/lib/api/cloud-assembly/index.d.ts +3 -0
  46. package/lib/api/cloud-assembly/index.js +20 -0
  47. package/lib/api/cloud-assembly/private/cached-source.d.ts +15 -0
  48. package/lib/api/cloud-assembly/private/cached-source.js +25 -0
  49. package/lib/api/cloud-assembly/private/context-aware-source.d.ts +45 -0
  50. package/lib/api/cloud-assembly/private/context-aware-source.js +89 -0
  51. package/lib/api/cloud-assembly/private/exec.d.ts +13 -0
  52. package/lib/api/cloud-assembly/private/exec.js +56 -0
  53. package/lib/api/cloud-assembly/private/identity-source.d.ts +10 -0
  54. package/lib/api/cloud-assembly/private/identity-source.js +17 -0
  55. package/lib/api/cloud-assembly/private/index.d.ts +8 -0
  56. package/lib/api/cloud-assembly/private/index.js +25 -0
  57. package/lib/api/cloud-assembly/private/prepare-source.d.ts +52 -0
  58. package/lib/api/cloud-assembly/private/prepare-source.js +166 -0
  59. package/lib/api/cloud-assembly/private/source-builder.d.ts +29 -0
  60. package/lib/api/cloud-assembly/private/source-builder.js +121 -0
  61. package/lib/api/cloud-assembly/private/stack-assembly.d.ts +30 -0
  62. package/lib/api/cloud-assembly/private/stack-assembly.js +94 -0
  63. package/lib/api/cloud-assembly/private/stack-selectors.d.ts +2 -0
  64. package/lib/api/cloud-assembly/private/stack-selectors.js +8 -0
  65. package/lib/api/cloud-assembly/source-builder.d.ts +113 -0
  66. package/lib/api/cloud-assembly/source-builder.js +3 -0
  67. package/lib/api/cloud-assembly/stack-selector.d.ts +81 -0
  68. package/lib/api/cloud-assembly/stack-selector.js +64 -0
  69. package/lib/api/cloud-assembly/types.d.ts +7 -0
  70. package/lib/api/cloud-assembly/types.js +3 -0
  71. package/lib/api/errors.d.ts +44 -0
  72. package/lib/api/errors.js +82 -0
  73. package/lib/api/io/index.d.ts +2 -0
  74. package/lib/api/io/index.js +19 -0
  75. package/lib/api/io/io-host.d.ts +15 -0
  76. package/lib/api/io/io-host.js +3 -0
  77. package/lib/api/io/io-message.d.ts +59 -0
  78. package/lib/api/io/io-message.js +3 -0
  79. package/lib/api/io/private/codes.d.ts +37 -0
  80. package/lib/api/io/private/codes.js +48 -0
  81. package/lib/api/io/private/index.d.ts +6 -0
  82. package/lib/api/io/private/index.js +23 -0
  83. package/lib/api/io/private/level-priority.d.ts +11 -0
  84. package/lib/api/io/private/level-priority.js +33 -0
  85. package/lib/api/io/private/logger.d.ts +40 -0
  86. package/lib/api/io/private/logger.js +211 -0
  87. package/lib/api/io/private/messages.d.ts +64 -0
  88. package/lib/api/io/private/messages.js +159 -0
  89. package/lib/api/io/private/timer.d.ts +29 -0
  90. package/lib/api/io/private/timer.js +54 -0
  91. package/lib/api/io/private/types.d.ts +25 -0
  92. package/lib/api/io/private/types.js +3 -0
  93. package/lib/index.d.ts +6 -0
  94. package/lib/index.js +25 -0
  95. package/lib/index_bg.wasm +0 -0
  96. package/lib/toolkit/index.d.ts +1 -0
  97. package/lib/toolkit/index.js +18 -0
  98. package/lib/toolkit/private/index.d.ts +9 -0
  99. package/lib/toolkit/private/index.js +3 -0
  100. package/lib/toolkit/toolkit.d.ts +142 -0
  101. package/lib/toolkit/toolkit.js +644 -0
  102. package/package.json +147 -0
@@ -0,0 +1,29 @@
1
+ import type { ICloudAssemblySource } from '../';
2
+ import { ToolkitServices } from '../../../toolkit/private';
3
+ import { AssemblyBuilder, AssemblySourceProps } from '../source-builder';
4
+ export declare abstract class CloudAssemblySourceBuilder {
5
+ /**
6
+ * Helper to provide the CloudAssemblySourceBuilder with required toolkit services
7
+ * @deprecated this should move to the toolkit really.
8
+ */
9
+ protected abstract sourceBuilderServices(): Promise<ToolkitServices>;
10
+ /**
11
+ * Create a Cloud Assembly from a Cloud Assembly builder function.
12
+ * @param builder the builder function
13
+ * @param props additional configuration properties
14
+ * @returns the CloudAssembly source
15
+ */
16
+ fromAssemblyBuilder(builder: AssemblyBuilder, props?: AssemblySourceProps): Promise<ICloudAssemblySource>;
17
+ /**
18
+ * Creates a Cloud Assembly from an existing assembly directory.
19
+ * @param directory the directory of a already produced Cloud Assembly.
20
+ * @returns the CloudAssembly source
21
+ */
22
+ fromAssemblyDirectory(directory: string): Promise<ICloudAssemblySource>;
23
+ /**
24
+ * Use a directory containing an AWS CDK app as source.
25
+ * @param props additional configuration properties
26
+ * @returns the CloudAssembly source
27
+ */
28
+ fromCdkApp(app: string, props?: AssemblySourceProps): Promise<ICloudAssemblySource>;
29
+ }
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CloudAssemblySourceBuilder = void 0;
4
+ const cxapi = require("@aws-cdk/cx-api");
5
+ const fs = require("fs-extra");
6
+ const context_aware_source_1 = require("./context-aware-source");
7
+ const exec_1 = require("./exec");
8
+ const prepare_source_1 = require("./prepare-source");
9
+ const aws_cdk_1 = require("../../aws-cdk");
10
+ const errors_1 = require("../../errors");
11
+ const private_1 = require("../../io/private");
12
+ class CloudAssemblySourceBuilder {
13
+ /**
14
+ * Create a Cloud Assembly from a Cloud Assembly builder function.
15
+ * @param builder the builder function
16
+ * @param props additional configuration properties
17
+ * @returns the CloudAssembly source
18
+ */
19
+ async fromAssemblyBuilder(builder, props = {}) {
20
+ const services = await this.sourceBuilderServices();
21
+ const context = new aws_cdk_1.Context({ bag: new aws_cdk_1.Settings(props.context ?? {}) });
22
+ const contextAssemblyProps = {
23
+ services,
24
+ context,
25
+ lookups: props.lookups,
26
+ };
27
+ return new context_aware_source_1.ContextAwareCloudAssembly({
28
+ produce: async () => {
29
+ const outdir = (0, prepare_source_1.determineOutputDirectory)(props.outdir);
30
+ const env = await (0, prepare_source_1.prepareDefaultEnvironment)(services, { outdir });
31
+ const assembly = await (0, prepare_source_1.changeDir)(async () => (0, prepare_source_1.withContext)(context.all, env, props.synthOptions ?? {}, async (envWithContext, ctx) => (0, prepare_source_1.withEnv)(envWithContext, () => builder({
32
+ outdir,
33
+ context: ctx,
34
+ }))), props.workingDirectory);
35
+ if (cxapi.CloudAssembly.isCloudAssembly(assembly)) {
36
+ return assembly;
37
+ }
38
+ return new cxapi.CloudAssembly(assembly.directory);
39
+ },
40
+ }, contextAssemblyProps);
41
+ }
42
+ /**
43
+ * Creates a Cloud Assembly from an existing assembly directory.
44
+ * @param directory the directory of a already produced Cloud Assembly.
45
+ * @returns the CloudAssembly source
46
+ */
47
+ async fromAssemblyDirectory(directory) {
48
+ const services = await this.sourceBuilderServices();
49
+ const contextAssemblyProps = {
50
+ services,
51
+ context: new aws_cdk_1.Context(), // @todo there is probably a difference between contextaware and contextlookup sources
52
+ lookups: false,
53
+ };
54
+ return new context_aware_source_1.ContextAwareCloudAssembly({
55
+ produce: async () => {
56
+ // @todo build
57
+ await services.ioHost.notify((0, private_1.debug)('--app points to a cloud assembly, so we bypass synth'));
58
+ return (0, prepare_source_1.assemblyFromDirectory)(directory, services.ioHost);
59
+ },
60
+ }, contextAssemblyProps);
61
+ }
62
+ /**
63
+ * Use a directory containing an AWS CDK app as source.
64
+ * @param props additional configuration properties
65
+ * @returns the CloudAssembly source
66
+ */
67
+ async fromCdkApp(app, props = {}) {
68
+ const services = await this.sourceBuilderServices();
69
+ // @todo this definitely needs to read files from the CWD
70
+ const context = new aws_cdk_1.Context({ bag: new aws_cdk_1.Settings(props.context ?? {}) });
71
+ const contextAssemblyProps = {
72
+ services,
73
+ context,
74
+ lookups: props.lookups,
75
+ };
76
+ return new context_aware_source_1.ContextAwareCloudAssembly({
77
+ produce: async () => {
78
+ let lock = undefined;
79
+ try {
80
+ // @todo build
81
+ // const build = this.props.configuration.settings.get(['build']);
82
+ // if (build) {
83
+ // await execInChildProcess(build, { cwd: props.workingDirectory });
84
+ // }
85
+ const commandLine = await (0, prepare_source_1.guessExecutable)(app);
86
+ const outdir = props.outdir ?? 'cdk.out';
87
+ try {
88
+ fs.mkdirpSync(outdir);
89
+ }
90
+ catch (e) {
91
+ throw new errors_1.ToolkitError(`Could not create output directory at '${outdir}' (${e.message}).`);
92
+ }
93
+ lock = await new aws_cdk_1.RWLock(outdir).acquireWrite();
94
+ const env = await (0, prepare_source_1.prepareDefaultEnvironment)(services, { outdir });
95
+ return await (0, prepare_source_1.withContext)(context.all, env, props.synthOptions, async (envWithContext, _ctx) => {
96
+ await (0, exec_1.execInChildProcess)(commandLine.join(' '), {
97
+ eventPublisher: async (type, line) => {
98
+ switch (type) {
99
+ case 'data_stdout':
100
+ await services.ioHost.notify((0, private_1.info)(line, 'CDK_ASSEMBLY_I1001'));
101
+ break;
102
+ case 'data_stderr':
103
+ await services.ioHost.notify((0, private_1.error)(line, 'CDK_ASSEMBLY_E1002'));
104
+ break;
105
+ }
106
+ },
107
+ extraEnv: envWithContext,
108
+ cwd: props.workingDirectory,
109
+ });
110
+ return (0, prepare_source_1.assemblyFromDirectory)(outdir, services.ioHost);
111
+ });
112
+ }
113
+ finally {
114
+ await lock?.release();
115
+ }
116
+ },
117
+ }, contextAssemblyProps);
118
+ }
119
+ }
120
+ exports.CloudAssemblySourceBuilder = CloudAssemblySourceBuilder;
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBeUM7QUFDekMsK0JBQStCO0FBRS9CLGlFQUFtRztBQUNuRyxpQ0FBNEM7QUFDNUMscURBQWdLO0FBRWhLLDJDQUFpRTtBQUNqRSx5Q0FBNEM7QUFDNUMsOENBQXNEO0FBR3RELE1BQXNCLDBCQUEwQjtJQU85Qzs7Ozs7T0FLRztJQUNJLEtBQUssQ0FBQyxtQkFBbUIsQ0FDOUIsT0FBd0IsRUFDeEIsUUFBNkIsRUFBRTtRQUUvQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLGtCQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEUsTUFBTSxvQkFBb0IsR0FBbUM7WUFDM0QsUUFBUTtZQUNSLE9BQU87WUFDUCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDdkIsQ0FBQztRQUVGLE9BQU8sSUFBSSxnREFBeUIsQ0FDbEM7WUFDRSxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUU7Z0JBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUEseUNBQXdCLEVBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN0RCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsMENBQXlCLEVBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztnQkFDbEUsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLDBCQUFTLEVBQUMsS0FBSyxJQUFJLEVBQUUsQ0FDMUMsSUFBQSw0QkFBVyxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFLEtBQUss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QUEsNEJBQVcsRUFBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLEVBQUU7d0JBQzVGLE1BQU0sSUFBQSx5QkFBa0IsRUFBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFOzRCQUM5QyxjQUFjLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRTtnQ0FDbkMsUUFBUSxJQUFJLEVBQUUsQ0FBQztvQ0FDYixLQUFLLGFBQWE7d0NBQ2hCLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBQSxjQUFJLEVBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQzt3Q0FDL0QsTUFBTTtvQ0FDUixLQUFLLGFBQWE7d0NBQ2hCLE1BQU0sUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBQSxlQUFLLEVBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLENBQUMsQ0FBQzt3Q0FDaEUsTUFBTTtnQ0FDVixDQUFDOzRCQUNILENBQUM7NEJBQ0QsUUFBUSxFQUFFLGNBQWM7NEJBQ3hCLEdBQUcsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO3lCQUM1QixDQUFDLENBQUM7d0JBQ0gsT0FBTyxJQUFBLHNDQUFxQixFQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hELENBQUMsQ0FBQyxDQUFDO2dCQUNMLENBQUM7d0JBQVMsQ0FBQztvQkFDVCxNQUFNLElBQUksRUFBRSxPQUFPLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQztZQUNILENBQUM7U0FDRixFQUNELG9CQUFvQixDQUNyQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBeElELGdFQXdJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgdHlwZSB7IElDbG91ZEFzc2VtYmx5U291cmNlIH0gZnJvbSAnLi4vJztcbmltcG9ydCB7IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHksIENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyB9IGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuaW1wb3J0IHsgZXhlY0luQ2hpbGRQcm9jZXNzIH0gZnJvbSAnLi9leGVjJztcbmltcG9ydCB7IGFzc2VtYmx5RnJvbURpcmVjdG9yeSwgY2hhbmdlRGlyLCBkZXRlcm1pbmVPdXRwdXREaXJlY3RvcnksIGd1ZXNzRXhlY3V0YWJsZSwgcHJlcGFyZURlZmF1bHRFbnZpcm9ubWVudCwgd2l0aENvbnRleHQsIHdpdGhFbnYgfSBmcm9tICcuL3ByZXBhcmUtc291cmNlJztcbmltcG9ydCB7IFRvb2xraXRTZXJ2aWNlcyB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvcHJpdmF0ZSc7XG5pbXBvcnQgeyBDb250ZXh0LCBJTG9jaywgUldMb2NrLCBTZXR0aW5ncyB9IGZyb20gJy4uLy4uL2F3cy1jZGsnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vZXJyb3JzJztcbmltcG9ydCB7IGRlYnVnLCBlcnJvciwgaW5mbyB9IGZyb20gJy4uLy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgQXNzZW1ibHlCdWlsZGVyLCBBc3NlbWJseVNvdXJjZVByb3BzIH0gZnJvbSAnLi4vc291cmNlLWJ1aWxkZXInO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xvdWRBc3NlbWJseVNvdXJjZUJ1aWxkZXIge1xuICAvKipcbiAgICogSGVscGVyIHRvIHByb3ZpZGUgdGhlIENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIHdpdGggcmVxdWlyZWQgdG9vbGtpdCBzZXJ2aWNlc1xuICAgKiBAZGVwcmVjYXRlZCB0aGlzIHNob3VsZCBtb3ZlIHRvIHRoZSB0b29sa2l0IHJlYWxseS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzb3VyY2VCdWlsZGVyU2VydmljZXMoKTogUHJvbWlzZTxUb29sa2l0U2VydmljZXM+O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBDbG91ZCBBc3NlbWJseSBmcm9tIGEgQ2xvdWQgQXNzZW1ibHkgYnVpbGRlciBmdW5jdGlvbi5cbiAgICogQHBhcmFtIGJ1aWxkZXIgdGhlIGJ1aWxkZXIgZnVuY3Rpb25cbiAgICogQHBhcmFtIHByb3BzIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIHRoZSBDbG91ZEFzc2VtYmx5IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZyb21Bc3NlbWJseUJ1aWxkZXIoXG4gICAgYnVpbGRlcjogQXNzZW1ibHlCdWlsZGVyLFxuICAgIHByb3BzOiBBc3NlbWJseVNvdXJjZVByb3BzID0ge30sXG4gICk6IFByb21pc2U8SUNsb3VkQXNzZW1ibHlTb3VyY2U+IHtcbiAgICBjb25zdCBzZXJ2aWNlcyA9IGF3YWl0IHRoaXMuc291cmNlQnVpbGRlclNlcnZpY2VzKCk7XG4gICAgY29uc3QgY29udGV4dCA9IG5ldyBDb250ZXh0KHsgYmFnOiBuZXcgU2V0dGluZ3MocHJvcHMuY29udGV4dCA/PyB7fSkgfSk7XG4gICAgY29uc3QgY29udGV4dEFzc2VtYmx5UHJvcHM6IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyA9IHtcbiAgICAgIHNlcnZpY2VzLFxuICAgICAgY29udGV4dCxcbiAgICAgIGxvb2t1cHM6IHByb3BzLmxvb2t1cHMsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseShcbiAgICAgIHtcbiAgICAgICAgcHJvZHVjZTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG91dGRpciA9IGRldGVybWluZU91dHB1dERpcmVjdG9yeShwcm9wcy5vdXRkaXIpO1xuICAgICAgICAgIGNvbnN0IGVudiA9IGF3YWl0IHByZXBhcmVEZWZhdWx0RW52aXJvbm1lbnQoc2VydmljZXMsIHsgb3V0ZGlyIH0pO1xuICAgICAgICAgIGNvbnN0IGFzc2VtYmx5ID0gYXdhaXQgY2hhbmdlRGlyKGFzeW5jICgpID0+XG4gICAgICAgICAgICB3aXRoQ29udGV4dChjb250ZXh0LmFsbCwgZW52LCBwcm9wcy5zeW50aE9wdGlvbnMgPz8ge30sIGFzeW5jIChlbnZXaXRoQ29udGV4dCwgY3R4KSA9PlxuICAgICAgICAgICAgICB3aXRoRW52KGVudldpdGhDb250ZXh0LCAoKSA9PiBidWlsZGVyKHtcbiAgICAgICAgICAgICAgICBvdXRkaXIsXG4gICAgICAgICAgICAgICAgY29udGV4dDogY3R4LFxuICAgICAgICAgICAgICB9KSksXG4gICAgICAgICAgICApLCBwcm9wcy53b3JraW5nRGlyZWN0b3J5KTtcblxuICAgICAgICAgIGlmIChjeGFwaS5DbG91ZEFzc2VtYmx5LmlzQ2xvdWRBc3NlbWJseShhc3NlbWJseSkpIHtcbiAgICAgICAgICAgIHJldHVybiBhc3NlbWJseTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gbmV3IGN4YXBpLkNsb3VkQXNzZW1ibHkoYXNzZW1ibHkuZGlyZWN0b3J5KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0QXNzZW1ibHlQcm9wcyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZCBBc3NlbWJseSBmcm9tIGFuIGV4aXN0aW5nIGFzc2VtYmx5IGRpcmVjdG9yeS5cbiAgICogQHBhcmFtIGRpcmVjdG9yeSB0aGUgZGlyZWN0b3J5IG9mIGEgYWxyZWFkeSBwcm9kdWNlZCBDbG91ZCBBc3NlbWJseS5cbiAgICogQHJldHVybnMgdGhlIENsb3VkQXNzZW1ibHkgc291cmNlXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZnJvbUFzc2VtYmx5RGlyZWN0b3J5KGRpcmVjdG9yeTogc3RyaW5nKTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXMgPSBhd2FpdCB0aGlzLnNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpO1xuICAgIGNvbnN0IGNvbnRleHRBc3NlbWJseVByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgPSB7XG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIGNvbnRleHQ6IG5ldyBDb250ZXh0KCksIC8vIEB0b2RvIHRoZXJlIGlzIHByb2JhYmx5IGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGNvbnRleHRhd2FyZSBhbmQgY29udGV4dGxvb2t1cCBzb3VyY2VzXG4gICAgICBsb29rdXBzOiBmYWxzZSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG5ldyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5KFxuICAgICAge1xuICAgICAgICBwcm9kdWNlOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgLy8gQHRvZG8gYnVpbGRcbiAgICAgICAgICBhd2FpdCBzZXJ2aWNlcy5pb0hvc3Qubm90aWZ5KGRlYnVnKCctLWFwcCBwb2ludHMgdG8gYSBjbG91ZCBhc3NlbWJseSwgc28gd2UgYnlwYXNzIHN5bnRoJykpO1xuICAgICAgICAgIHJldHVybiBhc3NlbWJseUZyb21EaXJlY3RvcnkoZGlyZWN0b3J5LCBzZXJ2aWNlcy5pb0hvc3QpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvbnRleHRBc3NlbWJseVByb3BzLFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSBhIGRpcmVjdG9yeSBjb250YWluaW5nIGFuIEFXUyBDREsgYXBwIGFzIHNvdXJjZS5cbiAgICogQHBhcmFtIHByb3BzIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIHRoZSBDbG91ZEFzc2VtYmx5IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZyb21DZGtBcHAoYXBwOiBzdHJpbmcsIHByb3BzOiBBc3NlbWJseVNvdXJjZVByb3BzID0ge30pOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgY29uc3Qgc2VydmljZXM6IFRvb2xraXRTZXJ2aWNlcyA9IGF3YWl0IHRoaXMuc291cmNlQnVpbGRlclNlcnZpY2VzKCk7XG4gICAgLy8gQHRvZG8gdGhpcyBkZWZpbml0ZWx5IG5lZWRzIHRvIHJlYWQgZmlsZXMgZnJvbSB0aGUgQ1dEXG4gICAgY29uc3QgY29udGV4dCA9IG5ldyBDb250ZXh0KHsgYmFnOiBuZXcgU2V0dGluZ3MocHJvcHMuY29udGV4dCA/PyB7fSkgfSk7XG4gICAgY29uc3QgY29udGV4dEFzc2VtYmx5UHJvcHM6IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyA9IHtcbiAgICAgIHNlcnZpY2VzLFxuICAgICAgY29udGV4dCxcbiAgICAgIGxvb2t1cHM6IHByb3BzLmxvb2t1cHMsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseShcbiAgICAgIHtcbiAgICAgICAgcHJvZHVjZTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGxldCBsb2NrOiBJTG9jayB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgLy8gQHRvZG8gYnVpbGRcbiAgICAgICAgICAgIC8vIGNvbnN0IGJ1aWxkID0gdGhpcy5wcm9wcy5jb25maWd1cmF0aW9uLnNldHRpbmdzLmdldChbJ2J1aWxkJ10pO1xuICAgICAgICAgICAgLy8gaWYgKGJ1aWxkKSB7XG4gICAgICAgICAgICAvLyAgIGF3YWl0IGV4ZWNJbkNoaWxkUHJvY2VzcyhidWlsZCwgeyBjd2Q6IHByb3BzLndvcmtpbmdEaXJlY3RvcnkgfSk7XG4gICAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmRMaW5lID0gYXdhaXQgZ3Vlc3NFeGVjdXRhYmxlKGFwcCk7XG4gICAgICAgICAgICBjb25zdCBvdXRkaXIgPSBwcm9wcy5vdXRkaXIgPz8gJ2Nkay5vdXQnO1xuXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBmcy5ta2RpcnBTeW5jKG91dGRpcik7XG4gICAgICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgQ291bGQgbm90IGNyZWF0ZSBvdXRwdXQgZGlyZWN0b3J5IGF0ICcke291dGRpcn0nICgke2UubWVzc2FnZX0pLmApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsb2NrID0gYXdhaXQgbmV3IFJXTG9jayhvdXRkaXIpLmFjcXVpcmVXcml0ZSgpO1xuXG4gICAgICAgICAgICBjb25zdCBlbnYgPSBhd2FpdCBwcmVwYXJlRGVmYXVsdEVudmlyb25tZW50KHNlcnZpY2VzLCB7IG91dGRpciB9KTtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB3aXRoQ29udGV4dChjb250ZXh0LmFsbCwgZW52LCBwcm9wcy5zeW50aE9wdGlvbnMsIGFzeW5jIChlbnZXaXRoQ29udGV4dCwgX2N0eCkgPT4ge1xuICAgICAgICAgICAgICBhd2FpdCBleGVjSW5DaGlsZFByb2Nlc3MoY29tbWFuZExpbmUuam9pbignICcpLCB7XG4gICAgICAgICAgICAgICAgZXZlbnRQdWJsaXNoZXI6IGFzeW5jICh0eXBlLCBsaW5lKSA9PiB7XG4gICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGF0YV9zdGRvdXQnOlxuICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSG9zdC5ub3RpZnkoaW5mbyhsaW5lLCAnQ0RLX0FTU0VNQkxZX0kxMDAxJykpO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdkYXRhX3N0ZGVycic6XG4gICAgICAgICAgICAgICAgICAgICAgYXdhaXQgc2VydmljZXMuaW9Ib3N0Lm5vdGlmeShlcnJvcihsaW5lLCAnQ0RLX0FTU0VNQkxZX0UxMDAyJykpO1xuICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXh0cmFFbnY6IGVudldpdGhDb250ZXh0LFxuICAgICAgICAgICAgICAgIGN3ZDogcHJvcHMud29ya2luZ0RpcmVjdG9yeSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIHJldHVybiBhc3NlbWJseUZyb21EaXJlY3Rvcnkob3V0ZGlyLCBzZXJ2aWNlcy5pb0hvc3QpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIGF3YWl0IGxvY2s/LnJlbGVhc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29udGV4dEFzc2VtYmx5UHJvcHMsXG4gICAgKTtcbiAgfVxufVxuXG4iXX0=
@@ -0,0 +1,30 @@
1
+ import * as cxapi from '@aws-cdk/cx-api';
2
+ import { CloudAssembly, StackCollection } from '../../aws-cdk';
3
+ import { StackSelector } from '../stack-selector';
4
+ import { ICloudAssemblySource } from '../types';
5
+ /**
6
+ * A single Cloud Assembly wrapped to provide additional stack operations.
7
+ */
8
+ export declare class StackAssembly extends CloudAssembly implements ICloudAssemblySource {
9
+ produce(): Promise<cxapi.CloudAssembly>;
10
+ /**
11
+ * Improved stack selection interface with a single selector
12
+ * @throws when the assembly does not contain any stacks, unless `selector.failOnEmpty` is `false`
13
+ * @throws when individual selection strategies are not satisfied
14
+ */
15
+ selectStacksV2(selector: StackSelector): StackCollection;
16
+ /**
17
+ * Select all stacks.
18
+ *
19
+ * This method never throws and can safely be used as a basis for other calculations.
20
+ *
21
+ * @returns a `StackCollection` of all stacks
22
+ */
23
+ selectAllStacks(): StackCollection;
24
+ /**
25
+ * Select all stacks that have the validateOnSynth flag et.
26
+ *
27
+ * @returns a `StackCollection` of all stacks that needs to be validated
28
+ */
29
+ selectStacksForValidation(): StackCollection;
30
+ }
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StackAssembly = void 0;
4
+ const semver_1 = require("semver");
5
+ const aws_cdk_1 = require("../../aws-cdk");
6
+ const errors_1 = require("../../errors");
7
+ const stack_selector_1 = require("../stack-selector");
8
+ /**
9
+ * A single Cloud Assembly wrapped to provide additional stack operations.
10
+ */
11
+ class StackAssembly extends aws_cdk_1.CloudAssembly {
12
+ async produce() {
13
+ return this.assembly;
14
+ }
15
+ /**
16
+ * Improved stack selection interface with a single selector
17
+ * @throws when the assembly does not contain any stacks, unless `selector.failOnEmpty` is `false`
18
+ * @throws when individual selection strategies are not satisfied
19
+ */
20
+ selectStacksV2(selector) {
21
+ const asm = this.assembly;
22
+ const topLevelStacks = asm.stacks;
23
+ const allStacks = (0, semver_1.major)(asm.version) < 10 ? asm.stacks : asm.stacksRecursively;
24
+ if (allStacks.length === 0 && (selector.failOnEmpty ?? true)) {
25
+ throw new errors_1.ToolkitError('This app contains no stacks');
26
+ }
27
+ const extend = expandToExtendEnum(selector.expand);
28
+ const patterns = (0, aws_cdk_1.sanitizePatterns)(selector.patterns ?? []);
29
+ switch (selector.strategy) {
30
+ case stack_selector_1.StackSelectionStrategy.ALL_STACKS:
31
+ return new aws_cdk_1.StackCollection(this, allStacks);
32
+ case stack_selector_1.StackSelectionStrategy.MAIN_ASSEMBLY:
33
+ if (topLevelStacks.length < 1) {
34
+ // @todo text should probably be handled in io host
35
+ throw new errors_1.ToolkitError('No stack found in the main cloud assembly. Use "list" to print manifest');
36
+ }
37
+ return this.extendStacks(topLevelStacks, allStacks, extend);
38
+ case stack_selector_1.StackSelectionStrategy.ONLY_SINGLE:
39
+ if (topLevelStacks.length !== 1) {
40
+ // @todo text should probably be handled in io host
41
+ throw new errors_1.ToolkitError('Since this app includes more than a single stack, specify which stacks to use (wildcards are supported) or specify `--all`\n' +
42
+ `Stacks: ${allStacks.map(x => x.hierarchicalId).join(' · ')}`);
43
+ }
44
+ return new aws_cdk_1.StackCollection(this, topLevelStacks);
45
+ default:
46
+ const matched = this.selectMatchingStacks(allStacks, patterns, extend);
47
+ if (selector.strategy === stack_selector_1.StackSelectionStrategy.PATTERN_MUST_MATCH_SINGLE
48
+ && matched.stackCount !== 1) {
49
+ // @todo text should probably be handled in io host
50
+ throw new errors_1.ToolkitError(`Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);
51
+ }
52
+ if (selector.strategy === stack_selector_1.StackSelectionStrategy.PATTERN_MUST_MATCH
53
+ && matched.stackCount < 1) {
54
+ // @todo text should probably be handled in io host
55
+ throw new errors_1.ToolkitError(`Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);
56
+ }
57
+ return matched;
58
+ }
59
+ }
60
+ /**
61
+ * Select all stacks.
62
+ *
63
+ * This method never throws and can safely be used as a basis for other calculations.
64
+ *
65
+ * @returns a `StackCollection` of all stacks
66
+ */
67
+ selectAllStacks() {
68
+ const allStacks = (0, semver_1.major)(this.assembly.version) < 10 ? this.assembly.stacks : this.assembly.stacksRecursively;
69
+ return new aws_cdk_1.StackCollection(this, allStacks);
70
+ }
71
+ /**
72
+ * Select all stacks that have the validateOnSynth flag et.
73
+ *
74
+ * @returns a `StackCollection` of all stacks that needs to be validated
75
+ */
76
+ selectStacksForValidation() {
77
+ const allStacks = this.selectAllStacks();
78
+ return allStacks.filter((art) => art.validateOnSynth ?? false);
79
+ }
80
+ }
81
+ exports.StackAssembly = StackAssembly;
82
+ function expandToExtendEnum(extend) {
83
+ switch (extend) {
84
+ case stack_selector_1.ExpandStackSelection.DOWNSTREAM:
85
+ return aws_cdk_1.ExtendedStackSelection.Downstream;
86
+ case stack_selector_1.ExpandStackSelection.UPSTREAM:
87
+ return aws_cdk_1.ExtendedStackSelection.Upstream;
88
+ case stack_selector_1.ExpandStackSelection.NONE:
89
+ return aws_cdk_1.ExtendedStackSelection.None;
90
+ default:
91
+ return undefined;
92
+ }
93
+ }
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtQ0FBK0I7QUFDL0IsMkNBQXNJO0FBQ3RJLHlDQUE0QztBQUM1QyxzREFBZ0c7QUFHaEc7O0dBRUc7QUFDSCxNQUFhLGFBQWMsU0FBUSx1QkFBYTtJQUN2QyxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxjQUFjLENBQUMsUUFBdUI7UUFDM0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMxQixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUEsY0FBSyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQztRQUUvRSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzdELE1BQU0sSUFBSSxxQkFBWSxDQUFDLDZCQUE2QixDQUFDLENBQUM7UUFDeEQsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFBLDBCQUFnQixFQUFDLFFBQVEsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0QsUUFBUSxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDMUIsS0FBSyx1Q0FBc0IsQ0FBQyxVQUFVO2dCQUNwQyxPQUFPLElBQUkseUJBQWUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENB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LE9BQU8sZ0NBQXlCLENBQUMsSUFBSSxDQUFDO1FBQ3hDO1lBQ0UsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHsgbWFqb3IgfSBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgQ2xvdWRBc3NlbWJseSwgc2FuaXRpemVQYXR0ZXJucywgU3RhY2tDb2xsZWN0aW9uLCBFeHRlbmRlZFN0YWNrU2VsZWN0aW9uIGFzIENsaUV4dGVuZGVkU3RhY2tTZWxlY3Rpb24gfSBmcm9tICcuLi8uLi9hd3MtY2RrJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL2Vycm9ycyc7XG5pbXBvcnQgeyBFeHBhbmRTdGFja1NlbGVjdGlvbiwgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSwgU3RhY2tTZWxlY3RvciB9IGZyb20gJy4uL3N0YWNrLXNlbGVjdG9yJztcbmltcG9ydCB7IElDbG91ZEFzc2VtYmx5U291cmNlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG4vKipcbiAqIEEgc2luZ2xlIENsb3VkIEFzc2VtYmx5IHdyYXBwZWQgdG8gcHJvdmlkZSBhZGRpdGlvbmFsIHN0YWNrIG9wZXJhdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja0Fzc2VtYmx5IGV4dGVuZHMgQ2xvdWRBc3NlbWJseSBpbXBsZW1lbnRzIElDbG91ZEFzc2VtYmx5U291cmNlIHtcbiAgcHVibGljIGFzeW5jIHByb2R1Y2UoKTogUHJvbWlzZTxjeGFwaS5DbG91ZEFzc2VtYmx5PiB7XG4gICAgcmV0dXJuIHRoaXMuYXNzZW1ibHk7XG4gIH1cblxuICAvKipcbiAgICogSW1wcm92ZWQgc3RhY2sgc2VsZWN0aW9uIGludGVyZmFjZSB3aXRoIGEgc2luZ2xlIHNlbGVjdG9yXG4gICAqIEB0aHJvd3Mgd2hlbiB0aGUgYXNzZW1ibHkgZG9lcyBub3QgY29udGFpbiBhbnkgc3RhY2tzLCB1bmxlc3MgYHNlbGVjdG9yLmZhaWxPbkVtcHR5YCBpcyBgZmFsc2VgXG4gICAqIEB0aHJvd3Mgd2hlbiBpbmRpdmlkdWFsIHNlbGVjdGlvbiBzdHJhdGVnaWVzIGFyZSBub3Qgc2F0aXNmaWVkXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0U3RhY2tzVjIoc2VsZWN0b3I6IFN0YWNrU2VsZWN0b3IpOiBTdGFja0NvbGxlY3Rpb24ge1xuICAgIGNvbnN0IGFzbSA9IHRoaXMuYXNzZW1ibHk7XG4gICAgY29uc3QgdG9wTGV2ZWxTdGFja3MgPSBhc20uc3RhY2tzO1xuICAgIGNvbnN0IGFsbFN0YWNrcyA9IG1ham9yKGFzbS52ZXJzaW9uKSA8IDEwID8gYXNtLnN0YWNrcyA6IGFzbS5zdGFja3NSZWN1cnNpdmVseTtcblxuICAgIGlmIChhbGxTdGFja3MubGVuZ3RoID09PSAwICYmIChzZWxlY3Rvci5mYWlsT25FbXB0eSA/PyB0cnVlKSkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignVGhpcyBhcHAgY29udGFpbnMgbm8gc3RhY2tzJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZXh0ZW5kID0gZXhwYW5kVG9FeHRlbmRFbnVtKHNlbGVjdG9yLmV4cGFuZCk7XG4gICAgY29uc3QgcGF0dGVybnMgPSBzYW5pdGl6ZVBhdHRlcm5zKHNlbGVjdG9yLnBhdHRlcm5zID8/IFtdKTtcblxuICAgIHN3aXRjaCAoc2VsZWN0b3Iuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5BTExfU1RBQ0tTOlxuICAgICAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLCBhbGxTdGFja3MpO1xuICAgICAgY2FzZSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5Lk1BSU5fQVNTRU1CTFk6XG4gICAgICAgIGlmICh0b3BMZXZlbFN0YWNrcy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignTm8gc3RhY2sgZm91bmQgaW4gdGhlIG1haW4gY2xvdWQgYXNzZW1ibHkuIFVzZSBcImxpc3RcIiB0byBwcmludCBtYW5pZmVzdCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmV4dGVuZFN0YWNrcyh0b3BMZXZlbFN0YWNrcywgYWxsU3RhY2tzLCBleHRlbmQpO1xuICAgICAgY2FzZSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5Lk9OTFlfU0lOR0xFOlxuICAgICAgICBpZiAodG9wTGV2ZWxTdGFja3MubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU2luY2UgdGhpcyBhcHAgaW5jbHVkZXMgbW9yZSB0aGFuIGEgc2luZ2xlIHN0YWNrLCBzcGVjaWZ5IHdoaWNoIHN0YWNrcyB0byB1c2UgKHdpbGRjYXJkcyBhcmUgc3VwcG9ydGVkKSBvciBzcGVjaWZ5IGAtLWFsbGBcXG4nICtcbiAgICAgICAgICBgU3RhY2tzOiAke2FsbFN0YWNrcy5tYXAoeCA9PiB4LmhpZXJhcmNoaWNhbElkKS5qb2luKCcgwrcgJyl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcywgdG9wTGV2ZWxTdGFja3MpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc3QgbWF0Y2hlZCA9IHRoaXMuc2VsZWN0TWF0Y2hpbmdTdGFja3MoYWxsU3RhY2tzLCBwYXR0ZXJucywgZXh0ZW5kKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdG9yLnN0cmF0ZWd5ID09PSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSF9TSU5HTEVcbiAgICAgICAgICAmJiBtYXRjaGVkLnN0YWNrQ291bnQgIT09IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAgIGBTdGFjayBzZWxlY3Rpb24gaXMgYW1iaWd1b3VzLCBwbGVhc2UgY2hvb3NlIGEgc3BlY2lmaWMgc3RhY2sgZm9yIGltcG9ydCBbJHthbGxTdGFja3MubWFwKHggPT4geC5oaWVyYXJjaGljYWxJZCkuam9pbignLCcpfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdG9yLnN0cmF0ZWd5ID09PSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSFxuICAgICAgICAgICYmIG1hdGNoZWQuc3RhY2tDb3VudCA8IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAgIGBTdGFjayBzZWxlY3Rpb24gaXMgYW1iaWd1b3VzLCBwbGVhc2UgY2hvb3NlIGEgc3BlY2lmaWMgc3RhY2sgZm9yIGltcG9ydCBbJHthbGxTdGFja3MubWFwKHggPT4geC5oaWVyYXJjaGljYWxJZCkuam9pbignLCcpfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWF0Y2hlZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGFsbCBzdGFja3MuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIG5ldmVyIHRocm93cyBhbmQgY2FuIHNhZmVseSBiZSB1c2VkIGFzIGEgYmFzaXMgZm9yIG90aGVyIGNhbGN1bGF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMgYSBgU3RhY2tDb2xsZWN0aW9uYCBvZiBhbGwgc3RhY2tzXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0QWxsU3RhY2tzKCkge1xuICAgIGNvbnN0IGFsbFN0YWNrcyA9IG1ham9yKHRoaXMuYXNzZW1ibHkudmVyc2lvbikgPCAxMCA/IHRoaXMuYXNzZW1ibHkuc3RhY2tzIDogdGhpcy5hc3NlbWJseS5zdGFja3NSZWN1cnNpdmVseTtcbiAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLCBhbGxTdGFja3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhbGwgc3RhY2tzIHRoYXQgaGF2ZSB0aGUgdmFsaWRhdGVPblN5bnRoIGZsYWcgZXQuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgYFN0YWNrQ29sbGVjdGlvbmAgb2YgYWxsIHN0YWNrcyB0aGF0IG5lZWRzIHRvIGJlIHZhbGlkYXRlZFxuICAgKi9cbiAgcHVibGljIHNlbGVjdFN0YWNrc0ZvclZhbGlkYXRpb24oKSB7XG4gICAgY29uc3QgYWxsU3RhY2tzID0gdGhpcy5zZWxlY3RBbGxTdGFja3MoKTtcbiAgICByZXR1cm4gYWxsU3RhY2tzLmZpbHRlcigoYXJ0KSA9PiBhcnQudmFsaWRhdGVPblN5bnRoID8/IGZhbHNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHBhbmRUb0V4dGVuZEVudW0oZXh0ZW5kPzogRXhwYW5kU3RhY2tTZWxlY3Rpb24pOiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgc3dpdGNoIChleHRlbmQpIHtcbiAgICBjYXNlIEV4cGFuZFN0YWNrU2VsZWN0aW9uLkRPV05TVFJFQU06XG4gICAgICByZXR1cm4gQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5Eb3duc3RyZWFtO1xuICAgIGNhc2UgRXhwYW5kU3RhY2tTZWxlY3Rpb24uVVBTVFJFQU06XG4gICAgICByZXR1cm4gQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5VcHN0cmVhbTtcbiAgICBjYXNlIEV4cGFuZFN0YWNrU2VsZWN0aW9uLk5PTkU6XG4gICAgICByZXR1cm4gQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5Ob25lO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ import { StackSelector } from '../stack-selector';
2
+ export declare const ALL_STACKS: StackSelector;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ALL_STACKS = void 0;
4
+ const stack_selector_1 = require("../stack-selector");
5
+ exports.ALL_STACKS = {
6
+ strategy: stack_selector_1.StackSelectionStrategy.ALL_STACKS,
7
+ };
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhY2stc2VsZWN0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUEwRTtBQUU3RCxRQUFBLFVBQVUsR0FBa0I7SUFDdkMsUUFBUSxFQUFFLHVDQUFzQixDQUFDLFVBQVU7Q0FDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3ksIFN0YWNrU2VsZWN0b3IgfSBmcm9tICcuLi9zdGFjay1zZWxlY3Rvcic7XG5cbmV4cG9ydCBjb25zdCBBTExfU1RBQ0tTOiBTdGFja1NlbGVjdG9yID0ge1xuICBzdHJhdGVneTogU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5BTExfU1RBQ0tTLFxufTtcbiJdfQ==
@@ -0,0 +1,113 @@
1
+ import type * as cxschema from '@aws-cdk/cloud-assembly-schema';
2
+ /**
3
+ * Properties the builder function receives.
4
+ */
5
+ export interface AssemblyBuilderProps {
6
+ /**
7
+ * The output directory into which to the builder app will emit synthesized artifacts.
8
+ */
9
+ readonly outdir?: string;
10
+ /**
11
+ * The context provided tp the builder app to synthesize the Cloud Assembly, including looked-up context.
12
+ */
13
+ readonly context?: {
14
+ [key: string]: any;
15
+ };
16
+ }
17
+ export type AssemblyBuilder = (props: AssemblyBuilderProps) => Promise<cxschema.ICloudAssembly>;
18
+ /**
19
+ * Configuration for creating a CLI from an AWS CDK App directory
20
+ */
21
+ export interface AssemblySourceProps {
22
+ /**
23
+ * Execute the application in this working directory.
24
+ *
25
+ * @default - current working directory
26
+ */
27
+ readonly workingDirectory?: string;
28
+ /**
29
+ * Emits the synthesized cloud assembly into a directory
30
+ *
31
+ * @default cdk.out
32
+ */
33
+ readonly outdir?: string;
34
+ /**
35
+ * Perform context lookups.
36
+ *
37
+ * Synthesis fails if this is disabled and context lookups need to be performed.
38
+ *
39
+ * @default true
40
+ */
41
+ readonly lookups?: boolean;
42
+ /**
43
+ * Context values for the application.
44
+ *
45
+ * Context can be read in the app from any construct using `node.getContext(key)`.
46
+ *
47
+ * @default - no context
48
+ */
49
+ readonly context?: {
50
+ [key: string]: any;
51
+ };
52
+ /**
53
+ * Options that are passed through the context to a CDK app on synth
54
+ */
55
+ readonly synthOptions?: AppSynthOptions;
56
+ }
57
+ /**
58
+ * Settings that are passed to a CDK app via the context
59
+ */
60
+ export interface AppSynthOptions {
61
+ /**
62
+ * Debug the CDK app.
63
+ * Logs additional information during synthesis, such as creation stack traces of tokens.
64
+ * This also sets the `CDK_DEBUG` env variable and will slow down synthesis.
65
+ *
66
+ * @default false
67
+ */
68
+ readonly debug?: boolean;
69
+ /**
70
+ * Enables the embedding of the "aws:cdk:path" in CloudFormation template metadata.
71
+ *
72
+ * @default true
73
+ */
74
+ readonly pathMetadata?: boolean;
75
+ /**
76
+ * Enable the collection and reporting of version information.
77
+ *
78
+ * @default true
79
+ */
80
+ readonly versionReporting?: boolean;
81
+ /**
82
+ * Whe enabled, `aws:asset:xxx` metadata entries are added to the template.
83
+ *
84
+ * Disabling this can be useful in certain cases like integration tests.
85
+ *
86
+ * @default true
87
+ */
88
+ readonly assetMetadata?: boolean;
89
+ /**
90
+ * Enable asset staging.
91
+ *
92
+ * Disabling asset staging means that copyable assets will not be copied to the
93
+ * output directory and will be referenced with absolute paths.
94
+ *
95
+ * Not copied to the output directory: this is so users can iterate on the
96
+ * Lambda source and run SAM CLI without having to re-run CDK (note: we
97
+ * cannot achieve this for bundled assets, if assets are bundled they
98
+ * will have to re-run CDK CLI to re-bundle updated versions).
99
+ *
100
+ * Absolute path: SAM CLI expects `cwd`-relative paths in a resource's
101
+ * `aws:asset:path` metadata. In order to be predictable, we will always output
102
+ * absolute paths.
103
+ *
104
+ * @default true
105
+ */
106
+ readonly assetStaging?: boolean;
107
+ /**
108
+ * Select which stacks should have asset bundling enabled
109
+ *
110
+ * @default ["**"] - all stacks
111
+ */
112
+ readonly bundlingForStacks?: string;
113
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdGhlIGJ1aWxkZXIgZnVuY3Rpb24gcmVjZWl2ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZW1ibHlCdWlsZGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIG91dHB1dCBkaXJlY3RvcnkgaW50byB3aGljaCB0byB0aGUgYnVpbGRlciBhcHAgd2lsbCBlbWl0IHN5bnRoZXNpemVkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbnRleHQgcHJvdmlkZWQgdHAgdGhlIGJ1aWxkZXIgYXBwIHRvIHN5bnRoZXNpemUgdGhlIENsb3VkIEFzc2VtYmx5LCBpbmNsdWRpbmcgbG9va2VkLXVwIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuZXhwb3J0IHR5cGUgQXNzZW1ibHlCdWlsZGVyID0gKHByb3BzOiBBc3NlbWJseUJ1aWxkZXJQcm9wcykgPT4gUHJvbWlzZTxjeHNjaGVtYS5JQ2xvdWRBc3NlbWJseT47XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgY3JlYXRpbmcgYSBDTEkgZnJvbSBhbiBBV1MgQ0RLIEFwcCBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseVNvdXJjZVByb3BzIHtcbiAgLyoqXG4gICAqIEV4ZWN1dGUgdGhlIGFwcGxpY2F0aW9uIGluIHRoaXMgd29ya2luZyBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeVxuICAgKi9cbiAgcmVhZG9ubHkgd29ya2luZ0RpcmVjdG9yeT86IHN0cmluZztcblxuICAvKipcbiAgICogRW1pdHMgdGhlIHN5bnRoZXNpemVkIGNsb3VkIGFzc2VtYmx5IGludG8gYSBkaXJlY3RvcnlcbiAgICpcbiAgICogQGRlZmF1bHQgY2RrLm91dFxuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQZXJmb3JtIGNvbnRleHQgbG9va3Vwcy5cbiAgICpcbiAgICogU3ludGhlc2lzIGZhaWxzIGlmIHRoaXMgaXMgZGlzYWJsZWQgYW5kIGNvbnRleHQgbG9va3VwcyBuZWVkIHRvIGJlIHBlcmZvcm1lZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9va3Vwcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbnRleHQgdmFsdWVzIGZvciB0aGUgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIENvbnRleHQgY2FuIGJlIHJlYWQgaW4gdGhlIGFwcCBmcm9tIGFueSBjb25zdHJ1Y3QgdXNpbmcgYG5vZGUuZ2V0Q29udGV4dChrZXkpYC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBjb250ZXh0XG4gICAqL1xuICByZWFkb25seSBjb250ZXh0Pzoge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgfTtcblxuICAvKipcbiAgICogT3B0aW9ucyB0aGF0IGFyZSBwYXNzZWQgdGhyb3VnaCB0aGUgY29udGV4dCB0byBhIENESyBhcHAgb24gc3ludGhcbiAgICovXG4gIHJlYWRvbmx5IHN5bnRoT3B0aW9ucz86IEFwcFN5bnRoT3B0aW9ucztcbn1cblxuLyoqXG4gKiBTZXR0aW5ncyB0aGF0IGFyZSBwYXNzZWQgdG8gYSBDREsgYXBwIHZpYSB0aGUgY29udGV4dFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFwcFN5bnRoT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBEZWJ1ZyB0aGUgQ0RLIGFwcC5cbiAgICogTG9ncyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGR1cmluZyBzeW50aGVzaXMsIHN1Y2ggYXMgY3JlYXRpb24gc3RhY2sgdHJhY2VzIG9mIHRva2Vucy5cbiAgICogVGhpcyBhbHNvIHNldHMgdGhlIGBDREtfREVCVUdgIGVudiB2YXJpYWJsZSBhbmQgd2lsbCBzbG93IGRvd24gc3ludGhlc2lzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVidWc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGVzIHRoZSBlbWJlZGRpbmcgb2YgdGhlIFwiYXdzOmNkazpwYXRoXCIgaW4gQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgbWV0YWRhdGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHBhdGhNZXRhZGF0YT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEVuYWJsZSB0aGUgY29sbGVjdGlvbiBhbmQgcmVwb3J0aW5nIG9mIHZlcnNpb24gaW5mb3JtYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb25SZXBvcnRpbmc/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBXaGUgZW5hYmxlZCwgYGF3czphc3NldDp4eHhgIG1ldGFkYXRhIGVudHJpZXMgYXJlIGFkZGVkIHRvIHRoZSB0ZW1wbGF0ZS5cbiAgICpcbiAgICogRGlzYWJsaW5nIHRoaXMgY2FuIGJlIHVzZWZ1bCBpbiBjZXJ0YWluIGNhc2VzIGxpa2UgaW50ZWdyYXRpb24gdGVzdHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0TWV0YWRhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgYXNzZXQgc3RhZ2luZy5cbiAgICpcbiAgICogRGlzYWJsaW5nIGFzc2V0IHN0YWdpbmcgbWVhbnMgdGhhdCBjb3B5YWJsZSBhc3NldHMgd2lsbCBub3QgYmUgY29waWVkIHRvIHRoZVxuICAgKiBvdXRwdXQgZGlyZWN0b3J5IGFuZCB3aWxsIGJlIHJlZmVyZW5jZWQgd2l0aCBhYnNvbHV0ZSBwYXRocy5cbiAgICpcbiAgICogTm90IGNvcGllZCB0byB0aGUgb3V0cHV0IGRpcmVjdG9yeTogdGhpcyBpcyBzbyB1c2VycyBjYW4gaXRlcmF0ZSBvbiB0aGVcbiAgICogTGFtYmRhIHNvdXJjZSBhbmQgcnVuIFNBTSBDTEkgd2l0aG91dCBoYXZpbmcgdG8gcmUtcnVuIENESyAobm90ZTogd2VcbiAgICogY2Fubm90IGFjaGlldmUgdGhpcyBmb3IgYnVuZGxlZCBhc3NldHMsIGlmIGFzc2V0cyBhcmUgYnVuZGxlZCB0aGV5XG4gICAqIHdpbGwgaGF2ZSB0byByZS1ydW4gQ0RLIENMSSB0byByZS1idW5kbGUgdXBkYXRlZCB2ZXJzaW9ucykuXG4gICAqXG4gICAqIEFic29sdXRlIHBhdGg6IFNBTSBDTEkgZXhwZWN0cyBgY3dkYC1yZWxhdGl2ZSBwYXRocyBpbiBhIHJlc291cmNlJ3NcbiAgICogYGF3czphc3NldDpwYXRoYCBtZXRhZGF0YS4gSW4gb3JkZXIgdG8gYmUgcHJlZGljdGFibGUsIHdlIHdpbGwgYWx3YXlzIG91dHB1dFxuICAgKiBhYnNvbHV0ZSBwYXRocy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRTdGFnaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2VsZWN0IHdoaWNoIHN0YWNrcyBzaG91bGQgaGF2ZSBhc3NldCBidW5kbGluZyBlbmFibGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IFtcIioqXCJdIC0gYWxsIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgYnVuZGxpbmdGb3JTdGFja3M/OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Which stacks should be selected from a cloud assembly
3
+ */
4
+ export declare enum StackSelectionStrategy {
5
+ /**
6
+ * Returns all stacks in the app regardless of patterns,
7
+ * including stacks inside nested assemblies.
8
+ */
9
+ ALL_STACKS = "all-stacks",
10
+ /**
11
+ * Returns all stacks in the main (top level) assembly only.
12
+ */
13
+ MAIN_ASSEMBLY = "main-assembly",
14
+ /**
15
+ * If the assembly includes a single stack, returns it.
16
+ * Otherwise throws an exception.
17
+ */
18
+ ONLY_SINGLE = "only-single",
19
+ /**
20
+ * Return stacks matched by patterns.
21
+ * If no stacks are found, execution is halted successfully.
22
+ * Most likely you don't want to use this but `StackSelectionStrategy.MUST_MATCH_PATTERN`
23
+ */
24
+ PATTERN_MATCH = "pattern-match",
25
+ /**
26
+ * Return stacks matched by patterns.
27
+ * Throws an exception if the patterns don't match at least one stack in the assembly.
28
+ */
29
+ PATTERN_MUST_MATCH = "pattern-must-match",
30
+ /**
31
+ * Returns if exactly one stack is matched by the pattern(s).
32
+ * Throws an exception if no stack, or more than exactly one stack are matched.
33
+ */
34
+ PATTERN_MUST_MATCH_SINGLE = "pattern-must-match-single"
35
+ }
36
+ /**
37
+ * When selecting stacks, what other stacks to include because of dependencies
38
+ */
39
+ export declare enum ExpandStackSelection {
40
+ /**
41
+ * Don't select any extra stacks
42
+ */
43
+ NONE = "none",
44
+ /**
45
+ * Include stacks that this stack depends on
46
+ */
47
+ UPSTREAM = "upstream",
48
+ /**
49
+ * Include stacks that depend on this stack
50
+ */
51
+ DOWNSTREAM = "downstream"
52
+ }
53
+ /**
54
+ * A specification of which stacks should be selected
55
+ */
56
+ export interface StackSelector {
57
+ /**
58
+ * The behavior if if no selectors are provided.
59
+ */
60
+ strategy: StackSelectionStrategy;
61
+ /**
62
+ * A list of patterns to match the stack hierarchical ids
63
+ * Only used with `PATTERN_*` selection strategies.
64
+ */
65
+ patterns?: string[];
66
+ /**
67
+ * Expand the selection to upstream/downstream stacks.
68
+ * @default ExpandStackSelection.None only select the specified/matched stacks
69
+ */
70
+ expand?: ExpandStackSelection;
71
+ /**
72
+ * By default, we throw an exception if the assembly contains no stacks.
73
+ * Set to `false`, to halt execution for empty assemblies without error.
74
+ *
75
+ * Note that actions can still throw if a stack selection result is empty,
76
+ * but the assembly contains stacks in principle.
77
+ *
78
+ * @default true
79
+ */
80
+ failOnEmpty?: boolean;
81
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpandStackSelection = exports.StackSelectionStrategy = void 0;
4
+ /**
5
+ * Which stacks should be selected from a cloud assembly
6
+ */
7
+ var StackSelectionStrategy;
8
+ (function (StackSelectionStrategy) {
9
+ /**
10
+ * Returns all stacks in the app regardless of patterns,
11
+ * including stacks inside nested assemblies.
12
+ */
13
+ StackSelectionStrategy["ALL_STACKS"] = "all-stacks";
14
+ /**
15
+ * Returns all stacks in the main (top level) assembly only.
16
+ */
17
+ StackSelectionStrategy["MAIN_ASSEMBLY"] = "main-assembly";
18
+ /**
19
+ * If the assembly includes a single stack, returns it.
20
+ * Otherwise throws an exception.
21
+ */
22
+ StackSelectionStrategy["ONLY_SINGLE"] = "only-single";
23
+ /**
24
+ * Return stacks matched by patterns.
25
+ * If no stacks are found, execution is halted successfully.
26
+ * Most likely you don't want to use this but `StackSelectionStrategy.MUST_MATCH_PATTERN`
27
+ */
28
+ StackSelectionStrategy["PATTERN_MATCH"] = "pattern-match";
29
+ /**
30
+ * Return stacks matched by patterns.
31
+ * Throws an exception if the patterns don't match at least one stack in the assembly.
32
+ */
33
+ StackSelectionStrategy["PATTERN_MUST_MATCH"] = "pattern-must-match";
34
+ /**
35
+ * Returns if exactly one stack is matched by the pattern(s).
36
+ * Throws an exception if no stack, or more than exactly one stack are matched.
37
+ */
38
+ StackSelectionStrategy["PATTERN_MUST_MATCH_SINGLE"] = "pattern-must-match-single";
39
+ })(StackSelectionStrategy || (exports.StackSelectionStrategy = StackSelectionStrategy = {}));
40
+ /**
41
+ * When selecting stacks, what other stacks to include because of dependencies
42
+ */
43
+ var ExpandStackSelection;
44
+ (function (ExpandStackSelection) {
45
+ /**
46
+ * Don't select any extra stacks
47
+ */
48
+ ExpandStackSelection["NONE"] = "none";
49
+ /**
50
+ * Include stacks that this stack depends on
51
+ */
52
+ ExpandStackSelection["UPSTREAM"] = "upstream";
53
+ /**
54
+ * Include stacks that depend on this stack
55
+ */
56
+ ExpandStackSelection["DOWNSTREAM"] = "downstream";
57
+ /**
58
+ * @TODO
59
+ * Include both directions.
60
+ * I.e. stacks that this stack depends on, and stacks that depend on this stack.
61
+ */
62
+ // FULL = 'full',
63
+ })(ExpandStackSelection || (exports.ExpandStackSelection = ExpandStackSelection = {}));
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc2VsZWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNILElBQVksc0JBb0NYO0FBcENELFdBQVksc0JBQXNCO0lBQ2hDOzs7T0FHRztJQUNILG1EQUF5QixDQUFBO0lBRXpCOztPQUVHO0lBQ0gseURBQStCLENBQUE7SUFFL0I7OztPQUdHO0lBQ0gscURBQTJCLENBQUE7SUFFM0I7Ozs7T0FJRztJQUNILHlEQUErQixDQUFBO0lBRS9COzs7T0FHRztJQUNILG1FQUF5QyxDQUFBO0lBRXpDOzs7T0FHRztJQUNILGlGQUF1RCxDQUFBO0FBQ3pELENBQUMsRUFwQ1csc0JBQXNCLHNDQUF0QixzQkFBc0IsUUFvQ2pDO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLG9CQXNCWDtBQXRCRCxXQUFZLG9CQUFvQjtJQUM5Qjs7T0FFRztJQUNILHFDQUFhLENBQUE7SUFFYjs7T0FFRztJQUNILDZDQUFxQixDQUFBO0lBRXJCOztPQUVHO0lBQ0gsaURBQXlCLENBQUE7SUFFekI7Ozs7T0FJRztJQUNILGlCQUFpQjtBQUNuQixDQUFDLEVBdEJXLG9CQUFvQixvQ0FBcEIsb0JBQW9CLFFBc0IvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogV2hpY2ggc3RhY2tzIHNob3VsZCBiZSBzZWxlY3RlZCBmcm9tIGEgY2xvdWQgYXNzZW1ibHlcbiAqL1xuZXhwb3J0IGVudW0gU3RhY2tTZWxlY3Rpb25TdHJhdGVneSB7XG4gIC8qKlxuICAgKiBSZXR1cm5zIGFsbCBzdGFja3MgaW4gdGhlIGFwcCByZWdhcmRsZXNzIG9mIHBhdHRlcm5zLFxuICAgKiBpbmNsdWRpbmcgc3RhY2tzIGluc2lkZSBuZXN0ZWQgYXNzZW1ibGllcy5cbiAgICovXG4gIEFMTF9TVEFDS1MgPSAnYWxsLXN0YWNrcycsXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHN0YWNrcyBpbiB0aGUgbWFpbiAodG9wIGxldmVsKSBhc3NlbWJseSBvbmx5LlxuICAgKi9cbiAgTUFJTl9BU1NFTUJMWSA9ICdtYWluLWFzc2VtYmx5JyxcblxuICAvKipcbiAgICogSWYgdGhlIGFzc2VtYmx5IGluY2x1ZGVzIGEgc2luZ2xlIHN0YWNrLCByZXR1cm5zIGl0LlxuICAgKiBPdGhlcndpc2UgdGhyb3dzIGFuIGV4Y2VwdGlvbi5cbiAgICovXG4gIE9OTFlfU0lOR0xFID0gJ29ubHktc2luZ2xlJyxcblxuICAvKipcbiAgICogUmV0dXJuIHN0YWNrcyBtYXRjaGVkIGJ5IHBhdHRlcm5zLlxuICAgKiBJZiBubyBzdGFja3MgYXJlIGZvdW5kLCBleGVjdXRpb24gaXMgaGFsdGVkIHN1Y2Nlc3NmdWxseS5cbiAgICogTW9zdCBsaWtlbHkgeW91IGRvbid0IHdhbnQgdG8gdXNlIHRoaXMgYnV0IGBTdGFja1NlbGVjdGlvblN0cmF0ZWd5Lk1VU1RfTUFUQ0hfUEFUVEVSTmBcbiAgICovXG4gIFBBVFRFUk5fTUFUQ0ggPSAncGF0dGVybi1tYXRjaCcsXG5cbiAgLyoqXG4gICAqIFJldHVybiBzdGFja3MgbWF0Y2hlZCBieSBwYXR0ZXJucy5cbiAgICogVGhyb3dzIGFuIGV4Y2VwdGlvbiBpZiB0aGUgcGF0dGVybnMgZG9uJ3QgbWF0Y2ggYXQgbGVhc3Qgb25lIHN0YWNrIGluIHRoZSBhc3NlbWJseS5cbiAgICovXG4gIFBBVFRFUk5fTVVTVF9NQVRDSCA9ICdwYXR0ZXJuLW11c3QtbWF0Y2gnLFxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGlmIGV4YWN0bHkgb25lIHN0YWNrIGlzIG1hdGNoZWQgYnkgdGhlIHBhdHRlcm4ocykuXG4gICAqIFRocm93cyBhbiBleGNlcHRpb24gaWYgbm8gc3RhY2ssIG9yIG1vcmUgdGhhbiBleGFjdGx5IG9uZSBzdGFjayBhcmUgbWF0Y2hlZC5cbiAgICovXG4gIFBBVFRFUk5fTVVTVF9NQVRDSF9TSU5HTEUgPSAncGF0dGVybi1tdXN0LW1hdGNoLXNpbmdsZScsXG59XG5cbi8qKlxuICogV2hlbiBzZWxlY3Rpbmcgc3RhY2tzLCB3aGF0IG90aGVyIHN0YWNrcyB0byBpbmNsdWRlIGJlY2F1c2Ugb2YgZGVwZW5kZW5jaWVzXG4gKi9cbmV4cG9ydCBlbnVtIEV4cGFuZFN0YWNrU2VsZWN0aW9uIHtcbiAgLyoqXG4gICAqIERvbid0IHNlbGVjdCBhbnkgZXh0cmEgc3RhY2tzXG4gICAqL1xuICBOT05FID0gJ25vbmUnLFxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHN0YWNrcyB0aGF0IHRoaXMgc3RhY2sgZGVwZW5kcyBvblxuICAgKi9cbiAgVVBTVFJFQU0gPSAndXBzdHJlYW0nLFxuXG4gIC8qKlxuICAgKiBJbmNsdWRlIHN0YWNrcyB0aGF0IGRlcGVuZCBvbiB0aGlzIHN0YWNrXG4gICAqL1xuICBET1dOU1RSRUFNID0gJ2Rvd25zdHJlYW0nLFxuXG4gIC8qKlxuICAgKiBAVE9ET1xuICAgKiBJbmNsdWRlIGJvdGggZGlyZWN0aW9ucy5cbiAgICogSS5lLiBzdGFja3MgdGhhdCB0aGlzIHN0YWNrIGRlcGVuZHMgb24sIGFuZCBzdGFja3MgdGhhdCBkZXBlbmQgb24gdGhpcyBzdGFjay5cbiAgICovXG4gIC8vIEZVTEwgPSAnZnVsbCcsXG59XG5cbi8qKlxuICogQSBzcGVjaWZpY2F0aW9uIG9mIHdoaWNoIHN0YWNrcyBzaG91bGQgYmUgc2VsZWN0ZWRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGFja1NlbGVjdG9yIHtcbiAgLyoqXG4gICAqIFRoZSBiZWhhdmlvciBpZiBpZiBubyBzZWxlY3RvcnMgYXJlIHByb3ZpZGVkLlxuICAgKi9cbiAgc3RyYXRlZ3k6IFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3k7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBwYXR0ZXJucyB0byBtYXRjaCB0aGUgc3RhY2sgaGllcmFyY2hpY2FsIGlkc1xuICAgKiBPbmx5IHVzZWQgd2l0aCBgUEFUVEVSTl8qYCBzZWxlY3Rpb24gc3RyYXRlZ2llcy5cbiAgICovXG4gIHBhdHRlcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEV4cGFuZCB0aGUgc2VsZWN0aW9uIHRvIHVwc3RyZWFtL2Rvd25zdHJlYW0gc3RhY2tzLlxuICAgKiBAZGVmYXVsdCBFeHBhbmRTdGFja1NlbGVjdGlvbi5Ob25lIG9ubHkgc2VsZWN0IHRoZSBzcGVjaWZpZWQvbWF0Y2hlZCBzdGFja3NcbiAgICovXG4gIGV4cGFuZD86IEV4cGFuZFN0YWNrU2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBCeSBkZWZhdWx0LCB3ZSB0aHJvdyBhbiBleGNlcHRpb24gaWYgdGhlIGFzc2VtYmx5IGNvbnRhaW5zIG5vIHN0YWNrcy5cbiAgICogU2V0IHRvIGBmYWxzZWAsIHRvIGhhbHQgZXhlY3V0aW9uIGZvciBlbXB0eSBhc3NlbWJsaWVzIHdpdGhvdXQgZXJyb3IuXG4gICAqXG4gICAqIE5vdGUgdGhhdCBhY3Rpb25zIGNhbiBzdGlsbCB0aHJvdyBpZiBhIHN0YWNrIHNlbGVjdGlvbiByZXN1bHQgaXMgZW1wdHksXG4gICAqIGJ1dCB0aGUgYXNzZW1ibHkgY29udGFpbnMgc3RhY2tzIGluIHByaW5jaXBsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZmFpbE9uRW1wdHk/OiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ import type * as cxapi from '@aws-cdk/cx-api';
2
+ export interface ICloudAssemblySource {
3
+ /**
4
+ * Produce a CloudAssembly from the current source
5
+ */
6
+ produce(): Promise<cxapi.CloudAssembly>;
7
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDbG91ZEFzc2VtYmx5U291cmNlIHtcbiAgLyoqXG4gICAqIFByb2R1Y2UgYSBDbG91ZEFzc2VtYmx5IGZyb20gdGhlIGN1cnJlbnQgc291cmNlXG4gICAqL1xuICBwcm9kdWNlKCk6IFByb21pc2U8Y3hhcGkuQ2xvdWRBc3NlbWJseT47XG59XG4iXX0=