@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.
- package/LICENSE +202 -0
- package/NOTICE +16 -0
- package/README.md +432 -0
- package/build-info.json +4 -0
- package/db.json.gz +0 -0
- package/lib/actions/deploy/index.d.ts +178 -0
- package/lib/actions/deploy/index.js +78 -0
- package/lib/actions/deploy/private/deploy-options.d.ts +78 -0
- package/lib/actions/deploy/private/deploy-options.js +3 -0
- package/lib/actions/deploy/private/helpers.d.ts +15 -0
- package/lib/actions/deploy/private/helpers.js +41 -0
- package/lib/actions/deploy/private/index.d.ts +2 -0
- package/lib/actions/deploy/private/index.js +19 -0
- package/lib/actions/destroy/index.d.ts +17 -0
- package/lib/actions/destroy/index.js +3 -0
- package/lib/actions/diff/index.d.ts +83 -0
- package/lib/actions/diff/index.js +45 -0
- package/lib/actions/diff/private/helpers.d.ts +7 -0
- package/lib/actions/diff/private/helpers.js +20 -0
- package/lib/actions/diff/private/index.d.ts +1 -0
- package/lib/actions/diff/private/index.js +18 -0
- package/lib/actions/import/index.d.ts +21 -0
- package/lib/actions/import/index.js +3 -0
- package/lib/actions/index.d.ts +6 -0
- package/lib/actions/index.js +23 -0
- package/lib/actions/list/index.d.ts +7 -0
- package/lib/actions/list/index.js +3 -0
- package/lib/actions/rollback/index.d.ts +39 -0
- package/lib/actions/rollback/index.js +3 -0
- package/lib/actions/synth/index.d.ts +12 -0
- package/lib/actions/synth/index.js +3 -0
- package/lib/actions/watch/index.d.ts +35 -0
- package/lib/actions/watch/index.js +3 -0
- package/lib/actions/watch/private/helpers.d.ts +4 -0
- package/lib/actions/watch/private/helpers.js +8 -0
- package/lib/actions/watch/private/index.d.ts +1 -0
- package/lib/actions/watch/private/index.js +18 -0
- package/lib/api/aws-auth/index.d.ts +1 -0
- package/lib/api/aws-auth/index.js +18 -0
- package/lib/api/aws-auth/types.d.ts +32 -0
- package/lib/api/aws-auth/types.js +3 -0
- package/lib/api/aws-cdk.d.ts +25 -0
- package/lib/api/aws-cdk.js +9329 -0
- package/lib/api/aws-cdk.js.map +7 -0
- package/lib/api/cloud-assembly/index.d.ts +3 -0
- package/lib/api/cloud-assembly/index.js +20 -0
- package/lib/api/cloud-assembly/private/cached-source.d.ts +15 -0
- package/lib/api/cloud-assembly/private/cached-source.js +25 -0
- package/lib/api/cloud-assembly/private/context-aware-source.d.ts +45 -0
- package/lib/api/cloud-assembly/private/context-aware-source.js +89 -0
- package/lib/api/cloud-assembly/private/exec.d.ts +13 -0
- package/lib/api/cloud-assembly/private/exec.js +56 -0
- package/lib/api/cloud-assembly/private/identity-source.d.ts +10 -0
- package/lib/api/cloud-assembly/private/identity-source.js +17 -0
- package/lib/api/cloud-assembly/private/index.d.ts +8 -0
- package/lib/api/cloud-assembly/private/index.js +25 -0
- package/lib/api/cloud-assembly/private/prepare-source.d.ts +52 -0
- package/lib/api/cloud-assembly/private/prepare-source.js +166 -0
- package/lib/api/cloud-assembly/private/source-builder.d.ts +29 -0
- package/lib/api/cloud-assembly/private/source-builder.js +121 -0
- package/lib/api/cloud-assembly/private/stack-assembly.d.ts +30 -0
- package/lib/api/cloud-assembly/private/stack-assembly.js +94 -0
- package/lib/api/cloud-assembly/private/stack-selectors.d.ts +2 -0
- package/lib/api/cloud-assembly/private/stack-selectors.js +8 -0
- package/lib/api/cloud-assembly/source-builder.d.ts +113 -0
- package/lib/api/cloud-assembly/source-builder.js +3 -0
- package/lib/api/cloud-assembly/stack-selector.d.ts +81 -0
- package/lib/api/cloud-assembly/stack-selector.js +64 -0
- package/lib/api/cloud-assembly/types.d.ts +7 -0
- package/lib/api/cloud-assembly/types.js +3 -0
- package/lib/api/errors.d.ts +44 -0
- package/lib/api/errors.js +82 -0
- package/lib/api/io/index.d.ts +2 -0
- package/lib/api/io/index.js +19 -0
- package/lib/api/io/io-host.d.ts +15 -0
- package/lib/api/io/io-host.js +3 -0
- package/lib/api/io/io-message.d.ts +59 -0
- package/lib/api/io/io-message.js +3 -0
- package/lib/api/io/private/codes.d.ts +37 -0
- package/lib/api/io/private/codes.js +48 -0
- package/lib/api/io/private/index.d.ts +6 -0
- package/lib/api/io/private/index.js +23 -0
- package/lib/api/io/private/level-priority.d.ts +11 -0
- package/lib/api/io/private/level-priority.js +33 -0
- package/lib/api/io/private/logger.d.ts +40 -0
- package/lib/api/io/private/logger.js +211 -0
- package/lib/api/io/private/messages.d.ts +64 -0
- package/lib/api/io/private/messages.js +159 -0
- package/lib/api/io/private/timer.d.ts +29 -0
- package/lib/api/io/private/timer.js +54 -0
- package/lib/api/io/private/types.d.ts +25 -0
- package/lib/api/io/private/types.js +3 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.js +25 -0
- package/lib/index_bg.wasm +0 -0
- package/lib/toolkit/index.d.ts +1 -0
- package/lib/toolkit/index.js +18 -0
- package/lib/toolkit/private/index.d.ts +9 -0
- package/lib/toolkit/private/index.js +3 -0
- package/lib/toolkit/toolkit.d.ts +142 -0
- package/lib/toolkit/toolkit.js +644 -0
- 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,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,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuXG5leHBvcnQgaW50ZXJmYWNlIElDbG91ZEFzc2VtYmx5U291cmNlIHtcbiAgLyoqXG4gICAqIFByb2R1Y2UgYSBDbG91ZEFzc2VtYmx5IGZyb20gdGhlIGN1cnJlbnQgc291cmNlXG4gICAqL1xuICBwcm9kdWNlKCk6IFByb21pc2U8Y3hhcGkuQ2xvdWRBc3NlbWJseT47XG59XG4iXX0=
|