@codedrifters/configulator 0.0.195 → 0.0.197
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 +218 -84
- package/lib/index.d.ts +219 -85
- package/lib/index.js +448 -33
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +449 -33
- package/lib/index.mjs.map +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -182,14 +182,17 @@ __export(index_exports, {
|
|
|
182
182
|
AstroConfig: () => AstroConfig,
|
|
183
183
|
AstroOutput: () => AstroOutput,
|
|
184
184
|
AstroProject: () => AstroProject,
|
|
185
|
+
AwsCdkProject: () => AwsCdkProject,
|
|
185
186
|
AwsDeployWorkflow: () => AwsDeployWorkflow,
|
|
186
187
|
AwsDeploymentConfig: () => AwsDeploymentConfig,
|
|
187
188
|
AwsDeploymentTarget: () => AwsDeploymentTarget,
|
|
189
|
+
AwsTeardownWorkflow: () => AwsTeardownWorkflow,
|
|
188
190
|
BUILT_IN_BUNDLES: () => BUILT_IN_BUNDLES,
|
|
189
191
|
CLAUDE_RULE_TARGET: () => CLAUDE_RULE_TARGET,
|
|
190
192
|
COMPLETE_JOB_ID: () => COMPLETE_JOB_ID,
|
|
191
193
|
DEFAULT_PRIORITY_LABELS: () => DEFAULT_PRIORITY_LABELS,
|
|
192
194
|
DEFAULT_STATUS_LABELS: () => DEFAULT_STATUS_LABELS,
|
|
195
|
+
DEFAULT_TEARDOWN_BRANCH_PATTERNS: () => DEFAULT_TEARDOWN_BRANCH_PATTERNS,
|
|
193
196
|
DEFAULT_TYPE_LABELS: () => DEFAULT_TYPE_LABELS,
|
|
194
197
|
JsiiFaker: () => JsiiFaker,
|
|
195
198
|
MCP_TRANSPORT: () => MCP_TRANSPORT,
|
|
@@ -5639,8 +5642,14 @@ var TestRunner = {
|
|
|
5639
5642
|
};
|
|
5640
5643
|
var TypeScriptProject = class extends import_projen16.typescript.TypeScriptProject {
|
|
5641
5644
|
constructor(userOptions) {
|
|
5642
|
-
|
|
5643
|
-
|
|
5645
|
+
if (!(userOptions.parent instanceof MonorepoProject)) {
|
|
5646
|
+
throw new Error(
|
|
5647
|
+
"TypeScriptProject must be parented to a MonorepoProject. Pass `parent: <MonorepoProject>` in the project options."
|
|
5648
|
+
);
|
|
5649
|
+
}
|
|
5650
|
+
const parent = userOptions.parent;
|
|
5651
|
+
const pnpmVersion = parent.pnpmVersion;
|
|
5652
|
+
const pnpmWorkspace = PnpmWorkspace.of(parent);
|
|
5644
5653
|
const testRunner = userOptions.testRunner ?? TestRunner.JEST;
|
|
5645
5654
|
const useJest = testRunner === TestRunner.JEST;
|
|
5646
5655
|
const defaultOptions = {
|
|
@@ -5906,44 +5915,20 @@ var DEFAULT_INDEX_ASTRO = `---
|
|
|
5906
5915
|
var DEFAULT_FAVICON_SVG = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128"><path d="M64 8a56 56 0 1 0 0 112A56 56 0 0 0 64 8Z" fill="#ff5d01"/></svg>
|
|
5907
5916
|
`;
|
|
5908
5917
|
|
|
5909
|
-
// src/
|
|
5910
|
-
var
|
|
5911
|
-
var
|
|
5912
|
-
var
|
|
5913
|
-
var
|
|
5914
|
-
constructor(project) {
|
|
5915
|
-
super(project);
|
|
5916
|
-
let tsPaths = {};
|
|
5917
|
-
const workspaceDeps = project.deps.all.filter(
|
|
5918
|
-
(d) => d.version === "workspace:*"
|
|
5919
|
-
);
|
|
5920
|
-
workspaceDeps.forEach((dep) => {
|
|
5921
|
-
const subproject = project.root.subprojects.find((p) => p.package.packageName === dep.name);
|
|
5922
|
-
if (!subproject) {
|
|
5923
|
-
throw new Error(`Could not find subproject ${dep.name} in monorepo.`);
|
|
5924
|
-
}
|
|
5925
|
-
tsPaths = {
|
|
5926
|
-
...tsPaths,
|
|
5927
|
-
[dep.name]: [
|
|
5928
|
-
(0, import_path2.ensureRelativePathStartsWithDot)(
|
|
5929
|
-
(0, import_node_path2.relative)(project.outdir, subproject.outdir)
|
|
5930
|
-
)
|
|
5931
|
-
]
|
|
5932
|
-
};
|
|
5933
|
-
});
|
|
5934
|
-
project.tsconfig?.file.addOverride("compilerOptions.paths", tsPaths);
|
|
5935
|
-
project.tsconfigDev?.file.addOverride("compilerOptions.paths", tsPaths);
|
|
5936
|
-
}
|
|
5937
|
-
};
|
|
5918
|
+
// src/projects/aws-cdk-project.ts
|
|
5919
|
+
var import_projen20 = require("projen");
|
|
5920
|
+
var import_javascript5 = require("projen/lib/javascript");
|
|
5921
|
+
var import_release2 = require("projen/lib/release");
|
|
5922
|
+
var import_ts_deepmerge3 = require("ts-deepmerge");
|
|
5938
5923
|
|
|
5939
5924
|
// src/workflows/aws-deploy-workflow.ts
|
|
5940
5925
|
var import_utils11 = __toESM(require_lib());
|
|
5941
|
-
var
|
|
5926
|
+
var import_projen18 = require("projen");
|
|
5942
5927
|
var import_build = require("projen/lib/build");
|
|
5943
5928
|
var import_github2 = require("projen/lib/github");
|
|
5944
5929
|
var import_workflows_model5 = require("projen/lib/github/workflows-model");
|
|
5945
5930
|
var PROD_DEPLOY_NAME = "prod-deploy";
|
|
5946
|
-
var AwsDeployWorkflow = class _AwsDeployWorkflow extends
|
|
5931
|
+
var AwsDeployWorkflow = class _AwsDeployWorkflow extends import_projen18.Component {
|
|
5947
5932
|
constructor(project, options = {}) {
|
|
5948
5933
|
super(project);
|
|
5949
5934
|
this.project = project;
|
|
@@ -6206,6 +6191,433 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends import_projen19.Compone
|
|
|
6206
6191
|
super.preSynthesize();
|
|
6207
6192
|
}
|
|
6208
6193
|
};
|
|
6194
|
+
|
|
6195
|
+
// src/workflows/aws-teardown-workflow.ts
|
|
6196
|
+
var import_projen19 = require("projen");
|
|
6197
|
+
var import_github3 = require("projen/lib/github");
|
|
6198
|
+
var import_workflows_model6 = require("projen/lib/github/workflows-model");
|
|
6199
|
+
var DEFAULT_TEARDOWN_BRANCH_PATTERNS = [
|
|
6200
|
+
"feat/*",
|
|
6201
|
+
"fix/*",
|
|
6202
|
+
"feature/*"
|
|
6203
|
+
];
|
|
6204
|
+
var resolveBranchPatterns = (explicit, targets) => {
|
|
6205
|
+
if (explicit && explicit.length > 0) {
|
|
6206
|
+
return [...explicit];
|
|
6207
|
+
}
|
|
6208
|
+
const derived = Array.from(
|
|
6209
|
+
new Set(
|
|
6210
|
+
targets.flatMap((target) => target.branches.map((b) => b.branch)).filter((branch) => typeof branch === "string").filter((branch) => branch.includes("*"))
|
|
6211
|
+
)
|
|
6212
|
+
);
|
|
6213
|
+
if (derived.length > 0) {
|
|
6214
|
+
return derived;
|
|
6215
|
+
}
|
|
6216
|
+
return [...DEFAULT_TEARDOWN_BRANCH_PATTERNS];
|
|
6217
|
+
};
|
|
6218
|
+
var AwsTeardownWorkflow = class extends import_projen19.Component {
|
|
6219
|
+
constructor(rootProject, options) {
|
|
6220
|
+
super(rootProject);
|
|
6221
|
+
this.rootProject = rootProject;
|
|
6222
|
+
const {
|
|
6223
|
+
awsDestructionTargets,
|
|
6224
|
+
repoTagName,
|
|
6225
|
+
stageTypeTagName,
|
|
6226
|
+
environmentTypeTagName,
|
|
6227
|
+
branchNameTagName,
|
|
6228
|
+
deleteBranchPatterns
|
|
6229
|
+
} = options;
|
|
6230
|
+
if (!repoTagName) {
|
|
6231
|
+
throw new Error("AwsTeardownWorkflow requires `repoTagName`");
|
|
6232
|
+
}
|
|
6233
|
+
if (!stageTypeTagName) {
|
|
6234
|
+
throw new Error("AwsTeardownWorkflow requires `stageTypeTagName`");
|
|
6235
|
+
}
|
|
6236
|
+
if (!environmentTypeTagName) {
|
|
6237
|
+
throw new Error("AwsTeardownWorkflow requires `environmentTypeTagName`");
|
|
6238
|
+
}
|
|
6239
|
+
if (!branchNameTagName) {
|
|
6240
|
+
throw new Error("AwsTeardownWorkflow requires `branchNameTagName`");
|
|
6241
|
+
}
|
|
6242
|
+
if (!(rootProject instanceof MonorepoProject)) {
|
|
6243
|
+
throw new Error(
|
|
6244
|
+
"AwsTeardownWorkflow requires the root project to be a MonorepoProject"
|
|
6245
|
+
);
|
|
6246
|
+
}
|
|
6247
|
+
const github = import_github3.GitHub.of(this.rootProject);
|
|
6248
|
+
if (!github) {
|
|
6249
|
+
throw new Error(
|
|
6250
|
+
"AwsTeardownWorkflow requires a GitHub component in the root project"
|
|
6251
|
+
);
|
|
6252
|
+
}
|
|
6253
|
+
const branchPatterns = resolveBranchPatterns(
|
|
6254
|
+
deleteBranchPatterns,
|
|
6255
|
+
awsDestructionTargets
|
|
6256
|
+
);
|
|
6257
|
+
const workflow = new import_github3.GithubWorkflow(github, "teardown-dev");
|
|
6258
|
+
workflow.on({
|
|
6259
|
+
workflowDispatch: {},
|
|
6260
|
+
schedule: [
|
|
6261
|
+
{
|
|
6262
|
+
cron: "32 6 * * *"
|
|
6263
|
+
}
|
|
6264
|
+
],
|
|
6265
|
+
delete: {
|
|
6266
|
+
branches: branchPatterns
|
|
6267
|
+
}
|
|
6268
|
+
});
|
|
6269
|
+
awsDestructionTargets.forEach((target) => {
|
|
6270
|
+
const {
|
|
6271
|
+
awsStageType,
|
|
6272
|
+
deploymentTargetRole,
|
|
6273
|
+
account,
|
|
6274
|
+
region,
|
|
6275
|
+
ciDeploymentConfig
|
|
6276
|
+
} = target;
|
|
6277
|
+
const { roleArn } = ciDeploymentConfig ?? {};
|
|
6278
|
+
workflow.addJob(
|
|
6279
|
+
`teardown-${awsStageType}-${deploymentTargetRole}-${account}-${region}`.toLowerCase(),
|
|
6280
|
+
{
|
|
6281
|
+
name: `Teardown Stacks in ${awsStageType}/${deploymentTargetRole}/${account}/${region}`,
|
|
6282
|
+
runsOn: ["ubuntu-latest"],
|
|
6283
|
+
permissions: {
|
|
6284
|
+
contents: import_workflows_model6.JobPermission.READ,
|
|
6285
|
+
idToken: import_workflows_model6.JobPermission.WRITE
|
|
6286
|
+
},
|
|
6287
|
+
env: {
|
|
6288
|
+
REPO: "${{ github.repository }}",
|
|
6289
|
+
REGIONS: [region].join(" ")
|
|
6290
|
+
},
|
|
6291
|
+
steps: [
|
|
6292
|
+
{
|
|
6293
|
+
name: `AWS Creds ${account}/${region}`,
|
|
6294
|
+
uses: "aws-actions/configure-aws-credentials@v6",
|
|
6295
|
+
with: {
|
|
6296
|
+
"role-to-assume": roleArn,
|
|
6297
|
+
"aws-region": region,
|
|
6298
|
+
"role-duration-seconds": 900
|
|
6299
|
+
}
|
|
6300
|
+
},
|
|
6301
|
+
{
|
|
6302
|
+
name: "Fetch All Branches",
|
|
6303
|
+
id: "fetch_branches",
|
|
6304
|
+
uses: "actions/github-script@v9",
|
|
6305
|
+
with: {
|
|
6306
|
+
script: [
|
|
6307
|
+
"const all = await github.paginate(github.rest.repos.listBranches, {",
|
|
6308
|
+
" owner: context.repo.owner,",
|
|
6309
|
+
" repo: context.repo.repo,",
|
|
6310
|
+
" per_page: 100",
|
|
6311
|
+
"});",
|
|
6312
|
+
"const names = all.map(b => b.name);",
|
|
6313
|
+
"console.log(`Found branches: ${names}`);",
|
|
6314
|
+
'core.setOutput("json", JSON.stringify(names));'
|
|
6315
|
+
].join("\n")
|
|
6316
|
+
}
|
|
6317
|
+
},
|
|
6318
|
+
{
|
|
6319
|
+
name: "Save Branches to File",
|
|
6320
|
+
run: [
|
|
6321
|
+
'echo "Saving branches to file"',
|
|
6322
|
+
"echo '${{ steps.fetch_branches.outputs.json }}' | jq -r '.[]' | sort -u > branches.txt",
|
|
6323
|
+
'echo "Branches:"',
|
|
6324
|
+
"cat branches.txt"
|
|
6325
|
+
].join("\n")
|
|
6326
|
+
},
|
|
6327
|
+
{
|
|
6328
|
+
name: "Find Stacks by Tag",
|
|
6329
|
+
id: "find_stacks",
|
|
6330
|
+
run: [
|
|
6331
|
+
"set -euo pipefail",
|
|
6332
|
+
": > candidates.txt # columns: arn region branchTag",
|
|
6333
|
+
"# Build tag filters",
|
|
6334
|
+
`TAG_FILTERS=( "Key=${repoTagName},Values=$REPO" )`,
|
|
6335
|
+
`TAG_FILTERS+=( "Key=${stageTypeTagName},Values=${awsStageType}" )`,
|
|
6336
|
+
`TAG_FILTERS+=( "Key=${environmentTypeTagName},Values=${deploymentTargetRole}" )`,
|
|
6337
|
+
"for r in $REGIONS; do",
|
|
6338
|
+
` echo "Scanning region: $r"`,
|
|
6339
|
+
" aws resourcegroupstaggingapi get-resources \\",
|
|
6340
|
+
' --region "$r" \\',
|
|
6341
|
+
' --resource-type-filters "cloudformation:stack" \\',
|
|
6342
|
+
' --tag-filters "${TAG_FILTERS[@]}" \\',
|
|
6343
|
+
` | jq -r --arg r "$r" '`,
|
|
6344
|
+
" .ResourceTagMappingList[]",
|
|
6345
|
+
" | . as $res",
|
|
6346
|
+
` | ($res.Tags[] | select(.Key=="${branchNameTagName}") | .Value) as $branch`,
|
|
6347
|
+
' | [$res.ResourceARN, $r, ($branch // "")]',
|
|
6348
|
+
" | @tsv",
|
|
6349
|
+
" ' >> candidates.txt",
|
|
6350
|
+
"done",
|
|
6351
|
+
"echo 'Tagged stacks:'",
|
|
6352
|
+
`(echo -e "ARN\\tREGION\\tBRANCH"; cat candidates.txt) | column -t -s $'\\t'`
|
|
6353
|
+
].join("\n")
|
|
6354
|
+
},
|
|
6355
|
+
{
|
|
6356
|
+
name: "Determine Orphan Stacks (No Matching Branch)",
|
|
6357
|
+
run: [
|
|
6358
|
+
"set -euo pipefail",
|
|
6359
|
+
": > orphans.txt # arn region branch",
|
|
6360
|
+
"while IFS=$'\\t' read -r arn region branch; do",
|
|
6361
|
+
' [ -z "$arn" ] && continue',
|
|
6362
|
+
' if [ -z "$branch" ]; then',
|
|
6363
|
+
" # If no Branch tag, treat as not-a-preview; skip",
|
|
6364
|
+
" continue",
|
|
6365
|
+
" fi",
|
|
6366
|
+
' if ! grep -Fxq "$branch" branches.txt; then',
|
|
6367
|
+
' echo -e "$arn\\t$region\\t$branch" >> orphans.txt',
|
|
6368
|
+
" fi",
|
|
6369
|
+
"done < candidates.txt",
|
|
6370
|
+
"",
|
|
6371
|
+
"if [ -s orphans.txt ]; then",
|
|
6372
|
+
' echo "Orphan stacks (no matching branch):"',
|
|
6373
|
+
` (echo -e "ARN\\tREGION\\tBRANCH"; cat orphans.txt) | column -t -s $'\\t'`,
|
|
6374
|
+
"else",
|
|
6375
|
+
' echo "No orphan stacks found."',
|
|
6376
|
+
"fi"
|
|
6377
|
+
].join("\n")
|
|
6378
|
+
},
|
|
6379
|
+
{
|
|
6380
|
+
name: "Delete Orphan Stacks",
|
|
6381
|
+
if: "hashFiles('orphans.txt') != ''",
|
|
6382
|
+
run: [
|
|
6383
|
+
"set -euo pipefail",
|
|
6384
|
+
"while IFS=$'\\t' read -r arn region branch; do",
|
|
6385
|
+
' [ -z "$arn" ] && continue',
|
|
6386
|
+
` stack_name=$(cut -d'/' -f2 <<<"$arn")`,
|
|
6387
|
+
' echo "Deleting $stack_name (branch=$branch) in $region"',
|
|
6388
|
+
' aws cloudformation delete-stack --region "$region" --stack-name "$stack_name" || true',
|
|
6389
|
+
"done < orphans.txt"
|
|
6390
|
+
].join("\n")
|
|
6391
|
+
}
|
|
6392
|
+
]
|
|
6393
|
+
}
|
|
6394
|
+
);
|
|
6395
|
+
});
|
|
6396
|
+
}
|
|
6397
|
+
};
|
|
6398
|
+
|
|
6399
|
+
// src/projects/aws-cdk-project.ts
|
|
6400
|
+
var AwsCdkProject = class extends import_projen20.awscdk.AwsCdkTypeScriptApp {
|
|
6401
|
+
constructor(userOptions) {
|
|
6402
|
+
if (!(userOptions.parent instanceof MonorepoProject)) {
|
|
6403
|
+
throw new Error(
|
|
6404
|
+
"AwsCdkProject must be parented to a MonorepoProject. Pass `parent: <MonorepoProject>` in the project options."
|
|
6405
|
+
);
|
|
6406
|
+
}
|
|
6407
|
+
const parent = userOptions.parent;
|
|
6408
|
+
const pnpmVersion = parent.pnpmVersion;
|
|
6409
|
+
const pnpmWorkspace = PnpmWorkspace.of(parent);
|
|
6410
|
+
const testRunner = userOptions.testRunner ?? TestRunner.JEST;
|
|
6411
|
+
const useJest = testRunner === TestRunner.JEST;
|
|
6412
|
+
const defaultOptions = {
|
|
6413
|
+
defaultReleaseBranch: "main",
|
|
6414
|
+
/**
|
|
6415
|
+
* Enable reset task by default.
|
|
6416
|
+
*/
|
|
6417
|
+
resetTask: true,
|
|
6418
|
+
/**
|
|
6419
|
+
* Packaging options.
|
|
6420
|
+
*/
|
|
6421
|
+
packageManager: import_javascript5.NodePackageManager.PNPM,
|
|
6422
|
+
pnpmVersion,
|
|
6423
|
+
licensed: userOptions.license !== void 0 || false,
|
|
6424
|
+
copyrightOwner: "CodeDrifters",
|
|
6425
|
+
release: false,
|
|
6426
|
+
/**
|
|
6427
|
+
* Don't add sample code.
|
|
6428
|
+
*/
|
|
6429
|
+
sampleCode: false,
|
|
6430
|
+
/**
|
|
6431
|
+
* CDK versions sourced from the configulator-managed catalog.
|
|
6432
|
+
*/
|
|
6433
|
+
cdkVersion: VERSION.AWS_CDK_LIB_VERSION,
|
|
6434
|
+
cdkCliVersion: VERSION.AWS_CDK_CLI_VERSION,
|
|
6435
|
+
...useJest ? {
|
|
6436
|
+
/**
|
|
6437
|
+
* Make sure jest config is stored outside of package.json and use
|
|
6438
|
+
* SWC for faster compilation (matches TypeScriptProject).
|
|
6439
|
+
*/
|
|
6440
|
+
jestOptions: {
|
|
6441
|
+
configFilePath: "jest.config.json",
|
|
6442
|
+
jestConfig: {
|
|
6443
|
+
roots: [`<rootDir>/src`],
|
|
6444
|
+
transform: {
|
|
6445
|
+
["^.+\\.[t]sx?$"]: new import_javascript5.Transform("@swc/jest")
|
|
6446
|
+
},
|
|
6447
|
+
moduleFileExtensions: ["js", "ts"]
|
|
6448
|
+
}
|
|
6449
|
+
},
|
|
6450
|
+
devDeps: ["@swc/jest", "@swc/core"]
|
|
6451
|
+
} : {
|
|
6452
|
+
jest: false,
|
|
6453
|
+
devDeps: []
|
|
6454
|
+
},
|
|
6455
|
+
/**
|
|
6456
|
+
* Turn on prettier formatting.
|
|
6457
|
+
*/
|
|
6458
|
+
prettier: true,
|
|
6459
|
+
/**
|
|
6460
|
+
* Don't package test files.
|
|
6461
|
+
*/
|
|
6462
|
+
npmIgnoreOptions: {
|
|
6463
|
+
ignorePatterns: ["*.spec.*", "*.test.*"]
|
|
6464
|
+
},
|
|
6465
|
+
/**
|
|
6466
|
+
* Options for the automated dependency upgrade task / workflow.
|
|
6467
|
+
* Exclude any packages managed by the parent project's default catalog
|
|
6468
|
+
* so the catalog stays the source of truth.
|
|
6469
|
+
*/
|
|
6470
|
+
depsUpgrade: true,
|
|
6471
|
+
depsUpgradeOptions: {
|
|
6472
|
+
workflow: false,
|
|
6473
|
+
exclude: Object.keys(pnpmWorkspace?.defaultCatalog || {}),
|
|
6474
|
+
workflowOptions: {
|
|
6475
|
+
schedule: import_javascript5.UpgradeDependenciesSchedule.WEEKLY
|
|
6476
|
+
},
|
|
6477
|
+
cooldown: 1
|
|
6478
|
+
},
|
|
6479
|
+
/**
|
|
6480
|
+
* Only release when the package source content or package.json changes.
|
|
6481
|
+
*/
|
|
6482
|
+
releaseTrigger: import_release2.ReleaseTrigger.continuous({
|
|
6483
|
+
paths: [
|
|
6484
|
+
`${userOptions.outdir}/src/**`,
|
|
6485
|
+
`${userOptions.outdir}/package.json`
|
|
6486
|
+
]
|
|
6487
|
+
})
|
|
6488
|
+
};
|
|
6489
|
+
const options = (0, import_ts_deepmerge3.merge)(defaultOptions, userOptions);
|
|
6490
|
+
super(options);
|
|
6491
|
+
this.addDevDeps("@types/node@catalog:");
|
|
6492
|
+
this.tsconfig?.addExclude("**/*.test.*");
|
|
6493
|
+
this.tsconfig?.addExclude("**/*.spec.*");
|
|
6494
|
+
if (testRunner === TestRunner.VITEST) {
|
|
6495
|
+
new Vitest(this, {
|
|
6496
|
+
config: {
|
|
6497
|
+
include: ["src/**/*.{test,spec}.?(c|m)[jt]s?(x)"],
|
|
6498
|
+
...options.vitestOptions?.config
|
|
6499
|
+
},
|
|
6500
|
+
...options.vitestOptions
|
|
6501
|
+
});
|
|
6502
|
+
} else {
|
|
6503
|
+
this.deps.removeDependency("ts-jest");
|
|
6504
|
+
}
|
|
6505
|
+
this.package.file.addOverride(
|
|
6506
|
+
"packageManager",
|
|
6507
|
+
`pnpm@${options.pnpmVersion}`
|
|
6508
|
+
);
|
|
6509
|
+
this.eslint?.addOverride({
|
|
6510
|
+
files: ["**/*.test.*", "**/*.spec.*"],
|
|
6511
|
+
rules: {
|
|
6512
|
+
"import/no-extraneous-dependencies": "off"
|
|
6513
|
+
}
|
|
6514
|
+
});
|
|
6515
|
+
this.gitignore?.addPatterns(".DS_Store", "test-reports", "cdk.out");
|
|
6516
|
+
this.npmignore?.addPatterns("*.spec.*", "*.test.*", "__fixtures__");
|
|
6517
|
+
new AwsDeploymentConfig(this);
|
|
6518
|
+
(options.deploymentTargets ?? []).forEach(
|
|
6519
|
+
(targetOptions) => this.addDeploymentTarget(targetOptions)
|
|
6520
|
+
);
|
|
6521
|
+
const targetsForAutoDerive = AwsDeploymentConfig.of(this)?.awsDeploymentTargets ?? [];
|
|
6522
|
+
const deployWorkflows = options.deployWorkflows ?? Array.from(new Set(targetsForAutoDerive.map((t) => t.awsStageType))).map(
|
|
6523
|
+
(awsStageType) => ({
|
|
6524
|
+
awsStageType,
|
|
6525
|
+
buildWorkflow: options.sharedBuildWorkflow
|
|
6526
|
+
})
|
|
6527
|
+
);
|
|
6528
|
+
deployWorkflows.forEach(
|
|
6529
|
+
(workflowOptions) => new AwsDeployWorkflow(this, workflowOptions)
|
|
6530
|
+
);
|
|
6531
|
+
if (options.teardownWorkflow) {
|
|
6532
|
+
new AwsTeardownWorkflow(parent, options.teardownWorkflow);
|
|
6533
|
+
}
|
|
6534
|
+
const turboActive = TurboRepo.of(parent) !== void 0;
|
|
6535
|
+
if (turboActive) {
|
|
6536
|
+
const turbo = new TurboRepo(this);
|
|
6537
|
+
turbo.postCompileTask?.outputs.push("dist/**");
|
|
6538
|
+
turbo.postCompileTask?.inputs.push("src/**");
|
|
6539
|
+
}
|
|
6540
|
+
if (options.agentConfig === true || typeof options.agentConfig === "object") {
|
|
6541
|
+
new AgentConfig(
|
|
6542
|
+
this,
|
|
6543
|
+
typeof options.agentConfig === "object" ? options.agentConfig : {}
|
|
6544
|
+
);
|
|
6545
|
+
}
|
|
6546
|
+
if (options.resetTask !== false) {
|
|
6547
|
+
const defaultResetTaskOptions = {
|
|
6548
|
+
pathsToRemove: [
|
|
6549
|
+
"node_modules",
|
|
6550
|
+
"dist",
|
|
6551
|
+
"lib",
|
|
6552
|
+
"cdk.out",
|
|
6553
|
+
"coverage",
|
|
6554
|
+
"test-reports",
|
|
6555
|
+
".turbo",
|
|
6556
|
+
"tsconfig.tsbuildinfo",
|
|
6557
|
+
this.artifactsDirectory
|
|
6558
|
+
]
|
|
6559
|
+
};
|
|
6560
|
+
const userResetTaskOptions = options.resetTaskOptions ?? {};
|
|
6561
|
+
const resetTaskOptions = (0, import_ts_deepmerge3.merge)(
|
|
6562
|
+
defaultResetTaskOptions,
|
|
6563
|
+
{
|
|
6564
|
+
...userResetTaskOptions,
|
|
6565
|
+
pathsToRemove: [
|
|
6566
|
+
...defaultResetTaskOptions.pathsToRemove ?? [],
|
|
6567
|
+
...userResetTaskOptions.pathsToRemove ?? []
|
|
6568
|
+
]
|
|
6569
|
+
}
|
|
6570
|
+
);
|
|
6571
|
+
new ResetTask(this, resetTaskOptions);
|
|
6572
|
+
}
|
|
6573
|
+
const originalResolve = this.package.resolveDepsAndWritePackageJson;
|
|
6574
|
+
this.package.installDependencies = () => {
|
|
6575
|
+
parent.requestInstallDependencies({
|
|
6576
|
+
resolveDepsAndWritePackageJson: () => originalResolve.apply(this.package)
|
|
6577
|
+
});
|
|
6578
|
+
};
|
|
6579
|
+
this.package.resolveDepsAndWritePackageJson = () => {
|
|
6580
|
+
};
|
|
6581
|
+
}
|
|
6582
|
+
/**
|
|
6583
|
+
* Add an AWS deployment target to this project after construction. The
|
|
6584
|
+
* target is registered on the existing `AwsDeploymentConfig` and immediately
|
|
6585
|
+
* available for `AwsDeployWorkflow` consumption.
|
|
6586
|
+
*/
|
|
6587
|
+
addDeploymentTarget(options) {
|
|
6588
|
+
return new AwsDeploymentTarget(this, options);
|
|
6589
|
+
}
|
|
6590
|
+
};
|
|
6591
|
+
|
|
6592
|
+
// src/typescript/typescript-config.ts
|
|
6593
|
+
var import_node_path2 = require("path");
|
|
6594
|
+
var import_projen21 = require("projen");
|
|
6595
|
+
var import_path2 = require("projen/lib/util/path");
|
|
6596
|
+
var TypeScriptConfig = class extends import_projen21.Component {
|
|
6597
|
+
constructor(project) {
|
|
6598
|
+
super(project);
|
|
6599
|
+
let tsPaths = {};
|
|
6600
|
+
const workspaceDeps = project.deps.all.filter(
|
|
6601
|
+
(d) => d.version === "workspace:*"
|
|
6602
|
+
);
|
|
6603
|
+
workspaceDeps.forEach((dep) => {
|
|
6604
|
+
const subproject = project.root.subprojects.find((p) => p.package.packageName === dep.name);
|
|
6605
|
+
if (!subproject) {
|
|
6606
|
+
throw new Error(`Could not find subproject ${dep.name} in monorepo.`);
|
|
6607
|
+
}
|
|
6608
|
+
tsPaths = {
|
|
6609
|
+
...tsPaths,
|
|
6610
|
+
[dep.name]: [
|
|
6611
|
+
(0, import_path2.ensureRelativePathStartsWithDot)(
|
|
6612
|
+
(0, import_node_path2.relative)(project.outdir, subproject.outdir)
|
|
6613
|
+
)
|
|
6614
|
+
]
|
|
6615
|
+
};
|
|
6616
|
+
});
|
|
6617
|
+
project.tsconfig?.file.addOverride("compilerOptions.paths", tsPaths);
|
|
6618
|
+
project.tsconfigDev?.file.addOverride("compilerOptions.paths", tsPaths);
|
|
6619
|
+
}
|
|
6620
|
+
};
|
|
6209
6621
|
// Annotate the CommonJS export names for ESM import in node:
|
|
6210
6622
|
0 && (module.exports = {
|
|
6211
6623
|
AGENT_MODEL,
|
|
@@ -6215,14 +6627,17 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends import_projen19.Compone
|
|
|
6215
6627
|
AstroConfig,
|
|
6216
6628
|
AstroOutput,
|
|
6217
6629
|
AstroProject,
|
|
6630
|
+
AwsCdkProject,
|
|
6218
6631
|
AwsDeployWorkflow,
|
|
6219
6632
|
AwsDeploymentConfig,
|
|
6220
6633
|
AwsDeploymentTarget,
|
|
6634
|
+
AwsTeardownWorkflow,
|
|
6221
6635
|
BUILT_IN_BUNDLES,
|
|
6222
6636
|
CLAUDE_RULE_TARGET,
|
|
6223
6637
|
COMPLETE_JOB_ID,
|
|
6224
6638
|
DEFAULT_PRIORITY_LABELS,
|
|
6225
6639
|
DEFAULT_STATUS_LABELS,
|
|
6640
|
+
DEFAULT_TEARDOWN_BRANCH_PATTERNS,
|
|
6226
6641
|
DEFAULT_TYPE_LABELS,
|
|
6227
6642
|
JsiiFaker,
|
|
6228
6643
|
MCP_TRANSPORT,
|