alchemy 0.60.2 → 0.62.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 (174) hide show
  1. package/README.md +1 -2
  2. package/bin/alchemy.js +1480 -1498
  3. package/bin/commands/init.ts +94 -25
  4. package/bin/services/execute-alchemy.ts +32 -23
  5. package/lib/alchemy.d.ts +2 -2
  6. package/lib/alchemy.d.ts.map +1 -1
  7. package/lib/alchemy.js +1 -0
  8. package/lib/alchemy.js.map +1 -1
  9. package/lib/aws/client-props.d.ts +149 -0
  10. package/lib/aws/client-props.d.ts.map +1 -0
  11. package/lib/aws/client-props.js +1 -0
  12. package/lib/aws/client-props.js.map +1 -0
  13. package/lib/aws/credentials.d.ts +68 -5
  14. package/lib/aws/credentials.d.ts.map +1 -1
  15. package/lib/aws/credentials.js +148 -0
  16. package/lib/aws/credentials.js.map +1 -1
  17. package/lib/aws/ec2/internet-gateway-attachment.d.ts +57 -3
  18. package/lib/aws/ec2/internet-gateway-attachment.d.ts.map +1 -1
  19. package/lib/aws/ec2/internet-gateway-attachment.js +57 -3
  20. package/lib/aws/ec2/internet-gateway-attachment.js.map +1 -1
  21. package/lib/aws/ec2/internet-gateway.d.ts +68 -40
  22. package/lib/aws/ec2/internet-gateway.d.ts.map +1 -1
  23. package/lib/aws/ec2/internet-gateway.js +68 -40
  24. package/lib/aws/ec2/internet-gateway.js.map +1 -1
  25. package/lib/aws/ec2/nat-gateway.d.ts +99 -18
  26. package/lib/aws/ec2/nat-gateway.d.ts.map +1 -1
  27. package/lib/aws/ec2/nat-gateway.js +113 -37
  28. package/lib/aws/ec2/nat-gateway.js.map +1 -1
  29. package/lib/aws/ec2/route-table-association.d.ts +1 -1
  30. package/lib/aws/ec2/route-table-association.js +1 -1
  31. package/lib/aws/ec2/route-table.d.ts +64 -1
  32. package/lib/aws/ec2/route-table.d.ts.map +1 -1
  33. package/lib/aws/ec2/route-table.js +64 -1
  34. package/lib/aws/ec2/route-table.js.map +1 -1
  35. package/lib/aws/ec2/route.d.ts +60 -1
  36. package/lib/aws/ec2/route.d.ts.map +1 -1
  37. package/lib/aws/ec2/route.js +60 -1
  38. package/lib/aws/ec2/route.js.map +1 -1
  39. package/lib/aws/ec2/security-group.d.ts +96 -3
  40. package/lib/aws/ec2/security-group.d.ts.map +1 -1
  41. package/lib/aws/ec2/security-group.js +96 -3
  42. package/lib/aws/ec2/security-group.js.map +1 -1
  43. package/lib/aws/ec2/subnet.d.ts +61 -3
  44. package/lib/aws/ec2/subnet.d.ts.map +1 -1
  45. package/lib/aws/ec2/subnet.js +61 -3
  46. package/lib/aws/ec2/subnet.js.map +1 -1
  47. package/lib/aws/ec2/utils.d.ts +10 -2
  48. package/lib/aws/ec2/utils.d.ts.map +1 -1
  49. package/lib/aws/ec2/utils.js +68 -7
  50. package/lib/aws/ec2/utils.js.map +1 -1
  51. package/lib/aws/ec2/vpc.d.ts +50 -2
  52. package/lib/aws/ec2/vpc.d.ts.map +1 -1
  53. package/lib/aws/ec2/vpc.js +50 -2
  54. package/lib/aws/ec2/vpc.js.map +1 -1
  55. package/lib/aws/index.d.ts +2 -0
  56. package/lib/aws/index.d.ts.map +1 -1
  57. package/lib/aws/index.js +2 -0
  58. package/lib/aws/index.js.map +1 -1
  59. package/lib/cloudflare/api-response.js +2 -2
  60. package/lib/cloudflare/api-response.js.map +1 -1
  61. package/lib/cloudflare/api.d.ts +19 -0
  62. package/lib/cloudflare/api.d.ts.map +1 -1
  63. package/lib/cloudflare/api.js +4 -0
  64. package/lib/cloudflare/api.js.map +1 -1
  65. package/lib/cloudflare/assets.d.ts.map +1 -1
  66. package/lib/cloudflare/assets.js +3 -4
  67. package/lib/cloudflare/assets.js.map +1 -1
  68. package/lib/cloudflare/bucket.d.ts +5 -3
  69. package/lib/cloudflare/bucket.d.ts.map +1 -1
  70. package/lib/cloudflare/bucket.js +28 -20
  71. package/lib/cloudflare/bucket.js.map +1 -1
  72. package/lib/cloudflare/bundle/plugin-compat-warning.js +7 -7
  73. package/lib/cloudflare/bundle/plugin-compat-warning.js.map +1 -1
  74. package/lib/cloudflare/cloudflare-env-proxy.js.map +1 -1
  75. package/lib/cloudflare/compatibility-date.gen.d.ts +1 -1
  76. package/lib/cloudflare/compatibility-date.gen.js +1 -1
  77. package/lib/cloudflare/d1-migrations.d.ts.map +1 -1
  78. package/lib/cloudflare/d1-migrations.js +3 -2
  79. package/lib/cloudflare/d1-migrations.js.map +1 -1
  80. package/lib/cloudflare/index.d.ts +2 -1
  81. package/lib/cloudflare/index.d.ts.map +1 -1
  82. package/lib/cloudflare/index.js +2 -1
  83. package/lib/cloudflare/index.js.map +1 -1
  84. package/lib/cloudflare/kv-namespace.d.ts +2 -2
  85. package/lib/cloudflare/kv-namespace.d.ts.map +1 -1
  86. package/lib/cloudflare/kv-namespace.js.map +1 -1
  87. package/lib/cloudflare/miniflare/build-worker-options.d.ts.map +1 -1
  88. package/lib/cloudflare/miniflare/build-worker-options.js +16 -3
  89. package/lib/cloudflare/miniflare/build-worker-options.js.map +1 -1
  90. package/lib/cloudflare/miniflare/miniflare-controller.d.ts.map +1 -1
  91. package/lib/cloudflare/miniflare/miniflare-controller.js +3 -0
  92. package/lib/cloudflare/miniflare/miniflare-controller.js.map +1 -1
  93. package/lib/cloudflare/oauth.js +3 -3
  94. package/lib/cloudflare/oauth.js.map +1 -1
  95. package/lib/cloudflare/quick-tunnel.d.ts +17 -0
  96. package/lib/cloudflare/quick-tunnel.d.ts.map +1 -0
  97. package/lib/cloudflare/quick-tunnel.js +26 -0
  98. package/lib/cloudflare/quick-tunnel.js.map +1 -0
  99. package/lib/cloudflare/sveltekit/plugin.d.ts +2 -2
  100. package/lib/cloudflare/sveltekit/plugin.d.ts.map +1 -1
  101. package/lib/cloudflare/sveltekit/plugin.js +5 -4
  102. package/lib/cloudflare/sveltekit/plugin.js.map +1 -1
  103. package/lib/cloudflare/website.d.ts.map +1 -1
  104. package/lib/cloudflare/website.js +26 -97
  105. package/lib/cloudflare/website.js.map +1 -1
  106. package/lib/cloudflare/worker-bundle.d.ts.map +1 -1
  107. package/lib/cloudflare/worker-bundle.js +11 -9
  108. package/lib/cloudflare/worker-bundle.js.map +1 -1
  109. package/lib/cloudflare/worker-tail.d.ts.map +1 -1
  110. package/lib/cloudflare/worker-tail.js +6 -6
  111. package/lib/cloudflare/worker-tail.js.map +1 -1
  112. package/lib/resource.d.ts +1 -0
  113. package/lib/resource.d.ts.map +1 -1
  114. package/lib/resource.js +13 -2
  115. package/lib/resource.js.map +1 -1
  116. package/lib/scope.d.ts +38 -1
  117. package/lib/scope.d.ts.map +1 -1
  118. package/lib/scope.js +44 -19
  119. package/lib/scope.js.map +1 -1
  120. package/lib/state/cloudflare-state-store.d.ts.map +1 -1
  121. package/lib/state/cloudflare-state-store.js +2 -1
  122. package/lib/state/cloudflare-state-store.js.map +1 -1
  123. package/lib/util/idempotent-spawn.d.ts +24 -0
  124. package/lib/util/idempotent-spawn.d.ts.map +1 -0
  125. package/lib/util/idempotent-spawn.js +237 -0
  126. package/lib/util/idempotent-spawn.js.map +1 -0
  127. package/lib/util/index.d.ts +2 -0
  128. package/lib/util/index.d.ts.map +1 -0
  129. package/lib/util/index.js +2 -0
  130. package/lib/util/index.js.map +1 -0
  131. package/lib/util/safe-fetch.d.ts +24 -0
  132. package/lib/util/safe-fetch.d.ts.map +1 -1
  133. package/lib/util/safe-fetch.js +72 -0
  134. package/lib/util/safe-fetch.js.map +1 -1
  135. package/package.json +9 -5
  136. package/src/alchemy.ts +3 -2
  137. package/src/aws/client-props.ts +156 -0
  138. package/src/aws/credentials.ts +165 -4
  139. package/src/aws/ec2/internet-gateway-attachment.ts +59 -4
  140. package/src/aws/ec2/internet-gateway.ts +70 -41
  141. package/src/aws/ec2/nat-gateway.ts +123 -33
  142. package/src/aws/ec2/route-table-association.ts +1 -1
  143. package/src/aws/ec2/route-table.ts +66 -2
  144. package/src/aws/ec2/route.ts +62 -2
  145. package/src/aws/ec2/security-group.ts +98 -4
  146. package/src/aws/ec2/subnet.ts +63 -4
  147. package/src/aws/ec2/utils.ts +73 -7
  148. package/src/aws/ec2/vpc.ts +52 -3
  149. package/src/aws/index.ts +2 -0
  150. package/src/cloudflare/api-response.ts +2 -2
  151. package/src/cloudflare/api.ts +23 -0
  152. package/src/cloudflare/assets.ts +3 -4
  153. package/src/cloudflare/bucket.ts +39 -29
  154. package/src/cloudflare/bundle/plugin-compat-warning.ts +7 -7
  155. package/src/cloudflare/cloudflare-env-proxy.ts +2 -2
  156. package/src/cloudflare/compatibility-date.gen.ts +1 -1
  157. package/src/cloudflare/d1-migrations.ts +4 -5
  158. package/src/cloudflare/index.ts +2 -1
  159. package/src/cloudflare/kv-namespace.ts +26 -27
  160. package/src/cloudflare/miniflare/build-worker-options.ts +16 -3
  161. package/src/cloudflare/miniflare/miniflare-controller.ts +4 -0
  162. package/src/cloudflare/oauth.ts +3 -3
  163. package/src/cloudflare/quick-tunnel.ts +30 -0
  164. package/src/cloudflare/sveltekit/plugin.ts +5 -5
  165. package/src/cloudflare/website.ts +30 -111
  166. package/src/cloudflare/worker-bundle.ts +11 -9
  167. package/src/cloudflare/worker-tail.ts +6 -8
  168. package/src/resource.ts +19 -2
  169. package/src/scope.ts +111 -20
  170. package/src/state/cloudflare-state-store.ts +2 -1
  171. package/src/util/idempotent-spawn.ts +303 -0
  172. package/src/util/index.ts +1 -0
  173. package/src/util/safe-fetch.ts +114 -0
  174. package/templates/rwsdk/package.json +1 -1
