@go-to-k/cdkd 0.135.1 → 0.136.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import { _ as withSkipPrefix, a as runDockerStreaming, c as getLogger, d as getLiveRenderer, f as PATTERN_B_NAME_PROPERTIES, g as generateResourceNameWithFallback, h as generateResourceName, i as runDockerForeground, n as formatDockerLoginError, p as PATTERN_B_RESOURCE_TYPES, r as getDockerCmd, u as runStackBuffered, v as withStackName } from "./docker-cmd-EtWSTAje.js";
3
- import { A as AssetPublisher, B as resolveStateBucketWithDefault, C as applyRoleArnIfSet, D as LockManager, E as TemplateParser, F as getDefaultStateBucketName, G as resolveBucketRegion, H as warnDeprecatedNoPrefixCliFlag, I as getLegacyStateBucketName, L as resolveApp, M as WorkGraph, N as buildDockerImage, O as S3StateBackend, P as Synthesizer, Q as LocalStartServiceError, R as resolveCaptureObservedState, S as IntrinsicFunctionResolver, T as DagBuilder, U as AssemblyReader, V as resolveStateBucketWithDefaultAndSource, X as LocalInvokeBuildError, Z as LocalMigrateError, _ as normalizeAwsTagsToCfn, a as withRetry, at as RouteDiscoveryError, b as CloudControlProvider, c as cyan, d as red, et as MissingCdkCliError, f as yellow, ft as normalizeAwsError, g as matchesCdkPath, h as CDK_PATH_TAG, i as withResourceDeadline, it as ResourceUpdateNotSupportedError, j as stringifyValue, k as shouldRetainResource, l as gray, m as collectInlinePolicyNamesManagedBySiblings, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as ProvisioningError, o as IMPLICIT_DELETE_DEPENDENCIES, ot as StackHasActiveImportsError, p as IAMRoleProvider, pt as withErrorHandling, q as CdkdError, r as DeployEngine, rt as ResourceTimeoutError, s as bold, st as StackTerminationProtectionError, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as PartialFailureError, u as green, v as resolveExplicitPhysicalId, w as DiffCalculator, x as assertRegionMatch, y as ProviderRegistry, z as resolveSkipPrefix } from "./deploy-engine-CX1x5ug1.js";
3
+ import { A as AssetPublisher, B as resolveStateBucketWithDefault, C as applyRoleArnIfSet, D as LockManager, E as TemplateParser, F as getDefaultStateBucketName, G as MIGRATE_TMP_PREFIX, H as warnDeprecatedNoPrefixCliFlag, I as getLegacyStateBucketName, J as AssemblyReader, K as findLargeInlineResources, L as resolveApp, M as WorkGraph, N as buildDockerImage, O as S3StateBackend, P as Synthesizer, Q as CdkdError, R as resolveCaptureObservedState, S as IntrinsicFunctionResolver, T as DagBuilder, U as CFN_TEMPLATE_BODY_LIMIT, V as resolveStateBucketWithDefaultAndSource, W as CFN_TEMPLATE_URL_LIMIT, X as resolveBucketRegion, _ as normalizeAwsTagsToCfn, _t as normalizeAwsError, a as withRetry, at as MissingCdkCliError, b as CloudControlProvider, c as cyan, ct as ResourceTimeoutError, d as red, dt as StackHasActiveImportsError, f as yellow, ft as StackTerminationProtectionError, g as matchesCdkPath, h as CDK_PATH_TAG, i as withResourceDeadline, j as stringifyValue, k as shouldRetainResource, l as gray, lt as ResourceUpdateNotSupportedError, m as collectInlinePolicyNamesManagedBySiblings, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as LocalMigrateError, o as IMPLICIT_DELETE_DEPENDENCIES, ot as PartialFailureError, p as IAMRoleProvider, q as uploadCfnTemplate, r as DeployEngine, rt as LocalStartServiceError, s as bold, st as ProvisioningError, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as LocalInvokeBuildError, u as green, ut as RouteDiscoveryError, v as resolveExplicitPhysicalId, vt as withErrorHandling, w as DiffCalculator, x as assertRegionMatch, y as ProviderRegistry, z as resolveSkipPrefix } from "./deploy-engine-DZYchTh6.js";
4
4
  import { a as setAwsClients, i as resetAwsClients, r as getAwsClients, t as AwsClients } from "./aws-clients-BF03Alpe.js";
