alchemy 0.53.0 → 0.55.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.
Files changed (214) hide show
  1. package/bin/alchemy.js +196353 -0
  2. package/bin/alchemy.ts +2 -2
  3. package/bin/commands/init.ts +1190 -0
  4. package/bin/constants.ts +18 -0
  5. package/bin/services/execute-alchemy.ts +7 -2
  6. package/bin/services/package-manager.ts +1 -1
  7. package/bin/types.ts +14 -5
  8. package/lib/aws/ec2/index.d.ts +10 -0
  9. package/lib/aws/ec2/index.d.ts.map +1 -0
  10. package/lib/aws/ec2/index.js +10 -0
  11. package/lib/aws/ec2/index.js.map +1 -0
  12. package/lib/aws/ec2/internet-gateway-attachment.d.ts +150 -0
  13. package/lib/aws/ec2/internet-gateway-attachment.d.ts.map +1 -0
  14. package/lib/aws/ec2/internet-gateway-attachment.js +248 -0
  15. package/lib/aws/ec2/internet-gateway-attachment.js.map +1 -0
  16. package/lib/aws/ec2/internet-gateway.d.ts +132 -0
  17. package/lib/aws/ec2/internet-gateway.d.ts.map +1 -0
  18. package/lib/aws/ec2/internet-gateway.js +311 -0
  19. package/lib/aws/ec2/internet-gateway.js.map +1 -0
  20. package/lib/aws/ec2/nat-gateway.d.ts +145 -0
  21. package/lib/aws/ec2/nat-gateway.d.ts.map +1 -0
  22. package/lib/aws/ec2/nat-gateway.js +618 -0
  23. package/lib/aws/ec2/nat-gateway.js.map +1 -0
  24. package/lib/aws/ec2/route-table-association.d.ts +134 -0
  25. package/lib/aws/ec2/route-table-association.d.ts.map +1 -0
  26. package/lib/aws/ec2/route-table-association.js +364 -0
  27. package/lib/aws/ec2/route-table-association.js.map +1 -0
  28. package/lib/aws/ec2/route-table.d.ts +94 -0
  29. package/lib/aws/ec2/route-table.d.ts.map +1 -0
  30. package/lib/aws/ec2/route-table.js +253 -0
  31. package/lib/aws/ec2/route-table.js.map +1 -0
  32. package/lib/aws/ec2/route.d.ts +130 -0
  33. package/lib/aws/ec2/route.d.ts.map +1 -0
  34. package/lib/aws/ec2/route.js +253 -0
  35. package/lib/aws/ec2/route.js.map +1 -0
  36. package/lib/aws/ec2/security-group-rule.d.ts +84 -0
  37. package/lib/aws/ec2/security-group-rule.d.ts.map +1 -0
  38. package/lib/aws/ec2/security-group-rule.js +123 -0
  39. package/lib/aws/ec2/security-group-rule.js.map +1 -0
  40. package/lib/aws/ec2/security-group.d.ts +84 -0
  41. package/lib/aws/ec2/security-group.d.ts.map +1 -0
  42. package/lib/aws/ec2/security-group.js +207 -0
  43. package/lib/aws/ec2/security-group.js.map +1 -0
  44. package/lib/aws/ec2/subnet.d.ts +110 -0
  45. package/lib/aws/ec2/subnet.d.ts.map +1 -0
  46. package/lib/aws/ec2/subnet.js +336 -0
  47. package/lib/aws/ec2/subnet.js.map +1 -0
  48. package/lib/aws/ec2/utils.d.ts +15 -0
  49. package/lib/aws/ec2/utils.d.ts.map +1 -0
  50. package/lib/aws/ec2/utils.js +79 -0
  51. package/lib/aws/ec2/utils.js.map +1 -0
  52. package/lib/aws/ec2/vpc.d.ts +160 -0
  53. package/lib/aws/ec2/vpc.d.ts.map +1 -0
  54. package/lib/aws/ec2/vpc.js +453 -0
  55. package/lib/aws/ec2/vpc.js.map +1 -0
  56. package/lib/aws/index.d.ts +7 -0
  57. package/lib/aws/index.d.ts.map +1 -1
  58. package/lib/aws/index.js +8 -0
  59. package/lib/aws/index.js.map +1 -1
  60. package/lib/aws/utils.d.ts +25 -0
  61. package/lib/aws/utils.d.ts.map +1 -0
  62. package/lib/aws/utils.js +89 -0
  63. package/lib/aws/utils.js.map +1 -0
  64. package/lib/build-date.d.ts +6 -0
  65. package/lib/build-date.d.ts.map +1 -0
  66. package/lib/build-date.js +8 -0
  67. package/lib/build-date.js.map +1 -0
  68. package/lib/cloudflare/astro.d.ts.map +1 -1
  69. package/lib/cloudflare/astro.js +4 -3
  70. package/lib/cloudflare/astro.js.map +1 -1
  71. package/lib/cloudflare/bundle/externals.d.ts +3 -0
  72. package/lib/cloudflare/bundle/externals.d.ts.map +1 -0
  73. package/lib/cloudflare/bundle/externals.js +35 -0
  74. package/lib/cloudflare/bundle/externals.js.map +1 -0
  75. package/lib/cloudflare/bundle/internal-worker-bundle.d.ts +8 -1
  76. package/lib/cloudflare/bundle/internal-worker-bundle.d.ts.map +1 -1
  77. package/lib/cloudflare/bundle/internal-worker-bundle.js +11 -4
  78. package/lib/cloudflare/bundle/internal-worker-bundle.js.map +1 -1
  79. package/lib/cloudflare/bundle/plugin-hot-reload.d.ts +4 -1
  80. package/lib/cloudflare/bundle/plugin-hot-reload.d.ts.map +1 -1
  81. package/lib/cloudflare/bundle/plugin-hot-reload.js +27 -11
  82. package/lib/cloudflare/bundle/plugin-hot-reload.js.map +1 -1
  83. package/lib/cloudflare/bundle/plugin-hybrid-node-compat.js +5 -1
  84. package/lib/cloudflare/bundle/plugin-hybrid-node-compat.js.map +1 -1
  85. package/lib/cloudflare/bundle/plugin-wasm.d.ts +6 -2
  86. package/lib/cloudflare/bundle/plugin-wasm.d.ts.map +1 -1
  87. package/lib/cloudflare/bundle/plugin-wasm.js +21 -47
  88. package/lib/cloudflare/bundle/plugin-wasm.js.map +1 -1
  89. package/lib/cloudflare/bundle/validate-node-compat.d.ts +2 -1
  90. package/lib/cloudflare/bundle/validate-node-compat.d.ts.map +1 -1
  91. package/lib/cloudflare/bundle/validate-node-compat.js +5 -4
  92. package/lib/cloudflare/bundle/validate-node-compat.js.map +1 -1
  93. package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
  94. package/lib/cloudflare/compatibility-date.gen.js +1 -1
  95. package/lib/cloudflare/d1-database.js +1 -1
  96. package/lib/cloudflare/d1-database.js.map +1 -1
  97. package/lib/cloudflare/d1-migrations.d.ts.map +1 -1
  98. package/lib/cloudflare/d1-migrations.js +8 -10
  99. package/lib/cloudflare/d1-migrations.js.map +1 -1
  100. package/lib/cloudflare/miniflare/miniflare-worker-options.d.ts +3 -3
  101. package/lib/cloudflare/miniflare/miniflare-worker-options.d.ts.map +1 -1
  102. package/lib/cloudflare/miniflare/miniflare-worker-options.js +23 -6
  103. package/lib/cloudflare/miniflare/miniflare-worker-options.js.map +1 -1
  104. package/lib/cloudflare/miniflare/miniflare.d.ts.map +1 -1
  105. package/lib/cloudflare/miniflare/miniflare.js +2 -4
  106. package/lib/cloudflare/miniflare/miniflare.js.map +1 -1
  107. package/lib/cloudflare/miniflare/remote-binding-proxy.d.ts.map +1 -1
  108. package/lib/cloudflare/miniflare/remote-binding-proxy.js +4 -6
  109. package/lib/cloudflare/miniflare/remote-binding-proxy.js.map +1 -1
  110. package/lib/cloudflare/react-router.d.ts +4 -0
  111. package/lib/cloudflare/react-router.d.ts.map +1 -1
  112. package/lib/cloudflare/react-router.js +8 -5
  113. package/lib/cloudflare/react-router.js.map +1 -1
  114. package/lib/cloudflare/worker-bundle.d.ts +80 -0
  115. package/lib/cloudflare/worker-bundle.d.ts.map +1 -0
  116. package/lib/cloudflare/worker-bundle.js +266 -0
  117. package/lib/cloudflare/worker-bundle.js.map +1 -0
  118. package/lib/cloudflare/worker.d.ts +1 -1
  119. package/lib/cloudflare/worker.d.ts.map +1 -1
  120. package/lib/cloudflare/worker.js +81 -195
  121. package/lib/cloudflare/worker.js.map +1 -1
  122. package/lib/esbuild/bundle.d.ts +1 -0
  123. package/lib/esbuild/bundle.d.ts.map +1 -1
  124. package/lib/state/cloudflare-state-store.js +1 -5
  125. package/lib/state/cloudflare-state-store.js.map +1 -1
  126. package/lib/state/dofs-state-store/store.d.ts.map +1 -1
  127. package/lib/state/dofs-state-store/store.js +4 -4
  128. package/lib/state/dofs-state-store/store.js.map +1 -1
  129. package/lib/util/params.d.ts +5 -0
  130. package/lib/util/params.d.ts.map +1 -0
  131. package/lib/util/params.js +30 -0
  132. package/lib/util/params.js.map +1 -0
  133. package/lib/util/timeout.d.ts +31 -0
  134. package/lib/util/timeout.d.ts.map +1 -0
  135. package/lib/util/timeout.js +109 -0
  136. package/lib/util/timeout.js.map +1 -0
  137. package/lib/util/xml.d.ts +5 -0
  138. package/lib/util/xml.d.ts.map +1 -0
  139. package/lib/util/xml.js +8 -0
  140. package/lib/util/xml.js.map +1 -0
  141. package/package.json +12 -5
  142. package/src/aws/ec2/index.ts +9 -0
  143. package/src/aws/ec2/internet-gateway-attachment.ts +468 -0
  144. package/src/aws/ec2/internet-gateway.ts +557 -0
  145. package/src/aws/ec2/nat-gateway.ts +1123 -0
  146. package/src/aws/ec2/route-table-association.ts +747 -0
  147. package/src/aws/ec2/route-table.ts +452 -0
  148. package/src/aws/ec2/route.ts +447 -0
  149. package/src/aws/ec2/security-group-rule.ts +229 -0
  150. package/src/aws/ec2/security-group.ts +418 -0
  151. package/src/aws/ec2/subnet.ts +625 -0
  152. package/src/aws/ec2/utils.ts +102 -0
  153. package/src/aws/ec2/vpc.ts +969 -0
  154. package/src/aws/index.ts +9 -0
  155. package/src/aws/utils.ts +137 -0
  156. package/src/build-date.ts +8 -0
  157. package/src/cloudflare/astro.ts +4 -3
  158. package/src/cloudflare/bundle/externals.ts +36 -0
  159. package/src/cloudflare/bundle/internal-worker-bundle.ts +12 -3
  160. package/src/cloudflare/bundle/plugin-hot-reload.ts +32 -12
  161. package/src/cloudflare/bundle/plugin-hybrid-node-compat.ts +6 -1
  162. package/src/cloudflare/bundle/plugin-wasm.ts +26 -54
  163. package/src/cloudflare/bundle/validate-node-compat.ts +6 -5
  164. package/src/cloudflare/compatibility-date.gen.ts +1 -1
  165. package/src/cloudflare/d1-database.ts +1 -1
  166. package/src/cloudflare/d1-migrations.ts +19 -18
  167. package/src/cloudflare/miniflare/miniflare-worker-options.ts +27 -13
  168. package/src/cloudflare/miniflare/miniflare.ts +2 -4
  169. package/src/cloudflare/miniflare/remote-binding-proxy.ts +5 -7
  170. package/src/cloudflare/react-router.ts +14 -6
  171. package/src/cloudflare/worker-bundle.ts +364 -0
  172. package/src/cloudflare/worker.ts +104 -241
  173. package/src/state/cloudflare-state-store.ts +1 -5
  174. package/src/state/dofs-state-store/store.ts +4 -4
  175. package/src/util/params.ts +33 -0
  176. package/src/util/timeout.ts +178 -0
  177. package/src/util/xml.ts +7 -0
  178. package/templates/nuxt/package.json +1 -1
  179. package/templates/nuxt/types/env.d.ts +11 -0
  180. package/templates/react-router/workers/app.ts +2 -2
  181. package/templates/rwsdk/.cursor/rules/alchemy_cloudflare.mdc +385 -0
  182. package/templates/rwsdk/wrangler.jsonc +10 -7
  183. package/templates/typescript/tsconfig.json +1 -2
  184. package/bin/alchemy.mjs +0 -51766
  185. package/lib/cloudflare/bundle/esbuild.d.ts +0 -16
  186. package/lib/cloudflare/bundle/esbuild.d.ts.map +0 -1
  187. package/lib/cloudflare/bundle/esbuild.js +0 -159
  188. package/lib/cloudflare/bundle/esbuild.js.map +0 -1
  189. package/lib/cloudflare/bundle/fs.d.ts +0 -18
  190. package/lib/cloudflare/bundle/fs.d.ts.map +0 -1
  191. package/lib/cloudflare/bundle/fs.js +0 -78
  192. package/lib/cloudflare/bundle/fs.js.map +0 -1
  193. package/lib/cloudflare/bundle/index.d.ts +0 -3
  194. package/lib/cloudflare/bundle/index.d.ts.map +0 -1
  195. package/lib/cloudflare/bundle/index.js +0 -2
  196. package/lib/cloudflare/bundle/index.js.map +0 -1
  197. package/lib/cloudflare/bundle/inline.d.ts +0 -12
  198. package/lib/cloudflare/bundle/inline.d.ts.map +0 -1
  199. package/lib/cloudflare/bundle/inline.js +0 -32
  200. package/lib/cloudflare/bundle/inline.js.map +0 -1
  201. package/lib/cloudflare/bundle/normalize.d.ts +0 -21
  202. package/lib/cloudflare/bundle/normalize.d.ts.map +0 -1
  203. package/lib/cloudflare/bundle/normalize.js +0 -49
  204. package/lib/cloudflare/bundle/normalize.js.map +0 -1
  205. package/lib/cloudflare/bundle/shared.d.ts +0 -30
  206. package/lib/cloudflare/bundle/shared.d.ts.map +0 -1
  207. package/lib/cloudflare/bundle/shared.js +0 -34
  208. package/lib/cloudflare/bundle/shared.js.map +0 -1
  209. package/src/cloudflare/bundle/esbuild.ts +0 -194
  210. package/src/cloudflare/bundle/fs.ts +0 -103
  211. package/src/cloudflare/bundle/index.ts +0 -6
  212. package/src/cloudflare/bundle/inline.ts +0 -42
  213. package/src/cloudflare/bundle/normalize.ts +0 -76
  214. package/src/cloudflare/bundle/shared.ts +0 -73
