check-my-toolkit 2.4.0 → 2.5.1

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.
@@ -0,0 +1,14 @@
1
+ /**
2
+ * EC2 resource checker
3
+ *
4
+ * Supports:
5
+ * - Instances
6
+ * - Security groups
7
+ * - Key pairs
8
+ */
9
+ import type { ResourceChecker } from "./types.js";
10
+ /**
11
+ * EC2 resource checker
12
+ */
13
+ export declare const EC2Checker: ResourceChecker;
14
+ //# sourceMappingURL=ec2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ec2.d.ts","sourceRoot":"","sources":["../../../src/infra/checkers/ec2.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmKlD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,eA0BxB,CAAC"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * EC2 resource checker
3
+ *
4
+ * Supports:
5
+ * - Instances
6
+ * - Security groups
7
+ * - Key pairs
8
+ */
9
+ import { DescribeInstancesCommand, DescribeSecurityGroupsCommand, DescribeKeyPairsCommand, EC2Client, } from "@aws-sdk/client-ec2";
10
+ /**
11
+ * Cache of EC2 clients by region
12
+ */
13
+ const clientCache = new Map();
14
+ /**
15
+ * Get or create an EC2 client for a region
16
+ */
17
+ function getClient(region) {
18
+ let client = clientCache.get(region);
19
+ if (!client) {
20
+ client = new EC2Client({ region });
21
+ clientCache.set(region, client);
22
+ }
23
+ return client;
24
+ }
25
+ /**
26
+ * Check if an EC2 instance exists
27
+ */
28
+ async function checkInstance(client, arn) {
29
+ const { resourceId, raw } = arn;
30
+ try {
31
+ const response = await client.send(new DescribeInstancesCommand({ InstanceIds: [resourceId] }));
32
+ const instance = response.Reservations?.[0]?.Instances?.[0];
33
+ const exists = !!instance && instance.State?.Name !== "terminated";
34
+ return {
35
+ arn: raw,
36
+ exists,
37
+ service: "ec2",
38
+ resourceType: "instance",
39
+ resourceId,
40
+ };
41
+ }
42
+ catch (error) {
43
+ const err = error;
44
+ if (err.name === "InvalidInstanceID.NotFound") {
45
+ return {
46
+ arn: raw,
47
+ exists: false,
48
+ service: "ec2",
49
+ resourceType: "instance",
50
+ resourceId,
51
+ };
52
+ }
53
+ return {
54
+ arn: raw,
55
+ exists: false,
56
+ error: err.message || "Unknown error",
57
+ service: "ec2",
58
+ resourceType: "instance",
59
+ resourceId,
60
+ };
61
+ }
62
+ }
63
+ /**
64
+ * Check if an EC2 security group exists
65
+ */
66
+ async function checkSecurityGroup(client, arn) {
67
+ const { resourceId, raw } = arn;
68
+ try {
69
+ const response = await client.send(new DescribeSecurityGroupsCommand({ GroupIds: [resourceId] }));
70
+ const securityGroup = response.SecurityGroups?.[0];
71
+ const exists = !!securityGroup;
72
+ return {
73
+ arn: raw,
74
+ exists,
75
+ service: "ec2",
76
+ resourceType: "security-group",
77
+ resourceId,
78
+ };
79
+ }
80
+ catch (error) {
81
+ const err = error;
82
+ if (err.name === "InvalidGroup.NotFound") {
83
+ return {
84
+ arn: raw,
85
+ exists: false,
86
+ service: "ec2",
87
+ resourceType: "security-group",
88
+ resourceId,
89
+ };
90
+ }
91
+ return {
92
+ arn: raw,
93
+ exists: false,
94
+ error: err.message || "Unknown error",
95
+ service: "ec2",
96
+ resourceType: "security-group",
97
+ resourceId,
98
+ };
99
+ }
100
+ }
101
+ /**
102
+ * Check if an EC2 key pair exists
103
+ */
104
+ async function checkKeyPair(client, arn) {
105
+ const { resourceId, raw } = arn;
106
+ try {
107
+ const response = await client.send(new DescribeKeyPairsCommand({ KeyNames: [resourceId] }));
108
+ const keyPair = response.KeyPairs?.[0];
109
+ const exists = !!keyPair;
110
+ return {
111
+ arn: raw,
112
+ exists,
113
+ service: "ec2",
114
+ resourceType: "key-pair",
115
+ resourceId,
116
+ };
117
+ }
118
+ catch (error) {
119
+ const err = error;
120
+ if (err.name === "InvalidKeyPair.NotFound") {
121
+ return {
122
+ arn: raw,
123
+ exists: false,
124
+ service: "ec2",
125
+ resourceType: "key-pair",
126
+ resourceId,
127
+ };
128
+ }
129
+ return {
130
+ arn: raw,
131
+ exists: false,
132
+ error: err.message || "Unknown error",
133
+ service: "ec2",
134
+ resourceType: "key-pair",
135
+ resourceId,
136
+ };
137
+ }
138
+ }
139
+ /**
140
+ * EC2 resource checker
141
+ */
142
+ export const EC2Checker = {
143
+ async check(arn) {
144
+ const { resourceType, resourceId, region, raw } = arn;
145
+ const client = getClient(region);
146
+ switch (resourceType) {
147
+ case "instance":
148
+ return checkInstance(client, arn);
149
+ case "security-group":
150
+ return checkSecurityGroup(client, arn);
151
+ case "key-pair":
152
+ return checkKeyPair(client, arn);
153
+ default:
154
+ return {
155
+ arn: raw,
156
+ exists: false,
157
+ error: `Unsupported EC2 resource type: ${resourceType}`,
158
+ service: "ec2",
159
+ resourceType,
160
+ resourceId,
161
+ };
162
+ }
163
+ },
164
+ };
165
+ //# sourceMappingURL=ec2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ec2.js","sourceRoot":"","sources":["../../../src/infra/checkers/ec2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ElastiCache resource checker
3
+ *
4
+ * Supports:
5
+ * - Cache clusters
6
+ * - Subnet groups
7
+ * - Replication groups
8
+ */
9
+ import type { ResourceChecker } from "./types.js";
10
+ /**
11
+ * ElastiCache resource checker
12
+ */
13
+ export declare const ElastiCacheChecker: ResourceChecker;
14
+ //# sourceMappingURL=elasticache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elasticache.d.ts","sourceRoot":"","sources":["../../../src/infra/checkers/elasticache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmKlD;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,eA0BhC,CAAC"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * ElastiCache resource checker
3
+ *
4
+ * Supports:
5
+ * - Cache clusters
6
+ * - Subnet groups
7
+ * - Replication groups
8
+ */
9
+ import { DescribeCacheClustersCommand, DescribeCacheSubnetGroupsCommand, DescribeReplicationGroupsCommand, ElastiCacheClient, } from "@aws-sdk/client-elasticache";
10
+ /**
11
+ * Cache of ElastiCache clients by region
12
+ */
13
+ const clientCache = new Map();
14
+ /**
15
+ * Get or create an ElastiCache client for a region
16
+ */
17
+ function getClient(region) {
18
+ let client = clientCache.get(region);
19
+ if (!client) {
20
+ client = new ElastiCacheClient({ region });
21
+ clientCache.set(region, client);
22
+ }
23
+ return client;
24
+ }
25
+ /**
26
+ * Check if an ElastiCache cluster exists
27
+ */
28
+ async function checkCacheCluster(client, arn) {
29
+ const { resourceId, raw } = arn;
30
+ try {
31
+ const response = await client.send(new DescribeCacheClustersCommand({ CacheClusterId: resourceId }));
32
+ const cluster = response.CacheClusters?.[0];
33
+ const exists = !!cluster && cluster.CacheClusterStatus !== "deleting";
34
+ return {
35
+ arn: raw,
36
+ exists,
37
+ service: "elasticache",
38
+ resourceType: "cluster",
39
+ resourceId,
40
+ };
41
+ }
42
+ catch (error) {
43
+ const err = error;
44
+ if (err.name === "CacheClusterNotFoundFault") {
45
+ return {
46
+ arn: raw,
47
+ exists: false,
48
+ service: "elasticache",
49
+ resourceType: "cluster",
50
+ resourceId,
51
+ };
52
+ }
53
+ return {
54
+ arn: raw,
55
+ exists: false,
56
+ error: err.message || "Unknown error",
57
+ service: "elasticache",
58
+ resourceType: "cluster",
59
+ resourceId,
60
+ };
61
+ }
62
+ }
63
+ /**
64
+ * Check if an ElastiCache subnet group exists
65
+ */
66
+ async function checkSubnetGroup(client, arn) {
67
+ const { resourceId, raw } = arn;
68
+ try {
69
+ const response = await client.send(new DescribeCacheSubnetGroupsCommand({ CacheSubnetGroupName: resourceId }));
70
+ const subnetGroup = response.CacheSubnetGroups?.[0];
71
+ const exists = !!subnetGroup;
72
+ return {
73
+ arn: raw,
74
+ exists,
75
+ service: "elasticache",
76
+ resourceType: "subnetgroup",
77
+ resourceId,
78
+ };
79
+ }
80
+ catch (error) {
81
+ const err = error;
82
+ if (err.name === "CacheSubnetGroupNotFoundFault") {
83
+ return {
84
+ arn: raw,
85
+ exists: false,
86
+ service: "elasticache",
87
+ resourceType: "subnetgroup",
88
+ resourceId,
89
+ };
90
+ }
91
+ return {
92
+ arn: raw,
93
+ exists: false,
94
+ error: err.message || "Unknown error",
95
+ service: "elasticache",
96
+ resourceType: "subnetgroup",
97
+ resourceId,
98
+ };
99
+ }
100
+ }
101
+ /**
102
+ * Check if an ElastiCache replication group exists
103
+ */
104
+ async function checkReplicationGroup(client, arn) {
105
+ const { resourceId, raw } = arn;
106
+ try {
107
+ const response = await client.send(new DescribeReplicationGroupsCommand({ ReplicationGroupId: resourceId }));
108
+ const replicationGroup = response.ReplicationGroups?.[0];
109
+ const exists = !!replicationGroup && replicationGroup.Status !== "deleting";
110
+ return {
111
+ arn: raw,
112
+ exists,
113
+ service: "elasticache",
114
+ resourceType: "replicationgroup",
115
+ resourceId,
116
+ };
117
+ }
118
+ catch (error) {
119
+ const err = error;
120
+ if (err.name === "ReplicationGroupNotFoundFault") {
121
+ return {
122
+ arn: raw,
123
+ exists: false,
124
+ service: "elasticache",
125
+ resourceType: "replicationgroup",
126
+ resourceId,
127
+ };
128
+ }
129
+ return {
130
+ arn: raw,
131
+ exists: false,
132
+ error: err.message || "Unknown error",
133
+ service: "elasticache",
134
+ resourceType: "replicationgroup",
135
+ resourceId,
136
+ };
137
+ }
138
+ }
139
+ /**
140
+ * ElastiCache resource checker
141
+ */
142
+ export const ElastiCacheChecker = {
143
+ async check(arn) {
144
+ const { resourceType, resourceId, region, raw } = arn;
145
+ const client = getClient(region);
146
+ switch (resourceType) {
147
+ case "cluster":
148
+ return checkCacheCluster(client, arn);
149
+ case "subnetgroup":
150
+ return checkSubnetGroup(client, arn);
151
+ case "replicationgroup":
152
+ return checkReplicationGroup(client, arn);
153
+ default:
154
+ return {
155
+ arn: raw,
156
+ exists: false,
157
+ error: `Unsupported ElastiCache resource type: ${resourceType}`,
158
+ service: "elasticache",
159
+ resourceType,
160
+ resourceId,
161
+ };
162
+ }
163
+ },
164
+ };
165
+ //# sourceMappingURL=elasticache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elasticache.js","sourceRoot":"","sources":["../../../src/infra/checkers/elasticache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Elastic Load Balancing v2 resource checker
3
+ *
4
+ * Supports:
5
+ * - Load balancers (ALB, NLB, GLB)
6
+ * - Target groups
7
+ * - Listeners
8
+ */
9
+ import type { ResourceChecker } from "./types.js";
10
+ /**
11
+ * Elastic Load Balancing resource checker
12
+ */
13
+ export declare const ELBChecker: ResourceChecker;
14
+ //# sourceMappingURL=elb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elb.d.ts","sourceRoot":"","sources":["../../../src/infra/checkers/elb.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAUH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAsKlD;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,eA0BxB,CAAC"}
@@ -0,0 +1,167 @@
1
+ /**
2
+ * Elastic Load Balancing v2 resource checker
3
+ *
4
+ * Supports:
5
+ * - Load balancers (ALB, NLB, GLB)
6
+ * - Target groups
7
+ * - Listeners
8
+ */
9
+ import { DescribeLoadBalancersCommand, DescribeTargetGroupsCommand, DescribeListenersCommand, ElasticLoadBalancingV2Client, } from "@aws-sdk/client-elastic-load-balancing-v2";
10
+ /**
11
+ * Cache of ELBv2 clients by region
12
+ */
13
+ const clientCache = new Map();
14
+ /**
15
+ * Get or create an ELBv2 client for a region
16
+ */
17
+ function getClient(region) {
18
+ let client = clientCache.get(region);
19
+ if (!client) {
20
+ client = new ElasticLoadBalancingV2Client({ region });
21
+ clientCache.set(region, client);
22
+ }
23
+ return client;
24
+ }
25
+ /**
26
+ * Check if a load balancer exists
27
+ */
28
+ async function checkLoadBalancer(client, arn) {
29
+ const { resourceId, raw } = arn;
30
+ try {
31
+ const response = await client.send(new DescribeLoadBalancersCommand({ LoadBalancerArns: [raw] }));
32
+ const loadBalancer = response.LoadBalancers?.[0];
33
+ const exists = !!loadBalancer &&
34
+ loadBalancer.State?.Code !== "failed" &&
35
+ loadBalancer.State?.Code !== "active_impaired";
36
+ return {
37
+ arn: raw,
38
+ exists,
39
+ service: "elasticloadbalancing",
40
+ resourceType: "loadbalancer",
41
+ resourceId,
42
+ };
43
+ }
44
+ catch (error) {
45
+ const err = error;
46
+ if (err.name === "LoadBalancerNotFoundException") {
47
+ return {
48
+ arn: raw,
49
+ exists: false,
50
+ service: "elasticloadbalancing",
51
+ resourceType: "loadbalancer",
52
+ resourceId,
53
+ };
54
+ }
55
+ return {
56
+ arn: raw,
57
+ exists: false,
58
+ error: err.message || "Unknown error",
59
+ service: "elasticloadbalancing",
60
+ resourceType: "loadbalancer",
61
+ resourceId,
62
+ };
63
+ }
64
+ }
65
+ /**
66
+ * Check if a target group exists
67
+ */
68
+ async function checkTargetGroup(client, arn) {
69
+ const { resourceId, raw } = arn;
70
+ try {
71
+ const response = await client.send(new DescribeTargetGroupsCommand({ TargetGroupArns: [raw] }));
72
+ const targetGroup = response.TargetGroups?.[0];
73
+ const exists = !!targetGroup;
74
+ return {
75
+ arn: raw,
76
+ exists,
77
+ service: "elasticloadbalancing",
78
+ resourceType: "targetgroup",
79
+ resourceId,
80
+ };
81
+ }
82
+ catch (error) {
83
+ const err = error;
84
+ if (err.name === "TargetGroupNotFoundException") {
85
+ return {
86
+ arn: raw,
87
+ exists: false,
88
+ service: "elasticloadbalancing",
89
+ resourceType: "targetgroup",
90
+ resourceId,
91
+ };
92
+ }
93
+ return {
94
+ arn: raw,
95
+ exists: false,
96
+ error: err.message || "Unknown error",
97
+ service: "elasticloadbalancing",
98
+ resourceType: "targetgroup",
99
+ resourceId,
100
+ };
101
+ }
102
+ }
103
+ /**
104
+ * Check if a listener exists
105
+ */
106
+ async function checkListener(client, arn) {
107
+ const { resourceId, raw } = arn;
108
+ try {
109
+ const response = await client.send(new DescribeListenersCommand({ ListenerArns: [raw] }));
110
+ const listener = response.Listeners?.[0];
111
+ const exists = !!listener;
112
+ return {
113
+ arn: raw,
114
+ exists,
115
+ service: "elasticloadbalancing",
116
+ resourceType: "listener",
117
+ resourceId,
118
+ };
119
+ }
120
+ catch (error) {
121
+ const err = error;
122
+ if (err.name === "ListenerNotFoundException") {
123
+ return {
124
+ arn: raw,
125
+ exists: false,
126
+ service: "elasticloadbalancing",
127
+ resourceType: "listener",
128
+ resourceId,
129
+ };
130
+ }
131
+ return {
132
+ arn: raw,
133
+ exists: false,
134
+ error: err.message || "Unknown error",
135
+ service: "elasticloadbalancing",
136
+ resourceType: "listener",
137
+ resourceId,
138
+ };
139
+ }
140
+ }
141
+ /**
142
+ * Elastic Load Balancing resource checker
143
+ */
144
+ export const ELBChecker = {
145
+ async check(arn) {
146
+ const { resourceType, resourceId, region, raw } = arn;
147
+ const client = getClient(region);
148
+ switch (resourceType) {
149
+ case "loadbalancer":
150
+ return checkLoadBalancer(client, arn);
151
+ case "targetgroup":
152
+ return checkTargetGroup(client, arn);
153
+ case "listener":
154
+ return checkListener(client, arn);
155
+ default:
156
+ return {
157
+ arn: raw,
158
+ exists: false,
159
+ error: `Unsupported ELB resource type: ${resourceType}`,
160
+ service: "elasticloadbalancing",
161
+ resourceType,
162
+ resourceId,
163
+ };
164
+ }
165
+ },
166
+ };
167
+ //# sourceMappingURL=elb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elb.js","sourceRoot":"","sources":["../../../src/infra/checkers/elb.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import type { ResourceChecker } from "./types.js";
7
7
  /**
8
8
  * Supported AWS services for resource checking
9
9
  */
