aws-cdk 2.1006.0 → 3.0.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/README.md +1 -1
- package/THIRD_PARTY_LICENSES +104 -86
- package/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/api/aws-auth.d.ts +1 -0
- package/lib/api/{logs/index.js → aws-auth.js} +2 -3
- package/lib/api/bootstrap.d.ts +1 -0
- package/lib/api/bootstrap.js +18 -0
- package/lib/api/cloud-assembly.d.ts +1 -0
- package/lib/api/cloud-assembly.js +18 -0
- package/lib/api/cloudformation.d.ts +1 -0
- package/lib/api/cloudformation.js +18 -0
- package/lib/api/context.d.ts +1 -40
- package/lib/api/context.js +16 -80
- package/lib/api/deployments.d.ts +1 -0
- package/lib/api/deployments.js +18 -0
- package/lib/api/environment.d.ts +1 -0
- package/lib/api/environment.js +18 -0
- package/lib/api/garbage-collection.d.ts +1 -0
- package/lib/api/garbage-collection.js +18 -0
- package/lib/api/hotswap.d.ts +1 -0
- package/lib/api/hotswap.js +18 -0
- package/lib/api/index.d.ts +5 -1
- package/lib/api/index.js +6 -2
- package/lib/api/logs-monitor.d.ts +1 -0
- package/lib/api/logs-monitor.js +18 -0
- package/lib/api/notices.d.ts +1 -0
- package/lib/api/notices.js +18 -0
- package/lib/api/plugin.d.ts +1 -0
- package/lib/api/{resource-import/index.js → plugin.js} +2 -3
- package/lib/api/resource-import.d.ts +1 -0
- package/lib/api/resource-import.js +18 -0
- package/lib/api/rwlock.d.ts +1 -0
- package/lib/api/{garbage-collection/index.js → rwlock.js} +2 -2
- package/lib/api/settings.d.ts +1 -26
- package/lib/api/settings.js +16 -103
- package/lib/api/stack-events.d.ts +1 -0
- package/lib/api/stack-events.js +18 -0
- package/lib/api/tags.d.ts +1 -9
- package/lib/api/tags.js +16 -8
- package/lib/api/toolkit-info.d.ts +1 -52
- package/lib/api/toolkit-info.js +16 -152
- package/lib/api/tree.d.ts +1 -31
- package/lib/api/tree.js +16 -35
- package/lib/api/work-graph.d.ts +1 -0
- package/lib/api/work-graph.js +18 -0
- package/lib/api-private.d.ts +3 -0
- package/lib/api-private.js +22 -0
- package/lib/cli/cdk-toolkit.d.ts +20 -16
- package/lib/cli/cdk-toolkit.js +102 -37
- package/lib/cli/cli-config.js +2 -2
- package/lib/cli/cli.d.ts +1 -1
- package/lib/cli/cli.js +22 -19
- package/lib/cli/io-host/cli-io-host.js +2 -2
- package/lib/cli/pretty-print-error.js +3 -1
- package/lib/cli/util/npm.d.ts +4 -1
- package/lib/cli/util/npm.js +25 -13
- package/lib/cli/version.d.ts +1 -1
- package/lib/cli/version.js +21 -25
- package/lib/commands/context.js +3 -2
- package/lib/commands/diff.d.ts +1 -50
- package/lib/commands/diff.js +5 -213
- package/lib/commands/init/init.js +3 -2
- package/lib/commands/list-stacks.js +4 -4
- package/lib/context-providers/ami.d.ts +1 -13
- package/lib/context-providers/ami.js +16 -48
- package/lib/context-providers/availability-zones.d.ts +1 -13
- package/lib/context-providers/availability-zones.js +16 -25
- package/lib/context-providers/cc-api-provider.d.ts +1 -30
- package/lib/context-providers/cc-api-provider.js +16 -136
- package/lib/context-providers/endpoint-service-availability-zones.d.ts +1 -13
- package/lib/context-providers/endpoint-service-availability-zones.js +16 -31
- package/lib/context-providers/hosted-zones.d.ts +1 -12
- package/lib/context-providers/hosted-zones.js +16 -65
- package/lib/context-providers/index.d.ts +1 -44
- package/lib/context-providers/index.js +15 -126
- package/lib/context-providers/keys.d.ts +1 -13
- package/lib/context-providers/keys.js +16 -50
- package/lib/context-providers/load-balancers.d.ts +1 -20
- package/lib/context-providers/load-balancers.js +16 -154
- package/lib/context-providers/security-groups.d.ts +1 -9
- package/lib/context-providers/security-groups.js +16 -66
- package/lib/context-providers/ssm-parameters.d.ts +1 -25
- package/lib/context-providers/ssm-parameters.js +16 -57
- package/lib/context-providers/vpcs.d.ts +1 -13
- package/lib/context-providers/vpcs.js +16 -285
- package/lib/{api/cxapp → cxapp}/cloud-assembly.d.ts +3 -59
- package/lib/cxapp/cloud-assembly.js +108 -0
- package/lib/{api/cxapp → cxapp}/cloud-executable.d.ts +10 -3
- package/lib/cxapp/cloud-executable.js +92 -0
- package/lib/{api/cxapp → cxapp}/environments.d.ts +1 -2
- package/lib/{api/cxapp → cxapp}/environments.js +2 -2
- package/lib/cxapp/exec.d.ts +14 -0
- package/lib/cxapp/exec.js +157 -0
- package/lib/cxapp/index.d.ts +4 -0
- package/lib/{api/bootstrap → cxapp}/index.js +5 -3
- package/lib/index.js +134493 -125222
- package/lib/init-templates/.init-version.json +1 -1
- package/lib/init-templates/.recommended-feature-flags.json +3 -1
- package/lib/legacy-aws-auth.d.ts +74 -0
- package/lib/legacy-aws-auth.js +40 -0
- package/lib/legacy-exports-source.d.ts +13 -18
- package/lib/legacy-exports-source.js +42 -49
- package/lib/legacy-exports.d.ts +3 -6
- package/lib/legacy-exports.js +5 -5
- package/lib/legacy-types.d.ts +31 -0
- package/lib/legacy-types.js +3 -0
- package/package.json +19 -18
- package/lib/api/aws-auth/account-cache.d.ts +0 -36
- package/lib/api/aws-auth/account-cache.js +0 -99
- package/lib/api/aws-auth/awscli-compatible.d.ts +0 -42
- package/lib/api/aws-auth/awscli-compatible.js +0 -263
- package/lib/api/aws-auth/cached.d.ts +0 -11
- package/lib/api/aws-auth/cached.js +0 -26
- package/lib/api/aws-auth/credential-plugins.d.ts +0 -36
- package/lib/api/aws-auth/credential-plugins.js +0 -152
- package/lib/api/aws-auth/index.d.ts +0 -3
- package/lib/api/aws-auth/index.js +0 -20
- package/lib/api/aws-auth/provider-caching.d.ts +0 -13
- package/lib/api/aws-auth/provider-caching.js +0 -24
- package/lib/api/aws-auth/sdk-logger.d.ts +0 -69
- package/lib/api/aws-auth/sdk-logger.js +0 -124
- package/lib/api/aws-auth/sdk-provider.d.ts +0 -207
- package/lib/api/aws-auth/sdk-provider.js +0 -357
- package/lib/api/aws-auth/sdk.d.ts +0 -229
- package/lib/api/aws-auth/sdk.js +0 -373
- package/lib/api/aws-auth/tracing.d.ts +0 -11
- package/lib/api/aws-auth/tracing.js +0 -60
- package/lib/api/aws-auth/user-agent.d.ts +0 -7
- package/lib/api/aws-auth/user-agent.js +0 -20
- package/lib/api/aws-auth/util.d.ts +0 -6
- package/lib/api/aws-auth/util.js +0 -23
- package/lib/api/bootstrap/bootstrap-environment.d.ts +0 -35
- package/lib/api/bootstrap/bootstrap-environment.js +0 -321
- package/lib/api/bootstrap/bootstrap-props.d.ts +0 -130
- package/lib/api/bootstrap/bootstrap-props.js +0 -14
- package/lib/api/bootstrap/deploy-bootstrap.d.ts +0 -39
- package/lib/api/bootstrap/deploy-bootstrap.js +0 -141
- package/lib/api/bootstrap/index.d.ts +0 -2
- package/lib/api/bootstrap/legacy-template.d.ts +0 -2
- package/lib/api/bootstrap/legacy-template.js +0 -82
- package/lib/api/cloudformation/evaluate-cloudformation-template.d.ts +0 -85
- package/lib/api/cloudformation/evaluate-cloudformation-template.js +0 -440
- package/lib/api/cloudformation/index.d.ts +0 -4
- package/lib/api/cloudformation/index.js +0 -21
- package/lib/api/cloudformation/nested-stack-helpers.d.ts +0 -25
- package/lib/api/cloudformation/nested-stack-helpers.js +0 -86
- package/lib/api/cloudformation/stack-helpers.d.ts +0 -96
- package/lib/api/cloudformation/stack-helpers.js +0 -158
- package/lib/api/cloudformation/template-body-parameter.d.ts +0 -22
- package/lib/api/cloudformation/template-body-parameter.js +0 -104
- package/lib/api/cxapp/cloud-assembly.js +0 -304
- package/lib/api/cxapp/cloud-executable.js +0 -89
- package/lib/api/cxapp/exec.d.ts +0 -56
- package/lib/api/cxapp/exec.js +0 -272
- package/lib/api/deployments/asset-manifest-builder.d.ts +0 -8
- package/lib/api/deployments/asset-manifest-builder.js +0 -35
- package/lib/api/deployments/asset-publishing.d.ts +0 -60
- package/lib/api/deployments/asset-publishing.js +0 -141
- package/lib/api/deployments/assets.d.ts +0 -11
- package/lib/api/deployments/assets.js +0 -109
- package/lib/api/deployments/cfn-api.d.ts +0 -138
- package/lib/api/deployments/cfn-api.js +0 -438
- package/lib/api/deployments/checks.d.ts +0 -9
- package/lib/api/deployments/checks.js +0 -72
- package/lib/api/deployments/deploy-stack.d.ts +0 -155
- package/lib/api/deployments/deploy-stack.js +0 -478
- package/lib/api/deployments/deployment-method.d.ts +0 -24
- package/lib/api/deployments/deployment-method.js +0 -3
- package/lib/api/deployments/deployment-result.d.ts +0 -21
- package/lib/api/deployments/deployment-result.js +0 -10
- package/lib/api/deployments/deployments.d.ts +0 -296
- package/lib/api/deployments/deployments.js +0 -331
- package/lib/api/deployments/hotswap-deployments.d.ts +0 -17
- package/lib/api/deployments/hotswap-deployments.js +0 -441
- package/lib/api/deployments/index.d.ts +0 -4
- package/lib/api/deployments/index.js +0 -21
- package/lib/api/environment/environment-access.d.ts +0 -140
- package/lib/api/environment/environment-access.js +0 -202
- package/lib/api/environment/environment-resources.d.ts +0 -75
- package/lib/api/environment/environment-resources.js +0 -207
- package/lib/api/environment/index.d.ts +0 -3
- package/lib/api/environment/index.js +0 -20
- package/lib/api/environment/placeholders.d.ts +0 -10
- package/lib/api/environment/placeholders.js +0 -23
- package/lib/api/garbage-collection/garbage-collector.d.ts +0 -158
- package/lib/api/garbage-collection/garbage-collector.js +0 -599
- package/lib/api/garbage-collection/index.d.ts +0 -1
- package/lib/api/garbage-collection/progress-printer.d.ts +0 -23
- package/lib/api/garbage-collection/progress-printer.js +0 -70
- package/lib/api/garbage-collection/stack-refresh.d.ts +0 -49
- package/lib/api/garbage-collection/stack-refresh.js +0 -151
- package/lib/api/hotswap/appsync-mapping-templates.d.ts +0 -4
- package/lib/api/hotswap/appsync-mapping-templates.js +0 -162
- package/lib/api/hotswap/code-build-projects.d.ts +0 -4
- package/lib/api/hotswap/code-build-projects.js +0 -62
- package/lib/api/hotswap/common.d.ts +0 -89
- package/lib/api/hotswap/common.js +0 -128
- package/lib/api/hotswap/ecs-services.d.ts +0 -4
- package/lib/api/hotswap/ecs-services.js +0 -159
- package/lib/api/hotswap/lambda-functions.d.ts +0 -4
- package/lib/api/hotswap/lambda-functions.js +0 -297
- package/lib/api/hotswap/s3-bucket-deployments.d.ts +0 -5
- package/lib/api/hotswap/s3-bucket-deployments.js +0 -117
- package/lib/api/hotswap/stepfunctions-state-machines.d.ts +0 -4
- package/lib/api/hotswap/stepfunctions-state-machines.js +0 -48
- package/lib/api/logs/find-cloudwatch-logs.d.ts +0 -25
- package/lib/api/logs/find-cloudwatch-logs.js +0 -95
- package/lib/api/logs/index.d.ts +0 -2
- package/lib/api/logs/logs-monitor.d.ts +0 -76
- package/lib/api/logs/logs-monitor.js +0 -187
- package/lib/api/plugin/context-provider-plugin.d.ts +0 -6
- package/lib/api/plugin/context-provider-plugin.js +0 -7
- package/lib/api/plugin/index.d.ts +0 -3
- package/lib/api/plugin/index.js +0 -20
- package/lib/api/plugin/mode.d.ts +0 -4
- package/lib/api/plugin/mode.js +0 -9
- package/lib/api/plugin/plugin.d.ts +0 -63
- package/lib/api/plugin/plugin.js +0 -102
- package/lib/api/resource-import/importer.d.ts +0 -220
- package/lib/api/resource-import/importer.js +0 -331
- package/lib/api/resource-import/index.d.ts +0 -2
- package/lib/api/resource-import/migrator.d.ts +0 -26
- package/lib/api/resource-import/migrator.js +0 -71
- package/lib/api/stack-events/index.d.ts +0 -3
- package/lib/api/stack-events/index.js +0 -20
- package/lib/api/stack-events/stack-activity-monitor.d.ts +0 -100
- package/lib/api/stack-events/stack-activity-monitor.js +0 -142
- package/lib/api/stack-events/stack-event-poller.d.ts +0 -69
- package/lib/api/stack-events/stack-event-poller.js +0 -128
- package/lib/api/stack-events/stack-progress-monitor.d.ts +0 -48
- package/lib/api/stack-events/stack-progress-monitor.js +0 -94
- package/lib/api/stack-events/stack-status.d.ts +0 -42
- package/lib/api/stack-events/stack-status.js +0 -88
- package/lib/api/util/rwlock.d.ts +0 -65
- package/lib/api/util/rwlock.js +0 -179
- package/lib/api/work-graph/index.d.ts +0 -3
- package/lib/api/work-graph/index.js +0 -20
- package/lib/api/work-graph/work-graph-builder.d.ts +0 -34
- package/lib/api/work-graph/work-graph-builder.js +0 -168
- package/lib/api/work-graph/work-graph-types.d.ts +0 -50
- package/lib/api/work-graph/work-graph-types.js +0 -13
- package/lib/api/work-graph/work-graph.d.ts +0 -72
- package/lib/api/work-graph/work-graph.js +0 -346
- package/lib/cli/activity-printer/base.d.ts +0 -50
- package/lib/cli/activity-printer/base.js +0 -114
- package/lib/cli/activity-printer/current.d.ts +0 -26
- package/lib/cli/activity-printer/current.js +0 -118
- package/lib/cli/activity-printer/display.d.ts +0 -13
- package/lib/cli/activity-printer/display.js +0 -80
- package/lib/cli/activity-printer/history.d.ts +0 -32
- package/lib/cli/activity-printer/history.js +0 -108
- package/lib/cli/activity-printer/index.d.ts +0 -3
- package/lib/cli/activity-printer/index.js +0 -20
- package/lib/notices.d.ts +0 -203
- package/lib/notices.js +0 -411
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WorkGraphBuilder = void 0;
|
|
4
|
-
const cxapi = require("@aws-cdk/cx-api");
|
|
5
|
-
const cdk_assets_1 = require("cdk-assets");
|
|
6
|
-
const work_graph_1 = require("./work-graph");
|
|
7
|
-
const work_graph_types_1 = require("./work-graph-types");
|
|
8
|
-
const api_1 = require("../../../../@aws-cdk/tmp-toolkit-helpers/src/api");
|
|
9
|
-
const util_1 = require("../../util");
|
|
10
|
-
class WorkGraphBuilder {
|
|
11
|
-
constructor(ioHelper, prebuildAssets, idPrefix = '') {
|
|
12
|
-
this.prebuildAssets = prebuildAssets;
|
|
13
|
-
this.idPrefix = idPrefix;
|
|
14
|
-
this.graph = new work_graph_1.WorkGraph({}, ioHelper);
|
|
15
|
-
this.ioHelper = ioHelper;
|
|
16
|
-
}
|
|
17
|
-
addStack(artifact) {
|
|
18
|
-
this.graph.addNodes({
|
|
19
|
-
type: 'stack',
|
|
20
|
-
id: `${this.idPrefix}${artifact.id}`,
|
|
21
|
-
dependencies: new Set(this.stackArtifactIds(onlyStacks(artifact.dependencies))),
|
|
22
|
-
stack: artifact,
|
|
23
|
-
deploymentState: work_graph_types_1.DeploymentState.PENDING,
|
|
24
|
-
priority: WorkGraphBuilder.PRIORITIES.stack,
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Oof, see this parameter list
|
|
29
|
-
*/
|
|
30
|
-
// eslint-disable-next-line max-len
|
|
31
|
-
addAsset(parentStack, assetManifestArtifact, assetManifest, asset) {
|
|
32
|
-
// Just the artifact identifier
|
|
33
|
-
const assetId = asset.id.assetId;
|
|
34
|
-
const buildId = `build-${assetId}-${(0, util_1.contentHashAny)([assetId, asset.genericSource]).substring(0, 10)}`;
|
|
35
|
-
const publishId = `publish-${assetId}-${(0, util_1.contentHashAny)([assetId, asset.genericDestination]).substring(0, 10)}`;
|
|
36
|
-
// Build node only gets added once because they are all the same
|
|
37
|
-
if (!this.graph.tryGetNode(buildId)) {
|
|
38
|
-
const node = {
|
|
39
|
-
type: 'asset-build',
|
|
40
|
-
id: buildId,
|
|
41
|
-
note: asset.displayName(false),
|
|
42
|
-
dependencies: new Set([
|
|
43
|
-
...this.stackArtifactIds(assetManifestArtifact.dependencies),
|
|
44
|
-
// If we disable prebuild, then assets inherit (stack) dependencies from their parent stack
|
|
45
|
-
...!this.prebuildAssets ? this.stackArtifactIds(onlyStacks(parentStack.dependencies)) : [],
|
|
46
|
-
]),
|
|
47
|
-
parentStack: parentStack,
|
|
48
|
-
assetManifestArtifact,
|
|
49
|
-
assetManifest,
|
|
50
|
-
asset,
|
|
51
|
-
deploymentState: work_graph_types_1.DeploymentState.PENDING,
|
|
52
|
-
priority: WorkGraphBuilder.PRIORITIES['asset-build'],
|
|
53
|
-
};
|
|
54
|
-
this.graph.addNodes(node);
|
|
55
|
-
}
|
|
56
|
-
const publishNode = this.graph.tryGetNode(publishId);
|
|
57
|
-
if (!publishNode) {
|
|
58
|
-
this.graph.addNodes({
|
|
59
|
-
type: 'asset-publish',
|
|
60
|
-
id: publishId,
|
|
61
|
-
note: asset.displayName(true),
|
|
62
|
-
dependencies: new Set([
|
|
63
|
-
buildId,
|
|
64
|
-
]),
|
|
65
|
-
parentStack,
|
|
66
|
-
assetManifestArtifact,
|
|
67
|
-
assetManifest,
|
|
68
|
-
asset,
|
|
69
|
-
deploymentState: work_graph_types_1.DeploymentState.PENDING,
|
|
70
|
-
priority: WorkGraphBuilder.PRIORITIES['asset-publish'],
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
for (const inheritedDep of this.stackArtifactIds(onlyStacks(parentStack.dependencies))) {
|
|
74
|
-
// The asset publish step also depends on the stacks that the parent depends on.
|
|
75
|
-
// This is purely cosmetic: if we don't do this, the progress printing of asset publishing
|
|
76
|
-
// is going to interfere with the progress bar of the stack deployment. We could remove this
|
|
77
|
-
// for overall faster deployments if we ever have a better method of progress displaying.
|
|
78
|
-
// Note: this may introduce a cycle if one of the parent's dependencies is another stack that
|
|
79
|
-
// depends on this asset. To workaround this we remove these cycles once all nodes have
|
|
80
|
-
// been added to the graph.
|
|
81
|
-
this.graph.addDependency(publishId, inheritedDep);
|
|
82
|
-
}
|
|
83
|
-
// This will work whether the stack node has been added yet or not
|
|
84
|
-
this.graph.addDependency(`${this.idPrefix}${parentStack.id}`, publishId);
|
|
85
|
-
}
|
|
86
|
-
build(artifacts) {
|
|
87
|
-
const parentStacks = stacksFromAssets(artifacts);
|
|
88
|
-
for (const artifact of artifacts) {
|
|
89
|
-
if (cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(artifact)) {
|
|
90
|
-
this.addStack(artifact);
|
|
91
|
-
}
|
|
92
|
-
else if (cxapi.AssetManifestArtifact.isAssetManifestArtifact(artifact)) {
|
|
93
|
-
const manifest = cdk_assets_1.AssetManifest.fromFile(artifact.file);
|
|
94
|
-
for (const entry of manifest.entries) {
|
|
95
|
-
const parentStack = parentStacks.get(artifact);
|
|
96
|
-
if (parentStack === undefined) {
|
|
97
|
-
throw new api_1.ToolkitError('Found an asset manifest that is not associated with a stack');
|
|
98
|
-
}
|
|
99
|
-
this.addAsset(parentStack, artifact, manifest, entry);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
else if (cxapi.NestedCloudAssemblyArtifact.isNestedCloudAssemblyArtifact(artifact)) {
|
|
103
|
-
const assembly = new cxapi.CloudAssembly(artifact.fullPath, { topoSort: false });
|
|
104
|
-
const nestedGraph = new WorkGraphBuilder(this.ioHelper, this.prebuildAssets, `${this.idPrefix}${artifact.id}.`).build(assembly.artifacts);
|
|
105
|
-
this.graph.absorb(nestedGraph);
|
|
106
|
-
}
|
|
107
|
-
else {
|
|
108
|
-
// Ignore whatever else
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
this.graph.removeUnavailableDependencies();
|
|
112
|
-
// Remove any potentially introduced cycles between asset publishing and the stacks that depend on them.
|
|
113
|
-
this.removeStackPublishCycles();
|
|
114
|
-
return this.graph;
|
|
115
|
-
}
|
|
116
|
-
stackArtifactIds(deps) {
|
|
117
|
-
return deps.flatMap((d) => cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(d) ? [this.stackArtifactId(d)] : []);
|
|
118
|
-
}
|
|
119
|
-
stackArtifactId(artifact) {
|
|
120
|
-
if (!cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(artifact)) {
|
|
121
|
-
throw new api_1.ToolkitError(`Can only call this on CloudFormationStackArtifact, got: ${artifact.constructor.name}`);
|
|
122
|
-
}
|
|
123
|
-
return `${this.idPrefix}${artifact.id}`;
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* We may have accidentally introduced cycles in an attempt to make the messages printed to the
|
|
127
|
-
* console not interfere with each other too much. Remove them again.
|
|
128
|
-
*/
|
|
129
|
-
removeStackPublishCycles() {
|
|
130
|
-
const publishSteps = this.graph.nodesOfType('asset-publish');
|
|
131
|
-
for (const publishStep of publishSteps) {
|
|
132
|
-
for (const dep of publishStep.dependencies) {
|
|
133
|
-
if (this.graph.reachable(dep, publishStep.id)) {
|
|
134
|
-
publishStep.dependencies.delete(dep);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
exports.WorkGraphBuilder = WorkGraphBuilder;
|
|
141
|
-
/**
|
|
142
|
-
* Default priorities for nodes
|
|
143
|
-
*
|
|
144
|
-
* Assets builds have higher priority than the other two operations, to make good on our promise that
|
|
145
|
-
* '--prebuild-assets' will actually do assets before stacks (if it can). Unfortunately it is the
|
|
146
|
-
* default :(
|
|
147
|
-
*
|
|
148
|
-
* But between stack dependencies and publish dependencies, stack dependencies go first
|
|
149
|
-
*/
|
|
150
|
-
WorkGraphBuilder.PRIORITIES = {
|
|
151
|
-
'asset-build': 10,
|
|
152
|
-
'asset-publish': 0,
|
|
153
|
-
'stack': 5,
|
|
154
|
-
};
|
|
155
|
-
function stacksFromAssets(artifacts) {
|
|
156
|
-
const ret = new Map();
|
|
157
|
-
for (const stack of artifacts.filter(x => cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(x))) {
|
|
158
|
-
const assetArtifacts = stack.dependencies.filter((x) => cxapi.AssetManifestArtifact.isAssetManifestArtifact(x));
|
|
159
|
-
for (const art of assetArtifacts) {
|
|
160
|
-
ret.set(art, stack);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
return ret;
|
|
164
|
-
}
|
|
165
|
-
function onlyStacks(artifacts) {
|
|
166
|
-
return artifacts.filter(x => cxapi.CloudFormationStackArtifact.isCloudFormationStackArtifact(x));
|
|
167
|
-
}
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1ncmFwaC1idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid29yay1ncmFwaC1idWlsZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF5QztBQUN6QywyQ0FBZ0U7QUFDaEUsNkNBQXlDO0FBRXpDLHlEQUFxRDtBQUNyRCwwRUFBZ0Y7QUFFaEYscUNBQTRDO0FBRTVDLE1BQWEsZ0JBQWdCO0lBa0IzQixZQUNFLFFBQWtCLEVBQ0QsY0FBdUIsRUFDdkIsV0FBVyxFQUFFO1FBRGIsbUJBQWMsR0FBZCxjQUFjLENBQVM7UUFDdkIsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUU5QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksc0JBQVMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVPLFFBQVEsQ0FBQyxRQUEyQztRQUMxRCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNsQixJQUFJLEVBQUUsT0FBTztZQUNiLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUMvRSxLQUFLLEVBQUUsUUFBUTtZQUNmLGVBQWUsRUFBRSxrQ0FBZSxDQUFDLE9BQU87WUFDeEMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxLQUFLO1NBQzVDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILG1DQUFtQztJQUMzQixRQUFRLENBQUMsV0FBOEMsRUFBRSxxQkFBa0QsRUFBRSxhQUE0QixFQUFFLEtBQXFCO1FBQ3RLLCtCQUErQjtRQUMvQixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQztRQUVqQyxNQUFNLE9BQU8sR0FBRyxTQUFTLE9BQU8sSUFBSSxJQUFBLHFCQUFjLEVBQUMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3RHLE1BQU0sU0FBUyxHQUFHLFdBQVcsT0FBTyxJQUFJLElBQUEscUJBQWMsRUFBQyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUUvRyxnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxJQUFJLEdBQW1CO2dCQUMzQixJQUFJLEVBQUUsYUFBYTtnQkFDbkIsRUFBRSxFQUFFLE9BQU87Z0JBQ1gsSUFBSSxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO2dCQUM5QixZQUFZLEVBQUUsSUFBSSxHQUFHLENBQUM7b0JBQ3BCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQztvQkFDNUQsMkZBQTJGO29CQUMzRixHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtpQkFDM0YsQ0FBQztnQkFDRixXQUFXLEVBQUUsV0FBVztnQkFDeEIscUJBQXFCO2dCQUNyQixhQUFhO2dCQUNiLEtBQUs7Z0JBQ0wsZUFBZSxFQUFFLGtDQUFlLENBQUMsT0FBTztnQkFDeEMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7YUFDckQsQ0FBQztZQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7Z0JBQ2xCLElBQUksRUFBRSxlQUFlO2dCQUNyQixFQUFFLEVBQUUsU0FBUztnQkFDYixJQUFJLEVBQUUsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQzdCLFlBQVksRUFBRSxJQUFJLEdBQUcsQ0FBQztvQkFDcEIsT0FBTztpQkFDUixDQUFDO2dCQUNGLFdBQVc7Z0JBQ1gscUJBQXFCO2dCQUNyQixhQUFhO2dCQUNiLEtBQUs7Z0JBQ0wsZUFBZSxFQUFFLGtDQUFlLENBQUMsT0FBTztnQkFDeEMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUM7YUFDdkQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELEtBQUssTUFBTSxZQUFZLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZGLGdGQUFnRjtZQUNoRiwwRkFBMEY7WUFDMUYsNEZBQTRGO1lBQzVGLHlGQUF5RjtZQUN6Riw2RkFBNkY7WUFDN0YsdUZBQXVGO1lBQ3ZGLDJCQUEyQjtZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELGtFQUFrRTtRQUNsRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTSxLQUFLLENBQUMsU0FBZ0M7UUFDM0MsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFakQsS0FBSyxNQUFNLFFBQVEsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNqQyxJQUFJLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUM5RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFCLENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDekUsTUFBTSxRQUFRLEdBQUcsMEJBQWEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUV2RCxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDckMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDL0MsSUFBSSxXQUFXLEtBQUssU0FBUyxFQUFFLENBQUM7d0JBQzlCLE1BQU0sSUFBSSxrQkFBWSxDQUFDLDZEQUE2RCxDQUFDLENBQUM7b0JBQ3hGLENBQUM7b0JBQ0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDeEQsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsNkJBQTZCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFDckYsTUFBTSxRQUFRLEdBQUcsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDakYsTUFBTSxXQUFXLEdBQUcsSUFBSSxnQkFBZ0IsQ0FDdEMsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsY0FBYyxFQUNuQixHQUFHLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLEVBQUUsR0FBRyxDQUNsQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7aUJBQU0sQ0FBQztnQkFDTix1QkFBdUI7WUFDekIsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLENBQUM7UUFFM0Msd0dBQXdHO1FBQ3hHLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBRWhDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsSUFBMkI7UUFDbEQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNsSSxDQUFDO0lBRU8sZUFBZSxDQUFDLFFBQTZCO1FBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsNkJBQTZCLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMvRSxNQUFNLElBQUksa0JBQVksQ0FBQywyREFBMkQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ2pILENBQUM7UUFDRCxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7T0FHRztJQUNLLHdCQUF3QjtRQUM5QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM3RCxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3ZDLEtBQUssTUFBTSxHQUFHLElBQUksV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUMzQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDOUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZDLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7O0FBcEtILDRDQXFLQztBQXBLQzs7Ozs7Ozs7R0FRRztBQUNXLDJCQUFVLEdBQXFDO0lBQzNELGFBQWEsRUFBRSxFQUFFO0lBQ2pCLGVBQWUsRUFBRSxDQUFDO0lBQ2xCLE9BQU8sRUFBRSxDQUFDO0NBQ1gsQ0FBQztBQXlKSixTQUFTLGdCQUFnQixDQUFDLFNBQWdDO0lBQ3hELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxFQUFrRSxDQUFDO0lBQ3RGLEtBQUssTUFBTSxLQUFLLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDOUcsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hILEtBQUssTUFBTSxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7WUFDakMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxTQUFnQztJQUNsRCxPQUFPLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNuRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB7IEFzc2V0TWFuaWZlc3QsIHR5cGUgSU1hbmlmZXN0RW50cnkgfSBmcm9tICdjZGstYXNzZXRzJztcbmltcG9ydCB7IFdvcmtHcmFwaCB9IGZyb20gJy4vd29yay1ncmFwaCc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0QnVpbGROb2RlLCBXb3JrTm9kZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgeyBEZXBsb3ltZW50U3RhdGUgfSBmcm9tICcuL3dvcmstZ3JhcGgtdHlwZXMnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vQGF3cy1jZGsvdG1wLXRvb2xraXQtaGVscGVycy9zcmMvYXBpJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9AYXdzLWNkay90bXAtdG9vbGtpdC1oZWxwZXJzL3NyYy9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBjb250ZW50SGFzaEFueSB9IGZyb20gJy4uLy4uL3V0aWwnO1xuXG5leHBvcnQgY2xhc3MgV29ya0dyYXBoQnVpbGRlciB7XG4gIC8qKlxuICAgKiBEZWZhdWx0IHByaW9yaXRpZXMgZm9yIG5vZGVzXG4gICAqXG4gICAqIEFzc2V0cyBidWlsZHMgaGF2ZSBoaWdoZXIgcHJpb3JpdHkgdGhhbiB0aGUgb3RoZXIgdHdvIG9wZXJhdGlvbnMsIHRvIG1ha2UgZ29vZCBvbiBvdXIgcHJvbWlzZSB0aGF0XG4gICAqICctLXByZWJ1aWxkLWFzc2V0cycgd2lsbCBhY3R1YWxseSBkbyBhc3NldHMgYmVmb3JlIHN0YWNrcyAoaWYgaXQgY2FuKS4gVW5mb3J0dW5hdGVseSBpdCBpcyB0aGVcbiAgICogZGVmYXVsdCA6KFxuICAgKlxuICAgKiBCdXQgYmV0d2VlbiBzdGFjayBkZXBlbmRlbmNpZXMgYW5kIHB1Ymxpc2ggZGVwZW5kZW5jaWVzLCBzdGFjayBkZXBlbmRlbmNpZXMgZ28gZmlyc3RcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgUFJJT1JJVElFUzogUmVjb3JkPFdvcmtOb2RlWyd0eXBlJ10sIG51bWJlcj4gPSB7XG4gICAgJ2Fzc2V0LWJ1aWxkJzogMTAsXG4gICAgJ2Fzc2V0LXB1Ymxpc2gnOiAwLFxuICAgICdzdGFjayc6IDUsXG4gIH07XG4gIHByaXZhdGUgcmVhZG9ubHkgZ3JhcGg6IFdvcmtHcmFwaDtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaW9IZWxwZXI6IElvSGVscGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJlYnVpbGRBc3NldHM6IGJvb2xlYW4sXG4gICAgcHJpdmF0ZSByZWFkb25seSBpZFByZWZpeCA9ICcnLFxuICApIHtcbiAgICB0aGlzLmdyYXBoID0gbmV3IFdvcmtHcmFwaCh7fSwgaW9IZWxwZXIpO1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgfVxuXG4gIHByaXZhdGUgYWRkU3RhY2soYXJ0aWZhY3Q6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCkge1xuICAgIHRoaXMuZ3JhcGguYWRkTm9kZXMoe1xuICAgICAgdHlwZTogJ3N0YWNrJyxcbiAgICAgIGlkOiBgJHt0aGlzLmlkUHJlZml4fSR7YXJ0aWZhY3QuaWR9YCxcbiAgICAgIGRlcGVuZGVuY2llczogbmV3IFNldCh0aGlzLnN0YWNrQXJ0aWZhY3RJZHMob25seVN0YWNrcyhhcnRpZmFjdC5kZXBlbmRlbmNpZXMpKSksXG4gICAgICBzdGFjazogYXJ0aWZhY3QsXG4gICAgICBkZXBsb3ltZW50U3RhdGU6IERlcGxveW1lbnRTdGF0ZS5QRU5ESU5HLFxuICAgICAgcHJpb3JpdHk6IFdvcmtHcmFwaEJ1aWxkZXIuUFJJT1JJVElFUy5zdGFjayxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPb2YsIHNlZSB0aGlzIHBhcmFtZXRlciBsaXN0XG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICBwcml2YXRlIGFkZEFzc2V0KHBhcmVudFN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsIGFzc2V0TWFuaWZlc3RBcnRpZmFjdDogY3hhcGkuQXNzZXRNYW5pZmVzdEFydGlmYWN0LCBhc3NldE1hbmlmZXN0OiBBc3NldE1hbmlmZXN0LCBhc3NldDogSU1hbmlmZXN0RW50cnkpIHtcbiAgICAvLyBKdXN0IHRoZSBhcnRpZmFjdCBpZGVudGlmaWVyXG4gICAgY29uc3QgYXNzZXRJZCA9IGFzc2V0LmlkLmFzc2V0SWQ7XG5cbiAgICBjb25zdCBidWlsZElkID0gYGJ1aWxkLSR7YXNzZXRJZH0tJHtjb250ZW50SGFzaEFueShbYXNzZXRJZCwgYXNzZXQuZ2VuZXJpY1NvdXJjZV0pLnN1YnN0cmluZygwLCAxMCl9YDtcbiAgICBjb25zdCBwdWJsaXNoSWQgPSBgcHVibGlzaC0ke2Fzc2V0SWR9LSR7Y29udGVudEhhc2hBbnkoW2Fzc2V0SWQsIGFzc2V0LmdlbmVyaWNEZXN0aW5hdGlvbl0pLnN1YnN0cmluZygwLCAxMCl9YDtcblxuICAgIC8vIEJ1aWxkIG5vZGUgb25seSBnZXRzIGFkZGVkIG9uY2UgYmVjYXVzZSB0aGV5IGFyZSBhbGwgdGhlIHNhbWVcbiAgICBpZiAoIXRoaXMuZ3JhcGgudHJ5R2V0Tm9kZShidWlsZElkKSkge1xuICAgICAgY29uc3Qgbm9kZTogQXNzZXRCdWlsZE5vZGUgPSB7XG4gICAgICAgIHR5cGU6ICdhc3NldC1idWlsZCcsXG4gICAgICAgIGlkOiBidWlsZElkLFxuICAgICAgICBub3RlOiBhc3NldC5kaXNwbGF5TmFtZShmYWxzZSksXG4gICAgICAgIGRlcGVuZGVuY2llczogbmV3IFNldChbXG4gICAgICAgICAgLi4udGhpcy5zdGFja0FydGlmYWN0SWRzKGFzc2V0TWFuaWZlc3RBcnRpZmFjdC5kZXBlbmRlbmNpZXMpLFxuICAgICAgICAgIC8vIElmIHdlIGRpc2FibGUgcHJlYnVpbGQsIHRoZW4gYXNzZXRzIGluaGVyaXQgKHN0YWNrKSBkZXBlbmRlbmNpZXMgZnJvbSB0aGVpciBwYXJlbnQgc3RhY2tcbiAgICAgICAgICAuLi4hdGhpcy5wcmVidWlsZEFzc2V0cyA/IHRoaXMuc3RhY2tBcnRpZmFjdElkcyhvbmx5U3RhY2tzKHBhcmVudFN0YWNrLmRlcGVuZGVuY2llcykpIDogW10sXG4gICAgICAgIF0pLFxuICAgICAgICBwYXJlbnRTdGFjazogcGFyZW50U3RhY2ssXG4gICAgICAgIGFzc2V0TWFuaWZlc3RBcnRpZmFjdCxcbiAgICAgICAgYXNzZXRNYW5pZmVzdCxcbiAgICAgICAgYXNzZXQsXG4gICAgICAgIGRlcGxveW1lbnRTdGF0ZTogRGVwbG95bWVudFN0YXRlLlBFTkRJTkcsXG4gICAgICAgIHByaW9yaXR5OiBXb3JrR3JhcGhCdWlsZGVyLlBSSU9SSVRJRVNbJ2Fzc2V0LWJ1aWxkJ10sXG4gICAgICB9O1xuICAgICAgdGhpcy5ncmFwaC5hZGROb2Rlcyhub2RlKTtcbiAgICB9XG5cbiAgICBjb25zdCBwdWJsaXNoTm9kZSA9IHRoaXMuZ3JhcGgudHJ5R2V0Tm9kZShwdWJsaXNoSWQpO1xuICAgIGlmICghcHVibGlzaE5vZGUpIHtcbiAgICAgIHRoaXMuZ3JhcGguYWRkTm9kZXMoe1xuICAgICAgICB0eXBlOiAnYXNzZXQtcHVibGlzaCcsXG4gICAgICAgIGlkOiBwdWJsaXNoSWQsXG4gICAgICAgIG5vdGU6IGFzc2V0LmRpc3BsYXlOYW1lKHRydWUpLFxuICAgICAgICBkZXBlbmRlbmNpZXM6IG5ldyBTZXQoW1xuICAgICAgICAgIGJ1aWxkSWQsXG4gICAgICAgIF0pLFxuICAgICAgICBwYXJlbnRTdGFjayxcbiAgICAgICAgYXNzZXRNYW5pZmVzdEFydGlmYWN0LFxuICAgICAgICBhc3NldE1hbmlmZXN0LFxuICAgICAgICBhc3NldCxcbiAgICAgICAgZGVwbG95bWVudFN0YXRlOiBEZXBsb3ltZW50U3RhdGUuUEVORElORyxcbiAgICAgICAgcHJpb3JpdHk6IFdvcmtHcmFwaEJ1aWxkZXIuUFJJT1JJVElFU1snYXNzZXQtcHVibGlzaCddLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBpbmhlcml0ZWREZXAgb2YgdGhpcy5zdGFja0FydGlmYWN0SWRzKG9ubHlTdGFja3MocGFyZW50U3RhY2suZGVwZW5kZW5jaWVzKSkpIHtcbiAgICAgIC8vIFRoZSBhc3NldCBwdWJsaXNoIHN0ZXAgYWxzbyBkZXBlbmRzIG9uIHRoZSBzdGFja3MgdGhhdCB0aGUgcGFyZW50IGRlcGVuZHMgb24uXG4gICAgICAvLyBUaGlzIGlzIHB1cmVseSBjb3NtZXRpYzogaWYgd2UgZG9uJ3QgZG8gdGhpcywgdGhlIHByb2dyZXNzIHByaW50aW5nIG9mIGFzc2V0IHB1Ymxpc2hpbmdcbiAgICAgIC8vIGlzIGdvaW5nIHRvIGludGVyZmVyZSB3aXRoIHRoZSBwcm9ncmVzcyBiYXIgb2YgdGhlIHN0YWNrIGRlcGxveW1lbnQuIFdlIGNvdWxkIHJlbW92ZSB0aGlzXG4gICAgICAvLyBmb3Igb3ZlcmFsbCBmYXN0ZXIgZGVwbG95bWVudHMgaWYgd2UgZXZlciBoYXZlIGEgYmV0dGVyIG1ldGhvZCBvZiBwcm9ncmVzcyBkaXNwbGF5aW5nLlxuICAgICAgLy8gTm90ZTogdGhpcyBtYXkgaW50cm9kdWNlIGEgY3ljbGUgaWYgb25lIG9mIHRoZSBwYXJlbnQncyBkZXBlbmRlbmNpZXMgaXMgYW5vdGhlciBzdGFjayB0aGF0XG4gICAgICAvLyBkZXBlbmRzIG9uIHRoaXMgYXNzZXQuIFRvIHdvcmthcm91bmQgdGhpcyB3ZSByZW1vdmUgdGhlc2UgY3ljbGVzIG9uY2UgYWxsIG5vZGVzIGhhdmVcbiAgICAgIC8vIGJlZW4gYWRkZWQgdG8gdGhlIGdyYXBoLlxuICAgICAgdGhpcy5ncmFwaC5hZGREZXBlbmRlbmN5KHB1Ymxpc2hJZCwgaW5oZXJpdGVkRGVwKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIHdpbGwgd29yayB3aGV0aGVyIHRoZSBzdGFjayBub2RlIGhhcyBiZWVuIGFkZGVkIHlldCBvciBub3RcbiAgICB0aGlzLmdyYXBoLmFkZERlcGVuZGVuY3koYCR7dGhpcy5pZFByZWZpeH0ke3BhcmVudFN0YWNrLmlkfWAsIHB1Ymxpc2hJZCk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGQoYXJ0aWZhY3RzOiBjeGFwaS5DbG91ZEFydGlmYWN0W10pOiBXb3JrR3JhcGgge1xuICAgIGNvbnN0IHBhcmVudFN0YWNrcyA9IHN0YWNrc0Zyb21Bc3NldHMoYXJ0aWZhY3RzKTtcblxuICAgIGZvciAoY29uc3QgYXJ0aWZhY3Qgb2YgYXJ0aWZhY3RzKSB7XG4gICAgICBpZiAoY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LmlzQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KGFydGlmYWN0KSkge1xuICAgICAgICB0aGlzLmFkZFN0YWNrKGFydGlmYWN0KTtcbiAgICAgIH0gZWxzZSBpZiAoY3hhcGkuQXNzZXRNYW5pZmVzdEFydGlmYWN0LmlzQXNzZXRNYW5pZmVzdEFydGlmYWN0KGFydGlmYWN0KSkge1xuICAgICAgICBjb25zdCBtYW5pZmVzdCA9IEFzc2V0TWFuaWZlc3QuZnJvbUZpbGUoYXJ0aWZhY3QuZmlsZSk7XG5cbiAgICAgICAgZm9yIChjb25zdCBlbnRyeSBvZiBtYW5pZmVzdC5lbnRyaWVzKSB7XG4gICAgICAgICAgY29uc3QgcGFyZW50U3RhY2sgPSBwYXJlbnRTdGFja3MuZ2V0KGFydGlmYWN0KTtcbiAgICAgICAgICBpZiAocGFyZW50U3RhY2sgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignRm91bmQgYW4gYXNzZXQgbWFuaWZlc3QgdGhhdCBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIGEgc3RhY2snKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5hZGRBc3NldChwYXJlbnRTdGFjaywgYXJ0aWZhY3QsIG1hbmlmZXN0LCBlbnRyeSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoY3hhcGkuTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0LmlzTmVzdGVkQ2xvdWRBc3NlbWJseUFydGlmYWN0KGFydGlmYWN0KSkge1xuICAgICAgICBjb25zdCBhc3NlbWJseSA9IG5ldyBjeGFwaS5DbG91ZEFzc2VtYmx5KGFydGlmYWN0LmZ1bGxQYXRoLCB7IHRvcG9Tb3J0OiBmYWxzZSB9KTtcbiAgICAgICAgY29uc3QgbmVzdGVkR3JhcGggPSBuZXcgV29ya0dyYXBoQnVpbGRlcihcbiAgICAgICAgICB0aGlzLmlvSGVscGVyLFxuICAgICAgICAgIHRoaXMucHJlYnVpbGRBc3NldHMsXG4gICAgICAgICAgYCR7dGhpcy5pZFByZWZpeH0ke2FydGlmYWN0LmlkfS5gLFxuICAgICAgICApLmJ1aWxkKGFzc2VtYmx5LmFydGlmYWN0cyk7XG4gICAgICAgIHRoaXMuZ3JhcGguYWJzb3JiKG5lc3RlZEdyYXBoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElnbm9yZSB3aGF0ZXZlciBlbHNlXG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5ncmFwaC5yZW1vdmVVbmF2YWlsYWJsZURlcGVuZGVuY2llcygpO1xuXG4gICAgLy8gUmVtb3ZlIGFueSBwb3RlbnRpYWxseSBpbnRyb2R1Y2VkIGN5Y2xlcyBiZXR3ZWVuIGFzc2V0IHB1Ymxpc2hpbmcgYW5kIHRoZSBzdGFja3MgdGhhdCBkZXBlbmQgb24gdGhlbS5cbiAgICB0aGlzLnJlbW92ZVN0YWNrUHVibGlzaEN5Y2xlcygpO1xuXG4gICAgcmV0dXJuIHRoaXMuZ3JhcGg7XG4gIH1cblxuICBwcml2YXRlIHN0YWNrQXJ0aWZhY3RJZHMoZGVwczogY3hhcGkuQ2xvdWRBcnRpZmFjdFtdKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBkZXBzLmZsYXRNYXAoKGQpID0+IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdC5pc0Nsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdChkKSA/IFt0aGlzLnN0YWNrQXJ0aWZhY3RJZChkKV0gOiBbXSk7XG4gIH1cblxuICBwcml2YXRlIHN0YWNrQXJ0aWZhY3RJZChhcnRpZmFjdDogY3hhcGkuQ2xvdWRBcnRpZmFjdCk6IHN0cmluZyB7XG4gICAgaWYgKCFjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QuaXNDbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QoYXJ0aWZhY3QpKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBDYW4gb25seSBjYWxsIHRoaXMgb24gQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LCBnb3Q6ICR7YXJ0aWZhY3QuY29uc3RydWN0b3IubmFtZX1gKTtcbiAgICB9XG4gICAgcmV0dXJuIGAke3RoaXMuaWRQcmVmaXh9JHthcnRpZmFjdC5pZH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFdlIG1heSBoYXZlIGFjY2lkZW50YWxseSBpbnRyb2R1Y2VkIGN5Y2xlcyBpbiBhbiBhdHRlbXB0IHRvIG1ha2UgdGhlIG1lc3NhZ2VzIHByaW50ZWQgdG8gdGhlXG4gICAqIGNvbnNvbGUgbm90IGludGVyZmVyZSB3aXRoIGVhY2ggb3RoZXIgdG9vIG11Y2guIFJlbW92ZSB0aGVtIGFnYWluLlxuICAgKi9cbiAgcHJpdmF0ZSByZW1vdmVTdGFja1B1Ymxpc2hDeWNsZXMoKSB7XG4gICAgY29uc3QgcHVibGlzaFN0ZXBzID0gdGhpcy5ncmFwaC5ub2Rlc09mVHlwZSgnYXNzZXQtcHVibGlzaCcpO1xuICAgIGZvciAoY29uc3QgcHVibGlzaFN0ZXAgb2YgcHVibGlzaFN0ZXBzKSB7XG4gICAgICBmb3IgKGNvbnN0IGRlcCBvZiBwdWJsaXNoU3RlcC5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuZ3JhcGgucmVhY2hhYmxlKGRlcCwgcHVibGlzaFN0ZXAuaWQpKSB7XG4gICAgICAgICAgcHVibGlzaFN0ZXAuZGVwZW5kZW5jaWVzLmRlbGV0ZShkZXApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHN0YWNrc0Zyb21Bc3NldHMoYXJ0aWZhY3RzOiBjeGFwaS5DbG91ZEFydGlmYWN0W10pIHtcbiAgY29uc3QgcmV0ID0gbmV3IE1hcDxjeGFwaS5Bc3NldE1hbmlmZXN0QXJ0aWZhY3QsIGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdD4oKTtcbiAgZm9yIChjb25zdCBzdGFjayBvZiBhcnRpZmFjdHMuZmlsdGVyKHggPT4gY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LmlzQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KHgpKSkge1xuICAgIGNvbnN0IGFzc2V0QXJ0aWZhY3RzID0gc3RhY2suZGVwZW5kZW5jaWVzLmZpbHRlcigoeCkgPT4gY3hhcGkuQXNzZXRNYW5pZmVzdEFydGlmYWN0LmlzQXNzZXRNYW5pZmVzdEFydGlmYWN0KHgpKTtcbiAgICBmb3IgKGNvbnN0IGFydCBvZiBhc3NldEFydGlmYWN0cykge1xuICAgICAgcmV0LnNldChhcnQsIHN0YWNrKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmV0O1xufVxuXG5mdW5jdGlvbiBvbmx5U3RhY2tzKGFydGlmYWN0czogY3hhcGkuQ2xvdWRBcnRpZmFjdFtdKSB7XG4gIHJldHVybiBhcnRpZmFjdHMuZmlsdGVyKHggPT4gY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LmlzQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0KHgpKTtcbn1cbiJdfQ==
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import type * as cxapi from '@aws-cdk/cx-api';
|
|
2
|
-
import type { AssetManifest, IManifestEntry } from 'cdk-assets';
|
|
3
|
-
export declare enum DeploymentState {
|
|
4
|
-
PENDING = "pending",
|
|
5
|
-
QUEUED = "queued",
|
|
6
|
-
DEPLOYING = "deploying",
|
|
7
|
-
COMPLETED = "completed",
|
|
8
|
-
FAILED = "failed",
|
|
9
|
-
SKIPPED = "skipped"
|
|
10
|
-
}
|
|
11
|
-
export type WorkNode = StackNode | AssetBuildNode | AssetPublishNode;
|
|
12
|
-
export interface WorkNodeCommon {
|
|
13
|
-
readonly id: string;
|
|
14
|
-
readonly dependencies: Set<string>;
|
|
15
|
-
deploymentState: DeploymentState;
|
|
16
|
-
/** Some readable information to attach to the id, which may be unreadable */
|
|
17
|
-
readonly note?: string;
|
|
18
|
-
}
|
|
19
|
-
export interface StackNode extends WorkNodeCommon {
|
|
20
|
-
readonly type: 'stack';
|
|
21
|
-
readonly stack: cxapi.CloudFormationStackArtifact;
|
|
22
|
-
/** Sort by priority when picking up work, higher is earlier */
|
|
23
|
-
readonly priority?: number;
|
|
24
|
-
}
|
|
25
|
-
export interface AssetBuildNode extends WorkNodeCommon {
|
|
26
|
-
readonly type: 'asset-build';
|
|
27
|
-
/** The asset manifest this asset resides in (artifact) */
|
|
28
|
-
readonly assetManifestArtifact: cxapi.AssetManifestArtifact;
|
|
29
|
-
/** The asset manifest this asset resides in */
|
|
30
|
-
readonly assetManifest: AssetManifest;
|
|
31
|
-
/** The stack this asset was defined in (used for environment settings) */
|
|
32
|
-
readonly parentStack: cxapi.CloudFormationStackArtifact;
|
|
33
|
-
/** The asset that needs to be built */
|
|
34
|
-
readonly asset: IManifestEntry;
|
|
35
|
-
/** Sort by priority when picking up work, higher is earlier */
|
|
36
|
-
readonly priority?: number;
|
|
37
|
-
}
|
|
38
|
-
export interface AssetPublishNode extends WorkNodeCommon {
|
|
39
|
-
readonly type: 'asset-publish';
|
|
40
|
-
/** The asset manifest this asset resides in (artifact) */
|
|
41
|
-
readonly assetManifestArtifact: cxapi.AssetManifestArtifact;
|
|
42
|
-
/** The asset manifest this asset resides in */
|
|
43
|
-
readonly assetManifest: AssetManifest;
|
|
44
|
-
/** The stack this asset was defined in (used for environment settings) */
|
|
45
|
-
readonly parentStack: cxapi.CloudFormationStackArtifact;
|
|
46
|
-
/** The asset that needs to be published */
|
|
47
|
-
readonly asset: IManifestEntry;
|
|
48
|
-
/** Sort by priority when picking up work, higher is earlier */
|
|
49
|
-
readonly priority?: number;
|
|
50
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DeploymentState = void 0;
|
|
4
|
-
var DeploymentState;
|
|
5
|
-
(function (DeploymentState) {
|
|
6
|
-
DeploymentState["PENDING"] = "pending";
|
|
7
|
-
DeploymentState["QUEUED"] = "queued";
|
|
8
|
-
DeploymentState["DEPLOYING"] = "deploying";
|
|
9
|
-
DeploymentState["COMPLETED"] = "completed";
|
|
10
|
-
DeploymentState["FAILED"] = "failed";
|
|
11
|
-
DeploymentState["SKIPPED"] = "skipped";
|
|
12
|
-
})(DeploymentState || (exports.DeploymentState = DeploymentState = {}));
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1ncmFwaC10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndvcmstZ3JhcGgtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsSUFBWSxlQU9YO0FBUEQsV0FBWSxlQUFlO0lBQ3pCLHNDQUFtQixDQUFBO0lBQ25CLG9DQUFpQixDQUFBO0lBQ2pCLDBDQUF1QixDQUFBO0lBQ3ZCLDBDQUF1QixDQUFBO0lBQ3ZCLG9DQUFpQixDQUFBO0lBQ2pCLHNDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFQVyxlQUFlLCtCQUFmLGVBQWUsUUFPMUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgdHlwZSB7IEFzc2V0TWFuaWZlc3QsIElNYW5pZmVzdEVudHJ5IH0gZnJvbSAnY2RrLWFzc2V0cyc7XG5cbmV4cG9ydCBlbnVtIERlcGxveW1lbnRTdGF0ZSB7XG4gIFBFTkRJTkcgPSAncGVuZGluZycsXG4gIFFVRVVFRCA9ICdxdWV1ZWQnLFxuICBERVBMT1lJTkcgPSAnZGVwbG95aW5nJyxcbiAgQ09NUExFVEVEID0gJ2NvbXBsZXRlZCcsXG4gIEZBSUxFRCA9ICdmYWlsZWQnLFxuICBTS0lQUEVEID0gJ3NraXBwZWQnLFxufVxuXG5leHBvcnQgdHlwZSBXb3JrTm9kZSA9IFN0YWNrTm9kZSB8IEFzc2V0QnVpbGROb2RlIHwgQXNzZXRQdWJsaXNoTm9kZTtcblxuZXhwb3J0IGludGVyZmFjZSBXb3JrTm9kZUNvbW1vbiB7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlcGVuZGVuY2llczogU2V0PHN0cmluZz47XG4gIGRlcGxveW1lbnRTdGF0ZTogRGVwbG95bWVudFN0YXRlO1xuICAvKiogU29tZSByZWFkYWJsZSBpbmZvcm1hdGlvbiB0byBhdHRhY2ggdG8gdGhlIGlkLCB3aGljaCBtYXkgYmUgdW5yZWFkYWJsZSAqL1xuICByZWFkb25seSBub3RlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrTm9kZSBleHRlbmRzIFdvcmtOb2RlQ29tbW9uIHtcbiAgcmVhZG9ubHkgdHlwZTogJ3N0YWNrJztcbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbiAgLyoqIFNvcnQgYnkgcHJpb3JpdHkgd2hlbiBwaWNraW5nIHVwIHdvcmssIGhpZ2hlciBpcyBlYXJsaWVyICovXG4gIHJlYWRvbmx5IHByaW9yaXR5PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFzc2V0QnVpbGROb2RlIGV4dGVuZHMgV29ya05vZGVDb21tb24ge1xuICByZWFkb25seSB0eXBlOiAnYXNzZXQtYnVpbGQnO1xuICAvKiogVGhlIGFzc2V0IG1hbmlmZXN0IHRoaXMgYXNzZXQgcmVzaWRlcyBpbiAoYXJ0aWZhY3QpICovXG4gIHJlYWRvbmx5IGFzc2V0TWFuaWZlc3RBcnRpZmFjdDogY3hhcGkuQXNzZXRNYW5pZmVzdEFydGlmYWN0O1xuICAvKiogVGhlIGFzc2V0IG1hbmlmZXN0IHRoaXMgYXNzZXQgcmVzaWRlcyBpbiAqL1xuICByZWFkb25seSBhc3NldE1hbmlmZXN0OiBBc3NldE1hbmlmZXN0O1xuICAvKiogVGhlIHN0YWNrIHRoaXMgYXNzZXQgd2FzIGRlZmluZWQgaW4gKHVzZWQgZm9yIGVudmlyb25tZW50IHNldHRpbmdzKSAqL1xuICByZWFkb25seSBwYXJlbnRTdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuICAvKiogVGhlIGFzc2V0IHRoYXQgbmVlZHMgdG8gYmUgYnVpbHQgKi9cbiAgcmVhZG9ubHkgYXNzZXQ6IElNYW5pZmVzdEVudHJ5O1xuICAvKiogU29ydCBieSBwcmlvcml0eSB3aGVuIHBpY2tpbmcgdXAgd29yaywgaGlnaGVyIGlzIGVhcmxpZXIgKi9cbiAgcmVhZG9ubHkgcHJpb3JpdHk/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRQdWJsaXNoTm9kZSBleHRlbmRzIFdvcmtOb2RlQ29tbW9uIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2Fzc2V0LXB1Ymxpc2gnO1xuICAvKiogVGhlIGFzc2V0IG1hbmlmZXN0IHRoaXMgYXNzZXQgcmVzaWRlcyBpbiAoYXJ0aWZhY3QpICovXG4gIHJlYWRvbmx5IGFzc2V0TWFuaWZlc3RBcnRpZmFjdDogY3hhcGkuQXNzZXRNYW5pZmVzdEFydGlmYWN0O1xuICAvKiogVGhlIGFzc2V0IG1hbmlmZXN0IHRoaXMgYXNzZXQgcmVzaWRlcyBpbiAqL1xuICByZWFkb25seSBhc3NldE1hbmlmZXN0OiBBc3NldE1hbmlmZXN0O1xuICAvKiogVGhlIHN0YWNrIHRoaXMgYXNzZXQgd2FzIGRlZmluZWQgaW4gKHVzZWQgZm9yIGVudmlyb25tZW50IHNldHRpbmdzKSAqL1xuICByZWFkb25seSBwYXJlbnRTdGFjazogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0O1xuICAvKiogVGhlIGFzc2V0IHRoYXQgbmVlZHMgdG8gYmUgcHVibGlzaGVkICovXG4gIHJlYWRvbmx5IGFzc2V0OiBJTWFuaWZlc3RFbnRyeTtcbiAgLyoqIFNvcnQgYnkgcHJpb3JpdHkgd2hlbiBwaWNraW5nIHVwIHdvcmssIGhpZ2hlciBpcyBlYXJsaWVyICovXG4gIHJlYWRvbmx5IHByaW9yaXR5PzogbnVtYmVyO1xufVxuIl19
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
import type { WorkNode, StackNode, AssetBuildNode, AssetPublishNode } from './work-graph-types';
|
|
2
|
-
import { type IoHelper } from '../../../../@aws-cdk/tmp-toolkit-helpers/src/api/io/private';
|
|
3
|
-
export type Concurrency = number | Record<WorkNode['type'], number>;
|
|
4
|
-
export declare class WorkGraph {
|
|
5
|
-
readonly nodes: Record<string, WorkNode>;
|
|
6
|
-
private readonly readyPool;
|
|
7
|
-
private readonly lazyDependencies;
|
|
8
|
-
private readonly ioHelper;
|
|
9
|
-
error?: Error;
|
|
10
|
-
constructor(nodes: Record<string, WorkNode>, ioHelper: IoHelper);
|
|
11
|
-
addNodes(...nodes: WorkNode[]): void;
|
|
12
|
-
removeNode(nodeId: string | WorkNode): void;
|
|
13
|
-
/**
|
|
14
|
-
* Return all nodes of a given type
|
|
15
|
-
*/
|
|
16
|
-
nodesOfType<T extends WorkNode['type']>(type: T): Extract<WorkNode, {
|
|
17
|
-
type: T;
|
|
18
|
-
}>[];
|
|
19
|
-
/**
|
|
20
|
-
* Return all nodes that depend on a given node
|
|
21
|
-
*/
|
|
22
|
-
dependees(nodeId: string | WorkNode): WorkNode[];
|
|
23
|
-
/**
|
|
24
|
-
* Add a dependency, that may come before or after the nodes involved
|
|
25
|
-
*/
|
|
26
|
-
addDependency(fromId: string, toId: string): void;
|
|
27
|
-
tryGetNode(id: string): WorkNode | undefined;
|
|
28
|
-
node(id: string): WorkNode;
|
|
29
|
-
absorb(graph: WorkGraph): void;
|
|
30
|
-
private hasFailed;
|
|
31
|
-
doParallel(concurrency: Concurrency, actions: WorkGraphActions): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* Return the set of unblocked nodes
|
|
34
|
-
*/
|
|
35
|
-
ready(): Promise<ReadonlyArray<WorkNode>>;
|
|
36
|
-
private forAllArtifacts;
|
|
37
|
-
private done;
|
|
38
|
-
private deployed;
|
|
39
|
-
private failed;
|
|
40
|
-
toString(): string;
|
|
41
|
-
/**
|
|
42
|
-
* Ensure all dependencies actually exist. This protects against scenarios such as the following:
|
|
43
|
-
* StackA depends on StackB, but StackB is not selected to deploy. The dependency is redundant
|
|
44
|
-
* and will be dropped.
|
|
45
|
-
* This assumes the manifest comes uncorrupted so we will not fail if a dependency is not found.
|
|
46
|
-
*/
|
|
47
|
-
removeUnavailableDependencies(): void;
|
|
48
|
-
/**
|
|
49
|
-
* Remove all asset publishing steps for assets that are already published, and then build
|
|
50
|
-
* that aren't used anymore.
|
|
51
|
-
*
|
|
52
|
-
* Do this in parallel, because there may be a lot of assets in an application (seen in practice: >100 assets)
|
|
53
|
-
*/
|
|
54
|
-
removeUnnecessaryAssets(isUnnecessary: (x: AssetPublishNode) => Promise<boolean>): Promise<void>;
|
|
55
|
-
private updateReadyPool;
|
|
56
|
-
private skipRest;
|
|
57
|
-
/**
|
|
58
|
-
* Find cycles in a graph
|
|
59
|
-
*
|
|
60
|
-
* Not the fastest, but effective and should be rare
|
|
61
|
-
*/
|
|
62
|
-
findCycle(): string[] | undefined;
|
|
63
|
-
/**
|
|
64
|
-
* Whether the `end` node is reachable from the `start` node, following the dependency arrows
|
|
65
|
-
*/
|
|
66
|
-
reachable(start: string, end: string): boolean;
|
|
67
|
-
}
|
|
68
|
-
export interface WorkGraphActions {
|
|
69
|
-
deployStack: (stackNode: StackNode) => Promise<void>;
|
|
70
|
-
buildAsset: (assetNode: AssetBuildNode) => Promise<void>;
|
|
71
|
-
publishAsset: (assetNode: AssetPublishNode) => Promise<void>;
|
|
72
|
-
}
|