@codedrifters/configulator 0.0.318 → 0.0.320

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.mjs CHANGED
@@ -30945,8 +30945,640 @@ var AstroOutput = {
30945
30945
  // src/aws/aws-deployment-config.ts
30946
30946
  var import_utils9 = __toESM(require_lib());
30947
30947
  import { join, relative as relative3 } from "path";
30948
+ import { Component as Component12 } from "projen";
30949
+
30950
+ // src/aws/cdk-cli.ts
30948
30951
  import { Component as Component11 } from "projen";
30949
- var AwsDeploymentConfig = class _AwsDeploymentConfig extends Component11 {
30952
+
30953
+ // src/aws/cdk-cli-defaults.ts
30954
+ var CDK_DEPLOY_DEFAULTS_BY_STAGE = {
30955
+ dev: {
30956
+ rollback: false,
30957
+ requireApproval: "never",
30958
+ progress: "events"
30959
+ },
30960
+ stage: {
30961
+ requireApproval: "never",
30962
+ progress: "events"
30963
+ },
30964
+ prod: {
30965
+ requireApproval: "never",
30966
+ progress: "events",
30967
+ method: "change-set"
30968
+ }
30969
+ };
30970
+ var CDK_SYNTH_DEFAULTS_BY_STAGE = {
30971
+ dev: { quiet: true },
30972
+ stage: { quiet: true },
30973
+ prod: { quiet: true }
30974
+ };
30975
+ var CDK_WATCH_DEFAULTS_BY_STAGE = {
30976
+ dev: { progress: "events" },
30977
+ stage: { progress: "events" },
30978
+ prod: { progress: "events" }
30979
+ };
30980
+ var CDK_DESTROY_DEFAULTS_BY_STAGE = {
30981
+ dev: { force: true },
30982
+ stage: {},
30983
+ prod: {}
30984
+ };
30985
+ var CDK_DIFF_DEFAULTS_BY_STAGE = {
30986
+ dev: {},
30987
+ stage: {},
30988
+ prod: {}
30989
+ };
30990
+ var CDK_BOOTSTRAP_DEFAULTS_BY_STAGE = {
30991
+ dev: {},
30992
+ stage: {},
30993
+ prod: { terminationProtection: true }
30994
+ };
30995
+
30996
+ // src/aws/cdk-cli-merge.ts
30997
+ var isPlainObject = (value) => {
30998
+ return typeof value === "object" && value !== null && !Array.isArray(value);
30999
+ };
31000
+ var dedupePreservingOrder = (items) => {
31001
+ const seen = /* @__PURE__ */ new Set();
31002
+ const out = [];
31003
+ for (const item of items) {
31004
+ if (!seen.has(item)) {
31005
+ seen.add(item);
31006
+ out.push(item);
31007
+ }
31008
+ }
31009
+ return out;
31010
+ };
31011
+ var mergeCdkOptions = (...layers) => {
31012
+ const accumulator = {};
31013
+ for (const layer of layers) {
31014
+ if (layer === void 0) {
31015
+ continue;
31016
+ }
31017
+ for (const [key, incoming] of Object.entries(layer)) {
31018
+ if (incoming === void 0) {
31019
+ continue;
31020
+ }
31021
+ const existing = accumulator[key];
31022
+ if (Array.isArray(incoming)) {
31023
+ const previous = Array.isArray(existing) ? existing : [];
31024
+ accumulator[key] = dedupePreservingOrder([...previous, ...incoming]);
31025
+ continue;
31026
+ }
31027
+ if (isPlainObject(incoming)) {
31028
+ const previous = isPlainObject(existing) ? existing : {};
31029
+ accumulator[key] = { ...previous, ...incoming };
31030
+ continue;
31031
+ }
31032
+ accumulator[key] = incoming;
31033
+ }
31034
+ }
31035
+ return accumulator;
31036
+ };
31037
+
31038
+ // src/aws/cdk-cli.ts
31039
+ var CdkCli = class _CdkCli extends Component11 {
31040
+ /**
31041
+ * Find the {@link CdkCli} component already attached to the project, if any.
31042
+ */
31043
+ static of(project) {
31044
+ const isDefined = (c) => c instanceof _CdkCli;
31045
+ return project.components.find(isDefined);
31046
+ }
31047
+ constructor(project, options = {}) {
31048
+ super(project);
31049
+ this.deployDefaults = options.deployDefaults ?? {};
31050
+ this.synthDefaults = options.synthDefaults ?? {};
31051
+ this.watchDefaults = options.watchDefaults ?? {};
31052
+ this.destroyDefaults = options.destroyDefaults ?? {};
31053
+ this.diffDefaults = options.diffDefaults ?? {};
31054
+ this.bootstrapDefaults = options.bootstrapDefaults ?? {};
31055
+ this.accountOverrides = options.accountOverrides ?? {};
31056
+ }
31057
+ /**
31058
+ * Resolve the `cdk deploy` options to use against a given target.
31059
+ *
31060
+ * Folds the precedence chain via {@link mergeCdkOptions}: per-stage built-in
31061
+ * → per-stage consumer override → per-account override → per-target
31062
+ * override. The call-site explicit layer is applied by the caller after
31063
+ * this method returns. See {@link CdkCli} for the full chain.
31064
+ */
31065
+ deployOptionsFor(target) {
31066
+ const stage = target.awsStageType;
31067
+ return mergeCdkOptions(
31068
+ CDK_DEPLOY_DEFAULTS_BY_STAGE[stage],
31069
+ this.deployDefaults[stage],
31070
+ this.accountOverrides[target.account]?.deploy,
31071
+ target.cdkOptions?.deploy
31072
+ );
31073
+ }
31074
+ /**
31075
+ * Resolve the `cdk synth` options to use against a given target.
31076
+ *
31077
+ * Folds the precedence chain via {@link mergeCdkOptions}: per-stage built-in
31078
+ * → per-stage consumer override → per-account override → per-target
31079
+ * override. See {@link CdkCli} for the full chain.
31080
+ */
31081
+ synthOptionsFor(target) {
31082
+ const stage = target.awsStageType;
31083
+ return mergeCdkOptions(
31084
+ CDK_SYNTH_DEFAULTS_BY_STAGE[stage],
31085
+ this.synthDefaults[stage],
31086
+ this.accountOverrides[target.account]?.synth,
31087
+ target.cdkOptions?.synth
31088
+ );
31089
+ }
31090
+ /**
31091
+ * Resolve the `cdk watch` options to use against a given target.
31092
+ *
31093
+ * Folds the precedence chain via {@link mergeCdkOptions}: per-stage built-in
31094
+ * → per-stage consumer override → per-account override → per-target
31095
+ * override. See {@link CdkCli} for the full chain.
31096
+ */
31097
+ watchOptionsFor(target) {
31098
+ const stage = target.awsStageType;
31099
+ return mergeCdkOptions(
31100
+ CDK_WATCH_DEFAULTS_BY_STAGE[stage],
31101
+ this.watchDefaults[stage],
31102
+ this.accountOverrides[target.account]?.watch,
31103
+ target.cdkOptions?.watch
31104
+ );
31105
+ }
31106
+ /**
31107
+ * Resolve the `cdk destroy` options to use against a given target.
31108
+ *
31109
+ * Folds the precedence chain via {@link mergeCdkOptions}: per-stage built-in
31110
+ * → per-stage consumer override → per-account override → per-target
31111
+ * override. See {@link CdkCli} for the full chain.
31112
+ */
31113
+ destroyOptionsFor(target) {
31114
+ const stage = target.awsStageType;
31115
+ return mergeCdkOptions(
31116
+ CDK_DESTROY_DEFAULTS_BY_STAGE[stage],
31117
+ this.destroyDefaults[stage],
31118
+ this.accountOverrides[target.account]?.destroy,
31119
+ target.cdkOptions?.destroy
31120
+ );
31121
+ }
31122
+ /**
31123
+ * Resolve the `cdk diff` options to use against a given target.
31124
+ *
31125
+ * Folds the precedence chain via {@link mergeCdkOptions}: per-stage built-in
31126
+ * → per-stage consumer override → per-account override → per-target
31127
+ * override. See {@link CdkCli} for the full chain.
31128
+ */
31129
+ diffOptionsFor(target) {
31130
+ const stage = target.awsStageType;
31131
+ return mergeCdkOptions(
31132
+ CDK_DIFF_DEFAULTS_BY_STAGE[stage],
31133
+ this.diffDefaults[stage],
31134
+ this.accountOverrides[target.account]?.diff,
31135
+ target.cdkOptions?.diff
31136
+ );
31137
+ }
31138
+ /**
31139
+ * Resolve the `cdk bootstrap` options to use against a given target.
31140
+ *
31141
+ * Folds the precedence chain via {@link mergeCdkOptions}: per-stage built-in
31142
+ * → per-stage consumer override → per-account override → per-target
31143
+ * override. See {@link CdkCli} for the full chain.
31144
+ */
31145
+ bootstrapOptionsFor(target) {
31146
+ const stage = target.awsStageType;
31147
+ return mergeCdkOptions(
31148
+ CDK_BOOTSTRAP_DEFAULTS_BY_STAGE[stage],
31149
+ this.bootstrapDefaults[stage],
31150
+ this.accountOverrides[target.account]?.bootstrap,
31151
+ target.cdkOptions?.bootstrap
31152
+ );
31153
+ }
31154
+ };
31155
+
31156
+ // src/aws/cdk-cli-renderer.ts
31157
+ var quote = (value) => {
31158
+ if (value === "") {
31159
+ return '""';
31160
+ }
31161
+ if (/^[A-Za-z0-9_\-./:=@%+,]+$/.test(value)) {
31162
+ return value;
31163
+ }
31164
+ return `"${value.replace(/\\/g, "\\\\").replace(/"/g, '\\"')}"`;
31165
+ };
31166
+ var renderTriBool = (flag, value) => {
31167
+ if (value === void 0) {
31168
+ return void 0;
31169
+ }
31170
+ return value ? `--${flag}` : `--no-${flag}`;
31171
+ };
31172
+ var renderValue = (flag, value) => {
31173
+ if (value === void 0) {
31174
+ return void 0;
31175
+ }
31176
+ return `--${flag}=${quote(String(value))}`;
31177
+ };
31178
+ var renderArray = (flag, values) => {
31179
+ if (!values || values.length === 0) {
31180
+ return [];
31181
+ }
31182
+ return values.map((value) => `--${flag}=${quote(value)}`);
31183
+ };
31184
+ var renderRecord = (flag, values) => {
31185
+ if (!values) {
31186
+ return [];
31187
+ }
31188
+ const keys = Object.keys(values);
31189
+ if (keys.length === 0) {
31190
+ return [];
31191
+ }
31192
+ return keys.map((key) => `--${flag}=${quote(`${key}=${values[key]}`)}`);
31193
+ };
31194
+ var renderVerbose = (value) => {
31195
+ if (value === void 0 || value <= 0) {
31196
+ return [];
31197
+ }
31198
+ return Array.from({ length: value }, () => "-v");
31199
+ };
31200
+ var renderStackPatterns = (values) => {
31201
+ if (!values || values.length === 0) {
31202
+ return [];
31203
+ }
31204
+ return values.map((pattern) => `"${pattern}"`);
31205
+ };
31206
+ var renderGlobalTokens = (opts) => [
31207
+ renderValue("app", opts.app),
31208
+ renderTriBool("asset-metadata", opts.assetMetadata),
31209
+ renderValue("build", opts.build),
31210
+ renderValue("ca-bundle-path", opts.caBundlePath),
31211
+ renderTriBool("ci", opts.ci),
31212
+ renderTriBool("color", opts.color),
31213
+ ...renderRecord("context", opts.context),
31214
+ renderTriBool("debug", opts.debug),
31215
+ renderTriBool("ec2creds", opts.ec2creds),
31216
+ renderTriBool("ignore-errors", opts.ignoreErrors),
31217
+ renderTriBool("json", opts.json),
31218
+ renderTriBool("lookups", opts.lookups),
31219
+ renderTriBool("no-color", opts.noColor),
31220
+ renderTriBool("notices", opts.notices),
31221
+ renderValue("output", opts.output),
31222
+ renderTriBool("path-metadata", opts.pathMetadata),
31223
+ ...renderArray("plugin", opts.plugin),
31224
+ renderValue("profile", opts.profile),
31225
+ renderValue("proxy", opts.proxy),
31226
+ renderValue("role-arn", opts.roleArn),
31227
+ renderTriBool("staging", opts.staging),
31228
+ renderTriBool("strict", opts.strict),
31229
+ renderValue("telemetry-file", opts.telemetryFile),
31230
+ renderTriBool("trace", opts.trace),
31231
+ ...renderArray("unstable", opts.unstable),
31232
+ renderTriBool("version-reporting", opts.versionReporting),
31233
+ renderTriBool("yes", opts.yes)
31234
+ ];
31235
+ var renderTrailingTokens = (opts) => [
31236
+ ...renderVerbose(opts.verbose),
31237
+ ...renderStackPatterns(opts.stackPatterns)
31238
+ ];
31239
+ var compose = (command, tokens) => {
31240
+ const parts = tokens.filter(
31241
+ (token) => token !== void 0 && token !== ""
31242
+ );
31243
+ return [command, ...parts].join(" ");
31244
+ };
31245
+ var renderCdkDeploy = (opts) => {
31246
+ const tokens = [
31247
+ ...renderGlobalTokens(opts),
31248
+ // Deploy-specific flags
31249
+ renderTriBool("all", opts.all),
31250
+ renderTriBool("asset-parallelism", opts.assetParallelism),
31251
+ renderTriBool("asset-prebuild", opts.assetPrebuild),
31252
+ ...renderArray("build-exclude", opts.buildExclude),
31253
+ renderValue("change-set-name", opts.changeSetName),
31254
+ renderValue("concurrency", opts.concurrency),
31255
+ renderTriBool("exclusively", opts.exclusively),
31256
+ renderTriBool("execute", opts.execute),
31257
+ renderTriBool("force", opts.force),
31258
+ renderTriBool("hotswap", opts.hotswap),
31259
+ renderTriBool("hotswap-fallback", opts.hotswapFallback),
31260
+ renderTriBool("ignore-no-stacks", opts.ignoreNoStacks),
31261
+ renderTriBool("import-existing-resources", opts.importExistingResources),
31262
+ renderTriBool("logs", opts.logs),
31263
+ renderValue("method", opts.method),
31264
+ ...renderArray("notification-arns", opts.notificationArns),
31265
+ renderValue("outputs-file", opts.outputsFile),
31266
+ ...renderArray("parameters", opts.parameters),
31267
+ renderTriBool("previous-parameters", opts.previousParameters),
31268
+ renderValue("progress", opts.progress),
31269
+ renderValue("require-approval", opts.requireApproval),
31270
+ renderTriBool("revert-drift", opts.revertDrift),
31271
+ renderTriBool("rollback", opts.rollback),
31272
+ ...renderRecord("tags", opts.tags),
31273
+ renderValue("toolkit-stack-name", opts.toolkitStackName),
31274
+ renderTriBool("watch", opts.watch),
31275
+ ...renderTrailingTokens(opts)
31276
+ ];
31277
+ return compose("deploy", tokens);
31278
+ };
31279
+ var renderCdkSynth = (opts) => {
31280
+ const tokens = [
31281
+ ...renderGlobalTokens(opts),
31282
+ // Synth-specific flags
31283
+ renderTriBool("exclusively", opts.exclusively),
31284
+ renderTriBool("quiet", opts.quiet),
31285
+ renderTriBool("validation", opts.validation),
31286
+ ...renderTrailingTokens(opts)
31287
+ ];
31288
+ return compose("synth", tokens);
31289
+ };
31290
+ var renderCdkWatch = (opts) => {
31291
+ const tokens = [
31292
+ ...renderGlobalTokens(opts),
31293
+ // Watch-specific flags
31294
+ ...renderArray("build-exclude", opts.buildExclude),
31295
+ renderValue("change-set-name", opts.changeSetName),
31296
+ renderValue("concurrency", opts.concurrency),
31297
+ renderTriBool("exclusively", opts.exclusively),
31298
+ renderTriBool("force", opts.force),
31299
+ renderTriBool("hotswap", opts.hotswap),
31300
+ renderTriBool("hotswap-fallback", opts.hotswapFallback),
31301
+ renderTriBool("logs", opts.logs),
31302
+ renderValue("progress", opts.progress),
31303
+ renderTriBool("rollback", opts.rollback),
31304
+ renderValue("toolkit-stack-name", opts.toolkitStackName),
31305
+ ...renderTrailingTokens(opts)
31306
+ ];
31307
+ return compose("watch", tokens);
31308
+ };
31309
+ var renderCdkDestroy = (opts) => {
31310
+ const tokens = [
31311
+ ...renderGlobalTokens(opts),
31312
+ // Destroy-specific flags
31313
+ renderTriBool("all", opts.all),
31314
+ renderValue("concurrency", opts.concurrency),
31315
+ renderTriBool("exclusively", opts.exclusively),
31316
+ renderTriBool("force", opts.force),
31317
+ ...renderTrailingTokens(opts)
31318
+ ];
31319
+ return compose("destroy", tokens);
31320
+ };
31321
+ var renderCdkDiff = (opts) => {
31322
+ const tokens = [
31323
+ ...renderGlobalTokens(opts),
31324
+ // Diff-specific flags
31325
+ renderTriBool("change-set", opts.changeSet),
31326
+ renderValue("context-lines", opts.contextLines),
31327
+ renderTriBool("exclusively", opts.exclusively),
31328
+ renderTriBool("fail", opts.fail),
31329
+ renderValue("method", opts.method),
31330
+ renderTriBool("processed", opts.processed),
31331
+ renderTriBool("quiet", opts.quiet),
31332
+ renderTriBool("security-only", opts.securityOnly),
31333
+ renderValue("template", opts.template),
31334
+ ...renderTrailingTokens(opts)
31335
+ ];
31336
+ return compose("diff", tokens);
31337
+ };
31338
+ var renderCdkBootstrap = (opts) => {
31339
+ const tokens = [
31340
+ ...renderGlobalTokens(opts),
31341
+ // Bootstrap-specific flags
31342
+ renderValue("bootstrap-bucket-name", opts.bootstrapBucketName),
31343
+ renderTriBool("bootstrap-customer-key", opts.bootstrapCustomerKey),
31344
+ renderValue("bootstrap-kms-key-id", opts.bootstrapKmsKeyId),
31345
+ ...renderArray(
31346
+ "cloudformation-execution-policies",
31347
+ opts.cloudformationExecutionPolicies
31348
+ ),
31349
+ renderValue("custom-permissions-boundary", opts.customPermissionsBoundary),
31350
+ renderTriBool(
31351
+ "example-permissions-boundary",
31352
+ opts.examplePermissionsBoundary
31353
+ ),
31354
+ renderTriBool("execute", opts.execute),
31355
+ renderTriBool("force", opts.force),
31356
+ renderTriBool("previous-parameters", opts.previousParameters),
31357
+ renderTriBool(
31358
+ "public-access-block-configuration",
31359
+ opts.publicAccessBlockConfiguration
31360
+ ),
31361
+ renderValue("qualifier", opts.qualifier),
31362
+ renderTriBool("show-template", opts.showTemplate),
31363
+ ...renderRecord("tags", opts.tags),
31364
+ renderValue("template", opts.template),
31365
+ renderTriBool("termination-protection", opts.terminationProtection),
31366
+ renderValue("toolkit-stack-name", opts.toolkitStackName),
31367
+ ...renderArray("trust", opts.trust),
31368
+ ...renderArray("trust-for-lookup", opts.trustForLookup),
31369
+ ...renderTrailingTokens(opts)
31370
+ ];
31371
+ return compose("bootstrap", tokens);
31372
+ };
31373
+ var renderCdkList = (opts) => {
31374
+ const tokens = [
31375
+ ...renderGlobalTokens(opts),
31376
+ // List-specific flags
31377
+ renderTriBool("long", opts.long),
31378
+ renderTriBool("show-dependencies", opts.showDependencies),
31379
+ ...renderTrailingTokens(opts)
31380
+ ];
31381
+ return compose("list", tokens);
31382
+ };
31383
+ var renderLogicalIds = (values) => {
31384
+ if (!values || values.length === 0) {
31385
+ return [];
31386
+ }
31387
+ return values.map((id) => `"${id}"`);
31388
+ };
31389
+ var renderCdkRollback = (opts) => {
31390
+ const tokens = [
31391
+ ...renderGlobalTokens(opts),
31392
+ // Rollback-specific flags
31393
+ renderTriBool("all", opts.all),
31394
+ renderTriBool("force", opts.force),
31395
+ ...renderArray("orphan", opts.orphan),
31396
+ renderValue("toolkit-stack-name", opts.toolkitStackName),
31397
+ renderTriBool("validate-bootstrap-version", opts.validateBootstrapVersion),
31398
+ ...renderTrailingTokens(opts)
31399
+ ];
31400
+ return compose("rollback", tokens);
31401
+ };
31402
+ var renderCdkImport = (opts) => {
31403
+ const tokens = [
31404
+ ...renderGlobalTokens(opts),
31405
+ // Import-specific flags
31406
+ renderValue("change-set-name", opts.changeSetName),
31407
+ renderTriBool("execute", opts.execute),
31408
+ renderTriBool("force", opts.force),
31409
+ renderValue("record-resource-mapping", opts.recordResourceMapping),
31410
+ renderValue("resource-mapping", opts.resourceMapping),
31411
+ renderTriBool("rollback", opts.rollback),
31412
+ renderValue("toolkit-stack-name", opts.toolkitStackName),
31413
+ ...renderTrailingTokens(opts)
31414
+ ];
31415
+ return compose("import", tokens);
31416
+ };
31417
+ var renderCdkGc = (opts) => {
31418
+ const tokens = [
31419
+ ...renderGlobalTokens(opts),
31420
+ // GC-specific flags
31421
+ renderValue("action", opts.action),
31422
+ renderValue("bootstrap-stack-name", opts.bootstrapStackName),
31423
+ renderTriBool("confirm", opts.confirm),
31424
+ renderValue("created-buffer-days", opts.createdBufferDays),
31425
+ renderValue("rollback-buffer-days", opts.rollbackBufferDays),
31426
+ renderValue("type", opts.type),
31427
+ ...renderTrailingTokens(opts)
31428
+ ];
31429
+ return compose("gc", tokens);
31430
+ };
31431
+ var renderCdkDrift = (opts) => {
31432
+ const tokens = [
31433
+ ...renderGlobalTokens(opts),
31434
+ // Drift-specific flags
31435
+ renderTriBool("fail", opts.fail),
31436
+ ...renderTrailingTokens(opts)
31437
+ ];
31438
+ return compose("drift", tokens);
31439
+ };
31440
+ var renderCdkRefactor = (opts) => {
31441
+ const tokens = [
31442
+ ...renderGlobalTokens(opts),
31443
+ // Refactor-specific flags
31444
+ ...renderArray("additional-stack-name", opts.additionalStackName),
31445
+ renderTriBool("dry-run", opts.dryRun),
31446
+ renderTriBool("force", opts.force),
31447
+ renderValue("override-file", opts.overrideFile),
31448
+ renderTriBool("revert", opts.revert),
31449
+ ...renderTrailingTokens(opts)
31450
+ ];
31451
+ return compose("refactor", tokens);
31452
+ };
31453
+ var renderCdkPublishAssets = (opts) => {
31454
+ const tokens = [
31455
+ ...renderGlobalTokens(opts),
31456
+ // Publish-assets-specific flags
31457
+ renderTriBool("all", opts.all),
31458
+ renderValue("concurrency", opts.concurrency),
31459
+ renderTriBool("exclusively", opts.exclusively),
31460
+ renderTriBool("force", opts.force),
31461
+ ...renderTrailingTokens(opts)
31462
+ ];
31463
+ return compose("publish-assets", tokens);
31464
+ };
31465
+ var renderCdkOrphan = (opts) => {
31466
+ const tokens = [
31467
+ ...renderGlobalTokens(opts),
31468
+ // Orphan has no command-specific flags; trailing tokens carry verbose
31469
+ // repetitions and stack patterns, and logical IDs render last.
31470
+ ...renderTrailingTokens(opts),
31471
+ ...renderLogicalIds(opts.logicalIds)
31472
+ ];
31473
+ return compose("orphan", tokens);
31474
+ };
31475
+ var renderPositional = (value) => {
31476
+ if (value === void 0) {
31477
+ return [];
31478
+ }
31479
+ return [`"${value}"`];
31480
+ };
31481
+ var renderCdkInit = (opts) => {
31482
+ const tokens = [
31483
+ ...renderGlobalTokens(opts),
31484
+ // Init-specific flags
31485
+ renderTriBool("generate-only", opts.generateOnly),
31486
+ renderValue("language", opts.language),
31487
+ renderTriBool("list", opts.list),
31488
+ // Positional template arg precedes the trailing tokens.
31489
+ ...renderPositional(opts.template),
31490
+ ...renderTrailingTokens(opts)
31491
+ ];
31492
+ return compose("init", tokens);
31493
+ };
31494
+ var renderCdkMigrate = (opts) => {
31495
+ const tokens = [
31496
+ ...renderGlobalTokens(opts),
31497
+ // Migrate-specific flags
31498
+ renderValue("account", opts.account),
31499
+ renderTriBool("compress", opts.compress),
31500
+ ...renderArray("filter", opts.filter),
31501
+ renderValue("from-path", opts.fromPath),
31502
+ renderTriBool("from-scan", opts.fromScan),
31503
+ renderTriBool("from-stack", opts.fromStack),
31504
+ renderValue("language", opts.language),
31505
+ renderValue("output-path", opts.outputPath),
31506
+ renderValue("region", opts.region),
31507
+ renderValue("stack-name", opts.stackName),
31508
+ ...renderTrailingTokens(opts)
31509
+ ];
31510
+ return compose("migrate", tokens);
31511
+ };
31512
+ var renderCdkContext = (opts) => {
31513
+ const tokens = [
31514
+ ...renderGlobalTokens(opts),
31515
+ // Context-specific flags
31516
+ renderTriBool("clear", opts.clear),
31517
+ renderTriBool("force", opts.force),
31518
+ renderValue("reset", opts.reset),
31519
+ ...renderTrailingTokens(opts)
31520
+ ];
31521
+ return compose("context", tokens);
31522
+ };
31523
+ var renderCdkMetadata = (opts) => {
31524
+ const tokens = [
31525
+ ...renderGlobalTokens(opts),
31526
+ // Positional stack arg precedes the trailing tokens.
31527
+ ...renderPositional(opts.stack),
31528
+ ...renderTrailingTokens(opts)
31529
+ ];
31530
+ return compose("metadata", tokens);
31531
+ };
31532
+ var renderCdkFlags = (opts) => {
31533
+ const tokens = [
31534
+ ...renderGlobalTokens(opts),
31535
+ // Flags-specific flags
31536
+ renderTriBool("all", opts.all),
31537
+ renderValue("concurrency", opts.concurrency),
31538
+ renderTriBool("default", opts.default),
31539
+ renderTriBool("interactive", opts.interactive),
31540
+ renderTriBool("recommended", opts.recommended),
31541
+ renderTriBool("safe", opts.safe),
31542
+ renderValue("set", opts.set),
31543
+ renderTriBool("unconfigured", opts.unconfigured),
31544
+ renderValue("value", opts.value),
31545
+ ...renderTrailingTokens(opts)
31546
+ ];
31547
+ return compose("flags", tokens);
31548
+ };
31549
+ var renderCdkAcknowledge = (opts) => {
31550
+ const tokens = [
31551
+ ...renderGlobalTokens(opts),
31552
+ // Positional notice id precedes the trailing tokens.
31553
+ ...renderPositional(opts.id),
31554
+ ...renderTrailingTokens(opts)
31555
+ ];
31556
+ return compose("acknowledge", tokens);
31557
+ };
31558
+ var renderCdkNotices = (opts) => {
31559
+ const tokens = [
31560
+ ...renderGlobalTokens(opts),
31561
+ ...renderTrailingTokens(opts)
31562
+ ];
31563
+ return compose("notices", tokens);
31564
+ };
31565
+ var renderCdkDoctor = (opts) => {
31566
+ const tokens = [
31567
+ ...renderGlobalTokens(opts),
31568
+ ...renderTrailingTokens(opts)
31569
+ ];
31570
+ return compose("doctor", tokens);
31571
+ };
31572
+ var renderCdkDocs = (opts) => {
31573
+ const tokens = [
31574
+ ...renderGlobalTokens(opts),
31575
+ ...renderTrailingTokens(opts)
31576
+ ];
31577
+ return compose("docs", tokens);
31578
+ };
31579
+
31580
+ // src/aws/aws-deployment-config.ts
31581
+ var AwsDeploymentConfig = class _AwsDeploymentConfig extends Component12 {
30950
31582
  constructor(project) {
30951
31583
  super(project);
30952
31584
  /**
@@ -30963,10 +31595,15 @@ var AwsDeploymentConfig = class _AwsDeploymentConfig extends Component11 {
30963
31595
  ****************************************************************************/
30964
31596
  this.configureSynthTask = () => {
30965
31597
  this.project.tasks.tryFind("synth")?.reset(`rm -rf ${this.cdkOut}`);
30966
- this.project.tasks.tryFind("synth")?.exec(`cdk synth --output ${this.cdkOut}`, { env: this.env });
31598
+ this.project.tasks.tryFind("synth")?.exec(`cdk ${renderCdkSynth({ output: this.cdkOut })}`, {
31599
+ env: this.env
31600
+ });
30967
31601
  this.project.tasks.tryFind("synth:silent")?.reset(`rm -rf ${this.cdkOut}`);
30968
- this.project.tasks.tryFind("synth:silent")?.exec(`cdk synth -q --output ${this.cdkOut}`, { env: this.env });
31602
+ this.project.tasks.tryFind("synth:silent")?.exec(`cdk ${renderCdkSynth({ output: this.cdkOut, quiet: true })}`, {
31603
+ env: this.env
31604
+ });
30969
31605
  };
31606
+ this.cdkCli = CdkCli.of(project) || new CdkCli(project);
30970
31607
  this.env = {
30971
31608
  GIT_BRANCH_NAME: '$(echo "${GIT_BRANCH_NAME:-$(git branch --show-current)}")'
30972
31609
  };
@@ -31063,8 +31700,8 @@ var AwsDeploymentConfig = class _AwsDeploymentConfig extends Component11 {
31063
31700
 
31064
31701
  // src/aws/aws-deployment-target.ts
31065
31702
  var import_utils10 = __toESM(require_lib());
31066
- import { Component as Component12 } from "projen";
31067
- var AwsDeploymentTarget = class _AwsDeploymentTarget extends Component12 {
31703
+ import { Component as Component13 } from "projen";
31704
+ var AwsDeploymentTarget = class _AwsDeploymentTarget extends Component13 {
31068
31705
  constructor(project, options) {
31069
31706
  super(project);
31070
31707
  /**
@@ -31091,8 +31728,15 @@ var AwsDeploymentTarget = class _AwsDeploymentTarget extends Component12 {
31091
31728
  const deployTask = this.project.tasks.addTask(taskName, {
31092
31729
  env: this.awsDeploymentConfig.env
31093
31730
  });
31731
+ const deployOpts = this.awsDeploymentConfig.cdkCli.deployOptionsFor(this);
31094
31732
  deployTask.exec(
31095
- `cdk deploy --lookups=false --require-approval=never --profile=${this.localDeploymentConfig?.profile} --app=${this.awsDeploymentConfig.cdkOut} "${this.localDeploymentConfig?.stackPattern}"`
31733
+ `cdk ${renderCdkDeploy({
31734
+ ...deployOpts,
31735
+ lookups: false,
31736
+ profile: this.localDeploymentConfig?.profile,
31737
+ app: this.awsDeploymentConfig.cdkOut,
31738
+ stackPatterns: this.localDeploymentConfig?.stackPattern ? [this.localDeploymentConfig.stackPattern] : void 0
31739
+ })}`
31096
31740
  );
31097
31741
  }
31098
31742
  };
@@ -31119,16 +31763,31 @@ var AwsDeploymentTarget = class _AwsDeploymentTarget extends Component12 {
31119
31763
  if (synthSilent) {
31120
31764
  watchTask.spawn(synthSilent);
31121
31765
  }
31766
+ const deployOpts = this.awsDeploymentConfig.cdkCli.deployOptionsFor(this);
31122
31767
  watchTask.exec(
31123
- `cdk deploy --lookups=false --require-approval=never --profile=${this.localDeploymentConfig?.profile} --app=${this.awsDeploymentConfig.cdkOut} "${this.localDeploymentConfig?.stackPattern}"`
31768
+ `cdk ${renderCdkDeploy({
31769
+ ...deployOpts,
31770
+ lookups: false,
31771
+ profile: this.localDeploymentConfig?.profile,
31772
+ app: this.awsDeploymentConfig.cdkOut,
31773
+ stackPatterns: this.localDeploymentConfig?.stackPattern ? [this.localDeploymentConfig.stackPattern] : void 0
31774
+ })}`
31124
31775
  );
31776
+ const watchOpts = this.awsDeploymentConfig.cdkCli.watchOptionsFor(this);
31125
31777
  watchTask.exec(
31126
- `cdk watch --lookups=false --require-approval=never --hotswap --profile=${this.localDeploymentConfig?.profile} "${this.localDeploymentConfig?.stackPattern}"`
31778
+ `cdk ${renderCdkWatch({
31779
+ ...watchOpts,
31780
+ lookups: false,
31781
+ hotswap: true,
31782
+ profile: this.localDeploymentConfig?.profile,
31783
+ stackPatterns: this.localDeploymentConfig?.stackPattern ? [this.localDeploymentConfig.stackPattern] : void 0
31784
+ })}`
31127
31785
  );
31128
31786
  }
31129
31787
  };
31130
31788
  this.account = options.account;
31131
31789
  this.region = options.region;
31790
+ this.cdkOptions = options.cdkOptions;
31132
31791
  this.awsStageType = options.awsStageType || import_utils10.AWS_STAGE_TYPE.DEV;
31133
31792
  const role = options.deploymentTargetRole ?? options.awsEnvironmentType ?? import_utils10.DEPLOYMENT_TARGET_ROLE.PRIMARY;
31134
31793
  this.deploymentTargetRole = role;
@@ -31178,6 +31837,53 @@ var AwsDeploymentTarget = class _AwsDeploymentTarget extends Component12 {
31178
31837
  }
31179
31838
  };
31180
31839
 
31840
+ // src/aws/cdk-cli-enums.ts
31841
+ var CDK_REQUIRE_APPROVAL = {
31842
+ Never: "never",
31843
+ AnyChange: "any-change",
31844
+ Broadening: "broadening"
31845
+ };
31846
+ var CDK_DEPLOY_METHOD = {
31847
+ ChangeSet: "change-set",
31848
+ Direct: "direct",
31849
+ PrepareChangeSet: "prepare-change-set",
31850
+ ExecuteChangeSet: "execute-change-set"
31851
+ };
31852
+ var CDK_PROGRESS = {
31853
+ Bar: "bar",
31854
+ Events: "events"
31855
+ };
31856
+ var CDK_DIFF_METHOD = {
31857
+ Auto: "auto",
31858
+ ChangeSet: "change-set",
31859
+ Template: "template"
31860
+ };
31861
+ var CDK_GC_ACTION = {
31862
+ DeleteTagged: "delete-tagged",
31863
+ Full: "full",
31864
+ Print: "print",
31865
+ Tag: "tag"
31866
+ };
31867
+ var CDK_GC_TYPE = {
31868
+ All: "all",
31869
+ Ecr: "ecr",
31870
+ S3: "s3"
31871
+ };
31872
+ var CDK_INIT_TEMPLATE = {
31873
+ App: "app",
31874
+ Lib: "lib",
31875
+ SampleApp: "sample-app"
31876
+ };
31877
+ var CDK_INIT_LANGUAGE = {
31878
+ CSharp: "csharp",
31879
+ FSharp: "fsharp",
31880
+ Go: "go",
31881
+ Java: "java",
31882
+ JavaScript: "javascript",
31883
+ Python: "python",
31884
+ TypeScript: "typescript"
31885
+ };
31886
+
31181
31887
  // src/docs-sync/reference-extraction/extraction.ts
31182
31888
  import * as fs from "fs";
31183
31889
  import * as path2 from "path";
@@ -32743,12 +33449,12 @@ var VERSION_KEYS_SKIP = [
32743
33449
 
32744
33450
  // src/jsii/jsii-faker.ts
32745
33451
  import * as spec from "@jsii/spec";
32746
- import { Component as Component13, JsonFile as JsonFile5 } from "projen";
33452
+ import { Component as Component14, JsonFile as JsonFile5 } from "projen";
32747
33453
  var ProjenBaseFqn = {
32748
33454
  TYPESCRIPT_PROJECT: "projen.typescript.TypeScriptProject",
32749
33455
  TYPESCRIPT_PROJECT_OPTIONS: "projen.typescript.TypeScriptProjectOptions"
32750
33456
  };
32751
- var JsiiFaker = class _JsiiFaker extends Component13 {
33457
+ var JsiiFaker = class _JsiiFaker extends Component14 {
32752
33458
  constructor(project) {
32753
33459
  super(project);
32754
33460
  this.project = project;
@@ -33046,9 +33752,9 @@ import {
33046
33752
  import { merge } from "ts-deepmerge";
33047
33753
 
33048
33754
  // src/projects/nvmrc.ts
33049
- import { Component as Component14 } from "projen";
33755
+ import { Component as Component15 } from "projen";
33050
33756
  import { TextFile as TextFile6 } from "projen/lib/textfile";
33051
- var Nvmrc = class extends Component14 {
33757
+ var Nvmrc = class extends Component15 {
33052
33758
  constructor(project) {
33053
33759
  super(project);
33054
33760
  new TextFile6(project, ".nvmrc", {
@@ -33061,8 +33767,8 @@ var Nvmrc = class extends Component14 {
33061
33767
  };
33062
33768
 
33063
33769
  // src/tasks/reset-task.ts
33064
- import { Component as Component15 } from "projen";
33065
- var ResetTask = class _ResetTask extends Component15 {
33770
+ import { Component as Component16 } from "projen";
33771
+ var ResetTask = class _ResetTask extends Component16 {
33066
33772
  constructor(project, options = {}) {
33067
33773
  super(project);
33068
33774
  this.project = project;
@@ -33135,8 +33841,8 @@ var ResetTask = class _ResetTask extends Component15 {
33135
33841
  };
33136
33842
 
33137
33843
  // src/vscode/vscode.ts
33138
- import { Component as Component16, vscode } from "projen";
33139
- var VSCodeConfig = class extends Component16 {
33844
+ import { Component as Component17, vscode } from "projen";
33845
+ var VSCodeConfig = class extends Component17 {
33140
33846
  constructor(project) {
33141
33847
  super(project);
33142
33848
  const vsConfig = new vscode.VsCode(project);
@@ -33281,8 +33987,67 @@ function addBuildCompleteJob(buildWorkflow) {
33281
33987
  });
33282
33988
  }
33283
33989
 
33284
- // src/workflows/pin-pnpm-action-setup.ts
33990
+ // src/workflows/include-hidden-files-in-build-artifact.ts
33285
33991
  import { GitHub as GitHub2 } from "projen/lib/github";
33992
+ var UPLOAD_ARTIFACT_STEP_NAME = "Upload artifact";
33993
+ var UPLOAD_ARTIFACT_PREFIX = "actions/upload-artifact@";
33994
+ var BUILD_ARTIFACT_WITH_NAME = "build-artifact";
33995
+ function includeHiddenFilesInBuildArtifact(project) {
33996
+ const github = GitHub2.of(project);
33997
+ if (!github) {
33998
+ return;
33999
+ }
34000
+ for (const workflow of github.workflows) {
34001
+ for (const job of Object.values(workflow.jobs)) {
34002
+ patchJobSteps(job);
34003
+ }
34004
+ }
34005
+ }
34006
+ function patchJobSteps(job) {
34007
+ if (typeof job !== "object" || job === null) {
34008
+ return;
34009
+ }
34010
+ const mutable = job;
34011
+ const steps = mutable.steps;
34012
+ if (Array.isArray(steps)) {
34013
+ patchStepArray(steps);
34014
+ return;
34015
+ }
34016
+ if (typeof steps === "function") {
34017
+ const original = steps;
34018
+ mutable.steps = () => {
34019
+ const rendered = original();
34020
+ patchStepArray(rendered);
34021
+ return rendered;
34022
+ };
34023
+ }
34024
+ }
34025
+ function patchStepArray(steps) {
34026
+ for (const step of steps) {
34027
+ if (isBuildArtifactUploadStep(step)) {
34028
+ if (!step.with || typeof step.with !== "object") {
34029
+ step.with = {};
34030
+ }
34031
+ step.with["include-hidden-files"] = true;
34032
+ }
34033
+ }
34034
+ }
34035
+ function isBuildArtifactUploadStep(step) {
34036
+ if (step.name !== UPLOAD_ARTIFACT_STEP_NAME) {
34037
+ return false;
34038
+ }
34039
+ if (typeof step.uses !== "string" || !step.uses.startsWith(UPLOAD_ARTIFACT_PREFIX)) {
34040
+ return false;
34041
+ }
34042
+ const withBlock = step.with;
34043
+ if (!withBlock || typeof withBlock !== "object") {
34044
+ return false;
34045
+ }
34046
+ return withBlock.name === BUILD_ARTIFACT_WITH_NAME;
34047
+ }
34048
+
34049
+ // src/workflows/pin-pnpm-action-setup.ts
34050
+ import { GitHub as GitHub3 } from "projen/lib/github";
33286
34051
  var PNPM_ACTION_SETUP_PREFIX = "pnpm/action-setup@";
33287
34052
  var STEP_ARRAY_FIELDS = ["preBuildSteps", "postBuildSteps"];
33288
34053
  function pinPnpmActionSetup(project) {
@@ -33291,13 +34056,13 @@ function pinPnpmActionSetup(project) {
33291
34056
  for (const sub of project.subprojects) {
33292
34057
  patchComponentStepArrays(sub, pinned);
33293
34058
  }
33294
- const github = GitHub2.of(project);
34059
+ const github = GitHub3.of(project);
33295
34060
  if (!github) {
33296
34061
  return;
33297
34062
  }
33298
34063
  for (const workflow of github.workflows) {
33299
34064
  for (const job of Object.values(workflow.jobs)) {
33300
- patchStepArray(getEagerSteps(job), pinned);
34065
+ patchStepArray2(getEagerSteps(job), pinned);
33301
34066
  }
33302
34067
  }
33303
34068
  }
@@ -33306,7 +34071,7 @@ function patchComponentStepArrays(project, pinned) {
33306
34071
  for (const field of STEP_ARRAY_FIELDS) {
33307
34072
  const steps = readStepArray(component, field);
33308
34073
  if (steps !== void 0) {
33309
- patchStepArray(steps, pinned);
34074
+ patchStepArray2(steps, pinned);
33310
34075
  }
33311
34076
  }
33312
34077
  }
@@ -33322,7 +34087,7 @@ function getEagerSteps(job) {
33322
34087
  const steps = job.steps;
33323
34088
  return Array.isArray(steps) ? steps : void 0;
33324
34089
  }
33325
- function patchStepArray(steps, pinned) {
34090
+ function patchStepArray2(steps, pinned) {
33326
34091
  if (!steps) {
33327
34092
  return;
33328
34093
  }
@@ -33334,7 +34099,7 @@ function patchStepArray(steps, pinned) {
33334
34099
  }
33335
34100
 
33336
34101
  // src/workflows/pin-setup-node-version.ts
33337
- import { GitHub as GitHub3 } from "projen/lib/github";
34102
+ import { GitHub as GitHub4 } from "projen/lib/github";
33338
34103
  var SETUP_NODE_PREFIX = "actions/setup-node@";
33339
34104
  var STEP_ARRAY_FIELDS2 = ["preBuildSteps", "postBuildSteps"];
33340
34105
  var NODE_VERSION_FIELDS = ["workflowNodeVersion"];
@@ -33346,14 +34111,14 @@ function pinSetupNodeVersion(project) {
33346
34111
  patchComponentNodeVersionFields(sub, pinned);
33347
34112
  patchComponentStepArrays2(sub, pinned);
33348
34113
  }
33349
- const github = GitHub3.of(project);
34114
+ const github = GitHub4.of(project);
33350
34115
  if (!github) {
33351
34116
  return;
33352
34117
  }
33353
34118
  for (const workflow of github.workflows) {
33354
34119
  for (const job of Object.values(workflow.jobs)) {
33355
34120
  patchJobToolsNode(job, pinned);
33356
- patchStepArray2(getEagerSteps2(job), pinned);
34121
+ patchStepArray3(getEagerSteps2(job), pinned);
33357
34122
  }
33358
34123
  }
33359
34124
  }
@@ -33373,7 +34138,7 @@ function patchComponentStepArrays2(project, pinned) {
33373
34138
  for (const field of STEP_ARRAY_FIELDS2) {
33374
34139
  const steps = readStepArray2(component, field);
33375
34140
  if (steps !== void 0) {
33376
- patchStepArray2(steps, pinned);
34141
+ patchStepArray3(steps, pinned);
33377
34142
  }
33378
34143
  }
33379
34144
  }
@@ -33405,7 +34170,7 @@ function patchJobToolsNode(job, pinned) {
33405
34170
  node.version = pinned;
33406
34171
  }
33407
34172
  }
33408
- function patchStepArray2(steps, pinned) {
34173
+ function patchStepArray3(steps, pinned) {
33409
34174
  if (!steps) {
33410
34175
  return;
33411
34176
  }
@@ -33420,7 +34185,7 @@ function patchStepArray2(steps, pinned) {
33420
34185
  }
33421
34186
 
33422
34187
  // src/workflows/sync-labels.ts
33423
- import { Component as Component17, YamlFile as YamlFile2 } from "projen";
34188
+ import { Component as Component18, YamlFile as YamlFile2 } from "projen";
33424
34189
  import { JobPermission as JobPermission4 } from "projen/lib/github/workflows-model";
33425
34190
  var DEFAULT_STATUS_LABELS = [
33426
34191
  {
@@ -33628,7 +34393,7 @@ ${offenders}`
33628
34393
  }
33629
34394
  });
33630
34395
  }
33631
- var LabelsFile = class extends Component17 {
34396
+ var LabelsFile = class extends Component18 {
33632
34397
  constructor(project, labels) {
33633
34398
  super(project);
33634
34399
  new YamlFile2(project, LABELS_CONFIG_PATH, {
@@ -33974,6 +34739,7 @@ var MonorepoProject = class extends TypeScriptAppProject {
33974
34739
  super.preSynthesize();
33975
34740
  pinPnpmActionSetup(this);
33976
34741
  pinSetupNodeVersion(this);
34742
+ includeHiddenFilesInBuildArtifact(this);
33977
34743
  if (this.layoutEnforcement === LAYOUT_ENFORCEMENT.OFF) {
33978
34744
  return;
33979
34745
  }
@@ -34024,11 +34790,11 @@ var MonorepoProject = class extends TypeScriptAppProject {
34024
34790
  };
34025
34791
 
34026
34792
  // src/typescript/tsdoc-config.ts
34027
- import { Component as Component18, JsonFile as JsonFile6 } from "projen";
34793
+ import { Component as Component19, JsonFile as JsonFile6 } from "projen";
34028
34794
  var STANDARD_MODIFIER_TAGS = ["@default"];
34029
34795
  var STANDARD_INLINE_TAGS = ["@code"];
34030
34796
  var ALWAYS_ON_SCOPES = ["@codedrifters"];
34031
- var TsdocConfig = class _TsdocConfig extends Component18 {
34797
+ var TsdocConfig = class _TsdocConfig extends Component19 {
34032
34798
  /**
34033
34799
  * Derive a workspace scope from a scoped package name (`@scope/name`).
34034
34800
  * Returns `undefined` when the name is unscoped.
@@ -34086,9 +34852,9 @@ var TsdocConfig = class _TsdocConfig extends Component18 {
34086
34852
 
34087
34853
  // src/typescript/typescript-config.ts
34088
34854
  import { relative as relative7 } from "path";
34089
- import { Component as Component19 } from "projen";
34855
+ import { Component as Component20 } from "projen";
34090
34856
  import { ensureRelativePathStartsWithDot } from "projen/lib/util/path";
34091
- var TypeScriptConfig = class extends Component19 {
34857
+ var TypeScriptConfig = class extends Component20 {
34092
34858
  constructor(project) {
34093
34859
  super(project);
34094
34860
  let tsPaths = {};
@@ -34480,12 +35246,12 @@ import { merge as merge4 } from "ts-deepmerge";
34480
35246
 
34481
35247
  // src/workflows/aws-deploy-workflow.ts
34482
35248
  var import_utils11 = __toESM(require_lib());
34483
- import { Component as Component20 } from "projen";
35249
+ import { Component as Component21 } from "projen";
34484
35250
  import { BuildWorkflow } from "projen/lib/build";
34485
- import { GitHub as GitHub4, WorkflowSteps as WorkflowSteps2 } from "projen/lib/github";
35251
+ import { GitHub as GitHub5, WorkflowSteps as WorkflowSteps2 } from "projen/lib/github";
34486
35252
  import { JobPermission as JobPermission5 } from "projen/lib/github/workflows-model";
34487
35253
  var PROD_DEPLOY_NAME = "prod-deploy";
34488
- var AwsDeployWorkflow = class _AwsDeployWorkflow extends Component20 {
35254
+ var AwsDeployWorkflow = class _AwsDeployWorkflow extends Component21 {
34489
35255
  constructor(project, options = {}) {
34490
35256
  super(project);
34491
35257
  this.project = project;
@@ -34588,7 +35354,11 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends Component20 {
34588
35354
  */
34589
35355
  {
34590
35356
  name: `Deploy ${awsStageType}/${deploymentTargetRole}/${account}/${region}`,
34591
- run: `pnpm dlx aws-cdk deploy --no-rollback --require-approval=never --app=${rootCdkOut} "${stackPattern}"`
35357
+ run: `pnpm dlx aws-cdk ${renderCdkDeploy({
35358
+ ...awsDeploymentConfig.cdkCli.deployOptionsFor(target),
35359
+ app: rootCdkOut,
35360
+ stackPatterns: stackPattern ? [stackPattern] : void 0
35361
+ })}`
34592
35362
  }
34593
35363
  ];
34594
35364
  };
@@ -34598,7 +35368,7 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends Component20 {
34598
35368
  );
34599
35369
  }
34600
35370
  this.rootProject = project.root;
34601
- const github = GitHub4.of(this.rootProject);
35371
+ const github = GitHub5.of(this.rootProject);
34602
35372
  if (!github) {
34603
35373
  throw new Error(
34604
35374
  "AwsDeployWorkflow requires a GitHub component in the root project"
@@ -34749,8 +35519,8 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends Component20 {
34749
35519
  };
34750
35520
 
34751
35521
  // src/workflows/aws-teardown-workflow.ts
34752
- import { Component as Component21 } from "projen";
34753
- import { GitHub as GitHub5, GithubWorkflow } from "projen/lib/github";
35522
+ import { Component as Component22 } from "projen";
35523
+ import { GitHub as GitHub6, GithubWorkflow } from "projen/lib/github";
34754
35524
  import { JobPermission as JobPermission6 } from "projen/lib/github/workflows-model";
34755
35525
  var DEFAULT_TEARDOWN_BRANCH_PATTERNS = [
34756
35526
  "feat/*",
@@ -34771,7 +35541,7 @@ var resolveBranchPatterns = (explicit, targets) => {
34771
35541
  }
34772
35542
  return [...DEFAULT_TEARDOWN_BRANCH_PATTERNS];
34773
35543
  };
34774
- var AwsTeardownWorkflow = class extends Component21 {
35544
+ var AwsTeardownWorkflow = class extends Component22 {
34775
35545
  constructor(rootProject, options) {
34776
35546
  super(rootProject);
34777
35547
  this.rootProject = rootProject;
@@ -34800,7 +35570,7 @@ var AwsTeardownWorkflow = class extends Component21 {
34800
35570
  "AwsTeardownWorkflow requires the root project to be a MonorepoProject"
34801
35571
  );
34802
35572
  }
34803
- const github = GitHub5.of(this.rootProject);
35573
+ const github = GitHub6.of(this.rootProject);
34804
35574
  if (!github) {
34805
35575
  throw new Error(
34806
35576
  "AwsTeardownWorkflow requires a GitHub component in the root project"
@@ -35611,8 +36381,23 @@ export {
35611
36381
  AwsTeardownWorkflow,
35612
36382
  BUILT_IN_BUNDLES,
35613
36383
  BUNDLE_OWNERSHIP,
36384
+ CDK_BOOTSTRAP_DEFAULTS_BY_STAGE,
36385
+ CDK_DEPLOY_DEFAULTS_BY_STAGE,
36386
+ CDK_DEPLOY_METHOD,
36387
+ CDK_DESTROY_DEFAULTS_BY_STAGE,
36388
+ CDK_DIFF_DEFAULTS_BY_STAGE,
36389
+ CDK_DIFF_METHOD,
36390
+ CDK_GC_ACTION,
36391
+ CDK_GC_TYPE,
36392
+ CDK_INIT_LANGUAGE,
36393
+ CDK_INIT_TEMPLATE,
36394
+ CDK_PROGRESS,
36395
+ CDK_REQUIRE_APPROVAL,
36396
+ CDK_SYNTH_DEFAULTS_BY_STAGE,
36397
+ CDK_WATCH_DEFAULTS_BY_STAGE,
35614
36398
  CLAUDE_RULE_TARGET,
35615
36399
  COMPLETE_JOB_ID,
36400
+ CdkCli,
35616
36401
  DEFAULT_AC_THRESHOLDS,
35617
36402
  DEFAULT_AGENT_PATHS,
35618
36403
  DEFAULT_AGENT_TIERS,
@@ -35771,6 +36556,7 @@ export {
35771
36556
  githubWorkflowBundle,
35772
36557
  hasAnyDocsEmittingBundle,
35773
36558
  hasAnyDownstreamIssueKindBundle,
36559
+ includeHiddenFilesInBuildArtifact,
35774
36560
  industryDiscoveryBundle,
35775
36561
  isPhaseLabelOwnedByExcluded,
35776
36562
  isScheduledTaskOwnedByExcluded,
@@ -35780,6 +36566,7 @@ export {
35780
36566
  labelsForPhase,
35781
36567
  maintenanceAuditBundle,
35782
36568
  meetingAnalysisBundle,
36569
+ mergeCdkOptions,
35783
36570
  orchestratorBundle,
35784
36571
  parseApiRollup,
35785
36572
  peopleProfileBundle,
@@ -35793,6 +36580,29 @@ export {
35793
36580
  regulatoryResearchBundle,
35794
36581
  renderAgentTierCaseStatement,
35795
36582
  renderAgentTierSection,
36583
+ renderCdkAcknowledge,
36584
+ renderCdkBootstrap,
36585
+ renderCdkContext,
36586
+ renderCdkDeploy,
36587
+ renderCdkDestroy,
36588
+ renderCdkDiff,
36589
+ renderCdkDocs,
36590
+ renderCdkDoctor,
36591
+ renderCdkDrift,
36592
+ renderCdkFlags,
36593
+ renderCdkGc,
36594
+ renderCdkImport,
36595
+ renderCdkInit,
36596
+ renderCdkList,
36597
+ renderCdkMetadata,
36598
+ renderCdkMigrate,
36599
+ renderCdkNotices,
36600
+ renderCdkOrphan,
36601
+ renderCdkPublishAssets,
36602
+ renderCdkRefactor,
36603
+ renderCdkRollback,
36604
+ renderCdkSynth,
36605
+ renderCdkWatch,
35796
36606
  renderCheckDocSamplesProcedure,
35797
36607
  renderCheckLinksProcedure,
35798
36608
  renderCustomDocSectionBlock,