@go-to-k/cdkd 0.278.17 → 0.278.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.
- package/dist/{asg-provider-1Aaq8WrB.js → asg-provider-DaP2cw8z.js} +2 -2
- package/dist/{asg-provider-1Aaq8WrB.js.map → asg-provider-DaP2cw8z.js.map} +1 -1
- package/dist/cli.js +104 -11
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-C37xsRjc.js → deploy-engine-DOQs235O.js} +3 -3
- package/dist/{deploy-engine-C37xsRjc.js.map → deploy-engine-DOQs235O.js.map} +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
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-
|
|
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-DOQs235O.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-
|
|
4
|
+
import { t as ASGProvider } from "./asg-provider-DaP2cw8z.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";
|
|
@@ -4855,8 +4855,11 @@ function mergeLegacySingular(plural, singular, onCollision) {
|
|
|
4855
4855
|
/** Coerce a CFn boolean, which may arrive as the string `"true"` / `"false"`. */
|
|
4856
4856
|
function coerceCfnBoolean(value) {
|
|
4857
4857
|
if (typeof value === "boolean") return value;
|
|
4858
|
-
if (value === "
|
|
4859
|
-
|
|
4858
|
+
if (typeof value === "string") {
|
|
4859
|
+
const lowered = value.toLowerCase();
|
|
4860
|
+
if (lowered === "true") return true;
|
|
4861
|
+
if (lowered === "false") return false;
|
|
4862
|
+
}
|
|
4860
4863
|
}
|
|
4861
4864
|
/**
|
|
4862
4865
|
* SDK Provider for AWS::S3::Bucket
|
|
@@ -5271,7 +5274,8 @@ var S3BucketProvider = class {
|
|
|
5271
5274
|
Events: l["Event"] !== void 0 ? [l["Event"]] : l["Events"],
|
|
5272
5275
|
Filter: this.cfnNotifFilterToSdk(l["Filter"])
|
|
5273
5276
|
}));
|
|
5274
|
-
|
|
5277
|
+
const eb = notifConfig["EventBridgeConfiguration"];
|
|
5278
|
+
if (eb !== void 0 && (!isPlainObject$1(eb) || coerceCfnBoolean(eb["EventBridgeEnabled"]) !== false)) cfg.EventBridgeConfiguration = {};
|
|
5275
5279
|
}
|
|
5276
5280
|
await this.s3Client.send(new PutBucketNotificationConfigurationCommand({
|
|
5277
5281
|
Bucket: bucketName,
|
|
@@ -6052,7 +6056,7 @@ var S3BucketProvider = class {
|
|
|
6052
6056
|
if (l.Filter) e["Filter"] = this.sdkNotifFilterToCfn(l.Filter);
|
|
6053
6057
|
return e;
|
|
6054
6058
|
});
|
|
6055
|
-
|
|
6059
|
+
out["EventBridgeConfiguration"] = { EventBridgeEnabled: resp.EventBridgeConfiguration !== void 0 };
|
|
6056
6060
|
return out;
|
|
6057
6061
|
}
|
|
6058
6062
|
sdkNotifFilterToCfn(filter) {
|
|
@@ -12531,6 +12535,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
12531
12535
|
}
|
|
12532
12536
|
const previousSdkIndexes = toSdkGlobalSecondaryIndexes(previousProperties, currentRegion, oldBilling);
|
|
12533
12537
|
const gsiDiff = diffGlobalSecondaryIndexes(previousSdkIndexes, toSdkGlobalSecondaryIndexes(properties, currentRegion, newBilling));
|
|
12538
|
+
const rawOnDemandDeclarations = collectRawOnDemandDeclarations(properties, currentRegion);
|
|
12534
12539
|
const previousSdkByName = /* @__PURE__ */ new Map();
|
|
12535
12540
|
for (const prev of previousSdkIndexes) if (prev.IndexName) previousSdkByName.set(prev.IndexName, prev);
|
|
12536
12541
|
for (const gsi of gsiDiff.removed) {
|
|
@@ -12560,22 +12565,27 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
12560
12565
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId);
|
|
12561
12566
|
}
|
|
12562
12567
|
for (const gsi of gsiDiff.modified) {
|
|
12563
|
-
if (
|
|
12568
|
+
if (typeof gsi.IndexName !== "string" || gsi.IndexName.length === 0) continue;
|
|
12564
12569
|
if (gsiHandledByBillingFlip.has(gsi.IndexName)) continue;
|
|
12565
12570
|
const billingFlipped = oldBilling !== newBilling;
|
|
12566
12571
|
const update = { IndexName: gsi.IndexName };
|
|
12567
12572
|
const previousOnDemand = previousSdkByName.get(gsi.IndexName)?.OnDemandThroughput;
|
|
12573
|
+
const declared = rawOnDemandDeclarations.get(gsi.IndexName);
|
|
12568
12574
|
const onDemand = { ...gsi.OnDemandThroughput };
|
|
12575
|
+
const unresolvedMembers = [];
|
|
12569
12576
|
if (!billingFlipped && previousOnDemand) {
|
|
12570
|
-
if (previousOnDemand.MaxReadRequestUnits !== void 0 && onDemand.MaxReadRequestUnits === void 0)
|
|
12571
|
-
|
|
12577
|
+
if (previousOnDemand.MaxReadRequestUnits !== void 0 && onDemand.MaxReadRequestUnits === void 0) if (declared?.readDeclared) unresolvedMembers.push("MaxReadRequestUnits");
|
|
12578
|
+
else onDemand.MaxReadRequestUnits = ON_DEMAND_LIMIT_RESET;
|
|
12579
|
+
if (previousOnDemand.MaxWriteRequestUnits !== void 0 && onDemand.MaxWriteRequestUnits === void 0) if (declared?.writeDeclared) unresolvedMembers.push("MaxWriteRequestUnits");
|
|
12580
|
+
else onDemand.MaxWriteRequestUnits = ON_DEMAND_LIMIT_RESET;
|
|
12572
12581
|
}
|
|
12582
|
+
if (unresolvedMembers.length > 0) this.logger.warn(`GSI '${gsi.IndexName}' on ${physicalId}: the template declares ${unresolvedMembers.join(" / ")} but the value did not resolve to a number, so the on-demand limit was left UNCHANGED on AWS rather than applied or cleared. This is usually an unresolved intrinsic in the template; resolve it to a literal to change the ceiling, or remove the property entirely to clear it.`);
|
|
12573
12583
|
if (Object.keys(onDemand).length > 0) update.OnDemandThroughput = onDemand;
|
|
12574
12584
|
if (!billingFlipped && gsi.ProvisionedThroughput) update.ProvisionedThroughput = gsi.ProvisionedThroughput;
|
|
12575
12585
|
const previousSdk = previousSdkByName.get(gsi.IndexName);
|
|
12576
12586
|
if (gsi.WarmThroughput !== void 0 && !deepEqual$1(gsi.WarmThroughput, previousSdk?.WarmThroughput)) update.WarmThroughput = gsi.WarmThroughput;
|
|
12577
12587
|
if (!update.ProvisionedThroughput && !update.OnDemandThroughput && !update.WarmThroughput) {
|
|
12578
|
-
if (!billingFlipped) this.logger.warn(`GSI '${gsi.IndexName}' on ${physicalId} changed in a way DynamoDB's UpdateTable cannot express (KeySchema / Projection are immutable on an existing index). Recreate the index under a new name to apply the change.`);
|
|
12588
|
+
if (!billingFlipped && unresolvedMembers.length === 0) this.logger.warn(`GSI '${gsi.IndexName}' on ${physicalId} changed in a way DynamoDB's UpdateTable cannot express (KeySchema / Projection are immutable on an existing index). Recreate the index under a new name to apply the change.`);
|
|
12579
12589
|
continue;
|
|
12580
12590
|
}
|
|
12581
12591
|
const gsiUpdate = { Update: update };
|
|
@@ -13532,6 +13542,89 @@ function toSdkGlobalSecondaryIndexes(properties, region, billingMode) {
|
|
|
13532
13542
|
return result;
|
|
13533
13543
|
}
|
|
13534
13544
|
/**
|
|
13545
|
+
* True when a CFn sub-object is nothing but an unresolved intrinsic
|
|
13546
|
+
* (`{"Fn::If": […]}` / `{"Ref": …}`), i.e. the template DID declare the block
|
|
13547
|
+
* but its value could not be resolved to a shape with members.
|
|
13548
|
+
*
|
|
13549
|
+
* Needed because presence is otherwise tested on the MEMBER key: an
|
|
13550
|
+
* intrinsic-valued block IS a record, so `asRecord` succeeds while
|
|
13551
|
+
* `['MaxReadRequestUnits']` is undefined — reporting "not declared" and firing
|
|
13552
|
+
* the destructive `-1` reset on a ceiling the template was trying to SET. That
|
|
13553
|
+
* is issue #1440 one level up from where the member test looks.
|
|
13554
|
+
*/
|
|
13555
|
+
function isUnresolvedIntrinsicBlock(value) {
|
|
13556
|
+
const record = asRecord(value);
|
|
13557
|
+
if (!record) return false;
|
|
13558
|
+
const keys = Object.keys(record);
|
|
13559
|
+
return keys.length > 0 && keys.every((k) => k === "Ref" || k.startsWith("Fn::"));
|
|
13560
|
+
}
|
|
13561
|
+
/**
|
|
13562
|
+
* Per-index RAW presence of the two per-GSI on-demand members, keyed by
|
|
13563
|
+
* `IndexName` (issue #1440).
|
|
13564
|
+
*
|
|
13565
|
+
* The per-GSI reset needs to know "did the template DROP this member", and the
|
|
13566
|
+
* only faithful answer is whether the CFn key is THERE — not whether its value
|
|
13567
|
+
* coerced. `toSdkGlobalSecondaryIndexes` runs every value through
|
|
13568
|
+
* {@link toFiniteNumber}, which returns `undefined` for a present-but-
|
|
13569
|
+
* unparseable value (an unresolved `{Ref: …}`, `''`, an object). Deciding
|
|
13570
|
+
* "dropped" from that collapsed view sent the `-1` reset for a member the
|
|
13571
|
+
* template was actively trying to SET, silently clearing the ceiling — the same
|
|
13572
|
+
* silent-wrong-action class the reset exists to remove, and the exact hazard
|
|
13573
|
+
* the table-level path was corrected for in #1434's PR.
|
|
13574
|
+
*
|
|
13575
|
+
* So this walks the same two sources as `toSdkGlobalSecondaryIndexes` — the
|
|
13576
|
+
* top-level GSI for the write half, the LOCAL replica's index entry (with the
|
|
13577
|
+
* GSI-level spelling as the documented fallback) for the read half — and
|
|
13578
|
+
* reports presence only. Keeping it beside that function is deliberate: the
|
|
13579
|
+
* two must agree on where each member lives, and a divergence between them is
|
|
13580
|
+
* exactly what would re-open the bug.
|
|
13581
|
+
*
|
|
13582
|
+
* A missing entry means "not declared", which lets the reset FIRE — i.e. the
|
|
13583
|
+
* DESTRUCTIVE direction, not a conservative one. Two DIFFERENT mechanisms keep
|
|
13584
|
+
* that safe, and neither is "the translation validates everything":
|
|
13585
|
+
* - a non-array `GlobalSecondaryIndexes` is refused LOUDLY by
|
|
13586
|
+
* `toSdkGlobalSecondaryIndexes` before any of this runs;
|
|
13587
|
+
* - a malformed per-ENTRY shape is NOT refused — it is passed through
|
|
13588
|
+
* untouched so AWS surfaces the real error — but such an entry carries no
|
|
13589
|
+
* usable `IndexName`, so the reset loop skips it before consulting this map.
|
|
13590
|
+
* Do not relax either behavior on the assumption that this helper degrades
|
|
13591
|
+
* safely on its own; it does not.
|
|
13592
|
+
*/
|
|
13593
|
+
function collectRawOnDemandDeclarations(properties, region) {
|
|
13594
|
+
const out = /* @__PURE__ */ new Map();
|
|
13595
|
+
const rawIndexes = properties["GlobalSecondaryIndexes"];
|
|
13596
|
+
if (!Array.isArray(rawIndexes)) return out;
|
|
13597
|
+
const replicas = properties["Replicas"];
|
|
13598
|
+
const localReplicaIndexes = asRecord(Array.isArray(replicas) ? replicas.find((r) => asRecord(r)?.["Region"] === region) : void 0)?.["GlobalSecondaryIndexes"];
|
|
13599
|
+
const localByName = /* @__PURE__ */ new Map();
|
|
13600
|
+
if (Array.isArray(localReplicaIndexes)) for (const entry of localReplicaIndexes) {
|
|
13601
|
+
const record = asRecord(entry);
|
|
13602
|
+
const name = record?.["IndexName"];
|
|
13603
|
+
if (record && typeof name === "string") localByName.set(name, record);
|
|
13604
|
+
}
|
|
13605
|
+
for (const entry of rawIndexes) {
|
|
13606
|
+
const gsi = asRecord(entry);
|
|
13607
|
+
const name = gsi?.["IndexName"];
|
|
13608
|
+
if (!gsi || typeof name !== "string") continue;
|
|
13609
|
+
const localEntry = localByName.get(name);
|
|
13610
|
+
const explicitOnDemand = asRecord(gsi["OnDemandThroughput"]);
|
|
13611
|
+
if (explicitOnDemand) {
|
|
13612
|
+
out.set(name, {
|
|
13613
|
+
readDeclared: explicitOnDemand["MaxReadRequestUnits"] !== void 0,
|
|
13614
|
+
writeDeclared: explicitOnDemand["MaxWriteRequestUnits"] !== void 0
|
|
13615
|
+
});
|
|
13616
|
+
continue;
|
|
13617
|
+
}
|
|
13618
|
+
const readBlocks = [localEntry?.["ReadOnDemandThroughputSettings"], gsi["ReadOnDemandThroughputSettings"]];
|
|
13619
|
+
const writeBlock = gsi["WriteOnDemandThroughputSettings"];
|
|
13620
|
+
out.set(name, {
|
|
13621
|
+
readDeclared: readBlocks.some((block) => asRecord(block)?.["MaxReadRequestUnits"] !== void 0 || isUnresolvedIntrinsicBlock(block)),
|
|
13622
|
+
writeDeclared: asRecord(writeBlock)?.["MaxWriteRequestUnits"] !== void 0 || isUnresolvedIntrinsicBlock(writeBlock)
|
|
13623
|
+
});
|
|
13624
|
+
}
|
|
13625
|
+
return out;
|
|
13626
|
+
}
|
|
13627
|
+
/**
|
|
13535
13628
|
* Translate a CFn `Replicas[].GlobalSecondaryIndexes[]` blob (the
|
|
13536
13629
|
* `ReplicaGlobalSecondaryIndexSpecification` shape) into the SDK's
|
|
13537
13630
|
* `ReplicaGlobalSecondaryIndex[]` used by `CreateReplicationGroupMemberAction`
|
|
@@ -65016,7 +65109,7 @@ function createMigrateCommand() {
|
|
|
65016
65109
|
*/
|
|
65017
65110
|
function buildProgram() {
|
|
65018
65111
|
const program = new Command();
|
|
65019
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.278.
|
|
65112
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.278.19");
|
|
65020
65113
|
program.hook("preAction", (_thisCommand, actionCommand) => {
|
|
65021
65114
|
const { profile } = actionCommand.optsWithGlobals();
|
|
65022
65115
|
if (profile !== void 0) process.env["AWS_PROFILE"] = profile;
|