@go-to-k/cdkd 0.281.18 → 0.281.19

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.
@@ -9571,6 +9571,63 @@ function configStringRefusal(container, key, fallback, containerPath, options) {
9571
9571
  if (!isPlainObject$1(container)) return `${containerPath} must be an object ${malformedShapeDetail(container)}`;
9572
9572
  return configValueRefusal(container[key], fallback, `${containerPath}.${key}`, options);
9573
9573
  }
9574
+ /**
9575
+ * Coerce a CFn boolean, which may arrive as the string `"true"` / `"false"`.
9576
+ *
9577
+ * CloudFormation is stringly typed and cdkd is not, so a hand-written or
9578
+ * imported template legitimately spells a boolean as a string. Case-insensitive
9579
+ * on purpose: CDK renders lowercase, but this also feeds
9580
+ * `AWS::S3::Bucket NotificationConfiguration.EventBridgeConfiguration` (issue
9581
+ * #1430), where "not false" means "enable" — so a `'False'` that fell through to
9582
+ * `undefined` would silently ENABLE EventBridge delivery, the exact inversion
9583
+ * #1430 fixed.
9584
+ *
9585
+ * Lives here rather than in the one provider that used to own it because
9586
+ * {@link configBooleanRefusal} must run the SAME primitive the wire read runs;
9587
+ * a second hand-written test would disagree with it on exactly the interesting
9588
+ * values, which is the guard-mismatch shape this module exists to stop.
9589
+ *
9590
+ * @returns the boolean, or `undefined` when the value is not one.
9591
+ */
9592
+ function coerceCfnBoolean(value) {
9593
+ if (typeof value === "boolean") return value;
9594
+ if (typeof value === "string") {
9595
+ const lowered = value.toLowerCase();
9596
+ if (lowered === "true") return true;
9597
+ if (lowered === "false") return false;
9598
+ }
9599
+ }
9600
+ /**
9601
+ * The BOOLEAN twin of {@link configStringRefusal} — the refusal SENTENCE for a
9602
+ * config member that is read as a boolean, with no action clause attached.
9603
+ *
9604
+ * Same two halves in the same order (CONTAINER, then FIELD) and the same
9605
+ * shared detail clause, so a boolean guard and a string guard on sibling
9606
+ * members of one block cannot word the same fault differently. The FIELD half
9607
+ * is `coerceCfnBoolean`, i.e. literally the function the wire read calls, per
9608
+ * this module's "share the predicate, never restate it" rule.
9609
+ *
9610
+ * It exists because a boolean member read as `x ?? <default>` is the one shape
9611
+ * neither string guard can see: `??` treats a DECLARED `null` as absent and
9612
+ * substitutes the default, which for `AWS::S3::Bucket
9613
+ * InventoryConfigurations[].Enabled` meant a declared `Enabled: null` went on
9614
+ * the wire as `true` — a report the template may have been disabling, ENABLED
9615
+ * with no warning anywhere (issue #1751). Its string siblings on the same item
9616
+ * are SKIP-guarded (#1595) or warn-and-substitute (#1670); this was the one
9617
+ * member that silently coerced.
9618
+ *
9619
+ * @returns The refusal sentence (`<path> must be …`), or `undefined` when the
9620
+ * value is usable — including the ABSENT container / ABSENT key cases, which
9621
+ * legitimately take the caller's default.
9622
+ */
9623
+ function configBooleanRefusal(container, key, containerPath) {
9624
+ if (container === void 0 || container === null) return void 0;
9625
+ if (!isPlainObject$1(container)) return `${containerPath} must be an object ${malformedShapeDetail(container)}`;
9626
+ const value = container[key];
9627
+ if (value === void 0) return void 0;
9628
+ if (coerceCfnBoolean(value) !== void 0) return void 0;
9629
+ return `${containerPath}.${key} must be a boolean ${malformedShapeDetail(value)}`;
9630
+ }
9574
9631
  /** The FIELD half of {@link configStringRefusal}, shared with {@link requireConfigString}. */
