@go-to-k/cdkd 0.278.4 → 0.278.6

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,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { $ as DagBuilder, A as red, At as resolveApp, B as isTerminationProtectionPropagationError, Bt as CFN_TEMPLATE_URL_LIMIT, C as isStatefulRecreateTargetSync, Ct as runDockerStreaming, D as cyan, Dt as synthesisStatusMessage, E as bold, Et as Synthesizer, F as ProviderRegistry, Ft as resolveStateBucketWithDefaultAndSource, G as normalizeAwsTagsToCfn, Gt as AssemblyReader, H as cfnRefValueFromPhysicalId, Ht as findLargeInlineResources, I as findActionableSilentDrops, It as resolveUseCdkBootstrapAssets, J as applyRoleArnIfSet, Jt as resolveBucketRegion, K as resolveExplicitPhysicalId, Kt as processStackMessages, L as CloudControlProvider, Lt as stateBucketExistenceConfirmed, M as IAMRoleProvider, Mt as resolveCaptureObservedState, N as collectInlinePolicyNamesManagedBySiblings, Nt as resolveSkipPrefix, O as gray, Ot as getDefaultStateBucketName, P as clearOnUpdateRemoval, Pt as resolveStateBucketWithDefault, Q as isRetryableTransientError, Qt as setAwsClients, R as slowCcOperationTimeoutMs, Rt as warnDeprecatedNoPrefixCliFlag, S as MULTI_REGION_RECREATE_BLOCKED_TYPES, St as runDockerForeground, T as formatResourceLine, Tt as getDockerImageBySourceHash, U as refStateLookupFromResource, Ut as uploadCfnTemplate, V as IntrinsicFunctionResolver, Vt as MIGRATE_TMP_PREFIX, W as WAFv2WebACLProvider, Wt as expectedOwnerParam, X as describeTypeWithThrottleRetry, Xt as getAwsClients, Y as DiffCalculator, Yt as AwsClients, Z as withRetry, Zt as resetAwsClients, _ as createPreDeleteFinalSnapshot, _t as validateAssetBucketName, a as DeploymentEventsStore, an as LocalMigrateError, at as AssetPublisher, b as unsupportedFinalSnapshotError, bn as normalizeAwsError, bt as formatDockerLoginError, c as replayFailedOperations, cn as MissingCdkCliError, ct as buildAssetRedirectMap, d as IMPLICIT_DELETE_DEPENDENCIES, dn as ProvisioningError, dt as rewriteTemplateAssetReferences, en as CdkdError, et as TemplateParser, f as computeImplicitDeleteEdges, fn as ResourceTimeoutError, ft as AssetModeResolver, g as ccRoutedFinalSnapshotError, gt as parseBootstrapMarker, h as buildFinalSnapshotIdentifier, hn as StackTerminationProtectionError, ht as getBootstrapMarkerKey, i as DeploymentEventsReader, in as LocalInvokeBuildError$1, it as shouldRetainResource, j as yellow, jt as resolveAutoAssetStorage, k as green, kt as getLegacyStateBucketName, l as replayRollback, ln as NestedStackChildDirectDestroyError, lt as createAssetRedirectResolver, m as PRE_DELETE_SNAPSHOT_TYPES, mn as StackHasActiveImportsError, mt as ensureAssetStorage, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as S3StateBackend, o as planFailedOps, on as LocalStartServiceError, ot as stringifyValue, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as ResourceUpdateNotSupportedError, pt as BOOTSTRAP_MARKER_PREFIX, q as assertRegionMatch, r as DeployEngine, rn as DeployCancelledError, rt as rebuildClientForBucketRegion, s as planRollback, st as WorkGraph, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as LockManager, u as withResourceDeadline, un as PartialFailureError, ut as loadPublishableAssetManifest, v as isFinalSnapshotError, vt as validateContainerRepoName, w as renderStatefulReason, wt as AssetManifestLoader, x as extractDeploymentEventError, xn as withErrorHandling, xt as getDockerCmd, y as refusesFinalSnapshot, yt as buildDockerImage, z as disableInstanceApiTermination, zt as CFN_TEMPLATE_BODY_LIMIT } from "./deploy-engine-BEGqPEMI.js";
2
+ import { $ as DagBuilder, A as red, At as resolveApp, B as isTerminationProtectionPropagationError, Bt as CFN_TEMPLATE_URL_LIMIT, C as isStatefulRecreateTargetSync, Ct as runDockerStreaming, D as cyan, Dt as synthesisStatusMessage, E as bold, Et as Synthesizer, F as ProviderRegistry, Ft as resolveStateBucketWithDefaultAndSource, G as normalizeAwsTagsToCfn, Gt as AssemblyReader, H as cfnRefValueFromPhysicalId, Ht as findLargeInlineResources, I as findActionableSilentDrops, It as resolveUseCdkBootstrapAssets, J as applyRoleArnIfSet, Jt as resolveBucketRegion, K as resolveExplicitPhysicalId, Kt as processStackMessages, L as CloudControlProvider, Lt as stateBucketExistenceConfirmed, M as IAMRoleProvider, Mt as resolveCaptureObservedState, N as collectInlinePolicyNamesManagedBySiblings, Nt as resolveSkipPrefix, O as gray, Ot as getDefaultStateBucketName, P as clearOnUpdateRemoval, Pt as resolveStateBucketWithDefault, Q as isRetryableTransientError, Qt as setAwsClients, R as slowCcOperationTimeoutMs, Rt as warnDeprecatedNoPrefixCliFlag, S as MULTI_REGION_RECREATE_BLOCKED_TYPES, St as runDockerForeground, T as formatResourceLine, Tt as getDockerImageBySourceHash, U as refStateLookupFromResource, Ut as uploadCfnTemplate, V as IntrinsicFunctionResolver, Vt as MIGRATE_TMP_PREFIX, W as WAFv2WebACLProvider, Wt as expectedOwnerParam, X as describeTypeWithThrottleRetry, Xt as getAwsClients, Y as DiffCalculator, Yt as AwsClients, Z as withRetry, Zt as resetAwsClients, _ as createPreDeleteFinalSnapshot, _t as validateAssetBucketName, a as DeploymentEventsStore, an as LocalMigrateError, at as AssetPublisher, b as unsupportedFinalSnapshotError, bn as normalizeAwsError, bt as formatDockerLoginError, c as replayFailedOperations, cn as MissingCdkCliError, ct as buildAssetRedirectMap, d as IMPLICIT_DELETE_DEPENDENCIES, dn as ProvisioningError, dt as rewriteTemplateAssetReferences, en as CdkdError, et as TemplateParser, f as computeImplicitDeleteEdges, fn as ResourceTimeoutError, ft as AssetModeResolver, g as ccRoutedFinalSnapshotError, gt as parseBootstrapMarker, h as buildFinalSnapshotIdentifier, hn as StackTerminationProtectionError, ht as getBootstrapMarkerKey, i as DeploymentEventsReader, in as LocalInvokeBuildError$1, it as shouldRetainResource, j as yellow, jt as resolveAutoAssetStorage, k as green, kt as getLegacyStateBucketName, l as replayRollback, ln as NestedStackChildDirectDestroyError, lt as createAssetRedirectResolver, m as PRE_DELETE_SNAPSHOT_TYPES, mn as StackHasActiveImportsError, mt as ensureAssetStorage, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as S3StateBackend, o as planFailedOps, on as LocalStartServiceError, ot as stringifyValue, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as ResourceUpdateNotSupportedError, pt as BOOTSTRAP_MARKER_PREFIX, q as assertRegionMatch, r as DeployEngine, rn as DeployCancelledError, rt as rebuildClientForBucketRegion, s as planRollback, st as WorkGraph, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as LockManager, u as withResourceDeadline, un as PartialFailureError, ut as loadPublishableAssetManifest, v as isFinalSnapshotError, vt as validateContainerRepoName, w as renderStatefulReason, wt as AssetManifestLoader, x as extractDeploymentEventError, xn as withErrorHandling, xt as getDockerCmd, y as refusesFinalSnapshot, yt as buildDockerImage, z as disableInstanceApiTermination, zt as CFN_TEMPLATE_BODY_LIMIT } from "./deploy-engine-BKRlw9Hx.js";
3
3
  import { a as getLiveRenderer, c as PATTERN_B_RESOURCE_TYPES, d as generateResourceNameWithFallback, f as withSkipPrefix, i as runStackBuffered, n as getLogger, o as PATTERN_B_NAME_OPTIONS, p as withStackName, s as PATTERN_B_NAME_PROPERTIES, u as generateResourceName } from "./logger-BYMEE-BS.js";