@@ -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":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EACL,kBAAkB,EAElB,oBAAoB,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAuIzD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG,QAAQ,CACzB,UAAU,EACV,KAAK,WAEH,GAAW,EACX,KAAe;IAEf,MAAM,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACvC,MAAM,aAAa,GAAG,kBAAkB,CAAC,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAErE,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;YACvB,MAAM,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YAErD,mEAAmE;YACnE,MAAM,MAAM,CAAC,uBAAuB,EAAE,KAAK,IAAI,EAAE;gBAC/C,MAAM,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE;oBACzD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;iBACzB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,mCAAmC;YACnC,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YAElE,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,KAAK,qBAAqB,CAAC,CAAC;QAChE,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,GAAW,CAAC;IAEhB,IAAI,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QAClD,mBAAmB;QACnB,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB;YACE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SAC7B,CACF,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,YAAY,CAAC,CAAC;QACxD,CAAC;QAED,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEvB,2CAA2C;QAC3C,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,YAAY,GAA6B;gBAC7C,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,gBAAgB,EAAE;oBAChB,KAAK,EAAE,KAAK,CAAC,gBAAgB;iBAC9B;aACF,CAAC;YACF,MAAM,UAAU,CACd,MAAM,EACN,oBAAoB,EACpB,mBAAmB,EACnB,0CAA0C,CAAC,YAAY,CAAC,CACzD,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,YAAY,GAA6B;gBAC7C,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,kBAAkB,EAAE;oBAClB,KAAK,EAAE,KAAK,CAAC,kBAAkB;iBAChC;aACF,CAAC;YACF,MAAM,UAAU,CACd,MAAM,EACN,oBAAoB,EACpB,mBAAmB,EACnB,0CAA0C,CAAC,YAAY,CAAC,CACzD,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iBAAiB;QACjB,MAAM,eAAe,GAAoB;YACvC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,SAAS;SACpD,CAAC;QAEF,wBAAwB;QACxB,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,eAAe,CAAC,iBAAiB,GAAG;gBAClC;oBACE,YAAY,EAAE,KAAK;oBACnB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;wBACtD,GAAG,EAAE,GAAG;wBACR,KAAK,EAAE,KAAK;qBACb,CAAC,CAAC;iBACJ;aACF,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,2BAA2B,CAAC,eAAe,CAAC,CAAC;QAElE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,WAAW,EACX,mBAAmB,EACnB,YAAY,CACb,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAC/D,CAAC;QACJ,CAAC;QAED,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QAEnB,+BAA+B;QAC/B,MAAM,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,KAAM,EAAE,aAAa,CAAC,CAAC;QAE7D,kCAAkC;QAClC,IAAI,KAAK,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;YACzC,MAAM,YAAY,GAA6B;gBAC7C,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,gBAAgB,EAAE;oBAChB,KAAK,EAAE,KAAK,CAAC,gBAAgB;iBAC9B;aACF,CAAC;YACF,MAAM,UAAU,CACd,MAAM,EACN,oBAAoB,EACpB,mBAAmB,EACnB,0CAA0C,CAAC,YAAY,CAAC,CACzD,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC3C,MAAM,YAAY,GAA6B;gBAC7C,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,kBAAkB,EAAE;oBAClB,KAAK,EAAE,KAAK,CAAC,kBAAkB;iBAChC;aACF,CAAC;YACF,MAAM,UAAU,CACd,MAAM,EACN,oBAAoB,EACpB,mBAAmB,EACnB,0CAA0C,CAAC,YAAY,CAAC,CACzD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;QACV,KAAK,EAAE,GAAG,CAAC,KAAM;QACjB,KAAK,EAAE,GAAG,CAAC,KAAgC;QAC3C,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,KAAK;QACjC,aAAa,EAAE,GAAG,CAAC,aAAc;QACjC,GAAG,KAAK;KACT,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,WAAW,EAAE,EAAE;IACf,OAAO,EAAE,IAAI,EAAE,8CAA8C;CAC9D,CAAC;AA4CF;;GAEG;AACH,SAAS,2BAA2B,CAClC,MAAuB;IAEvB,MAAM,SAAS,GAA2B;QACxC,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAC;IAEF,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;QAC3B,SAAS,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;IACrD,CAAC;IAED,IAAI,MAAM,CAAC,2BAA2B,KAAK,SAAS,EAAE,CAAC;QACrD,SAAS,CAAC,2BAA2B;YACnC,MAAM,CAAC,2BAA2B,CAAC,QAAQ,EAAE,CAAC;IAClD,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IACjD,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IACnD,CAAC;IAED,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC3C,SAAS,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;QAC1B,SAAS,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IACnD,CAAC;IAED,IAAI,MAAM,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QAC3C,SAAS,CAAC,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IACpE,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7B,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE;YACtD,MAAM,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC;YAC9B,SAAS,CAAC,oBAAoB,OAAO,eAAe,CAAC;gBACnD,OAAO,CAAC,YAAY,CAAC;YAEvB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;gBACrC,MAAM,MAAM,GAAG,QAAQ,GAAG,CAAC,CAAC;gBAC5B,SAAS,CAAC,oBAAoB,OAAO,QAAQ,MAAM,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC;gBACrE,SAAS,CAAC,oBAAoB,OAAO,QAAQ,MAAM,QAAQ,CAAC;oBAC1D,GAAG,CAAC,KAAK,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,0CAA0C,CACjD,MAAgC;IAEhC,MAAM,SAAS,GAA2B;QACxC,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;IAEF,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,SAAS,CAAC,0BAA0B,CAAC;YACnC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC/C,CAAC;IAED,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,SAAS,CAAC,wBAAwB,CAAC;YACjC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,MAAM,CAAC,gCAAgC,EAAE,CAAC;QAC5C,SAAS,CAAC,wCAAwC,CAAC;YACjD,MAAM,CAAC,gCAAgC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;IAC7D,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC9C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AA2ID;;GAEG;AACH,SAAS,mBAAmB,CAM1B,OAAe;IACf,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,IAAI;QACzB,aAAa,EAAE,IAAI;QACnB,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,0BAA0B;IAC1B,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,GAAoB,CAAC;QAC1D,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,GAAG,GAAG;gBACX,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAgC;gBAC3C,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,eAAe,EAAE,GAAG,CAAC,eAGX;gBACV,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI;gBAC7D,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI;oBACpB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;wBAC9B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;wBACpE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChE,CAAC,CAAC,SAAS;gBACb,uBAAuB,EAAE,GAAG,CAAC,uBAAuB,EAAE,IAAI;oBACxD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC;wBAC/C,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BAC/C,aAAa,EAAE,KAAK,CAAC,aAAa;4BAClC,SAAS,EAAE,KAAK,CAAC,SAAS;4BAC1B,cAAc,EAAE;gCACd,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,KAMhB;gCACZ,aAAa,EAAE,KAAK,CAAC,cAAc,CAAC,aAAa;6BAClD;yBACF,CAAC,CAAC;wBACL,CAAC,CAAC;4BACE;gCACE,aAAa,EAAE,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,aAAa;gCAC7D,SAAS,EAAE,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS;gCACrD,cAAc,EAAE;oCACd,KAAK,EAAE,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc;yCACnD,KAMS;oCACZ,aAAa,EACX,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc;yCAC5C,aAAa;iCACnB;6BACF;yBACF;oBACL,CAAC,CAAC,SAAS;gBACb,2BAA2B,EAAE,GAAG,CAAC,2BAA2B,EAAE,IAAI;oBAChE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC;wBACnD,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACnD,aAAa,EAAE,KAAK,CAAC,aAAa;4BAClC,aAAa,EAAE,KAAK,CAAC,aAAa;4BAClC,kBAAkB,EAAE;gCAClB,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAMpB;gCACZ,aAAa,EAAE,KAAK,CAAC,kBAAkB,CAAC,aAAa;6BACtD;4BACD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;4BAC5C,QAAQ,EAAE,KAAK,CAAC,QAAQ;yBACzB,CAAC,CAAC;wBACL,CAAC,CAAC;4BACE;gCACE,aAAa,EACX,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,aAAa;gCACpD,aAAa,EACX,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,aAAa;gCACpD,kBAAkB,EAAE;oCAClB,KAAK,EAAE,GAAG,CAAC,2BAA2B,CAAC,IAAI;yCACxC,kBAAkB,CAAC,KAMV;oCACZ,aAAa,EACX,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,kBAAkB;yCACpD,aAAa;iCACnB;gCACD,kBAAkB,EAChB,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,kBAAkB;gCACzD,QAAQ,EAAE,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ;6BACxD;yBACF;oBACL,CAAC,CAAC,SAAS;gBACb,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC;QAClD,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACtE,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAkB,EAAE,EAAE,CAAC,CAAC;gBAC9C,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,KAAK,EAAE,GAAG,CAAC,KAAgC;gBAC3C,SAAS,EAAE,GAAG,CAAC,SAAS;gBACxB,aAAa,EAAE,GAAG,CAAC,aAAa;gBAChC,eAAe,EAAE,GAAG,CAAC,eAGX;gBACV,SAAS,EAAE,GAAG,CAAC,SAAS,KAAK,MAAM,IAAI,GAAG,CAAC,SAAS,KAAK,IAAI;gBAC7D,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI;oBACpB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;wBAC9B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;wBACpE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;oBAChE,CAAC,CAAC,SAAS;gBACb,uBAAuB,EAAE,GAAG,CAAC,uBAAuB,EAAE,IAAI;oBACxD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC;wBAC/C,CAAC,CAAC,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BAC/C,aAAa,EAAE,KAAK,CAAC,aAAa;4BAClC,SAAS,EAAE,KAAK,CAAC,SAAS;4BAC1B,cAAc,EAAE;gCACd,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,KAMhB;gCACZ,aAAa,EAAE,KAAK,CAAC,cAAc,CAAC,aAAa;6BAClD;yBACF,CAAC,CAAC;wBACL,CAAC,CAAC;4BACE;gCACE,aAAa,EAAE,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,aAAa;gCAC7D,SAAS,EAAE,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS;gCACrD,cAAc,EAAE;oCACd,KAAK,EAAE,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc;yCACnD,KAMS;oCACZ,aAAa,EACX,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc;yCAC5C,aAAa;iCACnB;6BACF;yBACF;oBACL,CAAC,CAAC,SAAS;gBACb,2BAA2B,EAAE,GAAG,CAAC,2BAA2B,EAAE,IAAI;oBAChE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC;wBACnD,CAAC,CAAC,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BACnD,aAAa,EAAE,KAAK,CAAC,aAAa;4BAClC,aAAa,EAAE,KAAK,CAAC,aAAa;4BAClC,kBAAkB,EAAE;gCAClB,KAAK,EAAE,KAAK,CAAC,kBAAkB,CAAC,KAMpB;gCACZ,aAAa,EAAE,KAAK,CAAC,kBAAkB,CAAC,aAAa;6BACtD;4BACD,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;4BAC5C,QAAQ,EAAE,KAAK,CAAC,QAAQ;yBACzB,CAAC,CAAC;wBACL,CAAC,CAAC;4BACE;gCACE,aAAa,EACX,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,aAAa;gCACpD,aAAa,EACX,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,aAAa;gCACpD,kBAAkB,EAAE;oCAClB,KAAK,EAAE,GAAG,CAAC,2BAA2B,CAAC,IAAI;yCACxC,kBAAkB,CAAC,KAMV;oCACZ,aAAa,EACX,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,kBAAkB;yCACpD,aAAa;iCACnB;gCACD,kBAAkB,EAChB,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,kBAAkB;gCACzD,QAAQ,EAAE,GAAG,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ;6BACxD;yBACF;oBACL,CAAC,CAAC,SAAS;gBACb,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC,CAAC,CAAC;QACN,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,MAAM,CAAC,8BAA8B,EAAE,CAAC;QAC1C,MAAM,gBAAgB,GACpB,MAAM,CAAC,8BAA8B,CAAC,iBAAiB,CAAC;QAC1D,IAAI,gBAAgB,EAAE,IAAI,EAAE,CAAC;YAC3B,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBACzD,CAAC,CAAC,gBAAgB,CAAC,IAAI;gBACvB,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC5B,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC,GAAG,CACxC,CAAC,EAA2B,EAAE,EAAE,CAAC,CAAC;gBAChC,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,KAAK,EAAE,EAAE,CAAC,KAAK;aAChB,CAAC,CACH,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,cAAc,GAAG,EAAE,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,MAAM,CAAC,0BAA0B,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAClE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACxB,CAAC;IAED,OAAO,MAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,MAAiB,EACjB,KAAa,EACb,aAA4B;IAE5B,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB;YACE,SAAS,EAAE,KAAK;SACjB,CACF,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAuB,EAAE,EAAE;QAC1C,OAAO,GAAG,EAAE,KAAK,KAAK,WAAW,CAAC;IACpC,CAAC,CAAC;IAEF,MAAM,oBAAoB,CACxB,aAAa,EACb,OAAO,EACP,aAAa,EACb,KAAK,EACL,KAAK,EACL,kBAAkB,CACnB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,MAAiB,EACjB,KAAa,EACb,aAA4B;IAE5B,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,UAAU,CAC/B,MAAM,EACN,cAAc,EACd,mBAAmB,EACnB;gBACE,SAAS,EAAE,KAAK;aACjB,CACF,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,4DAA4D;YAC5D,IACE,KAAK,CAAC,IAAI,KAAK,uBAAuB;gBACtC,KAAK,CAAC,IAAI,KAAK,qBAAqB,EACpC,CAAC;gBACD,OAAO,SAAS,CAAC;YACnB,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,GAAuB,EAAE,EAAE;QAC1C,qCAAqC;QACrC,OAAO,CAAC,GAAG,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,oBAAoB,CACxB,aAAa,EACb,OAAO,EACP,aAAa,EACb,KAAK,EACL,KAAK,EACL,YAAY,CACb,CAAC;AACJ,CAAC"}
@@ -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":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;IAClC,2BAA2B,EAAE,CAAC,GAAQ,EAAE,EAAE,CACxC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,kBAAkB;IAC1C,kBAAkB,EAAE,CAAC,OAAY,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM;IACpD,OAAO,EAAE,WAAW;CACrB,CAAC,CAAC;AAuBH;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAwB,EACxB,cAAsC;IAEtC,OAAO;QACL,KAAK,CAAC,YAAY;YAChB,MAAM,WAAW,GAAG,MAAM,qBAAqB,EAAE,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;YAEjC,OAAO,IAAI,SAAS,CAAC;gBACnB,GAAG,WAAW;gBACd,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,MAAM;aACP,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,OAAO,CACX,MAAiB,EACjB,MAAc,EACd,SAA8B,EAAE;YAEhC,0EAA0E;YAC1E,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;gBAC9C,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;oBACjC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBAEpC,MAAM,IAAI,GAAG,IAAI,eAAe,CAAC;wBAC/B,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,GAAG,aAAa,CAAC,MAAM,CAAC;qBACzB,CAAC,CAAC;oBAEH,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;wBAC3C,MAAM,EAAE,MAAM;wBACd,OAAO,EAAE;4BACP,cAAc,EAAE,mCAAmC;yBACpD;wBACD,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;qBACtB,CAAC,CAAC;oBAEH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;oBAE5C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;wBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;wBAExC,yCAAyC;wBACzC,MAAM,cAAc,GAAG,SAAS,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;wBAChE,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;wBAE5D,yFAAyF;wBACzF,IAAI,SAAS,KAAK,aAAa,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;4BACjD,OAAO,CAAC,GAAG,CACT,iEAAiE,MAAM,KAAK,CAC7E,CAAC;4BACF,6CAA6C;4BAC7C,MAAM,gBAAgB,GAAG,MAAM,qBAAqB,EAAE,EAAE,CAAC;4BACzD,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;4BACjC,MAAM,GAAG,IAAI,SAAS,CAAC;gCACrB,GAAG,gBAAgB;gCACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gCACvB,MAAM;6BACP,CAAC,CAAC;4BACH,SAAS,CAAC,0BAA0B;wBACtC,CAAC;wBAED,MAAM,KAAK,GAAG,IAAI,KAAK,CACrB,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CACrG,CAAC;wBAEF,6CAA6C;wBAC7C,IAAI,SAAS,EAAE,CAAC;4BACb,KAAa,CAAC,IAAI,GAAG,SAAS,CAAC;wBAClC,CAAC;wBAED,MAAM,KAAK,CAAC;oBACd,CAAC;oBAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACtC,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;oBACvC,OAAO,MAAsB,CAAC;gBAChC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,wEAAwE;oBACxE,IACE,OAAO,KAAK,CAAC;wBACb,CAAE,KAAa,EAAE,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC,EACjD,CAAC;wBACD,MAAM,KAAK,CAAC;oBACd,CAAC;oBACD,+BAA+B;gBACjC,CAAC;YACH,CAAC;YAED,wDAAwD;YACxD,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -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