@codedrifters/configulator 0.0.317 → 0.0.319

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
@@ -16623,8 +16623,8 @@ var PnpmWorkspace = class _PnpmWorkspace extends Component {
16623
16623
  * Get the pnpm workspace component of a project. If it does not exist,
16624
16624
  * return undefined.
16625
16625
  *
16626
- * @param project
16627
- * @returns
16626
+ * @param project - The project to query.
16627
+ * @returns The PnpmWorkspace component if present, otherwise undefined.
16628
16628
  */
16629
16629
  static of(project) {
16630
16630
  const isDefined = (c) => c instanceof _PnpmWorkspace;
@@ -24906,8 +24906,8 @@ var ProjectMetadata = class _ProjectMetadata extends Component2 {
24906
24906
  /**
24907
24907
  * Return the maintainer-seed addendum for the `project-context`
24908
24908
  * bundle, or an empty string when the root project either has no
24909
- * layout-enforcement opinion or has opted out (`layoutEnforcement:
24910
- * "off"`).
24909
+ * layout-enforcement opinion or has opted out
24910
+ * (`layoutEnforcement: "off"`).
24911
24911
  *
24912
24912
  * Uses duck-typing on the root project's `layoutEnforcement`
24913
24913
  * property to avoid a circular import with `MonorepoProject`. The
@@ -27667,7 +27667,7 @@ _TurboRepo.buildWorkflowOptions = (remoteCacheOptions) => {
27667
27667
  preBuildSteps: [
27668
27668
  {
27669
27669
  name: "AWS Creds for SSM",
27670
- uses: "aws-actions/configure-aws-credentials@v4",
27670
+ uses: "aws-actions/configure-aws-credentials@v6",
27671
27671
  with: {
27672
27672
  ["role-to-assume"]: remoteCacheOptions.oidcRole,
27673
27673
  ["aws-region"]: "us-east-1",
@@ -28080,7 +28080,7 @@ var VERSION = {
28080
28080
  */
28081
28081
  SHARP_VERSION: "0.34.5",
28082
28082
  /**
28083
- * Version of @astrojs/starlight to pin for StarlightProject scaffolding.
28083
+ * Version of `@astrojs/starlight` to pin for StarlightProject scaffolding.
28084
28084
  */
28085
28085
  STARLIGHT_VERSION: "0.39.2",
28086
28086
  /**
@@ -28088,7 +28088,7 @@ var VERSION = {
28088
28088
  */
28089
28089
  TURBO_VERSION: "2.9.14",
28090
28090
  /**
28091
- * Version of @types/node to use across all packages (pnpm catalog).
28091
+ * Version of `@types/node` to use across all packages (pnpm catalog).
28092
28092
  */
28093
28093
  TYPES_NODE_VERSION: "25.8.0",
28094
28094
  /**
@@ -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";
@@ -31670,7 +32376,7 @@ var AuditCategory = {
31670
32376
  LinkFailures: "linkFailures",
31671
32377
  /**
31672
32378
  * Findings produced by the fenced-sample compilation check that
31673
- * flags ` ```ts ` / ` ```typescript ` / ` ```tsx ` blocks in the
32379
+ * flags `ts`, `typescript`, and `tsx` fenced code blocks in the
31674
32380
  * docs that fail `tsc`. Wired in by child issue #520.
31675
32381
  */
31676
32382
  SampleFailures: "sampleFailures"
@@ -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);
@@ -33420,7 +34126,7 @@ function patchStepArray2(steps, pinned) {
33420
34126
  }
33421
34127
 
33422
34128
  // src/workflows/sync-labels.ts
33423
- import { Component as Component17, YamlFile as YamlFile2 } from "projen";
34129
+ import { Component as Component18, YamlFile as YamlFile2 } from "projen";
33424
34130
  import { JobPermission as JobPermission4 } from "projen/lib/github/workflows-model";
33425
34131
  var DEFAULT_STATUS_LABELS = [
33426
34132
  {
@@ -33628,7 +34334,7 @@ ${offenders}`
33628
34334
  }
33629
34335
  });
33630
34336
  }
33631
- var LabelsFile = class extends Component17 {
34337
+ var LabelsFile = class extends Component18 {
33632
34338
  constructor(project, labels) {
33633
34339
  super(project);
33634
34340
  new YamlFile2(project, LABELS_CONFIG_PATH, {
@@ -33748,7 +34454,7 @@ var MonorepoProject = class extends TypeScriptAppProject {
33748
34454
  release: false,
33749
34455
  /**
33750
34456
  * Uppgrade dependencies automatically unless otherwise instructed.
33751
- * Exclude @codedrifters/configulator so the default upgrade task does not
34457
+ * Exclude `@codedrifters/configulator` so the default upgrade task does not
33752
34458
  * upgrade it (version is often managed in-repo or via a separate sync step).
33753
34459
  */
33754
34460
  depsUpgrade: true,
@@ -34024,15 +34730,11 @@ var MonorepoProject = class extends TypeScriptAppProject {
34024
34730
  };
34025
34731
 
34026
34732
  // src/typescript/tsdoc-config.ts
34027
- import { Component as Component18, JsonFile as JsonFile6 } from "projen";
34028
- var STANDARD_MODIFIER_TAGS = [
34029
- "@default",
34030
- "@defaultValue",
34031
- "@experimental",
34032
- "@internal"
34033
- ];
34733
+ import { Component as Component19, JsonFile as JsonFile6 } from "projen";
34734
+ var STANDARD_MODIFIER_TAGS = ["@default"];
34735
+ var STANDARD_INLINE_TAGS = ["@code"];
34034
34736
  var ALWAYS_ON_SCOPES = ["@codedrifters"];
34035
- var TsdocConfig = class _TsdocConfig extends Component18 {
34737
+ var TsdocConfig = class _TsdocConfig extends Component19 {
34036
34738
  /**
34037
34739
  * Derive a workspace scope from a scoped package name (`@scope/name`).
34038
34740
  * Returns `undefined` when the name is unscoped.
@@ -34059,17 +34761,26 @@ var TsdocConfig = class _TsdocConfig extends Component18 {
34059
34761
  ...scopeFromName ? [scopeFromName] : [],
34060
34762
  ...options.workspaceScopes ?? []
34061
34763
  ]);
34062
- const tagSet = /* @__PURE__ */ new Set([
34764
+ const modifierTagSet = /* @__PURE__ */ new Set([
34063
34765
  ...STANDARD_MODIFIER_TAGS,
34064
34766
  ...Array.from(scopeSet),
34065
34767
  ...options.additionalModifierTags ?? []
34066
34768
  ]);
34067
- const tagDefinitions = Array.from(tagSet).sort((a, b) => a.localeCompare(b)).map((tagName) => ({
34068
- tagName,
34069
- syntaxKind: "modifier",
34070
- allowMultiple: true
34071
- }));
34769
+ const inlineTagSet = /* @__PURE__ */ new Set([...STANDARD_INLINE_TAGS]);
34770
+ const tagDefinitions = [
34771
+ ...Array.from(modifierTagSet).map((tagName) => ({
34772
+ tagName,
34773
+ syntaxKind: "modifier",
34774
+ allowMultiple: true
34775
+ })),
34776
+ ...Array.from(inlineTagSet).map((tagName) => ({
34777
+ tagName,
34778
+ syntaxKind: "inline",
34779
+ allowMultiple: true
34780
+ }))
34781
+ ].sort((a, b) => a.tagName.localeCompare(b.tagName));
34072
34782
  new JsonFile6(project, "tsdoc.json", {
34783
+ marker: false,
34073
34784
  obj: {
34074
34785
  $schema: "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json",
34075
34786
  tagDefinitions
@@ -34081,9 +34792,9 @@ var TsdocConfig = class _TsdocConfig extends Component18 {
34081
34792
 
34082
34793
  // src/typescript/typescript-config.ts
34083
34794
  import { relative as relative7 } from "path";
34084
- import { Component as Component19 } from "projen";
34795
+ import { Component as Component20 } from "projen";
34085
34796
  import { ensureRelativePathStartsWithDot } from "projen/lib/util/path";
34086
- var TypeScriptConfig = class extends Component19 {
34797
+ var TypeScriptConfig = class extends Component20 {
34087
34798
  constructor(project) {
34088
34799
  super(project);
34089
34800
  let tsPaths = {};
@@ -34475,12 +35186,12 @@ import { merge as merge4 } from "ts-deepmerge";
34475
35186
 
34476
35187
  // src/workflows/aws-deploy-workflow.ts
34477
35188
  var import_utils11 = __toESM(require_lib());
34478
- import { Component as Component20 } from "projen";
35189
+ import { Component as Component21 } from "projen";
34479
35190
  import { BuildWorkflow } from "projen/lib/build";
34480
35191
  import { GitHub as GitHub4, WorkflowSteps as WorkflowSteps2 } from "projen/lib/github";
34481
35192
  import { JobPermission as JobPermission5 } from "projen/lib/github/workflows-model";
34482
35193
  var PROD_DEPLOY_NAME = "prod-deploy";
34483
- var AwsDeployWorkflow = class _AwsDeployWorkflow extends Component20 {
35194
+ var AwsDeployWorkflow = class _AwsDeployWorkflow extends Component21 {
34484
35195
  constructor(project, options = {}) {
34485
35196
  super(project);
34486
35197
  this.project = project;
@@ -34523,7 +35234,7 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends Component20 {
34523
35234
  * Handles both exact matches (e.g., "main") and glob patterns (e.g., "feature/*").
34524
35235
  * Also allows workflow_dispatch (manual runs) to proceed.
34525
35236
  *
34526
- * @param branches Array of GitBranch objects with branch patterns
35237
+ * @param branches - Array of GitBranch objects with branch patterns
34527
35238
  * @returns Condition string or empty string if no branches provided
34528
35239
  */
34529
35240
  this.buildBranchFilterCondition = (branches) => {
@@ -34570,7 +35281,7 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends Component20 {
34570
35281
  */
34571
35282
  {
34572
35283
  name: `AWS Creds ${awsStageType}/${deploymentTargetRole}/${account}/${region}`,
34573
- uses: "aws-actions/configure-aws-credentials@v4",
35284
+ uses: "aws-actions/configure-aws-credentials@v6",
34574
35285
  with: {
34575
35286
  "role-to-assume": roleArn,
34576
35287
  "aws-region": region,
@@ -34583,7 +35294,11 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends Component20 {
34583
35294
  */
34584
35295
  {
34585
35296
  name: `Deploy ${awsStageType}/${deploymentTargetRole}/${account}/${region}`,
34586
- run: `pnpm dlx aws-cdk deploy --no-rollback --require-approval=never --app=${rootCdkOut} "${stackPattern}"`
35297
+ run: `pnpm dlx aws-cdk ${renderCdkDeploy({
35298
+ ...awsDeploymentConfig.cdkCli.deployOptionsFor(target),
35299
+ app: rootCdkOut,
35300
+ stackPatterns: stackPattern ? [stackPattern] : void 0
35301
+ })}`
34587
35302
  }
34588
35303
  ];
34589
35304
  };
@@ -34744,7 +35459,7 @@ var AwsDeployWorkflow = class _AwsDeployWorkflow extends Component20 {
34744
35459
  };
34745
35460
 
34746
35461
  // src/workflows/aws-teardown-workflow.ts
34747
- import { Component as Component21 } from "projen";
35462
+ import { Component as Component22 } from "projen";
34748
35463
  import { GitHub as GitHub5, GithubWorkflow } from "projen/lib/github";
34749
35464
  import { JobPermission as JobPermission6 } from "projen/lib/github/workflows-model";
34750
35465
  var DEFAULT_TEARDOWN_BRANCH_PATTERNS = [
@@ -34766,7 +35481,7 @@ var resolveBranchPatterns = (explicit, targets) => {
34766
35481
  }
34767
35482
  return [...DEFAULT_TEARDOWN_BRANCH_PATTERNS];
34768
35483
  };
34769
- var AwsTeardownWorkflow = class extends Component21 {
35484
+ var AwsTeardownWorkflow = class extends Component22 {
34770
35485
  constructor(rootProject, options) {
34771
35486
  super(rootProject);
34772
35487
  this.rootProject = rootProject;
@@ -35606,8 +36321,23 @@ export {
35606
36321
  AwsTeardownWorkflow,
35607
36322
  BUILT_IN_BUNDLES,
35608
36323
  BUNDLE_OWNERSHIP,
36324
+ CDK_BOOTSTRAP_DEFAULTS_BY_STAGE,
36325
+ CDK_DEPLOY_DEFAULTS_BY_STAGE,
36326
+ CDK_DEPLOY_METHOD,
36327
+ CDK_DESTROY_DEFAULTS_BY_STAGE,
36328
+ CDK_DIFF_DEFAULTS_BY_STAGE,
36329
+ CDK_DIFF_METHOD,
36330
+ CDK_GC_ACTION,
36331
+ CDK_GC_TYPE,
36332
+ CDK_INIT_LANGUAGE,
36333
+ CDK_INIT_TEMPLATE,
36334
+ CDK_PROGRESS,
36335
+ CDK_REQUIRE_APPROVAL,
36336
+ CDK_SYNTH_DEFAULTS_BY_STAGE,
36337
+ CDK_WATCH_DEFAULTS_BY_STAGE,
35609
36338
  CLAUDE_RULE_TARGET,
35610
36339
  COMPLETE_JOB_ID,
36340
+ CdkCli,
35611
36341
  DEFAULT_AC_THRESHOLDS,
35612
36342
  DEFAULT_AGENT_PATHS,
35613
36343
  DEFAULT_AGENT_TIERS,
@@ -35775,6 +36505,7 @@ export {
35775
36505
  labelsForPhase,
35776
36506
  maintenanceAuditBundle,
35777
36507
  meetingAnalysisBundle,
36508
+ mergeCdkOptions,
35778
36509
  orchestratorBundle,
35779
36510
  parseApiRollup,
35780
36511
  peopleProfileBundle,
@@ -35788,6 +36519,29 @@ export {
35788
36519
  regulatoryResearchBundle,
35789
36520
  renderAgentTierCaseStatement,
35790
36521
  renderAgentTierSection,
36522
+ renderCdkAcknowledge,
36523
+ renderCdkBootstrap,
36524
+ renderCdkContext,
36525
+ renderCdkDeploy,
36526
+ renderCdkDestroy,
36527
+ renderCdkDiff,
36528
+ renderCdkDocs,
36529
+ renderCdkDoctor,
36530
+ renderCdkDrift,
36531
+ renderCdkFlags,
36532
+ renderCdkGc,
36533
+ renderCdkImport,
36534
+ renderCdkInit,
36535
+ renderCdkList,
36536
+ renderCdkMetadata,
36537
+ renderCdkMigrate,
36538
+ renderCdkNotices,
36539
+ renderCdkOrphan,
36540
+ renderCdkPublishAssets,
36541
+ renderCdkRefactor,
36542
+ renderCdkRollback,
36543
+ renderCdkSynth,
36544
+ renderCdkWatch,
35791
36545
  renderCheckDocSamplesProcedure,
35792
36546
  renderCheckLinksProcedure,
35793
36547
  renderCustomDocSectionBlock,