10
- export declare const SUPPORTED_SERVICES: readonly ["s3", "lambda", "dynamodb", "sqs", "sns", "iam", "secretsmanager", "logs", "ecs", "rds"];
10
+ export declare const SUPPORTED_SERVICES: readonly ["s3", "lambda", "dynamodb", "sqs", "sns", "iam", "secretsmanager", "logs", "ecs", "rds", "ec2", "elasticache", "elasticloadbalancing"];
11
11
  export type SupportedService = (typeof SUPPORTED_SERVICES)[number];
12
12
  /**
13
13
  * Check if a service is supported
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infra/checkers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,kBAAkB,oGAWrB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,gBAAgB,CAE/E;AAuBD;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAiBtF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/infra/checkers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,kBAAkB,kJAcrB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,gBAAgB,CAE/E;AA0BD;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAiBtF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
@@ -17,6 +17,9 @@ export const SUPPORTED_SERVICES = [
17
17
  "logs",
18
18
  "ecs",
19
19
  "rds",
20
+ "ec2",
21
+ "elasticache",
22
+ "elasticloadbalancing",
20
23
  ];
21
24
  /**
22
25
  * Check if a service is supported
@@ -38,6 +41,9 @@ const checkerFactories = {
38
41
  logs: async () => (await import("./cloudwatch.js")).CloudWatchLogsChecker,
39
42
  ecs: async () => (await import("./ecs.js")).ECSChecker,
40
43
  rds: async () => (await import("./rds.js")).RDSChecker,
44
+ ec2: async () => (await import("./ec2.js")).EC2Checker,
45
+ elasticache: async () => (await import("./elasticache.js")).ElastiCacheChecker,
46
+ elasticloadbalancing: async () => (await import("./elb.js")).ELBChecker,
41
47
  };
42
48
  /**
43
49
  * Cache of loaded checkers
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infra/checkers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI;IACJ,QAAQ;IACR,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,gBAAgB;IAChB,MAAM;IACN,KAAK;IACL,KAAK;CACG,CAAC;AAIX;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,OAA2B,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,gBAAgB,GAA6D;IACjF,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;IACnD,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa;IAC/D,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe;IACrE,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;IACtD,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;IACtD,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;IACtD,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB;IACvF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB;IACzE,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;IACtD,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;CACvD,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qCAAqC;IACrC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6BAA6B;IAC7B,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,EAAE,CAAC;IAChC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,YAAY,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/infra/checkers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI;IACJ,QAAQ;IACR,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,gBAAgB;IAChB,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,aAAa;IACb,sBAAsB;CACd,CAAC;AAIX;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,OAA2B,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,gBAAgB,GAA6D;IACjF,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;IACnD,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa;IAC/D,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,eAAe;IACrE,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;IACtD,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;IACtD,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;IACtD,cAAc,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB;IACvF,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB;IACzE,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;IACtD,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;IACtD,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;IACtD,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB;IAC9E,oBAAoB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU;CACxE,CAAC;AAEF;;GAEG;AACH,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe;IAC9C,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,qCAAqC;IACrC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6BAA6B;IAC7B,MAAM,OAAO,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,OAAO,EAAE,CAAC;IAChC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,YAAY,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/infra/generate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmB3C,gCAAgC;AAChC,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAqED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAgCjF;AAsCD;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,QAAQ,CAAC,CAWxG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,QAAQ,CAe1G;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAS3G"}
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/infra/generate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAmB3C,gCAAgC;AAChC,eAAO,MAAM,qBAAqB,wBAAwB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA0FD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,CAgCjF;AAsCD;;GAEG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,QAAQ,CAAC,CAWxG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,QAAQ,CAe1G;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,IAAI,CAS3G"}
@@ -10,11 +10,31 @@ import { isValidArn } from "./arn.js";
10
10
  import { isValidGcpResource } from "./gcp.js";
11
11
  /** Default manifest filename */
