alchemy 0.63.1 → 0.64.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 (157) hide show
  1. package/bin/alchemy.js +96 -86
  2. package/lib/alchemy.d.ts +4 -0
  3. package/lib/alchemy.d.ts.map +1 -1
  4. package/lib/alchemy.js +10 -4
  5. package/lib/alchemy.js.map +1 -1
  6. package/lib/apply.d.ts +3 -0
  7. package/lib/apply.d.ts.map +1 -1
  8. package/lib/apply.js +11 -1
  9. package/lib/apply.js.map +1 -1
  10. package/lib/cloudflare/bindings.d.ts +3 -1
  11. package/lib/cloudflare/bindings.d.ts.map +1 -1
  12. package/lib/cloudflare/bucket.d.ts +2 -1
  13. package/lib/cloudflare/bucket.d.ts.map +1 -1
  14. package/lib/cloudflare/bucket.js.map +1 -1
  15. package/lib/cloudflare/bundle/cloudflare-internal.d.ts +6 -0
  16. package/lib/cloudflare/bundle/cloudflare-internal.d.ts.map +1 -0
  17. package/lib/cloudflare/bundle/cloudflare-internal.js +39 -0
  18. package/lib/cloudflare/bundle/cloudflare-internal.js.map +1 -0
  19. package/lib/cloudflare/bundle/nodejs-builtin-modules.d.ts +2 -0
  20. package/lib/cloudflare/bundle/nodejs-builtin-modules.d.ts.map +1 -0
  21. package/lib/cloudflare/bundle/nodejs-builtin-modules.js +9 -0
  22. package/lib/cloudflare/bundle/nodejs-builtin-modules.js.map +1 -0
  23. package/lib/cloudflare/bundle/plugin-als-external.d.ts +6 -0
  24. package/lib/cloudflare/bundle/plugin-als-external.d.ts.map +1 -0
  25. package/lib/cloudflare/bundle/plugin-als-external.js +12 -0
  26. package/lib/cloudflare/bundle/plugin-als-external.js.map +1 -0
  27. package/lib/cloudflare/bundle/plugin-hybrid-node-compat.d.ts +4 -1
  28. package/lib/cloudflare/bundle/plugin-hybrid-node-compat.d.ts.map +1 -1
  29. package/lib/cloudflare/bundle/plugin-hybrid-node-compat.js +23 -23
  30. package/lib/cloudflare/bundle/plugin-hybrid-node-compat.js.map +1 -1
  31. package/lib/cloudflare/bundle/plugin-node-compat.d.ts +11 -0
  32. package/lib/cloudflare/bundle/plugin-node-compat.d.ts.map +1 -0
  33. package/lib/cloudflare/bundle/plugin-node-compat.js +93 -0
  34. package/lib/cloudflare/bundle/plugin-node-compat.js.map +1 -0
  35. package/lib/cloudflare/d1-local-migrations.js.map +1 -1
  36. package/lib/cloudflare/durable-object-namespace.d.ts +1 -0
  37. package/lib/cloudflare/durable-object-namespace.d.ts.map +1 -1
  38. package/lib/cloudflare/durable-object-namespace.js.map +1 -1
  39. package/lib/cloudflare/website.d.ts.map +1 -1
  40. package/lib/cloudflare/website.js +80 -82
  41. package/lib/cloudflare/website.js.map +1 -1
  42. package/lib/cloudflare/worker-bundle.d.ts +6 -0
  43. package/lib/cloudflare/worker-bundle.d.ts.map +1 -1
  44. package/lib/cloudflare/worker-bundle.js +34 -10
  45. package/lib/cloudflare/worker-bundle.js.map +1 -1
  46. package/lib/cloudflare/worker-metadata.d.ts.map +1 -1
  47. package/lib/cloudflare/worker-metadata.js +1 -0
  48. package/lib/cloudflare/worker-metadata.js.map +1 -1
  49. package/lib/cloudflare/worker.d.ts.map +1 -1
  50. package/lib/cloudflare/worker.js +24 -6
  51. package/lib/cloudflare/worker.js.map +1 -1
  52. package/lib/cloudflare/wrangler.json.d.ts +2 -4
  53. package/lib/cloudflare/wrangler.json.d.ts.map +1 -1
  54. package/lib/cloudflare/wrangler.json.js +16 -14
  55. package/lib/cloudflare/wrangler.json.js.map +1 -1
  56. package/lib/context.d.ts +3 -1
  57. package/lib/context.d.ts.map +1 -1
  58. package/lib/context.js +2 -2
  59. package/lib/context.js.map +1 -1
  60. package/lib/destroy.d.ts +8 -0
  61. package/lib/destroy.d.ts.map +1 -1
  62. package/lib/destroy.js +20 -4
  63. package/lib/destroy.js.map +1 -1
  64. package/lib/planetscale/api/client.gen.d.ts +1750 -0
  65. package/lib/planetscale/api/client.gen.d.ts.map +1 -0
  66. package/lib/planetscale/api/client.gen.js +2401 -0
  67. package/lib/planetscale/api/client.gen.js.map +1 -0
  68. package/lib/planetscale/api/index.d.ts +3 -0
  69. package/lib/planetscale/api/index.d.ts.map +1 -0
  70. package/lib/planetscale/api/index.js +4 -0
  71. package/lib/planetscale/api/index.js.map +1 -0
  72. package/lib/planetscale/api/types.gen.d.ts +12156 -0
  73. package/lib/planetscale/api/types.gen.d.ts.map +1 -0
  74. package/lib/planetscale/api/types.gen.js +2 -0
  75. package/lib/planetscale/api/types.gen.js.map +1 -0
  76. package/lib/planetscale/branch.d.ts +5 -8
  77. package/lib/planetscale/branch.d.ts.map +1 -1
  78. package/lib/planetscale/branch.js +111 -97
  79. package/lib/planetscale/branch.js.map +1 -1
  80. package/lib/planetscale/database.d.ts +2 -6
  81. package/lib/planetscale/database.d.ts.map +1 -1
  82. package/lib/planetscale/database.js +157 -118
  83. package/lib/planetscale/database.js.map +1 -1
  84. package/lib/planetscale/index.d.ts +1 -1
  85. package/lib/planetscale/index.d.ts.map +1 -1
  86. package/lib/planetscale/index.js +1 -1
  87. package/lib/planetscale/index.js.map +1 -1
  88. package/lib/planetscale/password.d.ts +4 -7
  89. package/lib/planetscale/password.d.ts.map +1 -1
  90. package/lib/planetscale/password.js +71 -56
  91. package/lib/planetscale/password.js.map +1 -1
  92. package/lib/planetscale/utils.d.ts +8 -6
  93. package/lib/planetscale/utils.d.ts.map +1 -1
  94. package/lib/planetscale/utils.js +85 -70
  95. package/lib/planetscale/utils.js.map +1 -1
  96. package/lib/scope.d.ts +5 -1
  97. package/lib/scope.d.ts.map +1 -1
  98. package/lib/scope.js +11 -3
  99. package/lib/scope.js.map +1 -1
  100. package/lib/util/dedent.d.ts +3 -14
  101. package/lib/util/dedent.d.ts.map +1 -1
  102. package/lib/util/dedent.js +28 -52
  103. package/lib/util/dedent.js.map +1 -1
  104. package/package.json +4 -3
  105. package/src/alchemy.ts +14 -6
  106. package/src/apply.ts +13 -1
  107. package/src/cloudflare/bindings.ts +3 -1
  108. package/src/cloudflare/bucket.ts +3 -1
  109. package/src/cloudflare/bundle/cloudflare-internal.ts +42 -0
  110. package/src/cloudflare/bundle/nodejs-builtin-modules.ts +14 -0
  111. package/src/cloudflare/bundle/plugin-als-external.ts +13 -0
  112. package/src/cloudflare/bundle/plugin-hybrid-node-compat.ts +29 -28
  113. package/src/cloudflare/bundle/plugin-node-compat.ts +114 -0
  114. package/src/cloudflare/d1-local-migrations.ts +2 -2
  115. package/src/cloudflare/durable-object-namespace.ts +1 -0
  116. package/src/cloudflare/website.ts +88 -89
  117. package/src/cloudflare/worker-bundle.ts +46 -9
  118. package/src/cloudflare/worker-metadata.ts +2 -0
  119. package/src/cloudflare/worker.ts +35 -7
  120. package/src/cloudflare/wrangler.json.ts +108 -110
  121. package/src/context.ts +5 -3
  122. package/src/destroy.ts +26 -8
  123. package/src/planetscale/api/client.gen.ts +2882 -0
  124. package/src/planetscale/api/index.ts +4 -0
  125. package/src/planetscale/api/types.gen.ts +13041 -0
  126. package/src/planetscale/branch.ts +152 -169
  127. package/src/planetscale/database.ts +195 -204
  128. package/src/planetscale/index.ts +1 -1
  129. package/src/planetscale/password.ts +86 -85
  130. package/src/planetscale/utils.ts +141 -122
  131. package/src/scope.ts +12 -3
  132. package/src/util/dedent.ts +33 -61
  133. package/templates/astro/alchemy.run.ts +1 -3
  134. package/templates/hono/alchemy.run.ts +0 -1
  135. package/templates/nuxt/alchemy.run.ts +1 -3
  136. package/templates/react-router/alchemy.run.ts +1 -3
  137. package/templates/rwsdk/alchemy.run.ts +0 -2
  138. package/templates/sveltekit/alchemy.run.ts +1 -3
  139. package/templates/tanstack-start/alchemy.run.ts +1 -3
  140. package/templates/typescript/alchemy.run.ts +0 -1
  141. package/templates/vite/alchemy.run.ts +0 -1
  142. package/workers/cloudflare-state-store.js +58 -58
  143. package/lib/cloudflare/bundle/externals.d.ts +0 -3
  144. package/lib/cloudflare/bundle/externals.d.ts.map +0 -1
  145. package/lib/cloudflare/bundle/externals.js +0 -35
  146. package/lib/cloudflare/bundle/externals.js.map +0 -1
  147. package/lib/cloudflare/bundle/plugin-compat-warning.d.ts +0 -10
  148. package/lib/cloudflare/bundle/plugin-compat-warning.d.ts.map +0 -1
  149. package/lib/cloudflare/bundle/plugin-compat-warning.js +0 -67
  150. package/lib/cloudflare/bundle/plugin-compat-warning.js.map +0 -1
  151. package/lib/planetscale/api.d.ts +0 -53
  152. package/lib/planetscale/api.d.ts.map +0 -1
  153. package/lib/planetscale/api.js +0 -84
  154. package/lib/planetscale/api.js.map +0 -1
  155. package/src/cloudflare/bundle/externals.ts +0 -36
  156. package/src/cloudflare/bundle/plugin-compat-warning.ts +0 -94
  157. package/src/planetscale/api.ts +0 -115
