alchemy 0.1.11 → 0.1.13

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 (312) hide show
  1. package/README.md +324 -0
  2. package/lib/$.d.ts +8 -3
  3. package/lib/$.d.ts.map +1 -1
  4. package/lib/$.js +38 -27
  5. package/lib/$.js.map +1 -1
  6. package/lib/alchemize.d.ts.map +1 -1
  7. package/lib/alchemize.js +7 -0
  8. package/lib/alchemize.js.map +1 -1
  9. package/lib/apply.d.ts +2 -2
  10. package/lib/apply.d.ts.map +1 -1
  11. package/lib/apply.js +3 -3
  12. package/lib/apply.js.map +1 -1
  13. package/lib/aws/index.d.ts +1 -0
  14. package/lib/aws/index.d.ts.map +1 -1
  15. package/lib/aws/index.js +1 -0
  16. package/lib/aws/index.js.map +1 -1
  17. package/lib/aws/ses.d.ts +75 -0
  18. package/lib/aws/ses.d.ts.map +1 -0
  19. package/lib/aws/ses.js +197 -0
  20. package/lib/aws/ses.js.map +1 -0
  21. package/lib/cloudflare/api.d.ts +88 -0
  22. package/lib/cloudflare/api.d.ts.map +1 -0
  23. package/lib/cloudflare/api.js +184 -0
  24. package/lib/cloudflare/api.js.map +1 -0
  25. package/lib/cloudflare/asset-manifest.d.ts +15 -0
  26. package/lib/cloudflare/asset-manifest.d.ts.map +1 -0
  27. package/lib/cloudflare/asset-manifest.js +2 -0
  28. package/lib/cloudflare/asset-manifest.js.map +1 -0
  29. package/lib/cloudflare/auth.d.ts +52 -0
  30. package/lib/cloudflare/auth.d.ts.map +1 -0
  31. package/lib/cloudflare/auth.js +114 -0
  32. package/lib/cloudflare/auth.js.map +1 -0
  33. package/lib/cloudflare/bindings.d.ts +254 -0
  34. package/lib/cloudflare/bindings.d.ts.map +1 -0
  35. package/lib/cloudflare/bindings.js +2 -0
  36. package/lib/cloudflare/bindings.js.map +1 -0
  37. package/lib/cloudflare/durable-object-namespace.d.ts +23 -0
  38. package/lib/cloudflare/durable-object-namespace.d.ts.map +1 -0
  39. package/lib/cloudflare/durable-object-namespace.js +26 -0
  40. package/lib/cloudflare/durable-object-namespace.js.map +1 -0
  41. package/lib/cloudflare/generate-asset-manifest.d.ts +3 -0
  42. package/lib/cloudflare/generate-asset-manifest.d.ts.map +1 -0
  43. package/lib/cloudflare/generate-asset-manifest.js +69 -0
  44. package/lib/cloudflare/generate-asset-manifest.js.map +1 -0
  45. package/lib/cloudflare/index.d.ts +7 -0
  46. package/lib/cloudflare/index.d.ts.map +1 -0
  47. package/lib/cloudflare/index.js +7 -0
  48. package/lib/cloudflare/index.js.map +1 -0
  49. package/lib/cloudflare/kv-namespace.d.ts +61 -0
  50. package/lib/cloudflare/kv-namespace.d.ts.map +1 -0
  51. package/lib/cloudflare/kv-namespace.js +93 -0
  52. package/lib/cloudflare/kv-namespace.js.map +1 -0
  53. package/lib/cloudflare/state.d.ts +83 -0
  54. package/lib/cloudflare/state.d.ts.map +1 -0
  55. package/lib/cloudflare/state.js +109 -0
  56. package/lib/cloudflare/state.js.map +1 -0
  57. package/lib/cloudflare/static-site-router.d.ts +19 -0
  58. package/lib/cloudflare/static-site-router.d.ts.map +1 -0
  59. package/lib/cloudflare/static-site-router.js +110 -0
  60. package/lib/cloudflare/static-site-router.js.map +1 -0
  61. package/lib/cloudflare/static-site.d.ts +166 -0
  62. package/lib/cloudflare/static-site.d.ts.map +1 -0
  63. package/lib/cloudflare/static-site.js +168 -0
  64. package/lib/cloudflare/static-site.js.map +1 -0
  65. package/lib/cloudflare/types.d.ts +52 -0
  66. package/lib/cloudflare/types.d.ts.map +1 -0
  67. package/lib/cloudflare/types.js +21 -0
  68. package/lib/cloudflare/types.js.map +1 -0
  69. package/lib/cloudflare/upload-asset-manifest.d.ts +12 -0
  70. package/lib/cloudflare/upload-asset-manifest.d.ts.map +1 -0
  71. package/lib/cloudflare/upload-asset-manifest.js +55 -0
  72. package/lib/cloudflare/upload-asset-manifest.js.map +1 -0
  73. package/lib/cloudflare/worker-metadata.d.ts +130 -0
  74. package/lib/cloudflare/worker-metadata.d.ts.map +1 -0
  75. package/lib/cloudflare/worker-metadata.js +2 -0
  76. package/lib/cloudflare/worker-metadata.js.map +1 -0
  77. package/lib/cloudflare/worker-migration.d.ts +110 -0
  78. package/lib/cloudflare/worker-migration.d.ts.map +1 -0
  79. package/lib/cloudflare/worker-migration.js +11 -0
  80. package/lib/cloudflare/worker-migration.js.map +1 -0
  81. package/lib/cloudflare/worker.d.ts +105 -0
  82. package/lib/cloudflare/worker.d.ts.map +1 -0
  83. package/lib/cloudflare/worker.js +358 -0
  84. package/lib/cloudflare/worker.js.map +1 -0
  85. package/lib/destroy.d.ts +1 -1
  86. package/lib/destroy.d.ts.map +1 -1
  87. package/lib/destroy.js +2 -1
  88. package/lib/destroy.js.map +1 -1
  89. package/lib/esbuild.d.ts +83 -1
  90. package/lib/esbuild.d.ts.map +1 -1
  91. package/lib/esbuild.js +27 -18
  92. package/lib/esbuild.js.map +1 -1
  93. package/lib/fs.d.ts +1 -1
  94. package/lib/global.d.ts +0 -2
  95. package/lib/global.d.ts.map +1 -1
  96. package/lib/global.js +3 -3
  97. package/lib/global.js.map +1 -1
  98. package/lib/index.d.ts +1 -0
  99. package/lib/index.d.ts.map +1 -1
  100. package/lib/index.js +1 -0
  101. package/lib/index.js.map +1 -1
  102. package/lib/main.js +1 -1
  103. package/lib/main.js.map +1 -1
  104. package/lib/output.d.ts +18 -13
  105. package/lib/output.d.ts.map +1 -1
  106. package/lib/output.js +12 -5
  107. package/lib/output.js.map +1 -1
  108. package/lib/print.d.ts +7 -0
  109. package/lib/print.d.ts.map +1 -0
  110. package/lib/print.js +10 -0
  111. package/lib/print.js.map +1 -0
  112. package/lib/resource.d.ts +9 -4
  113. package/lib/resource.d.ts.map +1 -1
  114. package/lib/resource.js +127 -93
  115. package/lib/resource.js.map +1 -1
  116. package/lib/scope.d.ts +3 -0
  117. package/lib/scope.d.ts.map +1 -1
  118. package/lib/scope.js +4 -12
  119. package/lib/scope.js.map +1 -1
  120. package/lib/utils/content-type.d.ts +8 -0
  121. package/lib/utils/content-type.d.ts.map +1 -0
  122. package/lib/utils/content-type.js +41 -0
  123. package/lib/utils/content-type.js.map +1 -0
  124. package/package.json +27 -8
  125. package/src/$.ts +63 -30
  126. package/src/alchemize.ts +12 -0
  127. package/src/apply.ts +6 -6
  128. package/src/aws/index.ts +1 -0
  129. package/src/aws/ses.ts +346 -0
  130. package/src/cloudflare/api.ts +282 -0
  131. package/src/cloudflare/asset-manifest.ts +16 -0
  132. package/src/cloudflare/auth.ts +187 -0
  133. package/src/cloudflare/bindings.ts +297 -0
  134. package/src/cloudflare/durable-object-namespace.ts +43 -0
  135. package/src/cloudflare/generate-asset-manifest.ts +93 -0
  136. package/src/cloudflare/index.ts +6 -0
  137. package/src/cloudflare/kv-namespace.ts +195 -0
  138. package/src/cloudflare/state.ts +138 -0
  139. package/src/cloudflare/static-site-router.ts +150 -0
  140. package/src/cloudflare/static-site.ts +395 -0
  141. package/src/cloudflare/types.ts +71 -0
  142. package/src/cloudflare/upload-asset-manifest.ts +83 -0
  143. package/src/cloudflare/worker-metadata.ts +154 -0
  144. package/src/cloudflare/worker-migration.ts +145 -0
  145. package/src/cloudflare/worker.ts +666 -0
  146. package/src/destroy.ts +2 -2
  147. package/src/esbuild.ts +34 -22
  148. package/src/global.ts +1 -3
  149. package/src/index.ts +1 -1
  150. package/src/main.ts +1 -1
  151. package/src/output.ts +53 -37
  152. package/src/print.ts +18 -0
  153. package/src/resource.ts +163 -116
  154. package/src/scope.ts +7 -12
  155. package/src/utils/content-type.ts +42 -0
  156. package/lib/agent/ai.d.ts +0 -40
  157. package/lib/agent/ai.d.ts.map +0 -1
  158. package/lib/agent/ai.js +0 -132
  159. package/lib/agent/ai.js.map +0 -1
  160. package/lib/agent/anthropic.d.ts +0 -9
  161. package/lib/agent/anthropic.d.ts.map +0 -1
  162. package/lib/agent/anthropic.js +0 -25
  163. package/lib/agent/anthropic.js.map +0 -1
  164. package/lib/agent/dependencies.d.ts +0 -4
  165. package/lib/agent/dependencies.d.ts.map +0 -1
  166. package/lib/agent/dependencies.js +0 -48
  167. package/lib/agent/dependencies.js.map +0 -1
  168. package/lib/agent/file-context.d.ts +0 -13
  169. package/lib/agent/file-context.d.ts.map +0 -1
  170. package/lib/agent/file-context.js +0 -6
  171. package/lib/agent/file-context.js.map +0 -1
  172. package/lib/agent/index.d.ts +0 -10
  173. package/lib/agent/index.d.ts.map +0 -1
  174. package/lib/agent/index.js +0 -10
  175. package/lib/agent/index.js.map +0 -1
  176. package/lib/agent/model.d.ts +0 -8
  177. package/lib/agent/model.d.ts.map +0 -1
  178. package/lib/agent/model.js +0 -29
  179. package/lib/agent/model.js.map +0 -1
  180. package/lib/agent/module.d.ts +0 -81
  181. package/lib/agent/module.d.ts.map +0 -1
  182. package/lib/agent/module.js +0 -309
  183. package/lib/agent/module.js.map +0 -1
  184. package/lib/agent/openai.d.ts +0 -6
  185. package/lib/agent/openai.d.ts.map +0 -1
  186. package/lib/agent/openai.js +0 -41
  187. package/lib/agent/openai.js.map +0 -1
  188. package/lib/agent/program.d.ts +0 -12
  189. package/lib/agent/program.d.ts.map +0 -1
  190. package/lib/agent/program.js +0 -21
  191. package/lib/agent/program.js.map +0 -1
  192. package/lib/agent/prompts.d.ts +0 -4
  193. package/lib/agent/prompts.d.ts.map +0 -1
  194. package/lib/agent/prompts.js +0 -11
  195. package/lib/agent/prompts.js.map +0 -1
  196. package/lib/agent/scrape.d.ts +0 -71
  197. package/lib/agent/scrape.d.ts.map +0 -1
  198. package/lib/agent/scrape.js +0 -45
  199. package/lib/agent/scrape.js.map +0 -1
  200. package/lib/aws/auto/docs.d.ts +0 -11
  201. package/lib/aws/auto/docs.d.ts.map +0 -1
  202. package/lib/aws/auto/docs.js +0 -56
  203. package/lib/aws/auto/docs.js.map +0 -1
  204. package/lib/aws/auto/index.d.ts +0 -5
  205. package/lib/aws/auto/index.d.ts.map +0 -1
  206. package/lib/aws/auto/index.js +0 -5
  207. package/lib/aws/auto/index.js.map +0 -1
  208. package/lib/aws/auto/resource.d.ts +0 -24
  209. package/lib/aws/auto/resource.d.ts.map +0 -1
  210. package/lib/aws/auto/resource.js +0 -194
  211. package/lib/aws/auto/resource.js.map +0 -1
  212. package/lib/aws/auto/service.d.ts +0 -10
  213. package/lib/aws/auto/service.d.ts.map +0 -1
  214. package/lib/aws/auto/service.js +0 -34
  215. package/lib/aws/auto/service.js.map +0 -1
  216. package/lib/aws/auto/spec.d.ts +0 -83
  217. package/lib/aws/auto/spec.d.ts.map +0 -1
  218. package/lib/aws/auto/spec.js +0 -58
  219. package/lib/aws/auto/spec.js.map +0 -1
  220. package/lib/markdown/design.d.ts +0 -17
  221. package/lib/markdown/design.d.ts.map +0 -1
  222. package/lib/markdown/design.js +0 -92
  223. package/lib/markdown/design.js.map +0 -1
  224. package/lib/markdown/extract.d.ts +0 -7
  225. package/lib/markdown/extract.d.ts.map +0 -1
  226. package/lib/markdown/extract.js +0 -10
  227. package/lib/markdown/extract.js.map +0 -1
  228. package/lib/markdown/index.d.ts +0 -4
  229. package/lib/markdown/index.d.ts.map +0 -1
  230. package/lib/markdown/index.js +0 -4
  231. package/lib/markdown/index.js.map +0 -1
  232. package/lib/markdown/requirements.d.ts +0 -79
  233. package/lib/markdown/requirements.d.ts.map +0 -1
  234. package/lib/markdown/requirements.js +0 -105
  235. package/lib/markdown/requirements.js.map +0 -1
  236. package/lib/typescript/check-omission.d.ts +0 -2
  237. package/lib/typescript/check-omission.d.ts.map +0 -1
  238. package/lib/typescript/check-omission.js +0 -43
  239. package/lib/typescript/check-omission.js.map +0 -1
  240. package/lib/typescript/debug-type-errors.d.ts +0 -3
  241. package/lib/typescript/debug-type-errors.d.ts.map +0 -1
  242. package/lib/typescript/debug-type-errors.js +0 -35
  243. package/lib/typescript/debug-type-errors.js.map +0 -1
  244. package/lib/typescript/extract.d.ts +0 -7
  245. package/lib/typescript/extract.d.ts.map +0 -1
  246. package/lib/typescript/extract.js +0 -10
  247. package/lib/typescript/extract.js.map +0 -1
  248. package/lib/typescript/index.d.ts +0 -7
  249. package/lib/typescript/index.d.ts.map +0 -1
  250. package/lib/typescript/index.js +0 -7
  251. package/lib/typescript/index.js.map +0 -1
  252. package/lib/typescript/install-dependencies.d.ts +0 -29
  253. package/lib/typescript/install-dependencies.d.ts.map +0 -1
  254. package/lib/typescript/install-dependencies.js +0 -52
  255. package/lib/typescript/install-dependencies.js.map +0 -1
  256. package/lib/typescript/package.d.ts +0 -157
  257. package/lib/typescript/package.d.ts.map +0 -1
  258. package/lib/typescript/package.js +0 -115
  259. package/lib/typescript/package.js.map +0 -1
  260. package/lib/typescript/repair-omissions.d.ts +0 -3
  261. package/lib/typescript/repair-omissions.d.ts.map +0 -1
  262. package/lib/typescript/repair-omissions.js +0 -23
  263. package/lib/typescript/repair-omissions.js.map +0 -1
  264. package/lib/typescript/repair.d.ts +0 -3
  265. package/lib/typescript/repair.d.ts.map +0 -1
  266. package/lib/typescript/repair.js +0 -34
  267. package/lib/typescript/repair.js.map +0 -1
  268. package/lib/typescript/tsconfig.d.ts +0 -469
  269. package/lib/typescript/tsconfig.d.ts.map +0 -1
  270. package/lib/typescript/tsconfig.js +0 -143
  271. package/lib/typescript/tsconfig.js.map +0 -1
  272. package/lib/typescript/typescript.d.ts +0 -107
  273. package/lib/typescript/typescript.d.ts.map +0 -1
  274. package/lib/typescript/typescript.js +0 -180
  275. package/lib/typescript/typescript.js.map +0 -1
  276. package/lib/typescript/validate.d.ts +0 -10
  277. package/lib/typescript/validate.d.ts.map +0 -1
  278. package/lib/typescript/validate.js +0 -49
  279. package/lib/typescript/validate.js.map +0 -1
  280. package/src/agent/ai.ts +0 -215
  281. package/src/agent/anthropic.ts +0 -31
  282. package/src/agent/dependencies.ts +0 -62
  283. package/src/agent/file-context.ts +0 -8
  284. package/src/agent/index.ts +0 -9
  285. package/src/agent/model.ts +0 -39
  286. package/src/agent/module.ts +0 -418
  287. package/src/agent/openai.ts +0 -50
  288. package/src/agent/program.md +0 -38
  289. package/src/agent/program.ts +0 -37
  290. package/src/agent/prompts.ts +0 -20
  291. package/src/agent/scrape.ts +0 -47
  292. package/src/aws/auto/cfn.json +0 -225310
  293. package/src/aws/auto/docs.ts +0 -73
  294. package/src/aws/auto/index.ts +0 -4
  295. package/src/aws/auto/resource.ts +0 -269
  296. package/src/aws/auto/service.ts +0 -51
  297. package/src/aws/auto/spec.ts +0 -160
  298. package/src/markdown/design.ts +0 -125
  299. package/src/markdown/extract.ts +0 -9
  300. package/src/markdown/index.ts +0 -3
  301. package/src/markdown/requirements.ts +0 -135
  302. package/src/typescript/check-omission.ts +0 -47
  303. package/src/typescript/debug-type-errors.ts +0 -42
  304. package/src/typescript/extract.ts +0 -9
  305. package/src/typescript/index.ts +0 -6
  306. package/src/typescript/install-dependencies.ts +0 -61
  307. package/src/typescript/package.ts +0 -143
  308. package/src/typescript/repair-omissions.ts +0 -31
  309. package/src/typescript/repair.ts +0 -45
  310. package/src/typescript/tsconfig.ts +0 -170
  311. package/src/typescript/typescript.ts +0 -217
  312. package/src/typescript/validate.ts +0 -73