12
12
  export const DEFAULT_MANIFEST_NAME = "infra-manifest.json";
13
+ /**
14
+ * Clean a resource identifier by stripping Pulumi internal suffixes
15
+ *
16
+ * Pulumi sometimes appends internal metadata to ARNs like:
17
+ * arn:aws:secretsmanager:...:secret:name|terraform-20260123...
18
+ *
19
+ * The pipe and everything after it should be stripped.
20
+ */
21
+ function cleanResourceIdentifier(value) {
22
+ const pipeIndex = value.indexOf("|");
23
+ if (pipeIndex !== -1) {
24
+ return value.substring(0, pipeIndex);
25
+ }
26
+ return value;
27
+ }
13
28
  /**
14
29
  * Check if a value is a valid resource identifier (AWS ARN or GCP path)
15
30
  */
16
31
  function isValidResource(value) {
17
- return typeof value === "string" && (isValidArn(value) || isValidGcpResource(value));
32
+ if (typeof value !== "string") {
33
+ return false;
34
+ }
35
+ // Clean the value before validating (strip Pulumi suffixes)
36
+ const cleaned = cleanResourceIdentifier(value);
37
+ return isValidArn(cleaned) || isValidGcpResource(cleaned);
18
38
  }
19
39
  /**
20
40
  * Extract ARNs and resource identifiers from Pulumi resource outputs
@@ -43,13 +63,13 @@ function extractResourcesFromOutputs(outputs) {
43
63
  for (const field of arnFields) {
44
64
  const value = outputs[field];
45
65
  if (isValidResource(value)) {
46
- resources.push(value);
66
+ resources.push(cleanResourceIdentifier(value));
47
67
  }
48
68
  }
49
69
  // Also check for any other fields that look like ARNs or GCP resources
50
70
  for (const [key, value] of Object.entries(outputs)) {
51
71
  if (!arnFields.includes(key) && isValidResource(value)) {
52
- resources.push(value);
72
+ resources.push(cleanResourceIdentifier(value));
53
73
  }
54
74
  }
55
75
  return resources;
@@ -1 +1 @@
1
- {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/infra/generate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/infra/generate.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "check-my-toolkit",
3
- "version": "2.4.0",
3
+ "version": "2.5.1",
4
4
  "description": "Unified project health checks - code, process, and infra",
5
5
  "type": "module",
6
6
  "engines": {
@@ -53,7 +53,10 @@
53
53
  "dependencies": {
54
54
  "@aws-sdk/client-cloudwatch-logs": "^3.974.0",
55
55
  "@aws-sdk/client-dynamodb": "^3.974.0",
56
+ "@aws-sdk/client-ec2": "^3.975.0",
56
57
  "@aws-sdk/client-ecs": "^3.975.0",
58
+ "@aws-sdk/client-elastic-load-balancing-v2": "^3.975.0",
59
+ "@aws-sdk/client-elasticache": "^3.975.0",
57
60
  "@aws-sdk/client-iam": "^3.974.0",
58
61
  "@aws-sdk/client-lambda": "^3.974.0",
59
62
  "@aws-sdk/client-rds": "^3.975.0",