package/lib/scope.js CHANGED
@@ -131,6 +131,10 @@ export class Scope {
131
131
  }
132
132
  this.dataMutex = new AsyncMutex();
133
133
  }
134
+ async has(id, type) {
135
+ const state = await this.state.get(id);
136
+ return state !== undefined && (type === undefined || state.kind === type);
137
+ }
134
138
  createPhysicalName(id, delimiter = "-") {
135
139
  const app = this.appName;
136
140
  const stage = this.stage;
@@ -290,8 +294,8 @@ export class Scope {
290
294
  }
291
295
  return null;
292
296
  }
293
- async finalize(force) {
294
- const shouldForce = force ||
297
+ async finalize(options) {
298
+ const shouldForce = options?.force ||
295
299
  this.parent === undefined ||
296
300
  this?.parent?.scopeName === this.root.scopeName;
297
301
  if (this.phase === "read") {
@@ -314,7 +318,10 @@ export class Scope {
314
318
  const orphanIds = Array.from(resourceIds.filter((id) => !aliveIds.has(id)));
315
319
  if (shouldForce) {
316
320
  await this.destroyPendingDeletions();
317
- await Promise.all(Array.from(this.children.values()).map((child) => child.finalize(shouldForce)));
321
+ await Promise.all(Array.from(this.children.values()).map((child) => child.finalize({
322
+ force: shouldForce,
323
+ noop: options?.noop,
324
+ })));
318
325
  }
319
326
  const orphans = await Promise.all(orphanIds.map(async (id) => (await this.state.get(id)).output)).then((orphans) => orphans.filter((orphan) =>
320
327
  //we never want to mark the stage scope as an orphan
@@ -324,6 +331,7 @@ export class Scope {
324
331
  quiet: this.quiet,
325
332
  strategy: this.destroyStrategy,
326
333
  force: shouldForce,
334
+ noop: options?.noop,
327
335
  });
328
336
  this.rootTelemetryClient?.record({
329
337
  event: "app.success",
package/lib/scope.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,7 @@
1
1
  /**
2
- * Removes common indentation from template literals to make them more readable in code.
3
- * This allows writing multi-line strings with proper indentation in the source code
4
- * while removing that indentation in the output string.
2
+ * Tagged template literal for removing indentation from a block of text.
5
3
  *
6
- * @example
7
- * const message = dedent`
8
- * This is a multi-line string
9
- * that will have its indentation removed.
10
- * This line has extra indentation that will be preserved.
11
- * `;
12
- * // Result:
13
- * // "This is a multi-line string
14
- * // that will have its indentation removed.
15
- * // This line has extra indentation that will be preserved."
4
+ * If the first line is empty, it will be ignored.
16
5
  */
17
- export declare function dedent(strings: TemplateStringsArray, ...values: any[]): string;
6
+ export declare function dedent(strings: TemplateStringsArray, ...values: unknown[]): string;
18
7
  //# sourceMappingURL=dedent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dedent.d.ts","sourceRoot":"","sources":["../../src/util/dedent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,MAAM,CACpB,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,GAAG,EAAE,GACf,MAAM,CAmDR"}
1
+ {"version":3,"file":"dedent.d.ts","sourceRoot":"","sources":["../../src/util/dedent.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,UAmCzE"}
@@ -1,61 +1,37 @@
1
+ import assert from "node:assert";
1
2
  /**
2
- * Removes common indentation from template literals to make them more readable in code.
3
- * This allows writing multi-line strings with proper indentation in the source code
4
- * while removing that indentation in the output string.
3
+ * Tagged template literal for removing indentation from a block of text.
5
4
  *
6
- * @example
7
- * const message = dedent`
8
- * This is a multi-line string
9
- * that will have its indentation removed.
10
- * This line has extra indentation that will be preserved.
11
- * `;
12
- * // Result:
13
- * // "This is a multi-line string
14
- * // that will have its indentation removed.
15
- * // This line has extra indentation that will be preserved."
5
+ * If the first line is empty, it will be ignored.
16
6
  */
17
7
  export function dedent(strings, ...values) {
18
- // Combine the template strings and values
19
- const result = strings.reduce((acc, str, i) => {
20
- return acc + str + (values[i] !== undefined ? values[i] : "");
21
- }, "");
22
- // Split into lines
23
- const lines = result.split("\n");
24
- // Remove ALL leading blank/whitespace-only lines
25
- while (lines.length > 0 && lines[0].trim() === "") {
26
- lines.shift();
8
+ // Convert template literal arguments back to a regular string
9
+ const raw = String.raw({ raw: strings }, ...values);
10
+ // Split the string by lines
11
+ let lines = raw.split("\n");
12
+ assert(lines.length > 0);
13
+ // If the last line is just whitespace, remove it
14
+ if (lines[lines.length - 1].trim() === "") {
15
+ lines = lines.slice(0, lines.length - 1);
27
16
  }
28
- // Remove ALL trailing blank/whitespace-only lines
29
- while (lines.length > 0 && lines[lines.length - 1].trim() === "") {
30
- lines.pop();
31
- }
32
- // If there are no lines left after trimming, return an empty string
33
- if (lines.length === 0) {
34
- return "";
17
+ // Find the minimum-length indent, excluding the first line
18
+ let minIndent = "";
19
+ // (Could use `minIndent.length` for this, but then would need to start with
20
+ // infinitely long string)
21
+ let minIndentLength = Number.POSITIVE_INFINITY;
22
+ for (const line of lines.slice(1)) {
23
+ const indent = line.match(/^[ \t]*/)?.[0];
24
+ if (indent != null && indent.length < minIndentLength) {
25
+ minIndent = indent;
26
+ minIndentLength = indent.length;
27
+ }
35
28
  }
36
- // Find the minimum indentation level (excluding empty/whitespace lines)
37
- const minIndent = lines
38
- .filter((line) => line.trim().length > 0) // Only consider non-blank lines for indent calculation
39
- .reduce((min, line) => {
40
- const indent = line.match(/^[ \t]*/)?.[0].length || 0;
41
- // Handle potentially infinite min if all lines are blank (though handled by early return)
42
- return indent < min ? indent : min;
43
- }, Number.POSITIVE_INFINITY);
44
- // If minIndent remains Infinity (only blank lines existed), return empty string.
45
- // This case should be caught by the lines.length check above, but belt-and-suspenders.
46
- if (minIndent === Number.POSITIVE_INFINITY) {
47
- return "";
29
+ // If the first line is just whitespace, remove it
30
+ if (lines.length > 0 && lines[0].trim() === "") {
31
+ lines = lines.slice(1);
48
32
  }
49
- // Remove the common indentation from each line
50
- const dedented = lines.map((line) => {
51
- // Preserve internal blank lines as empty strings, don't try to substring them
52
- if (line.trim().length === 0) {
53
- return "";
54
- }
55
- // Apply dedent only to lines with content
56
- return line.substring(minIndent);
57
- });
58
- // Join the lines back together
59
- return dedented.join("\n");
33
+ // Remove indent from all lines, and return them all joined together
34
+ lines = lines.map((line) => line.startsWith(minIndent) ? line.substring(minIndent.length) : line);
35
+ return lines.join("\n");
60
36
  }
61
37
  //# sourceMappingURL=dedent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dedent.js","sourceRoot":"","sources":["../../src/util/dedent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,MAAM,CACpB,OAA6B,EAC7B,GAAG,MAAa;IAEhB,0CAA0C;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;QAC5C,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,mBAAmB;IACnB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEjC,iDAAiD;IACjD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAClD,KAAK,CAAC,KAAK,EAAE,CAAC;IAChB,CAAC;IAED,kDAAkD;IAClD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACjE,KAAK,CAAC,GAAG,EAAE,CAAC;IACd,CAAC;IAED,oEAAoE;IACpE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,wEAAwE;IACxE,MAAM,SAAS,GAAG,KAAK;SACpB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,uDAAuD;SAChG,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACtD,0FAA0F;QAC1F,OAAO,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;IACrC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAE/B,iFAAiF;IACjF,uFAAuF;IACvF,IAAI,SAAS,KAAK,MAAM,CAAC,iBAAiB,EAAE,CAAC;QAC3C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,+CAA+C;IAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClC,8EAA8E;QAC9E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,0CAA0C;QAC1C,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEH,+BAA+B;IAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"dedent.js","sourceRoot":"","sources":["../../src/util/dedent.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AAEjC;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,OAA6B,EAAE,GAAG,MAAiB;IACxE,8DAA8D;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,CAAC;IACpD,4BAA4B;IAC5B,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEzB,iDAAiD;IACjD,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC1C,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAED,2DAA2D;IAC3D,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,4EAA4E;IAC5E,0BAA0B;IAC1B,IAAI,eAAe,GAAG,MAAM,CAAC,iBAAiB,CAAC;IAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,MAAM,GAAG,eAAe,EAAE,CAAC;YACtD,SAAS,GAAG,MAAM,CAAC;YACnB,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;QAClC,CAAC;IACH,CAAC;IAED,kDAAkD;IAClD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QAC/C,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzB,CAAC;IAED,oEAAoE;IACpE,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACzB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CACrE,CAAC;IACF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alchemy",
3
- "version": "0.63.1",
3
+ "version": "0.64.0",
4
4
  "license": "Apache-2.0",
5
5
  "author": "Sam Goodwin <sam@alchemy.run>",
6
6
  "homepage": "https://alchemy.run",
@@ -147,7 +147,7 @@
147
147
  },
148
148
  "dependencies": {
149
149
  "@aws-sdk/credential-providers": "^3.0.0",
150
- "@cloudflare/unenv-preset": "^2.6.1",
150
+ "@cloudflare/unenv-preset": "^2.6.3",
151
151
  "@iarna/toml": "^2.2.5",
152
152
  "@smithy/node-config-provider": "^4.0.0",
153
153
  "aws4fetch": "^1.0.20",
@@ -182,7 +182,7 @@
182
182
  "@aws-sdk/client-ssm": "^3.0.0",
183
183
  "@aws-sdk/client-sts": "^3.0.0",
184
184
  "@cloudflare/vite-plugin": "^1.10.1",
185
- "@cloudflare/workers-types": "*",
185
+ "@cloudflare/workers-types": "^4.20250805.0",
186
186
  "@libsql/client": "^0.15.12",
187
187
  "@octokit/rest": "^21.1.1",
188
188
  "astro": "^5.13.2",
@@ -269,6 +269,7 @@
269
269
  "@types/libsodium-wrappers": "^0.7.14",
270
270
  "@types/node": "latest",
271
271
  "@types/ws": "^8.18.1",
272
+ "@workos-inc/node": "^7.69.1",
272
273
  "arktype": "^2.1.16",
273
274
  "astro": "^5.13.2",
274
275
  "braintrust": "^0.0.201",
package/src/alchemy.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { execArgv } from "node:process";
2
2
  import { onExit } from "signal-exit";
3
- import { ReplacedSignal } from "./apply.ts";
4
- import { DestroyStrategy, DestroyedSignal, destroy } from "./destroy.ts";
3
+ import { isReplacedSignal } from "./apply.ts";
4
+ import { DestroyStrategy, destroy, isDestroyedSignal } from "./destroy.ts";
5
5
  import { env } from "./env.ts";
6
6
  import {
7
7
  ResourceFQN,
@@ -239,6 +239,10 @@ export interface AlchemyOptions {
239
239
  * @default "sequential"
240
240
  */
241
241
  destroyStrategy?: DestroyStrategy;
242
+ /**
243
+ * If true, children of the resource will not be destroyed (but their state will be deleted).
244
+ */
245
+ noop?: boolean;
242
246
  /**
243
247
  * If true, will not print any Create/Update/Delete messages.
244
248
  *
@@ -327,6 +331,7 @@ async function run<T>(
327
331
  scopeName: id,
328
332
  telemetryClient,
329
333
  });
334
+ let noop = options?.noop ?? false;
330
335
  try {
331
336
  if (options?.isResource !== true && _scope.parent) {
332
337
  // TODO(sam): this is an awful hack to differentiate between naked scopes and resources
@@ -364,13 +369,16 @@ async function run<T>(
364
369
  }
365
370
  return await _scope.run(async () => fn.bind(_scope)(_scope));
366
371
  } catch (error) {
367
- if (
368
- !(error instanceof DestroyedSignal || error instanceof ReplacedSignal)
369
- ) {
372
+ if (!(isDestroyedSignal(error) || isReplacedSignal(error))) {
370
373
  _scope.fail();
371
374
  }
375
+ if (isDestroyedSignal(error)) {
376
+ noop = noop || error.noop;
377
+ }
372
378
  throw error;
373
379
  } finally {
374
- await _scope.finalize();
380
+ await _scope.finalize({
381
+ noop,
382
+ });
375
383
  }
376
384
  }
package/src/apply.ts CHANGED
@@ -22,6 +22,7 @@ import type { Telemetry } from "./util/telemetry/index.ts";
22
22
  export interface ApplyOptions {
23
23
  quiet?: boolean;
24
24
  alwaysUpdate?: boolean;
25
+ noop?: boolean;
25
26
  }
26
27
 
27
28
  export function apply<Out extends Resource>(
@@ -32,7 +33,12 @@ export function apply<Out extends Resource>(
32
33
  return _apply(resource, props, options);
33
34
  }
34
35
 
36
+ export function isReplacedSignal(error: any): error is ReplacedSignal {
37
+ return error instanceof Error && (error as any).kind === "ReplacedSignal";
38
+ }
39
+
35
40
  export class ReplacedSignal extends Error {
41
+ readonly kind = "ReplacedSignal";
36
42
  public force: boolean;
37
43
 
38
44
  constructor(force?: boolean) {
@@ -185,6 +191,7 @@ async function _apply<Out extends Resource>(
185
191
  isResource: true,
186
192
  parent: scope,
187
193
  destroyStrategy: provider.options?.destroyStrategy ?? "sequential",
194
+ noop: options?.noop,
188
195
  },
189
196
  async () =>
190
197
  await provider.handler.bind(ctx)(resource[ResourceID], props),
@@ -199,6 +206,7 @@ async function _apply<Out extends Resource>(
199
206
  props: state.oldProps,
200
207
  output: oldOutput,
201
208
  },
209
+ noop: options?.noop,
202
210
  });
203
211
  } else {
204
212
  if (
@@ -219,7 +227,11 @@ async function _apply<Out extends Resource>(
219
227
 
220
228
  output = await alchemy.run(
221
229
  resource[ResourceID],
222
- { isResource: true, parent: scope },
230
+ {
231
+ isResource: true,
232
+ parent: scope,
233
+ noop: options?.noop,
234
+ },
223
235
  async () =>
224
236
  provider.handler.bind(
225
237
  context({
@@ -10,7 +10,7 @@ import type { AnalyticsEngineDataset } from "./analytics-engine.ts";
10
10
  import type { Assets } from "./assets.ts";
11
11
  import type { Bound } from "./bound.ts";
12
12
  import type { BrowserRendering } from "./browser-rendering.ts";
13
- import type { R2Bucket } from "./bucket.ts";
13
+ import type { R2Bucket, R2BucketJurisdiction } from "./bucket.ts";
14
14
  import type { Container } from "./container.ts";
15
15
  import type { D1Database } from "./d1-database.ts";
16
16
  import type { DispatchNamespace } from "./dispatch-namespace.ts";
@@ -317,6 +317,8 @@ export interface WorkerBindingR2Bucket {
317
317
  type: "r2_bucket";
318
318
  /** Bucket name */
319
319
  bucket_name: string;
320
+ /** Jurisdiction */
321
+ jurisdiction?: R2BucketJurisdiction;
320
322
  }
321
323
 
322
324
  /**
@@ -15,6 +15,8 @@ import {
15
15
  } from "./api.ts";
16
16
  import { deleteMiniflareBinding } from "./miniflare/delete.ts";
17
17
 
18
+ export type R2BucketJurisdiction = "default" | "eu" | "fedramp";
19
+
18
20
  /**
19
21
  * Properties for creating or updating an R2 Bucket
20
22
  */
@@ -44,7 +46,7 @@ export interface BucketProps extends CloudflareApiOptions {
44
46
  * Optional jurisdiction for the bucket
45
47
  * Determines the regulatory jurisdiction the bucket data falls under
46
48
  */
47
- jurisdiction?: "default" | "eu" | "fedramp";
49
+ jurisdiction?: R2BucketJurisdiction;
48
50
 
49
51
  /**
50
52
  * Whether to allow public access through the r2.dev subdomain
@@ -0,0 +1,42 @@
1
+ import type { Plugin } from "esbuild";
2
+ import { dedent } from "../../util/dedent.ts";
3
+
4
+ /**
5
+ * An esbuild plugin that will mark any `cloudflare:...` imports as external.
6
+ */
7
+ export const cloudflareInternalPlugin: Plugin = {
8
+ name: "cloudflare-internal-imports",
9
+ setup(pluginBuild) {
10
+ const paths = new Set();
11
+ pluginBuild.onStart(() => paths.clear());
12
+ pluginBuild.onResolve({ filter: /^cloudflare:.*/ }, (args) => {
13
+ paths.add(args.path);
14
+ return { external: true };
15
+ });
16
+ pluginBuild.onEnd(() => {
17
+ if (pluginBuild.initialOptions.format === "iife" && paths.size > 0) {
18
+ // If we are bundling in "Service Worker" mode,
19
+ // imports of external modules such as `cloudflare:...`,
20
+ // which won't be inlined/bundled by esbuild, are invalid.
21
+ const pathList = new Intl.ListFormat("en-US").format(
22
+ Array.from(paths.keys())
23
+ .map((p) => `"${p}"`)
24
+ .sort(),
25
+ );
26
+ return {
27
+ errors: [
28
+ {
29
+ text: dedent`
30
+ Unexpected external import of ${pathList}.
31
+ Your worker has no default export, which means it is assumed to be a Service Worker format Worker.
32
+ Did you mean to create a ES Module format Worker?
33
+ If so, try adding \`export default { ... }\` in your entry-point.
34
+ See https://developers.cloudflare.com/workers/reference/migrate-to-module-workers/.
35
+ `,
36
+ },
37
+ ],
38
+ };
39
+ }
40
+ });
41
+ },
42
+ };
@@ -0,0 +1,14 @@
1
+ import { builtinModules } from "node:module";
2
+
3
+ export const NODEJS_MODULES_RE = new RegExp(
4
+ `^(node:)?(${builtinModules
5
+ .filter(
6
+ (m) =>
7
+ ![
8
+ // in some runtimes (like bun), `ws` is a built-in module but is not in `node`
9
+ // bundling for `nodejs_compat` should not polyfill these modules
10
+ "ws",
11
+ ].includes(m),
12
+ )
13
+ .join("|")})$`,
14
+ );
@@ -0,0 +1,13 @@
1
+ import type { Plugin } from "esbuild";
2
+
3
+ /**
4
+ * An esbuild plugin that will mark `node:async_hooks` imports as external.
5
+ */
6
+ export const esbuildPluginAsyncLocalStorage: Plugin = {
7
+ name: "async-local-storage-imports",
8
+ setup(pluginBuild) {
9
+ pluginBuild.onResolve({ filter: /^node:async_hooks(\/|$)/ }, () => {
10
+ return { external: true };
11
+ });
12
+ },
13
+ };
@@ -4,9 +4,10 @@
4
4
 
5
5
  import type { Plugin, PluginBuild } from "esbuild";
6
6
  import assert from "node:assert";
7
- import module, { createRequire } from "node:module";
7
+ import { createRequire } from "node:module";
8
8
  import nodePath from "node:path";
9
9
  import { dedent } from "../../util/dedent.ts";
10
+ import { NODEJS_MODULES_RE } from "./nodejs-builtin-modules.ts";
10
11
 
11
12
  const _require =
12
13
  typeof require === "undefined" ? createRequire(import.meta.url) : require;
@@ -19,15 +20,34 @@ const REQUIRED_UNENV_ALIAS_NAMESPACE = "required-unenv-alias";
19
20
  *
20
21
  * @returns ESBuild plugin
21
22
  */
22
- export function esbuildPluginHybridNodeCompat(): Plugin {
23
+ export function esbuildPluginHybridNodeCompat({
24
+ compatibilityDate,
25
+ compatibilityFlags,
26
+ }: {
27
+ compatibilityDate?: string;
28
+ compatibilityFlags?: string[];
29
+ }): Plugin {
23
30
  return {
24
31
  name: "hybrid-nodejs_compat",
25
- setup: async (build) => {
32
+ async setup(build) {
26
33
  // `unenv` and `@cloudflare/unenv-preset` only publish esm
27
34
  const { defineEnv } = await import("unenv");
28
- const { cloudflare } = await import("@cloudflare/unenv-preset");
35
+ const { getCloudflarePreset } = await import("@cloudflare/unenv-preset");
36
+
29
37
  const { alias, inject, external, polyfill } = defineEnv({
30
- presets: [cloudflare],
38
+ presets: [
39
+ getCloudflarePreset({
40
+ compatibilityDate,
41
+ compatibilityFlags,
42
+ }),
43
+ {
44
+ alias: {
45
+ // Force esbuild to use the node implementation of debug instead of unenv's no-op stub.
46
+ // The alias is processed by handleUnenvAliasedPackages which uses require.resolve().
47
+ debug: "debug",
48
+ },
49
+ },
50
+ ],
31
51
  npmShims: true,
32
52
  }).env;
33
53
 
@@ -39,19 +59,6 @@ export function esbuildPluginHybridNodeCompat(): Plugin {
39
59
  };
40
60
  }
41
61
 
42
- const NODEJS_MODULES_RE = new RegExp(
43
- `^(node:)?(${module.builtinModules
44
- .filter(
45
- (m) =>
46
- ![
47
- // in some runtimes (like bun), `ws` is a built-in module but is not in `node`
48
- // bundling for `nodejs_compat` should not polyfill these modules
49
- "ws",
50
- ].includes(m),
51
- )
52
- .join("|")})$`,
53
- );
54
-
55
62
  /**
56
63
  * If we are bundling a "Service Worker" formatted Worker, imports of external modules,
57
64
  * which won't be inlined/bundled by esbuild, are invalid.
@@ -108,8 +115,8 @@ function handleRequireCallsToNodeJSBuiltins(build: PluginBuild) {
108
115
  ({ path }) => {
109
116
  return {
110
117
  contents: dedent`
111
- import libDefault from '${path}';
112
- module.exports = libDefault;`,
118
+ import libDefault from '${path}';
119
+ module.exports = libDefault;`,
113
120
  loader: "js",
114
121
  };
115
122
  },
@@ -133,7 +140,7 @@ function handleUnenvAliasedPackages(
133
140
  for (const [module, unresolvedAlias] of Object.entries(alias)) {
134
141
  try {
135
142
  aliasAbsolute[module] = _require.resolve(unresolvedAlias);
136
- } catch (_e) {
143
+ } catch {
137
144
  // this is an alias for package that is not installed in the current app => ignore
138
145
  }
139
146
  }
@@ -144,17 +151,12 @@ function handleUnenvAliasedPackages(
144
151
 
145
152
  build.onResolve({ filter: UNENV_ALIAS_RE }, (args) => {
146
153
  const unresolvedAlias = alias[args.path];
147
-
148
154
  // Convert `require()` calls for NPM packages to a virtual ES Module that can be imported avoiding the require calls.
149
155
  // Note: Does not apply to Node.js packages that are handled in `handleRequireCallsToNodeJSBuiltins`
150
156
  if (
151
157
  args.kind === "require-call" &&
152
158
  (unresolvedAlias.startsWith("unenv/npm/") ||
153
- unresolvedAlias.startsWith("unenv/mock/") ||
154
- // this does not exist in the original wrangler code but does seem to resolve the problem
155
- // TODO(sam): is this the right solution? Why does the same code work in wrangler?
156
- unresolvedAlias.startsWith("@cloudflare/unenv-preset/npm/") ||
157
- unresolvedAlias.startsWith("@cloudflare/unenv-preset/mock/"))
159
+ unresolvedAlias.startsWith("unenv/mock/"))
158
160
  ) {
159
161
  return {
160
162
  path: args.path,
@@ -200,7 +202,6 @@ function handleNodeJSGlobals(
200
202
  ) {
201
203
  const UNENV_VIRTUAL_MODULE_RE = /_virtual_unenv_global_polyfill-(.+)$/;
202
204
  const prefix = nodePath.resolve(
203
- // getBasePath(),
204
205
  import.meta.dirname,
205
206
  "_virtual_unenv_global_polyfill-",
206
207
  );