alchemy 0.54.0 → 0.55.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.
Files changed (102) hide show
  1. package/bin/alchemy.js +38717 -11847
  2. package/lib/aws/ec2/index.d.ts +10 -0
  3. package/lib/aws/ec2/index.d.ts.map +1 -0
  4. package/lib/aws/ec2/index.js +10 -0
  5. package/lib/aws/ec2/index.js.map +1 -0
  6. package/lib/aws/ec2/internet-gateway-attachment.d.ts +150 -0
  7. package/lib/aws/ec2/internet-gateway-attachment.d.ts.map +1 -0
  8. package/lib/aws/ec2/internet-gateway-attachment.js +248 -0
  9. package/lib/aws/ec2/internet-gateway-attachment.js.map +1 -0
  10. package/lib/aws/ec2/internet-gateway.d.ts +132 -0
  11. package/lib/aws/ec2/internet-gateway.d.ts.map +1 -0
  12. package/lib/aws/ec2/internet-gateway.js +311 -0
  13. package/lib/aws/ec2/internet-gateway.js.map +1 -0
  14. package/lib/aws/ec2/nat-gateway.d.ts +145 -0
  15. package/lib/aws/ec2/nat-gateway.d.ts.map +1 -0
  16. package/lib/aws/ec2/nat-gateway.js +618 -0
  17. package/lib/aws/ec2/nat-gateway.js.map +1 -0
  18. package/lib/aws/ec2/route-table-association.d.ts +134 -0
  19. package/lib/aws/ec2/route-table-association.d.ts.map +1 -0
  20. package/lib/aws/ec2/route-table-association.js +364 -0
  21. package/lib/aws/ec2/route-table-association.js.map +1 -0
  22. package/lib/aws/ec2/route-table.d.ts +94 -0
  23. package/lib/aws/ec2/route-table.d.ts.map +1 -0
  24. package/lib/aws/ec2/route-table.js +253 -0
  25. package/lib/aws/ec2/route-table.js.map +1 -0
  26. package/lib/aws/ec2/route.d.ts +130 -0
  27. package/lib/aws/ec2/route.d.ts.map +1 -0
  28. package/lib/aws/ec2/route.js +253 -0
  29. package/lib/aws/ec2/route.js.map +1 -0
  30. package/lib/aws/ec2/security-group-rule.d.ts +84 -0
  31. package/lib/aws/ec2/security-group-rule.d.ts.map +1 -0
  32. package/lib/aws/ec2/security-group-rule.js +123 -0
  33. package/lib/aws/ec2/security-group-rule.js.map +1 -0
  34. package/lib/aws/ec2/security-group.d.ts +84 -0
  35. package/lib/aws/ec2/security-group.d.ts.map +1 -0
  36. package/lib/aws/ec2/security-group.js +207 -0
  37. package/lib/aws/ec2/security-group.js.map +1 -0
  38. package/lib/aws/ec2/subnet.d.ts +110 -0
  39. package/lib/aws/ec2/subnet.d.ts.map +1 -0
  40. package/lib/aws/ec2/subnet.js +336 -0
  41. package/lib/aws/ec2/subnet.js.map +1 -0
  42. package/lib/aws/ec2/utils.d.ts +15 -0
  43. package/lib/aws/ec2/utils.d.ts.map +1 -0
  44. package/lib/aws/ec2/utils.js +79 -0
  45. package/lib/aws/ec2/utils.js.map +1 -0
  46. package/lib/aws/ec2/vpc.d.ts +160 -0
  47. package/lib/aws/ec2/vpc.d.ts.map +1 -0
  48. package/lib/aws/ec2/vpc.js +453 -0
  49. package/lib/aws/ec2/vpc.js.map +1 -0
  50. package/lib/aws/index.d.ts +7 -0
  51. package/lib/aws/index.d.ts.map +1 -1
  52. package/lib/aws/index.js +8 -0
  53. package/lib/aws/index.js.map +1 -1
  54. package/lib/aws/utils.d.ts +25 -0
  55. package/lib/aws/utils.d.ts.map +1 -0
  56. package/lib/aws/utils.js +89 -0
  57. package/lib/aws/utils.js.map +1 -0
  58. package/lib/build-date.d.ts +6 -0
  59. package/lib/build-date.d.ts.map +1 -0
  60. package/lib/build-date.js +8 -0
  61. package/lib/build-date.js.map +1 -0
  62. package/lib/cloudflare/worker-metadata.d.ts +1 -1
  63. package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
  64. package/lib/cloudflare/worker-metadata.js +1 -0
  65. package/lib/cloudflare/worker-metadata.js.map +1 -1
  66. package/lib/cloudflare/worker.d.ts +0 -2
  67. package/lib/cloudflare/worker.d.ts.map +1 -1
  68. package/lib/cloudflare/worker.js +1 -1
  69. package/lib/cloudflare/worker.js.map +1 -1
  70. package/lib/util/params.d.ts +5 -0
  71. package/lib/util/params.d.ts.map +1 -0
  72. package/lib/util/params.js +30 -0
  73. package/lib/util/params.js.map +1 -0
  74. package/lib/util/timeout.d.ts +31 -0
  75. package/lib/util/timeout.d.ts.map +1 -0
  76. package/lib/util/timeout.js +109 -0
  77. package/lib/util/timeout.js.map +1 -0
  78. package/lib/util/xml.d.ts +5 -0
  79. package/lib/util/xml.d.ts.map +1 -0
  80. package/lib/util/xml.js +8 -0
  81. package/lib/util/xml.js.map +1 -0
  82. package/package.json +7 -5
  83. package/src/aws/ec2/index.ts +9 -0
  84. package/src/aws/ec2/internet-gateway-attachment.ts +468 -0
  85. package/src/aws/ec2/internet-gateway.ts +557 -0
  86. package/src/aws/ec2/nat-gateway.ts +1123 -0
  87. package/src/aws/ec2/route-table-association.ts +747 -0
  88. package/src/aws/ec2/route-table.ts +452 -0
  89. package/src/aws/ec2/route.ts +447 -0
  90. package/src/aws/ec2/security-group-rule.ts +229 -0
  91. package/src/aws/ec2/security-group.ts +418 -0
  92. package/src/aws/ec2/subnet.ts +625 -0
  93. package/src/aws/ec2/utils.ts +102 -0
  94. package/src/aws/ec2/vpc.ts +969 -0
  95. package/src/aws/index.ts +9 -0
  96. package/src/aws/utils.ts +137 -0
  97. package/src/build-date.ts +8 -0
  98. package/src/cloudflare/worker-metadata.ts +1 -1
  99. package/src/cloudflare/worker.ts +1 -1
  100. package/src/util/params.ts +33 -0
  101. package/src/util/timeout.ts +178 -0
  102. package/src/util/xml.ts +7 -0
