@go-to-k/cdkd 0.281.2 → 0.281.3
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-n21zWyH-.js → asg-provider-CBIIk31p.js} +2 -2
- package/dist/{asg-provider-n21zWyH-.js.map → asg-provider-CBIIk31p.js.map} +1 -1
- package/dist/cli.js +122 -10
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-drWGPyTA.js → deploy-engine-DFZo1Twc.js} +3 -3
- package/dist/{deploy-engine-drWGPyTA.js.map → deploy-engine-DFZo1Twc.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 requireConfigArray, $t as expectedOwnerParam, A as green, An as withErrorHandling, At as getDockerCmd, B as slowCcOperationTimeoutMs, Bt as resolveAutoAssetStorage, C as MULTI_REGION_RECREATE_BLOCKED_TYPES, Cn as StackHasActiveImportsError, Ct as ensureAssetStorage, D as bold, Dt as validateContainerRepoName, E as formatResourceLine, Et as validateAssetBucketName, F as clearOnUpdateRemoval, Ft as Synthesizer, G as refStateLookupFromResource, Gt as resolveUseCdkBootstrapAssets, H as isTerminationProtectionPropagationError, Ht as resolveSkipPrefix, I as ProviderRegistry, It as synthesisStatusMessage, J as resolveExplicitPhysicalId, Jt as CFN_TEMPLATE_BODY_LIMIT, K as WAFv2WebACLProvider, Kt as stateBucketExistenceConfirmed, L as findActionableSilentDrops, Lt as getDefaultStateBucketName, M as yellow, Mt as runDockerStreaming, N as IAMRoleProvider, Nt as AssetManifestLoader, O as cyan, Ot as buildDockerImage, P as collectInlinePolicyNamesManagedBySiblings, Pt as getDockerImageBySourceHash, Q as replayWarn, Qt as uploadCfnTemplate, R as findSilentDropProperties, Rt as getLegacyStateBucketName, S as extractDeploymentEventError, Sn as ResourceUpdateNotSupportedError, St as BOOTSTRAP_MARKER_PREFIX, T as renderStatefulReason, Tt as parseBootstrapMarker, U as IntrinsicFunctionResolver, Ut as resolveStateBucketWithDefault, V as disableInstanceApiTermination, Vt as resolveCaptureObservedState, W as cfnRefValueFromPhysicalId, Wt as resolveStateBucketWithDefaultAndSource, X as configStringRefusal, Xt as MIGRATE_TMP_PREFIX, Y as assertRegionMatch, Yt as CFN_TEMPLATE_URL_LIMIT, Z as readConfigString, Zt as findLargeInlineResources, _ as createPreDeleteFinalSnapshot, _n as MissingCdkCliError, _t as buildAssetRedirectMap, a as DeploymentEventsStore, an as getAwsClients, at as withRetry, b as unsupportedFinalSnapshotError, bn as ProvisioningError, bt as rewriteTemplateAssetReferences, c as replayFailedOperations, ct as DagBuilder, d as IMPLICIT_DELETE_DEPENDENCIES, dt as S3StateBackend, en as AssemblyReader, et as requireConfigObject, f as computeImplicitDeleteEdges, fn as DeployCancelledError, ft as rebuildClientForBucketRegion, g as ccRoutedFinalSnapshotError, gt as WorkGraph, h as buildFinalSnapshotIdentifier, hn as LocalStartServiceError, ht as stringifyValue, i as DeploymentEventsReader, in as AwsClients, it as describeTypeWithThrottleRetry, j as red, jt as runDockerForeground, k as gray, kn as normalizeAwsError, kt as formatDockerLoginError, l as replayRollback, ln as CdkdError, lt as TemplateParser, m as PRE_DELETE_SNAPSHOT_TYPES, mn as LocalMigrateError, mt as AssetPublisher, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as applyRoleArnIfSet, o as planFailedOps, on as resetAwsClients, ot as isRetryableTransientError, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as LocalInvokeBuildError$1, pt as shouldRetainResource, q as normalizeAwsTagsToCfn, qt as warnDeprecatedNoPrefixCliFlag, r as DeployEngine, rn as resolveBucketRegion, rt as DiffCalculator, s as planRollback, sn as setAwsClients, st as isThrottlingError, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as processStackMessages, tt as requireConfigString, u as withResourceDeadline, ut as LockManager, v as isFinalSnapshotError, vn as NestedStackChildDirectDestroyError, vt as createAssetRedirectResolver, w as isStatefulRecreateTargetSync, wn as StackTerminationProtectionError, wt as getBootstrapMarkerKey, x as makeCanonicalizePropertiesFn, xn as ResourceTimeoutError, xt as AssetModeResolver, y as refusesFinalSnapshot, yn as PartialFailureError, yt as loadPublishableAssetManifest, z as CloudControlProvider, zt as resolveApp } from "./deploy-engine-
|
|
2
|
+
import { $ as requireConfigArray, $t as expectedOwnerParam, A as green, An as withErrorHandling, At as getDockerCmd, B as slowCcOperationTimeoutMs, Bt as resolveAutoAssetStorage, C as MULTI_REGION_RECREATE_BLOCKED_TYPES, Cn as StackHasActiveImportsError, Ct as ensureAssetStorage, D as bold, Dt as validateContainerRepoName, E as formatResourceLine, Et as validateAssetBucketName, F as clearOnUpdateRemoval, Ft as Synthesizer, G as refStateLookupFromResource, Gt as resolveUseCdkBootstrapAssets, H as isTerminationProtectionPropagationError, Ht as resolveSkipPrefix, I as ProviderRegistry, It as synthesisStatusMessage, J as resolveExplicitPhysicalId, Jt as CFN_TEMPLATE_BODY_LIMIT, K as WAFv2WebACLProvider, Kt as stateBucketExistenceConfirmed, L as findActionableSilentDrops, Lt as getDefaultStateBucketName, M as yellow, Mt as runDockerStreaming, N as IAMRoleProvider, Nt as AssetManifestLoader, O as cyan, Ot as buildDockerImage, P as collectInlinePolicyNamesManagedBySiblings, Pt as getDockerImageBySourceHash, Q as replayWarn, Qt as uploadCfnTemplate, R as findSilentDropProperties, Rt as getLegacyStateBucketName, S as extractDeploymentEventError, Sn as ResourceUpdateNotSupportedError, St as BOOTSTRAP_MARKER_PREFIX, T as renderStatefulReason, Tt as parseBootstrapMarker, U as IntrinsicFunctionResolver, Ut as resolveStateBucketWithDefault, V as disableInstanceApiTermination, Vt as resolveCaptureObservedState, W as cfnRefValueFromPhysicalId, Wt as resolveStateBucketWithDefaultAndSource, X as configStringRefusal, Xt as MIGRATE_TMP_PREFIX, Y as assertRegionMatch, Yt as CFN_TEMPLATE_URL_LIMIT, Z as readConfigString, Zt as findLargeInlineResources, _ as createPreDeleteFinalSnapshot, _n as MissingCdkCliError, _t as buildAssetRedirectMap, a as DeploymentEventsStore, an as getAwsClients, at as withRetry, b as unsupportedFinalSnapshotError, bn as ProvisioningError, bt as rewriteTemplateAssetReferences, c as replayFailedOperations, ct as DagBuilder, d as IMPLICIT_DELETE_DEPENDENCIES, dt as S3StateBackend, en as AssemblyReader, et as requireConfigObject, f as computeImplicitDeleteEdges, fn as DeployCancelledError, ft as rebuildClientForBucketRegion, g as ccRoutedFinalSnapshotError, gt as WorkGraph, h as buildFinalSnapshotIdentifier, hn as LocalStartServiceError, ht as stringifyValue, i as DeploymentEventsReader, in as AwsClients, it as describeTypeWithThrottleRetry, j as red, jt as runDockerForeground, k as gray, kn as normalizeAwsError, kt as formatDockerLoginError, l as replayRollback, ln as CdkdError, lt as TemplateParser, m as PRE_DELETE_SNAPSHOT_TYPES, mn as LocalMigrateError, mt as AssetPublisher, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as applyRoleArnIfSet, o as planFailedOps, on as resetAwsClients, ot as isRetryableTransientError, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as LocalInvokeBuildError$1, pt as shouldRetainResource, q as normalizeAwsTagsToCfn, qt as warnDeprecatedNoPrefixCliFlag, r as DeployEngine, rn as resolveBucketRegion, rt as DiffCalculator, s as planRollback, sn as setAwsClients, st as isThrottlingError, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as processStackMessages, tt as requireConfigString, u as withResourceDeadline, ut as LockManager, v as isFinalSnapshotError, vn as NestedStackChildDirectDestroyError, vt as createAssetRedirectResolver, w as isStatefulRecreateTargetSync, wn as StackTerminationProtectionError, wt as getBootstrapMarkerKey, x as makeCanonicalizePropertiesFn, xn as ResourceTimeoutError, xt as AssetModeResolver, y as refusesFinalSnapshot, yn as PartialFailureError, yt as loadPublishableAssetManifest, z as CloudControlProvider, zt as resolveApp } from "./deploy-engine-DFZo1Twc.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-CBIIk31p.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";
|
|
@@ -33306,6 +33306,47 @@ function normalizeRecordName(name) {
|
|
|
33306
33306
|
return lowered.endsWith(".") ? lowered : `${lowered}.`;
|
|
33307
33307
|
}
|
|
33308
33308
|
/**
|
|
33309
|
+
* Is this value ONLY an unresolved intrinsic — `{Ref: …}` / `{Fn::If: […]}` —
|
|
33310
|
+
* rather than a real object with members?
|
|
33311
|
+
*
|
|
33312
|
+
* `import.ts` substitutes only single-key `{Ref}` before calling a provider,
|
|
33313
|
+
* so an element behind a condition reaches `import()` in this shape.
|
|
33314
|
+
*/
|
|
33315
|
+
function isIntrinsicOnly(value) {
|
|
33316
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) return false;
|
|
33317
|
+
const keys = Object.keys(value);
|
|
33318
|
+
return keys.length === 1 && (keys[0] === "Ref" || (keys[0] ?? "").startsWith("Fn::"));
|
|
33319
|
+
}
|
|
33320
|
+
/**
|
|
33321
|
+
* Read a hosted zone's PUBLIC-vs-PRIVATE visibility off its own template
|
|
33322
|
+
* properties (issue #1702), for the `import()` name lookup's zone filter.
|
|
33323
|
+
*
|
|
33324
|
+
* CloudFormation has no `PrivateZone` property — visibility is implied by
|
|
33325
|
+
* `VPCs`: a zone associated with at least one VPC is private, one with none is
|
|
33326
|
+
* public. So:
|
|
33327
|
+
*
|
|
33328
|
+
* - `VPCs` ABSENT -> `false` (public). This is the CDK `PublicHostedZone`
|
|
33329
|
+
* shape and by far the common one.
|
|
33330
|
+
* - an array carrying at least one element that is NOT purely an unresolved
|
|
33331
|
+
* intrinsic -> `true` (private). Such an element proves the template
|
|
33332
|
+
* attaches a VPC unconditionally, even when the `VPCId` inside it is itself
|
|
33333
|
+
* a `Ref` this provider cannot resolve.
|
|
33334
|
+
* - anything else -> `undefined` (do not narrow), and the caller's ambiguity
|
|
33335
|
+
* guard then refuses rather than adopting the wrong zone. Three shapes land
|
|
33336
|
+
* here and each would otherwise be a GUESS: a non-array (an unresolved
|
|
33337
|
+
* intrinsic is a truthy OBJECT); an EMPTY array (more likely a
|
|
33338
|
+
* condition-collapsed value than a deliberate "public"); and — the one that
|
|
33339
|
+
* is easy to miss — an array whose every element is intrinsic-only
|
|
33340
|
+
* (`[{Ref: 'AWS::NoValue'}]`, the CFn spelling of a conditionally-absent
|
|
33341
|
+
* element), which is non-empty yet may resolve to a PUBLIC zone.
|
|
33342
|
+
*/
|
|
33343
|
+
function templateZoneVisibility(properties) {
|
|
33344
|
+
const vpcs = properties["VPCs"];
|
|
33345
|
+
if (vpcs == null) return false;
|
|
33346
|
+
if (!Array.isArray(vpcs)) return void 0;
|
|
33347
|
+
return vpcs.some((v) => typeof v === "object" && v !== null && !Array.isArray(v) && !isIntrinsicOnly(v)) ? true : void 0;
|
|
33348
|
+
}
|
|
33349
|
+
/**
|
|
33309
33350
|
* Canonicalize a name for the QUERY side of a Route 53 list call.
|
|
33310
33351
|
*
|
|
33311
33352
|
* `normalizeRecordName` above is the COMPARE-side canonicalizer, and the two
|
|
@@ -34025,12 +34066,33 @@ var Route53Provider = class {
|
|
|
34025
34066
|
* Resolve HostedZoneId from properties.
|
|
34026
34067
|
* If HostedZoneId is provided, use it directly.
|
|
34027
34068
|
* If HostedZoneName is provided, resolve it to a HostedZoneId via ListHostedZonesByName.
|
|
34069
|
+
*
|
|
34070
|
+
* `options.requirePrivateZone` narrows the name match to PRIVATE (`true`) or
|
|
34071
|
+
* PUBLIC (`false`) zones before the ambiguity decision below; leave it
|
|
34072
|
+
* undefined to match either. Split-horizon DNS is exactly a public and a
|
|
34073
|
+
* private zone sharing one name, so a caller that already knows which side
|
|
34074
|
+
* it wants resolves cleanly where the ambiguity guard would otherwise
|
|
34075
|
+
* refuse. `importHostedZone` is the one caller today, deriving the answer
|
|
34076
|
+
* from the template's own `VPCs` (declared = private, absent = public);
|
|
34077
|
+
* every RecordSet caller leaves it undefined, since a record set's template
|
|
34078
|
+
* says nothing about the zone's visibility.
|
|
34079
|
+
*
|
|
34080
|
+
* `options.subject` names what is being resolved FOR in the errors this
|
|
34081
|
+
* raises, and what remedy to point at. It exists because the messages are
|
|
34082
|
+
* user-facing and this helper is no longer RecordSet-only: telling someone
|
|
34083
|
+
* adopting a hosted zone to "pass the '<zoneId>|<name>|<type>' composite"
|
|
34084
|
+
* names a physicalId shape their resource does not have.
|
|
34028
34085
|
*/
|
|
34029
34086
|
async resolveHostedZoneId(properties, logicalId, resourceType, physicalId, options) {
|
|
34087
|
+
const subject = options?.subject ?? {
|
|
34088
|
+
noun: "record set",
|
|
34089
|
+
remedy: "set HostedZoneId explicitly, or pass the '<zoneId>|<name>|<type>' composite via --resource"
|
|
34090
|
+
};
|
|
34030
34091
|
const hostedZoneId = properties["HostedZoneId"];
|
|
34031
34092
|
if (typeof hostedZoneId === "string" && hostedZoneId) return hostedZoneId;
|
|
34032
34093
|
let lookupErrorMessage;
|
|
34033
34094
|
let lookupErrorCause;
|
|
34095
|
+
const narrowing = options?.requirePrivateZone !== void 0;
|
|
34034
34096
|
const hostedZoneName = properties["HostedZoneName"];
|
|
34035
34097
|
if (typeof hostedZoneName === "string" && hostedZoneName) {
|
|
34036
34098
|
let matched = [];
|
|
@@ -34043,18 +34105,26 @@ var Route53Provider = class {
|
|
|
34043
34105
|
const zones = response.HostedZones ?? [];
|
|
34044
34106
|
const normalizedName = normalizeRecordName(hostedZoneName);
|
|
34045
34107
|
matched = zones.filter((z) => normalizeRecordName(z.Name ?? "") === normalizedName);
|
|
34046
|
-
|
|
34108
|
+
if (narrowing) matched = matched.filter((z) => (z.Config?.PrivateZone ?? false) === options?.requirePrivateZone);
|
|
34109
|
+
const sawLaterName = zones.some((z) => normalizeRecordName(z.Name ?? "") !== normalizedName);
|
|
34110
|
+
absenceIsSound = !hostedZoneName.includes("\\") && (narrowing ? sawLaterName || response.IsTruncated !== true : zones.length > 0 || response.IsTruncated !== true);
|
|
34047
34111
|
} catch (error) {
|
|
34048
34112
|
lookupErrorMessage = error instanceof Error ? error.message : String(error);
|
|
34049
34113
|
lookupErrorCause = error instanceof Error ? error : void 0;
|
|
34050
34114
|
this.logger.warn(`Failed to resolve HostedZoneName "${hostedZoneName}" for ${logicalId}: ${lookupErrorMessage}`);
|
|
34051
34115
|
}
|
|
34052
|
-
if (matched.length > 1 && options?.requireUnambiguousZoneName)
|
|
34116
|
+
if (matched.length > 1 && options?.requireUnambiguousZoneName) {
|
|
34117
|
+
const cause = narrowing ? "" : " (split-horizon public/private DNS)";
|
|
34118
|
+
throw new ProvisioningError(`HostedZoneName "${hostedZoneName}" matches ${matched.length} hosted zones for ${logicalId}${cause}. Refusing to guess which one is meant — ${subject.remedy}.`, resourceType, logicalId, physicalId);
|
|
34119
|
+
}
|
|
34053
34120
|
const matchedZone = matched[0];
|
|
34054
34121
|
if (matchedZone?.Id) return matchedZone.Id.replace("/hostedzone/", "");
|
|
34055
|
-
if (absenceIsSound)
|
|
34122
|
+
if (absenceIsSound) {
|
|
34123
|
+
const visibility = options?.requirePrivateZone === void 0 ? "" : options.requirePrivateZone ? "private " : "public ";
|
|
34124
|
+
throw new HostedZoneNameNotFoundError(`HostedZoneName "${hostedZoneName}" matches no ${visibility}hosted zone in this account/region for ${logicalId}`, resourceType, logicalId, physicalId);
|
|
34125
|
+
}
|
|
34056
34126
|
}
|
|
34057
|
-
throw new ProvisioningError(lookupErrorMessage ? `Could not resolve HostedZoneName "${String(hostedZoneName)}" for
|
|
34127
|
+
throw new ProvisioningError(lookupErrorMessage ? `Could not resolve HostedZoneName "${String(hostedZoneName)}" for ${subject.noun} ${logicalId}: ${lookupErrorMessage}` : typeof hostedZoneName === "string" && hostedZoneName ? `Could not determine whether HostedZoneName "${hostedZoneName}" exists for ${subject.noun} ${logicalId} — the hosted-zone listing ended before the name could be resolved either way, so cdkd will not assume it is absent. ${subject.remedy}.` : `Either HostedZoneId or HostedZoneName is required for ${subject.noun} ${logicalId}`, resourceType, logicalId, physicalId, lookupErrorCause);
|
|
34058
34128
|
}
|
|
34059
34129
|
/**
|
|
34060
34130
|
* Recover `(hostedZoneId, name, type)` for a record set from EITHER shape of
|
|
@@ -34232,8 +34302,10 @@ var Route53Provider = class {
|
|
|
34232
34302
|
/**
|
|
34233
34303
|
* Adopt an existing Route 53 resource into cdkd state.
|
|
34234
34304
|
*
|
|
34235
|
-
* Supported types: `AWS::Route53::HostedZone` (
|
|
34236
|
-
* `
|
|
34305
|
+
* Supported types: `AWS::Route53::HostedZone` (AUTO-RESOLVED from the
|
|
34306
|
+
* template's `Name` since issue #1702, with an explicit `--resource`
|
|
34307
|
+
* override still taking precedence);
|
|
34308
|
+
* `AWS::Route53::RecordSet` (override-only — the supplied id is
|
|
34237
34309
|
* CANONICALIZED rather than trusted, using the template's
|
|
34238
34310
|
* `HostedZoneId` / `HostedZoneName` + `Name` + `Type` and verified
|
|
34239
34311
|
* against AWS, but an import with no override still declines because
|
|
@@ -34315,6 +34387,29 @@ var Route53Provider = class {
|
|
|
34315
34387
|
attributes: {}
|
|
34316
34388
|
};
|
|
34317
34389
|
}
|
|
34390
|
+
/**
|
|
34391
|
+
* Adopt an existing hosted zone (issue #1702).
|
|
34392
|
+
*
|
|
34393
|
+
* An explicit `--resource` id is ground truth and is only VERIFIED. With no
|
|
34394
|
+
* override, the zone is resolved from the template's `Name` via
|
|
34395
|
+
* `ListHostedZonesByName` — the physical-name route docs/import.md's
|
|
34396
|
+
* Auto-resolved section documents, which this method declined to take until
|
|
34397
|
+
* now, so a type the table listed as auto-resolved silently reported
|
|
34398
|
+
* `skipped-not-found` and (under `--migrate-from-cloudformation`) was left
|
|
34399
|
+
* out of state after the CloudFormation stack had already been retired.
|
|
34400
|
+
*
|
|
34401
|
+
* Three properties of the lookup matter and none of them is incidental:
|
|
34402
|
+
* the query name is canonicalized to AWS's ordering key
|
|
34403
|
+
* (`canonicalizeQueryName`) so a bounded page cannot skip past the zone; a
|
|
34404
|
+
* name matching MORE than one zone is REFUSED rather than guessed at
|
|
34405
|
+
* (split-horizon DNS), except that the template's own `VPCs` first narrows
|
|
34406
|
+
* the match to the public or private side (`templateZoneVisibility`), which
|
|
34407
|
+
* is what makes the ordinary split-horizon pair resolve cleanly; and the
|
|
34408
|
+
* two ways of failing are kept DISTINCT — a proven absence returns `null`
|
|
34409
|
+
* (`skipped-not-found`, the next deploy creates the zone) while an
|
|
34410
|
+
* ambiguous name or a failed lookup throws, which `importOne` records as
|
|
34411
|
+
* `failed` for this row alone.
|
|
34412
|
+
*/
|
|
34318
34413
|
async importHostedZone(input) {
|
|
34319
34414
|
if (input.knownPhysicalId) try {
|
|
34320
34415
|
await this.getClient().send(new GetHostedZoneCommand({ Id: input.knownPhysicalId }));
|
|
@@ -34326,7 +34421,24 @@ var Route53Provider = class {
|
|
|
34326
34421
|
if (err instanceof Error && err.name === "NoSuchHostedZone") return null;
|
|
34327
34422
|
throw err;
|
|
34328
34423
|
}
|
|
34329
|
-
|
|
34424
|
+
const zoneName = input.properties["Name"];
|
|
34425
|
+
if (typeof zoneName !== "string" || !zoneName) return null;
|
|
34426
|
+
try {
|
|
34427
|
+
return {
|
|
34428
|
+
physicalId: await this.resolveHostedZoneId({ HostedZoneName: zoneName }, input.logicalId, input.resourceType, void 0, {
|
|
34429
|
+
requireUnambiguousZoneName: true,
|
|
34430
|
+
requirePrivateZone: templateZoneVisibility(input.properties),
|
|
34431
|
+
subject: {
|
|
34432
|
+
noun: "hosted zone",
|
|
34433
|
+
remedy: `pass --resource ${input.logicalId}=<hostedZoneId> to adopt it explicitly`
|
|
34434
|
+
}
|
|
34435
|
+
}),
|
|
34436
|
+
attributes: {}
|
|
34437
|
+
};
|
|
34438
|
+
} catch (error) {
|
|
34439
|
+
if (error instanceof HostedZoneNameNotFoundError) return null;
|
|
34440
|
+
throw error;
|
|
34441
|
+
}
|
|
34330
34442
|
}
|
|
34331
34443
|
};
|
|
34332
34444
|
|
|
@@ -72620,7 +72732,7 @@ function createMigrateCommand() {
|
|
|
72620
72732
|
*/
|
|
72621
72733
|
function buildProgram() {
|
|
72622
72734
|
const program = new Command();
|
|
72623
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.281.
|
|
72735
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.281.3");
|
|
72624
72736
|
program.hook("preAction", (_thisCommand, actionCommand) => {
|
|
72625
72737
|
const { profile } = actionCommand.optsWithGlobals();
|
|
72626
72738
|
if (profile !== void 0) process.env["AWS_PROFILE"] = profile;
|