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,105 @@
1
+ import { type BundleProps } from "../esbuild";
2
+ import type { WorkerBinding } from "./bindings";
3
+ import type { SingleStepMigration } from "./worker-migration";
4
+ /**
5
+ * Properties for creating or updating a Worker
6
+ */
7
+ export interface WorkerProps {
8
+ /**
9
+ * The worker script content (JavaScript or WASM)
10
+ * One of script, entryPoint, or bundle must be provided
11
+ */
12
+ script?: string;
13
+ /**
14
+ * Path to the entry point file
15
+ * Will be bundled using esbuild
16
+ * One of script, entryPoint, or bundle must be provided
17
+ */
18
+ entrypoint?: string;
19
+ /**
20
+ * Bundle options when using entryPoint
21
+ * Ignored if bundle is provided
22
+ */
23
+ bundle?: Omit<BundleProps, "entryPoint">;
24
+ /**
25
+ * Module format for the worker script
26
+ * 'esm' - ECMAScript modules (default)
27
+ * 'cjs' - CommonJS modules
28
+ * @default 'esm'
29
+ */
30
+ format?: "esm" | "cjs";
31
+ /**
32
+ * Name for the worker
33
+ * This is mandatory - must be explicitly specified
34
+ */
35
+ name: string;
36
+ /**
37
+ * Routes to associate with this worker
38
+ * Format: example.com/* or *.example.com/*
39
+ */
40
+ routes?: string[];
41
+ /**
42
+ * Bindings to attach to the worker
43
+ */
44
+ bindings?: WorkerBinding[];
45
+ /**
46
+ * Environment variables to attach to the worker
47
+ * These will be converted to plain_text bindings
48
+ */
49
+ env?: {
50
+ [key: string]: string;
51
+ };
52
+ /**
53
+ * Whether to enable a workers.dev URL for this worker
54
+ * If true, the worker will be available at {name}.{subdomain}.workers.dev
55
+ * @default false
56
+ */
57
+ url?: boolean;
58
+ /**
59
+ * Observability configuration for the worker
60
+ * Controls whether worker logs are enabled
61
+ * @default { enabled: true }
62
+ */
63
+ observability?: {
64
+ /**
65
+ * Whether to enable worker logs
66
+ * @default true
67
+ */
68
+ enabled?: boolean;
69
+ };
70
+ /**
71
+ * Migrations to apply to the worker
72
+ */
73
+ migrations?: SingleStepMigration;
74
+ }
75
+ /**
76
+ * Output returned after Worker creation/update
77
+ */
78
+ export interface WorkerOutput extends Omit<WorkerProps, "url"> {
79
+ /**
80
+ * The ID of the worker
81
+ */
82
+ id: string;
83
+ /**
84
+ * Time at which the worker was created
85
+ */
86
+ createdAt: number;
87
+ /**
88
+ * Time at which the worker was last updated
89
+ */
90
+ updatedAt: number;
91
+ /**
92
+ * The worker's URL if enabled
93
+ * Format: {name}.{subdomain}.workers.dev
94
+ */
95
+ url?: string;
96
+ /**
97
+ * The bindings that were created
98
+ */
99
+ bindings: WorkerBinding[];
100
+ }
101
+ declare const Worker_base: import("../resource").Provider<string, [props: WorkerProps], WorkerOutput>;
102
+ export declare class Worker extends Worker_base {
103
+ }
104
+ export {};
105
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/cloudflare/worker.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAGtD,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,YAAY,CAAC;AAInE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,MAAM,CAAC,EAAE,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IAEzC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAEvB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAE3B;;;OAGG;IACH,GAAG,CAAC,EAAE;QACJ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;KACvB,CAAC;IAEF;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;;OAIG;IACH,aAAa,CAAC,EAAE;QACd;;;WAGG;QACH,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,UAAU,CAAC,EAAE,mBAAmB,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC;IAC5D;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;;AAED,qBAAa,MAAO,SAAQ,WAoE3B;CAAG"}
@@ -0,0 +1,358 @@
1
+ import * as fs from "fs/promises";
2
+ import { apply } from "../apply";
3
+ import { Bundle } from "../esbuild";
4
+ import { Resource } from "../resource";
5
+ import { createCloudflareApi } from "./api";
6
+ import { isDurableObjectNamespace } from "./durable-object-namespace";
7
+ export class Worker extends Resource("cloudflare::Worker", {
8
+ alwaysUpdate: true,
9
+ }, async (ctx, props) => {
10
+ // Create Cloudflare API client with automatic account discovery
11
+ const api = await createCloudflareApi();
12
+ // Use the provided name
13
+ const workerName = props.name;
14
+ // Validate input - we need either script, entryPoint, or bundle
15
+ if (!props.script && !props.entrypoint) {
16
+ throw new Error("One of script or entryPoint must be provided");
17
+ }
18
+ if (ctx.event === "delete") {
19
+ return deleteWorker(ctx, api, workerName);
20
+ }
21
+ else if (ctx.event === "create") {
22
+ await assertWorkerDoesNotExist(ctx, api, workerName);
23
+ }
24
+ const oldBindings = await ctx.get("bindings");
25
+ const scriptMetadata = await prepareWorkerMetadata(ctx, oldBindings, props);
26
+ // Get the script content - either from props.script, or by bundling
27
+ const scriptContent = props.script ?? (await bundleWorkerScript(ctx, props));
28
+ // Upload the worker script
29
+ await putWorker(ctx, api, workerName, scriptContent, scriptMetadata);
30
+ // TODO: it is less than ideal that this can fail, resulting in state problem
31
+ await ctx.set("bindings", props.bindings);
32
+ // Handle routes if requested
33
+ await setupRoutes(api, workerName, props.routes || []);
34
+ // Handle worker URL if requested
35
+ const workerUrl = await configureURL(ctx, api, workerName, props.url ?? false);
36
+ // Get current timestamp
37
+ const now = Date.now();
38
+ // Construct the output
39
+ const output = {
40
+ id: workerName,
41
+ name: workerName,
42
+ script: scriptContent,
43
+ format: props.format || "esm", // Include format in the output
44
+ routes: props.routes || [],
45
+ bindings: props.bindings || [],
46
+ env: props.env,
47
+ observability: scriptMetadata.observability,
48
+ createdAt: now,
49
+ updatedAt: now,
50
+ url: workerUrl,
51
+ };
52
+ return output;
53
+ }) {
54
+ }
55
+ async function deleteWorker(ctx, api, workerName) {
56
+ // Delete worker
57
+ const deleteResponse = await api.delete(`/accounts/${api.accountId}/workers/scripts/${workerName}`);
58
+ // Check for success (2xx status code)
59
+ if (!deleteResponse.ok && deleteResponse.status !== 404) {
60
+ const errorData = await deleteResponse
61
+ .json()
62
+ .catch(() => ({ errors: [{ message: deleteResponse.statusText }] }));
63
+ console.error("Error deleting worker:", errorData.errors?.[0]?.message || deleteResponse.statusText);
64
+ }
65
+ // Also remove any associated routes if they exist
66
+ if (ctx.output?.routes && ctx.output.routes.length > 0 && api.zoneId) {
67
+ // First get existing routes to find their IDs
68
+ const routesResponse = await api.get(`/zones/${api.zoneId}/workers/routes`);
69
+ if (!routesResponse.ok) {
70
+ throw new Error(`Could not fetch routes for cleanup: ${routesResponse.status} ${routesResponse.statusText}`);
71
+ }
72
+ const routesData = await routesResponse.json();
73
+ const existingRoutes = routesData.result || [];
74
+ for (const route of existingRoutes) {
75
+ if (ctx.output.routes.includes(route.pattern)) {
76
+ // Delete the route
77
+ const routeDeleteResponse = await api.delete(`/zones/${api.zoneId}/workers/routes/${route.id}`);
78
+ if (!routeDeleteResponse.ok) {
79
+ console.warn(`Failed to delete route ${route.pattern}: ${routeDeleteResponse.status} ${routeDeleteResponse.statusText}`);
80
+ }
81
+ }
82
+ }
83
+ }
84
+ // Disable the URL if it was enabled
85
+ if (ctx.output?.url) {
86
+ try {
87
+ await api.post(`/accounts/${api.accountId}/workers/scripts/${workerName}/subdomain`, JSON.stringify({ enabled: false }), {
88
+ headers: { "Content-Type": "application/json" },
89
+ });
90
+ }
91
+ catch (error) {
92
+ console.warn("Failed to disable worker URL during deletion:", error);
93
+ }
94
+ }
95
+ // Return minimal output for deleted state
96
+ return;
97
+ }
98
+ async function putWorker(ctx, api, workerName, scriptContent, scriptMetadata) {
99
+ const scriptName = scriptMetadata.main_module ?? scriptMetadata.body_part;
100
+ // Create FormData for the upload
101
+ const formData = new FormData();
102
+ // Add the actual script content as a named file part
103
+ formData.append(scriptName, new Blob([scriptContent], {
104
+ type: scriptMetadata.main_module
105
+ ? "application/javascript+module"
106
+ : "application/javascript",
107
+ }), scriptName);
108
+ console.log("Script Metadata:", JSON.stringify(scriptMetadata, null, 2));
109
+ // Add metadata as JSON
110
+ formData.append("metadata", new Blob([JSON.stringify(scriptMetadata)], {
111
+ type: "application/json",
112
+ }));
113
+ // Upload worker script with bindings
114
+ const uploadResponse = await api.put(`/accounts/${api.accountId}/workers/scripts/${workerName}`, formData, {
115
+ headers: {
116
+ "Content-Type": "multipart/form-data",
117
+ },
118
+ });
119
+ // Check if the upload was successful
120
+ if (!uploadResponse.ok) {
121
+ const errorData = await uploadResponse
122
+ .json()
123
+ .catch(() => ({ errors: [{ message: uploadResponse.statusText }] }));
124
+ throw new Error(`Error uploading worker script '${workerName}': ${errorData.errors?.[0]?.message || uploadResponse.statusText}`);
125
+ }
126
+ return formData;
127
+ }
128
+ async function prepareWorkerMetadata(ctx, oldBindings, props) {
129
+ // Prepare metadata with bindings
130
+ const meta = {
131
+ bindings: [],
132
+ observability: {
133
+ enabled: props.observability?.enabled !== false,
134
+ },
135
+ tags: [`alchemy:id:${ctx.resourceFQN}`],
136
+ migrations: {
137
+ new_classes: props.migrations?.new_classes ?? [],
138
+ deleted_classes: props.migrations?.deleted_classes ?? [],
139
+ renamed_classes: props.migrations?.renamed_classes ?? [],
140
+ transferred_classes: props.migrations?.transferred_classes ?? [],
141
+ new_sqlite_classes: props.migrations?.new_sqlite_classes ?? [],
142
+ },
143
+ };
144
+ // Convert bindings to the format expected by the API
145
+ for (const binding of props.bindings ?? []) {
146
+ // Create a copy of the binding to avoid modifying the original
147
+ const bindingData = { ...binding };
148
+ if (isDurableObjectNamespace(bindingData)) {
149
+ const stableId = bindingData.id;
150
+ const className = bindingData.className;
151
+ meta.bindings.push({
152
+ type: "durable_object_namespace",
153
+ name: bindingData.bindingName,
154
+ class_name: className,
155
+ script_name: bindingData.scriptName,
156
+ environment: bindingData.environment,
157
+ namespace_id: bindingData.namespaceId,
158
+ });
159
+ const oldBinding = oldBindings
160
+ ?.filter(isDurableObjectNamespace)
161
+ ?.find((b) => b.id === stableId);
162
+ if (!oldBinding) {
163
+ if (bindingData.sqlite) {
164
+ meta.migrations.new_sqlite_classes.push(className);
165
+ }
166
+ else {
167
+ meta.migrations.new_classes.push(className);
168
+ }
169
+ }
170
+ else if (oldBinding.className !== className) {
171
+ meta.migrations.renamed_classes.push({
172
+ from: oldBinding.className,
173
+ to: className,
174
+ });
175
+ }
176
+ }
177
+ else {
178
+ // For all other binding types, use as-is
179
+ meta.bindings.push(bindingData);
180
+ }
181
+ }
182
+ // Convert env variables to plain_text bindings
183
+ if (props.env) {
184
+ for (const [key, value] of Object.entries(props.env)) {
185
+ meta.bindings.push({
186
+ name: key,
187
+ type: "plain_text",
188
+ text: value,
189
+ });
190
+ }
191
+ }
192
+ // Determine if we're using ESM or service worker format
193
+ const isEsModule = props.format !== "cjs"; // Default to ESM unless CJS is specified
194
+ const scriptName = isEsModule ? "worker.js" : "script";
195
+ if (isEsModule) {
196
+ // For ES modules format
197
+ meta.main_module = scriptName;
198
+ }
199
+ else {
200
+ // For service worker format (CJS)
201
+ meta.body_part = scriptName;
202
+ }
203
+ return meta;
204
+ }
205
+ async function assertWorkerDoesNotExist(ctx, api, workerName) {
206
+ const response = await api.get(`/accounts/${api.accountId}/workers/scripts/${workerName}`);
207
+ if (response.status === 404) {
208
+ return true;
209
+ }
210
+ if (response.status === 200) {
211
+ const metadata = await getWorkerScriptMetadata(api, workerName);
212
+ if (!metadata) {
213
+ throw new Error(`Worker exists but failed to fetch metadata: ${response.status} ${response.statusText}`);
214
+ }
215
+ if (metadata.default_environment?.script.tags.includes(`alchemy:id:${ctx.resourceFQN}`)) {
216
+ return true;
217
+ }
218
+ throw new Error(`Worker with name '${workerName}' already exists. Please use a unique name.`);
219
+ }
220
+ else {
221
+ throw new Error(`Error checking if worker exists: ${response.status} ${response.statusText}`);
222
+ }
223
+ }
224
+ async function bundleWorkerScript(ctx, props) {
225
+ // Get the script content - either from props.script, or by bundling
226
+ // Create and use a Bundle resource with worker-optimized configuration
227
+ const defaultBundleOptions = {
228
+ format: props.format === "cjs" ? "cjs" : "esm", // Use the specified format or default to ESM
229
+ target: "es2020",
230
+ platform: "browser",
231
+ minify: true,
232
+ options: {
233
+ keepNames: true, // Important for Durable Object classes
234
+ },
235
+ };
236
+ // Merge with user-provided options
237
+ const bundleOptions = {
238
+ ...defaultBundleOptions,
239
+ ...(props.bundle || {}),
240
+ };
241
+ // Create the bundle
242
+ const bundle = new Bundle("bundle", {
243
+ entryPoint: props.entrypoint,
244
+ ...bundleOptions,
245
+ external: [...(bundleOptions.external ?? []), "cloudflare:workers"],
246
+ });
247
+ // Get the bundled content
248
+ const bundleOutput = await apply(bundle, {
249
+ quiet: ctx.quiet,
250
+ });
251
+ try {
252
+ return await fs.readFile(bundleOutput.path, "utf-8");
253
+ }
254
+ catch (error) {
255
+ console.error("Error reading bundle:", error);
256
+ throw new Error("Error reading bundle");
257
+ }
258
+ }
259
+ async function setupRoutes(api, workerName, routes) {
260
+ // Set up routes if provided
261
+ if (routes && routes.length > 0 && api.zoneId) {
262
+ // First get existing routes
263
+ const routesResponse = await api.get(`/zones/${api.zoneId}/workers/routes`);
264
+ if (!routesResponse.ok) {
265
+ throw new Error(`Could not fetch routes: ${routesResponse.status} ${routesResponse.statusText}`);
266
+ }
267
+ const routesData = await routesResponse.json();
268
+ const existingRoutes = routesData.result || [];
269
+ // For each desired route
270
+ for (const pattern of routes) {
271
+ const existingRoute = existingRoutes.find((r) => r.pattern === pattern);
272
+ if (existingRoute) {
273
+ // Update if script name doesn't match
274
+ if (existingRoute.script !== workerName) {
275
+ const updateRouteResponse = await api.put(`/zones/${api.zoneId}/workers/routes/${existingRoute.id}`, {
276
+ pattern,
277
+ script: workerName,
278
+ });
279
+ if (!updateRouteResponse.ok) {
280
+ console.warn(`Failed to update route ${pattern}: ${updateRouteResponse.status} ${updateRouteResponse.statusText}`);
281
+ }
282
+ }
283
+ }
284
+ else {
285
+ // Create new route
286
+ const createRouteResponse = await api.post(`/zones/${api.zoneId}/workers/routes`, {
287
+ pattern,
288
+ script: workerName,
289
+ });
290
+ if (!createRouteResponse.ok) {
291
+ throw new Error(`Failed to create route ${pattern}: ${createRouteResponse.status} ${createRouteResponse.statusText}`);
292
+ }
293
+ }
294
+ }
295
+ }
296
+ }
297
+ async function configureURL(ctx, api, workerName, url) {
298
+ let workerUrl;
299
+ if (url) {
300
+ // Enable the workers.dev subdomain for this worker
301
+ await api.post(`/accounts/${api.accountId}/workers/scripts/${workerName}/subdomain`, { enabled: true, previews_enabled: true }, {
302
+ headers: { "Content-Type": "application/json" },
303
+ });
304
+ // Get the account's workers.dev subdomain
305
+ const subdomainResponse = await api.get(`/accounts/${api.accountId}/workers/subdomain`);
306
+ if (!subdomainResponse.ok) {
307
+ throw new Error(`Could not fetch workers.dev subdomain: ${subdomainResponse.status} ${subdomainResponse.statusText}`);
308
+ }
309
+ const subdomainData = await subdomainResponse.json();
310
+ const subdomain = subdomainData.result?.subdomain;
311
+ if (subdomain) {
312
+ workerUrl = `https://${workerName}.${subdomain}.workers.dev`;
313
+ // Add a delay when the subdomain is first created.
314
+ // This is to prevent an issue where a negative cache-hit
315
+ // causes the subdomain to be unavailable for 30 seconds.
316
+ if (ctx.event === "create" || !ctx.output?.url) {
317
+ await new Promise((resolve) => setTimeout(resolve, 3000));
318
+ }
319
+ }
320
+ }
321
+ else if (url === false && ctx.output?.url) {
322
+ // Explicitly disable URL if it was previously enabled
323
+ const response = await api.post(`/accounts/${api.accountId}/workers/scripts/${workerName}/subdomain`, JSON.stringify({ enabled: false }), {
324
+ headers: { "Content-Type": "application/json" },
325
+ });
326
+ if (!response.ok) {
327
+ throw new Error(`Failed to disable worker URL: ${response.status} ${response.statusText}`);
328
+ }
329
+ }
330
+ return workerUrl;
331
+ }
332
+ async function getWorkerScriptMetadata(api, workerName) {
333
+ const response = await api.get(`/accounts/${api.accountId}/workers/services/${workerName}`);
334
+ if (response.status === 404) {
335
+ return undefined;
336
+ }
337
+ if (!response.ok) {
338
+ throw new Error(`Error getting worker script metadata: ${response.status} ${response.statusText}`);
339
+ }
340
+ return (await response.json()).result;
341
+ }
342
+ async function getWorkerBindings(api, workerName, environment = "production") {
343
+ const response = await api.get(`/accounts/${api.accountId}/workers/services/${workerName}/environments/${environment}/bindings`, {
344
+ headers: {
345
+ Authorization: `Bearer ${process.env.CLOUDFLARE_API_TOKEN}`,
346
+ "Content-Type": "application/json",
347
+ },
348
+ });
349
+ if (response.status === 404) {
350
+ return undefined;
351
+ }
352
+ if (!response.ok) {
353
+ throw new Error(`Failed to fetch bindings: ${response.status} ${response.statusText}`);
354
+ }
355
+ const data = await response.json();
356
+ return data.result;
357
+ }
358
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/cloudflare/worker.ts"],"names":[],"mappings":"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"}
package/lib/destroy.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { Output } from "./output";
2
2
  import { Provider, ResourceID } from "./resource";