9575
9632
  function configValueRefusal(value, fallback, path, options) {
9576
9633
  if (value === void 0) return void 0;
@@ -13455,7 +13512,7 @@ var CloudControlProvider = class {
13455
13512
  if (context?.finalSnapshotIdentifier !== void 0) throw new ProvisioningError(`${logicalId} (${resourceType}) requires a final snapshot (DeletionPolicy: Snapshot), but the Cloud Control API delete route has no final-snapshot parameter. Re-run with --skip-final-snapshot after snapshotting manually, or retain the resource.`, resourceType, logicalId, physicalId);
13456
13513
  if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
13457
13514
  this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
13458
- const { ASGProvider } = await import("./asg-provider-CRgl7pV6.js").then((n) => n.n);
13515
+ const { ASGProvider } = await import("./asg-provider-CE-lwlgZ.js").then((n) => n.n);
13459
13516
  await new ASGProvider().delete(logicalId, physicalId, resourceType, _properties, context);
13460
13517
  return;
13461
13518
  }
@@ -20363,7 +20420,7 @@ const FLUSH_INTERVAL_MS = 2e3;
20363
20420
  const FLUSH_EVENT_THRESHOLD = 50;
20364
20421
  /** Build-time cdkd version, with a dev fallback for non-built contexts. */
20365
20422
  function getCdkdVersion() {
20366
- return "0.281.18";
20423
+ return "0.281.19";
20367
20424
  }
20368
20425
  /**
20369
20426
  * Generate a time-sortable unique run id, e.g.
@@ -22531,5 +22588,5 @@ var DeployEngine = class {
22531
22588
  };
22532
22589
 
22533
22590
  //#endregion
22534
- export { replayWarn as $, findLargeInlineResources as $t, green as A, isCdkdError as An, buildDockerImage as At, slowCcOperationTimeoutMs as B, getLegacyStateBucketName as Bt, MULTI_REGION_RECREATE_BLOCKED_TYPES as C, ResourceTimeoutError as Cn, BOOTSTRAP_MARKER_PREFIX as Ct, bold as D, StateError as Dn, validateAssetBucketName as Dt, formatResourceLine as E, StackTerminationProtectionError as En, parseBootstrapMarker as Et, clearOnUpdateRemoval as F, AssetManifestLoader as Ft, getAccountInfo as G, resolveStateBucketWithDefault as Gt, isTerminationProtectionPropagationError as H, resolveAutoAssetStorage as Ht, ProviderRegistry as I, getDockerImageBySourceHash as It, normalizeAwsTagsToCfn as J, stateBucketExistenceConfirmed as Jt, refStateLookupFromResource as K, resolveStateBucketWithDefaultAndSource as Kt, findActionableSilentDrops as L, Synthesizer as Lt, yellow as M, withErrorHandling as Mn, getDockerCmd as Mt, IAMRoleProvider as N, __exportAll as Nn, runDockerForeground as Nt, cyan as O, SynthesisError as On, validateContainerRepoName as Ot, collectInlinePolicyNamesManagedBySiblings as P, runDockerStreaming as Pt, readConfigString as Q, MIGRATE_TMP_PREFIX as Qt, findSilentDropProperties as R, synthesisStatusMessage as Rt, extractDeploymentEventError as S, ProvisioningError as Sn, AssetModeResolver as St, renderStatefulReason as T, StackHasActiveImportsError as Tn, getBootstrapMarkerKey as Tt, IntrinsicFunctionResolver as U, resolveCaptureObservedState as Ut, disableInstanceApiTermination as V, resolveApp as Vt, cfnRefValueFromPhysicalId as W, resolveSkipPrefix as Wt, assertRegionMatch as X, CFN_TEMPLATE_BODY_LIMIT as Xt, resolveExplicitPhysicalId as Y, warnDeprecatedNoPrefixCliFlag as Yt, configStringRefusal as Z, CFN_TEMPLATE_URL_LIMIT as Zt, createPreDeleteFinalSnapshot as _, LocalStartServiceError as _n, WorkGraph as _t, DeploymentEventsStore as a, resolveBucketRegion as an, describeTypeWithThrottleRetry as at, unsupportedFinalSnapshotError as b, NestedStackChildDirectDestroyError as bn, loadPublishableAssetManifest as bt, replayFailedOperations as c, resetAwsClients as cn, isThrottlingError as ct, IMPLICIT_DELETE_DEPENDENCIES as d, CdkdError as dn, LockManager as dt, uploadCfnTemplate as en, requireConfigArray as et, computeImplicitDeleteEdges as f, ConfigError as fn, S3StateBackend as ft, ccRoutedFinalSnapshotError as g, LocalMigrateError as gn, stringifyValue as gt, buildFinalSnapshotIdentifier as h, LocalInvokeBuildError as hn, AssetPublisher as ht, DeploymentEventsReader as i, clearBucketRegionCache as in, DiffCalculator as it, red as j, normalizeAwsError as jn, formatDockerLoginError as jt, gray as k, formatError as kn, derivePartitionAndUrlSuffix as kt, replayRollback as l, setAwsClients as ln, DagBuilder as lt, PRE_DELETE_SNAPSHOT_TYPES as m, DeployCancelledError as mn, shouldRetainResource as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, AssemblyReader as nn, requireConfigString as nt, planFailedOps as o, AwsClients as on, withRetry as ot, ATOMIC_FINAL_SNAPSHOT_TYPES as p, DependencyError as pn, rebuildClientForBucketRegion as pt, WAFv2WebACLProvider as q, resolveUseCdkBootstrapAssets as qt, DeployEngine as r, processStackMessages as rn, applyRoleArnIfSet as rt, planRollback as s, getAwsClients as sn, isRetryableTransientError as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, expectedOwnerParam as tn, requireConfigObject as tt, withResourceDeadline as u, AssetError as un, TemplateParser as ut, isFinalSnapshotError as v, LockError as vn, buildAssetRedirectMap as vt, isStatefulRecreateTargetSync as w, ResourceUpdateNotSupportedError as wn, ensureAssetStorage as wt, makeCanonicalizePropertiesFn as x, PartialFailureError as xn, rewriteTemplateAssetReferences as xt, refusesFinalSnapshot as y, MissingCdkCliError as yn, createAssetRedirectResolver as yt, CloudControlProvider as z, getDefaultStateBucketName as zt };
22535
- //# sourceMappingURL=deploy-engine-D-0t_IlI.js.map
22591
+ export { configStringRefusal as $, CFN_TEMPLATE_URL_LIMIT as $t, green as A, SynthesisError as An, validateContainerRepoName as At, slowCcOperationTimeoutMs as B, synthesisStatusMessage as Bt, MULTI_REGION_RECREATE_BLOCKED_TYPES as C, PartialFailureError as Cn, rewriteTemplateAssetReferences as Ct, bold as D, StackHasActiveImportsError as Dn, getBootstrapMarkerKey as Dt, formatResourceLine as E, ResourceUpdateNotSupportedError as En, ensureAssetStorage as Et, clearOnUpdateRemoval as F, __exportAll as Fn, runDockerForeground as Ft, getAccountInfo as G, resolveCaptureObservedState as Gt, isTerminationProtectionPropagationError as H, getLegacyStateBucketName as Ht, ProviderRegistry as I, runDockerStreaming as It, normalizeAwsTagsToCfn as J, resolveStateBucketWithDefaultAndSource as Jt, refStateLookupFromResource as K, resolveSkipPrefix as Kt, findActionableSilentDrops as L, AssetManifestLoader as Lt, yellow as M, isCdkdError as Mn, buildDockerImage as Mt, IAMRoleProvider as N, normalizeAwsError as Nn, formatDockerLoginError as Nt, cyan as O, StackTerminationProtectionError as On, parseBootstrapMarker as Ot, collectInlinePolicyNamesManagedBySiblings as P, withErrorHandling as Pn, getDockerCmd as Pt, configBooleanRefusal as Q, CFN_TEMPLATE_BODY_LIMIT as Qt, findSilentDropProperties as R, getDockerImageBySourceHash as Rt, extractDeploymentEventError as S, NestedStackChildDirectDestroyError as Sn, loadPublishableAssetManifest as St, renderStatefulReason as T, ResourceTimeoutError as Tn, BOOTSTRAP_MARKER_PREFIX as Tt, IntrinsicFunctionResolver as U, resolveApp as Ut, disableInstanceApiTermination as V, getDefaultStateBucketName as Vt, cfnRefValueFromPhysicalId as W, resolveAutoAssetStorage as Wt, assertRegionMatch as X, stateBucketExistenceConfirmed as Xt, resolveExplicitPhysicalId as Y, resolveUseCdkBootstrapAssets as Yt, coerceCfnBoolean as Z, warnDeprecatedNoPrefixCliFlag as Zt, createPreDeleteFinalSnapshot as _, LocalInvokeBuildError as _n, AssetPublisher as _t, DeploymentEventsStore as a, processStackMessages as an, applyRoleArnIfSet as at, unsupportedFinalSnapshotError as b, LockError as bn, buildAssetRedirectMap as bt, replayFailedOperations as c, AwsClients as cn, withRetry as ct, IMPLICIT_DELETE_DEPENDENCIES as d, setAwsClients as dn, DagBuilder as dt, MIGRATE_TMP_PREFIX as en, readConfigString as et, computeImplicitDeleteEdges as f, AssetError as fn, TemplateParser as ft, ccRoutedFinalSnapshotError as g, DeployCancelledError as gn, shouldRetainResource as gt, buildFinalSnapshotIdentifier as h, DependencyError as hn, rebuildClientForBucketRegion as ht, DeploymentEventsReader as i, AssemblyReader as in, requireConfigString as it, red as j, formatError as jn, derivePartitionAndUrlSuffix as jt, gray as k, StateError as kn, validateAssetBucketName as kt, replayRollback as l, getAwsClients as ln, isRetryableTransientError as lt, PRE_DELETE_SNAPSHOT_TYPES as m, ConfigError as mn, S3StateBackend as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, uploadCfnTemplate as nn, requireConfigArray as nt, planFailedOps as o, clearBucketRegionCache as on, DiffCalculator as ot, ATOMIC_FINAL_SNAPSHOT_TYPES as p, CdkdError as pn, LockManager as pt, WAFv2WebACLProvider as q, resolveStateBucketWithDefault as qt, DeployEngine as r, expectedOwnerParam as rn, requireConfigObject as rt, planRollback as s, resolveBucketRegion as sn, describeTypeWithThrottleRetry as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, findLargeInlineResources as tn, replayWarn as tt, withResourceDeadline as u, resetAwsClients as un, isThrottlingError as ut, isFinalSnapshotError as v, LocalMigrateError as vn, stringifyValue as vt, isStatefulRecreateTargetSync as w, ProvisioningError as wn, AssetModeResolver as wt, makeCanonicalizePropertiesFn as x, MissingCdkCliError as xn, createAssetRedirectResolver as xt, refusesFinalSnapshot as y, LocalStartServiceError as yn, WorkGraph as yt, CloudControlProvider as z, Synthesizer as zt };
22592
+ //# sourceMappingURL=deploy-engine-DPnxkjWi.js.map