@codedrifters/configulator 0.0.85 → 0.0.87
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/lib/index.d.mts +1311 -0
- package/lib/index.d.ts +1311 -10
- package/lib/index.js +1508 -26
- package/lib/index.js.map +1 -0
- package/lib/index.mjs +1497 -0
- package/lib/index.mjs.map +1 -0
- package/package.json +11 -8
- package/lib/aws/aws-deployment-config.d.ts +0 -78
- package/lib/aws/aws-deployment-config.js +0 -134
- package/lib/aws/aws-deployment-target.d.ts +0 -183
- package/lib/aws/aws-deployment-target.js +0 -163
- package/lib/aws/aws-types.d.ts +0 -63
- package/lib/aws/aws-types.js +0 -9
- package/lib/aws/index.d.ts +0 -2
- package/lib/aws/index.js +0 -19
- package/lib/git/git-types.d.ts +0 -18
- package/lib/git/git-types.js +0 -9
- package/lib/git/index.d.ts +0 -1
- package/lib/git/index.js +0 -18
- package/lib/jsii/index.d.ts +0 -1
- package/lib/jsii/index.js +0 -18
- package/lib/jsii/jsii-faker.d.ts +0 -47
- package/lib/jsii/jsii-faker.js +0 -103
- package/lib/pnpm/index.d.ts +0 -1
- package/lib/pnpm/index.js +0 -18
- package/lib/pnpm/pnpm-workspace.d.ts +0 -244
- package/lib/pnpm/pnpm-workspace.js +0 -176
- package/lib/projects/index.d.ts +0 -2
- package/lib/projects/index.js +0 -19
- package/lib/projects/monorepo-project.d.ts +0 -82
- package/lib/projects/monorepo-project.js +0 -277
- package/lib/projects/typescript-project.d.ts +0 -20
- package/lib/projects/typescript-project.js +0 -181
- package/lib/tasks/index.d.ts +0 -1
- package/lib/tasks/index.js +0 -18
- package/lib/tasks/reset-task.d.ts +0 -51
- package/lib/tasks/reset-task.js +0 -149
- package/lib/turbo/index.d.ts +0 -2
- package/lib/turbo/index.js +0 -19
- package/lib/turbo/turbo-repo-task.d.ts +0 -36
- package/lib/turbo/turbo-repo-task.js +0 -43
- package/lib/turbo/turbo-repo.d.ts +0 -375
- package/lib/turbo/turbo-repo.js +0 -299
- package/lib/typescript/index.d.ts +0 -1
- package/lib/typescript/index.js +0 -18
- package/lib/typescript/typescript-config.d.ts +0 -13
- package/lib/typescript/typescript-config.js +0 -40
- package/lib/versions.d.ts +0 -34
- package/lib/versions.js +0 -38
- package/lib/vscode/index.d.ts +0 -1
- package/lib/vscode/index.js +0 -18
- package/lib/vscode/vscode.d.ts +0 -10
- package/lib/vscode/vscode.js +0 -38
- package/lib/workflows/aws-deploy-workflow.d.ts +0 -86
- package/lib/workflows/aws-deploy-workflow.js +0 -313
- package/lib/workflows/index.d.ts +0 -1
- package/lib/workflows/index.js +0 -18
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { AWS_STAGE_TYPE, AwsStageType, DeploymentTargetRoleType } from "@codedrifters/utils";
|
|
2
|
-
import { Component } from "projen";
|
|
3
|
-
import { AwsCdkTypeScriptApp } from "projen/lib/awscdk";
|
|
4
|
-
import { BuildWorkflow, BuildWorkflowOptions } from "projen/lib/build";
|
|
5
|
-
import { JobStep } from "projen/lib/github/workflows-model";
|
|
6
|
-
import { ValueOf } from "type-fest";
|
|
7
|
-
import { AwsDeploymentTarget } from "../aws/aws-deployment-target";
|
|
8
|
-
export declare const PROD_DEPLOY_NAME = "prod-deploy";
|
|
9
|
-
export interface DeployWorkflowOptions {
|
|
10
|
-
/**
|
|
11
|
-
* What type of deploy is this workflow for?
|
|
12
|
-
*
|
|
13
|
-
* @default AWS_STAGE_TYPE.DEV
|
|
14
|
-
*/
|
|
15
|
-
readonly awsStageType?: ValueOf<typeof AWS_STAGE_TYPE>;
|
|
16
|
-
/**
|
|
17
|
-
* Optionally feed a list of targets to deploy to.
|
|
18
|
-
*
|
|
19
|
-
* @default discovers all targets using stageType
|
|
20
|
-
*/
|
|
21
|
-
readonly awsDeploymentTargets?: Array<AwsDeploymentTarget>;
|
|
22
|
-
/**
|
|
23
|
-
* Existing workflow, useful if we're tacking deployments onto an existing
|
|
24
|
-
* build workflow
|
|
25
|
-
*/
|
|
26
|
-
readonly buildWorkflow?: BuildWorkflow;
|
|
27
|
-
/**
|
|
28
|
-
* Options for the build workflow, if no build workflow is provided.
|
|
29
|
-
*/
|
|
30
|
-
readonly buildWorkflowOptions?: Partial<BuildWorkflowOptions>;
|
|
31
|
-
/**
|
|
32
|
-
* Projects that should complete deployment before this one starts.
|
|
33
|
-
*/
|
|
34
|
-
readonly deployAfterTargets?: Array<AwsDeploymentTarget>;
|
|
35
|
-
}
|
|
36
|
-
export declare class AwsDeployWorkflow extends Component {
|
|
37
|
-
project: AwsCdkTypeScriptApp;
|
|
38
|
-
static of(project: AwsCdkTypeScriptApp, buildWorkflow: BuildWorkflow): AwsDeployWorkflow | undefined;
|
|
39
|
-
/**
|
|
40
|
-
* The root project for this deploy workflow. Must be a monorepo project.
|
|
41
|
-
*/
|
|
42
|
-
private rootProject;
|
|
43
|
-
/**
|
|
44
|
-
* What type of deploy is this workflow for?
|
|
45
|
-
*/
|
|
46
|
-
awsStageType: AwsStageType;
|
|
47
|
-
/**
|
|
48
|
-
* AWS environment type, such as primary or secondary.
|
|
49
|
-
*
|
|
50
|
-
* @deprecated Use deployment target role terminology elsewhere. This property is maintained for backward compatibility.
|
|
51
|
-
* @default 'primary' (this is the only type supported currently)
|
|
52
|
-
*/
|
|
53
|
-
awsEnvironmentType: DeploymentTargetRoleType;
|
|
54
|
-
/**
|
|
55
|
-
* The list of targets to deploy to.
|
|
56
|
-
*/
|
|
57
|
-
readonly awsDeploymentTargets: Array<AwsDeploymentTarget>;
|
|
58
|
-
/**
|
|
59
|
-
* Hold the deploy workflow so we can add to it in preSynth
|
|
60
|
-
*/
|
|
61
|
-
buildWorkflow: BuildWorkflow;
|
|
62
|
-
/**
|
|
63
|
-
* Was this workflow created externally?
|
|
64
|
-
*/
|
|
65
|
-
externalWorkflow: boolean;
|
|
66
|
-
/**
|
|
67
|
-
* Projects that should complete deployment before this one starts.
|
|
68
|
-
*/
|
|
69
|
-
deployAfterTargets: Array<AwsDeploymentTarget>;
|
|
70
|
-
constructor(project: AwsCdkTypeScriptApp, options?: DeployWorkflowOptions);
|
|
71
|
-
setupNode: () => Array<JobStep>;
|
|
72
|
-
setupPnpm: () => Array<JobStep>;
|
|
73
|
-
/**
|
|
74
|
-
* Builds a GitHub Actions condition string that checks if the current branch
|
|
75
|
-
* matches any of the provided branch patterns.
|
|
76
|
-
*
|
|
77
|
-
* Handles both exact matches (e.g., "main") and glob patterns (e.g., "feature/*").
|
|
78
|
-
* Also allows workflow_dispatch (manual runs) to proceed.
|
|
79
|
-
*
|
|
80
|
-
* @param branches Array of GitBranch objects with branch patterns
|
|
81
|
-
* @returns Condition string or empty string if no branches provided
|
|
82
|
-
*/
|
|
83
|
-
private buildBranchFilterCondition;
|
|
84
|
-
private deploySteps;
|
|
85
|
-
preSynthesize(): void;
|
|
86
|
-
}
|
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AwsDeployWorkflow = exports.PROD_DEPLOY_NAME = void 0;
|
|
4
|
-
const utils_1 = require("@codedrifters/utils");
|
|
5
|
-
const projen_1 = require("projen");
|
|
6
|
-
const build_1 = require("projen/lib/build");
|
|
7
|
-
const github_1 = require("projen/lib/github");
|
|
8
|
-
const workflows_model_1 = require("projen/lib/github/workflows-model");
|
|
9
|
-
const aws_1 = require("../aws");
|
|
10
|
-
const projects_1 = require("../projects");
|
|
11
|
-
const turbo_1 = require("../turbo");
|
|
12
|
-
const versions_1 = require("../versions");
|
|
13
|
-
exports.PROD_DEPLOY_NAME = "prod-deploy";
|
|
14
|
-
class AwsDeployWorkflow extends projen_1.Component {
|
|
15
|
-
static of(project, buildWorkflow) {
|
|
16
|
-
const isDefined = (c) => c instanceof AwsDeployWorkflow && c.buildWorkflow === buildWorkflow;
|
|
17
|
-
return project.components.find(isDefined);
|
|
18
|
-
}
|
|
19
|
-
constructor(project, options = {}) {
|
|
20
|
-
super(project);
|
|
21
|
-
this.project = project;
|
|
22
|
-
/**
|
|
23
|
-
* AWS environment type, such as primary or secondary.
|
|
24
|
-
*
|
|
25
|
-
* @deprecated Use deployment target role terminology elsewhere. This property is maintained for backward compatibility.
|
|
26
|
-
* @default 'primary' (this is the only type supported currently)
|
|
27
|
-
*/
|
|
28
|
-
this.awsEnvironmentType = utils_1.DEPLOYMENT_TARGET_ROLE.PRIMARY;
|
|
29
|
-
this.setupNode = () => {
|
|
30
|
-
return [
|
|
31
|
-
{
|
|
32
|
-
name: "Setup Node",
|
|
33
|
-
uses: "actions/setup-node@v4",
|
|
34
|
-
with: {
|
|
35
|
-
["node-version"]: versions_1.VERSION.NODE_WORKFLOWS,
|
|
36
|
-
},
|
|
37
|
-
// occasionally this step fails due to internal issues at github
|
|
38
|
-
timeoutMinutes: 1,
|
|
39
|
-
},
|
|
40
|
-
];
|
|
41
|
-
};
|
|
42
|
-
this.setupPnpm = () => {
|
|
43
|
-
return [
|
|
44
|
-
{
|
|
45
|
-
name: "Setup PNPM",
|
|
46
|
-
uses: "pnpm/action-setup@v3",
|
|
47
|
-
with: {
|
|
48
|
-
version: versions_1.VERSION.PNPM_VERSION,
|
|
49
|
-
},
|
|
50
|
-
},
|
|
51
|
-
];
|
|
52
|
-
};
|
|
53
|
-
/**
|
|
54
|
-
* Builds a GitHub Actions condition string that checks if the current branch
|
|
55
|
-
* matches any of the provided branch patterns.
|
|
56
|
-
*
|
|
57
|
-
* Handles both exact matches (e.g., "main") and glob patterns (e.g., "feature/*").
|
|
58
|
-
* Also allows workflow_dispatch (manual runs) to proceed.
|
|
59
|
-
*
|
|
60
|
-
* @param branches Array of GitBranch objects with branch patterns
|
|
61
|
-
* @returns Condition string or empty string if no branches provided
|
|
62
|
-
*/
|
|
63
|
-
this.buildBranchFilterCondition = (branches) => {
|
|
64
|
-
if (!branches || branches.length === 0) {
|
|
65
|
-
return "";
|
|
66
|
-
}
|
|
67
|
-
const conditions = [];
|
|
68
|
-
// Always allow workflow_dispatch (manual workflow runs)
|
|
69
|
-
conditions.push("github.event_name == 'workflow_dispatch'");
|
|
70
|
-
for (const branch of branches) {
|
|
71
|
-
const branchPattern = branch.branch;
|
|
72
|
-
// Handle glob patterns (e.g., "feature/*")
|
|
73
|
-
if (branchPattern.includes("*")) {
|
|
74
|
-
// Replace * with proper startsWith check
|
|
75
|
-
const prefix = branchPattern.replace(/\*.*$/, "");
|
|
76
|
-
conditions.push(`startsWith(github.ref, 'refs/heads/${prefix}')`);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
// Exact match
|
|
80
|
-
conditions.push(`github.ref == 'refs/heads/${branchPattern}'`);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
// Combine all conditions with OR
|
|
84
|
-
return conditions.join(" || ");
|
|
85
|
-
};
|
|
86
|
-
this.deploySteps = (target) => {
|
|
87
|
-
const { awsStageType, deploymentTargetRole, account, region, ciDeploymentConfig, awsDeploymentConfig, } = target;
|
|
88
|
-
const { roleArn, stackPattern } = ciDeploymentConfig ?? {};
|
|
89
|
-
const { rootCdkOut } = awsDeploymentConfig;
|
|
90
|
-
return [
|
|
91
|
-
...this.setupPnpm(),
|
|
92
|
-
...this.setupNode(),
|
|
93
|
-
/**
|
|
94
|
-
* Install CDK
|
|
95
|
-
*/
|
|
96
|
-
{
|
|
97
|
-
name: "Install CDK",
|
|
98
|
-
run: "pnpm add aws-cdk",
|
|
99
|
-
},
|
|
100
|
-
/**
|
|
101
|
-
* Configure AWS creds.
|
|
102
|
-
*/
|
|
103
|
-
{
|
|
104
|
-
name: `AWS Creds ${awsStageType}/${deploymentTargetRole}/${account}/${region}`,
|
|
105
|
-
uses: "aws-actions/configure-aws-credentials@v4",
|
|
106
|
-
with: {
|
|
107
|
-
"role-to-assume": roleArn,
|
|
108
|
-
"aws-region": region,
|
|
109
|
-
"role-duration-seconds": 900, // 15 minutes
|
|
110
|
-
},
|
|
111
|
-
},
|
|
112
|
-
/**
|
|
113
|
-
* Run CDK Deploy
|
|
114
|
-
*/
|
|
115
|
-
{
|
|
116
|
-
name: `Deploy ${awsStageType}/${deploymentTargetRole}/${account}/${region}`,
|
|
117
|
-
run: `pnpm dlx aws-cdk deploy --no-rollback --require-approval=never --app=${rootCdkOut} "${stackPattern}"`,
|
|
118
|
-
},
|
|
119
|
-
];
|
|
120
|
-
};
|
|
121
|
-
/***************************************************************************
|
|
122
|
-
*
|
|
123
|
-
* Root project check
|
|
124
|
-
*
|
|
125
|
-
* Detect the root project and ensure it's of type MonorepoProject.
|
|
126
|
-
*
|
|
127
|
-
**************************************************************************/
|
|
128
|
-
if (!(project.root instanceof projects_1.MonorepoProject)) {
|
|
129
|
-
throw new Error("AwsDeployWorkflow requires the root project to be a MonorepoProject");
|
|
130
|
-
}
|
|
131
|
-
this.rootProject = project.root;
|
|
132
|
-
/***************************************************************************
|
|
133
|
-
*
|
|
134
|
-
* GitHub Check
|
|
135
|
-
*
|
|
136
|
-
* Make sure github config is active in the project. This is to ensure all
|
|
137
|
-
* workflows will be output properly during synth.
|
|
138
|
-
*
|
|
139
|
-
**************************************************************************/
|
|
140
|
-
const github = github_1.GitHub.of(this.rootProject);
|
|
141
|
-
if (!github) {
|
|
142
|
-
throw new Error("AwsDeployWorkflow requires a GitHub component in the root project");
|
|
143
|
-
}
|
|
144
|
-
/***************************************************************************
|
|
145
|
-
*
|
|
146
|
-
* TurboRepo Check
|
|
147
|
-
*
|
|
148
|
-
* If turbo is enabled, we may need the options later in this file.
|
|
149
|
-
*
|
|
150
|
-
**************************************************************************/
|
|
151
|
-
const turbo = turbo_1.TurboRepo.of(this.rootProject);
|
|
152
|
-
const buildWorkflowOptions = turbo?.remoteCacheOptions
|
|
153
|
-
? turbo_1.TurboRepo.buildWorkflowOptions(turbo.remoteCacheOptions)
|
|
154
|
-
: {};
|
|
155
|
-
/***************************************************************************
|
|
156
|
-
*
|
|
157
|
-
* Workflow Deploy Type
|
|
158
|
-
*
|
|
159
|
-
* What type of environments are we deploying into? We'll default to dev to
|
|
160
|
-
* be safe.
|
|
161
|
-
*
|
|
162
|
-
**************************************************************************/
|
|
163
|
-
this.awsStageType = options.awsStageType ?? utils_1.AWS_STAGE_TYPE.DEV;
|
|
164
|
-
/***************************************************************************
|
|
165
|
-
*
|
|
166
|
-
* Workflow Deploy Targets
|
|
167
|
-
*
|
|
168
|
-
* Use provided targets or discover them based on the deploy type. Only
|
|
169
|
-
* include targets that are marked for CI/CD.
|
|
170
|
-
*
|
|
171
|
-
**************************************************************************/
|
|
172
|
-
this.awsDeploymentTargets =
|
|
173
|
-
options.awsDeploymentTargets ??
|
|
174
|
-
aws_1.AwsDeploymentConfig.of(project)?.awsDeploymentTargets.filter((target) => target.awsStageType === this.awsStageType && target.ciDeployment) ??
|
|
175
|
-
[];
|
|
176
|
-
this.deployAfterTargets = options.deployAfterTargets ?? [];
|
|
177
|
-
/***************************************************************************
|
|
178
|
-
*
|
|
179
|
-
* Build Workflow Options
|
|
180
|
-
*
|
|
181
|
-
* Can't use the options if an existing workflow was passed in.
|
|
182
|
-
*
|
|
183
|
-
**************************************************************************/
|
|
184
|
-
if (options.buildWorkflow && options.buildWorkflowOptions) {
|
|
185
|
-
throw new Error("Cannot provide both buildWorkflow and buildWorkflowOptions");
|
|
186
|
-
}
|
|
187
|
-
this.externalWorkflow = !!options.buildWorkflow;
|
|
188
|
-
/***************************************************************************
|
|
189
|
-
*
|
|
190
|
-
* Build Workflow
|
|
191
|
-
*
|
|
192
|
-
* Create a workflow either based on input or from scratch.
|
|
193
|
-
*
|
|
194
|
-
**************************************************************************/
|
|
195
|
-
this.buildWorkflow =
|
|
196
|
-
options.buildWorkflow ??
|
|
197
|
-
new build_1.BuildWorkflow(this.rootProject, {
|
|
198
|
-
/**
|
|
199
|
-
* Name based on project and environment.
|
|
200
|
-
*/
|
|
201
|
-
name: options.buildWorkflowOptions?.name ??
|
|
202
|
-
[
|
|
203
|
-
"deploy",
|
|
204
|
-
project.name,
|
|
205
|
-
this.awsStageType,
|
|
206
|
-
this.awsEnvironmentType,
|
|
207
|
-
].join("-"),
|
|
208
|
-
/**
|
|
209
|
-
* Use the root projects build task.
|
|
210
|
-
*/
|
|
211
|
-
buildTask: this.rootProject.buildTask,
|
|
212
|
-
/**
|
|
213
|
-
* Use push triggers based n the branch config for each environment.
|
|
214
|
-
*/
|
|
215
|
-
workflowTriggers: {
|
|
216
|
-
push: {
|
|
217
|
-
branches: [
|
|
218
|
-
...this.awsDeploymentTargets.flatMap((t) => t.branches.map((b) => b.branch)),
|
|
219
|
-
],
|
|
220
|
-
},
|
|
221
|
-
workflowDispatch: {},
|
|
222
|
-
...options.buildWorkflowOptions?.workflowTriggers,
|
|
223
|
-
},
|
|
224
|
-
/**
|
|
225
|
-
* Never allow mutations for deploys. This should have been handled
|
|
226
|
-
* during build.
|
|
227
|
-
*/
|
|
228
|
-
mutableBuild: false,
|
|
229
|
-
/**
|
|
230
|
-
* Do this pre-merge of permissions and build steps
|
|
231
|
-
*/
|
|
232
|
-
...options.buildWorkflowOptions,
|
|
233
|
-
/**
|
|
234
|
-
* Some additional permissions may be required when turbo's involved.
|
|
235
|
-
*/
|
|
236
|
-
permissions: {
|
|
237
|
-
...options.buildWorkflowOptions?.permissions,
|
|
238
|
-
...buildWorkflowOptions?.permissions,
|
|
239
|
-
},
|
|
240
|
-
/**
|
|
241
|
-
* Assemble all pre-build steps
|
|
242
|
-
*/
|
|
243
|
-
preBuildSteps: [
|
|
244
|
-
...this.setupPnpm(),
|
|
245
|
-
...this.setupNode(),
|
|
246
|
-
{
|
|
247
|
-
name: "Install dependencies",
|
|
248
|
-
run: "pnpm i --no-frozen-lockfile",
|
|
249
|
-
},
|
|
250
|
-
...(options.buildWorkflowOptions?.preBuildSteps ?? []),
|
|
251
|
-
...(buildWorkflowOptions?.preBuildSteps ?? []),
|
|
252
|
-
],
|
|
253
|
-
});
|
|
254
|
-
/***************************************************************************
|
|
255
|
-
*
|
|
256
|
-
* Add Deployments to workflow
|
|
257
|
-
*
|
|
258
|
-
**************************************************************************/
|
|
259
|
-
const buildJobName = (target) => {
|
|
260
|
-
return [
|
|
261
|
-
target.awsStageType,
|
|
262
|
-
target.deploymentTargetRole,
|
|
263
|
-
"deploy",
|
|
264
|
-
target.project.name,
|
|
265
|
-
target.account,
|
|
266
|
-
target.region,
|
|
267
|
-
].join("-");
|
|
268
|
-
};
|
|
269
|
-
this.awsDeploymentTargets.forEach((target) => {
|
|
270
|
-
const deployJobName = buildJobName(target);
|
|
271
|
-
// Build the branch filter condition
|
|
272
|
-
const branchFilterCondition = this.buildBranchFilterCondition(target.branches);
|
|
273
|
-
// Combine with the existing build mutation check
|
|
274
|
-
const jobCondition = branchFilterCondition
|
|
275
|
-
? [
|
|
276
|
-
"${{ !needs.build.outputs.self_mutation_happened }}",
|
|
277
|
-
`(${branchFilterCondition})`,
|
|
278
|
-
].join(" && ")
|
|
279
|
-
: "${{ !needs.build.outputs.self_mutation_happened }}";
|
|
280
|
-
this.buildWorkflow.addPostBuildJob(deployJobName, {
|
|
281
|
-
name: `Deploy ${this.project.name} ${target.awsStageType}/${target.deploymentTargetRole}/${target.account}/${target.region}`,
|
|
282
|
-
needs: [
|
|
283
|
-
"build",
|
|
284
|
-
...this.deployAfterTargets.map((p) => {
|
|
285
|
-
return buildJobName(p);
|
|
286
|
-
}),
|
|
287
|
-
],
|
|
288
|
-
runsOn: ["ubuntu-latest"],
|
|
289
|
-
permissions: {
|
|
290
|
-
contents: workflows_model_1.JobPermission.READ,
|
|
291
|
-
idToken: workflows_model_1.JobPermission.WRITE,
|
|
292
|
-
},
|
|
293
|
-
concurrency: deployJobName,
|
|
294
|
-
if: jobCondition,
|
|
295
|
-
steps: [...this.deploySteps(target)],
|
|
296
|
-
});
|
|
297
|
-
});
|
|
298
|
-
}
|
|
299
|
-
preSynthesize() {
|
|
300
|
-
/**
|
|
301
|
-
* Ensure turbo is active when needed.
|
|
302
|
-
*/
|
|
303
|
-
if (!this.externalWorkflow && turbo_1.TurboRepo.of(this.rootProject)) {
|
|
304
|
-
this.buildWorkflow.addPostBuildSteps({
|
|
305
|
-
name: "Build Sub Projects",
|
|
306
|
-
run: `npx projen ${turbo_1.ROOT_CI_TASK_NAME}`,
|
|
307
|
-
});
|
|
308
|
-
}
|
|
309
|
-
super.preSynthesize();
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
exports.AwsDeployWorkflow = AwsDeployWorkflow;
|
|
313
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveS13b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3JrZmxvd3MvYXdzLWRlcGxveS13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwrQ0FLNkI7QUFDN0IsbUNBQW1DO0FBRW5DLDRDQUF1RTtBQUN2RSw4Q0FBMkM7QUFDM0MsdUVBQTJFO0FBRTNFLGdDQUE2QztBQUc3QywwQ0FBOEM7QUFDOUMsb0NBQXdEO0FBQ3hELDBDQUFzQztBQUV6QixRQUFBLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztBQWtDOUMsTUFBYSxpQkFBa0IsU0FBUSxrQkFBUztJQUN2QyxNQUFNLENBQUMsRUFBRSxDQUNkLE9BQTRCLEVBQzVCLGFBQTRCO1FBRTVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUEwQixFQUFFLENBQ3pELENBQUMsWUFBWSxpQkFBaUIsSUFBSSxDQUFDLENBQUMsYUFBYSxLQUFLLGFBQWEsQ0FBQztRQUN0RSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUF5Q0QsWUFDUyxPQUE0QixFQUNuQyxVQUFpQyxFQUFFO1FBRW5DLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhSLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBOUJyQzs7Ozs7V0FLRztRQUNJLHVCQUFrQixHQUN2Qiw4QkFBc0IsQ0FBQyxPQUFPLENBQUM7UUEyUDFCLGNBQVMsR0FBRyxHQUFtQixFQUFFO1lBQ3RDLE9BQU87Z0JBQ0w7b0JBQ0UsSUFBSSxFQUFFLFlBQVk7b0JBQ2xCLElBQUksRUFBRSx1QkFBdUI7b0JBQzdCLElBQUksRUFBRTt3QkFDSixDQUFDLGNBQWMsQ0FBQyxFQUFFLGtCQUFPLENBQUMsY0FBYztxQkFDekM7b0JBQ0QsZ0VBQWdFO29CQUNoRSxjQUFjLEVBQUUsQ0FBQztpQkFDbEI7YUFDRixDQUFDO1FBQ0osQ0FBQyxD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U3RhZ2VUeXBlLFxuICBERVBMT1lNRU5UX1RBUkdFVF9ST0xFLFxuICBEZXBsb3ltZW50VGFyZ2V0Um9sZVR5cGUsXG59IGZyb20gXCJAY29kZWRyaWZ0ZXJzL3V0aWxzXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSBcInByb2plbi9saWIvYXdzY2RrXCI7XG5pbXBvcnQgeyBCdWlsZFdvcmtmbG93LCBCdWlsZFdvcmtmbG93T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2J1aWxkXCI7XG5pbXBvcnQgeyBHaXRIdWIgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWJcIjtcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24sIEpvYlN0ZXAgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQgeyBWYWx1ZU9mIH0gZnJvbSBcInR5cGUtZmVzdFwiO1xuaW1wb3J0IHsgQXdzRGVwbG95bWVudENvbmZpZyB9IGZyb20gXCIuLi9hd3NcIjtcbmltcG9ydCB7IEF3c0RlcGxveW1lbnRUYXJnZXQgfSBmcm9tIFwiLi4vYXdzL2F3cy1kZXBsb3ltZW50LXRhcmdldFwiO1xuaW1wb3J0IHsgR2l0QnJhbmNoIH0gZnJvbSBcIi4uL2dpdFwiO1xuaW1wb3J0IHsgTW9ub3JlcG9Qcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RzXCI7XG5pbXBvcnQgeyBST09UX0NJX1RBU0tfTkFNRSwgVHVyYm9SZXBvIH0gZnJvbSBcIi4uL3R1cmJvXCI7XG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSBcIi4uL3ZlcnNpb25zXCI7XG5cbmV4cG9ydCBjb25zdCBQUk9EX0RFUExPWV9OQU1FID0gXCJwcm9kLWRlcGxveVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveVdvcmtmbG93T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGF0IHR5cGUgb2YgZGVwbG95IGlzIHRoaXMgd29ya2Zsb3cgZm9yP1xuICAgKlxuICAgKiBAZGVmYXVsdCBBV1NfU1RBR0VfVFlQRS5ERVZcbiAgICovXG4gIHJlYWRvbmx5IGF3c1N0YWdlVHlwZT86IFZhbHVlT2Y8dHlwZW9mIEFXU19TVEFHRV9UWVBFPjtcblxuICAvKipcbiAgICogT3B0aW9uYWxseSBmZWVkIGEgbGlzdCBvZiB0YXJnZXRzIHRvIGRlcGxveSB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgZGlzY292ZXJzIGFsbCB0YXJnZXRzIHVzaW5nIHN0YWdlVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgYXdzRGVwbG95bWVudFRhcmdldHM/OiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PjtcblxuICAvKipcbiAgICogRXhpc3Rpbmcgd29ya2Zsb3csIHVzZWZ1bCBpZiB3ZSdyZSB0YWNraW5nIGRlcGxveW1lbnRzIG9udG8gYW4gZXhpc3RpbmdcbiAgICogYnVpbGQgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkV29ya2Zsb3c/OiBCdWlsZFdvcmtmbG93O1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIGZvciB0aGUgYnVpbGQgd29ya2Zsb3csIGlmIG5vIGJ1aWxkIHdvcmtmbG93IGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRXb3JrZmxvd09wdGlvbnM/OiBQYXJ0aWFsPEJ1aWxkV29ya2Zsb3dPcHRpb25zPjtcblxuICAvKipcbiAgICogUHJvamVjdHMgdGhhdCBzaG91bGQgY29tcGxldGUgZGVwbG95bWVudCBiZWZvcmUgdGhpcyBvbmUgc3RhcnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95QWZ0ZXJUYXJnZXRzPzogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD47XG59XG5cbmV4cG9ydCBjbGFzcyBBd3NEZXBsb3lXb3JrZmxvdyBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb2YoXG4gICAgcHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgICBidWlsZFdvcmtmbG93OiBCdWlsZFdvcmtmbG93LFxuICApOiBBd3NEZXBsb3lXb3JrZmxvdyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNEZWZpbmVkID0gKGM6IENvbXBvbmVudCk6IGMgaXMgQXdzRGVwbG95V29ya2Zsb3cgPT5cbiAgICAgIGMgaW5zdGFuY2VvZiBBd3NEZXBsb3lXb3JrZmxvdyAmJiBjLmJ1aWxkV29ya2Zsb3cgPT09IGJ1aWxkV29ya2Zsb3c7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKGlzRGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJvb3QgcHJvamVjdCBmb3IgdGhpcyBkZXBsb3kgd29ya2Zsb3cuIE11c3QgYmUgYSBtb25vcmVwbyBwcm9qZWN0LlxuICAgKi9cbiAgcHJpdmF0ZSByb290UHJvamVjdDogTW9ub3JlcG9Qcm9qZWN0O1xuXG4gIC8qKlxuICAgKiBXaGF0IHR5cGUgb2YgZGVwbG95IGlzIHRoaXMgd29ya2Zsb3cgZm9yP1xuICAgKi9cbiAgcHVibGljIGF3c1N0YWdlVHlwZTogQXdzU3RhZ2VUeXBlO1xuXG4gIC8qKlxuICAgKiBBV1MgZW52aXJvbm1lbnQgdHlwZSwgc3VjaCBhcyBwcmltYXJ5IG9yIHNlY29uZGFyeS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGRlcGxveW1lbnQgdGFyZ2V0IHJvbGUgdGVybWlub2xvZ3kgZWxzZXdoZXJlLiBUaGlzIHByb3BlcnR5IGlzIG1haW50YWluZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkuXG4gICAqIEBkZWZhdWx0ICdwcmltYXJ5JyAodGhpcyBpcyB0aGUgb25seSB0eXBlIHN1cHBvcnRlZCBjdXJyZW50bHkpXG4gICAqL1xuICBwdWJsaWMgYXdzRW52aXJvbm1lbnRUeXBlOiBEZXBsb3ltZW50VGFyZ2V0Um9sZVR5cGUgPVxuICAgIERFUExPWU1FTlRfVEFSR0VUX1JPTEUuUFJJTUFSWTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgdGFyZ2V0cyB0byBkZXBsb3kgdG8uXG4gICAqL1xuICByZWFkb25seSBhd3NEZXBsb3ltZW50VGFyZ2V0czogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD47XG5cbiAgLyoqXG4gICAqIEhvbGQgdGhlIGRlcGxveSB3b3JrZmxvdyBzbyB3ZSBjYW4gYWRkIHRvIGl0IGluIHByZVN5bnRoXG4gICAqL1xuICBwdWJsaWMgYnVpbGRXb3JrZmxvdzogQnVpbGRXb3JrZmxvdztcblxuICAvKipcbiAgICogV2FzIHRoaXMgd29ya2Zsb3cgY3JlYXRlZCBleHRlcm5hbGx5P1xuICAgKi9cbiAgcHVibGljIGV4dGVybmFsV29ya2Zsb3c6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFByb2plY3RzIHRoYXQgc2hvdWxkIGNvbXBsZXRlIGRlcGxveW1lbnQgYmVmb3JlIHRoaXMgb25lIHN0YXJ0cy5cbiAgICovXG4gIHB1YmxpYyBkZXBsb3lBZnRlclRhcmdldHM6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLFxuICAgIG9wdGlvbnM6IERlcGxveVdvcmtmbG93T3B0aW9ucyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFJvb3QgcHJvamVjdCBjaGVja1xuICAgICAqXG4gICAgICogRGV0ZWN0IHRoZSByb290IHByb2plY3QgYW5kIGVuc3VyZSBpdCdzIG9mIHR5cGUgTW9ub3JlcG9Qcm9qZWN0LlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgaWYgKCEocHJvamVjdC5yb290IGluc3RhbmNlb2YgTW9ub3JlcG9Qcm9qZWN0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkF3c0RlcGxveVdvcmtmbG93IHJlcXVpcmVzIHRoZSByb290IHByb2plY3QgdG8gYmUgYSBNb25vcmVwb1Byb2plY3RcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5yb290UHJvamVjdCA9IHByb2plY3Qucm9vdDtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIEdpdEh1YiBDaGVja1xuICAgICAqXG4gICAgICogTWFrZSBzdXJlIGdpdGh1YiBjb25maWcgaXMgYWN0aXZlIGluIHRoZSBwcm9qZWN0LiBUaGlzIGlzIHRvIGVuc3VyZSBhbGxcbiAgICAgKiB3b3JrZmxvd3Mgd2lsbCBiZSBvdXRwdXQgcHJvcGVybHkgZHVyaW5nIHN5bnRoLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgZ2l0aHViID0gR2l0SHViLm9mKHRoaXMucm9vdFByb2plY3QpO1xuXG4gICAgaWYgKCFnaXRodWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJBd3NEZXBsb3lXb3JrZmxvdyByZXF1aXJlcyBhIEdpdEh1YiBjb21wb25lbnQgaW4gdGhlIHJvb3QgcHJvamVjdFwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBUdXJib1JlcG8gQ2hlY2tcbiAgICAgKlxuICAgICAqIElmIHR1cmJvIGlzIGVuYWJsZWQsIHdlIG1heSBuZWVkIHRoZSBvcHRpb25zIGxhdGVyIGluIHRoaXMgZmlsZS5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGNvbnN0IHR1cmJvID0gVHVyYm9SZXBvLm9mKHRoaXMucm9vdFByb2plY3QpO1xuICAgIGNvbnN0IGJ1aWxkV29ya2Zsb3dPcHRpb25zOiBQYXJ0aWFsPEJ1aWxkV29ya2Zsb3dPcHRpb25zPiA9XG4gICAgICB0dXJibz8ucmVtb3RlQ2FjaGVPcHRpb25zXG4gICAgICAgID8gVHVyYm9SZXBvLmJ1aWxkV29ya2Zsb3dPcHRpb25zKHR1cmJvLnJlbW90ZUNhY2hlT3B0aW9ucylcbiAgICAgICAgOiB7fTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFdvcmtmbG93IERlcGxveSBUeXBlXG4gICAgICpcbiAgICAgKiBXaGF0IHR5cGUgb2YgZW52aXJvbm1lbnRzIGFyZSB3ZSBkZXBsb3lpbmcgaW50bz8gV2UnbGwgZGVmYXVsdCB0byBkZXYgdG9cbiAgICAgKiBiZSBzYWZlLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgdGhpcy5hd3NTdGFnZVR5cGUgPSBvcHRpb25zLmF3c1N0YWdlVHlwZSA/PyBBV1NfU1RBR0VfVFlQRS5ERVY7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBXb3JrZmxvdyBEZXBsb3kgVGFyZ2V0c1xuICAgICAqXG4gICAgICogVXNlIHByb3ZpZGVkIHRhcmdldHMgb3IgZGlzY292ZXIgdGhlbSBiYXNlZCBvbiB0aGUgZGVwbG95IHR5cGUuIE9ubHlcbiAgICAgKiBpbmNsdWRlIHRhcmdldHMgdGhhdCBhcmUgbWFya2VkIGZvciBDSS9DRC5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMgPVxuICAgICAgb3B0aW9ucy5hd3NEZXBsb3ltZW50VGFyZ2V0cyA/P1xuICAgICAgQXdzRGVwbG95bWVudENvbmZpZy5vZihwcm9qZWN0KT8uYXdzRGVwbG95bWVudFRhcmdldHMuZmlsdGVyKFxuICAgICAgICAodGFyZ2V0KSA9PlxuICAgICAgICAgIHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IHRoaXMuYXdzU3RhZ2VUeXBlICYmIHRhcmdldC5jaURlcGxveW1lbnQsXG4gICAgICApID8/XG4gICAgICBbXTtcblxuICAgIHRoaXMuZGVwbG95QWZ0ZXJUYXJnZXRzID0gb3B0aW9ucy5kZXBsb3lBZnRlclRhcmdldHMgPz8gW107XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBCdWlsZCBXb3JrZmxvdyBPcHRpb25zXG4gICAgICpcbiAgICAgKiBDYW4ndCB1c2UgdGhlIG9wdGlvbnMgaWYgYW4gZXhpc3Rpbmcgd29ya2Zsb3cgd2FzIHBhc3NlZCBpbi5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGlmIChvcHRpb25zLmJ1aWxkV29ya2Zsb3cgJiYgb3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNhbm5vdCBwcm92aWRlIGJvdGggYnVpbGRXb3JrZmxvdyBhbmQgYnVpbGRXb3JrZmxvd09wdGlvbnNcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5leHRlcm5hbFdvcmtmbG93ID0gISFvcHRpb25zLmJ1aWxkV29ya2Zsb3c7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBCdWlsZCBXb3JrZmxvd1xuICAgICAqXG4gICAgICogQ3JlYXRlIGEgd29ya2Zsb3cgZWl0aGVyIGJhc2VkIG9uIGlucHV0IG9yIGZyb20gc2NyYXRjaC5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHRoaXMuYnVpbGRXb3JrZmxvdyA9XG4gICAgICBvcHRpb25zLmJ1aWxkV29ya2Zsb3cgPz9cbiAgICAgIG5ldyBCdWlsZFdvcmtmbG93KHRoaXMucm9vdFByb2plY3QsIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5hbWUgYmFzZWQgb24gcHJvamVjdCBhbmQgZW52aXJvbm1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICBuYW1lOlxuICAgICAgICAgIG9wdGlvbnMuYnVpbGRXb3JrZmxvd09wdGlvbnM/Lm5hbWUgPz9cbiAgICAgICAgICBbXG4gICAgICAgICAgICBcImRlcGxveVwiLFxuICAgICAgICAgICAgcHJvamVjdC5uYW1lLFxuICAgICAgICAgICAgdGhpcy5hd3NTdGFnZVR5cGUsXG4gICAgICAgICAgICB0aGlzLmF3c0Vudmlyb25tZW50VHlwZSxcbiAgICAgICAgICBdLmpvaW4oXCItXCIpLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2UgdGhlIHJvb3QgcHJvamVjdHMgYnVpbGQgdGFzay5cbiAgICAgICAgICovXG4gICAgICAgIGJ1aWxkVGFzazogdGhpcy5yb290UHJvamVjdC5idWlsZFRhc2ssXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZSBwdXNoIHRyaWdnZXJzIGJhc2VkIG4gdGhlIGJyYW5jaCBjb25maWcgZm9yIGVhY2ggZW52aXJvbm1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICB3b3JrZmxvd1RyaWdnZXJzOiB7XG4gICAgICAgICAgcHVzaDoge1xuICAgICAgICAgICAgYnJhbmNoZXM6IFtcbiAgICAgICAgICAgICAgLi4udGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5mbGF0TWFwKCh0KSA9PlxuICAgICAgICAgICAgICAgIHQuYnJhbmNoZXMubWFwKChiKSA9PiBiLmJyYW5jaCksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge30sXG4gICAgICAgICAgLi4ub3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucz8ud29ya2Zsb3dUcmlnZ2VycyxcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogTmV2ZXIgYWxsb3cgbXV0YXRpb25zIGZvciBkZXBsb3lzLiBUaGlzIHNob3VsZCBoYXZlIGJlZW4gaGFuZGxlZFxuICAgICAgICAgKiBkdXJpbmcgYnVpbGQuXG4gICAgICAgICAqL1xuICAgICAgICBtdXRhYmxlQnVpbGQ6IGZhbHNlLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBEbyB0aGlzIHByZS1tZXJnZSBvZiBwZXJtaXNzaW9ucyBhbmQgYnVpbGQgc3RlcHNcbiAgICAgICAgICovXG4gICAgICAgIC4uLm9wdGlvbnMuYnVpbGRXb3JrZmxvd09wdGlvbnMsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFNvbWUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBtYXkgYmUgcmVxdWlyZWQgd2hlbiB0dXJibydzIGludm9sdmVkLlxuICAgICAgICAgKi9cbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICAuLi5vcHRpb25zLmJ1aWxkV29ya2Zsb3dPcHRpb25zPy5wZXJtaXNzaW9ucyxcbiAgICAgICAgICAuLi5idWlsZFdvcmtmbG93T3B0aW9ucz8ucGVybWlzc2lvbnMsXG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIEFzc2VtYmxlIGFsbCBwcmUtYnVpbGQgc3RlcHNcbiAgICAgICAgICovXG4gICAgICAgIHByZUJ1aWxkU3RlcHM6IFtcbiAgICAgICAgICAuLi50aGlzLnNldHVwUG5wbSgpLFxuICAgICAgICAgIC4uLnRoaXMuc2V0dXBOb2RlKCksXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogXCJJbnN0YWxsIGRlcGVuZGVuY2llc1wiLFxuICAgICAgICAgICAgcnVuOiBcInBucG0gaSAtLW5vLWZyb3plbi1sb2NrZmlsZVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uKG9wdGlvbnMuYnVpbGRXb3JrZmxvd09wdGlvbnM/LnByZUJ1aWxkU3RlcHMgPz8gW10pLFxuICAgICAgICAgIC4uLihidWlsZFdvcmtmbG93T3B0aW9ucz8ucHJlQnVpbGRTdGVwcyA/PyBbXSksXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIEFkZCBEZXBsb3ltZW50cyB0byB3b3JrZmxvd1xuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgYnVpbGRKb2JOYW1lID0gKHRhcmdldDogQXdzRGVwbG95bWVudFRhcmdldCkgPT4ge1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgdGFyZ2V0LmF3c1N0YWdlVHlwZSxcbiAgICAgICAgdGFyZ2V0LmRlcGxveW1lbnRUYXJnZXRSb2xlLFxuICAgICAgICBcImRlcGxveVwiLFxuICAgICAgICB0YXJnZXQucHJvamVjdC5uYW1lLFxuICAgICAgICB0YXJnZXQuYWNjb3VudCxcbiAgICAgICAgdGFyZ2V0LnJlZ2lvbixcbiAgICAgIF0uam9pbihcIi1cIik7XG4gICAgfTtcblxuICAgIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMuZm9yRWFjaCgodGFyZ2V0KSA9PiB7XG4gICAgICBjb25zdCBkZXBsb3lKb2JOYW1lID0gYnVpbGRKb2JOYW1lKHRhcmdldCk7XG5cbiAgICAgIC8vIEJ1aWxkIHRoZSBicmFuY2ggZmlsdGVyIGNvbmRpdGlvblxuICAgICAgY29uc3QgYnJhbmNoRmlsdGVyQ29uZGl0aW9uID0gdGhpcy5idWlsZEJyYW5jaEZpbHRlckNvbmRpdGlvbihcbiAgICAgICAgdGFyZ2V0LmJyYW5jaGVzLFxuICAgICAgKTtcblxuICAgICAgLy8gQ29tYmluZSB3aXRoIHRoZSBleGlzdGluZyBidWlsZCBtdXRhdGlvbiBjaGVja1xuICAgICAgY29uc3Qgam9iQ29uZGl0aW9uID0gYnJhbmNoRmlsdGVyQ29uZGl0aW9uXG4gICAgICAgID8gW1xuICAgICAgICAgICAgXCIke3sgIW5lZWRzLmJ1aWxkLm91dHB1dHMuc2VsZl9tdXRhdGlvbl9oYXBwZW5lZCB9fVwiLFxuICAgICAgICAgICAgYCgke2JyYW5jaEZpbHRlckNvbmRpdGlvbn0pYCxcbiAgICAgICAgICBdLmpvaW4oXCIgJiYgXCIpXG4gICAgICAgIDogXCIke3sgIW5lZWRzLmJ1aWxkLm91dHB1dHMuc2VsZl9tdXRhdGlvbl9oYXBwZW5lZCB9fVwiO1xuXG4gICAgICB0aGlzLmJ1aWxkV29ya2Zsb3cuYWRkUG9zdEJ1aWxkSm9iKGRlcGxveUpvYk5hbWUsIHtcbiAgICAgICAgbmFtZTogYERlcGxveSAke3RoaXMucHJvamVjdC5uYW1lfSAke3RhcmdldC5hd3NTdGFnZVR5cGV9LyR7dGFyZ2V0LmRlcGxveW1lbnRUYXJnZXRSb2xlfS8ke3RhcmdldC5hY2NvdW50fS8ke3RhcmdldC5yZWdpb259YCxcbiAgICAgICAgbmVlZHM6IFtcbiAgICAgICAgICBcImJ1aWxkXCIsXG4gICAgICAgICAgLi4udGhpcy5kZXBsb3lBZnRlclRhcmdldHMubWFwKChwKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYnVpbGRKb2JOYW1lKHApO1xuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICBydW5zT246IFtcInVidW50dS1sYXRlc3RcIl0sXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgY29udGVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgICAgICBpZFRva2VuOiBKb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgICB9LFxuICAgICAgICBjb25jdXJyZW5jeTogZGVwbG95Sm9iTmFtZSxcbiAgICAgICAgaWY6IGpvYkNvbmRpdGlvbixcbiAgICAgICAgc3RlcHM6IFsuLi50aGlzLmRlcGxveVN0ZXBzKHRhcmdldCldLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2V0dXBOb2RlID0gKCk6IEFycmF5PEpvYlN0ZXA+ID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcIlNldHVwIE5vZGVcIixcbiAgICAgICAgdXNlczogXCJhY3Rpb25zL3NldHVwLW5vZGVAdjRcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIFtcIm5vZGUtdmVyc2lvblwiXTogVkVSU0lPTi5OT0RFX1dPUktGTE9XUyxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gb2NjYXNpb25hbGx5IHRoaXMgc3RlcCBmYWlscyBkdWUgdG8gaW50ZXJuYWwgaXNzdWVzIGF0IGdpdGh1YlxuICAgICAgICB0aW1lb3V0TWludXRlczogMSxcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcblxuICBwdWJsaWMgc2V0dXBQbnBtID0gKCk6IEFycmF5PEpvYlN0ZXA+ID0+IHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBuYW1lOiBcIlNldHVwIFBOUE1cIixcbiAgICAgICAgdXNlczogXCJwbnBtL2FjdGlvbi1zZXR1cEB2M1wiLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgdmVyc2lvbjogVkVSU0lPTi5QTlBNX1ZFUlNJT04sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG4gIH07XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIEdpdEh1YiBBY3Rpb25zIGNvbmRpdGlvbiBzdHJpbmcgdGhhdCBjaGVja3MgaWYgdGhlIGN1cnJlbnQgYnJhbmNoXG4gICAqIG1hdGNoZXMgYW55IG9mIHRoZSBwcm92aWRlZCBicmFuY2ggcGF0dGVybnMuXG4gICAqXG4gICAqIEhhbmRsZXMgYm90aCBleGFjdCBtYXRjaGVzIChlLmcuLCBcIm1haW5cIikgYW5kIGdsb2IgcGF0dGVybnMgKGUuZy4sIFwiZmVhdHVyZS8qXCIpLlxuICAgKiBBbHNvIGFsbG93cyB3b3JrZmxvd19kaXNwYXRjaCAobWFudWFsIHJ1bnMpIHRvIHByb2NlZWQuXG4gICAqXG4gICAqIEBwYXJhbSBicmFuY2hlcyBBcnJheSBvZiBHaXRCcmFuY2ggb2JqZWN0cyB3aXRoIGJyYW5jaCBwYXR0ZXJuc1xuICAgKiBAcmV0dXJucyBDb25kaXRpb24gc3RyaW5nIG9yIGVtcHR5IHN0cmluZyBpZiBubyBicmFuY2hlcyBwcm92aWRlZFxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZEJyYW5jaEZpbHRlckNvbmRpdGlvbiA9IChicmFuY2hlczogQXJyYXk8R2l0QnJhbmNoPik6IHN0cmluZyA9PiB7XG4gICAgaWYgKCFicmFuY2hlcyB8fCBicmFuY2hlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBcIlwiO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbmRpdGlvbnM6IEFycmF5PHN0cmluZz4gPSBbXTtcblxuICAgIC8vIEFsd2F5cyBhbGxvdyB3b3JrZmxvd19kaXNwYXRjaCAobWFudWFsIHdvcmtmbG93IHJ1bnMpXG4gICAgY29uZGl0aW9ucy5wdXNoKFwiZ2l0aHViLmV2ZW50X25hbWUgPT0gJ3dvcmtmbG93X2Rpc3BhdGNoJ1wiKTtcblxuICAgIGZvciAoY29uc3QgYnJhbmNoIG9mIGJyYW5jaGVzKSB7XG4gICAgICBjb25zdCBicmFuY2hQYXR0ZXJuID0gYnJhbmNoLmJyYW5jaDtcblxuICAgICAgLy8gSGFuZGxlIGdsb2IgcGF0dGVybnMgKGUuZy4sIFwiZmVhdHVyZS8qXCIpXG4gICAgICBpZiAoYnJhbmNoUGF0dGVybi5pbmNsdWRlcyhcIipcIikpIHtcbiAgICAgICAgLy8gUmVwbGFjZSAqIHdpdGggcHJvcGVyIHN0YXJ0c1dpdGggY2hlY2tcbiAgICAgICAgY29uc3QgcHJlZml4ID0gYnJhbmNoUGF0dGVybi5yZXBsYWNlKC9cXCouKiQvLCBcIlwiKTtcbiAgICAgICAgY29uZGl0aW9ucy5wdXNoKGBzdGFydHNXaXRoKGdpdGh1Yi5yZWYsICdyZWZzL2hlYWRzLyR7cHJlZml4fScpYCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBFeGFjdCBtYXRjaFxuICAgICAgICBjb25kaXRpb25zLnB1c2goYGdpdGh1Yi5yZWYgPT0gJ3JlZnMvaGVhZHMvJHticmFuY2hQYXR0ZXJufSdgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBDb21iaW5lIGFsbCBjb25kaXRpb25zIHdpdGggT1JcbiAgICByZXR1cm4gY29uZGl0aW9ucy5qb2luKFwiIHx8IFwiKTtcbiAgfTtcblxuICBwcml2YXRlIGRlcGxveVN0ZXBzID0gKHRhcmdldDogQXdzRGVwbG95bWVudFRhcmdldCk6IEFycmF5PEpvYlN0ZXA+ID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBhd3NTdGFnZVR5cGUsXG4gICAgICBkZXBsb3ltZW50VGFyZ2V0Um9sZSxcbiAgICAgIGFjY291bnQsXG4gICAgICByZWdpb24sXG4gICAgICBjaURlcGxveW1lbnRDb25maWcsXG4gICAgICBhd3NEZXBsb3ltZW50Q29uZmlnLFxuICAgIH0gPSB0YXJnZXQ7XG4gICAgY29uc3QgeyByb2xlQXJuLCBzdGFja1BhdHRlcm4gfSA9IGNpRGVwbG95bWVudENvbmZpZyA/PyB7fTtcbiAgICBjb25zdCB7IHJvb3RDZGtPdXQgfSA9IGF3c0RlcGxveW1lbnRDb25maWc7XG5cbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5zZXR1cFBucG0oKSxcbiAgICAgIC4uLnRoaXMuc2V0dXBOb2RlKCksXG5cbiAgICAgIC8qKlxuICAgICAgICogSW5zdGFsbCBDREtcbiAgICAgICAqL1xuICAgICAge1xuICAgICAgICBuYW1lOiBcIkluc3RhbGwgQ0RLXCIsXG4gICAgICAgIHJ1bjogXCJwbnBtIGFkZCBhd3MtY2RrXCIsXG4gICAgICB9LFxuXG4gICAgICAvKipcbiAgICAgICAqIENvbmZpZ3VyZSBBV1MgY3JlZHMuXG4gICAgICAgKi9cbiAgICAgIHtcbiAgICAgICAgbmFtZTogYEFXUyBDcmVkcyAke2F3c1N0YWdlVHlwZX0vJHtkZXBsb3ltZW50VGFyZ2V0Um9sZX0vJHthY2NvdW50fS8ke3JlZ2lvbn1gLFxuICAgICAgICB1c2VzOiBcImF3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNAdjRcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIFwicm9sZS10by1hc3N1bWVcIjogcm9sZUFybixcbiAgICAgICAgICBcImF3cy1yZWdpb25cIjogcmVnaW9uLFxuICAgICAgICAgIFwicm9sZS1kdXJhdGlvbi1zZWNvbmRzXCI6IDkwMCwgLy8gMTUgbWludXRlc1xuICAgICAgICB9LFxuICAgICAgfSxcblxuICAgICAgLyoqXG4gICAgICAgKiBSdW4gQ0RLIERlcGxveVxuICAgICAgICovXG4gICAgICB7XG4gICAgICAgIG5hbWU6IGBEZXBsb3kgJHthd3NTdGFnZVR5cGV9LyR7ZGVwbG95bWVudFRhcmdldFJvbGV9LyR7YWNjb3VudH0vJHtyZWdpb259YCxcbiAgICAgICAgcnVuOiBgcG5wbSBkbHggYXdzLWNkayBkZXBsb3kgLS1uby1yb2xsYmFjayAtLXJlcXVpcmUtYXBwcm92YWw9bmV2ZXIgLS1hcHA9JHtyb290Q2RrT3V0fSBcIiR7c3RhY2tQYXR0ZXJufVwiYCxcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcblxuICBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIEVuc3VyZSB0dXJibyBpcyBhY3RpdmUgd2hlbiBuZWVkZWQuXG4gICAgICovXG4gICAgaWYgKCF0aGlzLmV4dGVybmFsV29ya2Zsb3cgJiYgVHVyYm9SZXBvLm9mKHRoaXMucm9vdFByb2plY3QpKSB7XG4gICAgICB0aGlzLmJ1aWxkV29ya2Zsb3cuYWRkUG9zdEJ1aWxkU3RlcHMoe1xuICAgICAgICBuYW1lOiBcIkJ1aWxkIFN1YiBQcm9qZWN0c1wiLFxuICAgICAgICBydW46IGBucHggcHJvamVuICR7Uk9PVF9DSV9UQVNLX05BTUV9YCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcbiAgfVxufVxuIl19
|
package/lib/workflows/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./aws-deploy-workflow";
|
package/lib/workflows/index.js
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./aws-deploy-workflow"), exports);
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd29ya2Zsb3dzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3REFBc0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9hd3MtZGVwbG95LXdvcmtmbG93XCI7XG4iXX0=
|