5
5
  import { createHash, createHmac, createPublicKey, createVerify, randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
6
- import { CopyObjectCommand, CreateBucketCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListBucketsCommand, ListDirectoryBucketsCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, PutBucketAccelerateConfigurationCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectCommand, PutObjectLockConfigurationCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
6
+ import { CopyObjectCommand, CreateBucketCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListBucketsCommand, ListDirectoryBucketsCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, PutBucketAccelerateConfigurationCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectCommand, PutObjectLockConfigurationCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
7
7
  import { AddRoleToInstanceProfileCommand, AddUserToGroupCommand, AttachGroupPolicyCommand, AttachUserPolicyCommand, CreateGroupCommand, CreateInstanceProfileCommand, CreateLoginProfileCommand, CreateUserCommand, DeleteAccessKeyCommand, DeleteGroupCommand, DeleteGroupPolicyCommand, DeleteInstanceProfileCommand, DeleteLoginProfileCommand, DeleteRolePolicyCommand, DeleteUserCommand, DeleteUserPermissionsBoundaryCommand, DeleteUserPolicyCommand, DetachGroupPolicyCommand, DetachUserPolicyCommand, GetGroupCommand, GetGroupPolicyCommand, GetInstanceProfileCommand, GetRolePolicyCommand, GetUserCommand, GetUserPolicyCommand, IAMClient, ListAccessKeysCommand, ListAttachedGroupPoliciesCommand, ListAttachedUserPoliciesCommand, ListGroupPoliciesCommand, ListGroupsForUserCommand, ListInstanceProfilesCommand, ListUserPoliciesCommand, ListUserTagsCommand, ListUsersCommand, NoSuchEntityException, PutGroupPolicyCommand, PutRolePolicyCommand, PutUserPermissionsBoundaryCommand, PutUserPolicyCommand, RemoveRoleFromInstanceProfileCommand, RemoveUserFromGroupCommand, TagUserCommand, UntagUserCommand, UpdateLoginProfileCommand } from "@aws-sdk/client-iam";
8
8
  import { CreateQueueCommand, DeleteQueueCommand, GetQueueAttributesCommand, GetQueueUrlCommand, ListQueueTagsCommand, ListQueuesCommand, QueueDoesNotExist, SQSClient, SetQueueAttributesCommand, TagQueueCommand, UntagQueueCommand } from "@aws-sdk/client-sqs";
9
9
  import { CreateTopicCommand, DeleteTopicCommand, GetSubscriptionAttributesCommand, GetTopicAttributesCommand, ListTagsForResourceCommand, ListTopicsCommand, NotFoundException, SNSClient, SetTopicAttributesCommand, SubscribeCommand, TagResourceCommand, UnsubscribeCommand, UntagResourceCommand } from "@aws-sdk/client-sns";
@@ -30866,7 +30866,9 @@ async function deployCommand(stacks, options) {
30866
30866
  output: options.output,
30867
30867
  ...options.region && { region: options.region },
30868
30868
  ...options.profile && { profile: options.profile },
30869
- ...Object.keys(context).length > 0 && { context }
30869
+ ...Object.keys(context).length > 0 && { context },
30870
+ stateBucket,
30871
+ ...options.profile && { macroExpandS3ClientOpts: { profile: options.profile } }
30870
30872
  });
30871
30873
  logger.debug(`Found ${allStacks.length} stack(s) in assembly`);
30872
30874
  const stackPatterns = stacks.length > 0 ? stacks : options.stack ? [options.stack] : [];
@@ -31124,7 +31126,9 @@ async function diffCommand(stacks, options) {
31124
31126
  output: options.output,
31125
31127
  ...options.region && { region: options.region },
31126
31128
  ...options.profile && { profile: options.profile },
31127
- ...Object.keys(context).length > 0 && { context }
31129
+ ...Object.keys(context).length > 0 && { context },
31130
+ stateBucket,
31131
+ ...options.profile && { macroExpandS3ClientOpts: { profile: options.profile } }
31128
31132
  });
31129
31133
  logger.info(`Found ${allStacks.length} stack(s) in assembly`);
31130
31134
  const stackPatterns = stacks.length > 0 ? stacks : options.stack ? [options.stack] : [];
@@ -32477,7 +32481,9 @@ async function destroyCommand(stackArgs, options) {
32477
32481
  appStacks = (await synthesizer.synthesize({
32478
32482
  app: appCmd,
32479
32483
  output: options.output || "cdk.out",
32480
- ...Object.keys(context).length > 0 && { context }
32484
+ ...Object.keys(context).length > 0 && { context },
32485
+ stateBucket,
32486
+ ...options.profile && { macroExpandS3ClientOpts: { profile: options.profile } }
32481
32487
  })).stacks.map((s) => ({
32482
32488
  stackName: s.stackName,
32483
32489
  displayName: s.displayName,
@@ -33101,7 +33107,9 @@ async function orphanCommand(pathArgs, options) {
33101
33107
  const resolved = resolveConstructPaths(pathArgs, (await synthesizer.synthesize({
33102
33108
  app: appCmd,
33103
33109
  output: options.output || "cdk.out",
33104
- ...Object.keys(context).length > 0 && { context }
33110
+ ...Object.keys(context).length > 0 && { context },
33111
+ stateBucket,
33112
+ ...options.profile && { macroExpandS3ClientOpts: { profile: options.profile } }
33105
33113
  })).stacks);
33106
33114
  const stackInfo = resolved.stack;
33107
33115
  const orphanLogicalIds = resolved.logicalIds;
@@ -34775,143 +34783,6 @@ const STABLE_TERMINAL_STATUSES = new Set([
34775
34783
  "IMPORT_ROLLBACK_COMPLETE"
34776
34784
  ]);
34777
34785
 
34778
- //#endregion
34779
- //#region src/cli/upload-cfn-template.ts
34780
- /**
34781
- * CloudFormation `TemplateBody` hard limit (51,200 bytes). Templates larger
34782
- * than this cannot be submitted inline and must be uploaded to S3 and
34783
- * referenced via `TemplateURL` instead — see {@link uploadCfnTemplate}.
34784
- */
34785
- const CFN_TEMPLATE_BODY_LIMIT = 51200;
34786
- /**
34787
- * CloudFormation `TemplateURL` hard limit (1 MB / 1,048,576 bytes).
34788
- * Templates larger than this are structurally unsubmittable through any
34789
- * CloudFormation API — no S3 indirection helps. The caller surfaces a
34790
- * pre-flight error pointing the user at template-splitting (nested stacks)
34791
- * or shrinking inline asset payloads (`lambda.Code.fromAsset`).
34792
- */
34793
- const CFN_TEMPLATE_URL_LIMIT = 1048576;
34794
- /**
34795
- * Shared S3 key prefix for transient CFn templates uploaded by `cdkd import
34796
- * --migrate-from-cloudformation` and `cdkd export`. Kept distinct from
34797
- * cdkd's `cdkd/` state prefix so `state list` / `state info` never conflate
34798
- * transient migration artifacts with persisted stack state. The prefix is
34799
- * intentionally human-grep-able — leftovers (if cleanup fails) point
34800
- * straight at the offending stack name.
34801
- *
34802
- * Re-used by both commands so operator-facing audit trails (CloudTrail
34803
- * records of the migrate-tmp uploads) stay consistent across the two
34804
- * flows.
34805
- */
34806
- const MIGRATE_TMP_PREFIX = "cdkd-migrate-tmp";
34807
- /**
34808
- * Upload a CFn template body to the cdkd state bucket and return both a
34809
- * virtual-hosted-style HTTPS URL CloudFormation can fetch via
34810
- * `TemplateURL` and a `cleanup` callback that deletes the object (and
34811
- * destroys the S3 client).
34812
- *
34813
- * The state bucket's actual region is resolved via `GetBucketLocation`
34814
- * (cached per-process) so the upload client and the URL match the
34815
- * bucket's region — the calling CLI's profile region is irrelevant here.
34816
- *
34817
- * Cleanup is the caller's responsibility: invoke `cleanup` in a `finally`
34818
- * around the CFn call. CloudFormation copies the template into its own
34819
- * internal storage during the synchronous `CreateChangeSet` /
34820
- * `UpdateStack` API call, so the S3 object is no longer needed after that
34821
- * call returns (success or failure).
34822
- *
34823
- * Shared between `cdkd import --migrate-from-cloudformation` (via
34824
- * `retire-cfn-stack.ts`) and `cdkd export` (via `commands/export.ts`) so
34825
- * the upload + cleanup contract is single-sourced.
34826
- */
34827
- async function uploadCfnTemplate(args) {
34828
- const { bucket, body, stackName, format, s3ClientOpts } = args;
34829
- const region = await resolveBucketRegion(bucket, {
34830
- ...s3ClientOpts?.profile && { profile: s3ClientOpts.profile },
34831
- ...s3ClientOpts?.credentials && { credentials: s3ClientOpts.credentials }
34832
- });
34833
- const s3 = new S3Client({
34834
- region,
34835
- ...s3ClientOpts?.profile && { profile: s3ClientOpts.profile },
34836
- ...s3ClientOpts?.credentials && { credentials: s3ClientOpts.credentials }
34837
- });
34838
- const ext = format === "yaml" ? "yaml" : "json";
34839
- const contentType = format === "yaml" ? "application/x-yaml" : "application/json";
34840
- const key = `${MIGRATE_TMP_PREFIX}/${stackName}/${Date.now()}.${ext}`;
34841
- try {
34842
- await s3.send(new PutObjectCommand({
34843
- Bucket: bucket,
34844
- Key: key,
34845
- Body: body,
34846
- ContentType: contentType
34847
- }));
34848
- } catch (err) {
34849
- s3.destroy();
34850
- throw err;
34851
- }
34852
- const url = `https://${bucket}.s3.${region}.amazonaws.com/${key}`;
34853
- const cleanup = async () => {
34854
- try {
34855
- await s3.send(new DeleteObjectCommand({
34856
- Bucket: bucket,
34857
- Key: key
34858
- }));
34859
- } finally {
34860
- s3.destroy();
34861
- }
34862
- };
34863
- return {
34864
- url,
34865
- cleanup
34866
- };
34867
- }
34868
- /**
34869
- * Threshold (in bytes) above which a single resource's serialized
34870
- * `Properties` block is considered an "inline payload" worth surfacing as
34871
- * a contributor to a template that exceeds the 1 MB CFn `TemplateURL`
34872
- * ceiling. 4 KB matches the typical inline `Code.ZipFile` Lambda payload
34873
- * that pushes a multi-resource CDK app over the wire-format limit.
34874
- */
34875
- const LARGE_INLINE_RESOURCE_THRESHOLD = 4096;
34876
- /**
34877
- * Walk a CFn template and surface every resource whose serialized
34878
- * `Properties` block exceeds {@link LARGE_INLINE_RESOURCE_THRESHOLD}.
34879
- * Used to build the actionable "offending resources" list in the
34880
- * pre-flight error when a template exceeds the 1 MB `TemplateURL`
34881
- * ceiling — typical culprits are inline `Code.ZipFile` Lambdas, inline
34882
- * StepFunctions definitions, or large `AWS::CloudFormation::Stack`
34883
- * bodies.
34884
- *
34885
- * Returns entries sorted by `approxBytes` descending so the user sees
34886
- * the biggest contributor first. A non-CFn-template input (no
34887
- * `Resources` object) returns an empty array.
34888
- */
34889
- function findLargeInlineResources(template, threshold = LARGE_INLINE_RESOURCE_THRESHOLD) {
34890
- const result = [];
34891
- const resources = template["Resources"];
34892
- if (!resources || typeof resources !== "object" || Array.isArray(resources)) return result;
34893
- for (const [logicalId, resource] of Object.entries(resources)) {
34894
- if (!resource || typeof resource !== "object" || Array.isArray(resource)) continue;
34895
- const r = resource;
34896
- const resourceType = typeof r["Type"] === "string" ? r["Type"] : "<unknown>";
34897
- const properties = r["Properties"];
34898
- if (properties === void 0 || properties === null) continue;
34899
- let approxBytes;
34900
- try {
34901
- approxBytes = JSON.stringify(properties).length;
34902
- } catch {
34903
- continue;
34904
- }
34905
- if (approxBytes >= threshold) result.push({
34906
- logicalId,
34907
- resourceType,
34908
- approxBytes
34909
- });
34910
- }
34911
- result.sort((a, b) => b.approxBytes - a.approxBytes);
34912
- return result;
34913
- }
34914
-
34915
34786
  //#endregion
34916
34787
  //#region src/cli/yaml-cfn.ts
34917
34788
  /**
@@ -35498,7 +35369,9 @@ async function importCommand(stackArg, options) {
35498
35369
  const result = await synthesizer.synthesize({
35499
35370
  app: appCmd,
35500
35371
  output: options.output || "cdk.out",
35501
- ...Object.keys(context).length > 0 && { context }
35372
+ ...Object.keys(context).length > 0 && { context },
35373
+ stateBucket,
35374
+ ...options.profile && { macroExpandS3ClientOpts: { profile: options.profile } }
35502
35375
  });
35503
35376
  let stackInfo;
35504
35377
  if (stackArg) {
@@ -46992,7 +46865,9 @@ async function localStartApiCommand(target, options) {
46992
46865
  output: options.output,
46993
46866
  ...options.region && { region: options.region },
46994
46867
  ...options.profile && { profile: options.profile },
46995
- ...Object.keys(context).length > 0 && { context }
46868
+ ...Object.keys(context).length > 0 && { context },
46869
+ ...options.stateBucket && { stateBucket: options.stateBucket },
46870
+ ...options.profile && { macroExpandS3ClientOpts: { profile: options.profile } }
46996
46871
  };
46997
46872
  const { stacks } = await synthesizer.synthesize(synthOpts);
46998
46873
  const targetStacks = pickTargetStacks(stacks, options.stack);
@@ -48920,7 +48795,9 @@ async function localRunTaskCommand(target, options) {
48920
48795
  output: options.output,
48921
48796
  ...options.region && { region: options.region },
48922
48797
  ...options.profile && { profile: options.profile },
48923
- ...Object.keys(context).length > 0 && { context }
48798
+ ...Object.keys(context).length > 0 && { context },
48799
+ ...options.stateBucket && { stateBucket: options.stateBucket },
48800
+ ...options.profile && { macroExpandS3ClientOpts: { profile: options.profile } }
48924
48801
  };
48925
48802
  const { stacks } = await synthesizer.synthesize(synthOpts);
48926
48803
  const imageContext = await buildEcsImageResolutionContext$1(target, stacks, options);
@@ -49601,7 +49478,9 @@ async function localStartServiceCommand(target, options) {
49601
49478
  output: options.output,
49602
49479
  ...options.region && { region: options.region },
49603
49480
  ...options.profile && { profile: options.profile },
49604
- ...Object.keys(context).length > 0 && { context }
49481
+ ...Object.keys(context).length > 0 && { context },
49482
+ ...options.stateBucket && { stateBucket: options.stateBucket },
49483
+ ...options.profile && { macroExpandS3ClientOpts: { profile: options.profile } }
49605
49484
  };
49606
49485
  const { stacks } = await synthesizer.synthesize(synthOpts);
49607
49486
  const imageContext = await buildEcsImageResolutionContext(target, stacks, options);
@@ -49922,7 +49801,9 @@ async function localInvokeCommand(target, options) {
49922
49801
  output: options.output,
49923
49802
  ...options.region && { region: options.region },
49924
49803
  ...options.profile && { profile: options.profile },
49925
- ...Object.keys(context).length > 0 && { context }
49804
+ ...Object.keys(context).length > 0 && { context },
49805
+ ...options.stateBucket && { stateBucket: options.stateBucket },
49806
+ ...options.profile && { macroExpandS3ClientOpts: { profile: options.profile } }
49926
49807
  };
49927
49808
  const { stacks } = await synthesizer.synthesize(synthOpts);
49928
49809
  const lambda = resolveLambdaTarget(target, stacks);
@@ -50830,7 +50711,9 @@ async function exportCommand(stackArg, options) {
50830
50711
  const result = await synthesizer.synthesize({
50831
50712
  app: appCmd,
50832
50713
  output: options.output || "cdk.out",
50833
- ...Object.keys(context).length > 0 && { context }
50714
+ ...Object.keys(context).length > 0 && { context },
50715
+ stateBucket,
50716
+ ...options.profile && { macroExpandS3ClientOpts: { profile: options.profile } }
50834
50717
  });
50835
50718
  let stackInfo;
50836
50719
  if (stackArg) {
@@ -52999,7 +52882,7 @@ function reorderArgs(argv) {
52999
52882
  */
53000
52883
  async function main() {
53001
52884
  const program = new Command();
53002
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.135.1");
52885
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.136.0");
53003
52886
  program.addCommand(createBootstrapCommand());
53004
52887
  program.addCommand(createSynthCommand());
53005
52888
  program.addCommand(createListCommand());