alchemy 2.0.0-beta.51 → 2.0.0-beta.52

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 (176) hide show
  1. package/bin/exec.js +16 -22
  2. package/bin/exec.js.map +1 -1
  3. package/lib/Apply.js +15 -3
  4. package/lib/Apply.js.map +1 -1
  5. package/lib/Auth/AuthProvider.js +1 -1
  6. package/lib/Auth/AuthProvider.js.map +1 -1
  7. package/lib/Binding.d.ts.map +1 -1
  8. package/lib/Binding.js +12 -8
  9. package/lib/Binding.js.map +1 -1
  10. package/lib/Build/DevServer.d.ts +113 -0
  11. package/lib/Build/DevServer.d.ts.map +1 -0
  12. package/lib/Build/DevServer.js +212 -0
  13. package/lib/Build/DevServer.js.map +1 -0
  14. package/lib/Build/Local.d.ts +2 -0
  15. package/lib/Build/Local.d.ts.map +1 -0
  16. package/lib/Build/Local.js +4 -0
  17. package/lib/Build/Local.js.map +1 -0
  18. package/lib/Bundle/Bundle.js +1 -1
  19. package/lib/Bundle/Bundle.js.map +1 -1
  20. package/lib/Cloudflare/Access.js +1 -1
  21. package/lib/Cloudflare/Access.js.map +1 -1
  22. package/lib/Cloudflare/AiGateway/AiGateway.d.ts +1 -1
  23. package/lib/Cloudflare/AiGateway/AiGateway.js +1 -1
  24. package/lib/Cloudflare/Browser/Browser.d.ts +84 -12
  25. package/lib/Cloudflare/Browser/Browser.d.ts.map +1 -1
  26. package/lib/Cloudflare/Browser/Browser.js +80 -9
  27. package/lib/Cloudflare/Browser/Browser.js.map +1 -1
  28. package/lib/Cloudflare/Browser/BrowserBinding.d.ts +90 -16
  29. package/lib/Cloudflare/Browser/BrowserBinding.d.ts.map +1 -1
  30. package/lib/Cloudflare/Browser/BrowserBinding.js +41 -6
  31. package/lib/Cloudflare/Browser/BrowserBinding.js.map +1 -1
  32. package/lib/Cloudflare/Browser/index.d.ts +1 -1
  33. package/lib/Cloudflare/Browser/index.d.ts.map +1 -1
  34. package/lib/Cloudflare/Browser/index.js.map +1 -1
  35. package/lib/Cloudflare/Container/ContainerBinding.d.ts.map +1 -1
  36. package/lib/Cloudflare/Container/ContainerBinding.js +2 -4
  37. package/lib/Cloudflare/Container/ContainerBinding.js.map +1 -1
  38. package/lib/Cloudflare/Images/Images.d.ts +4 -3
  39. package/lib/Cloudflare/Images/Images.d.ts.map +1 -1
  40. package/lib/Cloudflare/Images/Images.js.map +1 -1
  41. package/lib/Cloudflare/Providers.d.ts +1 -1
  42. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  43. package/lib/Cloudflare/Providers.js +4 -1
  44. package/lib/Cloudflare/Providers.js.map +1 -1
  45. package/lib/Cloudflare/RateLimit/RateLimit.d.ts +4 -3
  46. package/lib/Cloudflare/RateLimit/RateLimit.d.ts.map +1 -1
  47. package/lib/Cloudflare/RateLimit/RateLimit.js.map +1 -1
  48. package/lib/Cloudflare/Website/StaticSite.d.ts +64 -12
  49. package/lib/Cloudflare/Website/StaticSite.d.ts.map +1 -1
  50. package/lib/Cloudflare/Website/StaticSite.js +80 -30
  51. package/lib/Cloudflare/Website/StaticSite.js.map +1 -1
  52. package/lib/Cloudflare/Website/Vite.d.ts +36 -7
  53. package/lib/Cloudflare/Website/Vite.d.ts.map +1 -1
  54. package/lib/Cloudflare/Website/Vite.js +26 -8
  55. package/lib/Cloudflare/Website/Vite.js.map +1 -1
  56. package/lib/Cloudflare/Workers/Assets.d.ts +10 -4
  57. package/lib/Cloudflare/Workers/Assets.d.ts.map +1 -1
  58. package/lib/Cloudflare/Workers/Assets.js +6 -6
  59. package/lib/Cloudflare/Workers/Assets.js.map +1 -1
  60. package/lib/Cloudflare/Workers/DynamicWorkerLoader.d.ts +4 -4
  61. package/lib/Cloudflare/Workers/InferEnv.d.ts +1 -1
  62. package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
  63. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  64. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +45 -11
  65. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  66. package/lib/Cloudflare/Workers/RpcDurableObjectNamespace.d.ts +5 -4
  67. package/lib/Cloudflare/Workers/RpcDurableObjectNamespace.d.ts.map +1 -1
  68. package/lib/Cloudflare/Workers/RpcDurableObjectNamespace.js +4 -2
  69. package/lib/Cloudflare/Workers/RpcDurableObjectNamespace.js.map +1 -1
  70. package/lib/Cloudflare/Workers/RpcWorker.d.ts +3 -2
  71. package/lib/Cloudflare/Workers/RpcWorker.d.ts.map +1 -1
  72. package/lib/Cloudflare/Workers/RpcWorker.js +5 -3
  73. package/lib/Cloudflare/Workers/RpcWorker.js.map +1 -1
  74. package/lib/Cloudflare/Workers/VersionMetadata.d.ts +99 -0
  75. package/lib/Cloudflare/Workers/VersionMetadata.d.ts.map +1 -0
  76. package/lib/Cloudflare/Workers/VersionMetadata.js +65 -0
  77. package/lib/Cloudflare/Workers/VersionMetadata.js.map +1 -0
  78. package/lib/Cloudflare/Workers/VersionMetadataBinding.d.ts +35 -0
  79. package/lib/Cloudflare/Workers/VersionMetadataBinding.d.ts.map +1 -0
  80. package/lib/Cloudflare/Workers/VersionMetadataBinding.js +31 -0
  81. package/lib/Cloudflare/Workers/VersionMetadataBinding.js.map +1 -0
  82. package/lib/Cloudflare/Workers/Worker.d.ts +18 -18
  83. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  84. package/lib/Cloudflare/Workers/Worker.js +23 -37
  85. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  86. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
  87. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +7 -0
  88. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
  89. package/lib/Cloudflare/Workers/WorkerBinding.d.ts +2 -1
  90. package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
  91. package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -1
  92. package/lib/Cloudflare/Workers/Workflow.d.ts +8 -1
  93. package/lib/Cloudflare/Workers/Workflow.d.ts.map +1 -1
  94. package/lib/Cloudflare/Workers/Workflow.js +1 -0
  95. package/lib/Cloudflare/Workers/Workflow.js.map +1 -1
  96. package/lib/Cloudflare/Workers/WorkflowBridge.d.ts.map +1 -1
  97. package/lib/Cloudflare/Workers/WorkflowBridge.js +31 -2
  98. package/lib/Cloudflare/Workers/WorkflowBridge.js.map +1 -1
  99. package/lib/Cloudflare/Workers/index.d.ts +2 -0
  100. package/lib/Cloudflare/Workers/index.d.ts.map +1 -1
  101. package/lib/Cloudflare/Workers/index.js +2 -0
  102. package/lib/Cloudflare/Workers/index.js.map +1 -1
  103. package/lib/Cloudflare/Zaraz/ZarazConfig.d.ts.map +1 -1
  104. package/lib/Diff.d.ts.map +1 -1
  105. package/lib/Diff.js +7 -0
  106. package/lib/Diff.js.map +1 -1
  107. package/lib/Drizzle/Postgres.d.ts +13 -12
  108. package/lib/Drizzle/Postgres.d.ts.map +1 -1
  109. package/lib/Drizzle/Postgres.js +13 -12
  110. package/lib/Drizzle/Postgres.js.map +1 -1
  111. package/lib/Drizzle/Schema.d.ts +1 -1
  112. package/lib/Drizzle/Schema.d.ts.map +1 -1
  113. package/lib/Drizzle/Schema.js +14 -6
  114. package/lib/Drizzle/Schema.js.map +1 -1
  115. package/lib/Local/RpcSerialization.js +5 -2
  116. package/lib/Local/RpcSerialization.js.map +1 -1
  117. package/lib/Platform.d.ts.map +1 -1
  118. package/lib/Platform.js +27 -25
  119. package/lib/Platform.js.map +1 -1
  120. package/lib/Resource.d.ts +1 -1
  121. package/lib/Resource.d.ts.map +1 -1
  122. package/lib/Resource.js +9 -12
  123. package/lib/Resource.js.map +1 -1
  124. package/lib/Runtime.d.ts +1 -1
  125. package/lib/Runtime.d.ts.map +1 -1
  126. package/lib/Runtime.js +3 -4
  127. package/lib/Runtime.js.map +1 -1
  128. package/lib/Util/effect.d.ts.map +1 -1
  129. package/lib/Util/effect.js +13 -15
  130. package/lib/Util/effect.js.map +1 -1
  131. package/lib/Util/poll.d.ts +0 -1
  132. package/lib/Util/poll.d.ts.map +1 -1
  133. package/lib/Util/poll.js +2 -2
  134. package/lib/Util/poll.js.map +1 -1
  135. package/lib/tsconfig.test.tsbuildinfo +1 -1
  136. package/package.json +20 -20
  137. package/src/Apply.ts +22 -3
  138. package/src/Auth/AuthProvider.ts +1 -1
  139. package/src/Binding.ts +45 -38
  140. package/src/Build/DevServer.ts +330 -0
  141. package/src/Build/Local.ts +4 -0
  142. package/src/Bundle/Bundle.ts +1 -1
  143. package/src/Cloudflare/Access.ts +1 -1
  144. package/src/Cloudflare/AiGateway/AiGateway.ts +1 -1
  145. package/src/Cloudflare/Browser/Browser.ts +84 -12
  146. package/src/Cloudflare/Browser/BrowserBinding.ts +205 -33
  147. package/src/Cloudflare/Browser/index.ts +15 -2
  148. package/src/Cloudflare/Container/ContainerBinding.ts +5 -10
  149. package/src/Cloudflare/Images/Images.ts +4 -3
  150. package/src/Cloudflare/Providers.ts +5 -0
  151. package/src/Cloudflare/RateLimit/RateLimit.ts +4 -3
  152. package/src/Cloudflare/Website/StaticSite.ts +154 -41
  153. package/src/Cloudflare/Website/Vite.ts +73 -25
  154. package/src/Cloudflare/Workers/Assets.ts +10 -8
  155. package/src/Cloudflare/Workers/DynamicWorkerLoader.ts +4 -4
  156. package/src/Cloudflare/Workers/InferEnv.ts +14 -12
  157. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +54 -13
  158. package/src/Cloudflare/Workers/RpcDurableObjectNamespace.ts +11 -8
  159. package/src/Cloudflare/Workers/RpcWorker.ts +8 -7
  160. package/src/Cloudflare/Workers/VersionMetadata.ts +129 -0
  161. package/src/Cloudflare/Workers/VersionMetadataBinding.ts +82 -0
  162. package/src/Cloudflare/Workers/Worker.ts +60 -81
  163. package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +6 -0
  164. package/src/Cloudflare/Workers/WorkerBinding.ts +2 -0
  165. package/src/Cloudflare/Workers/Workflow.ts +12 -1
  166. package/src/Cloudflare/Workers/WorkflowBridge.ts +47 -6
  167. package/src/Cloudflare/Workers/index.ts +2 -0
  168. package/src/Diff.ts +7 -0
  169. package/src/Drizzle/Postgres.ts +13 -12
  170. package/src/Drizzle/Schema.ts +16 -6
  171. package/src/Local/RpcSerialization.ts +5 -2
  172. package/src/Platform.ts +36 -32
  173. package/src/Resource.ts +12 -13
  174. package/src/Runtime.ts +3 -7
  175. package/src/Util/effect.ts +13 -17
  176. package/src/Util/poll.ts +3 -3