@@ -0,0 +1,453 @@
1
+ import { XMLParser } from "fast-xml-parser";
2
+ import { Resource } from "../../resource.js";
3
+ import { ignore } from "../../util/ignore.js";
4
+ import { logger } from "../../util/logger.js";
5
+ import { mergeTimeoutConfig, waitForResourceState, } from "../../util/timeout.js";
6
+ import { callEC2Api, createEC2Client } from "./utils.js";
7
+ /**
8
+ * AWS VPC (Virtual Private Cloud) Resource
9
+ *
10
+ * Creates and manages Amazon VPC instances with configurable CIDR blocks,
11
+ * DNS settings, and instance tenancy options.
12
+ *
13
+ * @example
14
+ * // Create a basic VPC with default settings
15
+ * const vpc = await Vpc("main-vpc", {
16
+ * cidrBlock: "10.0.0.0/16",
17
+ * tags: {
18
+ * Name: "main-vpc",
19
+ * Environment: "production"
20
+ * }
21
+ * });
22
+ *
23
+ * @example
24
+ * // Create a VPC with custom DNS settings
25
+ * const vpc = await Vpc("custom-vpc", {
26
+ * cidrBlock: "172.16.0.0/16",
27
+ * enableDnsSupport: true,
28
+ * enableDnsHostnames: true,
29
+ * instanceTenancy: "default",
30
+ * tags: {
31
+ * Name: "custom-vpc"
32
+ * }
33
+ * });
34
+ *
35
+ * @example
36
+ * // Create a VPC with dedicated tenancy and custom timeout
37
+ * const dedicatedVpc = await Vpc("dedicated-vpc", {
38
+ * cidrBlock: "192.168.0.0/16",
39
+ * instanceTenancy: "dedicated",
40
+ * enableDnsSupport: false,
41
+ * enableDnsHostnames: false,
42
+ * timeout: {
43
+ * maxAttempts: 90,
44
+ * delayMs: 3000
45
+ * },
46
+ * tags: {
47
+ * Name: "dedicated-vpc",
48
+ * Type: "isolated"
49
+ * }
50
+ * });
51
+ */
52
+ export const Vpc = Resource("aws::Vpc", async function (_id, props) {
53
+ const client = await createEC2Client();
54
+ const timeoutConfig = mergeTimeoutConfig(VPC_TIMEOUT, props.timeout);
55
+ if (this.phase === "delete") {
56
+ if (this.output?.vpcId) {
57
+ logger.log(`🗑️ Deleting VPC: ${this.output.vpcId}`);
58
+ // Simply delete the VPC - other resources should handle themselves
59
+ await ignore("InvalidVpcID.NotFound", async () => {
60
+ await callEC2Api(client, "DeleteVpc", parseVpcXmlResponse, {
61
+ VpcId: this.output.vpcId,
62
+ });
63
+ });
64
+ // Wait for VPC to be fully deleted
65
+ await waitForVpcDeleted(client, this.output.vpcId, timeoutConfig);
66
+ logger.log(` ✅ VPC ${this.output.vpcId} deletion completed`);
67
+ }
68
+ return this.destroy();
69
+ }
70
+ let vpc;
71
+ if (this.phase === "update" && this.output?.vpcId) {
72
+ // Get existing VPC
73
+ const response = await callEC2Api(client, "DescribeVpcs", parseVpcXmlResponse, {
74
+ "VpcId.1": this.output.vpcId,
75
+ });
76
+ if (!response.Vpcs?.[0]) {
77
+ throw new Error(`VPC ${this.output.vpcId} not found`);
78
+ }
79
+ vpc = response.Vpcs[0];
80
+ // Update DNS attributes if they've changed
81
+ if (props.enableDnsSupport !== undefined) {
82
+ const modifyParams = {
83
+ VpcId: vpc.VpcId,
84
+ EnableDnsSupport: {
85
+ Value: props.enableDnsSupport,
86
+ },
87
+ };
88
+ await callEC2Api(client, "ModifyVpcAttribute", parseVpcXmlResponse, convertModifyVpcAttributeParamsToAwsFormat(modifyParams));
89
+ }
90
+ if (props.enableDnsHostnames !== undefined) {
91
+ const modifyParams = {
92
+ VpcId: vpc.VpcId,
93
+ EnableDnsHostnames: {
94
+ Value: props.enableDnsHostnames,
95
+ },
96
+ };
97
+ await callEC2Api(client, "ModifyVpcAttribute", parseVpcXmlResponse, convertModifyVpcAttributeParamsToAwsFormat(modifyParams));
98
+ }
99
+ }
100
+ else {
101
+ // Create new VPC
102
+ const createVpcParams = {
103
+ CidrBlock: props.cidrBlock,
104
+ InstanceTenancy: props.instanceTenancy || "default",
105
+ };
106
+ // Add tags if specified
107
+ if (props.tags) {
108
+ createVpcParams.TagSpecifications = [
109
+ {
110
+ ResourceType: "vpc",
111
+ Tags: Object.entries(props.tags).map(([key, value]) => ({
112
+ Key: key,
113
+ Value: value,
114
+ })),
115
+ },
116
+ ];
117
+ }
118
+ const createParams = convertVpcParamsToAwsFormat(createVpcParams);
119
+ const response = await callEC2Api(client, "CreateVpc", parseVpcXmlResponse, createParams);
120
+ if (!response.Vpc) {
121
+ throw new Error(`Failed to create VPC - Response: ${JSON.stringify(response)}`);
122
+ }
123
+ vpc = response.Vpc;
124
+ // Wait for VPC to be available
125
+ await waitForVpcAvailable(client, vpc.VpcId, timeoutConfig);
126
+ // Set DNS attributes if specified
127
+ if (props.enableDnsSupport !== undefined) {
128
+ const modifyParams = {
129
+ VpcId: vpc.VpcId,
130
+ EnableDnsSupport: {
131
+ Value: props.enableDnsSupport,
132
+ },
133
+ };
134
+ await callEC2Api(client, "ModifyVpcAttribute", parseVpcXmlResponse, convertModifyVpcAttributeParamsToAwsFormat(modifyParams));
135
+ }
136
+ if (props.enableDnsHostnames !== undefined) {
137
+ const modifyParams = {
138
+ VpcId: vpc.VpcId,
139
+ EnableDnsHostnames: {
140
+ Value: props.enableDnsHostnames,
141
+ },
142
+ };
143
+ await callEC2Api(client, "ModifyVpcAttribute", parseVpcXmlResponse, convertModifyVpcAttributeParamsToAwsFormat(modifyParams));
144
+ }
145
+ }
146
+ return this({
147
+ vpcId: vpc.VpcId,
148
+ state: vpc.State,
149
+ isDefault: vpc.IsDefault || false,
150
+ dhcpOptionsId: vpc.DhcpOptionsId,
151
+ ...props,
152
+ });
153
+ });
154
+ /**
155
+ * VPC timeout constants
156
+ */
157
+ export const VPC_TIMEOUT = {
158
+ maxAttempts: 60,
159
+ delayMs: 2000, // 2 seconds - VPCs are medium speed resources
160
+ };
161
+ /**
162
+ * Helper function to convert typed VPC parameters to AWS API format
163
+ */
164
+ function convertVpcParamsToAwsFormat(params) {
165
+ const awsParams = {
166
+ CidrBlock: params.CidrBlock,
167
+ };
168
+ if (params.InstanceTenancy) {
169
+ awsParams.InstanceTenancy = params.InstanceTenancy;
170
+ }
171
+ if (params.AmazonProvidedIpv6CidrBlock !== undefined) {
172
+ awsParams.AmazonProvidedIpv6CidrBlock =
173
+ params.AmazonProvidedIpv6CidrBlock.toString();
174
+ }
175
+ if (params.Ipv6Pool) {
176
+ awsParams.Ipv6Pool = params.Ipv6Pool;
177
+ }
178
+ if (params.Ipv6CidrBlock) {
179
+ awsParams.Ipv6CidrBlock = params.Ipv6CidrBlock;
180
+ }
181
+ if (params.Ipv4IpamPoolId) {
182
+ awsParams.Ipv4IpamPoolId = params.Ipv4IpamPoolId;
183
+ }
184
+ if (params.Ipv4NetmaskLength !== undefined) {
185
+ awsParams.Ipv4NetmaskLength = params.Ipv4NetmaskLength.toString();
186
+ }
187
+ if (params.Ipv6IpamPoolId) {
188
+ awsParams.Ipv6IpamPoolId = params.Ipv6IpamPoolId;
189
+ }
190
+ if (params.Ipv6NetmaskLength !== undefined) {
191
+ awsParams.Ipv6NetmaskLength = params.Ipv6NetmaskLength.toString();
192
+ }
193
+ if (params.DryRun !== undefined) {
194
+ awsParams.DryRun = params.DryRun.toString();
195
+ }
196
+ // Handle TagSpecifications
197
+ if (params.TagSpecifications) {
198
+ params.TagSpecifications.forEach((tagSpec, specIndex) => {
199
+ const specNum = specIndex + 1;
200
+ awsParams[`TagSpecification.${specNum}.ResourceType`] =
201
+ tagSpec.ResourceType;
202
+ tagSpec.Tags.forEach((tag, tagIndex) => {
203
+ const tagNum = tagIndex + 1;
204
+ awsParams[`TagSpecification.${specNum}.Tag.${tagNum}.Key`] = tag.Key;
205
+ awsParams[`TagSpecification.${specNum}.Tag.${tagNum}.Value`] =
206
+ tag.Value;
207
+ });
208
+ });
209
+ }
210
+ return awsParams;
211
+ }
212
+ function convertModifyVpcAttributeParamsToAwsFormat(params) {
213
+ const awsParams = {
214
+ VpcId: params.VpcId,
215
+ };
216
+ if (params.EnableDnsHostnames) {
217
+ awsParams["EnableDnsHostnames.Value"] =
218
+ params.EnableDnsHostnames.Value.toString();
219
+ }
220
+ if (params.EnableDnsSupport) {
221
+ awsParams["EnableDnsSupport.Value"] =
222
+ params.EnableDnsSupport.Value.toString();
223
+ }
224
+ if (params.EnableNetworkAddressUsageMetrics) {
225
+ awsParams["EnableNetworkAddressUsageMetrics.Value"] =
226
+ params.EnableNetworkAddressUsageMetrics.Value.toString();
227
+ }
228
+ if (params.DryRun !== undefined) {
229
+ awsParams.DryRun = params.DryRun.toString();
230
+ }
231
+ return awsParams;
232
+ }
233
+ /**
234
+ * Parse XML responses specifically for VPC operations
235
+ */
236
+ function parseVpcXmlResponse(xmlText) {
237
+ const parser = new XMLParser({
238
+ ignoreAttributes: true,
239
+ parseAttributeValue: true,
240
+ parseTagValue: true,
241
+ trimValues: true,
242
+ });
243
+ const parsed = parser.parse(xmlText);
244
+ const result = {};
245
+ // Parse CreateVpcResponse
246
+ if (parsed.CreateVpcResponse) {
247
+ const vpc = parsed.CreateVpcResponse.vpc;
248
+ if (vpc) {
249
+ result.Vpc = {
250
+ VpcId: vpc.vpcId,
251
+ State: vpc.state,
252
+ CidrBlock: vpc.cidrBlock,
253
+ DhcpOptionsId: vpc.dhcpOptionsId,
254
+ InstanceTenancy: vpc.instanceTenancy,
255
+ IsDefault: vpc.isDefault === "true" || vpc.isDefault === true,
256
+ Tags: vpc.tagSet?.item
257
+ ? Array.isArray(vpc.tagSet.item)
258
+ ? vpc.tagSet.item.map((tag) => ({ Key: tag.key, Value: tag.value }))
259
+ : [{ Key: vpc.tagSet.item.key, Value: vpc.tagSet.item.value }]
260
+ : undefined,
261
+ CidrBlockAssociationSet: vpc.cidrBlockAssociationSet?.item
262
+ ? Array.isArray(vpc.cidrBlockAssociationSet.item)
263
+ ? vpc.cidrBlockAssociationSet.item.map((assoc) => ({
264
+ AssociationId: assoc.associationId,
265
+ CidrBlock: assoc.cidrBlock,
266
+ CidrBlockState: {
267
+ State: assoc.cidrBlockState.state,
268
+ StatusMessage: assoc.cidrBlockState.statusMessage,
269
+ },
270
+ }))
271
+ : [
272
+ {
273
+ AssociationId: vpc.cidrBlockAssociationSet.item.associationId,
274
+ CidrBlock: vpc.cidrBlockAssociationSet.item.cidrBlock,
275
+ CidrBlockState: {
276
+ State: vpc.cidrBlockAssociationSet.item.cidrBlockState
277
+ .state,
278
+ StatusMessage: vpc.cidrBlockAssociationSet.item.cidrBlockState
279
+ .statusMessage,
280
+ },
281
+ },
282
+ ]
283
+ : undefined,
284
+ Ipv6CidrBlockAssociationSet: vpc.ipv6CidrBlockAssociationSet?.item
285
+ ? Array.isArray(vpc.ipv6CidrBlockAssociationSet.item)
286
+ ? vpc.ipv6CidrBlockAssociationSet.item.map((assoc) => ({
287
+ AssociationId: assoc.associationId,
288
+ Ipv6CidrBlock: assoc.ipv6CidrBlock,
289
+ Ipv6CidrBlockState: {
290
+ State: assoc.ipv6CidrBlockState.state,
291
+ StatusMessage: assoc.ipv6CidrBlockState.statusMessage,
292
+ },
293
+ NetworkBorderGroup: assoc.networkBorderGroup,
294
+ Ipv6Pool: assoc.ipv6Pool,
295
+ }))
296
+ : [
297
+ {
298
+ AssociationId: vpc.ipv6CidrBlockAssociationSet.item.associationId,
299
+ Ipv6CidrBlock: vpc.ipv6CidrBlockAssociationSet.item.ipv6CidrBlock,
300
+ Ipv6CidrBlockState: {
301
+ State: vpc.ipv6CidrBlockAssociationSet.item
302
+ .ipv6CidrBlockState.state,
303
+ StatusMessage: vpc.ipv6CidrBlockAssociationSet.item.ipv6CidrBlockState
304
+ .statusMessage,
305
+ },
306
+ NetworkBorderGroup: vpc.ipv6CidrBlockAssociationSet.item.networkBorderGroup,
307
+ Ipv6Pool: vpc.ipv6CidrBlockAssociationSet.item.ipv6Pool,
308
+ },
309
+ ]
310
+ : undefined,
311
+ OwnerId: vpc.ownerId,
312
+ };
313
+ }
314
+ }
315
+ // Parse DescribeVpcsResponse
316
+ if (parsed.DescribeVpcsResponse) {
317
+ const vpcSet = parsed.DescribeVpcsResponse.vpcSet;
318
+ if (vpcSet?.item) {
319
+ const vpcs = Array.isArray(vpcSet.item) ? vpcSet.item : [vpcSet.item];
320
+ result.Vpcs = vpcs.map((vpc) => ({
321
+ VpcId: vpc.vpcId,
322
+ State: vpc.state,
323
+ CidrBlock: vpc.cidrBlock,
324
+ DhcpOptionsId: vpc.dhcpOptionsId,
325
+ InstanceTenancy: vpc.instanceTenancy,
326
+ IsDefault: vpc.isDefault === "true" || vpc.isDefault === true,
327
+ Tags: vpc.tagSet?.item
328
+ ? Array.isArray(vpc.tagSet.item)
329
+ ? vpc.tagSet.item.map((tag) => ({ Key: tag.key, Value: tag.value }))
330
+ : [{ Key: vpc.tagSet.item.key, Value: vpc.tagSet.item.value }]
331
+ : undefined,
332
+ CidrBlockAssociationSet: vpc.cidrBlockAssociationSet?.item
333
+ ? Array.isArray(vpc.cidrBlockAssociationSet.item)
334
+ ? vpc.cidrBlockAssociationSet.item.map((assoc) => ({
335
+ AssociationId: assoc.associationId,
336
+ CidrBlock: assoc.cidrBlock,
337
+ CidrBlockState: {
338
+ State: assoc.cidrBlockState.state,
339
+ StatusMessage: assoc.cidrBlockState.statusMessage,
340
+ },
341
+ }))
342
+ : [
343
+ {
344
+ AssociationId: vpc.cidrBlockAssociationSet.item.associationId,
345
+ CidrBlock: vpc.cidrBlockAssociationSet.item.cidrBlock,
346
+ CidrBlockState: {
347
+ State: vpc.cidrBlockAssociationSet.item.cidrBlockState
348
+ .state,
349
+ StatusMessage: vpc.cidrBlockAssociationSet.item.cidrBlockState
350
+ .statusMessage,
351
+ },
352
+ },
353
+ ]
354
+ : undefined,
355
+ Ipv6CidrBlockAssociationSet: vpc.ipv6CidrBlockAssociationSet?.item
356
+ ? Array.isArray(vpc.ipv6CidrBlockAssociationSet.item)
357
+ ? vpc.ipv6CidrBlockAssociationSet.item.map((assoc) => ({
358
+ AssociationId: assoc.associationId,
359
+ Ipv6CidrBlock: assoc.ipv6CidrBlock,
360
+ Ipv6CidrBlockState: {
361
+ State: assoc.ipv6CidrBlockState.state,
362
+ StatusMessage: assoc.ipv6CidrBlockState.statusMessage,
363
+ },
364
+ NetworkBorderGroup: assoc.networkBorderGroup,
365
+ Ipv6Pool: assoc.ipv6Pool,
366
+ }))
367
+ : [
368
+ {
369
+ AssociationId: vpc.ipv6CidrBlockAssociationSet.item.associationId,
370
+ Ipv6CidrBlock: vpc.ipv6CidrBlockAssociationSet.item.ipv6CidrBlock,
371
+ Ipv6CidrBlockState: {
372
+ State: vpc.ipv6CidrBlockAssociationSet.item
373
+ .ipv6CidrBlockState.state,
374
+ StatusMessage: vpc.ipv6CidrBlockAssociationSet.item.ipv6CidrBlockState
375
+ .statusMessage,
376
+ },
377
+ NetworkBorderGroup: vpc.ipv6CidrBlockAssociationSet.item.networkBorderGroup,
378
+ Ipv6Pool: vpc.ipv6CidrBlockAssociationSet.item.ipv6Pool,
379
+ },
380
+ ]
381
+ : undefined,
382
+ OwnerId: vpc.ownerId,
383
+ }));
384
+ }
385
+ else {
386
+ result.Vpcs = [];
387
+ }
388
+ }
389
+ // Parse DescribeSecurityGroupsResponse
390
+ if (parsed.DescribeSecurityGroupsResponse) {
391
+ const securityGroupSet = parsed.DescribeSecurityGroupsResponse.securityGroupInfo;
392
+ if (securityGroupSet?.item) {
393
+ const securityGroups = Array.isArray(securityGroupSet.item)
394
+ ? securityGroupSet.item
395
+ : [securityGroupSet.item];
396
+ result.SecurityGroups = securityGroups.map((sg) => ({
397
+ GroupId: sg.groupId,
398
+ GroupName: sg.groupName,
399
+ VpcId: sg.vpcId,
400
+ }));
401
+ }
402
+ else {
403
+ result.SecurityGroups = [];
404
+ }
405
+ }
406
+ // Handle success responses
407
+ if (parsed.ModifyVpcAttributeResponse || parsed.DeleteVpcResponse) {
408
+ result.success = true;
409
+ }
410
+ return result;
411
+ }
412
+ /**
413
+ * Wait for VPC to be in available state
414
+ */
415
+ async function waitForVpcAvailable(client, vpcId, timeoutConfig) {
416
+ const checkFunction = async () => {
417
+ const response = await callEC2Api(client, "DescribeVpcs", parseVpcXmlResponse, {
418
+ "VpcId.1": vpcId,
419
+ });
420
+ return response.Vpcs?.[0];
421
+ };
422
+ const isReady = (vpc) => {
423
+ return vpc?.State === "available";
424
+ };
425
+ await waitForResourceState(checkFunction, isReady, timeoutConfig, vpcId, "VPC", "is now available");
426
+ }
427
+ /**
428
+ * Wait for VPC to be deleted
429
+ */
430
+ async function waitForVpcDeleted(client, vpcId, timeoutConfig) {
431
+ const checkFunction = async () => {
432
+ try {
433
+ const response = await callEC2Api(client, "DescribeVpcs", parseVpcXmlResponse, {
434
+ "VpcId.1": vpcId,
435
+ });
436
+ return response.Vpcs?.[0];
437
+ }
438
+ catch (error) {
439
+ // If VPC is not found, it's been deleted - return undefined
440
+ if (error.code === "InvalidVpcID.NotFound" ||
441
+ error.code === "InvalidVpc.NotFound") {
442
+ return undefined;
443
+ }
444
+ throw error;
445
+ }
446
+ };
447
+ const isReady = (vpc) => {
448
+ // VPC is deleted if it doesn't exist
449
+ return !vpc;
450
+ };
451
+ await waitForResourceState(checkFunction, isReady, timeoutConfig, vpcId, "VPC", "be deleted");
452
+ }
453
+ //# sourceMappingURL=vpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vpc.js","sourceRoot":"","sources":["../../../src/aws/ec2/vpc.ts"],"names":[],"mappings":"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"}
@@ -9,4 +9,11 @@ export * from "./s3-state-store.ts";
9
9
  export * from "./ses.ts";