4
- import { t as ASGProvider } from "./asg-provider-HQeXH4I8.js";
4
+ import { t as ASGProvider } from "./asg-provider-CTMEDbqF.js";
5
5
  import { AsyncLocalStorage } from "node:async_hooks";
6
6
  import { createHash, randomBytes, randomUUID } from "node:crypto";
7
7
  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, 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";
@@ -9754,6 +9754,48 @@ function classifyEventSourceFromProperties(properties) {
9754
9754
  DocumentDBEventSourceConfig: properties["DocumentDBEventSourceConfig"]
9755
9755
  });
9756
9756
  }
9757
+ /**
9758
+ * CFn spells the self-managed-Kafka bootstrap-server list
9759
+ * `SelfManagedEventSource.Endpoints.KafkaBootstrapServers`, while the SDK
9760
+ * models `Endpoints` as `Partial<Record<EndPointType, string[]>>` keyed by the
9761
+ * enum VALUE `KAFKA_BOOTSTRAP_SERVERS` (`@aws-sdk/client-lambda`
9762
+ * `EndPointType`). Because `Endpoints` is a MAP rather than a modeled
9763
+ * structure, the serializer forwards the unknown CFn key verbatim and the
9764
+ * service rejects the whole request — so every CDK `SelfManagedKafkaEventSource`
9765
+ * user hit a hard `CreateEventSourceMapping` failure (issue #1384).
9766
+ *
9767
+ * Both directions are pure key renames of the ONE diverging key; every other
9768
+ * member of the blob (both inside `Endpoints` and beside it) is copied through
9769
+ * untouched. Note that a future `EndPointType` whose CFn spelling also diverges
9770
+ * would reproduce this bug exactly — it needs its own entry here, the pass-
9771
+ * through is not a general solution.
9772
+ *
9773
+ * Anything that is not a re-shapeable object — a non-object blob, a missing or
9774
+ * non-object `Endpoints`, an array `Endpoints` — is returned VERBATIM rather
9775
+ * than dropped. Dropping would be a silent-drop regression against the raw
9776
+ * pass-through this replaced: AWS must stay the one that rejects a malformed
9777
+ * template, not this layer.
9778
+ */
9779
+ const CFN_KAFKA_ENDPOINTS_KEY = "KafkaBootstrapServers";
9780
+ const SDK_KAFKA_ENDPOINTS_KEY = "KAFKA_BOOTSTRAP_SERVERS";
9781
+ function renameEndpointsKey(selfManagedEventSource, from, to) {
9782
+ if (typeof selfManagedEventSource !== "object" || selfManagedEventSource === null) return selfManagedEventSource;
9783
+ const source = { ...selfManagedEventSource };
9784
+ const endpoints = source["Endpoints"];
9785
+ if (typeof endpoints !== "object" || endpoints === null || Array.isArray(endpoints)) return source;
9786
+ const renamed = {};
9787
+ for (const [key, value] of Object.entries(endpoints)) renamed[key === from ? to : key] = value;
9788
+ source["Endpoints"] = renamed;
9789
+ return source;
9790
+ }
9791
+ /** CFn property bag -> `CreateEventSourceMapping` input shape. */
9792
+ function toSdkSelfManagedEventSource(selfManagedEventSource) {
9793
+ return renameEndpointsKey(selfManagedEventSource, CFN_KAFKA_ENDPOINTS_KEY, SDK_KAFKA_ENDPOINTS_KEY);
9794
+ }
9795
+ /** `GetEventSourceMapping` response -> CFn property shape (drift readback). */
9796
+ function toCfnSelfManagedEventSource(selfManagedEventSource) {
9797
+ return renameEndpointsKey(selfManagedEventSource, SDK_KAFKA_ENDPOINTS_KEY, CFN_KAFKA_ENDPOINTS_KEY);
9798
+ }
9757
9799
  const KINDS_WITH_FUNCTION_RESPONSE_TYPES = /* @__PURE__ */ new Set([
9758
9800
  "sqs",
9759
9801
  "kinesis",
@@ -9853,7 +9895,7 @@ var LambdaEventSourceMappingProvider = class {
9853
9895
  if (properties["TumblingWindowInSeconds"]) params.TumblingWindowInSeconds = properties["TumblingWindowInSeconds"];
9854
9896
  if (properties["FunctionResponseTypes"]) params.FunctionResponseTypes = properties["FunctionResponseTypes"];
9855
9897
  if (properties["SourceAccessConfigurations"]) params.SourceAccessConfigurations = properties["SourceAccessConfigurations"];
9856
- if (properties["SelfManagedEventSource"]) params.SelfManagedEventSource = properties["SelfManagedEventSource"];
9898
+ if (properties["SelfManagedEventSource"]) params.SelfManagedEventSource = toSdkSelfManagedEventSource(properties["SelfManagedEventSource"]);
9857
9899
  if (properties["SelfManagedKafkaEventSourceConfig"]) params.SelfManagedKafkaEventSourceConfig = properties["SelfManagedKafkaEventSourceConfig"];
9858
9900
  if (properties["AmazonManagedKafkaEventSourceConfig"]) params.AmazonManagedKafkaEventSourceConfig = properties["AmazonManagedKafkaEventSourceConfig"];
9859
9901
  if (properties["DocumentDBEventSourceConfig"]) params.DocumentDBEventSourceConfig = properties["DocumentDBEventSourceConfig"];
@@ -10081,7 +10123,7 @@ var LambdaEventSourceMappingProvider = class {
10081
10123
  else if (resp.FunctionResponseTypes !== void 0) result["FunctionResponseTypes"] = [...resp.FunctionResponseTypes];
10082
10124
  if (KINDS_WITH_SOURCE_ACCESS_CONFIGURATIONS.has(kind)) result["SourceAccessConfigurations"] = resp.SourceAccessConfigurations ?? [];
10083
10125
  else if (resp.SourceAccessConfigurations !== void 0) result["SourceAccessConfigurations"] = resp.SourceAccessConfigurations;
10084
- if (resp.SelfManagedEventSource !== void 0) result["SelfManagedEventSource"] = resp.SelfManagedEventSource;
10126
+ if (resp.SelfManagedEventSource !== void 0) result["SelfManagedEventSource"] = toCfnSelfManagedEventSource(resp.SelfManagedEventSource);
10085
10127
  if (resp.SelfManagedKafkaEventSourceConfig !== void 0) result["SelfManagedKafkaEventSourceConfig"] = resp.SelfManagedKafkaEventSourceConfig;
10086
10128
  if (resp.AmazonManagedKafkaEventSourceConfig !== void 0) result["AmazonManagedKafkaEventSourceConfig"] = resp.AmazonManagedKafkaEventSourceConfig;
10087
10129
  if (resp.DocumentDBEventSourceConfig !== void 0) result["DocumentDBEventSourceConfig"] = resp.DocumentDBEventSourceConfig;
@@ -42827,6 +42869,40 @@ var ECRProvider = class {
42827
42869
  return out;
42828
42870
  }
42829
42871
  /**
42872
+ * Map CFn `ImageTagMutabilityExclusionFilters`
42873
+ * (`[{ ImageTagMutabilityExclusionFilterType, ImageTagMutabilityExclusionFilterValue }]`)
42874
+ * to the SDK shape (`[{ filterType, filter }]`). The member NAMES diverge —
42875
+ * not just their casing — so forwarding the CFn-shaped array verbatim makes
42876
+ * the SDK drop every member and send `[{}]`, and AWS rejects the call (or,
42877
+ * worse, silently loses the exclusions). Returns `undefined` for an absent /
42878
+ * empty list so the caller can omit the field entirely.
42879
+ */
42880
+ toSdkTagMutabilityExclusionFilters(cfn) {
42881
+ if (!Array.isArray(cfn) || cfn.length === 0) return void 0;
42882
+ return cfn.map((entry) => {
42883
+ const e = entry ?? {};
42884
+ return {
42885
+ filterType: e["ImageTagMutabilityExclusionFilterType"],
42886
+ filter: e["ImageTagMutabilityExclusionFilterValue"]
42887
+ };
42888
+ });
42889
+ }
42890
+ /**
42891
+ * Inverse of {@link toSdkTagMutabilityExclusionFilters}: SDK
42892
+ * `[{ filterType, filter }]` back to the CFn property shape, so
42893
+ * `cdkd drift` compares the AWS-current exclusions against the
42894
+ * template-shaped baseline instead of a guaranteed false positive.
42895
+ * Returns `undefined` for an absent / empty list so `readCurrentState`
42896
+ * omits the key (a repository with no exclusions).
42897
+ */
42898
+ toCfnTagMutabilityExclusionFilters(sdk) {
42899
+ if (!sdk || sdk.length === 0) return void 0;
42900
+ return sdk.map((f) => ({
42901
+ ...f.filterType !== void 0 && { ImageTagMutabilityExclusionFilterType: f.filterType },
42902
+ ...f.filter !== void 0 && { ImageTagMutabilityExclusionFilterValue: f.filter }
42903
+ }));
42904
+ }
42905
+ /**
42830
42906
  * Create an ECR Repository
42831
42907
  */
42832
42908
  async create(logicalId, resourceType, properties) {
@@ -42836,10 +42912,12 @@ var ECRProvider = class {
42836
42912
  const tags = properties["Tags"];
42837
42913
  const scanningConfig = this.toSdkScanningConfig(properties["ImageScanningConfiguration"]);
42838
42914
  const encryptionConfig = this.toSdkEncryptionConfig(properties["EncryptionConfiguration"]);
42915
+ const exclusionFilters = this.toSdkTagMutabilityExclusionFilters(properties["ImageTagMutabilityExclusionFilters"]);
42839
42916
  const repo = (await this.getClient().send(new CreateRepositoryCommand({
42840
42917
  repositoryName,
42841
42918
  ...scanningConfig ? { imageScanningConfiguration: scanningConfig } : {},
42842
42919
  ...properties["ImageTagMutability"] ? { imageTagMutability: properties["ImageTagMutability"] } : {},
42920
+ ...exclusionFilters ? { imageTagMutabilityExclusionFilters: exclusionFilters } : {},
42843
42921
  ...encryptionConfig ? { encryptionConfiguration: encryptionConfig } : {},
42844
42922
  ...tags ? { tags } : {}
42845
42923
  }))).repository;
@@ -42880,7 +42958,8 @@ var ECRProvider = class {
42880
42958
  * Update an ECR Repository
42881
42959
  *
42882
42960
  * Mutable properties: ImageScanningConfiguration, ImageTagMutability,
42883
- * LifecyclePolicy, RepositoryPolicyText, Tags.
42961
+ * ImageTagMutabilityExclusionFilters, LifecyclePolicy, RepositoryPolicyText,
42962
+ * Tags.
42884
42963
  * Immutable: RepositoryName, EncryptionConfiguration (require replacement).
42885
42964
  */
42886
42965
  async update(logicalId, physicalId, _resourceType, properties, previousProperties) {
@@ -42896,10 +42975,14 @@ var ECRProvider = class {
42896
42975
  this.logger.debug(`Updated image scanning configuration for ${physicalId}`);
42897
42976
  }
42898
42977
  const newMutability = properties["ImageTagMutability"];
42899
- if (newMutability !== previousProperties["ImageTagMutability"]) {
42978
+ const oldMutability = previousProperties["ImageTagMutability"];
42979
+ const newExclusionFilters = this.toSdkTagMutabilityExclusionFilters(properties["ImageTagMutabilityExclusionFilters"]);
42980
+ const oldExclusionFilters = this.toSdkTagMutabilityExclusionFilters(previousProperties["ImageTagMutabilityExclusionFilters"]);
42981
+ if (newMutability !== oldMutability || JSON.stringify(newExclusionFilters) !== JSON.stringify(oldExclusionFilters)) {
42900
42982
  await this.getClient().send(new PutImageTagMutabilityCommand({
42901
42983
  repositoryName: physicalId,
42902
- imageTagMutability: newMutability ?? "MUTABLE"
42984
+ imageTagMutability: newMutability ?? "MUTABLE",
42985
+ ...newExclusionFilters ? { imageTagMutabilityExclusionFilters: newExclusionFilters } : {}
42903
42986
  }));
42904
42987
  this.logger.debug(`Updated image tag mutability for ${physicalId}`);
42905
42988
  }
@@ -43009,17 +43092,20 @@ var ECRProvider = class {
43009
43092
  * (which `DescribeRepositories` doesn't return).
43010
43093
  *
43011
43094
  * Surfaced keys: `RepositoryName`, `ImageTagMutability`,
43012
- * `ImageScanningConfiguration`, `EncryptionConfiguration`, `LifecyclePolicy`
43013
- * (when configured — `LifecyclePolicyNotFoundException` is caught and the
43014
- * key omitted, NOT propagated as repo-gone).
43095
+ * `ImageTagMutabilityExclusionFilters` (when the repository has any —
43096
+ * `DescribeRepositories` returns them on the `Repository` shape, mapped back
43097
+ * to the CFn member names), `ImageScanningConfiguration`,
43098
+ * `EncryptionConfiguration`, `LifecyclePolicy` (when configured —
43099
+ * `LifecyclePolicyNotFoundException` is caught and the key omitted, NOT
43100
+ * propagated as repo-gone).
43015
43101
  *
43016
43102
  * Intentionally omitted:
43017
43103
  * - `RepositoryPolicyText`: requires a separate `GetRepositoryPolicy`
43018
43104
  * round-trip; cdkd state holds the policy as either a string or an
43019
43105
  * object (depending on user input), and the comparator round-trip
43020
43106
  * is not yet handled here.
43021
- * - `EmptyOnDelete` / `ImageTagMutabilityExclusionFilters`: not part
43022
- * of the persisted AWS state visible via standard Describe.
43107
+ * - `EmptyOnDelete`: a cdkd/CDK delete-time intent flag, not part of the
43108
+ * persisted AWS state visible via standard Describe.
43023
43109
  *
43024
43110
  * `Tags` is surfaced via a follow-up `ListTagsForResource(arn)` call
43025
43111
  * (using the repository ARN that `DescribeRepositories` returns). CDK's
@@ -43041,6 +43127,8 @@ var ECRProvider = class {
43041
43127
  const result = {};
43042
43128
  if (r.repositoryName !== void 0) result["RepositoryName"] = r.repositoryName;
43043
43129
  if (r.imageTagMutability !== void 0) result["ImageTagMutability"] = r.imageTagMutability;
43130
+ const cfnExclusionFilters = this.toCfnTagMutabilityExclusionFilters(r.imageTagMutabilityExclusionFilters);
43131
+ if (cfnExclusionFilters) result["ImageTagMutabilityExclusionFilters"] = cfnExclusionFilters;
43044
43132
  result["ImageScanningConfiguration"] = { ScanOnPush: r.imageScanningConfiguration?.scanOnPush ?? false };
43045
43133
  {
43046
43134
  const encType = r.encryptionConfiguration?.encryptionType ?? "AES256";
@@ -64366,7 +64454,7 @@ function createMigrateCommand() {
64366
64454
  */
64367
64455
  function buildProgram() {
64368
64456
  const program = new Command();
64369
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.278.4");
64457
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.278.6");
64370
64458
  program.hook("preAction", (_thisCommand, actionCommand) => {
64371
64459
  const { profile } = actionCommand.optsWithGlobals();
64372
64460
  if (profile !== void 0) process.env["AWS_PROFILE"] = profile;