@@ -0,0 +1,168 @@
1
+ import { exec } from "child_process";
2
+ import { promises as fs } from "fs";
3
+ import path from "path";
4
+ import { promisify } from "util";
5
+ import { apply } from "../apply";
6
+ import { Resource } from "../resource";
7
+ import { createCloudflareApi } from "./api";
8
+ import { generateAssetManifest } from "./generate-asset-manifest";
9
+ import { KVNamespace } from "./kv-namespace";
10
+ import { uploadAssetManifest } from "./upload-asset-manifest";
11
+ import { Worker } from "./worker";
12
+ const __dirname = import.meta.dirname;
13
+ export class StaticSite extends Resource("cloudflare::StaticSite", {
14
+ alwaysUpdate: true,
15
+ }, async (ctx, props) => {
16
+ if (ctx.event === "delete") {
17
+ // For delete operations, we'll rely on the Worker delete to clean up
18
+ // Return empty output for deleted state
19
+ return;
20
+ }
21
+ // Validate that a name is provided
22
+ if (!props.name) {
23
+ throw new Error("StaticSite name is required - must be explicitly specified");
24
+ }
25
+ // Validate directory exists
26
+ if (!props.dir) {
27
+ throw new Error("Directory is required for StaticSite");
28
+ }
29
+ try {
30
+ const dirStat = await fs.stat(props.dir);
31
+ if (!dirStat.isDirectory()) {
32
+ throw new Error(`"${props.dir}" is not a directory`);
33
+ }
34
+ }
35
+ catch (error) {
36
+ throw new Error(`Directory "${props.dir}" does not exist: ${error.message}`);
37
+ }
38
+ // Run build command if provided
39
+ if (props.build?.command) {
40
+ try {
41
+ if (!ctx.quiet) {
42
+ console.log(props.build.command);
43
+ }
44
+ const execAsync = promisify(exec);
45
+ const { stdout, stderr } = await execAsync(props.build.command, {
46
+ cwd: process.cwd(),
47
+ });
48
+ if (stdout && !ctx.quiet)
49
+ console.log(stdout);
50
+ }
51
+ catch (error) {
52
+ // Log detailed error information
53
+ console.error(`Build command failed with exit code ${error.code}`);
54
+ if (error.stdout)
55
+ console.error(`Command stdout: ${error.stdout}`);
56
+ if (error.stderr)
57
+ console.error(`Command stderr: ${error.stderr}`);
58
+ // Throw a more descriptive error that includes the exit code and stderr
59
+ throw new Error(`Build command "${props.build.command}" failed with exit code ${error.code}:\n${error.stderr || error.message}`);
60
+ }
61
+ }
62
+ // Use the provided name
63
+ const siteName = props.name;
64
+ const indexPage = props.indexPage || "index.html";
65
+ // Create Cloudflare API client with automatic account discovery
66
+ const api = await createCloudflareApi();
67
+ // Step 1: Create or get the KV namespace for assets
68
+ const namespace = new KVNamespace("assets", {
69
+ title: `${siteName}-assets`,
70
+ });
71
+ const [{ id: kvNamespaceId }, assetManifest] = await Promise.all([
72
+ apply(namespace, {
73
+ quiet: ctx.quiet,
74
+ }),
75
+ generateAssetManifest(props.dir),
76
+ ]);
77
+ // Step 3: Upload assets to KV
78
+ await uploadAssetManifest(api, kvNamespaceId, assetManifest);
79
+ // Prepare the bindings for the worker
80
+ const bindings = [
81
+ {
82
+ name: "ASSETS",
83
+ type: "kv_namespace",
84
+ namespace_id: kvNamespaceId,
85
+ },
86
+ {
87
+ name: "INDEX_PAGE",
88
+ type: "plain_text",
89
+ text: indexPage,
90
+ },
91
+ ];
92
+ // Add error page binding if specified
93
+ if (props.errorPage) {
94
+ bindings.push({
95
+ name: "ERROR_PAGE",
96
+ type: "plain_text",
97
+ text: props.errorPage,
98
+ });
99
+ }
100
+ const routes = {};
101
+ // Create backend worker if configured
102
+ if (props.routes) {
103
+ for (const [path, entrypoint] of Object.entries(props.routes)) {
104
+ // @ts-ignore - TODO: need to use Resolved<Worker> to get the string ...
105
+ routes[path] = entrypoint.id;
106
+ bindings.push({
107
+ type: "service",
108
+ name: `ROUTE_${entrypoint.id}`,
109
+ service: entrypoint.id,
110
+ });
111
+ }
112
+ }
113
+ // Create asset manifest banner for static site router
114
+ const assetManifestBanner = `const __ASSET_MANIFEST__ = ${JSON.stringify(Object.fromEntries(assetManifest.map((item) => [item.key, item.hash])))};\n`;
115
+ const bundleOptions = {
116
+ ...props.bundle,
117
+ options: {
118
+ ...props.bundle?.options,
119
+ banner: {
120
+ js: assetManifestBanner,
121
+ ...props.bundle?.options?.banner,
122
+ },
123
+ },
124
+ };
125
+ const worker = new Worker("worker", {
126
+ name: siteName,
127
+ url: true,
128
+ format: props.format || "esm",
129
+ // If a custom worker script is provided, use it, otherwise use the entrypoint from router
130
+ ...(props.workerScript
131
+ ? { script: props.workerScript }
132
+ : {
133
+ entrypoint: path.resolve(__dirname, "static-site-router.ts"),
134
+ bundle: bundleOptions,
135
+ }),
136
+ bindings,
137
+ env: {
138
+ ...Object.fromEntries(Object.entries(routes).map(([key, value]) => [
139
+ `__ROUTE_${value}`,
140
+ key,
141
+ ])),
142
+ },
143
+ },
144
+ // place a dependency on the namespace
145
+ namespace.id);
146
+ // Get current timestamp
147
+ const now = Date.now();
148
+ // Construct the output
149
+ const output = {
150
+ id: siteName,
151
+ workerId: worker.id,
152
+ name: siteName,
153
+ directory: props.dir,
154
+ format: props.format || "esm",
155
+ errorPage: props.errorPage,
156
+ indexPage,
157
+ assets: assetManifest.map((item) => item.key),
158
+ createdAt: ctx.output?.createdAt || now,
159
+ updatedAt: now,
160
+ domain: props.domain,
161
+ production: props.production !== false,
162
+ url: worker.url,
163
+ routes,
164
+ };
165
+ return output;
166
+ }) {
167
+ }
168
+ //# sourceMappingURL=static-site.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static-site.js","sourceRoot":"","sources":["../../src/cloudflare/static-site.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Cloudflare API response format
3
+ */
4
+ export interface CloudflareApiResponse<T> {
5
+ /**
6
+ * API response result
7
+ */
8
+ result: T;
9
+ /**
10
+ * Success status
11
+ */
12
+ success: boolean;
13
+ /**
14
+ * Error details if success is false
15
+ */
16
+ errors: CloudflareApiError[];
17
+ /**
18
+ * Response messages
19
+ */
20
+ messages: string[];
21
+ /**
22
+ * Result information (typically for paginated results)
23
+ */
24
+ result_info?: {
25
+ page: number;
26
+ per_page: number;
27
+ total_pages: number;
28
+ count: number;
29
+ total_count: number;
30
+ };
31
+ }
32
+ /**
33
+ * Cloudflare API error format
34
+ */
35
+ export interface CloudflareApiError {
36
+ /**
37
+ * Error code
38
+ */
39
+ code: number;
40
+ /**
41
+ * Error message
42
+ */
43
+ message: string;
44
+ }
45
+ /**
46
+ * Helper to extract and handle Cloudflare API errors
47
+ *
48
+ * @param response Fetch response object
49
+ * @returns Formatted error message
50
+ */
51
+ export declare function extractCloudflareError(response: Response): Promise<string>;
52
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cloudflare/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC;;OAEG;IACH,MAAM,EAAE,CAAC,CAAC;IAEV;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAE7B;;OAEG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,WAAW,CAAC,EAAE;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,MAAM,CAAC,CAWjB"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Helper to extract and handle Cloudflare API errors
3
+ *
4
+ * @param response Fetch response object
5
+ * @returns Formatted error message
6
+ */
7
+ export async function extractCloudflareError(response) {
8
+ try {
9
+ const data = (await response.json());
10
+ if (data.errors && data.errors.length > 0) {
11
+ return data.errors.map((e) => `Error ${e.code}: ${e.message}`).join(", ");
12
+ }
13
+ else {
14
+ return `HTTP ${response.status}: ${response.statusText}`;
15
+ }
16
+ }
17
+ catch (e) {
18
+ return `HTTP ${response.status}: ${response.statusText}`;
19
+ }
20
+ }
21
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cloudflare/types.ts"],"names":[],"mappings":"AAmDA;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,QAAkB;IAElB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA+B,CAAC;QACnE,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,OAAO,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC3D,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,QAAQ,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;IAC3D,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { CloudflareApi } from "./api";
2
+ import type { AssetManifest } from "./asset-manifest";
3
+ type AssetItem = AssetManifest[number];
4
+ type UploadResult = {
5
+ item: AssetItem;
6
+ success: boolean;
7
+ status?: number;
8
+ error?: unknown;
9
+ };
10
+ export declare function uploadAssetManifest(api: CloudflareApi, namespaceId: string, manifest: AssetManifest): Promise<UploadResult[]>;
11
+ export {};
12
+ //# sourceMappingURL=upload-asset-manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-asset-manifest.d.ts","sourceRoot":"","sources":["../../src/cloudflare/upload-asset-manifest.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAMtD,KAAK,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AACvC,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,aAAa,EAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,aAAa,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC,CA8DzB"}
@@ -0,0 +1,55 @@
1
+ import fs from "node:fs/promises";
2
+ // Maximum number of concurrent uploads
3
+ const MAX_CONCURRENT = 100; // Adjust based on API limits and performance testing
4
+ export async function uploadAssetManifest(api, namespaceId, manifest) {
5
+ const results = [];
6
+ // Process in batches with controlled concurrency
7
+ let index = 0;
8
+ const activePromises = new Set();
9
+ while (index < manifest.length || activePromises.size > 0) {
10
+ // Fill up to MAX_CONCURRENT active uploads
11
+ while (activePromises.size < MAX_CONCURRENT && index < manifest.length) {
12
+ const item = manifest[index++];
13
+ const promise = uploadItem(item).then((result) => {
14
+ results.push(result);
15
+ activePromises.delete(promise);
16
+ });
17
+ activePromises.add(promise);
18
+ }
19
+ // Wait for at least one promise to complete if we have any active
20
+ if (activePromises.size > 0) {
21
+ await Promise.race(activePromises);
22
+ }
23
+ }
24
+ return results;
25
+ async function uploadItem(item) {
26
+ const content = await fs.readFile(item.source);
27
+ // Create metadata object
28
+ const metadata = {
29
+ key: item.key,
30
+ hash: item.hash,
31
+ contentType: item.contentType,
32
+ cacheControl: item.cacheControl,
33
+ };
34
+ // Create FormData for multipart upload
35
+ const formData = new FormData();
36
+ formData.append("metadata", JSON.stringify(metadata));
37
+ // Add file content as 'value'
38
+ const blob = new Blob([content]);
39
+ formData.append("value", blob);
40
+ try {
41
+ const response = await api.put(`/accounts/${api.accountId}/storage/kv/namespaces/${namespaceId}/values/${item.key}`, formData);
42
+ const result = { item, success: response.ok, status: response.status };
43
+ if (!result.success) {
44
+ console.warn(`Error uploading asset ${item.key}: ${result.status}`);
45
+ }
46
+ return result;
47
+ }
48
+ catch (error) {
49
+ const result = { item, success: false, error };
50
+ console.warn(`Error uploading asset ${item.key}: ${error}`);
51
+ return result;
52
+ }
53
+ }
54
+ }
55
+ //# sourceMappingURL=upload-asset-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-asset-manifest.js","sourceRoot":"","sources":["../../src/cloudflare/upload-asset-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * Metadata returned by Cloudflare API for a worker script
3
+ */
4
+ export interface WorkerScriptMetadata {
5
+ /**
6
+ * Worker ID
7
+ */
8
+ id: string;
9
+ /**
10
+ * Default environment information
11
+ */
12
+ default_environment?: WorkerDefaultEnvironment;
13
+ /**
14
+ * Worker creation timestamp
15
+ */
16
+ created_on: string;
17
+ /**
18
+ * Worker last modification timestamp
19
+ */
20
+ modified_on: string;
21
+ /**
22
+ * Worker usage model
23
+ */
24
+ usage_model: string;
25
+ /**
26
+ * Worker environments
27
+ */
28
+ environments?: WorkerEnvironment[];
29
+ }
30
+ /**
31
+ * Worker script information
32
+ */
33
+ export interface WorkerScriptInfo {
34
+ /**
35
+ * Script creation timestamp
36
+ */
37
+ created_on: string;
38
+ /**
39
+ * Script last modification timestamp
40
+ */
41
+ modified_on: string;
42
+ /**
43
+ * Script ID
44
+ */
45
+ id: string;
46
+ /**
47
+ * Script tag
48
+ */
49
+ tag: string;
50
+ /**
51
+ * Script tags
52
+ */
53
+ tags: string[];
54
+ /**
55
+ * Deployment ID
56
+ */
57
+ deployment_id: string;
58
+ /**
59
+ * Tail consumers
60
+ */
61
+ tail_consumers: any;
62
+ /**
63
+ * Whether logpush is enabled
64
+ */
65
+ logpush: boolean;
66
+ /**
67
+ * Observability settings
68
+ */
69
+ observability: {
70
+ /**
71
+ * Whether observability is enabled
72
+ */
73
+ enabled: boolean;
74
+ /**
75
+ * Head sampling rate
76
+ */
77
+ head_sampling_rate: number | null;
78
+ };
79
+ /**
80
+ * Whether the script has assets
81
+ */
82
+ has_assets: boolean;
83
+ /**
84
+ * Whether the script has modules
85
+ */
86
+ has_modules: boolean;
87
+ /**
88
+ * Script etag
89
+ */
90
+ etag: string;
91
+ /**
92
+ * Script handlers
93
+ */
94
+ handlers: string[];
95
+ /**
96
+ * Where the script was last deployed from
97
+ */
98
+ last_deployed_from: string;
99
+ /**
100
+ * Script usage model
101
+ */
102
+ usage_model: string;
103
+ }
104
+ /**
105
+ * Worker environment information
106
+ */
107
+ export interface WorkerEnvironment {
108
+ /**
109
+ * Environment name
110
+ */
111
+ environment: string;
112
+ /**
113
+ * Environment creation timestamp
114
+ */
115
+ created_on: string;
116
+ /**
117
+ * Environment last modification timestamp
118
+ */
119
+ modified_on: string;
120
+ }
121
+ /**
122
+ * Default environment with script information
123
+ */
124
+ export interface WorkerDefaultEnvironment extends WorkerEnvironment {
125
+ /**
126
+ * Script information
127
+ */
128
+ script: WorkerScriptInfo;
129
+ }
130
+ //# sourceMappingURL=worker-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-metadata.d.ts","sourceRoot":"","sources":["../../src/cloudflare/worker-metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,mBAAmB,CAAC,EAAE,wBAAwB,CAAC;IAE/C;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,IAAI,EAAE,MAAM,EAAE,CAAC;IAEf;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,cAAc,EAAE,GAAG,CAAC;IAEpB;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,aAAa,EAAE;QACb;;WAEG;QACH,OAAO,EAAE,OAAO,CAAC;QAEjB;;WAEG;QACH,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;KACnC,CAAC;IAEF;;OAEG;IACH,UAAU,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,WAAW,EAAE,OAAO,CAAC;IAErB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,iBAAiB;IACjE;;OAEG;IACH,MAAM,EAAE,gBAAgB,CAAC;CAC1B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=worker-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-metadata.js","sourceRoot":"","sources":["../../src/cloudflare/worker-metadata.ts"],"names":[],"mappings":""}
@@ -0,0 +1,110 @@
1
+ export type WorkerMigrations = SingleStepMigration | MultiStepMigration;
2
+ export declare function isSingleStepMigration(migration: WorkerMigrations): migration is SingleStepMigration;
3
+ export interface SingleStepMigration {
4
+ /**
5
+ * A list of classes to delete Durable Object namespaces from
6
+ */
7
+ deleted_classes?: string[];
8
+ /**
9
+ * A list of classes to create Durable Object namespaces from
10
+ */
11
+ new_classes?: string[];
12
+ /**
13
+ * A list of classes to create Durable Object namespaces with SQLite from
14
+ */
15
+ new_sqlite_classes?: string[];
16
+ /**
17
+ * Tag to set as the latest migration tag
18
+ */
19
+ new_tag?: string;
20
+ /**
21
+ * Tag used to verify against the latest migration tag for this Worker.
22
+ * If they don't match, the upload is rejected.
23
+ */
24
+ old_tag?: string;
25
+ /**
26
+ * A list of classes with Durable Object namespaces that were renamed
27
+ */
28
+ renamed_classes?: RenamedClass[];
29
+ /**
30
+ * A list of transfers for Durable Object namespaces from a different Worker
31
+ * and class to a class defined in this Worker
32
+ */
33
+ transferred_classes?: TransferredClass[];
34
+ }
35
+ /**
36
+ * Represents a renamed class in a Durable Object migration
37
+ */
38
+ export interface RenamedClass {
39
+ /**
40
+ * Original class name
41
+ */
42
+ from: string;
43
+ /**
44
+ * New class name
45
+ */
46
+ to: string;
47
+ }
48
+ /**
49
+ * Represents a transferred class in a Durable Object migration
50
+ */
51
+ export interface TransferredClass {
52
+ /**
53
+ * Original class name
54
+ */
55
+ from: string;
56
+ /**
57
+ * Original script name
58
+ */
59
+ from_script: string;
60
+ /**
61
+ * New class name in this Worker
62
+ */
63
+ to: string;
64
+ }
65
+ export declare function isMultiStepMigration(migration: WorkerMigrations): migration is MultiStepMigration;
66
+ /**
67
+ * Represents a multi-step migration for Durable Objects
68
+ */
69
+ export interface MultiStepMigration {
70
+ /**
71
+ * Tag to set as the latest migration tag
72
+ */
73
+ new_tag?: string;
74
+ /**
75
+ * Tag used to verify against the latest migration tag for this Worker.
76
+ * If they don't match, the upload is rejected.
77
+ */
78
+ old_tag?: string;
79
+ /**
80
+ * Migrations to apply in order
81
+ */
82
+ steps: MigrationStep[];
83
+ }
84
+ /**
85
+ * Represents a single step in a Durable Object migration
86
+ */
87
+ export interface MigrationStep {
88
+ /**
89
+ * A list of classes to delete Durable Object namespaces from
90
+ */
91
+ deleted_classes?: string[];
92
+ /**
93
+ * A list of classes to create Durable Object namespaces from
94
+ */
95
+ new_classes?: string[];
96
+ /**
97
+ * A list of classes to create Durable Object namespaces with SQLite from
98
+ */
99
+ new_sqlite_classes?: string[];
100
+ /**
101
+ * A list of classes with Durable Object namespaces that were renamed
102
+ */
103
+ renamed_classes?: RenamedClass[];
104
+ /**
105
+ * A list of transfers for Durable Object namespaces from a different Worker
106
+ * and class to a class defined in this Worker
107
+ */
108
+ transferred_classes?: TransferredClass[];
109
+ }
110
+ //# sourceMappingURL=worker-migration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-migration.d.ts","sourceRoot":"","sources":["../../src/cloudflare/worker-migration.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,mBAAmB,GAAG,kBAAkB,CAAC;AAExE,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,gBAAgB,GAC1B,SAAS,IAAI,mBAAmB,CAQlC;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IAEjC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,gBAAgB,GAC1B,SAAS,IAAI,kBAAkB,CAEjC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IAEvB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B;;OAEG;IACH,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC;IAEjC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC1C"}
@@ -0,0 +1,11 @@
1
+ export function isSingleStepMigration(migration) {
2
+ return ("deleted_classes" in migration ||
3
+ "new_classes" in migration ||
4
+ "new_sqlite_classes" in migration ||
5
+ "renamed_classes" in migration ||
6
+ "transferred_classes" in migration);
7
+ }
8
+ export function isMultiStepMigration(migration) {
9
+ return "steps" in migration;
10
+ }
11
+ //# sourceMappingURL=worker-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-migration.js","sourceRoot":"","sources":["../../src/cloudflare/worker-migration.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,qBAAqB,CACnC,SAA2B;IAE3B,OAAO,CACL,iBAAiB,IAAI,SAAS;QAC9B,aAAa,IAAI,SAAS;QAC1B,oBAAoB,IAAI,SAAS;QACjC,iBAAiB,IAAI,SAAS;QAC9B,qBAAqB,IAAI,SAAS,CACnC,CAAC;AACJ,CAAC;AA4ED,MAAM,UAAU,oBAAoB,CAClC,SAA2B;IAE3B,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC"}