10
10
  export * from "./ssm-parameter.ts";
11
11
  export * from "./table.ts";
12
+ export * from "./ec2/internet-gateway.ts";
13
+ export * from "./ec2/nat-gateway.ts";
14
+ export * from "./ec2/route-table.ts";
15
+ export * from "./ec2/route.ts";
16
+ export * from "./ec2/security-group.ts";
17
+ export * from "./ec2/subnet.ts";
18
+ export * from "./ec2/vpc.ts";
12
19
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAG3B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
package/lib/aws/index.js CHANGED
@@ -9,4 +9,12 @@ export * from "./s3-state-store.js";
9
9
  export * from "./ses.js";
10
10
  export * from "./ssm-parameter.js";
11
11
  export * from "./table.js";
12
+ // EC2 Resources
13
+ export * from "./ec2/internet-gateway.js";
14
+ export * from "./ec2/nat-gateway.js";
15
+ export * from "./ec2/route-table.js";
16
+ export * from "./ec2/route.js";
17
+ export * from "./ec2/security-group.js";
18
+ export * from "./ec2/subnet.js";
19
+ export * from "./ec2/vpc.js";
12
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,UAAU,CAAC;AACzB,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAE3B,gBAAgB;AAChB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { AwsClient } from "aws4fetch";
2
+ /**
3
+ * Get AWS region from configuration
4
+ */
5
+ export declare const getRegion: import("@smithy/types").Provider<any>;
6
+ /**
7
+ * AWS Service Configuration
8
+ */
9
+ export interface AwsServiceConfig {
10
+ service: string;
11
+ version: string;
12
+ endpoint: (region: string) => string;
13
+ }
14
+ /**
15
+ * AWS API Caller interface
16
+ */
17
+ export interface AwsApiCaller<T = any> {
18
+ createClient(): Promise<AwsClient>;
19
+ callApi<R = T>(client: AwsClient, action: string, params?: Record<string, any>): Promise<R>;
20
+ }
21
+ /**
22
+ * Create an AWS API caller for a specific service
23
+ */
24
+ export declare function getAwsApiCaller<T = any>(config: AwsServiceConfig, responseParser: (xmlText: string) => T): AwsApiCaller<T>;
25
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/aws/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC;;GAEG;AACH,eAAO,MAAM,SAAS,uCAKpB,CAAC;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,GAAG;IACnC,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC,GAAG,CAAC,EACX,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC3B,OAAO,CAAC,CAAC,CAAC,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,CAAC,GAAG,GAAG,EACrC,MAAM,EAAE,gBAAgB,EACxB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GACrC,YAAY,CAAC,CAAC,CAAC,CA8FjB"}
@@ -0,0 +1,89 @@
1
+ import { fromNodeProviderChain } from "@aws-sdk/credential-providers";
2
+ import { loadConfig } from "@smithy/node-config-provider";
3
+ import { AwsClient } from "aws4fetch";
4
+ import { flattenParams } from "../util/params.js";
5
+ /**
6
+ * Get AWS region from configuration
7
+ */
8
+ export const getRegion = loadConfig({
9
+ environmentVariableSelector: (env) => env.AWS_REGION || env.AWS_DEFAULT_REGION,
10
+ configFileSelector: (profile) => profile.region,
11
+ default: "us-east-1",
12
+ });
13
+ /**
14
+ * Create an AWS API caller for a specific service
15
+ */
16
+ export function getAwsApiCaller(config, responseParser) {
17
+ return {
18
+ async createClient() {
19
+ const credentials = await fromNodeProviderChain()();
20
+ const region = await getRegion();
21
+ return new AwsClient({
22
+ ...credentials,
23
+ service: config.service,
24
+ region,
25
+ });
26
+ },
27
+ async callApi(client, action, params = {}) {
28
+ // Try the API call, and retry once with fresh credentials on auth failure
29
+ for (let attempt = 1; attempt <= 2; attempt++) {
30
+ try {
31
+ const region = await getRegion();
32
+ const url = config.endpoint(region);
33
+ const body = new URLSearchParams({
34
+ Action: action,
35
+ Version: config.version,
36
+ ...flattenParams(params),
37
+ });
38
+ const signedRequest = await client.sign(url, {
39
+ method: "POST",
40
+ headers: {
41
+ "Content-Type": "application/x-www-form-urlencoded",
42
+ },
43
+ body: body.toString(),
44
+ });
45
+ const response = await fetch(signedRequest);
46
+ if (!response.ok) {
47
+ const errorText = await response.text();
48
+ // Parse AWS error code from XML response
49
+ const errorCodeMatch = errorText.match(/<Code>([^<]+)<\/Code>/);
50
+ const errorCode = errorCodeMatch ? errorCodeMatch[1] : null;
51
+ // If this is an auth failure and we haven't retried yet, create a fresh client and retry
52
+ if (errorCode === "AuthFailure" && attempt === 1) {
53
+ console.log(`🔄 Auth failure detected, refreshing credentials and retrying ${action}...`);
54
+ // Create a fresh client with new credentials
55
+ const freshCredentials = await fromNodeProviderChain()();
56
+ const region = await getRegion();
57
+ client = new AwsClient({
58
+ ...freshCredentials,
59
+ service: config.service,
60
+ region,
61
+ });
62
+ continue; // Retry with fresh client
63
+ }
64
+ const error = new Error(`${config.service.toUpperCase()} API error: ${response.status} ${response.statusText}\n${errorText}`);
65
+ // Set the error code for the ignore function
66
+ if (errorCode) {
67
+ error.code = errorCode;
68
+ }
69
+ throw error;
70
+ }
71
+ const xmlText = await response.text();
72
+ const parsed = responseParser(xmlText);
73
+ return parsed;
74
+ }
75
+ catch (error) {
76
+ // If it's not an auth failure or we've already retried, throw the error
77
+ if (attempt === 2 ||
78
+ !error?.message?.includes("AuthFailure")) {
79
+ throw error;
80
+ }
81
+ // Otherwise, continue to retry
82
+ }
83
+ }
84
+ // This should never be reached, but TypeScript needs it
85
+ throw new Error("Unexpected error in API call retry logic");
86
+ },
87
+ };
88
+ }
89
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/aws/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * The build date used as the default worker compatibility date.
3
+ * This is set to the date when the package was built.
4
+ */
5
+ export declare const BUILD_DATE = "2025-07-13";
6
+ //# sourceMappingURL=build-date.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-date.d.ts","sourceRoot":"","sources":["../src/build-date.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,eAAO,MAAM,UAAU,eAAe,CAAC"}
@@ -0,0 +1,8 @@
1
+ // This file is auto-generated during build
2
+ // Do not edit manually
3
+ /**
4
+ * The build date used as the default worker compatibility date.
5
+ * This is set to the date when the package was built.
6
+ */
7
+ export const BUILD_DATE = "2025-07-13";
8
+ //# sourceMappingURL=build-date.js.map