@@ -18,7 +18,7 @@ import { detectPackageManager } from "../../src/util/detect-package-manager.ts";
18
18
  import type { DependencyVersionMap } from "../constants.ts";
19
19
  import { throwWithContext } from "../errors.ts";
20
20
  import { addPackageDependencies } from "../services/dependencies.ts";
21
- import { loggedProcedure, ExitSignal } from "../trpc.ts";
21
+ import { ExitSignal, loggedProcedure } from "../trpc.ts";
22
22
  import {
23
23
  TemplateSchema,
24
24
  type InitContext,
@@ -59,6 +59,7 @@ export const init = loggedProcedure
59
59
  main: updatedConfig?.main,
60
60
  });
61
61
  await updatePackageJson(context);
62
+ await updateGitignore(context);
62
63
 
63
64
  displaySuccessMessage(context);
64
65
  } catch (_error) {
@@ -264,8 +265,7 @@ export const worker = await Vite("${context.projectName}", {
264
265
  // main: "./.output/server/index.mjs",
265
266
  // command: "vite build",
266
267
  // dev: { command: "vite dev" },
267
- assets: "dist",
268
- wrangler: false,
268
+ assets: "dist"
269
269
  });
270
270
 
271
271
  console.log({
@@ -482,6 +482,33 @@ async function updatePackageJson(context: InitContext): Promise<void> {
482
482
  }
483
483
  }
484
484
 
485
+ async function updateGitignore(context: InitContext) {
486
+ try {
487
+ const gitignorePath = resolve(context.cwd, ".gitignore");
488
+
489
+ await fs.ensureFile(gitignorePath);
490
+
491
+ let gitignoreContent = "";
492
+ if (await fs.pathExists(gitignorePath)) {
493
+ gitignoreContent = await fs.readFile(gitignorePath, "utf-8");
494
+ }
495
+
496
+ const lines = gitignoreContent.split("\n").map((line) => line.trim());
497
+ const hasAlchemy = lines.some(
498
+ (line) => line === ".alchemy" || line === ".alchemy/",
499
+ );
500
+
501
+ if (!hasAlchemy) {
502
+ if (gitignoreContent && !gitignoreContent.endsWith("\n")) {
503
+ gitignoreContent += "\n";
504
+ }
505
+ await fs.appendFile(gitignorePath, ".alchemy\n", "utf-8");
506
+ }
507
+ } catch (error) {
508
+ throwWithContext(error, "Failed to update .gitignore");
509
+ }
510
+ }
511
+
485
512
  interface TsConfigUpdate {
486
513
  include?: string[];
487
514
  exclude?: string[];
@@ -707,12 +734,22 @@ async function updateViteConfig(context: InitContext): Promise<void> {
707
734
  const cloudflareImport = sourceFile.getImportDeclaration(
708
735
  "@cloudflare/vite-plugin",
709
736
  );
737
+ const alchemyPlugin =
738
+ {
739
+ "react-router": "alchemy/cloudflare/react-router",
740
+ "tanstack-start": "alchemy/cloudflare/tanstack-start",
741
+ astro: "alchemy/cloudflare/astro",
742
+ nuxt: "alchemy/cloudflare/nuxt",
743
+ sveltekit: "alchemy/cloudflare/sveltekit",
744
+ }[context.framework] ?? "alchemy/cloudflare/vite";
710
745
  if (!cloudflareImport) {
711
746
  // Add cloudflare import
712
747
  sourceFile.addImportDeclaration({
713
- moduleSpecifier: "@cloudflare/vite-plugin",
714
- namedImports: ["cloudflare"],
748
+ moduleSpecifier: alchemyPlugin,
749
+ defaultImport: "alchemy",
715
750
  });
751
+ } else {
752
+ cloudflareImport.setModuleSpecifier(alchemyPlugin);
716
753
  }
717
754
 
718
755
  // Find the defineConfig call
@@ -745,16 +782,14 @@ async function updateViteConfig(context: InitContext): Promise<void> {
745
782
 
746
783
  if (!hasCloudflarePlugin) {
747
784
  // Add cloudflare plugin
748
- initializer.addElement(
749
- 'cloudflare({ viteEnvironment: { name: "ssr" } })',
750
- );
785
+ initializer.addElement("alchemy()");
751
786
  }
752
787
  }
753
788
  } else if (!pluginsProperty) {
754
789
  // If no plugins property exists, create one with cloudflare plugin
755
790
  configObject.addPropertyAssignment({
756
791
  name: "plugins",
757
- initializer: '[cloudflare({ viteEnvironment: { name: "ssr" } })]',
792
+ initializer: "[alchemy()]",
758
793
  });
759
794
  }
760
795
  }
@@ -863,26 +898,65 @@ async function updateSvelteConfig(context: InitContext): Promise<void> {
863
898
  project.addSourceFileAtPath(svelteConfigPath);
864
899
  const sourceFile = project.getSourceFileOrThrow(svelteConfigPath);
865
900
 
901
+ // Find and update the adapter import
866
902
  const importDeclarations = sourceFile.getImportDeclarations();
867
903
  const adapterImport = importDeclarations.find((imp) =>
868
904
  imp.getModuleSpecifierValue().includes("@sveltejs/adapter"),
869
905
  );
870
906
 
871
907
  if (adapterImport) {
872
- adapterImport.setModuleSpecifier("@sveltejs/adapter-cloudflare");
908
+ // Change the import to alchemy
909
+ adapterImport.setModuleSpecifier("alchemy/cloudflare/sveltekit");
910
+ // Remove old default import and add new one
911
+ adapterImport.removeDefaultImport();
912
+ adapterImport.setDefaultImport("alchemy");
873
913
  } else {
914
+ // Add alchemy import if no adapter import exists
874
915
  sourceFile.insertImportDeclaration(0, {
875
- moduleSpecifier: "@sveltejs/adapter-cloudflare",
876
- defaultImport: "adapter",
916
+ moduleSpecifier: "alchemy/cloudflare/sveltekit",
917
+ defaultImport: "alchemy",
877
918
  });
878
919
  }
879
920
 
921
+ // Find the config object
922
+ const configVariable = sourceFile.getVariableDeclaration("config");
923
+ if (configVariable) {
924
+ const initializer = configVariable.getInitializer();
925
+ if (Node.isObjectLiteralExpression(initializer)) {
926
+ updateAdapterInConfig(initializer);
927
+ }
928
+ }
929
+
880
930
  await project.save();
881
931
  } catch (error) {
882
932
  console.warn("Failed to update svelte.config.js:", error);
883
933
  }
884
934
  }
885
935
 
936
+ function updateAdapterInConfig(configObject: Node): void {
937
+ if (!Node.isObjectLiteralExpression(configObject)) return;
938
+
939
+ const kitProperty = configObject.getProperty("kit");
940
+ if (kitProperty && Node.isPropertyAssignment(kitProperty)) {
941
+ const kitInitializer = kitProperty.getInitializer();
942
+ if (Node.isObjectLiteralExpression(kitInitializer)) {
943
+ const adapterProperty = kitInitializer.getProperty("adapter");
944
+ if (adapterProperty && Node.isPropertyAssignment(adapterProperty)) {
945
+ const initializer = adapterProperty.getInitializer();
946
+ if (Node.isCallExpression(initializer)) {
947
+ const expression = initializer.getExpression();
948
+ if (
949
+ Node.isIdentifier(expression) &&
950
+ expression.getText() === "adapter"
951
+ ) {
952
+ expression.replaceWithText("alchemy");
953
+ }
954
+ }
955
+ }
956
+ }
957
+ }
958
+ }
959
+
886
960
  async function updateEnvFile(context: InitContext): Promise<void> {
887
961
  const envPath = resolve(context.cwd, ".env");
888
962
  await fs.ensureFile(envPath);
@@ -1070,19 +1144,16 @@ async function updateTanStackViteConfig(context: InitContext): Promise<void> {
1070
1144
  project.addSourceFileAtPath(viteConfigPath);
1071
1145
  const sourceFile = project.getSourceFileOrThrow(viteConfigPath);
1072
1146
 
1073
- const alchemyImport = sourceFile.getImportDeclaration("alchemy/cloudflare");
1147
+ const alchemyImport = sourceFile.getImportDeclaration(
1148
+ "alchemy/cloudflare/tanstack-start",
1149
+ );
1074
1150
  if (!alchemyImport) {
1075
1151
  sourceFile.addImportDeclaration({
1076
- moduleSpecifier: "alchemy/cloudflare",
1077
- namedImports: ["cloudflareWorkersDevEnvironmentShim"],
1152
+ moduleSpecifier: "alchemy/cloudflare/tanstack-start",
1153
+ defaultImport: "alchemy",
1078
1154
  });
1079
1155
  } else {
1080
- const hasShim = alchemyImport
1081
- .getNamedImports()
1082
- .some((ni) => ni.getName() === "cloudflareWorkersDevEnvironmentShim");
1083
- if (!hasShim) {
1084
- alchemyImport.addNamedImport("cloudflareWorkersDevEnvironmentShim");
1085
- }
1156
+ alchemyImport.setModuleSpecifier("alchemy/cloudflare/tanstack-start");
1086
1157
  }
1087
1158
 
1088
1159
  const exportAssignment = sourceFile.getExportAssignment(
@@ -1122,11 +1193,9 @@ async function updateTanStackViteConfig(context: InitContext): Promise<void> {
1122
1193
  if (Node.isArrayLiteralExpression(initializer)) {
1123
1194
  const hasShim = initializer
1124
1195
  .getElements()
1125
- .some((el) =>
1126
- el.getText().includes("cloudflareWorkersDevEnvironmentShim"),
1127
- );
1196
+ .some((el) => el.getText().includes("alchemy"));
1128
1197
  if (!hasShim) {
1129
- initializer.addElement("cloudflareWorkersDevEnvironmentShim()");
1198
+ initializer.addElement("alchemy()");
1130
1199
  }
1131
1200
 
1132
1201
  const tanstackElements = initializer
@@ -1,5 +1,6 @@
1
1
  import { log } from "@clack/prompts";
2
- import { execa } from "execa";
2
+ import { spawn } from "node:child_process";
3
+ import { once } from "node:events";
3
4
  import { resolve } from "node:path";
4
5
  import pc from "picocolors";
5
6
  import z from "zod";
@@ -74,6 +75,7 @@ export async function execAlchemy(
74
75
  ) {
75
76
  const args: string[] = [];
76
77
  const execArgs: string[] = [];
78
+
77
79
  if (quiet) args.push("--quiet");
78
80
  if (read) args.push("--read");
79
81
  if (force) args.push("--force");
@@ -83,7 +85,9 @@ export async function execAlchemy(
83
85
  execArgs.push("--watch");
84
86
  args.push("--watch");
85
87
  }
86
- if (envFile) execArgs.push(`--env-file ${envFile}`);
88
+ if (envFile && (await exists(envFile))) {
89
+ execArgs.push(`--env-file ${envFile}`);
90
+ }
87
91
  if (dev) args.push("--dev");
88
92
 
89
93
  // Check for alchemy.run.ts or alchemy.run.js (if not provided)
@@ -150,26 +154,31 @@ export async function execAlchemy(
150
154
  break;
151
155
  }
152
156
  }
157
+ process.on("SIGINT", async () => {
158
+ await exitPromise;
159
+ process.exit(sanitizeExitCode(child.exitCode));
160
+ });
153
161
 
154
- try {
155
- console.log(command);
156
- await execa(command, {
157
- cwd,
158
- shell: true,
159
- stdio: "inherit",
160
- env: {
161
- ...process.env,
162
- FORCE_COLOR: "1",
163
- },
164
- });
165
- } catch (error: any) {
166
- log.error(pc.red(`Deploy failed: ${error.message}`));
167
- if (error.stdout) {
168
- console.log(error.stdout);
169
- }
170
- if (error.stderr) {
171
- console.error(error.stderr);
172
- }
173
- throw error;
174
- }
162
+ console.log(command);
163
+ const child = spawn(command, {
164
+ cwd,
165
+ shell: true,
166
+ stdio: "inherit",
167
+ env: {
168
+ ...process.env,
169
+ FORCE_COLOR: "1",
170
+ },
171
+ });
172
+ const exitPromise = once(child, "exit");
173
+ await exitPromise.catch(() => {});
174
+ process.exit(sanitizeExitCode(child.exitCode));
175
175
  }
176
+
177
+ /**
178
+ * If exit code is 130 (SIGINT) or null, return 0.
179
+ * Otherwise, return the exit code.
180
+ */
181
+ const sanitizeExitCode = (exitCode: number | null) => {
182
+ if (exitCode === null || exitCode === 130) return 0;
183
+ return exitCode;
184
+ };
package/lib/alchemy.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { DestroyStrategy, destroy } from "./destroy.ts";
2
2
  import { env } from "./env.ts";
3
- import { Scope } from "./scope.ts";
3
+ import { Scope, type ProviderCredentials } from "./scope.ts";
4
4
  import { secret } from "./secret.ts";
5
5
  import type { StateStoreType } from "./state.ts";
6
6
  import type { LoggerApi } from "./util/cli.ts";
@@ -174,7 +174,7 @@ export interface AlchemyOptions {
174
174
  export interface ScopeOptions extends AlchemyOptions {
175
175
  enter: boolean;
176
176
  }
177
- export interface RunOptions extends AlchemyOptions {
177
+ export interface RunOptions extends AlchemyOptions, ProviderCredentials {
178
178
  /**
179
179
  * @default false
180
180
  */
@@ -1 +1 @@
1
- {"version":3,"file":"alchemy.d.ts","sourceRoot":"","sources":["../src/alchemy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alchemy.d.ts","sourceRoot":"","sources":["../src/alchemy.ts"],"names":[],"mappings":"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"}
package/lib/alchemy.js CHANGED
@@ -80,6 +80,7 @@ If this is a mistake, you can disable this check by setting the ALCHEMY_CI_STATE
80
80
  });
81
81
  onExit((code) => {
82
82
  root.cleanup().then(() => {
83
+ code = code === 130 ? 0 : (code ?? 0);
83
84
  process.exit(code);
84
85
  });
85
86
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"alchemy.js","sourceRoot":"","sources":["../src/alchemy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"alchemy.js","sourceRoot":"","sources":["../src/alchemy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import type { Secret } from "../secret.ts";
2
+ /**
3
+ * AWS client properties for credential configuration.
4
+ *
5
+ * This interface defines the properties that can be used to configure AWS credentials
6
+ * at different levels of your application. It supports the three-tier credential resolution
7
+ * system (global → scope → resource) and enables multi-account and multi-region deployments.
8
+ *
9
+ * These properties can be specified at:
10
+ * 1. Resource level - directly in resource creation parameters
11
+ * 2. Scope level - in alchemy.run() options with `aws` property
12
+ * 3. Global level - through environment variables (AWS_REGION, AWS_PROFILE, etc.)
13
+ *
14
+ * The credential resolution follows a precedence order where resource-level credentials
15
+ * override scope-level credentials, which override global environment variables.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * // Resource-level credential overrides
20
+ * const vpc = await Vpc("main-vpc", {
21
+ * cidrBlock: "10.0.0.0/16",
22
+ * region: "us-west-2", // Override region
23
+ * profile: "production", // Override profile
24
+ * tags: { Name: "main-vpc" }
25
+ * });
26
+ * ```
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * // Scope-level credential configuration
31
+ * await alchemy.run("production", {
32
+ * aws: {
33
+ * region: "us-west-2",
34
+ * profile: "production",
35
+ * }
36
+ * }, async () => {
37
+ * // Resources created here will use the scope credentials by default
38
+ * const vpc = await Vpc("main-vpc", {
39
+ * cidrBlock: "10.0.0.0/16"
40
+ * });
41
+ * });
42
+ * ```
43
+ */
44
+ export interface AwsClientProps {
45
+ /**
46
+ * AWS access key ID for authentication.
47
+ *
48
+ * This corresponds to the AWS_ACCESS_KEY_ID environment variable.
49
+ * When provided at the resource or scope level, it overrides the environment variable.
50
+ */
51
+ accessKeyId?: Secret<string>;
52
+ /**
53
+ * AWS secret access key for authentication.
54
+ *
55
+ * This corresponds to the AWS_SECRET_ACCESS_KEY environment variable.
56
+ * When provided at the resource or scope level, it overrides the environment variable.
57
+ */
58
+ secretAccessKey?: Secret<string>;
59
+ /**
60
+ * AWS session token for temporary credentials.
61
+ *
62
+ * This corresponds to the AWS_SESSION_TOKEN environment variable.
63
+ * Used with temporary credentials from STS or when assuming a role.
64
+ */
65
+ sessionToken?: Secret<string>;
66
+ /**
67
+ * AWS region to use for API calls.
68
+ *
69
+ * This corresponds to the AWS_REGION or AWS_DEFAULT_REGION environment variables.
70
+ * When provided at the resource or scope level, it overrides the environment variables.
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * // Resource in a specific region
75
+ * const euVpc = await Vpc("eu-vpc", {
76
+ * cidrBlock: "10.0.0.0/16",
77
+ * region: "eu-west-1",
78
+ * tags: { Name: "eu-vpc" }
79
+ * });
80
+ * ```
81
+ */
82
+ region?: string;
83
+ /**
84
+ * AWS profile name to use from credentials file.
85
+ *
86
+ * This corresponds to the AWS_PROFILE environment variable.
87
+ * Profiles are defined in ~/.aws/credentials or ~/.aws/config files.
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * // Resource using a specific profile
92
+ * const prodVpc = await Vpc("prod-vpc", {
93
+ * cidrBlock: "10.0.0.0/16",
94
+ * profile: "production-account",
95
+ * tags: { Name: "prod-vpc" }
96
+ * });
97
+ * ```
98
+ */
99
+ profile?: string;
100
+ /**
101
+ * AWS role ARN to assume for authentication.
102
+ *
103
+ * This corresponds to the AWS_ROLE_ARN environment variable.
104
+ * Used for cross-account access or for assuming roles with specific permissions.
105
+ *
106
+ * @example
107
+ * ```typescript
108
+ * // Resource using role assumption
109
+ * const crossAccountVpc = await Vpc("cross-account-vpc", {
110
+ * cidrBlock: "10.0.0.0/16",
111
+ * roleArn: "arn:aws:iam::123456789012:role/DeploymentRole",
112
+ * roleSessionName: "alchemy-deployment",
113
+ * tags: { Name: "cross-account-vpc" }
114
+ * });
115
+ * ```
116
+ */
117
+ roleArn?: string;
118
+ /**
119
+ * External ID to use when assuming a role.
120
+ *
121
+ * This corresponds to the AWS_EXTERNAL_ID environment variable.
122
+ * Used as an additional security measure when assuming roles across accounts.
123
+ */
124
+ externalId?: string;
125
+ /**
126
+ * Session name to use when assuming a role.
127
+ *
128
+ * This corresponds to the AWS_ROLE_SESSION_NAME environment variable.
129
+ * Helps identify who/what is using the assumed role in AWS CloudTrail logs.
130
+ */
131
+ roleSessionName?: string;
132
+ }
133
+ /**
134
+ * AWS scope extensions - adds AWS credential support to scope options.
135
+ * This uses TypeScript module augmentation to extend the ProviderCredentials interface.
136
+ * Since ScopeOptions and RunOptions both extend ProviderCredentials,
137
+ * they automatically inherit these properties.
138
+ */
139
+ declare module "../scope.ts" {
140
+ interface ProviderCredentials {
141
+ /**
142
+ * AWS credentials configuration for this scope.
143
+ * All AWS resources created within this scope will inherit these credentials
144
+ * unless overridden at the resource level.
145
+ */
146
+ aws?: AwsClientProps;
147
+ }
148
+ }
149
+ //# sourceMappingURL=client-props.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-props.d.ts","sourceRoot":"","sources":["../../src/aws/client-props.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE7B;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAEjC;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAE9B;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AACD;;;;;GAKG;AACH,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,mBAAmB;QAC3B;;;;WAIG;QACH,GAAG,CAAC,EAAE,cAAc,CAAC;KACtB;CACF"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=client-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-props.js","sourceRoot":"","sources":["../../src/aws/client-props.ts"],"names":[],"mappings":""}
@@ -1,6 +1,69 @@
1
- import type { Secret } from "../secret.ts";
2
- export interface AwsCredentials {
3
- accessKeyId: Secret;
4
- secretAccessKey: Secret;
5
- }
1
+ import type { AwsClientProps } from "./client-props.ts";
2
+ /**
3
+ * Get global AWS configuration from environment variables.
4
+ * This provides the base layer of AWS credential configuration.
5
+ */
6
+ export declare function getGlobalAwsConfig(): AwsClientProps;
7
+ /**
8
+ * Resolve AWS credentials using three-tier resolution: global → scope → resource.
9
+ *
10
+ * This function implements a comprehensive credential resolution system that allows
11
+ * for flexible AWS credential management across different levels of your application.
12
+ * It enables multi-account and multi-region deployments by providing a consistent
13
+ * way to override credentials at different scopes.
14
+ *
15
+ * The resolution follows this precedence order:
16
+ * 1. Resource-level credentials (highest priority)
17
+ * 2. Scope-level credentials (medium priority)
18
+ * 3. Global environment variables (lowest priority)
19
+ *
20
+ * Supported credential properties include:
21
+ * - `region`: AWS region (e.g., 'us-west-2', 'eu-central-1')
22
+ * - `profile`: AWS profile name from credentials file
23
+ * - `accessKeyId`: AWS access key ID
24
+ * - `secretAccessKey`: AWS secret access key
25
+ * - `sessionToken`: AWS session token for temporary credentials
26
+ * - `roleArn`: AWS role ARN to assume
27
+ * - `roleSessionName`: Session name when assuming a role
28
+ * - `externalId`: External ID when assuming a role
29
+ *
30
+ * @param resourceProps - Resource-level AWS credential properties (optional)
31
+ * @returns Resolved AWS client properties with validation
32
+ *
33
+ * @throws {Error} When scope contains invalid AWS configuration
34
+ * @throws {Error} When resource properties contain invalid AWS configuration
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * // Basic usage with resource-level credentials
39
+ * const credentials = resolveAwsCredentials({
40
+ * region: "us-west-2",
41
+ * profile: "production"
42
+ * });
43
+ * ```
44
+ *
45
+ * @example
46
+ * ```typescript
47
+ * // Usage with scope-level credentials
48
+ * await alchemy.run("my-app", {
49
+ * aws: {
50
+ * region: "eu-west-1",
51
+ * profile: "staging"
52
+ * }
53
+ * }, async () => {
54
+ * // Resources created here will use the scope credentials by default
55
+ * const vpc = await Vpc("main-vpc", {
56
+ * cidrBlock: "10.0.0.0/16"
57
+ * });
58
+ *
59
+ * // Resources can override scope credentials
60
+ * const crossRegionSubnet = await Subnet("cross-region-subnet", {
61
+ * vpc,
62
+ * cidrBlock: "10.0.1.0/24",
63
+ * region: "us-east-1" // Override scope region
64
+ * });
65
+ * });
66
+ * ```
67
+ */
68
+ export declare function resolveAwsCredentials(resourceProps?: AwsClientProps): Promise<AwsClientProps>;
6
69
  //# sourceMappingURL=credentials.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/aws/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB"}
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/aws/credentials.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAgCxD;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,CAiBnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,CAAC,EAAE,cAAc,GAC7B,OAAO,CAAC,cAAc,CAAC,CA8CzB"}