@go-to-k/cdkd 0.283.6 → 0.283.7

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.
@@ -9850,6 +9850,40 @@ function s3BucketWebsiteUrl(bucketName, region) {
9850
9850
  * but a downstream refusal can still leave earlier sub-config PUTs applied —
9851
9851
  * the same exposure the pre-existing `applyOwnershipControls` throw has, and
9852
9852
  * still strictly better than a silent wrong-direction PUT.
9853
+ *
9854
+ * ## Every `onUnusable` message is a SENTENCE, and describes the READ only
9855
+ *
9856
+ * Issue #1735. Callers compose these as `${message} <their sentence>` — the
9857
+ * `.claude/rules/providers.md` per-site clause ("keep the PREVIOUS value" /
9858
+ * "SKIP the block" / "SUPPRESS the diff") is prescribed, so the appending set
9859
+ * GROWS. Two defects lived in that seam, and both are fixed HERE rather than
9860
+ * at the callers, so a future appender inherits the fix instead of repeating
9861
+ * the bug:
9862
+ *
9863
+ * 1. **Terminal punctuation.** Every message ended bare, so the composition
9864
+ * ran two sentences together (`...template-path create The mode this
9865
+ * update...`). Each `onUnusable` message now ends with a period. The
9866
+ * `throw` arms deliberately do NOT — nothing composes onto those.
9867
+ * 2. **The message must not claim an OUTCOME the caller overrides.**
9868
+ * `requireConfigString` said "Ignoring it and using the default
9869
+ * (PROVISIONED)" while `DynamoDBTableProvider`'s clause said the compared
9870
+ * mode (PAY_PER_REQUEST) "is kept" — both true of different things (what
9871
+ * the HELPER returned vs what the provider SENDS), but read as one sentence
9872
+ * the user could not tell which value reached AWS, which is the only
9873
+ * question the warning exists to answer. The helper now describes its own
9874
+ * READ ("This read falls back to the default (X)") and leaves the outcome
9875
+ * entirely to the caller. For a caller that appends NOTHING the read IS the
9876
+ * outcome, so nothing is lost there.
9877
+ *
9878
+ * `requireConfigArray` / `requireConfigObject` take (1) but NOT (2): they
9879
+ * return `undefined` and every caller SKIPS, so "Leaving this configuration
9880
+ * unapplied" is what actually happens on all of them and no caller's clause
9881
+ * contradicts it.
9882
+ *
9883
+ * Every existing assertion in this family uses `stringContaining`, so none of
9884
+ * them ever rendered the COMPOSED sentence — which is why a live run was what
9885
+ * surfaced this. `config-shape.test.ts` carries a composition block that
9886
+ * asserts the joined string directly.
9853
9887
  */
9854
9888
  /**
9855
9889
  * Read an optional string field out of a nested CFn config block, refusing a
@@ -9881,7 +9915,7 @@ function readConfigString(container, key, fallback, containerPath, options) {
9881
9915
  const detail = malformedShapeDetail(container);
9882
9916
  if (options?.onUnusable) {
9883
9917
  const named = fallback === "" ? "" : ` (${fallback})`;
9884
- options.onUnusable(`${containerPath} must be an object ${detail}. Treating the block as empty, so ${containerPath}.${key} takes its default${named} here; the same value is REFUSED on a template-path create`);
9918
+ options.onUnusable(`${containerPath} must be an object ${detail}. Treating the block as empty, so this read of ${containerPath}.${key} falls back to its default${named}; the same value is REFUSED on a template-path create.`);
9885
9919
  return fallback;
9886
9920
  }
9887
9921
  throw new Error(`${containerPath} must be an object ${detail}`);
@@ -9919,7 +9953,7 @@ function requireConfigString(value, fallback, path, options) {
9919
9953
  }
9920
9954
  const named = fallback === "" ? "" : ` (${fallback})`;
9921
9955
  if (options?.onUnusable) {
9922
- options.onUnusable(`${refusal}. Ignoring it and using the default${named} here; the same value is REFUSED on a template-path create`);
9956
+ options.onUnusable(`${refusal}. This read falls back to the default${named}; the same value is REFUSED on a template-path create.`);
9923
9957
  return fallback;
9924
9958
  }
9925
9959
  throw new Error(`${refusal}. Omit the field entirely to use the default${named}`);
@@ -9949,7 +9983,7 @@ function requireConfigArray(value, path, options) {
9949
9983
  if (!Array.isArray(value)) {
9950
9984
  const detail = malformedShapeDetail(value);
9951
9985
  if (options?.onUnusable) {
9952
- options.onUnusable(`${path} must be an array ${detail}. Leaving this configuration unapplied here; the same value is REFUSED on a template-path create`);
9986
+ options.onUnusable(`${path} must be an array ${detail}. Leaving this configuration unapplied here; the same value is REFUSED on a template-path create.`);
9953
9987
  return;
9954
9988
  }
9955
9989
  throw new Error(`${path} must be an array ${detail}`);
@@ -9960,7 +9994,7 @@ function requireConfigObject(value, path, options) {
9960
9994
  if (!isPlainObject$1(value)) {
9961
9995
  const detail = malformedShapeDetail(value);
9962
9996
  if (options?.onUnusable) {
9963
- options.onUnusable(`${path} must be an object ${detail}. Leaving this configuration unapplied here; the same value is REFUSED on a template-path create`);
9997
+ options.onUnusable(`${path} must be an object ${detail}. Leaving this configuration unapplied here; the same value is REFUSED on a template-path create.`);
9964
9998
  return;
9965
9999
  }
9966
10000
  throw new Error(`${path} must be an object ${detail}`);
@@ -13937,7 +13971,7 @@ var CloudControlProvider = class {
13937
13971
  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);
13938
13972
  if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
13939
13973
  this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
13940
- const { ASGProvider } = await import("./asg-provider-BA2wc324.js").then((n) => n.n);
13974
+ const { ASGProvider } = await import("./asg-provider-o7QsopaI.js").then((n) => n.n);
13941
13975
  return await new ASGProvider().delete(logicalId, physicalId, resourceType, _properties, context);
13942
13976
  }
13943
13977
  const isProtectedEc2Instance = context?.removeProtection === true && resourceType === "AWS::EC2::Instance";
@@ -20901,7 +20935,7 @@ const FLUSH_INTERVAL_MS = 2e3;
20901
20935
  const FLUSH_EVENT_THRESHOLD = 50;
20902
20936
  /** Build-time cdkd version, with a dev fallback for non-built contexts. */
20903
20937
  function getCdkdVersion() {
20904
- return "0.283.6";
20938
+ return "0.283.7";
20905
20939
  }
20906
20940
  /**
20907
20941
  * Generate a time-sortable unique run id, e.g.
@@ -23070,4 +23104,4 @@ var DeployEngine = class {
23070
23104
 
23071
23105
  //#endregion
23072
23106
  export { configStringRefusal as $, resolveSkipPrefix as $t, green as A, LockError as An, rewriteTemplateAssetReferences as At, slowCcOperationTimeoutMs as B, SynthesisError as Bn, formatDockerLoginError as Bt, MULTI_REGION_RECREATE_BLOCKED_TYPES as C, CdkdError as Cn, shouldRetainResource as Ct, bold as D, LocalInvokeBuildError as Dn, buildAssetRedirectMap as Dt, formatResourceLine as E, DeployCancelledError as En, WorkGraph as Et, clearOnUpdateRemoval as F, ResourceTimeoutError as Fn, parseBootstrapMarker as Ft, getAccountInfo as G, __exportAll as Gn, getDockerImageBySourceHash as Gt, isTerminationProtectionPropagationError as H, isCdkdError as Hn, runDockerForeground as Ht, ProviderRegistry as I, ResourceUpdateNotSupportedError as In, validateAssetBucketName as It, normalizeAwsTagsToCfn as J, getDefaultStateBucketName as Jt, refStateLookupFromResource as K, Synthesizer as Kt, findActionableSilentDrops as L, StackHasActiveImportsError as Ln, validateContainerRepoName as Lt, yellow as M, NestedStackChildDirectDestroyError as Mn, BOOTSTRAP_MARKER_PREFIX as Mt, IAMRoleProvider as N, PartialFailureError as Nn, ensureAssetStorage as Nt, cyan as O, LocalMigrateError as On, createAssetRedirectResolver as Ot, collectInlinePolicyNamesManagedBySiblings as P, ProvisioningError as Pn, getBootstrapMarkerKey as Pt, configBooleanRefusal as Q, resolveCaptureObservedState as Qt, findSilentDropProperties as R, StackTerminationProtectionError as Rn, buildDenyExternalAccessPolicy as Rt, extractDeploymentEventError as S, AssetError as Sn, rebuildClientForBucketRegion as St, renderStatefulReason as T, DependencyError as Tn, stringifyValue as Tt, IntrinsicFunctionResolver as U, normalizeAwsError as Un, runDockerStreaming as Ut, disableInstanceApiTermination as V, formatError as Vn, getDockerCmd as Vt, cfnRefValueFromPhysicalId as W, withErrorHandling as Wn, AssetManifestLoader as Wt, assertRegionMatch as X, resolveApp as Xt, resolveExplicitPhysicalId as Y, getLegacyStateBucketName as Yt, coerceCfnBoolean as Z, resolveAutoAssetStorage as Zt, createPreDeleteFinalSnapshot as _, resolveBucketRegion as _n, markNonRetryable as _t, DeploymentEventsStore as a, CFN_TEMPLATE_BODY_LIMIT as an, s3BucketArn as at, unsupportedFinalSnapshotError as b, resetAwsClients as bn, LockManager as bt, replayFailedOperations as c, findLargeInlineResources as cn, s3BucketRegionalDomainName as ct, IMPLICIT_DELETE_DEPENDENCIES as d, PARTITION_TABLE as dn, DiffCalculator as dt, resolveStateBucketWithDefault as en, readConfigString as et, computeImplicitDeleteEdges as f, canonicalizeRegion as fn, describeTypeWithThrottleRetry as ft, ccRoutedFinalSnapshotError as g, clearBucketRegionCache as gn, isThrottlingError as gt, buildFinalSnapshotIdentifier as h, processStackMessages as hn, isRetryableTransientError as ht, DeploymentEventsReader as i, warnDeprecatedNoPrefixCliFlag as in, requireConfigString as it, red as j, MissingCdkCliError as jn, AssetModeResolver as jt, gray as k, LocalStartServiceError as kn, loadPublishableAssetManifest as kt, replayRollback as l, uploadCfnTemplate as ln, s3BucketWebsiteUrl as lt, PRE_DELETE_SNAPSHOT_TYPES as m, AssemblyReader as mn, isMarkedNonRetryable as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, resolveUseCdkBootstrapAssets as nn, requireConfigArray as nt, planFailedOps as o, CFN_TEMPLATE_URL_LIMIT as on, s3BucketDomainName as ot, ATOMIC_FINAL_SNAPSHOT_TYPES as p, derivePartitionAndUrlSuffix as pn, withRetry as pt, WAFv2WebACLProvider as q, synthesisStatusMessage as qt, DeployEngine as r, stateBucketExistenceConfirmed as rn, requireConfigObject as rt, planRollback as s, MIGRATE_TMP_PREFIX as sn, s3BucketDualStackDomainName as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, resolveStateBucketWithDefaultAndSource as tn, replayWarn as tt, withResourceDeadline as u, expectedOwnerParam as un, applyRoleArnIfSet as ut, isFinalSnapshotError as v, AwsClients as vn, DagBuilder as vt, isStatefulRecreateTargetSync as w, ConfigError as wn, AssetPublisher as wt, makeCanonicalizePropertiesFn as x, setAwsClients as xn, S3StateBackend as xt, refusesFinalSnapshot as y, getAwsClients as yn, TemplateParser as yt, CloudControlProvider as z, StateError as zn, buildDockerImage as zt };
23073
- //# sourceMappingURL=deploy-engine-DaEsg4mn.js.map
23107
+ //# sourceMappingURL=deploy-engine-CKpBSlde.js.map