@go-to-k/cdkd 0.283.14 → 0.283.16
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-CgnPBnOS.js → asg-provider-C3dMUcV4.js} +2 -2
- package/dist/{asg-provider-CgnPBnOS.js.map → asg-provider-C3dMUcV4.js.map} +1 -1
- package/dist/cli.js +78 -16
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-B8gQpv93.js → deploy-engine-C1wXn1V7.js} +87 -18
- package/dist/deploy-engine-C1wXn1V7.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-B8gQpv93.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as coerceCfnBoolean, $t as resolveStateBucketWithDefault, A as cyan, An as MissingCdkCliError, At as AssetModeResolver, B as findSilentDropProperties, Bt as getDockerCmd, C as makeCanonicalizePropertiesFn, Ct as stringifyValue, D as renderStatefulReason, Dn as LocalMigrateError, Dt as loadPublishableAssetManifest, E as isStatefulRecreateTargetSync, En as LocalInvokeBuildError$1, Et as createAssetRedirectResolver, F as IAMRoleProvider, Fn as ResourceUpdateNotSupportedError, Ft as validateAssetBucketName, G as IntrinsicFunctionResolver, Gn as isRetryableTransientError, Gt as Synthesizer, H as slowCcOperationTimeoutMs, Hn as normalizeAwsError, Ht as runDockerStreaming, I as collectInlinePolicyNamesManagedBySiblings, In as StackHasActiveImportsError, It as validateContainerRepoName, J as refStateLookupFromResource, Jt as getLegacyStateBucketName, K as cfnRefValueFromPhysicalId, Kn as isThrottlingError, Kt as synthesisStatusMessage, L as clearOnUpdateRemoval, Ln as StackTerminationProtectionError, Lt as buildDenyExternalAccessPolicy, M as green, Mn as PartialFailureError, Mt as ensureAssetStorage, N as red, Nn as ProvisioningError, Nt as getBootstrapMarkerKey, O as formatResourceLine, On as LocalStartServiceError, Ot as rewriteTemplateAssetReferences, P as yellow, Pn as ResourceTimeoutError, Pt as parseBootstrapMarker, Q as assertRegionMatch, Qt as resolveSkipPrefix, R as ProviderRegistry, Rt as buildDockerImage, S as unsupportedFinalSnapshotError, Sn as CdkdError, St as AssetPublisher, T as MULTI_REGION_RECREATE_BLOCKED_TYPES, Tn as DeployCancelledError, Tt as buildAssetRedirectMap, U as disableInstanceApiTermination, Un as withErrorHandling, Ut as AssetManifestLoader, V as CloudControlProvider, Vt as runDockerForeground, W as isTerminationProtectionPropagationError, Wn as isMarkedNonRetryable, Wt as getDockerImageBySourceHash, X as normalizeAwsTagsToCfn, Xt as resolveAutoAssetStorage, Y as WAFv2WebACLProvider, Yt as resolveApp, Z as resolveExplicitPhysicalId, Zt as resolveCaptureObservedState, _ as buildFinalSnapshotIdentifier, _n as AwsClients, _t as TemplateParser, a as DeploymentEventsStore, an as CFN_TEMPLATE_URL_LIMIT, at as requireConfigObject, b as isFinalSnapshotError, bn as setAwsClients, bt as rebuildClientForBucketRegion, c as replayFailedOperations, cn as uploadCfnTemplate, ct as s3BucketDomainName, d as deleteSkipReason, dn as canonicalizeRegion, dt as s3BucketWebsiteUrl, en as resolveStateBucketWithDefaultAndSource, et as configBooleanRefusal, f as withResourceDeadline, fn as derivePartitionAndUrlSuffix, ft as applyRoleArnIfSet, g as PRE_DELETE_SNAPSHOT_TYPES, gn as resolveBucketRegion, gt as DagBuilder, h as ATOMIC_FINAL_SNAPSHOT_TYPES, ht as withRetry, i as DeploymentEventsReader, in as CFN_TEMPLATE_BODY_LIMIT, it as requireConfigArray, j as gray, jn as NestedStackChildDirectDestroyError, jt as BOOTSTRAP_MARKER_PREFIX, k as bold, kt as escapeRegExp, l as replayRollback, ln as expectedOwnerParam, lt as s3BucketDualStackDomainName, m as computeImplicitDeleteEdges, mn as processStackMessages, mt as describeTypeWithThrottleRetry, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as stateBucketExistenceConfirmed, nt as readConfigString, o as planFailedOps, on as MIGRATE_TMP_PREFIX, ot as requireConfigString, p as IMPLICIT_DELETE_DEPENDENCIES, pn as AssemblyReader, pt as DiffCalculator, q as getAccountInfo, qn as markNonRetryable, qt as getDefaultStateBucketName, r as DeployEngine, rn as warnDeprecatedNoPrefixCliFlag, rt as replayWarn, s as planRollback, sn as findLargeInlineResources, st as s3BucketArn, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as resolveUseCdkBootstrapAssets, tt as configStringRefusal, u as UNSPECIFIED_SKIP_REASON, un as PARTITION_TABLE, ut as s3BucketRegionalDomainName, v as ccRoutedFinalSnapshotError, vn as getAwsClients, vt as LockManager, w as extractDeploymentEventError, wt as WorkGraph, x as refusesFinalSnapshot, xt as shouldRetainResource, y as createPreDeleteFinalSnapshot, yn as resetAwsClients, yt as S3StateBackend, z as findActionableSilentDrops, zt as formatDockerLoginError } from "./deploy-engine-
|
|
2
|
+
import { $ as coerceCfnBoolean, $t as resolveStateBucketWithDefault, A as cyan, An as MissingCdkCliError, At as AssetModeResolver, B as findSilentDropProperties, Bt as getDockerCmd, C as makeCanonicalizePropertiesFn, Ct as stringifyValue, D as renderStatefulReason, Dn as LocalMigrateError, Dt as loadPublishableAssetManifest, E as isStatefulRecreateTargetSync, En as LocalInvokeBuildError$1, Et as createAssetRedirectResolver, F as IAMRoleProvider, Fn as ResourceUpdateNotSupportedError, Ft as validateAssetBucketName, G as IntrinsicFunctionResolver, Gn as isRetryableTransientError, Gt as Synthesizer, H as slowCcOperationTimeoutMs, Hn as normalizeAwsError, Ht as runDockerStreaming, I as collectInlinePolicyNamesManagedBySiblings, In as StackHasActiveImportsError, It as validateContainerRepoName, J as refStateLookupFromResource, Jt as getLegacyStateBucketName, K as cfnRefValueFromPhysicalId, Kn as isThrottlingError, Kt as synthesisStatusMessage, L as clearOnUpdateRemoval, Ln as StackTerminationProtectionError, Lt as buildDenyExternalAccessPolicy, M as green, Mn as PartialFailureError, Mt as ensureAssetStorage, N as red, Nn as ProvisioningError, Nt as getBootstrapMarkerKey, O as formatResourceLine, On as LocalStartServiceError, Ot as rewriteTemplateAssetReferences, P as yellow, Pn as ResourceTimeoutError, Pt as parseBootstrapMarker, Q as assertRegionMatch, Qt as resolveSkipPrefix, R as ProviderRegistry, Rt as buildDockerImage, S as unsupportedFinalSnapshotError, Sn as CdkdError, St as AssetPublisher, T as MULTI_REGION_RECREATE_BLOCKED_TYPES, Tn as DeployCancelledError, Tt as buildAssetRedirectMap, U as disableInstanceApiTermination, Un as withErrorHandling, Ut as AssetManifestLoader, V as CloudControlProvider, Vt as runDockerForeground, W as isTerminationProtectionPropagationError, Wn as isMarkedNonRetryable, Wt as getDockerImageBySourceHash, X as normalizeAwsTagsToCfn, Xt as resolveAutoAssetStorage, Y as WAFv2WebACLProvider, Yt as resolveApp, Z as resolveExplicitPhysicalId, Zt as resolveCaptureObservedState, _ as buildFinalSnapshotIdentifier, _n as AwsClients, _t as TemplateParser, a as DeploymentEventsStore, an as CFN_TEMPLATE_URL_LIMIT, at as requireConfigObject, b as isFinalSnapshotError, bn as setAwsClients, bt as rebuildClientForBucketRegion, c as replayFailedOperations, cn as uploadCfnTemplate, ct as s3BucketDomainName, d as deleteSkipReason, dn as canonicalizeRegion, dt as s3BucketWebsiteUrl, en as resolveStateBucketWithDefaultAndSource, et as configBooleanRefusal, f as withResourceDeadline, fn as derivePartitionAndUrlSuffix, ft as applyRoleArnIfSet, g as PRE_DELETE_SNAPSHOT_TYPES, gn as resolveBucketRegion, gt as DagBuilder, h as ATOMIC_FINAL_SNAPSHOT_TYPES, ht as withRetry, i as DeploymentEventsReader, in as CFN_TEMPLATE_BODY_LIMIT, it as requireConfigArray, j as gray, jn as NestedStackChildDirectDestroyError, jt as BOOTSTRAP_MARKER_PREFIX, k as bold, kt as escapeRegExp, l as replayRollback, ln as expectedOwnerParam, lt as s3BucketDualStackDomainName, m as computeImplicitDeleteEdges, mn as processStackMessages, mt as describeTypeWithThrottleRetry, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as stateBucketExistenceConfirmed, nt as readConfigString, o as planFailedOps, on as MIGRATE_TMP_PREFIX, ot as requireConfigString, p as IMPLICIT_DELETE_DEPENDENCIES, pn as AssemblyReader, pt as DiffCalculator, q as getAccountInfo, qn as markNonRetryable, qt as getDefaultStateBucketName, r as DeployEngine, rn as warnDeprecatedNoPrefixCliFlag, rt as replayWarn, s as planRollback, sn as findLargeInlineResources, st as s3BucketArn, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as resolveUseCdkBootstrapAssets, tt as configStringRefusal, u as UNSPECIFIED_SKIP_REASON, un as PARTITION_TABLE, ut as s3BucketRegionalDomainName, v as ccRoutedFinalSnapshotError, vn as getAwsClients, vt as LockManager, w as extractDeploymentEventError, wt as WorkGraph, x as refusesFinalSnapshot, xt as shouldRetainResource, y as createPreDeleteFinalSnapshot, yn as resetAwsClients, yt as S3StateBackend, z as findActionableSilentDrops, zt as formatDockerLoginError } from "./deploy-engine-C1wXn1V7.js";
|
|
3
3
|
import { a as getLiveRenderer, c as PATTERN_B_RESOURCE_TYPES, d as generateResourceNameWithFallback, h as withStackName, i as runStackBuffered, m as withSkipPrefix, n as getLogger, o as PATTERN_B_NAME_OPTIONS, s as PATTERN_B_NAME_PROPERTIES, u as generateResourceName } from "./logger-zRrlbaQt.js";
|
|
4
|
-
import { t as ASGProvider } from "./asg-provider-
|
|
4
|
+
import { t as ASGProvider } from "./asg-provider-C3dMUcV4.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";
|
|
@@ -2991,6 +2991,28 @@ var IAMPolicyProvider = class {
|
|
|
2991
2991
|
//#endregion
|
|
2992
2992
|
//#region src/provisioning/providers/iam-managed-policy-provider.ts
|
|
2993
2993
|
/**
|
|
2994
|
+
* Matches an AWS-managed IAM policy ARN in ANY AWS partition (issue #1815).
|
|
2995
|
+
*
|
|
2996
|
+
* AWS-managed policies are the ones whose ACCOUNT segment is the literal
|
|
2997
|
+
* `aws` — `arn:<partition>:iam::aws:policy/<path><name>` — as opposed to a
|
|
2998
|
+
* customer-managed policy, which carries a 12-digit account id. They exist
|
|
2999
|
+
* under every partition (`arn:aws-us-gov:iam::aws:policy/AdministratorAccess`
|
|
3000
|
+
* is a real, attachable ARN in GovCloud), so pinning the PARTITION segment to
|
|
3001
|
+
* the commercial `aws` recognised only a third of them.
|
|
3002
|
+
*
|
|
3003
|
+
* The partition is read OFF THE ARN rather than derived from a region through
|
|
3004
|
+
* `derivePartitionAndUrlSuffix` (`src/utils/aws-partition.ts`): that helper
|
|
3005
|
+
* answers "given a region, which partition am I in", which is the right
|
|
3006
|
+
* question when BUILDING an ARN (the seven sites PR #1834 fixed) and the wrong
|
|
3007
|
+
* one when CLASSIFYING an ARN the caller already holds. The loose
|
|
3008
|
+
* `aws[a-z0-9-]*` partition segment matches `IAM_ROLE_ARN_RE` in
|
|
3009
|
+
* `src/utils/role-arn.ts`; a closed partition list is precisely what goes
|
|
3010
|
+
* stale when AWS adds a partition, and here staleness fails DANGEROUS (see the
|
|
3011
|
+
* refusal's own comment — an unrecognised AWS-managed policy gets adopted, and
|
|
3012
|
+
* destroy then detaches it from every principal in the account).
|
|
3013
|
+
*/
|
|
3014
|
+
const AWS_MANAGED_POLICY_ARN_RE = /^arn:aws[a-z0-9-]*:iam::aws:/;
|
|
3015
|
+
/**
|
|
2994
3016
|
* AWS IAM Managed Policy Provider
|
|
2995
3017
|
*
|
|
2996
3018
|
* Implements resource provisioning for AWS::IAM::ManagedPolicy using the IAM SDK.
|
|
@@ -3002,7 +3024,7 @@ var IAMPolicyProvider = class {
|
|
|
3002
3024
|
* - Detach-before-delete cleanup (a ManagedPolicy with attached principals
|
|
3003
3025
|
* or with non-default versions cannot be deleted directly)
|
|
3004
3026
|
*
|
|
3005
|
-
* Physical id is the policy ARN (`arn
|
|
3027
|
+
* Physical id is the policy ARN (`arn:<partition>:iam::<account>:policy/<path><name>`)
|
|
3006
3028
|
* since path is part of the identity — two policies with the same name in
|
|
3007
3029
|
* different paths are distinct.
|
|
3008
3030
|
*/
|
|
@@ -3239,7 +3261,7 @@ var IAMManagedPolicyProvider = class {
|
|
|
3239
3261
|
const explicit = resolveExplicitPhysicalId(input, "ManagedPolicyName");
|
|
3240
3262
|
if (explicit) {
|
|
3241
3263
|
if (explicit.startsWith("arn:")) {
|
|
3242
|
-
if (
|
|
3264
|
+
if (AWS_MANAGED_POLICY_ARN_RE.test(explicit)) throw new Error(`Refusing to import AWS-managed policy ${explicit}: cdkd only adopts customer-managed policies. If you need to attach an AWS-managed policy to a role / user / group, reference it via ManagedPolicyArns on the principal instead.`);
|
|
3243
3265
|
try {
|
|
3244
3266
|
await this.iamClient.send(new GetPolicyCommand({ PolicyArn: explicit }));
|
|
3245
3267
|
return {
|
|
@@ -3468,7 +3490,7 @@ var IAMManagedPolicyProvider = class {
|
|
|
3468
3490
|
}
|
|
3469
3491
|
};
|
|
3470
3492
|
/**
|
|
3471
|
-
* Recover the policy name from `arn
|
|
3493
|
+
* Recover the policy name from `arn:<partition>:iam::<account>:policy/<path><name>`.
|
|
3472
3494
|
* Used to decide whether `ManagedPolicyName` was mutated relative to the
|
|
3473
3495
|
* physical id we recorded — name + path are immutable on AWS, so any
|
|
3474
3496
|
* difference is a replacement signal.
|
|
@@ -12354,6 +12376,47 @@ var LambdaUrlProvider = class {
|
|
|
12354
12376
|
|
|
12355
12377
|
//#endregion
|
|
12356
12378
|
//#region src/provisioning/providers/lambda-eventsource-provider.ts
|
|
12379
|
+
/**
|
|
12380
|
+
* Captures the SERVICE segment of an ARN in ANY AWS partition (issue #1815).
|
|
12381
|
+
*
|
|
12382
|
+
* `arn:<partition>:<service>:<region>:<account>:<rest>` — group 1 is the
|
|
12383
|
+
* service. The partition segment is matched loosely as `aws[a-z0-9-]*`, the
|
|
12384
|
+
* same shape `IAM_ROLE_ARN_RE` (`src/utils/role-arn.ts`) uses, rather than
|
|
12385
|
+
* enumerated: this classifier previously hand-listed `aws` and `aws-cn` per
|
|
12386
|
+
* service and so returned `'unknown'` for every OTHER partition — GovCloud,
|
|
12387
|
+
* all four iso partitions and `aws-eusc` — which silently disabled the
|
|
12388
|
+
* type-discriminator gating below (see the `KINDS_WITH_*` sets) and let
|
|
12389
|
+
* `cdkd drift --revert` push `FunctionResponseTypes` / `SourceAccessConfigurations`
|
|
12390
|
+
* placeholders AWS rejects. A closed partition list is exactly what goes stale
|
|
12391
|
+
* when AWS adds a partition; reading the partition off the ARN cannot.
|
|
12392
|
+
*
|
|
12393
|
+
* Note the partition is not derived from a region via
|
|
12394
|
+
* `derivePartitionAndUrlSuffix` (`src/utils/aws-partition.ts`) because this
|
|
12395
|
+
* CLASSIFIES an ARN already in hand — the partition is in the input, and no
|
|
12396
|
+
* region reaches this function.
|
|
12397
|
+
*/
|
|
12398
|
+
const ARN_SERVICE_RE = /^arn:aws[a-z0-9-]*:([^:]+):/;
|
|
12399
|
+
/**
|
|
12400
|
+
* ARN service segment -> {@link EventSourceKind}. Replaces the per-partition
|
|
12401
|
+
* `startsWith` chain; every entry is partition-independent by construction.
|
|
12402
|
+
*/
|
|
12403
|
+
const ARN_SERVICE_TO_EVENT_SOURCE_KIND = {
|
|
12404
|
+
sqs: "sqs",
|
|
12405
|
+
kinesis: "kinesis",
|
|
12406
|
+
dynamodb: "dynamodb",
|
|
12407
|
+
kafka: "kafka",
|
|
12408
|
+
mq: "mq",
|
|
12409
|
+
rds: "documentdb"
|
|
12410
|
+
};
|
|
12411
|
+
/**
|
|
12412
|
+
* @internal EXPORTED for tests only (issue #1815). Every production consumer is a
|
|
12413
|
+
* `Set.has(kind)`, so the `Object.hasOwn` guard below is UNOBSERVABLE through
|
|
12414
|
+
* behavior — a prototype member and `'unknown'` both miss every set. That was
|
|
12415
|
+
* measured, not assumed: a behavior-level test for it passed with the guard
|
|
12416
|
+
* reverted. Rather than ship an unverifiable guard or a test that only looks
|
|
12417
|
+
* like one, the classifier's RETURN VALUE is asserted directly. Do not read the
|
|
12418
|
+
* export as an invitation to call this from outside the provider.
|
|
12419
|
+
*/
|
|
12357
12420
|
function classifyEventSource(resp) {
|
|
12358
12421
|
if (resp.SelfManagedEventSource !== void 0) return "kafka";
|
|
12359
12422
|
if (resp.SelfManagedKafkaEventSourceConfig !== void 0) return "kafka";
|
|
@@ -12361,13 +12424,9 @@ function classifyEventSource(resp) {
|
|
|
12361
12424
|
if (resp.DocumentDBEventSourceConfig !== void 0) return "documentdb";
|
|
12362
12425
|
const arn = resp.EventSourceArn;
|
|
12363
12426
|
if (!arn) return "unknown";
|
|
12364
|
-
|
|
12365
|
-
if (
|
|
12366
|
-
|
|
12367
|
-
if (arn.startsWith("arn:aws:kafka:") || arn.startsWith("arn:aws-cn:kafka:")) return "kafka";
|
|
12368
|
-
if (arn.startsWith("arn:aws:mq:") || arn.startsWith("arn:aws-cn:mq:")) return "mq";
|
|
12369
|
-
if (arn.startsWith("arn:aws:rds:") || arn.startsWith("arn:aws-cn:rds:")) return "documentdb";
|
|
12370
|
-
return "unknown";
|
|
12427
|
+
const service = ARN_SERVICE_RE.exec(arn)?.[1];
|
|
12428
|
+
if (!service) return "unknown";
|
|
12429
|
+
return Object.hasOwn(ARN_SERVICE_TO_EVENT_SOURCE_KIND, service) ? ARN_SERVICE_TO_EVENT_SOURCE_KIND[service] : "unknown";
|
|
12371
12430
|
}
|
|
12372
12431
|
/**
|
|
12373
12432
|
* Classify an event source mapping from its CFn property bag (as opposed to
|
|
@@ -40209,7 +40268,7 @@ var AppSyncProvider = class {
|
|
|
40209
40268
|
const accountInfo = await getAccountInfo(regionOverride ?? this.providerRegion ?? await this.getClient().config.region());
|
|
40210
40269
|
if (accountInfo.fabricated) throw new Error(`cannot determine the AWS account (STS is unreachable, and the resolved account id is a placeholder), so an ARN for ${suffix} would be fabricated`);
|
|
40211
40270
|
const { partition } = derivePartitionAndUrlSuffix(accountInfo.region);
|
|
40212
|
-
return `arn:${partition}:appsync:${accountInfo.region}:${accountInfo.accountId}:${suffix}`;
|
|
40271
|
+
return `arn:${partition}:appsync:${canonicalizeRegion(accountInfo.region)}:${accountInfo.accountId}:${suffix}`;
|
|
40213
40272
|
}
|
|
40214
40273
|
/**
|
|
40215
40274
|
* {@link buildAppSyncArn} for the POST-CREATE sites, where throwing is not an
|
|
@@ -55372,7 +55431,10 @@ var NestedStackProvider = class {
|
|
|
55372
55431
|
...ctx.destroyOptions?.resourceWarnAfterByType && { resourceWarnAfterByType: ctx.destroyOptions.resourceWarnAfterByType },
|
|
55373
55432
|
...ctx.destroyOptions?.resourceTimeoutByType && { resourceTimeoutByType: ctx.destroyOptions.resourceTimeoutByType }
|
|
55374
55433
|
}));
|
|
55375
|
-
if (childResult.errorCount > 0)
|
|
55434
|
+
if (childResult.errorCount > 0) {
|
|
55435
|
+
const failure = new Error(nestedStackChildFailureMessage(childStackName, childResult.errorCount, childResult.skippedCount, childResult.interrupted));
|
|
55436
|
+
throw childResult.interrupted ? markNonRetryable(failure) : failure;
|
|
55437
|
+
}
|
|
55376
55438
|
if (childResult.skippedCount > 0 || childResult.interrupted) {
|
|
55377
55439
|
const causes = [];
|
|
55378
55440
|
if (childResult.skippedCount > 0) causes.push(`skipped ${childResult.skippedCount} resource(s)`);
|
|
@@ -55410,7 +55472,7 @@ var NestedStackProvider = class {
|
|
|
55410
55472
|
}
|
|
55411
55473
|
requireContext() {
|
|
55412
55474
|
const ctx = getCurrentNestedStackContext();
|
|
55413
|
-
if (!ctx) throw new Error("NestedStackProvider invoked outside withNestedStackContext() scope. The deploy / destroy CLI entry point must wrap its DeployEngine.deploy / runDestroyForStack call in withNestedStackContext(ctx, () => ...).");
|
|
55475
|
+
if (!ctx) throw markNonRetryable(/* @__PURE__ */ new Error("NestedStackProvider invoked outside withNestedStackContext() scope. The deploy / destroy CLI entry point must wrap its DeployEngine.deploy / runDestroyForStack call in withNestedStackContext(ctx, () => ...)."));
|
|
55414
55476
|
return ctx;
|
|
55415
55477
|
}
|
|
55416
55478
|
requireDeployContext(ctx, op) {
|
|
@@ -78664,7 +78726,7 @@ function createMigrateCommand() {
|
|
|
78664
78726
|
*/
|
|
78665
78727
|
function buildProgram() {
|
|
78666
78728
|
const program = new Command();
|
|
78667
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.283.
|
|
78729
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.283.16");
|
|
78668
78730
|
program.hook("preAction", (_thisCommand, actionCommand) => {
|
|
78669
78731
|
const { profile } = actionCommand.optsWithGlobals();
|
|
78670
78732
|
if (profile !== void 0) process.env["AWS_PROFILE"] = profile;
|