@go-to-k/cdkd 0.278.43 → 0.278.44

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 DiffCalculator, $t as resolveBucketRegion, A as red, At as getDockerImageBySourceHash, B as isTerminationProtectionPropagationError, Bt as resolveStateBucketWithDefaultAndSource, C as isStatefulRecreateTargetSync, Ct as validateContainerRepoName, D as cyan, Dt as runDockerForeground, E as bold, En as withErrorHandling, Et as getDockerCmd, F as ProviderRegistry, Ft as resolveApp, G as normalizeAwsTagsToCfn, Gt as CFN_TEMPLATE_URL_LIMIT, H as cfnRefValueFromPhysicalId, Ht as stateBucketExistenceConfirmed, I as findActionableSilentDrops, It as resolveAutoAssetStorage, J as readConfigString, Jt as uploadCfnTemplate, K as resolveExplicitPhysicalId, Kt as MIGRATE_TMP_PREFIX, L as CloudControlProvider, Lt as resolveCaptureObservedState, M as IAMRoleProvider, Mt as synthesisStatusMessage, N as collectInlinePolicyNamesManagedBySiblings, Nt as getDefaultStateBucketName, O as gray, Ot as runDockerStreaming, P as clearOnUpdateRemoval, Pt as getLegacyStateBucketName, Q as applyRoleArnIfSet, R as slowCcOperationTimeoutMs, Rt as resolveSkipPrefix, S as MULTI_REGION_RECREATE_BLOCKED_TYPES, St as validateAssetBucketName, T as formatResourceLine, Tn as normalizeAwsError, Tt as formatDockerLoginError, U as refStateLookupFromResource, Ut as warnDeprecatedNoPrefixCliFlag, V as IntrinsicFunctionResolver, Vt as resolveUseCdkBootstrapAssets, W as WAFv2WebACLProvider, Wt as CFN_TEMPLATE_BODY_LIMIT, X as requireConfigArray, Xt as AssemblyReader, Y as replayWarn, Yt as expectedOwnerParam, Z as requireConfigString, Zt as processStackMessages, _ as createPreDeleteFinalSnapshot, _n as ResourceTimeoutError, _t as AssetModeResolver, a as DeploymentEventsStore, an as CdkdError, at as TemplateParser, b as unsupportedFinalSnapshotError, bn as StackTerminationProtectionError, bt as getBootstrapMarkerKey, c as replayFailedOperations, cn as DeployCancelledError, ct as rebuildClientForBucketRegion, d as IMPLICIT_DELETE_DEPENDENCIES, dn as LocalStartServiceError, dt as stringifyValue, en as AwsClients, et as describeTypeWithThrottleRetry, f as computeImplicitDeleteEdges, ft as WorkGraph, g as ccRoutedFinalSnapshotError, gn as ProvisioningError, gt as rewriteTemplateAssetReferences, h as buildFinalSnapshotIdentifier, hn as PartialFailureError, ht as loadPublishableAssetManifest, i as DeploymentEventsReader, it as DagBuilder, j as yellow, jt as Synthesizer, k as green, kt as AssetManifestLoader, l as replayRollback, ln as LocalInvokeBuildError$1, lt as shouldRetainResource, m as PRE_DELETE_SNAPSHOT_TYPES, mn as NestedStackChildDirectDestroyError, mt as createAssetRedirectResolver, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as resetAwsClients, nt as isRetryableTransientError, o as planFailedOps, ot as LockManager, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as MissingCdkCliError, pt as buildAssetRedirectMap, q as assertRegionMatch, qt as findLargeInlineResources, r as DeployEngine, rn as setAwsClients, rt as isThrottlingError, s as planRollback, st as S3StateBackend, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as getAwsClients, tt as withRetry, u as withResourceDeadline, un as LocalMigrateError, ut as AssetPublisher, v as isFinalSnapshotError, vn as ResourceUpdateNotSupportedError, vt as BOOTSTRAP_MARKER_PREFIX, w as renderStatefulReason, wt as buildDockerImage, x as extractDeploymentEventError, xt as parseBootstrapMarker, y as refusesFinalSnapshot, yn as StackHasActiveImportsError, yt as ensureAssetStorage, z as disableInstanceApiTermination, zt as resolveStateBucketWithDefault } from "./deploy-engine-1qwryuQH.js";
2
+ import { $ as DiffCalculator, $t as resolveBucketRegion, A as red, At as getDockerImageBySourceHash, B as isTerminationProtectionPropagationError, Bt as resolveStateBucketWithDefaultAndSource, C as isStatefulRecreateTargetSync, Ct as validateContainerRepoName, D as cyan, Dt as runDockerForeground, E as bold, En as withErrorHandling, Et as getDockerCmd, F as ProviderRegistry, Ft as resolveApp, G as normalizeAwsTagsToCfn, Gt as CFN_TEMPLATE_URL_LIMIT, H as cfnRefValueFromPhysicalId, Ht as stateBucketExistenceConfirmed, I as findActionableSilentDrops, It as resolveAutoAssetStorage, J as readConfigString, Jt as uploadCfnTemplate, K as resolveExplicitPhysicalId, Kt as MIGRATE_TMP_PREFIX, L as CloudControlProvider, Lt as resolveCaptureObservedState, M as IAMRoleProvider, Mt as synthesisStatusMessage, N as collectInlinePolicyNamesManagedBySiblings, Nt as getDefaultStateBucketName, O as gray, Ot as runDockerStreaming, P as clearOnUpdateRemoval, Pt as getLegacyStateBucketName, Q as applyRoleArnIfSet, R as slowCcOperationTimeoutMs, Rt as resolveSkipPrefix, S as MULTI_REGION_RECREATE_BLOCKED_TYPES, St as validateAssetBucketName, T as formatResourceLine, Tn as normalizeAwsError, Tt as formatDockerLoginError, U as refStateLookupFromResource, Ut as warnDeprecatedNoPrefixCliFlag, V as IntrinsicFunctionResolver, Vt as resolveUseCdkBootstrapAssets, W as WAFv2WebACLProvider, Wt as CFN_TEMPLATE_BODY_LIMIT, X as requireConfigArray, Xt as AssemblyReader, Y as replayWarn, Yt as expectedOwnerParam, Z as requireConfigString, Zt as processStackMessages, _ as createPreDeleteFinalSnapshot, _n as ResourceTimeoutError, _t as AssetModeResolver, a as DeploymentEventsStore, an as CdkdError, at as TemplateParser, b as unsupportedFinalSnapshotError, bn as StackTerminationProtectionError, bt as getBootstrapMarkerKey, c as replayFailedOperations, cn as DeployCancelledError, ct as rebuildClientForBucketRegion, d as IMPLICIT_DELETE_DEPENDENCIES, dn as LocalStartServiceError, dt as stringifyValue, en as AwsClients, et as describeTypeWithThrottleRetry, f as computeImplicitDeleteEdges, ft as WorkGraph, g as ccRoutedFinalSnapshotError, gn as ProvisioningError, gt as rewriteTemplateAssetReferences, h as buildFinalSnapshotIdentifier, hn as PartialFailureError, ht as loadPublishableAssetManifest, i as DeploymentEventsReader, it as DagBuilder, j as yellow, jt as Synthesizer, k as green, kt as AssetManifestLoader, l as replayRollback, ln as LocalInvokeBuildError$1, lt as shouldRetainResource, m as PRE_DELETE_SNAPSHOT_TYPES, mn as NestedStackChildDirectDestroyError, mt as createAssetRedirectResolver, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as resetAwsClients, nt as isRetryableTransientError, o as planFailedOps, ot as LockManager, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as MissingCdkCliError, pt as buildAssetRedirectMap, q as assertRegionMatch, qt as findLargeInlineResources, r as DeployEngine, rn as setAwsClients, rt as isThrottlingError, s as planRollback, st as S3StateBackend, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as getAwsClients, tt as withRetry, u as withResourceDeadline, un as LocalMigrateError, ut as AssetPublisher, v as isFinalSnapshotError, vn as ResourceUpdateNotSupportedError, vt as BOOTSTRAP_MARKER_PREFIX, w as renderStatefulReason, wt as buildDockerImage, x as extractDeploymentEventError, xt as parseBootstrapMarker, y as refusesFinalSnapshot, yn as StackHasActiveImportsError, yt as ensureAssetStorage, z as disableInstanceApiTermination, zt as resolveStateBucketWithDefault } from "./deploy-engine-CsxvH0hP.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-DIkqTnMR.js";
4
+ import { t as ASGProvider } from "./asg-provider-kBhbMF94.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, DeleteBucketEncryptionCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketOwnershipControlsCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketOwnershipControlsCommand, 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";
@@ -32105,6 +32105,24 @@ var ElastiCacheProvider = class {
32105
32105
  //#endregion
32106
32106
  //#region src/provisioning/providers/servicediscovery-provider.ts
32107
32107
  /**
32108
+ * Reset targets for a REMOVED `Properties.DnsProperties.SOA.TTL` (issue
32109
+ * #1160, servicediscovery batch). The Update*Namespace change objects MERGE
32110
+ * (an absent field keeps the live value), so the provider must send the
32111
+ * reset explicitly to mirror CloudFormation — and the default TTL is
32112
+ * PER KIND, not shared:
32113
+ * - PublicDnsNamespace: 60. Live CFn A/B 2026-08-11 (removing the SOA
32114
+ * block reset the customized 300 back to 60) + raw-SDK create-default
32115
+ * probe (a namespace created without Properties reports TTL 60).
32116
+ * - PrivateDnsNamespace: 15. Raw-SDK create-default probe 2026-08-11 (a
32117
+ * namespace created without Properties reports TTL 15 — matching the
32118
+ * PR #201-era live observation recorded on the create path below) +
32119
+ * live CFn A/B 2026-08-11 on the private kind itself.
32120
+ * Removing `Description` clears it entirely on every kind (the `''`
32121
+ * sentinel; live A/B'd on all three kinds).
32122
+ */
32123
+ const PUBLIC_DNS_NAMESPACE_DEFAULT_SOA_TTL = 60;
32124
+ const PRIVATE_DNS_NAMESPACE_DEFAULT_SOA_TTL = 15;
32125
+ /**
32108
32126
  * AWS Service Discovery Provider
32109
32127
  *
32110
32128
  * Implements resource provisioning for:
@@ -32242,13 +32260,20 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
32242
32260
  *
32243
32261
  * Empty-string Description is intentionally allowed through (`!== undefined`
32244
32262
  * gate, not truthy) so `cdkd drift --revert` can clear a console-side ADD.
32263
+ *
32264
+ * Removal resets (issue #1160): the change object MERGES (absent = "no
32265
+ * change"), so a Description / SOA.TTL REMOVED from the template must be
32266
+ * reset explicitly — Description via the `''` clear sentinel, TTL to the
32267
+ * kind's Cloud Map default ({@link PRIVATE_DNS_NAMESPACE_DEFAULT_SOA_TTL}) —
32268
+ * the CFn-parity shape, live A/B'd 2026-08-11 on the private kind itself.
32245
32269
  */
32246
32270
  async updateNamespace(logicalId, physicalId, resourceType, properties, previousProperties) {
32247
32271
  this.logger.debug(`Updating private DNS namespace ${logicalId}: ${physicalId}`);
32248
32272
  const client = this.getClient();
32249
32273
  const namespaceChange = {};
32250
- if (properties["Description"] !== void 0) namespaceChange.Description = properties["Description"];
32251
- const soaProperties = this.extractSoaTtlProperties(properties);
32274
+ const description = clearOnUpdateRemoval(properties["Description"], previousProperties["Description"], "");
32275
+ if (description !== void 0) namespaceChange.Description = description;
32276
+ const soaProperties = this.resolveSoaTtlChange(properties, previousProperties, PRIVATE_DNS_NAMESPACE_DEFAULT_SOA_TTL);
32252
32277
  if (soaProperties) namespaceChange.Properties = soaProperties;
32253
32278
  try {
32254
32279
  if (Object.keys(namespaceChange).length > 0) {
@@ -32335,13 +32360,19 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
32335
32360
  * Empty-string Description is intentionally allowed through
32336
32361
  * (`!== undefined` gate, not truthy) so `cdkd drift --revert` can clear a
32337
32362
  * console-side ADD.
32363
+ *
32364
+ * Removal reset (issue #1160): `HttpNamespaceChange` MERGES conceptually
32365
+ * (skipping the call keeps the live value), so a Description REMOVED from
32366
+ * the template must be cleared explicitly via the `''` sentinel — the
32367
+ * CFn-parity shape, live A/B'd 2026-08-11 on this exact kind.
32338
32368
  */
32339
32369
  async updateHttpNamespace(logicalId, physicalId, resourceType, properties, previousProperties) {
32340
32370
  this.logger.debug(`Updating HTTP namespace ${logicalId}: ${physicalId}`);
32341
32371
  const client = this.getClient();
32372
+ const description = clearOnUpdateRemoval(properties["Description"], previousProperties["Description"], "");
32342
32373
  try {
32343
- if (properties["Description"] !== void 0) {
32344
- const namespaceChange = { Description: properties["Description"] };
32374
+ if (description !== void 0) {
32375
+ const namespaceChange = { Description: description };
32345
32376
  const operationId = (await client.send(new UpdateHttpNamespaceCommand({
32346
32377
  Id: physicalId,
32347
32378
  Namespace: namespaceChange
@@ -32410,13 +32441,20 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
32410
32441
  * `Properties.DnsProperties.SOA.TTL`. `Name` is createOnly — replacement
32411
32442
  * is routed through DELETE+CREATE upstream. Tags ride on the separate
32412
32443
  * `TagResource` / `UntagResource` APIs (see {@link syncNamespaceTags}).
32444
+ *
32445
+ * Removal resets (issue #1160): the change object MERGES (absent = "no
32446
+ * change"), so a Description / SOA.TTL REMOVED from the template must be
32447
+ * reset explicitly — Description via the `''` clear sentinel, TTL to the
32448
+ * kind's Cloud Map default ({@link PUBLIC_DNS_NAMESPACE_DEFAULT_SOA_TTL}) —
32449
+ * the CFn-parity shape, live A/B'd 2026-08-11 on this exact kind.
32413
32450
  */
32414
32451
  async updatePublicDnsNamespace(logicalId, physicalId, resourceType, properties, previousProperties) {
32415
32452
  this.logger.debug(`Updating public DNS namespace ${logicalId}: ${physicalId}`);
32416
32453
  const client = this.getClient();
32417
32454
  const namespaceChange = {};
32418
- if (properties["Description"] !== void 0) namespaceChange.Description = properties["Description"];
32419
- const soaProperties = this.extractSoaTtlProperties(properties);
32455
+ const description = clearOnUpdateRemoval(properties["Description"], previousProperties["Description"], "");
32456
+ if (description !== void 0) namespaceChange.Description = description;
32457
+ const soaProperties = this.resolveSoaTtlChange(properties, previousProperties, PUBLIC_DNS_NAMESPACE_DEFAULT_SOA_TTL);
32420
32458
  if (soaProperties) namespaceChange.Properties = soaProperties;
32421
32459
  try {
32422
32460
  if (Object.keys(namespaceChange).length > 0) {
@@ -32595,6 +32633,20 @@ var ServiceDiscoveryProvider = class ServiceDiscoveryProvider {
32595
32633
  return soa?.TTL !== void 0 ? { DnsProperties: { SOA: { TTL: Number(soa.TTL) } } } : void 0;
32596
32634
  }
32597
32635
  /**
32636
+ * Resolve the SOA-TTL entry for an Update*Namespace change object,
32637
+ * including the REMOVAL reset (issue #1160): a TTL present in the desired
32638
+ * template passes through; a TTL absent from the desired template but
32639
+ * present in the previous one is reset to the Cloud Map default
32640
+ * the caller-supplied per-kind default (the CFn-parity shape — the change
32641
+ * object merges, so skipping it would silently keep the customized TTL).
32642
+ * Never-present stays absent (no change entry).
32643
+ */
32644
+ resolveSoaTtlChange(properties, previousProperties, defaultTtl) {
32645
+ const desired = this.extractSoaTtlProperties(properties);
32646
+ if (desired) return desired;
32647
+ if (this.extractSoaTtlProperties(previousProperties)) return { DnsProperties: { SOA: { TTL: defaultTtl } } };
32648
+ }
32649
+ /**
32598
32650
  * Resolve a namespace's ARN — authoritative via `GetNamespace`, with a
32599
32651
  * deterministic STS-based construction as fallback so a transient read
32600
32652
  * failure right after create does not fail the whole resource.
@@ -67352,7 +67404,7 @@ function createMigrateCommand() {
67352
67404
  */
67353
67405
  function buildProgram() {
67354
67406
  const program = new Command();
67355
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.278.43");
67407
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.278.44");
67356
67408
  program.hook("preAction", (_thisCommand, actionCommand) => {
67357
67409
  const { profile } = actionCommand.optsWithGlobals();
67358
67410
  if (profile !== void 0) process.env["AWS_PROFILE"] = profile;