@go-to-k/cdkd 0.278.34 → 0.278.35

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.
@@ -9141,6 +9141,54 @@ async function applyRoleArnIfSet(opts) {
9141
9141
  * is why `KinesisProvider`'s read of `previousProperties.StreamModeDetails`
9142
9142
  * is deliberately left unguarded.
9143
9143
  *
9144
+ * **The `??` spelling has the same failure mode (issue #1493), and it defaults
9145
+ * on MORE than `||` did.** The #1471 sweep measured the `||` form;
9146
+ * `(cfg['K'] as string) ?? 'default'` substitutes on the same `undefined` a
9147
+ * malformed container indexes to, and ALSO on an explicit `null` — so a
9148
+ * `{ Comment: null }` that used to default now refuses, per rule 4.
9149
+ *
9150
+ * Measuring it is the part worth copying, because the obvious grep is wrong.
9151
+ * `\] \?\? '` finds NONE of the real sites (the cast sits inside the parens) and
9152
+ * the cast-word form `as [A-Za-z]+\) \?\? '` misses every `as string | undefined`
9153
+ * / quoted-union / line-wrapped site — including four this change rolls. The
9154
+ * class-covering pattern is `as [A-Za-z<>,| ]+\) \?\? '` (20 sites in
9155
+ * `providers/` on the pre-fix tree), plus a hand pass for the wrapped ones.
9156
+ *
9157
+ * ROLLED here: the 9 sites that INDEX A NESTED CONTAINER — CodeBuild
9158
+ * `Source` / `SecondarySources[]` / `Artifacts` / `SecondaryArtifacts[]` and
9159
+ * `Environment.{Type,ComputeType}`, DynamoDB GlobalTable
9160
+ * `StreamSpecification`, Route 53 `HostedZoneConfig` (create + update),
9161
+ * CloudFront OAI config (create + update), ECS `DeploymentController` — plus
9162
+ * the two `AWS::Lambda::Url` `AuthType` sites the #1471 sweep's
9163
+ * cast-specific grep missed (`as FunctionUrlAuthType`, not `as string`),
9164
+ * where the default is a PUBLIC function URL.
9165
+ *
9166
+ * Deliberately NOT rolled, so the decision is challengeable rather than
9167
+ * invisible:
9168
+ *
9169
+ * - **TOP-LEVEL `properties['X'] ?? 'default'` reads** (EC2 `InstanceType` /
9170
+ * `Domain`, API Gateway `AuthorizationType`, IAM access-key `Status`, Lambda
9171
+ * event-invoke `Qualifier`, RDS DB-proxy `TargetGroupName`, GlobalTable
9172
+ * `BillingMode` on create and on the desired side of update). The container
9173
+ * is the provider's own property bag, so rule 2 cannot fire; only rules 3/4
9174
+ * would apply, and refusing a present-but-non-string value there is a
9175
+ * stricter-value decision with its own regression surface (an unquoted YAML
9176
+ * `IpProtocol: -1` is a NUMBER today and deploys fine). Tracked as issue #1513.
9177
+ * - **Nested reads whose value is an identity key or a label, never sent to
9178
+ * AWS**: EC2's `rule['IpProtocol'] ?? '-1'` (composes a physical id and is
9179
+ * read from BOTH the previous and next rule), `agentcore-evaluator`'s
9180
+ * `(tag as Record<string, unknown>)['Value'] ?? ''`, and S3's three
9181
+ * `rule['Id'] ?? '<unnamed>'` warning labels. These ARE nested containers —
9182
+ * rule 2 could fire — but a refusal would buy nothing.
9183
+ * - **`EC2Provider`'s two `VpcId ?? ''` reads** — they populate the returned
9184
+ * ATTRIBUTE cache only, and `CreateSecurityGroup` already forwards the same
9185
+ * value, so AWS rejects a malformed one first. On the create site a guard
9186
+ * would additionally throw AFTER a successful create and orphan the security
9187
+ * group.
9188
+ * - **Reads off the PREVIOUS / state side** (GlobalTable `previousProperties`
9189
+ * `BillingMode`, RDS DB-proxy `delete()` / `readCurrentState`) — the
9190
+ * desired-side-only rule above.
9191
+ *
9144
9192
  * This is a provider-layer guard rather than a pre-flight template check
9145
9193
  * because **rule 4** is only decidable AFTER intrinsic resolution: at pre-flight
9146
9194
  * time a legitimate `Fn::If`-valued block is an object whose `Status` key does
@@ -9205,6 +9253,26 @@ function requireConfigString(value, fallback, path) {
9205
9253
  return value;
9206
9254
  }
9207
9255
  /**
9256
+ * Refuse a present-but-non-ARRAY value where a CFn LIST block belongs.
9257
+ *
9258
+ * The list-shaped sibling of {@link readConfigString}, for the container one
9259
+ * level up from a per-item mapper. Without it a truthy non-array
9260
+ * (`SecondarySources: 'GITHUB'`) reaches `.map` and dies with a raw
9261
+ * `TypeError: … .map is not a function`, and a FALSY one (`''`) is silently
9262
+ * dropped by the truthiness gate that usually guards these — the same class
9263
+ * `readConfigString` exists for, one level up (issue #1493 review).
9264
+ *
9265
+ * Callers keep the ABSENT case themselves (`== null ? undefined : …`), because
9266
+ * an absent list block legitimately means "no entries" and the caller's own
9267
+ * `undefined` is what the SDK expects.
9268
+ *
9269
+ * @throws Error when the value is not an array.
9270
+ */
9271
+ function requireConfigArray(value, path) {
9272
+ if (!Array.isArray(value)) throw new Error(`${path} must be an array (got ${describe(value)}) — check for an unresolved intrinsic or a mis-nested template value`);
9273
+ return value;
9274
+ }
9275
+ /**
9208
9276
  * A plain object, i.e. something a CFn config block can legitimately be.
9209
9277
  * Arrays are excluded on purpose: an array where an object belongs is one of
9210
9278
  * the malformed shapes this module exists to catch, and `typeof [] === 'object'`
@@ -12584,7 +12652,7 @@ var CloudControlProvider = class {
12584
12652
  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);
12585
12653
  if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
12586
12654
  this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
12587
- const { ASGProvider } = await import("./asg-provider-Cta08VYI.js").then((n) => n.n);
12655
+ const { ASGProvider } = await import("./asg-provider-8XxBHtzK.js").then((n) => n.n);
12588
12656
  await new ASGProvider().delete(logicalId, physicalId, resourceType, _properties, context);
12589
12657
  return;
12590
12658
  }
@@ -19081,7 +19149,7 @@ const FLUSH_INTERVAL_MS = 2e3;
19081
19149
  const FLUSH_EVENT_THRESHOLD = 50;
19082
19150
  /** Build-time cdkd version, with a dev fallback for non-built contexts. */
19083
19151
  function getCdkdVersion() {
19084
- return "0.278.34";
19152
+ return "0.278.35";
19085
19153
  }
19086
19154
  /**
19087
19155
  * Generate a time-sortable unique run id, e.g.
@@ -21192,5 +21260,5 @@ var DeployEngine = class {
21192
21260
  };
21193
21261
 
21194
21262
  //#endregion
21195
- export { withRetry as $, getAwsClients as $t, red as A, synthesisStatusMessage as At, isTerminationProtectionPropagationError as B, stateBucketExistenceConfirmed as Bt, isStatefulRecreateTargetSync as C, normalizeAwsError as Cn, formatDockerLoginError as Ct, cyan as D, AssetManifestLoader as Dt, bold as E, runDockerStreaming as Et, ProviderRegistry as F, resolveCaptureObservedState as Ft, normalizeAwsTagsToCfn as G, findLargeInlineResources as Gt, cfnRefValueFromPhysicalId as H, CFN_TEMPLATE_BODY_LIMIT as Ht, findActionableSilentDrops as I, resolveSkipPrefix as It, readConfigString as J, AssemblyReader as Jt, resolveExplicitPhysicalId as K, uploadCfnTemplate as Kt, CloudControlProvider as L, resolveStateBucketWithDefault as Lt, IAMRoleProvider as M, getLegacyStateBucketName as Mt, collectInlinePolicyNamesManagedBySiblings as N, resolveApp as Nt, gray as O, getDockerImageBySourceHash as Ot, clearOnUpdateRemoval as P, resolveAutoAssetStorage as Pt, describeTypeWithThrottleRetry as Q, AwsClients as Qt, slowCcOperationTimeoutMs as R, resolveStateBucketWithDefaultAndSource as Rt, MULTI_REGION_RECREATE_BLOCKED_TYPES as S, isCdkdError as Sn, buildDockerImage as St, formatResourceLine as T, __exportAll as Tn, runDockerForeground as Tt, refStateLookupFromResource as U, CFN_TEMPLATE_URL_LIMIT as Ut, IntrinsicFunctionResolver as V, warnDeprecatedNoPrefixCliFlag as Vt, WAFv2WebACLProvider as W, MIGRATE_TMP_PREFIX as Wt, applyRoleArnIfSet as X, clearBucketRegionCache as Xt, requireConfigString as Y, processStackMessages as Yt, DiffCalculator as Z, resolveBucketRegion as Zt, createPreDeleteFinalSnapshot as _, StackHasActiveImportsError as _n, ensureAssetStorage as _t, DeploymentEventsStore as a, DependencyError as an, S3StateBackend as at, unsupportedFinalSnapshotError as b, SynthesisError as bn, validateAssetBucketName as bt, replayFailedOperations as c, LocalMigrateError as cn, AssetPublisher as ct, IMPLICIT_DELETE_DEPENDENCIES as d, MissingCdkCliError as dn, buildAssetRedirectMap as dt, resetAwsClients as en, isRetryableTransientError as et, computeImplicitDeleteEdges as f, NestedStackChildDirectDestroyError as fn, createAssetRedirectResolver as ft, ccRoutedFinalSnapshotError as g, ResourceUpdateNotSupportedError as gn, BOOTSTRAP_MARKER_PREFIX as gt, buildFinalSnapshotIdentifier as h, ResourceTimeoutError as hn, AssetModeResolver as ht, DeploymentEventsReader as i, ConfigError as in, LockManager as it, yellow as j, getDefaultStateBucketName as jt, green as k, Synthesizer as kt, replayRollback as l, LocalStartServiceError as ln, stringifyValue as lt, PRE_DELETE_SNAPSHOT_TYPES as m, ProvisioningError as mn, rewriteTemplateAssetReferences as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, AssetError as nn, DagBuilder as nt, planFailedOps as o, DeployCancelledError as on, rebuildClientForBucketRegion as ot, ATOMIC_FINAL_SNAPSHOT_TYPES as p, PartialFailureError as pn, loadPublishableAssetManifest as pt, assertRegionMatch as q, expectedOwnerParam as qt, DeployEngine as r, CdkdError as rn, TemplateParser as rt, planRollback as s, LocalInvokeBuildError as sn, shouldRetainResource as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, setAwsClients as tn, isThrottlingError as tt, withResourceDeadline as u, LockError as un, WorkGraph as ut, isFinalSnapshotError as v, StackTerminationProtectionError as vn, getBootstrapMarkerKey as vt, renderStatefulReason as w, withErrorHandling as wn, getDockerCmd as wt, extractDeploymentEventError as x, formatError as xn, validateContainerRepoName as xt, refusesFinalSnapshot as y, StateError as yn, parseBootstrapMarker as yt, disableInstanceApiTermination as z, resolveUseCdkBootstrapAssets as zt };
21196
- //# sourceMappingURL=deploy-engine-Dp2u4Ktr.js.map
21263
+ export { describeTypeWithThrottleRetry as $, AwsClients as $t, red as A, Synthesizer as At, isTerminationProtectionPropagationError as B, resolveUseCdkBootstrapAssets as Bt, isStatefulRecreateTargetSync as C, isCdkdError as Cn, buildDockerImage as Ct, cyan as D, runDockerStreaming as Dt, bold as E, __exportAll as En, runDockerForeground as Et, ProviderRegistry as F, resolveAutoAssetStorage as Ft, normalizeAwsTagsToCfn as G, MIGRATE_TMP_PREFIX as Gt, cfnRefValueFromPhysicalId as H, warnDeprecatedNoPrefixCliFlag as Ht, findActionableSilentDrops as I, resolveCaptureObservedState as It, readConfigString as J, expectedOwnerParam as Jt, resolveExplicitPhysicalId as K, findLargeInlineResources as Kt, CloudControlProvider as L, resolveSkipPrefix as Lt, IAMRoleProvider as M, getDefaultStateBucketName as Mt, collectInlinePolicyNamesManagedBySiblings as N, getLegacyStateBucketName as Nt, gray as O, AssetManifestLoader as Ot, clearOnUpdateRemoval as P, resolveApp as Pt, DiffCalculator as Q, resolveBucketRegion as Qt, slowCcOperationTimeoutMs as R, resolveStateBucketWithDefault as Rt, MULTI_REGION_RECREATE_BLOCKED_TYPES as S, formatError as Sn, validateContainerRepoName as St, formatResourceLine as T, withErrorHandling as Tn, getDockerCmd as Tt, refStateLookupFromResource as U, CFN_TEMPLATE_BODY_LIMIT as Ut, IntrinsicFunctionResolver as V, stateBucketExistenceConfirmed as Vt, WAFv2WebACLProvider as W, CFN_TEMPLATE_URL_LIMIT as Wt, requireConfigString as X, processStackMessages as Xt, requireConfigArray as Y, AssemblyReader as Yt, applyRoleArnIfSet as Z, clearBucketRegionCache as Zt, createPreDeleteFinalSnapshot as _, ResourceUpdateNotSupportedError as _n, BOOTSTRAP_MARKER_PREFIX as _t, DeploymentEventsStore as a, ConfigError as an, LockManager as at, unsupportedFinalSnapshotError as b, StateError as bn, parseBootstrapMarker as bt, replayFailedOperations as c, LocalInvokeBuildError as cn, shouldRetainResource as ct, IMPLICIT_DELETE_DEPENDENCIES as d, LockError as dn, WorkGraph as dt, getAwsClients as en, withRetry as et, computeImplicitDeleteEdges as f, MissingCdkCliError as fn, buildAssetRedirectMap as ft, ccRoutedFinalSnapshotError as g, ResourceTimeoutError as gn, AssetModeResolver as gt, buildFinalSnapshotIdentifier as h, ProvisioningError as hn, rewriteTemplateAssetReferences as ht, DeploymentEventsReader as i, CdkdError as in, TemplateParser as it, yellow as j, synthesisStatusMessage as jt, green as k, getDockerImageBySourceHash as kt, replayRollback as l, LocalMigrateError as ln, AssetPublisher as lt, PRE_DELETE_SNAPSHOT_TYPES as m, PartialFailureError as mn, loadPublishableAssetManifest as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, setAwsClients as nn, isThrottlingError as nt, planFailedOps as o, DependencyError as on, S3StateBackend as ot, ATOMIC_FINAL_SNAPSHOT_TYPES as p, NestedStackChildDirectDestroyError as pn, createAssetRedirectResolver as pt, assertRegionMatch as q, uploadCfnTemplate as qt, DeployEngine as r, AssetError as rn, DagBuilder as rt, planRollback as s, DeployCancelledError as sn, rebuildClientForBucketRegion as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, resetAwsClients as tn, isRetryableTransientError as tt, withResourceDeadline as u, LocalStartServiceError as un, stringifyValue as ut, isFinalSnapshotError as v, StackHasActiveImportsError as vn, ensureAssetStorage as vt, renderStatefulReason as w, normalizeAwsError as wn, formatDockerLoginError as wt, extractDeploymentEventError as x, SynthesisError as xn, validateAssetBucketName as xt, refusesFinalSnapshot as y, StackTerminationProtectionError as yn, getBootstrapMarkerKey as yt, disableInstanceApiTermination as z, resolveStateBucketWithDefaultAndSource as zt };
21264
+ //# sourceMappingURL=deploy-engine-CWZlo2Il.js.map