@@ -1,7 +1,9 @@
1
1
  import type * as cf from "@cloudflare/workers-types";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Layer from "effect/Layer";
4
+ import * as Stream from "effect/Stream";
4
5
  import * as Binding from "../../Binding.ts";
6
+ import type { RuntimeContext } from "../../RuntimeContext.ts";
5
7
  import { WorkerEnvironment } from "../Workers/Worker.ts";
6
8
  import type { Browser as BrowserLike } from "./Browser.ts";
7
9
  declare const BrowserError_base: new <A extends Record<string, any> = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("effect/Cause").YieldableError & {
@@ -12,44 +14,116 @@ export declare class BrowserError extends BrowserError_base<{
12
14
  cause: unknown;
13
15
  }> {
14
16
  }
15
- export interface BrowserHandle {
16
- close(): Promise<void>;
17
- }
18
- export interface BrowserPuppeteer<Browser extends BrowserHandle> {
19
- launch(binding: cf.Fetcher): Promise<Browser>;
20
- }
17
+ /** The `Response` type returned by the Cloudflare Browser Rendering binding. */
18
+ type BrowserResponse = Awaited<ReturnType<cf.BrowserRun["fetch"]>>;
19
+ /** An Effect produced by a {@link BrowserClient} operation. */
20
+ type BrowserEffect<A> = Effect.Effect<A, BrowserError, RuntimeContext>;
21
+ /** A byte stream produced by a binary {@link BrowserClient} action. */
22
+ type BrowserByteStream = Stream.Stream<Uint8Array, BrowserError, RuntimeContext>;
23
+ export type BrowserScreenshotOptions = cf.BrowserRunScreenshotOptions;
24
+ export type BrowserPDFOptions = cf.BrowserRunPDFOptions;
25
+ export type BrowserContentOptions = cf.BrowserRunContentOptions;
26
+ export type BrowserScrapeOptions = cf.BrowserRunScrapeOptions;
27
+ export type BrowserLinksOptions = cf.BrowserRunLinksOptions;
28
+ export type BrowserSnapshotOptions = cf.BrowserRunSnapshotOptions;
29
+ export type BrowserJsonOptions = cf.BrowserRunJsonOptions;
30
+ export type BrowserMarkdownOptions = cf.BrowserRunMarkdownOptions;
31
+ export type BrowserContentResult = cf.BrowserRunContentSuccessResponse;
32
+ export type BrowserScrapeResult = cf.BrowserRunScrapeSuccessResponse;
33
+ export type BrowserLinksResult = cf.BrowserRunLinksSuccessResponse;
34
+ export type BrowserSnapshotResult = cf.BrowserRunSnapshotSuccessResponse;
35
+ export type BrowserJsonResult = cf.BrowserRunJsonSuccessResponse;
36
+ export type BrowserMarkdownResult = cf.BrowserRunMarkdownSuccessResponse;
37
+ export type BrowserErrorResponse = cf.BrowserRunErrorResponse;
21
38
  /**
22
39
  * Effect-native client for a Cloudflare Browser Rendering binding.
23
40
  *
24
- * Browser Rendering's Workers binding is consumed by `@cloudflare/puppeteer`.
25
- * Alchemy keeps Puppeteer as a caller-provided dependency while wrapping
26
- * launch and cleanup in Effects.
41
+ * Mirrors the runtime {@link cf.BrowserRun} binding, translating its shapes
42
+ * into Effect-native ones: JSON quick actions resolve to their parsed success
43
+ * payload, and binary actions (`screenshot`, `pdf`) resolve to a `Stream` of
44
+ * the response bytes. Non-success responses fail with {@link BrowserError}, so
45
+ * callers never touch a `Promise` or `Response.json()` themselves. Use
46
+ * `Cloudflare.Browser.bind(browser)` (or `yield* Cloudflare.Browser(...)`)
47
+ * inside a Worker's init phase to obtain it.
48
+ *
49
+ * The {@link raw} accessor and {@link fetch} are the only promise-shaped
50
+ * escape hatches — they exist for libraries like `@cloudflare/puppeteer` that
51
+ * consume the binding directly.
27
52
  */
28
53
  export interface BrowserClient {
29
54
  /**
30
55
  * Effect resolving to the raw Cloudflare Browser Rendering runtime binding.
56
+ *
57
+ * Pass it to `@cloudflare/puppeteer`'s `puppeteer.launch(binding)` to drive a
58
+ * full browser session.
59
+ */
60
+ raw: Effect.Effect<cf.BrowserRun, never, RuntimeContext>;
61
+ /**
62
+ * Send a raw HTTP request to the Browser Run API and resolve to the raw
63
+ * `Response`. Used by libraries like `@cloudflare/puppeteer` to acquire and
64
+ * connect to a browser instance.
65
+ */
66
+ fetch(...args: Parameters<cf.BrowserRun["fetch"]>): BrowserEffect<BrowserResponse>;
67
+ /**
68
+ * Run a Browser Run quick action, resolving to the parsed success payload
69
+ * (or a byte `Stream` for binary actions). Mirrors
70
+ * `cf.BrowserRun["quickAction"]`; the {@link screenshot}, {@link pdf},
71
+ * {@link content}, {@link scrape}, {@link links}, {@link snapshot},
72
+ * {@link json}, and {@link markdown} methods are thin wrappers over the
73
+ * corresponding action.
74
+ */
75
+ quickAction(action: "screenshot", options: BrowserScreenshotOptions): BrowserByteStream;
76
+ quickAction(action: "pdf", options: BrowserPDFOptions): BrowserByteStream;
77
+ quickAction(action: "content", options: BrowserContentOptions): BrowserEffect<BrowserContentResult>;
78
+ quickAction(action: "scrape", options: BrowserScrapeOptions): BrowserEffect<BrowserScrapeResult>;
79
+ quickAction(action: "links", options: BrowserLinksOptions): BrowserEffect<BrowserLinksResult>;
80
+ quickAction(action: "snapshot", options: BrowserSnapshotOptions): BrowserEffect<BrowserSnapshotResult>;
81
+ quickAction(action: "json", options: BrowserJsonOptions): BrowserEffect<BrowserJsonResult>;
82
+ quickAction(action: "markdown", options: BrowserMarkdownOptions): BrowserEffect<BrowserMarkdownResult>;
83
+ /**
84
+ * Take a screenshot of a web page, streaming the raw image bytes.
85
+ */
86
+ screenshot(options: BrowserScreenshotOptions): BrowserByteStream;
87
+ /**
88
+ * Generate a PDF of a web page, streaming the raw PDF bytes.
89
+ */
90
+ pdf(options: BrowserPDFOptions): BrowserByteStream;
91
+ /**
92
+ * Get the HTML content of a web page.
93
+ */
94
+ content(options: BrowserContentOptions): BrowserEffect<BrowserContentResult>;
95
+ /**
96
+ * Scrape elements from a web page by CSS selector.
97
+ */
98
+ scrape(options: BrowserScrapeOptions): BrowserEffect<BrowserScrapeResult>;
99
+ /**
100
+ * Extract all links from a web page.
101
+ */
102
+ links(options: BrowserLinksOptions): BrowserEffect<BrowserLinksResult>;
103
+ /**
104
+ * Get both the HTML content and a base64-encoded screenshot of a web page.
31
105
  */
32
- raw: Effect.Effect<cf.Fetcher, never, WorkerEnvironment>;
106
+ snapshot(options: BrowserSnapshotOptions): BrowserEffect<BrowserSnapshotResult>;
33
107
  /**
34
- * Launch a Browser Rendering session through `@cloudflare/puppeteer`.
108
+ * Extract structured JSON data from a web page using AI.
35
109
  */
36
- launch<Browser extends BrowserHandle>(puppeteer: BrowserPuppeteer<Browser>): Effect.Effect<Browser, BrowserError, WorkerEnvironment>;
110
+ json(options: BrowserJsonOptions): BrowserEffect<BrowserJsonResult>;
37
111
  /**
38
- * Launch a browser, run an Effect with it, and close it afterward.
112
+ * Convert a web page to Markdown.
39
113
  */
40
- withBrowser<Browser extends BrowserHandle, A, E, R>(puppeteer: BrowserPuppeteer<Browser>, use: (browser: Browser) => Effect.Effect<A, E, R>): Effect.Effect<A, BrowserError | E, WorkerEnvironment | R>;
114
+ markdown(options: BrowserMarkdownOptions): BrowserEffect<BrowserMarkdownResult>;
41
115
  }
42
116
  declare const BrowserBinding_base: Binding.Service<BrowserBinding, "Cloudflare.Browser.Binding", (browser: BrowserLike) => Effect.Effect<BrowserClient>> & {
43
117
  bind: (browser: BrowserLike) => Effect.Effect<any, any, any>;
44
118
  };
45
119
  export declare class BrowserBinding extends BrowserBinding_base {
46
120
  }
47
- export declare const BrowserBindingLive: Layer.Layer<BrowserBinding, never, BrowserBindingPolicy>;
121
+ export declare const BrowserBindingLive: Layer.Layer<BrowserBinding, never, WorkerEnvironment | BrowserBindingPolicy>;
48
122
  declare const BrowserBindingPolicy_base: Binding.Policy<BrowserBindingPolicy, "Policy<Cloudflare.Browser.Binding>", (browser: BrowserLike) => Effect.Effect<void>>;
49
123
  export declare class BrowserBindingPolicy extends BrowserBindingPolicy_base {
50
124
  }
51
125
  export declare const BrowserBindingPolicyLive: Layer.Layer<BrowserBindingPolicy, never, never>;
52
126
  /** @internal */
53
- export declare const makeBrowserClient: (raw: Effect.Effect<cf.Fetcher, never, WorkerEnvironment>) => BrowserClient;
127
+ export declare const makeBrowserClient: (raw: Effect.Effect<cf.BrowserRun, never, RuntimeContext>) => BrowserClient;
54
128
  export {};
55
129
  //# sourceMappingURL=BrowserBinding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserBinding.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Browser/BrowserBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAY,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,KAAK,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,cAAc,CAAC;;;;AAE3D,qBAAa,YAAa,SAAQ,kBAAiC;IACjE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;CAAG;AAEL,MAAM,WAAW,aAAa;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB,CAAC,OAAO,SAAS,aAAa;IAC7D,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;IACzD;;OAEG;IACH,MAAM,CAAC,OAAO,SAAS,aAAa,EAClC,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,GACnC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,iBAAiB,CAAC,CAAC;IAC3D;;OAEG;IACH,WAAW,CAAC,OAAO,SAAS,aAAa,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAChD,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,EACpC,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAChD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,EAAE,iBAAiB,GAAG,CAAC,CAAC,CAAC;CAC9D;2GAIW,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;;;AAFxD,qBAAa,cAAe,SAAQ,mBAGH;CAAG;AAEpC,eAAO,MAAM,kBAAkB,0DAe9B,CAAC;8HAIU,WAAW,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAF/C,qBAAa,oBAAqB,SAAQ,yBAGT;CAAG;AAEpC,eAAO,MAAM,wBAAwB,iDAiBpC,CAAC;AAeF,gBAAgB;AAChB,eAAO,MAAM,iBAAiB,GAC5B,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC,KACvD,aAgBF,CAAC"}
1
+ {"version":3,"file":"BrowserBinding.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Browser/BrowserBinding.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as Data from "effect/Data";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Layer from "effect/Layer";
4
+ import * as Stream from "effect/Stream";
4
5
  import * as Binding from "../../Binding.js";
5
6
  import { isWorker, WorkerEnvironment } from "../Workers/Worker.js";
6
7
  export class BrowserError extends Data.TaggedError("BrowserError") {
@@ -9,11 +10,10 @@ export class BrowserBinding extends Binding.Service()("Cloudflare.Browser.Bindin
9
10
  }
10
11
  export const BrowserBindingLive = Layer.effect(BrowserBinding, Effect.gen(function* () {
11
12
  const Policy = yield* BrowserBindingPolicy;
13
+ const env = yield* WorkerEnvironment;
12
14
  return Effect.fn(function* (browser) {
13
15
  yield* Policy(browser);
14
- // Cloudflare exposes Browser Rendering as a service-style binding for
15
- // @cloudflare/puppeteer; workers-types has no narrower interface.
16
- const raw = WorkerEnvironment.useSync((env) => env[browser.name]);
16
+ const raw = Effect.sync(() => env[browser.name]);
17
17
  return makeBrowserClient(raw);
18
18
  });
19
19
  }));
@@ -43,13 +43,48 @@ const tryPromise = (fn) => Effect.tryPromise({
43
43
  cause: error,
44
44
  }),
45
45
  });
46
+ /** Actions whose successful response is raw binary rather than JSON. */
47
+ const BINARY_ACTIONS = new Set(["screenshot", "pdf"]);
48
+ /** Build a {@link BrowserError} from a non-success Browser Run response. */
49
+ const failResponse = (action, response) => tryPromise(() => response.text()).pipe(Effect.flatMap((body) => {
50
+ let cause = body;
51
+ try {
52
+ cause = JSON.parse(body);
53
+ }
54
+ catch {
55
+ // keep the raw text as the cause
56
+ }
57
+ const message = cause?.errors?.[0]
58
+ ?.message ??
59
+ `Browser Rendering '${action}' failed with status ${response.status}`;
60
+ return Effect.fail(new BrowserError({ message, cause }));
61
+ }));
46
62
  /** @internal */
47
63
  export const makeBrowserClient = (raw) => {
48
- const launch = (puppeteer) => raw.pipe(Effect.flatMap((binding) => tryPromise(() => puppeteer.launch(binding))));
64
+ const respond = (action, options) => raw.pipe(Effect.flatMap((binding) => tryPromise(() => binding.quickAction(action, options))), Effect.flatMap((response) => response.ok ? Effect.succeed(response) : failResponse(action, response)));
65
+ const jsonAction = (action, options) => respond(action, options).pipe(Effect.flatMap((response) => tryPromise(() => response.json())));
66
+ const streamAction = (action, options) => respond(action, options).pipe(Effect.map((response) => Stream.fromReadableStream({
67
+ evaluate: () => response.body,
68
+ onError: (cause) => new BrowserError({
69
+ message: `Browser Rendering '${action}' stream failed`,
70
+ cause,
71
+ }),
72
+ })), Stream.unwrap);
73
+ const quickAction = ((action, options) => BINARY_ACTIONS.has(action)
74
+ ? streamAction(action, options)
75
+ : jsonAction(action, options));
49
76
  return {
50
77
  raw,
51
- launch,
52
- withBrowser: (puppeteer, use) => Effect.acquireUseRelease(launch(puppeteer), use, (browser) => tryPromise(() => browser.close())),
78
+ fetch: (...args) => raw.pipe(Effect.flatMap((binding) => tryPromise(() => binding.fetch(...args)))),
79
+ quickAction,
80
+ screenshot: (options) => streamAction("screenshot", options),
81
+ pdf: (options) => streamAction("pdf", options),
82
+ content: (options) => jsonAction("content", options),
83
+ scrape: (options) => jsonAction("scrape", options),
84
+ links: (options) => jsonAction("links", options),
85
+ snapshot: (options) => jsonAction("snapshot", options),
86
+ json: (options) => jsonAction("json", options),
87
+ markdown: (options) => jsonAction("markdown", options),
53
88
  };
54
89
  };
55
90
  //# sourceMappingURL=BrowserBinding.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BrowserBinding.js","sourceRoot":"","sources":["../../../src/Cloudflare/Browser/BrowserBinding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrowserBinding.js","sourceRoot":"","sources":["../../../src/Cloudflare/Browser/BrowserBinding.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export * from "./Browser.ts";
2
- export { BrowserBinding, BrowserBindingLive, BrowserBindingPolicy, BrowserBindingPolicyLive, BrowserError, type BrowserClient, type BrowserHandle, type BrowserPuppeteer, } from "./BrowserBinding.ts";
2
+ export { BrowserBinding, BrowserBindingLive, BrowserBindingPolicy, BrowserBindingPolicyLive, BrowserError, type BrowserClient, type BrowserScreenshotOptions, type BrowserPDFOptions, type BrowserContentOptions, type BrowserScrapeOptions, type BrowserLinksOptions, type BrowserSnapshotOptions, type BrowserJsonOptions, type BrowserMarkdownOptions, type BrowserContentResult, type BrowserScrapeResult, type BrowserLinksResult, type BrowserSnapshotResult, type BrowserJsonResult, type BrowserMarkdownResult, type BrowserErrorResponse, } from "./BrowserBinding.ts";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,gBAAgB,GACtB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,EACZ,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/Browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,GAIb,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/Browser/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,YAAY,GAiBb,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerBinding.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Container/ContainerBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,cAAc,CAAC;AAMxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,eAAO,MAAM,aAAa,GAAgC,KAAK,EAAE,GAAG,qQAiElE,CAAC"}
1
+ {"version":3,"file":"ContainerBinding.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Container/ContainerBinding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,cAAc,CAAC;AAMxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,eAAO,MAAM,aAAa,GAAgC,KAAK,EAAE,GAAG,qQA4DlE,CAAC"}
@@ -6,11 +6,9 @@ import { DurableObjectState } from "../Workers/DurableObjectState.js";
6
6
  import { Worker } from "../Workers/Worker.js";
7
7
  export const bindContainer = Effect.fnUntraced(function* (containerEff) {
8
8
  const namespace = yield* DurableObjectNamespace;
9
- const container = "asEffect" in containerEff
9
+ const container = Effect.isEffect(containerEff)
10
10
  ? yield* containerEff
11
- : Effect.isEffect(containerEff)
12
- ? yield* containerEff
13
- : containerEff;
11
+ : containerEff;
14
12
  yield* container.bind `${namespace}`({
15
13
  durableObjects: {
16
14
  namespaceId: namespace.namespaceId,
@@ -1 +1 @@
1
- {"version":3,"file":"ContainerBinding.js","sourceRoot":"","sources":["../../../src/Cloudflare/Container/ContainerBinding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContainerBinding.js","sourceRoot":"","sources":["../../../src/Cloudflare/Container/ContainerBinding.ts"],"names":[],"mappings":"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"}
@@ -28,9 +28,10 @@ type BindEffect = Effect.Effect<ImagesClient, never, ImagesBinding>;
28
28
  * Worker and returns the runtime {@link ImagesClient} — no separate `.bind(...)`
29
29
  * step required.
30
30
  *
31
- * The divergence is achieved via `[Symbol.iterator]`: the object is not an
32
- * `Effect` (so `InferEnv` resolves it to the native `ImagesBinding` in the
33
- * `env` position), but it is iterable as one when `yield*`-ed.
31
+ * The divergence is achieved via `[Symbol.iterator]`: the object is
32
+ * deliberately not an `Effect` (so `InferEnv` and the Worker `env` resolver
33
+ * keep it as the native `ImagesBinding` rather than `yield*`-ing it), but it
34
+ * is iterable as one when `yield*`-ed.
34
35
  */
35
36
  export interface Images {
36
37
  kind: ImagesTypeId;
@@ -1 +1 @@
1
- {"version":3,"file":"Images.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Images/Images.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEtE,KAAK,YAAY,GAAG,OAAO,YAAY,CAAC;AACxC,QAAA,MAAM,YAAY,EAAG,mBAA4B,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG;IACxB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;GAIG;AACH,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AAEpE;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,IAAI,UAAU,CAAC;IACvB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAIV,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9B;;;;OAIG;IACH,IAAI,EAAE,OAAO,aAAa,CAAC,IAAI,CAAC;CAejC,CAAC"}
1
+ {"version":3,"file":"Images.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Images/Images.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEtE,KAAK,YAAY,GAAG,OAAO,YAAY,CAAC;AACxC,QAAA,MAAM,YAAY,EAAG,mBAA4B,CAAC;AAElD,MAAM,MAAM,WAAW,GAAG;IACxB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;GAIG;AACH,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;AAEpE;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,IAAI,UAAU,CAAC;IACvB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;CAC9D;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MAIV,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,eAAO,MAAM,MAAM,EAAE;IACnB,CAAC,KAAK,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC9B;;;;OAIG;IACH,IAAI,EAAE,OAAO,aAAa,CAAC,IAAI,CAAC;CAejC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Images.js","sourceRoot":"","sources":["../../../src/Cloudflare/Images/Images.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAGtE,MAAM,YAAY,GAAG,mBAA4B,CAAC;AAwClD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAC1D,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,MAAM,IAAI,KAAK;IACd,KAAgB,CAAC,IAAI,KAAK,YAAY,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,CAAC,MAAM,MAAM,GAQf,MAAM,CAAC,MAAM,CACf,CAAC,KAAmB,EAAU,EAAE;IAC9B,MAAM,IAAI,GAAW;QACnB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,QAAQ;QAC7B,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QACxC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC,EACD;IACE,IAAI,EAAE,CAAC,GAAG,IAA2C,EAAE,EAAE,CACvD,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9B,CACF,CAAC"}
1
+ {"version":3,"file":"Images.js","sourceRoot":"","sources":["../../../src/Cloudflare/Images/Images.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAqB,MAAM,oBAAoB,CAAC;AAGtE,MAAM,YAAY,GAAG,mBAA4B,CAAC;AAyClD,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAmB,EAAE,CAC1D,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,MAAM,IAAI,KAAK;IACd,KAAgB,CAAC,IAAI,KAAK,YAAY,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,MAAM,CAAC,MAAM,MAAM,GAQf,MAAM,CAAC,MAAM,CACf,CAAC,KAAmB,EAAU,EAAE;IAC9B,MAAM,IAAI,GAAW;QACnB,IAAI,EAAE,YAAY;QAClB,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,QAAQ;QAC7B,QAAQ,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QACxC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC,EACD;IACE,IAAI,EAAE,CAAC,GAAG,IAA2C,EAAE,EAAE,CACvD,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC9B,CACF,CAAC"}
@@ -15,5 +15,5 @@ export type ProviderRequirements = Layer.Services<ReturnType<typeof providers>>;
15
15
  /**
16
16
  * Cloudflare providers, bindings, and credentials for Worker-based stacks.
17
17
  */
18
- export declare const providers: () => Layer.Layer<import("../Auth/Profile.ts").Profile | import("../Auth/Credentials.ts").CredentialsStore | Provider.Provider<KeyPair> | Provider.Provider<Random> | Provider.Provider<Command> | Access.Access | Containers.Credentials | CloudflareEnvironment.CloudflareEnvironment | Providers | Retry.Retry, never, any>;
18
+ export declare const providers: () => Layer.Layer<import("../Auth/Profile.ts").Profile | import("../Auth/Credentials.ts").CredentialsStore | Provider.Provider<KeyPair> | Provider.Provider<Random> | Provider.Provider<Command> | Access.Access | Containers.Credentials | CloudflareEnvironment.CloudflareEnvironment | Providers | Retry.Retry, never, import("effect/Scope").Scope | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/FileSystem").FileSystem | import("effect/Path").Path | import("effect/unstable/http/HttpClient").HttpClient | import("../AlchemyContext.ts").AlchemyContext | import("../index.ts").AuthProviders | import("../Stage.ts").Stage | import("../Stack.ts").Stack>;
19
19
  //# sourceMappingURL=Providers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAmB,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAkB,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAOtC,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AAqBnD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;;AAEtE,qBAAa,SAAU,SAAQ,cAE9B;CAAG;AAEJ,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,SAAS,gUA6InB,CAAC"}
1
+ {"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAG9C,OAAO,EAAE,OAAO,EAAmB,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAkB,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAOtC,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AAqBnD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;;AAEtE,qBAAa,SAAU,SAAQ,cAE9B;CAAG;AAEJ,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,SAAS,orBAiJnB,CAAC"}
@@ -8,6 +8,7 @@ import * as Schedule from "effect/Schedule";
8
8
  import { CredentialsStoreLive } from "../Auth/Credentials.js";
9
9
  import { ProfileLive } from "../Auth/Profile.js";
10
10
  import { Command } from "../Build/Command.js";
11
+ import { DevServer, DevServerProvider } from "../Build/DevServer.js";
11
12
  import * as Build from "../Build/index.js";
12
13
  import { KeyPair, KeyPairProvider } from "../KeyPair.js";
13
14
  import * as Provider from "../Provider.js";
@@ -58,6 +59,7 @@ export const providers = () => Layer.effect(Providers, Provider.collection([
58
59
  Containers.Container,
59
60
  D1.D1ConnectionPolicy,
60
61
  D1.D1Database,
62
+ DevServer,
61
63
  Dns.DnsReadPolicy,
62
64
  Dns.DnsReadWritePolicy,
63
65
  Dns.DnsWritePolicy,
@@ -94,11 +96,12 @@ export const providers = () => Layer.effect(Providers, Provider.collection([
94
96
  Workers.BindWorkerPolicy,
95
97
  Workers.CronEventSourcePolicy,
96
98
  Workers.FetchPolicy,
99
+ Workers.VersionMetadataBindingPolicy,
97
100
  Workers.Worker,
98
101
  Workflows.WorkflowResource,
99
102
  Zaraz.ZarazConfig,
100
103
  Zone.Zone,
101
- ])).pipe(Layer.provide(Layer.mergeAll(ApiToken.AccountApiTokenProvider(), ApiToken.UserApiTokenProvider(), AiGateway.AiGatewayProvider(), AiGateway.AiGatewayBindingPolicyLive, AnalyticsEngine.AnalyticsEngineDatasetBindingPolicyLive, Artifacts.ArtifactsBindingPolicyLive, Browser.BrowserBindingPolicyLive, Containers.ContainerProvider(), D1.D1ConnectionPolicyLive, D1.DatabaseProvider(), Dns.DnsReadPolicyLive, Dns.DnsReadWritePolicyLive, Dns.DnsWritePolicyLive, Email.EmailAddressProvider(), Email.EmailRoutingProvider(), Email.EmailRuleProvider(), Email.SendEmailBindingPolicyLive, Hyperdrive.HyperdriveBindingPolicyLive, Hyperdrive.HyperdriveProvider(), Images.ImagesBindingPolicyLive, KV.KVNamespaceBindingPolicyLive, KV.KVNamespaceProvider(), Queue.QueueBindingPolicyLive, Queue.QueueEventSourcePolicyLive, Queue.QueueProvider(), Queue.QueueConsumerProvider(), R2.R2BucketBindingPolicyLive, R2.R2BucketProvider(), RateLimit.RateLimitBindingPolicyLive, Ruleset.RulesetProvider(), SecretsStore.SecretBindingPolicyLive, SecretsStore.SecretsStoreProvider(), SecretsStore.StoreSecretProvider(), Tunnel.TunnelProvider(), Tunnel.TunnelReadPolicyLive, Tunnel.TunnelReadWritePolicyLive, Tunnel.TunnelWritePolicyLive, Vectorize.VectorizeIndexBindingPolicyLive, Vectorize.VectorizeIndexProvider(), Vectorize.VectorizeMetadataIndexProvider(), VpcService.VpcServiceProvider(), Workers.BindWorkerPolicyLive, Workers.CronEventSourcePolicyLive, Workers.FetchPolicyLive, Workers.WorkerProvider(), Workflows.WorkflowProvider(), Zaraz.ZarazConfigProvider(), Zone.ZoneProvider())), Layer.provideMerge(Layer.mergeAll(Build.CommandProvider(), KeyPairProvider(), RandomProvider())), Layer.provideMerge(Credentials.fromAuthProvider()), Layer.provideMerge(CloudflareEnvironment.fromProfile()), Layer.provideMerge(CloudflareAuth), Layer.provideMerge(Access.AccessLive), Layer.provideMerge(ProfileLive), Layer.provideMerge(CredentialsStoreLive),
104
+ ])).pipe(Layer.provide(Layer.mergeAll(ApiToken.AccountApiTokenProvider(), ApiToken.UserApiTokenProvider(), AiGateway.AiGatewayProvider(), AiGateway.AiGatewayBindingPolicyLive, AnalyticsEngine.AnalyticsEngineDatasetBindingPolicyLive, Artifacts.ArtifactsBindingPolicyLive, Browser.BrowserBindingPolicyLive, Containers.ContainerProvider(), D1.D1ConnectionPolicyLive, D1.DatabaseProvider(), DevServerProvider(), Dns.DnsReadPolicyLive, Dns.DnsReadWritePolicyLive, Dns.DnsWritePolicyLive, Email.EmailAddressProvider(), Email.EmailRoutingProvider(), Email.EmailRuleProvider(), Email.SendEmailBindingPolicyLive, Hyperdrive.HyperdriveBindingPolicyLive, Hyperdrive.HyperdriveProvider(), Images.ImagesBindingPolicyLive, KV.KVNamespaceBindingPolicyLive, KV.KVNamespaceProvider(), Queue.QueueBindingPolicyLive, Queue.QueueEventSourcePolicyLive, Queue.QueueProvider(), Queue.QueueConsumerProvider(), R2.R2BucketBindingPolicyLive, R2.R2BucketProvider(), RateLimit.RateLimitBindingPolicyLive, Ruleset.RulesetProvider(), SecretsStore.SecretBindingPolicyLive, SecretsStore.SecretsStoreProvider(), SecretsStore.StoreSecretProvider(), Tunnel.TunnelProvider(), Tunnel.TunnelReadPolicyLive, Tunnel.TunnelReadWritePolicyLive, Tunnel.TunnelWritePolicyLive, Vectorize.VectorizeIndexBindingPolicyLive, Vectorize.VectorizeIndexProvider(), Vectorize.VectorizeMetadataIndexProvider(), VpcService.VpcServiceProvider(), Workers.BindWorkerPolicyLive, Workers.CronEventSourcePolicyLive, Workers.FetchPolicyLive, Workers.VersionMetadataBindingPolicyLive, Workers.WorkerProvider(), Workflows.WorkflowProvider(), Zaraz.ZarazConfigProvider(), Zone.ZoneProvider())), Layer.provideMerge(Layer.mergeAll(Build.CommandProvider(), KeyPairProvider(), RandomProvider())), Layer.provideMerge(Credentials.fromAuthProvider()), Layer.provideMerge(CloudflareEnvironment.fromProfile()), Layer.provideMerge(CloudflareAuth), Layer.provideMerge(Access.AccessLive), Layer.provideMerge(ProfileLive), Layer.provideMerge(CredentialsStoreLive),
102
105
  // Apply a blanket retry policy to every Cloudflare API call. Extends
103
106
  // `Retry.makeDefault`'s transient detection (throttling / 5xx /
104
107
  // network) with one Cloudflare-specific misleadingly-tagged
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.js","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Providers.js","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"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"}
@@ -47,9 +47,10 @@ type BindEffect = Effect.Effect<RateLimitClient, never, RateLimitBinding>;
47
47
  * Worker and returns the runtime {@link RateLimitClient} — no separate
48
48
  * `.bind(...)` step required.
49
49
  *
50
- * The divergence is achieved via `[Symbol.iterator]`: the object is not an
51
- * `Effect` (so `InferEnv` resolves it to the native `cf.RateLimit` in the
52
- * `env` position), but it is iterable as one when `yield*`-ed.
50
+ * The divergence is achieved via `[Symbol.iterator]`: the object is
51
+ * deliberately not an `Effect` (so `InferEnv` and the Worker `env` resolver
52
+ * keep it as the native `cf.RateLimit` rather than `yield*`-ing it), but it is
53
+ * iterable as one when `yield*`-ed.
53
54
  */
54
55
  export interface RateLimit {
55
56
  kind: RateLimitTypeId;
@@ -1 +1 @@
1
- {"version":3,"file":"RateLimit.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/RateLimit/RateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,KAAK,eAAe,GAAG,OAAO,eAAe,CAAC;AAC9C,QAAA,MAAM,eAAe,EAAG,sBAA+B,CAAC;AAExD,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B;;OAEG;IACH,MAAM,EAAE;QACN;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAE1E;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;IACF,QAAQ,IAAI,UAAU,CAAC;IACvB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;CACjE;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,SAIP,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,eAAO,MAAM,SAAS,EAAE;IACtB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC;;;;OAIG;IACH,IAAI,EAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC;CAoBpC,CAAC"}
1
+ {"version":3,"file":"RateLimit.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/RateLimit/RateLimit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE/E,KAAK,eAAe,GAAG,OAAO,eAAe,CAAC;AAC9C,QAAA,MAAM,eAAe,EAAG,sBAA+B,CAAC;AAExD,MAAM,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG;IAC3B;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B;;OAEG;IACH,MAAM,EAAE;QACN;;WAEG;QACH,KAAK,EAAE,MAAM,CAAC;QACd;;WAEG;QACH,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;CACH,CAAC;AAEF;;;;GAIG;AACH,KAAK,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAE1E;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;IACF,QAAQ,IAAI,UAAU,CAAC;IACvB,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;CACjE;AAED,eAAO,MAAM,WAAW,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,SAIP,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,eAAO,MAAM,SAAS,EAAE;IACtB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC;;;;OAIG;IACH,IAAI,EAAE,OAAO,gBAAgB,CAAC,IAAI,CAAC;CAoBpC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RateLimit.js","sourceRoot":"","sources":["../../../src/Cloudflare/RateLimit/RateLimit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAwB,MAAM,uBAAuB,CAAC;AAG/E,MAAM,eAAe,GAAG,sBAA+B,CAAC;AAiExD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CAChE,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,MAAM,IAAI,KAAK;IACd,KAAmB,CAAC,IAAI,KAAK,eAAe,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,CAAC,MAAM,SAAS,GAQlB,MAAM,CAAC,MAAM,CACf,CAAC,KAAqB,EAAa,EAAE;IACnC,MAAM,IAAI,GAAc;QACtB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,YAAY;QAChC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QACtC,MAAM,EAAE;YACN,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;YACzB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;SAC5B;QACD,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3C,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC,EACD;IACE,IAAI,EAAE,CAAC,GAAG,IAA8C,EAAE,EAAE,CAC1D,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACjC,CACF,CAAC"}
1
+ {"version":3,"file":"RateLimit.js","sourceRoot":"","sources":["../../../src/Cloudflare/RateLimit/RateLimit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAwB,MAAM,uBAAuB,CAAC;AAG/E,MAAM,eAAe,GAAG,sBAA+B,CAAC;AAkExD,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CAChE,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,MAAM,IAAI,KAAK;IACd,KAAmB,CAAC,IAAI,KAAK,eAAe,CAAC;AAEhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuDG;AACH,MAAM,CAAC,MAAM,SAAS,GAQlB,MAAM,CAAC,MAAM,CACf,CAAC,KAAqB,EAAa,EAAE;IACnC,MAAM,IAAI,GAAc;QACtB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,YAAY;QAChC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC;QACtC,MAAM,EAAE;YACN,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK;YACzB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM;SAC5B;QACD,QAAQ,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3C,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxE,CAAC;IACF,OAAO,IAAI,CAAC;AACd,CAAC,EACD;IACE,IAAI,EAAE,CAAC,GAAG,IAA8C,EAAE,EAAE,CAC1D,gBAAgB,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACjC,CACF,CAAC"}
@@ -1,20 +1,51 @@
1
1
  import * as Effect from "effect/Effect";
2
- import * as Redacted from "effect/Redacted";
3
- import { Command, type CommandProps } from "../../Build/Command.ts";
2
+ import { type CommandProps } from "../../Build/Command.ts";
4
3
  import type { InputProps } from "../../Input.ts";
4
+ import type { Providers } from "../Providers.ts";
5
5
  import type { AssetsConfig } from "../Workers/Assets.ts";
6
- import { Worker, type WorkerAssetsConfig, type WorkerBindingProps, type WorkerProps } from "../Workers/Worker.ts";
6
+ import { Worker, type NormalizedBindings, type WorkerAssetsConfig, type WorkerBindingProps, type WorkerProps } from "../Workers/Worker.ts";
7
7
  export interface StaticSiteProps<Bindings extends WorkerBindingProps = {}> extends Omit<WorkerProps<Bindings, WorkerAssetsConfig>, "assets" | "dev">, Omit<CommandProps, "env"> {
8
8
  /**
9
9
  * Optional configuration for static asset routing behavior.
10
10
  * Supports `runWorkerFirst`, `htmlHandling`, `notFoundHandling`, etc.
11
11
  */
12
- assetsConfig?: AssetsConfig;
12
+ assets?: AssetsConfig;
13
+ /**
14
+ * Local dev configuration. When `alchemy dev` runs, the build command is
15
+ * skipped and `command` is spawned as a long-lived child process tied to
16
+ * the stack's scope. Alchemy does not proxy or interpret the process —
17
+ * the dev server's own URL (e.g. `http://localhost:5173`) is what you
18
+ * open in the browser.
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * Cloudflare.StaticSite("App", {
23
+ * command: "npm run build",
24
+ * outdir: "dist",
25
+ * main: "./src/worker.ts",
26
+ * dev: { command: "npm run dev" },
27
+ * });
28
+ * ```
29
+ */
13
30
  dev?: {
31
+ /**
32
+ * Shell command to run as the local dev server (e.g. `npm run dev`).
33
+ */
14
34
  command: string;
35
+ /**
36
+ * Working directory for {@link command}. Defaults to {@link CommandProps.cwd}
37
+ * (the build command's `cwd`), or `process.cwd()` if neither is set.
38
+ */
39
+ cwd?: string;
40
+ /**
41
+ * Override for the `url` output if alchemy fails to detect it from the stdout of the dev command
42
+ */
43
+ url?: string;
15
44
  };
16
45
  }
17
- export type StaticSite = ReturnType<typeof StaticSite>;
46
+ type StaticSiteWorker<Bindings extends WorkerBindingProps> = Worker<{
47
+ [binding in keyof NormalizedBindings<Bindings, WorkerAssetsConfig>]: NormalizedBindings<Bindings, WorkerAssetsConfig>[binding];
48
+ }>;
18
49
  /**
19
50
  * A Cloudflare Worker that serves static assets built by a shell command.
20
51
  *
@@ -56,7 +87,7 @@ export type StaticSite = ReturnType<typeof StaticSite>;
56
87
  * ```
57
88
  *
58
89
  * @section Asset Configuration
59
- * Use `assetsConfig` to control how Cloudflare handles routing for
90
+ * Use `assets` to control how Cloudflare handles routing for
60
91
  * your static files — HTML handling, not-found behavior, etc.
61
92
  *
62
93
  * @example SPA-style routing
@@ -65,7 +96,7 @@ export type StaticSite = ReturnType<typeof StaticSite>;
65
96
  * command: "npm run build",
66
97
  * outdir: "dist",
67
98
  * main: "./src/worker.ts",
68
- * assetsConfig: {
99
+ * assets: {
69
100
  * htmlHandling: "auto-trailing-slash",
70
101
  * notFoundHandling: "single-page-application",
71
102
  * },
@@ -101,10 +132,31 @@ export type StaticSite = ReturnType<typeof StaticSite>;
101
132
  * },
102
133
  * });
103
134
  * ```
135
+ *
136
+ * @section Class Form
137
+ * Calling `StaticSite` with no arguments returns a constructor you can
138
+ * `extend` to declare the Worker as a named class. The class is both
139
+ * an `Effect` you can `yield*` to deploy and a type you can reference
140
+ * elsewhere — useful when other resources need to bind to this Worker.
141
+ *
142
+ * @example Declaring a Worker class
143
+ * ```typescript
144
+ * class Blog extends Cloudflare.StaticSite<Blog>()("Blog", {
145
+ * command: "hugo --minify",
146
+ * outdir: "public",
147
+ * main: "./src/worker.ts",
148
+ * }) {}
149
+ *
150
+ * const site = yield* Blog;
151
+ * ```
104
152
  */
105
- export declare const StaticSite: <const Bindings extends WorkerBindingProps = {}, Req = never>(id: string, propsEff: InputProps<StaticSiteProps<Bindings>> | Effect.Effect<InputProps<StaticSiteProps<Bindings>>, never, Req>) => Effect.Effect<Worker<{ [binding in keyof ({ [B in keyof Bindings]: Bindings[B] extends Effect.Effect<infer T extends import("../index.ts").WorkerBindingResource, any, any> ? T extends Redacted.Redacted<infer T_1> | import("effect/Config").Config<infer T_1> ? T_1 : T : Extract<Bindings[B], import("../index.ts").WorkerBindingResource>; } & {
106
- ASSETS: import("../index.ts").Assets;
107
- })]: ({ [B in keyof Bindings]: Bindings[B] extends Effect.Effect<infer T extends import("../index.ts").WorkerBindingResource, any, any> ? T extends Redacted.Redacted<infer T_1> | import("effect/Config").Config<infer T_1> ? T_1 : T : Extract<Bindings[B], import("../index.ts").WorkerBindingResource>; } & {
108
- ASSETS: import("../index.ts").Assets;
109
- })[binding]; }>, never, import("../../Provider.ts").Provider<Command> | import("../Providers.ts").Providers | Req>;
153
+ export declare const StaticSite: {
154
+ <Self>(): {
155
+ <const Bindings extends WorkerBindingProps = {}, Req = never>(id: string, propsEff: InputProps<StaticSiteProps<Bindings>, "dev"> | Effect.Effect<InputProps<StaticSiteProps<Bindings>, "dev">, never, Req>): Effect.Effect<Self, never, Req | Providers> & {
156
+ new (): StaticSiteWorker<Bindings>;
157
+ };
158
+ };
159
+ <const Bindings extends WorkerBindingProps = {}, Req = never>(id: string, propsEff: InputProps<StaticSiteProps<Bindings>, "dev"> | Effect.Effect<InputProps<StaticSiteProps<Bindings>, "dev">, never, Req>): Effect.Effect<StaticSiteWorker<Bindings>, never, Req | Providers>;
160
+ };
161
+ export {};
110
162
  //# sourceMappingURL=StaticSite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticSite.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Website/StaticSite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,MAAM,EACN,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS,kBAAkB,GAAG,EAAE,CACvE,SACE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,EACjE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,GAAG,CAAC,EAAE;QACJ,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AACH,eAAO,MAAM,UAAU,GACrB,KAAK,CAAC,QAAQ,SAAS,kBAAkB,GAAG,EAAE,EAC9C,GAAG,GAAG,KAAK,EAEX,IAAI,MAAM,EACV,UACI,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,GACrC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC;;;;kHA0CzC,CAAC"}
1
+ {"version":3,"file":"StaticSite.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Website/StaticSite.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,EAAW,KAAK,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,MAAM,EACN,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,WAAW,eAAe,CAAC,QAAQ,SAAS,kBAAkB,GAAG,EAAE,CACvE,SACE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC,EACjE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC;IAC3B;;;OAGG;IAEH,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;;;;;;;;;;;;OAgBG;IACH,GAAG,CAAC,EAAE;QACJ;;WAEG;QACH,OAAO,EAAE,MAAM,CAAC;QAChB;;;WAGG;QACH,GAAG,CAAC,EAAE,MAAM,CAAC;QACb;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,KAAK,gBAAgB,CAAC,QAAQ,SAAS,kBAAkB,IAAI,MAAM,CAAC;KACjE,OAAO,IAAI,MAAM,kBAAkB,CAClC,QAAQ,EACR,kBAAkB,CACnB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC,OAAO,CAAC;CAC9D,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuGG;AACH,eAAO,MAAM,UAAU,EAAE;IACvB,CAAC,IAAI,KAAK;QACR,CAAC,KAAK,CAAC,QAAQ,SAAS,kBAAkB,GAAG,EAAE,EAAE,GAAG,GAAG,KAAK,EAC1D,EAAE,EAAE,MAAM,EACV,QAAQ,EACJ,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAC5C,MAAM,CAAC,MAAM,CACX,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAC5C,KAAK,EACL,GAAG,CACJ,GACJ,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,CAAC,GAAG;YAC/C,QAAQ,gBAAgB,CAAC,QAAQ,CAAC,CAAC;SACpC,CAAC;KACH,CAAC;IACF,CAAC,KAAK,CAAC,QAAQ,SAAS,kBAAkB,GAAG,EAAE,EAAE,GAAG,GAAG,KAAK,EAC1D,EAAE,EAAE,MAAM,EACV,QAAQ,EACJ,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,GAC5C,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,GAC1E,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC;CAI7B,CAAC"}