@go-to-k/cdkd 0.256.0 → 0.257.0
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-DbIC4hWG.js → asg-provider-6IZKZOKp.js} +2 -2
- package/dist/{asg-provider-DbIC4hWG.js.map → asg-provider-6IZKZOKp.js.map} +1 -1
- package/dist/cli.js +283 -192
- package/dist/cli.js.map +1 -1
- package/dist/{deploy-engine-vUgwldVH.js → deploy-engine-DOPBIRKR.js} +473 -456
- package/dist/deploy-engine-DOPBIRKR.js.map +1 -0
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-vUgwldVH.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as BOOTSTRAP_MARKER_PREFIX, A as
|
|
2
|
+
import { $ as BOOTSTRAP_MARKER_PREFIX, A as withRetry, At as AssemblyReader, B as TemplateParser, C as disableInstanceApiTermination, Ct as warnDeprecatedNoPrefixCliFlag, D as refStateLookupFromResource, Dt as findLargeInlineResources, E as cfnRefValueFromPhysicalId, Et as MIGRATE_TMP_PREFIX, F as resolveExplicitPhysicalId, Ft as resetAwsClients, G as AssetPublisher, Gt as MissingCdkCliError, H as S3StateBackend, Ht as LocalMigrateError, I as assertRegionMatch, It as setAwsClients, J as buildAssetRedirectMap, Jt as ProvisioningError, K as stringifyValue, Kt as NestedStackChildDirectDestroyError, L as applyRoleArnIfSet, M as CDK_PATH_TAG, Mt as resolveBucketRegion, N as matchesCdkPath, Nt as AwsClients, O as WAFv2WebACLProvider, Ot as uploadCfnTemplate, P as normalizeAwsTagsToCfn, Pt as getAwsClients, Q as AssetModeResolver, Qt as StackTerminationProtectionError, R as DiffCalculator, Rt as CdkdError, S as CloudControlProvider, St as resolveUseCdkBootstrapAssets, T as IntrinsicFunctionResolver, Tt as CFN_TEMPLATE_URL_LIMIT, U as rebuildClientForBucketRegion, Ut as LocalStartServiceError, V as LockManager, Vt as LocalInvokeBuildError$1, W as shouldRetainResource, X as loadPublishableAssetManifest, Xt as ResourceUpdateNotSupportedError, Y as createAssetRedirectResolver, Yt as ResourceTimeoutError, Z as rewriteTemplateAssetReferences, Zt as StackHasActiveImportsError, _ as yellow, _t as resolveAutoAssetStorage, a as IMPLICIT_DELETE_DEPENDENCIES, at as buildDockerImage, b as ProviderRegistry, bt as resolveStateBucketWithDefault, c as MULTI_REGION_RECREATE_BLOCKED_TYPES, ct as runDockerForeground, d as formatResourceLine, dt as getDockerImageBySourceHash, et as ensureAssetStorage, f as bold, ft as Synthesizer, g as red, gt as resolveApp, h as green, ht as getLegacyStateBucketName, i as withResourceDeadline, in as withErrorHandling, it as validateContainerRepoName, j as isRetryableTransientError, k as importTagWalk, kt as expectedOwnerParam, l as isStatefulRecreateTargetSync, lt as runDockerStreaming, m as gray, mt as getDefaultStateBucketName, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nt as parseBootstrapMarker, o as computeImplicitDeleteEdges, ot as formatDockerLoginError, p as cyan, pt as synthesisStatusMessage, q as WorkGraph, qt as PartialFailureError, r as DeployEngine, rn as normalizeAwsError, rt as validateAssetBucketName, s as extractDeploymentEventError, st as getDockerCmd, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as getBootstrapMarkerKey, u as renderStatefulReason, ut as AssetManifestLoader, v as IAMRoleProvider, vt as resolveCaptureObservedState, w as isTerminationProtectionPropagationError, wt as CFN_TEMPLATE_BODY_LIMIT, x as findActionableSilentDrops, xt as resolveStateBucketWithDefaultAndSource, y as collectInlinePolicyNamesManagedBySiblings, yt as resolveSkipPrefix, z as DagBuilder } from "./deploy-engine-DOPBIRKR.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-6IZKZOKp.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, ListBucketsCommand, ListDirectoryBucketsCommand, 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";
|
|
@@ -1899,7 +1899,7 @@ const FLUSH_INTERVAL_MS = 2e3;
|
|
|
1899
1899
|
const FLUSH_EVENT_THRESHOLD = 50;
|
|
1900
1900
|
/** Build-time cdkd version, with a dev fallback for non-built contexts. */
|
|
1901
1901
|
function getCdkdVersion() {
|
|
1902
|
-
return "0.
|
|
1902
|
+
return "0.257.0";
|
|
1903
1903
|
}
|
|
1904
1904
|
/**
|
|
1905
1905
|
* Generate a time-sortable unique run id, e.g.
|
|
@@ -12698,24 +12698,33 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
12698
12698
|
if (err instanceof ResourceNotFoundException$1) return null;
|
|
12699
12699
|
throw err;
|
|
12700
12700
|
}
|
|
12701
|
-
|
|
12702
|
-
|
|
12703
|
-
|
|
12704
|
-
|
|
12705
|
-
|
|
12706
|
-
|
|
12707
|
-
|
|
12708
|
-
|
|
12709
|
-
physicalId: name,
|
|
12710
|
-
attributes: {}
|
|
12701
|
+
const match = await importTagWalk({
|
|
12702
|
+
cdkPath: input.cdkPath,
|
|
12703
|
+
logicalId: input.logicalId,
|
|
12704
|
+
listPage: async (marker) => {
|
|
12705
|
+
const list = await this.dynamoDBClient.send(new ListTablesCommand({ ...marker && { ExclusiveStartTableName: marker } }));
|
|
12706
|
+
return {
|
|
12707
|
+
items: list.TableNames,
|
|
12708
|
+
nextMarker: list.LastEvaluatedTableName
|
|
12711
12709
|
};
|
|
12712
|
-
}
|
|
12713
|
-
|
|
12714
|
-
|
|
12715
|
-
|
|
12716
|
-
|
|
12717
|
-
|
|
12718
|
-
|
|
12710
|
+
},
|
|
12711
|
+
describe: async (name) => {
|
|
12712
|
+
try {
|
|
12713
|
+
const arn = (await this.dynamoDBClient.send(new DescribeTableCommand({ TableName: name }))).Table?.TableArn;
|
|
12714
|
+
if (!arn) return void 0;
|
|
12715
|
+
return await this.dynamoDBClient.send(new ListTagsOfResourceCommand({ ResourceArn: arn }));
|
|
12716
|
+
} catch (err) {
|
|
12717
|
+
if (err instanceof ResourceNotFoundException$1) return void 0;
|
|
12718
|
+
throw err;
|
|
12719
|
+
}
|
|
12720
|
+
},
|
|
12721
|
+
tagsOf: (tagsResp) => tagsResp.Tags
|
|
12722
|
+
});
|
|
12723
|
+
if (!match) return null;
|
|
12724
|
+
return {
|
|
12725
|
+
physicalId: match.summary,
|
|
12726
|
+
attributes: {}
|
|
12727
|
+
};
|
|
12719
12728
|
}
|
|
12720
12729
|
async waitForTableActive(tableName, logicalId, maxAttempts = 120) {
|
|
12721
12730
|
for (let attempt = 1; attempt <= maxAttempts; attempt++) {
|
|
@@ -14579,23 +14588,30 @@ var EventBridgeRuleProvider = class {
|
|
|
14579
14588
|
if (err instanceof ResourceNotFoundException$2) return null;
|
|
14580
14589
|
throw err;
|
|
14581
14590
|
}
|
|
14582
|
-
|
|
14583
|
-
|
|
14584
|
-
|
|
14585
|
-
|
|
14586
|
-
|
|
14587
|
-
|
|
14588
|
-
|
|
14589
|
-
|
|
14590
|
-
|
|
14591
|
-
|
|
14592
|
-
|
|
14593
|
-
attributes: {}
|
|
14591
|
+
const match = await importTagWalk({
|
|
14592
|
+
cdkPath: input.cdkPath,
|
|
14593
|
+
logicalId: input.logicalId,
|
|
14594
|
+
listPage: async (marker) => {
|
|
14595
|
+
const list = await this.eventBridgeClient.send(new ListRulesCommand({
|
|
14596
|
+
...eventBusName && { EventBusName: eventBusName },
|
|
14597
|
+
...marker && { NextToken: marker }
|
|
14598
|
+
}));
|
|
14599
|
+
return {
|
|
14600
|
+
items: list.Rules,
|
|
14601
|
+
nextMarker: list.NextToken
|
|
14594
14602
|
};
|
|
14595
|
-
}
|
|
14596
|
-
|
|
14597
|
-
|
|
14598
|
-
|
|
14603
|
+
},
|
|
14604
|
+
describe: async (rule) => {
|
|
14605
|
+
if (!rule.Arn) return void 0;
|
|
14606
|
+
return await this.eventBridgeClient.send(new ListTagsForResourceCommand$1({ ResourceARN: rule.Arn }));
|
|
14607
|
+
},
|
|
14608
|
+
tagsOf: (tagsResp) => tagsResp.Tags
|
|
14609
|
+
});
|
|
14610
|
+
if (!match) return null;
|
|
14611
|
+
return {
|
|
14612
|
+
physicalId: match.summary.Arn,
|
|
14613
|
+
attributes: {}
|
|
14614
|
+
};
|
|
14599
14615
|
}
|
|
14600
14616
|
/**
|
|
14601
14617
|
* Extract rule name from an ARN
|
|
@@ -14880,25 +14896,32 @@ var EventBridgeBusProvider = class {
|
|
|
14880
14896
|
if (err instanceof ResourceNotFoundException$2) return null;
|
|
14881
14897
|
throw err;
|
|
14882
14898
|
}
|
|
14883
|
-
|
|
14884
|
-
|
|
14885
|
-
|
|
14886
|
-
|
|
14887
|
-
|
|
14888
|
-
|
|
14899
|
+
const match = await importTagWalk({
|
|
14900
|
+
cdkPath: input.cdkPath,
|
|
14901
|
+
logicalId: input.logicalId,
|
|
14902
|
+
listPage: async (marker) => {
|
|
14903
|
+
const list = await this.eventBridgeClient.send(new ListEventBusesCommand({ ...marker && { NextToken: marker } }));
|
|
14904
|
+
return {
|
|
14905
|
+
items: list.EventBuses,
|
|
14906
|
+
nextMarker: list.NextToken
|
|
14907
|
+
};
|
|
14908
|
+
},
|
|
14909
|
+
describe: async (bus) => {
|
|
14910
|
+
if (!bus.Name || !bus.Arn) return void 0;
|
|
14889
14911
|
try {
|
|
14890
|
-
|
|
14891
|
-
physicalId: bus.Name,
|
|
14892
|
-
attributes: {}
|
|
14893
|
-
};
|
|
14912
|
+
return await this.eventBridgeClient.send(new ListTagsForResourceCommand$1({ ResourceARN: bus.Arn }));
|
|
14894
14913
|
} catch (err) {
|
|
14895
|
-
if (err instanceof ResourceNotFoundException$2)
|
|
14914
|
+
if (err instanceof ResourceNotFoundException$2) return void 0;
|
|
14896
14915
|
throw err;
|
|
14897
14916
|
}
|
|
14898
|
-
}
|
|
14899
|
-
|
|
14900
|
-
}
|
|
14901
|
-
return null;
|
|
14917
|
+
},
|
|
14918
|
+
tagsOf: (tagsResp) => tagsResp.Tags
|
|
14919
|
+
});
|
|
14920
|
+
if (!match) return null;
|
|
14921
|
+
return {
|
|
14922
|
+
physicalId: match.summary.Name,
|
|
14923
|
+
attributes: {}
|
|
14924
|
+
};
|
|
14902
14925
|
}
|
|
14903
14926
|
};
|
|
14904
14927
|
|
|
@@ -20449,25 +20472,32 @@ var CloudFrontDistributionProvider = class {
|
|
|
20449
20472
|
if (err instanceof NoSuchDistribution) return null;
|
|
20450
20473
|
throw err;
|
|
20451
20474
|
}
|
|
20452
|
-
|
|
20453
|
-
|
|
20454
|
-
|
|
20455
|
-
|
|
20456
|
-
|
|
20457
|
-
|
|
20475
|
+
const match = await importTagWalk({
|
|
20476
|
+
cdkPath: input.cdkPath,
|
|
20477
|
+
logicalId: input.logicalId,
|
|
20478
|
+
listPage: async (marker) => {
|
|
20479
|
+
const list = await this.cloudFrontClient.send(new ListDistributionsCommand({ ...marker && { Marker: marker } }));
|
|
20480
|
+
return {
|
|
20481
|
+
items: list.DistributionList?.Items,
|
|
20482
|
+
nextMarker: list.DistributionList?.IsTruncated ? list.DistributionList?.NextMarker : void 0
|
|
20483
|
+
};
|
|
20484
|
+
},
|
|
20485
|
+
describe: async (d) => {
|
|
20486
|
+
if (!d.Id || !d.ARN) return void 0;
|
|
20458
20487
|
try {
|
|
20459
|
-
|
|
20460
|
-
physicalId: d.Id,
|
|
20461
|
-
attributes: {}
|
|
20462
|
-
};
|
|
20488
|
+
return await this.cloudFrontClient.send(new ListTagsForResourceCommand$3({ Resource: d.ARN }));
|
|
20463
20489
|
} catch (err) {
|
|
20464
|
-
if (err instanceof NoSuchDistribution)
|
|
20490
|
+
if (err instanceof NoSuchDistribution) return void 0;
|
|
20465
20491
|
throw err;
|
|
20466
20492
|
}
|
|
20467
|
-
}
|
|
20468
|
-
|
|
20469
|
-
}
|
|
20470
|
-
return null;
|
|
20493
|
+
},
|
|
20494
|
+
tagsOf: (tagsResp) => tagsResp.Tags?.Items
|
|
20495
|
+
});
|
|
20496
|
+
if (!match) return null;
|
|
20497
|
+
return {
|
|
20498
|
+
physicalId: match.summary.Id,
|
|
20499
|
+
attributes: {}
|
|
20500
|
+
};
|
|
20471
20501
|
}
|
|
20472
20502
|
};
|
|
20473
20503
|
|
|
@@ -21468,10 +21498,10 @@ var StepFunctionsProvider = class {
|
|
|
21468
21498
|
*
|
|
21469
21499
|
* Lookup order:
|
|
21470
21500
|
* 1. `--resource <id>=<arn>` override → verify with `DescribeStateMachine`.
|
|
21471
|
-
* 2. Walk `ListStateMachines`
|
|
21472
|
-
*
|
|
21473
|
-
*
|
|
21474
|
-
*
|
|
21501
|
+
* 2. Walk `ListStateMachines` → `ListTagsForResource(arn)` via the shared
|
|
21502
|
+
* `importTagWalk` helper. SFN returns lowercase `key`/`value` tags, so
|
|
21503
|
+
* `tagsOf` maps them to the `Key`/`Value` shape the walk's
|
|
21504
|
+
* `aws:cdk:path` matcher expects.
|
|
21475
21505
|
*
|
|
21476
21506
|
* SFN state machines do not expose a template-supplied name field
|
|
21477
21507
|
* usable as a stable physicalId — the physicalId is the ARN — so the
|
|
@@ -21489,21 +21519,30 @@ var StepFunctionsProvider = class {
|
|
|
21489
21519
|
if (err instanceof StateMachineDoesNotExist) return null;
|
|
21490
21520
|
throw err;
|
|
21491
21521
|
}
|
|
21492
|
-
|
|
21493
|
-
|
|
21494
|
-
|
|
21495
|
-
|
|
21496
|
-
|
|
21497
|
-
|
|
21498
|
-
|
|
21499
|
-
|
|
21500
|
-
physicalId: sm.stateMachineArn,
|
|
21501
|
-
attributes: {}
|
|
21522
|
+
const match = await importTagWalk({
|
|
21523
|
+
cdkPath: input.cdkPath,
|
|
21524
|
+
logicalId: input.logicalId,
|
|
21525
|
+
listPage: async (marker) => {
|
|
21526
|
+
const list = await this.getClient().send(new ListStateMachinesCommand({ ...marker && { nextToken: marker } }));
|
|
21527
|
+
return {
|
|
21528
|
+
items: list.stateMachines,
|
|
21529
|
+
nextMarker: list.nextToken
|
|
21502
21530
|
};
|
|
21503
|
-
}
|
|
21504
|
-
|
|
21505
|
-
|
|
21506
|
-
|
|
21531
|
+
},
|
|
21532
|
+
describe: async (sm) => {
|
|
21533
|
+
if (!sm.stateMachineArn) return void 0;
|
|
21534
|
+
return await this.getClient().send(new ListTagsForResourceCommand$11({ resourceArn: sm.stateMachineArn }));
|
|
21535
|
+
},
|
|
21536
|
+
tagsOf: (tagsResp) => (tagsResp.tags ?? []).map((t) => ({
|
|
21537
|
+
Key: t.key,
|
|
21538
|
+
Value: t.value
|
|
21539
|
+
}))
|
|
21540
|
+
});
|
|
21541
|
+
if (!match) return null;
|
|
21542
|
+
return {
|
|
21543
|
+
physicalId: match.summary.stateMachineArn,
|
|
21544
|
+
attributes: {}
|
|
21545
|
+
};
|
|
21507
21546
|
}
|
|
21508
21547
|
/**
|
|
21509
21548
|
* Apply a diff between old and new CFn-shape Tags arrays via SFN's
|
|
@@ -21541,14 +21580,6 @@ var StepFunctionsProvider = class {
|
|
|
21541
21580
|
}
|
|
21542
21581
|
}
|
|
21543
21582
|
/**
|
|
21544
|
-
* Match SFN's lowercase `key`/`value` tag shape against the CDK path.
|
|
21545
|
-
*/
|
|
21546
|
-
tagsMatchCdkPath(tags, cdkPath) {
|
|
21547
|
-
if (!tags) return false;
|
|
21548
|
-
for (const t of tags) if (t.key === "aws:cdk:path" && t.value === cdkPath) return true;
|
|
21549
|
-
return false;
|
|
21550
|
-
}
|
|
21551
|
-
/**
|
|
21552
21583
|
* Build the state-machine definition string from CDK properties.
|
|
21553
21584
|
*
|
|
21554
21585
|
* Precedence (mirrors CloudFormation): an inline `DefinitionString` /
|
|
@@ -27959,6 +27990,16 @@ var CognitoUserPoolProvider = class {
|
|
|
27959
27990
|
* 3. `aws:cdk:path` tag match via `ListUserPools` +
|
|
27960
27991
|
* `ListTagsForResource(<arn>)`. Cognito's tag map uses the same
|
|
27961
27992
|
* `Tags: { [key]: value }` shape as Lambda.
|
|
27993
|
+
*
|
|
27994
|
+
* Steps 2 and 3 share ONE `ListUserPools` walk (per candidate: name check
|
|
27995
|
+
* first, then the two tag reads, only when a `cdkPath` is present), which
|
|
27996
|
+
* runs through the shared `importTagWalk` helper so the N+1 read burst
|
|
27997
|
+
* (DescribeUserPool for the ARN, then ListTagsForResource) is retried with
|
|
27998
|
+
* exponential backoff when AWS throttles it instead of aborting the whole
|
|
27999
|
+
* import. The name match is expressed to the walk as a synthetic
|
|
28000
|
+
* `aws:cdk:path` tag carrying the walk's own lookup key, so a name-only
|
|
28001
|
+
* template (no CDK path metadata) still resolves without any per-candidate
|
|
28002
|
+
* API call, matching the previous inline loop.
|
|
27962
28003
|
*/
|
|
27963
28004
|
async import(input) {
|
|
27964
28005
|
if (input.knownPhysicalId) try {
|
|
@@ -27972,33 +28013,48 @@ var CognitoUserPoolProvider = class {
|
|
|
27972
28013
|
throw err;
|
|
27973
28014
|
}
|
|
27974
28015
|
const desiredName = typeof input.properties?.["UserPoolName"] === "string" ? input.properties["UserPoolName"] : void 0;
|
|
27975
|
-
|
|
27976
|
-
|
|
27977
|
-
|
|
27978
|
-
|
|
27979
|
-
|
|
27980
|
-
|
|
27981
|
-
|
|
27982
|
-
|
|
27983
|
-
|
|
27984
|
-
|
|
27985
|
-
|
|
28016
|
+
const walkCdkPath = input.cdkPath || (desiredName ? `cdkd:cognito-user-pool-name:${desiredName}` : void 0);
|
|
28017
|
+
/** Sentinel detail for a candidate matched by its user pool name. */
|
|
28018
|
+
const NAME_MATCH = { nameMatch: true };
|
|
28019
|
+
const match = await importTagWalk({
|
|
28020
|
+
cdkPath: walkCdkPath,
|
|
28021
|
+
logicalId: input.logicalId,
|
|
28022
|
+
listPage: async (marker) => {
|
|
28023
|
+
const list = await this.getClient().send(new ListUserPoolsCommand({
|
|
28024
|
+
MaxResults: 60,
|
|
28025
|
+
...marker && { NextToken: marker }
|
|
28026
|
+
}));
|
|
28027
|
+
return {
|
|
28028
|
+
items: list.UserPools,
|
|
28029
|
+
nextMarker: list.NextToken
|
|
27986
28030
|
};
|
|
27987
|
-
|
|
28031
|
+
},
|
|
28032
|
+
describe: async (pool) => {
|
|
28033
|
+
if (!pool.Id) return void 0;
|
|
28034
|
+
if (desiredName && pool.Name === desiredName) return NAME_MATCH;
|
|
28035
|
+
if (!input.cdkPath) return void 0;
|
|
28036
|
+
try {
|
|
27988
28037
|
const arn = (await this.getClient().send(new DescribeUserPoolCommand({ UserPoolId: pool.Id }))).UserPool?.Arn;
|
|
27989
|
-
if (!arn)
|
|
27990
|
-
|
|
27991
|
-
physicalId: pool.Id,
|
|
27992
|
-
attributes: {}
|
|
27993
|
-
};
|
|
28038
|
+
if (!arn) return void 0;
|
|
28039
|
+
return await this.getClient().send(new ListTagsForResourceCommand$15({ ResourceArn: arn }));
|
|
27994
28040
|
} catch (err) {
|
|
27995
|
-
if (err instanceof ResourceNotFoundException$7)
|
|
28041
|
+
if (err instanceof ResourceNotFoundException$7) return void 0;
|
|
27996
28042
|
throw err;
|
|
27997
28043
|
}
|
|
27998
|
-
}
|
|
27999
|
-
|
|
28000
|
-
|
|
28001
|
-
|
|
28044
|
+
},
|
|
28045
|
+
tagsOf: (detail) => "nameMatch" in detail ? [{
|
|
28046
|
+
Key: CDK_PATH_TAG,
|
|
28047
|
+
Value: walkCdkPath
|
|
28048
|
+
}] : Object.entries(detail.Tags ?? {}).map(([Key, Value]) => ({
|
|
28049
|
+
Key,
|
|
28050
|
+
Value
|
|
28051
|
+
}))
|
|
28052
|
+
});
|
|
28053
|
+
if (!match) return null;
|
|
28054
|
+
return {
|
|
28055
|
+
physicalId: match.summary.Id,
|
|
28056
|
+
attributes: {}
|
|
28057
|
+
};
|
|
28002
28058
|
}
|
|
28003
28059
|
};
|
|
28004
28060
|
|
|
@@ -32984,23 +33040,31 @@ var BudgetsBudgetProvider = class {
|
|
|
32984
33040
|
if (error instanceof NotFoundException$5) return null;
|
|
32985
33041
|
throw error;
|
|
32986
33042
|
}
|
|
32987
|
-
|
|
32988
|
-
|
|
32989
|
-
|
|
32990
|
-
|
|
32991
|
-
|
|
32992
|
-
|
|
32993
|
-
|
|
32994
|
-
|
|
32995
|
-
|
|
32996
|
-
|
|
32997
|
-
|
|
32998
|
-
attributes: { Arn: this.budgetArn(accountId, budget.BudgetName) }
|
|
33043
|
+
const match = await importTagWalk({
|
|
33044
|
+
cdkPath: input.cdkPath,
|
|
33045
|
+
logicalId: input.logicalId,
|
|
33046
|
+
listPage: async (marker) => {
|
|
33047
|
+
const list = await client.send(new DescribeBudgetsCommand({
|
|
33048
|
+
AccountId: accountId,
|
|
33049
|
+
...marker && { NextToken: marker }
|
|
33050
|
+
}));
|
|
33051
|
+
return {
|
|
33052
|
+
items: list.Budgets,
|
|
33053
|
+
nextMarker: list.NextToken
|
|
32999
33054
|
};
|
|
33000
|
-
}
|
|
33001
|
-
|
|
33002
|
-
|
|
33003
|
-
|
|
33055
|
+
},
|
|
33056
|
+
describe: async (budget) => {
|
|
33057
|
+
if (!budget.BudgetName) return void 0;
|
|
33058
|
+
return await client.send(new ListTagsForResourceCommand$17({ ResourceARN: this.budgetArn(accountId, budget.BudgetName) }));
|
|
33059
|
+
},
|
|
33060
|
+
tagsOf: (tags) => tags.ResourceTags
|
|
33061
|
+
});
|
|
33062
|
+
if (!match) return null;
|
|
33063
|
+
const budgetName = match.summary.BudgetName;
|
|
33064
|
+
return {
|
|
33065
|
+
physicalId: budgetName,
|
|
33066
|
+
attributes: { Arn: this.budgetArn(accountId, budgetName) }
|
|
33067
|
+
};
|
|
33004
33068
|
}
|
|
33005
33069
|
};
|
|
33006
33070
|
|
|
@@ -38200,19 +38264,25 @@ var FirehoseProvider = class {
|
|
|
38200
38264
|
if (err instanceof ResourceNotFoundException$10) return null;
|
|
38201
38265
|
throw err;
|
|
38202
38266
|
}
|
|
38203
|
-
|
|
38204
|
-
|
|
38205
|
-
|
|
38206
|
-
|
|
38207
|
-
|
|
38208
|
-
|
|
38209
|
-
|
|
38210
|
-
|
|
38211
|
-
|
|
38212
|
-
|
|
38213
|
-
|
|
38214
|
-
|
|
38215
|
-
|
|
38267
|
+
const match = await importTagWalk({
|
|
38268
|
+
cdkPath: input.cdkPath,
|
|
38269
|
+
logicalId: input.logicalId,
|
|
38270
|
+
listPage: async (marker) => {
|
|
38271
|
+
const list = await this.getClient().send(new ListDeliveryStreamsCommand({ ...marker && { ExclusiveStartDeliveryStreamName: marker } }));
|
|
38272
|
+
const names = list.DeliveryStreamNames ?? [];
|
|
38273
|
+
return {
|
|
38274
|
+
items: names,
|
|
38275
|
+
nextMarker: list.HasMoreDeliveryStreams && names.length > 0 ? names[names.length - 1] : void 0
|
|
38276
|
+
};
|
|
38277
|
+
},
|
|
38278
|
+
describe: async (name) => await this.getClient().send(new ListTagsForDeliveryStreamCommand({ DeliveryStreamName: name })),
|
|
38279
|
+
tagsOf: (tagsResp) => tagsResp.Tags
|
|
38280
|
+
});
|
|
38281
|
+
if (!match) return null;
|
|
38282
|
+
return {
|
|
38283
|
+
physicalId: match.summary,
|
|
38284
|
+
attributes: {}
|
|
38285
|
+
};
|
|
38216
38286
|
}
|
|
38217
38287
|
/**
|
|
38218
38288
|
* Wait for a delivery stream to become ACTIVE.
|
|
@@ -38718,26 +38788,32 @@ var CloudTrailProvider = class {
|
|
|
38718
38788
|
if (err instanceof TrailNotFoundException) return null;
|
|
38719
38789
|
throw err;
|
|
38720
38790
|
}
|
|
38721
|
-
|
|
38722
|
-
|
|
38723
|
-
|
|
38724
|
-
|
|
38725
|
-
|
|
38726
|
-
|
|
38791
|
+
const match = await importTagWalk({
|
|
38792
|
+
cdkPath: input.cdkPath,
|
|
38793
|
+
logicalId: input.logicalId,
|
|
38794
|
+
listPage: async (marker) => {
|
|
38795
|
+
const list = await this.getClient().send(new ListTrailsCommand({ ...marker && { NextToken: marker } }));
|
|
38796
|
+
return {
|
|
38797
|
+
items: list.Trails,
|
|
38798
|
+
nextMarker: list.NextToken
|
|
38799
|
+
};
|
|
38800
|
+
},
|
|
38801
|
+
describe: async (trail) => {
|
|
38802
|
+
if (!trail.TrailARN || !trail.Name) return void 0;
|
|
38727
38803
|
try {
|
|
38728
|
-
|
|
38729
|
-
if (matchesCdkPath(list2?.TagsList, input.cdkPath)) return {
|
|
38730
|
-
physicalId: trail.Name,
|
|
38731
|
-
attributes: {}
|
|
38732
|
-
};
|
|
38804
|
+
return await this.getClient().send(new ListTagsCommand$1({ ResourceIdList: [trail.TrailARN] }));
|
|
38733
38805
|
} catch (err) {
|
|
38734
|
-
if (err instanceof TrailNotFoundException)
|
|
38806
|
+
if (err instanceof TrailNotFoundException) return void 0;
|
|
38735
38807
|
throw err;
|
|
38736
38808
|
}
|
|
38737
|
-
}
|
|
38738
|
-
|
|
38739
|
-
}
|
|
38740
|
-
return null;
|
|
38809
|
+
},
|
|
38810
|
+
tagsOf: (tagsResp) => tagsResp.ResourceTagList?.[0]?.TagsList
|
|
38811
|
+
});
|
|
38812
|
+
if (!match) return null;
|
|
38813
|
+
return {
|
|
38814
|
+
physicalId: match.summary.Name,
|
|
38815
|
+
attributes: {}
|
|
38816
|
+
};
|
|
38741
38817
|
}
|
|
38742
38818
|
};
|
|
38743
38819
|
|
|
@@ -40458,26 +40534,33 @@ var S3DirectoryBucketProvider = class {
|
|
|
40458
40534
|
if (e.name === "NotFound" || e.name === "NoSuchBucket") return null;
|
|
40459
40535
|
throw err;
|
|
40460
40536
|
}
|
|
40461
|
-
|
|
40462
|
-
|
|
40463
|
-
|
|
40464
|
-
|
|
40465
|
-
|
|
40466
|
-
|
|
40537
|
+
const match = await importTagWalk({
|
|
40538
|
+
cdkPath: input.cdkPath,
|
|
40539
|
+
logicalId: input.logicalId,
|
|
40540
|
+
listPage: async (token) => {
|
|
40541
|
+
const list = await this.s3Client.send(new ListDirectoryBucketsCommand({ ...token && { ContinuationToken: token } }));
|
|
40542
|
+
return {
|
|
40543
|
+
items: list.Buckets,
|
|
40544
|
+
nextMarker: list.ContinuationToken
|
|
40545
|
+
};
|
|
40546
|
+
},
|
|
40547
|
+
describe: async (b) => {
|
|
40548
|
+
if (!b.Name) return void 0;
|
|
40467
40549
|
try {
|
|
40468
|
-
|
|
40469
|
-
physicalId: b.Name,
|
|
40470
|
-
attributes: {}
|
|
40471
|
-
};
|
|
40550
|
+
return await this.s3Client.send(new GetBucketTaggingCommand({ Bucket: b.Name }));
|
|
40472
40551
|
} catch (err) {
|
|
40473
40552
|
const e = err;
|
|
40474
|
-
if (e.name === "NoSuchTagSet" || e.name === "AccessDenied")
|
|
40553
|
+
if (e.name === "NoSuchTagSet" || e.name === "AccessDenied") return void 0;
|
|
40475
40554
|
throw err;
|
|
40476
40555
|
}
|
|
40477
|
-
}
|
|
40478
|
-
|
|
40479
|
-
}
|
|
40480
|
-
return null;
|
|
40556
|
+
},
|
|
40557
|
+
tagsOf: (tagging) => tagging.TagSet
|
|
40558
|
+
});
|
|
40559
|
+
if (!match) return null;
|
|
40560
|
+
return {
|
|
40561
|
+
physicalId: match.summary.Name,
|
|
40562
|
+
attributes: {}
|
|
40563
|
+
};
|
|
40481
40564
|
}
|
|
40482
40565
|
};
|
|
40483
40566
|
|
|
@@ -42510,28 +42593,36 @@ var ACMCertificateProvider = class {
|
|
|
42510
42593
|
throw err;
|
|
42511
42594
|
}
|
|
42512
42595
|
}
|
|
42513
|
-
|
|
42514
|
-
|
|
42515
|
-
|
|
42516
|
-
|
|
42517
|
-
|
|
42518
|
-
|
|
42596
|
+
const match = await importTagWalk({
|
|
42597
|
+
cdkPath: input.cdkPath,
|
|
42598
|
+
logicalId: input.logicalId,
|
|
42599
|
+
listPage: async (marker) => {
|
|
42600
|
+
const list = await this.acmClient.send(new ListCertificatesCommand({ ...marker && { NextToken: marker } }));
|
|
42601
|
+
return {
|
|
42602
|
+
items: list.CertificateSummaryList,
|
|
42603
|
+
nextMarker: list.NextToken
|
|
42604
|
+
};
|
|
42605
|
+
},
|
|
42606
|
+
describe: async (summary) => {
|
|
42607
|
+
if (!summary.CertificateArn) return void 0;
|
|
42519
42608
|
try {
|
|
42520
|
-
|
|
42521
|
-
physicalId: summary.CertificateArn,
|
|
42522
|
-
attributes: {
|
|
42523
|
-
Arn: summary.CertificateArn,
|
|
42524
|
-
CertificateArn: summary.CertificateArn
|
|
42525
|
-
}
|
|
42526
|
-
};
|
|
42609
|
+
return await this.acmClient.send(new ListTagsForCertificateCommand({ CertificateArn: summary.CertificateArn }));
|
|
42527
42610
|
} catch (err) {
|
|
42528
|
-
if (err instanceof ResourceNotFoundException$6)
|
|
42611
|
+
if (err instanceof ResourceNotFoundException$6) return void 0;
|
|
42529
42612
|
throw err;
|
|
42530
42613
|
}
|
|
42614
|
+
},
|
|
42615
|
+
tagsOf: (tagsResp) => tagsResp.Tags
|
|
42616
|
+
});
|
|
42617
|
+
if (!match) return null;
|
|
42618
|
+
const arn = match.summary.CertificateArn;
|
|
42619
|
+
return {
|
|
42620
|
+
physicalId: arn,
|
|
42621
|
+
attributes: {
|
|
42622
|
+
Arn: arn,
|
|
42623
|
+
CertificateArn: arn
|
|
42531
42624
|
}
|
|
42532
|
-
|
|
42533
|
-
} while (nextToken);
|
|
42534
|
-
return null;
|
|
42625
|
+
};
|
|
42535
42626
|
}
|
|
42536
42627
|
/**
|
|
42537
42628
|
* Poll `DescribeCertificate` until status === `ISSUED`. On the FIRST poll
|
|
@@ -62081,7 +62172,7 @@ function createMigrateCommand() {
|
|
|
62081
62172
|
*/
|
|
62082
62173
|
function buildProgram() {
|
|
62083
62174
|
const program = new Command();
|
|
62084
|
-
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.
|
|
62175
|
+
program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.257.0");
|
|
62085
62176
|
program.addCommand(createBootstrapCommand());
|
|
62086
62177
|
program.addCommand(createSynthCommand());
|
|
62087
62178
|
program.addCommand(createListCommand());
|