3
- import type { Scope } from "./scope";
3
+ import { type Scope } from "./scope";
4
4
  import type { State, StateStore } from "./state";
5
5
  export interface DestroyOptions {
6
6
  stage?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.d.ts","sourceRoot":"","sources":["../src/destroy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAc,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjB;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,KAAK,EACpB,gBAAgB,EAAE,QAAQ,EAC1B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"destroy.d.ts","sourceRoot":"","sources":["../src/destroy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAc,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,KAAK,KAAK,EAAa,MAAM,SAAS,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,OAAO,CAAC,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjB;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,aAAa,EAAE,KAAK,EACpB,gBAAgB,EAAE,QAAQ,EAC1B,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CAAC"}
package/lib/destroy.js CHANGED
@@ -1,5 +1,6 @@
1
- import { defaultStage, defaultStateStore, rootScope } from "./global";
1
+ import { defaultStage, defaultStateStore } from "./global";
2
2
  import { Provider, ResourceID, isResource } from "./resource";
3
+ import { rootScope } from "./scope";
3
4
  export async function destroy(...args) {
4
5
  let resourceID;
5
6
  let resourceState;
@@ -1 +1 @@
1
- {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../src/destroy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAgC9D,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAG,IAEyE;IAE5E,IAAI,UAAsB,CAAC;IAC3B,IAAI,aAAoB,CAAC;IACzB,IAAI,gBAA0B,CAAC;IAC/B,IAAI,KAAa,CAAC;IAClB,IAAI,UAAsB,CAAC;IAC3B,IAAI,KAAK,GAAsB,SAAS,CAAC;IACzC,IAAI,OAAO,GAA+B,SAAS,CAAC;IACpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,0CAA0C;QAC1C,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,YAAY,CAAC;QACvC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,SAAS,CAAC;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACrE,iCAAiC;QACjC,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,0EAA0E;YAC1E,OAAO;QACT,CAAC;QACD,aAAa,GAAG,cAAc,CAAC;QAC/B,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,gBAAgB,CAAC,MAAM,CAC3B,KAAK,EACL,KAAK,EACL,UAAU,EACV,aAAa,EACb,aAAa,CAAC,MAAY,EAC1B,OAAO,IAAI;QACT,KAAK,EAAE,KAAK;KACb,CACF,CAAC;IACF,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"destroy.js","sourceRoot":"","sources":["../src/destroy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE3D,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAc,SAAS,EAAE,MAAM,SAAS,CAAC;AA+BhD,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAG,IAEyE;IAE5E,IAAI,UAAsB,CAAC;IAC3B,IAAI,aAAoB,CAAC;IACzB,IAAI,gBAA0B,CAAC;IAC/B,IAAI,KAAa,CAAC;IAClB,IAAI,UAAsB,CAAC;IAC3B,IAAI,KAAK,GAAsB,SAAS,CAAC;IACzC,IAAI,OAAO,GAA+B,SAAS,CAAC;IACpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3B,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,0CAA0C;QAC1C,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,YAAY,CAAC;QACvC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,SAAS,CAAC;QACpC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC5C,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,IAAI,IAAI,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACrE,iCAAiC;QACjC,MAAM,cAAc,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,0EAA0E;YAC1E,OAAO;QACT,CAAC;QACD,aAAa,GAAG,cAAc,CAAC;QAC/B,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IACzE,CAAC;IACD,MAAM,gBAAgB,CAAC,MAAM,CAC3B,KAAK,EACL,KAAK,EACL,UAAU,EACV,aAAa,EACb,aAAa,CAAC,MAAY,EAC1B,OAAO,IAAI;QACT,KAAK,EAAE,KAAK;KACb,CACF,CAAC;IACF,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACtC,CAAC"}
package/lib/esbuild.d.ts CHANGED
@@ -51,7 +51,7 @@ export interface BundleOutput {
51
51
  */
52
52
  hash: string;
53
53
  }
54
- declare const Bundle_base: import("./resource").Provider<"esbuild::Bundle", [props: BundleProps], BundleOutput>;
54
+ declare const Bundle_base: import("./resource").Provider<string, [props: BundleProps], BundleOutput>;
55
55
  export declare class Bundle extends Bundle_base {
56
56
  /**
57
57
  * Get the metafile from the last build
@@ -66,5 +66,87 @@ export declare class Bundle extends Bundle_base {
66
66
  get<T>(key: string): Promise<T | undefined>;
67
67
  }): Promise<string | undefined>;
68
68
  }
69
+ export declare function bundle(props: BundleProps): Promise<esbuild.BuildResult<{
70
+ bundle: boolean;
71
+ splitting?: boolean;
72
+ preserveSymlinks?: boolean;
73
+ outfile: string;
74
+ metafile: boolean;
75
+ outdir?: string;
76
+ outbase?: string;
77
+ external: string[];
78
+ packages?: "bundle" | "external";
79
+ alias?: Record<string, string>;
80
+ loader?: {
81
+ [ext: string]: esbuild.Loader;
82
+ };
83
+ resolveExtensions?: string[];
84
+ mainFields?: string[];
85
+ conditions?: string[];
86
+ write: boolean;
87
+ allowOverwrite?: boolean;
88
+ tsconfig?: string;
89
+ outExtension?: {
90
+ [ext: string]: string;
91
+ };
92
+ publicPath?: string;
93
+ entryNames?: string;
94
+ chunkNames?: string;
95
+ assetNames?: string;
96
+ inject?: string[];
97
+ banner?: {
98
+ [type: string]: string;
99
+ };
100
+ footer?: {
101
+ [type: string]: string;
102
+ };
103
+ entryPoints: string[] | Record<string, string> | {
104
+ in: string;
105
+ out: string;
106
+ }[];
107
+ stdin?: esbuild.StdinOptions;
108
+ plugins?: esbuild.Plugin[];
109
+ absWorkingDir?: string;
110
+ nodePaths?: string[];
111
+ sourcemap: boolean | "linked" | "inline" | "external" | "both";
112
+ legalComments?: "none" | "inline" | "eof" | "linked" | "external";
113
+ sourceRoot?: string;
114
+ sourcesContent?: boolean;
115
+ format: esbuild.Format;
116
+ globalName?: string;
117
+ target: string | string[];
118
+ supported?: Record<string, boolean>;
119
+ platform: esbuild.Platform;
120
+ mangleProps?: RegExp;
121
+ reserveProps?: RegExp;
122
+ mangleQuoted?: boolean;
123
+ mangleCache?: Record<string, string | false>;
124
+ drop?: esbuild.Drop[];
125
+ dropLabels?: string[];
126
+ minify: boolean;
127
+ minifyWhitespace?: boolean;
128
+ minifyIdentifiers?: boolean;
129
+ minifySyntax?: boolean;
130
+ lineLimit?: number;
131
+ charset?: esbuild.Charset;
132
+ treeShaking?: boolean;
133
+ ignoreAnnotations?: boolean;
134
+ jsx?: "transform" | "preserve" | "automatic";
135
+ jsxFactory?: string;
136
+ jsxFragment?: string;
137
+ jsxImportSource?: string;
138
+ jsxDev?: boolean;
139
+ jsxSideEffects?: boolean;
140
+ define?: {
141
+ [key: string]: string;
142
+ };
143
+ pure?: string[];
144
+ keepNames?: boolean;
145
+ color?: boolean;
146
+ logLevel?: esbuild.LogLevel;
147
+ logLimit?: number;
148
+ logOverride?: Record<string, esbuild.LogLevel>;
149
+ tsconfigRaw?: string | esbuild.TsconfigRaw;
150
+ }>>;
69
151
  export {};
70
152
  //# sourceMappingURL=esbuild.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"esbuild.d.ts","sourceRoot":"","sources":["../src/esbuild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAMnC,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAChC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACrD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1C;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;;AAED,qBAAa,MAAO,SAAQ,WAmD3B;IACC;;OAEG;IACU,WAAW,CAAC,GAAG,EAAE;QAC5B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;KAC7C;IAID;;OAEG;IACU,OAAO,CAAC,GAAG,EAAE;QAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;KAAE;CAG1E"}
1
+ {"version":3,"file":"esbuild.d.ts","sourceRoot":"","sources":["../src/esbuild.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAMnC,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;IAChC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC3B;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,CAAC;IACrD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAC1C;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;;AAED,qBAAa,MAAO,SAAQ,WAkC3B;IACC;;OAEG;IACU,WAAW,CAAC,GAAG,EAAE;QAC5B,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;KAC7C;IAID;;OAEG;IACU,OAAO,CAAC,GAAG,EAAE;QAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAA;KAAE;CAG1E;AAED,wBAAsB,MAAM,CAAC,KAAK,EAAE,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAiB9C"}