alchemy 2.0.0-beta.47 → 2.0.0-beta.49

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 (263) hide show
  1. package/bin/exec.js +28 -5
  2. package/bin/exec.js.map +1 -1
  3. package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
  4. package/lib/AWS/Lambda/BucketEventSource.d.ts.map +1 -1
  5. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
  6. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts.map +1 -1
  7. package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
  8. package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
  9. package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
  10. package/lib/AWS/Lambda/StreamEventSource.d.ts.map +1 -1
  11. package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
  12. package/lib/AWS/Lambda/TableEventSource.d.ts.map +1 -1
  13. package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
  14. package/lib/AWS/Lambda/TopicEventSource.d.ts.map +1 -1
  15. package/lib/AdoptPolicy.js +1 -1
  16. package/lib/AdoptPolicy.js.map +1 -1
  17. package/lib/Binding.d.ts +5 -1
  18. package/lib/Binding.d.ts.map +1 -1
  19. package/lib/Binding.js.map +1 -1
  20. package/lib/Cli/commands/cloudflare.d.ts +4 -1
  21. package/lib/Cli/commands/cloudflare.d.ts.map +1 -1
  22. package/lib/Cli/commands/cloudflare.js +274 -1
  23. package/lib/Cli/commands/cloudflare.js.map +1 -1
  24. package/lib/Cloudflare/AiGateway/AiGateway.d.ts +1 -1
  25. package/lib/Cloudflare/AiGateway/AiGateway.d.ts.map +1 -1
  26. package/lib/Cloudflare/AiGateway/AiGateway.js +2 -1
  27. package/lib/Cloudflare/AiGateway/AiGateway.js.map +1 -1
  28. package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts +40 -2
  29. package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -1
  30. package/lib/Cloudflare/ApiToken/AccountApiToken.js +49 -6
  31. package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -1
  32. package/lib/Cloudflare/ApiToken/Common.d.ts +36 -4
  33. package/lib/Cloudflare/ApiToken/Common.d.ts.map +1 -1
  34. package/lib/Cloudflare/ApiToken/Common.js +8 -0
  35. package/lib/Cloudflare/ApiToken/Common.js.map +1 -1
  36. package/lib/Cloudflare/ApiToken/UserApiToken.d.ts +38 -2
  37. package/lib/Cloudflare/ApiToken/UserApiToken.d.ts.map +1 -1
  38. package/lib/Cloudflare/ApiToken/UserApiToken.js +47 -6
  39. package/lib/Cloudflare/ApiToken/UserApiToken.js.map +1 -1
  40. package/lib/Cloudflare/Browser/Browser.d.ts +121 -0
  41. package/lib/Cloudflare/Browser/Browser.d.ts.map +1 -0
  42. package/lib/Cloudflare/{BrowserRendering/BrowserRendering.js → Browser/Browser.js} +19 -26
  43. package/lib/Cloudflare/Browser/Browser.js.map +1 -0
  44. package/lib/Cloudflare/Browser/BrowserBinding.d.ts +55 -0
  45. package/lib/Cloudflare/Browser/BrowserBinding.d.ts.map +1 -0
  46. package/lib/Cloudflare/{BrowserRendering/BrowserRenderingBinding.js → Browser/BrowserBinding.js} +11 -11
  47. package/lib/Cloudflare/Browser/BrowserBinding.js.map +1 -0
  48. package/lib/Cloudflare/Browser/index.d.ts +3 -0
  49. package/lib/Cloudflare/Browser/index.d.ts.map +1 -0
  50. package/lib/Cloudflare/Browser/index.js +3 -0
  51. package/lib/Cloudflare/Browser/index.js.map +1 -0
  52. package/lib/Cloudflare/Container/ContainerBinding.d.ts +2 -1
  53. package/lib/Cloudflare/Container/ContainerBinding.d.ts.map +1 -1
  54. package/lib/Cloudflare/D1/D1Database.d.ts.map +1 -1
  55. package/lib/Cloudflare/D1/D1Database.js +2 -1
  56. package/lib/Cloudflare/D1/D1Database.js.map +1 -1
  57. package/lib/Cloudflare/Dns/DnsBinding.d.ts +52 -0
  58. package/lib/Cloudflare/Dns/DnsBinding.d.ts.map +1 -0
  59. package/lib/Cloudflare/Dns/DnsBinding.js +59 -0
  60. package/lib/Cloudflare/Dns/DnsBinding.js.map +1 -0
  61. package/lib/Cloudflare/Dns/DnsRead.d.ts +80 -0
  62. package/lib/Cloudflare/Dns/DnsRead.d.ts.map +1 -0
  63. package/lib/Cloudflare/Dns/DnsRead.js +70 -0
  64. package/lib/Cloudflare/Dns/DnsRead.js.map +1 -0
  65. package/lib/Cloudflare/Dns/DnsReadWrite.d.ts +79 -0
  66. package/lib/Cloudflare/Dns/DnsReadWrite.d.ts.map +1 -0
  67. package/lib/Cloudflare/Dns/DnsReadWrite.js +72 -0
  68. package/lib/Cloudflare/Dns/DnsReadWrite.js.map +1 -0
  69. package/lib/Cloudflare/Dns/DnsWrite.d.ts +113 -0
  70. package/lib/Cloudflare/Dns/DnsWrite.d.ts.map +1 -0
  71. package/lib/Cloudflare/Dns/DnsWrite.js +100 -0
  72. package/lib/Cloudflare/Dns/DnsWrite.js.map +1 -0
  73. package/lib/Cloudflare/Dns/index.d.ts +5 -0
  74. package/lib/Cloudflare/Dns/index.d.ts.map +1 -0
  75. package/lib/Cloudflare/Dns/index.js +5 -0
  76. package/lib/Cloudflare/Dns/index.js.map +1 -0
  77. package/lib/Cloudflare/Email/EmailRouting.d.ts +1 -1
  78. package/lib/Cloudflare/Email/EmailRouting.d.ts.map +1 -1
  79. package/lib/Cloudflare/Email/EmailRouting.js +1 -1
  80. package/lib/Cloudflare/Email/EmailRouting.js.map +1 -1
  81. package/lib/Cloudflare/Email/EmailRule.d.ts +1 -1
  82. package/lib/Cloudflare/Email/EmailRule.d.ts.map +1 -1
  83. package/lib/Cloudflare/Email/EmailRule.js +1 -1
  84. package/lib/Cloudflare/Email/EmailRule.js.map +1 -1
  85. package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts +1 -1
  86. package/lib/Cloudflare/Images/Images.d.ts +32 -23
  87. package/lib/Cloudflare/Images/Images.d.ts.map +1 -1
  88. package/lib/Cloudflare/Images/Images.js +10 -13
  89. package/lib/Cloudflare/Images/Images.js.map +1 -1
  90. package/lib/Cloudflare/KV/KVNamespace.d.ts +1 -1
  91. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  92. package/lib/Cloudflare/Providers.js +14 -3
  93. package/lib/Cloudflare/Providers.js.map +1 -1
  94. package/lib/Cloudflare/Queue/Queue.d.ts +1 -1
  95. package/lib/Cloudflare/R2/R2Bucket.d.ts +2 -2
  96. package/lib/Cloudflare/R2/R2Bucket.d.ts.map +1 -1
  97. package/lib/Cloudflare/R2/R2Bucket.js +13 -7
  98. package/lib/Cloudflare/R2/R2Bucket.js.map +1 -1
  99. package/lib/Cloudflare/RateLimit/RateLimit.d.ts +132 -0
  100. package/lib/Cloudflare/RateLimit/RateLimit.d.ts.map +1 -0
  101. package/lib/Cloudflare/RateLimit/RateLimit.js +80 -0
  102. package/lib/Cloudflare/RateLimit/RateLimit.js.map +1 -0
  103. package/lib/Cloudflare/RateLimit/RateLimitBinding.d.ts +30 -0
  104. package/lib/Cloudflare/RateLimit/RateLimitBinding.d.ts.map +1 -0
  105. package/lib/Cloudflare/RateLimit/RateLimitBinding.js +50 -0
  106. package/lib/Cloudflare/RateLimit/RateLimitBinding.js.map +1 -0
  107. package/lib/Cloudflare/RateLimit/index.d.ts +3 -0
  108. package/lib/Cloudflare/RateLimit/index.d.ts.map +1 -0
  109. package/lib/Cloudflare/RateLimit/index.js +3 -0
  110. package/lib/Cloudflare/RateLimit/index.js.map +1 -0
  111. package/lib/Cloudflare/SecretsStore/Secret.d.ts +3 -2
  112. package/lib/Cloudflare/SecretsStore/Secret.d.ts.map +1 -1
  113. package/lib/Cloudflare/SecretsStore/Secret.js +7 -4
  114. package/lib/Cloudflare/SecretsStore/Secret.js.map +1 -1
  115. package/lib/Cloudflare/StateStore/Api.d.ts +1 -1
  116. package/lib/Cloudflare/Tunnel/Tunnel.d.ts +27 -0
  117. package/lib/Cloudflare/Tunnel/Tunnel.d.ts.map +1 -1
  118. package/lib/Cloudflare/Tunnel/Tunnel.js +27 -0
  119. package/lib/Cloudflare/Tunnel/Tunnel.js.map +1 -1
  120. package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts +48 -0
  121. package/lib/Cloudflare/Tunnel/TunnelBinding.d.ts.map +1 -0
  122. package/lib/Cloudflare/Tunnel/TunnelBinding.js +56 -0
  123. package/lib/Cloudflare/Tunnel/TunnelBinding.js.map +1 -0
  124. package/lib/Cloudflare/Tunnel/TunnelRead.d.ts +83 -0
  125. package/lib/Cloudflare/Tunnel/TunnelRead.d.ts.map +1 -0
  126. package/lib/Cloudflare/Tunnel/TunnelRead.js +79 -0
  127. package/lib/Cloudflare/Tunnel/TunnelRead.js.map +1 -0
  128. package/lib/Cloudflare/Tunnel/TunnelReadWrite.d.ts +70 -0
  129. package/lib/Cloudflare/Tunnel/TunnelReadWrite.d.ts.map +1 -0
  130. package/lib/Cloudflare/Tunnel/TunnelReadWrite.js +63 -0
  131. package/lib/Cloudflare/Tunnel/TunnelReadWrite.js.map +1 -0
  132. package/lib/Cloudflare/Tunnel/TunnelWrite.d.ts +92 -0
  133. package/lib/Cloudflare/Tunnel/TunnelWrite.d.ts.map +1 -0
  134. package/lib/Cloudflare/Tunnel/TunnelWrite.js +88 -0
  135. package/lib/Cloudflare/Tunnel/TunnelWrite.js.map +1 -0
  136. package/lib/Cloudflare/Tunnel/index.d.ts +4 -0
  137. package/lib/Cloudflare/Tunnel/index.d.ts.map +1 -1
  138. package/lib/Cloudflare/Tunnel/index.js +4 -0
  139. package/lib/Cloudflare/Tunnel/index.js.map +1 -1
  140. package/lib/Cloudflare/Vectorize/VectorizeIndex.d.ts +1 -1
  141. package/lib/Cloudflare/Vectorize/VectorizeIndex.js +1 -0
  142. package/lib/Cloudflare/Vectorize/VectorizeIndex.js.map +1 -1
  143. package/lib/Cloudflare/VpcService/VpcService.d.ts +1 -1
  144. package/lib/Cloudflare/VpcService/VpcService.d.ts.map +1 -1
  145. package/lib/Cloudflare/VpcService/VpcService.js.map +1 -1
  146. package/lib/Cloudflare/Workers/DynamicWorkerLoader.d.ts +119 -11
  147. package/lib/Cloudflare/Workers/DynamicWorkerLoader.d.ts.map +1 -1
  148. package/lib/Cloudflare/Workers/DynamicWorkerLoader.js +88 -9
  149. package/lib/Cloudflare/Workers/DynamicWorkerLoader.js.map +1 -1
  150. package/lib/Cloudflare/Workers/InferEnv.d.ts +1 -1
  151. package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
  152. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +2 -0
  153. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  154. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
  155. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +18 -2
  156. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
  157. package/lib/Cloudflare/Workers/WorkerBinding.d.ts +7 -5
  158. package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
  159. package/lib/Cloudflare/Workers/WorkerBinding.js +1 -1
  160. package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -1
  161. package/lib/Cloudflare/Zaraz/ZarazConfig.d.ts +1 -1
  162. package/lib/Cloudflare/Zaraz/ZarazConfig.d.ts.map +1 -1
  163. package/lib/Cloudflare/Zaraz/ZarazConfig.js +1 -1
  164. package/lib/Cloudflare/Zaraz/ZarazConfig.js.map +1 -1
  165. package/lib/Cloudflare/Zone/Zone.d.ts +170 -0
  166. package/lib/Cloudflare/Zone/Zone.d.ts.map +1 -0
  167. package/lib/Cloudflare/Zone/Zone.js +180 -0
  168. package/lib/Cloudflare/Zone/Zone.js.map +1 -0
  169. package/lib/Cloudflare/Zone/index.d.ts +3 -0
  170. package/lib/Cloudflare/Zone/index.d.ts.map +1 -0
  171. package/lib/Cloudflare/Zone/index.js +3 -0
  172. package/lib/Cloudflare/Zone/index.js.map +1 -0
  173. package/lib/Cloudflare/Zone/lookup.d.ts +33 -0
  174. package/lib/Cloudflare/Zone/lookup.d.ts.map +1 -0
  175. package/lib/Cloudflare/{Zone.js → Zone/lookup.js} +2 -2
  176. package/lib/Cloudflare/Zone/lookup.js.map +1 -0
  177. package/lib/Cloudflare/index.d.ts +4 -1
  178. package/lib/Cloudflare/index.d.ts.map +1 -1
  179. package/lib/Cloudflare/index.js +4 -1
  180. package/lib/Cloudflare/index.js.map +1 -1
  181. package/lib/Output.d.ts +13 -1
  182. package/lib/Output.d.ts.map +1 -1
  183. package/lib/Output.js +43 -11
  184. package/lib/Output.js.map +1 -1
  185. package/lib/Plan.d.ts.map +1 -1
  186. package/lib/Plan.js +8 -0
  187. package/lib/Plan.js.map +1 -1
  188. package/lib/Platform.d.ts +5 -5
  189. package/lib/Platform.d.ts.map +1 -1
  190. package/lib/Platform.js +5 -2
  191. package/lib/Platform.js.map +1 -1
  192. package/lib/RemovalPolicy.js +2 -2
  193. package/lib/RemovalPolicy.js.map +1 -1
  194. package/lib/Resource.d.ts +15 -2
  195. package/lib/Resource.d.ts.map +1 -1
  196. package/lib/Resource.js +3 -2
  197. package/lib/Resource.js.map +1 -1
  198. package/lib/tsconfig.test.tsbuildinfo +1 -1
  199. package/package.json +7 -7
  200. package/src/AdoptPolicy.ts +1 -1
  201. package/src/Binding.ts +5 -1
  202. package/src/Cli/commands/cloudflare.ts +394 -1
  203. package/src/Cloudflare/AiGateway/AiGateway.ts +2 -1
  204. package/src/Cloudflare/ApiToken/AccountApiToken.ts +60 -7
  205. package/src/Cloudflare/ApiToken/Common.ts +45 -6
  206. package/src/Cloudflare/ApiToken/UserApiToken.ts +58 -7
  207. package/src/Cloudflare/Browser/Browser.ts +140 -0
  208. package/src/Cloudflare/Browser/BrowserBinding.ts +128 -0
  209. package/src/Cloudflare/Browser/index.ts +11 -0
  210. package/src/Cloudflare/D1/D1Database.ts +6 -2
  211. package/src/Cloudflare/Dns/DnsBinding.ts +123 -0
  212. package/src/Cloudflare/Dns/DnsRead.ts +129 -0
  213. package/src/Cloudflare/Dns/DnsReadWrite.ts +99 -0
  214. package/src/Cloudflare/Dns/DnsWrite.ts +209 -0
  215. package/src/Cloudflare/Dns/index.ts +4 -0
  216. package/src/Cloudflare/Email/EmailRouting.ts +1 -1
  217. package/src/Cloudflare/Email/EmailRule.ts +6 -6
  218. package/src/Cloudflare/Images/Images.ts +40 -27
  219. package/src/Cloudflare/Providers.ts +22 -3
  220. package/src/Cloudflare/R2/R2Bucket.ts +17 -9
  221. package/src/Cloudflare/RateLimit/RateLimit.ts +160 -0
  222. package/src/Cloudflare/RateLimit/RateLimitBinding.ts +90 -0
  223. package/src/Cloudflare/RateLimit/index.ts +2 -0
  224. package/src/Cloudflare/SecretsStore/Secret.ts +12 -6
  225. package/src/Cloudflare/Tunnel/Tunnel.ts +27 -0
  226. package/src/Cloudflare/Tunnel/TunnelBinding.ts +114 -0
  227. package/src/Cloudflare/Tunnel/TunnelRead.ts +168 -0
  228. package/src/Cloudflare/Tunnel/TunnelReadWrite.ts +88 -0
  229. package/src/Cloudflare/Tunnel/TunnelWrite.ts +194 -0
  230. package/src/Cloudflare/Tunnel/index.ts +4 -0
  231. package/src/Cloudflare/Vectorize/VectorizeIndex.ts +2 -1
  232. package/src/Cloudflare/VpcService/VpcService.ts +4 -2
  233. package/src/Cloudflare/Workers/DynamicWorkerLoader.ts +139 -13
  234. package/src/Cloudflare/Workers/InferEnv.ts +19 -15
  235. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +13 -2
  236. package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +16 -2
  237. package/src/Cloudflare/Workers/WorkerBinding.ts +6 -2
  238. package/src/Cloudflare/Zaraz/ZarazConfig.ts +1 -1
  239. package/src/Cloudflare/Zone/Zone.ts +349 -0
  240. package/src/Cloudflare/Zone/index.ts +2 -0
  241. package/src/Cloudflare/{Zone.ts → Zone/lookup.ts} +16 -3
  242. package/src/Cloudflare/index.ts +4 -1
  243. package/src/Output.ts +67 -11
  244. package/src/Plan.ts +9 -0
  245. package/src/Platform.ts +19 -15
  246. package/src/RemovalPolicy.ts +2 -2
  247. package/src/Resource.ts +19 -2
  248. package/lib/Cloudflare/BrowserRendering/BrowserRendering.d.ts +0 -116
  249. package/lib/Cloudflare/BrowserRendering/BrowserRendering.d.ts.map +0 -1
  250. package/lib/Cloudflare/BrowserRendering/BrowserRendering.js.map +0 -1
  251. package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.d.ts +0 -55
  252. package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.d.ts.map +0 -1
  253. package/lib/Cloudflare/BrowserRendering/BrowserRenderingBinding.js.map +0 -1
  254. package/lib/Cloudflare/BrowserRendering/index.d.ts +0 -3
  255. package/lib/Cloudflare/BrowserRendering/index.d.ts.map +0 -1
  256. package/lib/Cloudflare/BrowserRendering/index.js +0 -3
  257. package/lib/Cloudflare/BrowserRendering/index.js.map +0 -1
  258. package/lib/Cloudflare/Zone.d.ts +0 -14
  259. package/lib/Cloudflare/Zone.d.ts.map +0 -1
  260. package/lib/Cloudflare/Zone.js.map +0 -1
  261. package/src/Cloudflare/BrowserRendering/BrowserRendering.ts +0 -132
  262. package/src/Cloudflare/BrowserRendering/BrowserRenderingBinding.ts +0 -137
  263. package/src/Cloudflare/BrowserRendering/index.ts +0 -11
@@ -0,0 +1,132 @@
1
+ import type * as Effect from "effect/Effect";
2
+ import { SingleShotGen } from "effect/Utils";
3
+ import { RateLimitBinding, type RateLimitClient } from "./RateLimitBinding.ts";
4
+ type RateLimitTypeId = typeof RateLimitTypeId;
5
+ declare const RateLimitTypeId: "Cloudflare.RateLimit";
6
+ export type RateLimitPeriod = 10 | 60;
7
+ export type RateLimitProps = {
8
+ /**
9
+ * Binding name used when `RateLimit` is bound from inside a Worker init
10
+ * phase (`yield* Cloudflare.RateLimit(...)`). When passed through
11
+ * `Worker({ env: { ... } })`, the object key remains the binding name.
12
+ *
13
+ * @default "RATE_LIMIT"
14
+ */
15
+ name?: string;
16
+ /**
17
+ * Positive integer or string that uniquely identifies this rate limit
18
+ * configuration.
19
+ */
20
+ namespaceId: number | string;
21
+ /**
22
+ * Simple rate limiting configuration.
23
+ */
24
+ simple: {
25
+ /**
26
+ * The number of requests allowed within the period.
27
+ */
28
+ limit: number;
29
+ /**
30
+ * The period, in seconds, over which requests are counted.
31
+ */
32
+ period: RateLimitPeriod;
33
+ };
34
+ };
35
+ /**
36
+ * The Effect yielded when a `RateLimit` is used inside a Worker init phase:
37
+ * it attaches the `ratelimit` binding to the surrounding Worker and resolves
38
+ * to the runtime {@link RateLimitClient}.
39
+ */
40
+ type BindEffect = Effect.Effect<RateLimitClient, never, RateLimitBinding>;
41
+ /**
42
+ * A Cloudflare Rate Limit binding marker.
43
+ *
44
+ * It is a plain data structure (so it can be declared directly on a Worker's
45
+ * `env`) that is **also** yieldable inside an Effect-native Worker. Yielding it
46
+ * (`yield* Cloudflare.RateLimit(...)`) attaches the binding to the surrounding
47
+ * Worker and returns the runtime {@link RateLimitClient} — no separate
48
+ * `.bind(...)` step required.
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.
53
+ */
54
+ export interface RateLimit {
55
+ kind: RateLimitTypeId;
56
+ name: string;
57
+ namespaceId: string;
58
+ simple: {
59
+ limit: number;
60
+ period: RateLimitPeriod;
61
+ };
62
+ asEffect(): BindEffect;
63
+ [Symbol.iterator](): SingleShotGen<BindEffect, RateLimitClient>;
64
+ }
65
+ export declare const isRateLimit: (value: unknown) => value is RateLimit;
66
+ /**
67
+ * A Cloudflare Rate Limit binding for counting arbitrary keys inside Workers.
68
+ *
69
+ * Rate Limit bindings are configured directly on Workers and do not have a
70
+ * standalone provisioning API. The Worker provider sees this object in
71
+ * `env: { ... }` and emits the corresponding `{ type: "ratelimit" }` metadata
72
+ * binding to the script.
73
+ *
74
+ * @section Declaring on a Worker's env
75
+ * @example Async (non-Effect) Worker
76
+ * ```typescript
77
+ * export const Worker = Cloudflare.Worker("Worker", {
78
+ * main: "./src/worker.ts",
79
+ * env: {
80
+ * THROTTLE: Cloudflare.RateLimit({
81
+ * namespaceId: 1001,
82
+ * simple: { limit: 10, period: 60 },
83
+ * }),
84
+ * },
85
+ * });
86
+ *
87
+ * export type WorkerEnv = Cloudflare.InferEnv<typeof Worker>;
88
+ * // { THROTTLE: RateLimit } — the native Cloudflare binding
89
+ *
90
+ * // worker.ts
91
+ * export default {
92
+ * fetch: async (req: Request, env: WorkerEnv) => {
93
+ * const { success } = await env.THROTTLE.limit({ key: "ip" });
94
+ * return new Response(success ? "ok" : "rate limited");
95
+ * },
96
+ * };
97
+ * ```
98
+ *
99
+ * @section Binding inside an Effect-native Worker
100
+ * @example yield* RateLimit does the binding
101
+ * ```typescript
102
+ * Cloudflare.Worker("Worker", { main: "./src/worker.ts" },
103
+ * Effect.gen(function* () {
104
+ * // Attaches the binding to this Worker AND returns the runtime client.
105
+ * const throttle = yield* Cloudflare.RateLimit({
106
+ * namespaceId: 1001,
107
+ * simple: { limit: 10, period: 60 },
108
+ * });
109
+ *
110
+ * return {
111
+ * fetch: Effect.gen(function* () {
112
+ * const { success } = yield* throttle.limit({ key: "ip" });
113
+ * return HttpServerResponse.text(success ? "ok" : "rate limited");
114
+ * }),
115
+ * };
116
+ * }).pipe(Effect.provide(Cloudflare.RateLimitBindingLive)),
117
+ * );
118
+ * ```
119
+ *
120
+ * @see https://developers.cloudflare.com/workers/runtime-apis/bindings/rate-limit/
121
+ */
122
+ export declare const RateLimit: {
123
+ (props: RateLimitProps): RateLimit;
124
+ /**
125
+ * Bind an existing `RateLimit` marker to the surrounding Worker, returning
126
+ * the runtime client. Equivalent to `yield* rateLimit` — prefer yielding the
127
+ * marker directly.
128
+ */
129
+ bind: typeof RateLimitBinding.bind;
130
+ };
131
+ export {};
132
+ //# sourceMappingURL=RateLimit.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,80 @@
1
+ import { SingleShotGen } from "effect/Utils";
2
+ import { RateLimitBinding } from "./RateLimitBinding.js";
3
+ const RateLimitTypeId = "Cloudflare.RateLimit";
4
+ export const isRateLimit = (value) => typeof value === "object" &&
5
+ value !== null &&
6
+ "kind" in value &&
7
+ value.kind === RateLimitTypeId;
8
+ /**
9
+ * A Cloudflare Rate Limit binding for counting arbitrary keys inside Workers.
10
+ *
11
+ * Rate Limit bindings are configured directly on Workers and do not have a
12
+ * standalone provisioning API. The Worker provider sees this object in
13
+ * `env: { ... }` and emits the corresponding `{ type: "ratelimit" }` metadata
14
+ * binding to the script.
15
+ *
16
+ * @section Declaring on a Worker's env
17
+ * @example Async (non-Effect) Worker
18
+ * ```typescript
19
+ * export const Worker = Cloudflare.Worker("Worker", {
20
+ * main: "./src/worker.ts",
21
+ * env: {
22
+ * THROTTLE: Cloudflare.RateLimit({
23
+ * namespaceId: 1001,
24
+ * simple: { limit: 10, period: 60 },
25
+ * }),
26
+ * },
27
+ * });
28
+ *
29
+ * export type WorkerEnv = Cloudflare.InferEnv<typeof Worker>;
30
+ * // { THROTTLE: RateLimit } — the native Cloudflare binding
31
+ *
32
+ * // worker.ts
33
+ * export default {
34
+ * fetch: async (req: Request, env: WorkerEnv) => {
35
+ * const { success } = await env.THROTTLE.limit({ key: "ip" });
36
+ * return new Response(success ? "ok" : "rate limited");
37
+ * },
38
+ * };
39
+ * ```
40
+ *
41
+ * @section Binding inside an Effect-native Worker
42
+ * @example yield* RateLimit does the binding
43
+ * ```typescript
44
+ * Cloudflare.Worker("Worker", { main: "./src/worker.ts" },
45
+ * Effect.gen(function* () {
46
+ * // Attaches the binding to this Worker AND returns the runtime client.
47
+ * const throttle = yield* Cloudflare.RateLimit({
48
+ * namespaceId: 1001,
49
+ * simple: { limit: 10, period: 60 },
50
+ * });
51
+ *
52
+ * return {
53
+ * fetch: Effect.gen(function* () {
54
+ * const { success } = yield* throttle.limit({ key: "ip" });
55
+ * return HttpServerResponse.text(success ? "ok" : "rate limited");
56
+ * }),
57
+ * };
58
+ * }).pipe(Effect.provide(Cloudflare.RateLimitBindingLive)),
59
+ * );
60
+ * ```
61
+ *
62
+ * @see https://developers.cloudflare.com/workers/runtime-apis/bindings/rate-limit/
63
+ */
64
+ export const RateLimit = Object.assign((props) => {
65
+ const self = {
66
+ kind: RateLimitTypeId,
67
+ name: props.name ?? "RATE_LIMIT",
68
+ namespaceId: String(props.namespaceId),
69
+ simple: {
70
+ limit: props.simple.limit,
71
+ period: props.simple.period,
72
+ },
73
+ asEffect: () => RateLimitBinding.bind(self),
74
+ [Symbol.iterator]: () => new SingleShotGen(RateLimitBinding.bind(self)),
75
+ };
76
+ return self;
77
+ }, {
78
+ bind: (...args) => RateLimitBinding.bind(...args),
79
+ });
80
+ //# sourceMappingURL=RateLimit.js.map
@@ -0,0 +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"}
@@ -0,0 +1,30 @@
1
+ import type * as cf from "@cloudflare/workers-types";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import * as Binding from "../../Binding.ts";
5
+ import { WorkerEnvironment } from "../Workers/Worker.ts";
6
+ import { type RateLimit as RateLimitLike } from "./RateLimit.ts";
7
+ declare const RateLimitError_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 & {
8
+ readonly _tag: "RateLimitError";
9
+ } & Readonly<A>;
10
+ export declare class RateLimitError extends RateLimitError_base<{
11
+ message: string;
12
+ cause: unknown;
13
+ }> {
14
+ }
15
+ export interface RateLimitClient {
16
+ raw: Effect.Effect<cf.RateLimit, never, WorkerEnvironment>;
17
+ limit(options: Parameters<cf.RateLimit["limit"]>[0]): Effect.Effect<Awaited<ReturnType<cf.RateLimit["limit"]>>, RateLimitError, WorkerEnvironment>;
18
+ }
19
+ declare const RateLimitBinding_base: Binding.Service<RateLimitBinding, "Cloudflare.RateLimit.Binding", (rateLimit: RateLimitLike) => Effect.Effect<RateLimitClient>> & {
20
+ bind: (rateLimit: RateLimitLike) => Effect.Effect<any, any, any>;
21
+ };
22
+ export declare class RateLimitBinding extends RateLimitBinding_base {
23
+ }
24
+ export declare const RateLimitBindingLive: Layer.Layer<RateLimitBinding, never, RateLimitBindingPolicy>;
25
+ declare const RateLimitBindingPolicy_base: Binding.Policy<RateLimitBindingPolicy, "Policy<Cloudflare.RateLimit.Binding>", (rateLimit: RateLimitLike) => Effect.Effect<void>>;
26
+ export declare class RateLimitBindingPolicy extends RateLimitBindingPolicy_base {
27
+ }
28
+ export declare const RateLimitBindingPolicyLive: Layer.Layer<RateLimitBindingPolicy, never, never>;
29
+ export {};
30
+ //# sourceMappingURL=RateLimitBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RateLimitBinding.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/RateLimit/RateLimitBinding.ts"],"names":[],"mappings":"AAEA,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,EAAE,KAAK,SAAS,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;;;;AAEjE,qBAAa,cAAe,SAAQ,oBAAmC;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;CAAG;AAEL,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC;IAC3D,KAAK,CACH,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAC5C,MAAM,CAAC,MAAM,CACd,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAC1C,cAAc,EACd,iBAAiB,CAClB,CAAC;CACH;mHAIa,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;;;AAF9D,qBAAa,gBAAiB,SAAQ,qBAGH;CAAG;AAEtC,eAAO,MAAM,oBAAoB,8DA+BhC,CAAC;sIAIY,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAFnD,qBAAa,sBAAuB,SAAQ,2BAGT;CAAG;AAEtC,eAAO,MAAM,0BAA0B,mDAmBtC,CAAC"}
@@ -0,0 +1,50 @@
1
+ /// <reference types="@cloudflare/workers-types" />
2
+ import * as Data from "effect/Data";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Layer from "effect/Layer";
5
+ import * as Binding from "../../Binding.js";
6
+ import { isWorker, WorkerEnvironment } from "../Workers/Worker.js";
7
+ import {} from "./RateLimit.js";
8
+ export class RateLimitError extends Data.TaggedError("RateLimitError") {
9
+ }
10
+ export class RateLimitBinding extends Binding.Service()("Cloudflare.RateLimit.Binding") {
11
+ }
12
+ export const RateLimitBindingLive = Layer.effect(RateLimitBinding, Effect.gen(function* () {
13
+ const Policy = yield* RateLimitBindingPolicy;
14
+ return Effect.fn(function* (rateLimit) {
15
+ yield* Policy(rateLimit);
16
+ const raw = WorkerEnvironment.useSync((env) => env[rateLimit.name]);
17
+ return {
18
+ raw,
19
+ limit: (options) => raw.pipe(Effect.flatMap((binding) => Effect.tryPromise({
20
+ try: () => binding.limit(options),
21
+ catch: (error) => new RateLimitError({
22
+ message: error instanceof Error
23
+ ? error.message
24
+ : "Unknown RateLimit error",
25
+ cause: error,
26
+ }),
27
+ }))),
28
+ };
29
+ });
30
+ }));
31
+ export class RateLimitBindingPolicy extends Binding.Policy()("Cloudflare.RateLimit.Binding") {
32
+ }
33
+ export const RateLimitBindingPolicyLive = RateLimitBindingPolicy.layer.succeed(Effect.fn(function* (host, rateLimit) {
34
+ if (isWorker(host)) {
35
+ yield* host.bind(rateLimit.name, {
36
+ bindings: [
37
+ {
38
+ type: "ratelimit",
39
+ name: rateLimit.name,
40
+ namespaceId: rateLimit.namespaceId,
41
+ simple: rateLimit.simple,
42
+ },
43
+ ],
44
+ });
45
+ }
46
+ else {
47
+ return yield* Effect.die(new Error(`RateLimitBinding does not support runtime '${host.Type}'`));
48
+ }
49
+ }));
50
+ //# sourceMappingURL=RateLimitBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RateLimitBinding.js","sourceRoot":"","sources":["../../../src/Cloudflare/RateLimit/RateLimitBinding.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAGnD,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAmC,MAAM,gBAAgB,CAAC;AAEjE,MAAM,OAAO,cAAe,SAAQ,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAGnE;CAAG;AAaL,MAAM,OAAO,gBAAiB,SAAQ,OAAO,CAAC,OAAO,EAGlD,CAAC,8BAA8B,CAAC;CAAG;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,CAAC,MAAM,CAC9C,gBAAgB,EAChB,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,sBAAsB,CAAC;IAE7C,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,SAAwB;QAClD,KAAK,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,iBAAiB,CAAC,OAAO,CACnC,CAAC,GAAG,EAAE,EAAE,CAAE,GAAoC,CAAC,SAAS,CAAC,IAAI,CAAE,CAChE,CAAC;QACF,OAAO;YACL,GAAG;YACH,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CACjB,GAAG,CAAC,IAAI,CACN,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CACzB,MAAM,CAAC,UAAU,CAAC;gBAChB,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;gBACjC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CACf,IAAI,cAAc,CAAC;oBACjB,OAAO,EACL,KAAK,YAAY,KAAK;wBACpB,CAAC,CAAC,KAAK,CAAC,OAAO;wBACf,CAAC,CAAC,yBAAyB;oBAC/B,KAAK,EAAE,KAAK;iBACb,CAAC;aACL,CAAC,CACH,CACF;SACsB,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,OAAO,sBAAuB,SAAQ,OAAO,CAAC,MAAM,EAGvD,CAAC,8BAA8B,CAAC;CAAG;AAEtC,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAC5E,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAkB,EAAE,SAAwB;IAC/D,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACnB,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;YAC/B,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS,CAAC,IAAI;oBACpB,WAAW,EAAE,SAAS,CAAC,WAAW;oBAClC,MAAM,EAAE,SAAS,CAAC,MAAM;iBAClB;aACT;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CACtB,IAAI,KAAK,CAAC,8CAA8C,IAAI,CAAC,IAAI,GAAG,CAAC,CACtE,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./RateLimit.ts";
2
+ export * from "./RateLimitBinding.ts";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/RateLimit/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./RateLimit.js";
2
+ export * from "./RateLimitBinding.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/RateLimit/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
@@ -36,10 +36,11 @@ export type Secret = Resource<"Cloudflare.SecretsStore.Secret", StoreSecretProps
36
36
  secretName: string;
37
37
  storeId: string;
38
38
  accountId: string;
39
- status: "pending" | "active" | "deleted";
39
+ status: SecretStatus;
40
40
  scopes: string[];
41
41
  comment: string | undefined;
42
42
  }, never, Providers>;
43
+ export type SecretStatus = "pending" | "active" | "deleted";
43
44
  /**
44
45
  * A single secret stored inside a Cloudflare Secrets Store.
45
46
  *
@@ -68,7 +69,7 @@ export type Secret = Resource<"Cloudflare.SecretsStore.Secret", StoreSecretProps
68
69
  * ```
69
70
  */
70
71
  export declare const Secret: import("../../Resource.ts").ResourceClassWithMethods<Secret, {
71
- readonly bind: (<Req = never>(args_0: Secret | Effect.Effect<Secret, never, Req>) => Effect.Effect<import("./SecretBinding.ts").SecretClient, never, SecretBinding | Req>) & ((secret: Secret) => Effect.Effect<any, any, any>);
72
+ readonly bind: (<Req = never>(args_0: import("../../Input.ts").Input<Secret> | Effect.Effect<Secret, never, Req>) => Effect.Effect<import("./SecretBinding.ts").SecretClient, never, SecretBinding | Req>) & ((secret: Secret) => Effect.Effect<any, any, any>);
72
73
  }>;
73
74
  export declare const StoreSecretProvider: () => import("effect/Layer").Layer<Provider.Provider<Secret>, never, import("effect/unstable/http/HttpClient").HttpClient | import("@distilled.cloud/cloudflare").Credentials>;
74
75
  //# sourceMappingURL=Secret.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Secret.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/Secret.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAI5C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,QAAQ,CAC3B,gCAAgC,EAChC,gBAAgB,EAChB;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,MAAM;;EAEjB,CAAC;AAQH,eAAO,MAAM,mBAAmB,gLA0M7B,CAAC"}
1
+ {"version":3,"file":"Secret.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/Secret.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAI5C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG,QAAQ,CAC3B,gCAAgC,EAChC,gBAAgB,EAChB;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAM5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,MAAM;;EAEjB,CAAC;AAQH,eAAO,MAAM,mBAAmB,gLA0M7B,CAAC"}
@@ -9,6 +9,9 @@ import { isResolved } from "../../Diff.js";
9
9
  import * as Provider from "../../Provider.js";
10
10
  import { Resource } from "../../Resource.js";
11
11
  import { SecretBinding } from "./SecretBinding.js";
12
+ // Distilled widened generated string enums to open unions (`string & {}`); the
13
+ // API only ever returns the known variants, so narrow at the boundary.
14
+ const asSecretStatus = (status) => status;
12
15
  /**
13
16
  * A single secret stored inside a Cloudflare Secrets Store.
14
17
  *
@@ -111,7 +114,7 @@ export const StoreSecretProvider = () => Provider.effect(Secret, Effect.gen(func
111
114
  secretName: secret.name,
112
115
  storeId: secret.storeId,
113
116
  accountId,
114
- status: secret.status,
117
+ status: asSecretStatus(secret.status),
115
118
  scopes,
116
119
  comment: secret.comment ?? undefined,
117
120
  };
@@ -137,7 +140,7 @@ export const StoreSecretProvider = () => Provider.effect(Secret, Effect.gen(func
137
140
  secretName: observed.name,
138
141
  storeId: observed.storeId,
139
142
  accountId,
140
- status: patched.status,
143
+ status: asSecretStatus(patched.status),
141
144
  scopes,
142
145
  comment: patched.comment ?? undefined,
143
146
  };
@@ -160,7 +163,7 @@ export const StoreSecretProvider = () => Provider.effect(Secret, Effect.gen(func
160
163
  secretName: secret.name,
161
164
  storeId: secret.storeId,
162
165
  accountId: output.accountId,
163
- status: secret.status,
166
+ status: asSecretStatus(secret.status),
164
167
  scopes: output.scopes,
165
168
  comment: secret.comment ?? undefined,
166
169
  })), Effect.catchTag("SecretNotFound", () => Effect.succeed(undefined)), Effect.catchTag("StoreNotFound", () => Effect.succeed(undefined)));
@@ -185,7 +188,7 @@ export const StoreSecretProvider = () => Provider.effect(Secret, Effect.gen(func
185
188
  secretName: match.name,
186
189
  storeId: match.storeId,
187
190
  accountId: olds.store.accountId,
188
- status: match.status,
191
+ status: asSecretStatus(match.status),
189
192
  scopes: resolveScopes(olds.scopes),
190
193
  comment: match.comment ?? undefined,
191
194
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Secret.js","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/Secret.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Secret.js","sourceRoot":"","sources":["../../../src/Cloudflare/SecretsStore/Secret.ts"],"names":[],"mappings":"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"}
@@ -61,7 +61,7 @@ declare const _default: Effect.Effect<import("effect/Pipeable").Pipeable & impor
61
61
  crons?: string[];
62
62
  hyperdrives?: Record<string, Required<import("../index.ts").HyperdriveDevOrigin>>;
63
63
  }, import("../Providers.ts").Providers> & {
64
- bind(sid: string, binding: import("../../Input.ts").Input<{
64
+ bind(sid: import("../../Input.ts").Input<string>, binding: import("../../Input.ts").Input<{
65
65
  bindings?: import("../index.ts").WorkerBinding[];
66
66
  containers?: {
67
67
  className: string;
@@ -103,6 +103,33 @@ export type Tunnel = Resource<"Cloudflare.Tunnel", TunnelProps, {
103
103
  * ],
104
104
  * });
105
105
  * ```
106
+ *
107
+ * @section Managing Tunnels at Runtime
108
+ * The `Tunnel` resource manages a single, statically-declared tunnel as part of
109
+ * a stack. To create, read, update, or delete tunnels *on the fly* from inside
110
+ * a deployed Worker, bind one of the runtime tunnel clients instead. Each
111
+ * provisions a least-privilege {@link AccountApiToken} and injects it into the
112
+ * Worker:
113
+ *
114
+ * - {@link TunnelRead} — read-only (`get`, `list`, `getToken`,
115
+ * `getConfiguration`); scoped to `Cloudflare Tunnel Read`.
116
+ * - {@link TunnelWrite} — mutating (`create`, `update`, `delete`,
117
+ * `putConfiguration`); scoped to `Cloudflare Tunnel Write`.
118
+ * - {@link TunnelReadWrite} — the full CRUD surface; scoped to both.
119
+ *
120
+ * @example Create a tunnel on demand from a Worker
121
+ * ```typescript
122
+ * // init
123
+ * const tunnels = yield* Cloudflare.TunnelReadWrite.bind();
124
+ *
125
+ * return {
126
+ * fetch: Effect.gen(function* () {
127
+ * const tunnel = yield* tunnels.create({ name: "on-demand-tunnel" });
128
+ * const token = yield* tunnels.getToken(tunnel.id!);
129
+ * return HttpServerResponse.json({ id: tunnel.id, token });
130
+ * }),
131
+ * };
132
+ * ```
106
133
  */
107
134
  export declare const Tunnel: import("../../Resource.ts").ResourceClass<Tunnel>;
108
135
  export declare const TunnelProvider: () => import("effect/Layer").Layer<Provider.Provider<Tunnel>, never, import("effect/unstable/http/HttpClient").HttpClient | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment>;
@@ -1 +1 @@
1
- {"version":3,"file":"Tunnel.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/Tunnel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAK5C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAC3C;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B;;OAEG;IACH,UAAiB,WAAW;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,aAAa,CAAC,EAAE,mBAAmB,CAAC;KACrC;IACD;;OAEG;IACH,UAAiB,mBAAmB;QAClC,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;CACF;AAED,MAAM,MAAM,MAAM,GAAG,QAAQ,CAC3B,mBAAmB,EACnB,WAAW,EACX;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC;IAClC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAClC,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,MAAM,mDAAwC,CAAC;AAE5D,eAAO,MAAM,cAAc,0QAwNxB,CAAC"}
1
+ {"version":3,"file":"Tunnel.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/Tunnel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAK5C,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,MAAM,MAAM,WAAW,GAAG;IACxB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACzC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC;IACnC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;IAC/B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAC3C;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B;;OAEG;IACH,UAAiB,WAAW;QAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,aAAa,CAAC,EAAE,mBAAmB,CAAC;KACrC;IACD;;OAEG;IACH,UAAiB,mBAAmB;QAClC,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;CACF;AAED,MAAM,MAAM,MAAM,GAAG,QAAQ,CAC3B,mBAAmB,EACnB,WAAW,EACX;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC;IAClC,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;CAClC,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,eAAO,MAAM,MAAM,mDAAwC,CAAC;AAE5D,eAAO,MAAM,cAAc,0QAwNxB,CAAC"}
@@ -28,6 +28,33 @@ import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
28
28
  * ],
29
29
  * });
30
30
  * ```
31
+ *
32
+ * @section Managing Tunnels at Runtime
33
+ * The `Tunnel` resource manages a single, statically-declared tunnel as part of
34
+ * a stack. To create, read, update, or delete tunnels *on the fly* from inside
35
+ * a deployed Worker, bind one of the runtime tunnel clients instead. Each
36
+ * provisions a least-privilege {@link AccountApiToken} and injects it into the
37
+ * Worker:
38
+ *
39
+ * - {@link TunnelRead} — read-only (`get`, `list`, `getToken`,
40
+ * `getConfiguration`); scoped to `Cloudflare Tunnel Read`.
41
+ * - {@link TunnelWrite} — mutating (`create`, `update`, `delete`,
42
+ * `putConfiguration`); scoped to `Cloudflare Tunnel Write`.
43
+ * - {@link TunnelReadWrite} — the full CRUD surface; scoped to both.
44
+ *
45
+ * @example Create a tunnel on demand from a Worker
46
+ * ```typescript
47
+ * // init
48
+ * const tunnels = yield* Cloudflare.TunnelReadWrite.bind();
49
+ *
50
+ * return {
51
+ * fetch: Effect.gen(function* () {
52
+ * const tunnel = yield* tunnels.create({ name: "on-demand-tunnel" });
53
+ * const token = yield* tunnels.getToken(tunnel.id!);
54
+ * return HttpServerResponse.json({ id: tunnel.id, token });
55
+ * }),
56
+ * };
57
+ * ```
31
58
  */
32
59
  export const Tunnel = Resource("Cloudflare.Tunnel");
33
60
  export const TunnelProvider = () => Provider.effect(Tunnel, Effect.gen(function* () {
@@ -1 +1 @@
1
- {"version":3,"file":"Tunnel.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/Tunnel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tunnel.js","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/Tunnel.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { Credentials } from "@distilled.cloud/cloudflare/Credentials";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import * as Redacted from "effect/Redacted";
5
+ import type { HttpClient } from "effect/unstable/http/HttpClient";
6
+ import type * as Binding from "../../Binding.ts";
7
+ import { RuntimeContext } from "../../RuntimeContext.ts";
8
+ import { AccountApiToken } from "../ApiToken/AccountApiToken.ts";
9
+ import type { ApiTokenPermissionGroupRef } from "../ApiToken/Common.ts";
10
+ import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
11
+ import { Worker } from "../Workers/Worker.ts";
12
+ /**
13
+ * Runtime accessors for a tunnel binding's token, obtained by binding the
14
+ * {@link AccountApiToken}'s outputs in the Worker's Init phase. Each accessor
15
+ * reads the value back from the Worker's environment at runtime.
16
+ */
17
+ export interface TunnelToken {
18
+ /** The token's plaintext value (injected as a `secret_text` binding). */
19
+ value: Effect.Effect<Redacted.Redacted<string>>;
20
+ /** The account id the token is scoped to. */
21
+ accountId: Effect.Effect<string>;
22
+ }
23
+ /**
24
+ * Bind an {@link AccountApiToken}'s outputs into the Worker so they can be read
25
+ * at runtime: `token.value` is injected as a `secret_text` binding and
26
+ * `token.accountId` as `plain_text`. Returns the {@link TunnelToken} accessors.
27
+ */
28
+ export declare const bindTunnelToken: (token: AccountApiToken) => Effect.Effect<{
29
+ value: import("../../Output.ts").Accessor<Redacted.Redacted<string>>;
30
+ accountId: import("../../Output.ts").Accessor<string>;
31
+ }, never, never>;
32
+ /**
33
+ * Resolve credentials from a bound token and provide them (plus the
34
+ * fetch-based HTTP client) to a raw SDK operation.
35
+ */
36
+ export declare const authorizeWith: (token: TunnelToken) => <A, E>(eff: Effect.Effect<A, E, Credentials | HttpClient>) => Effect.Effect<A, E, RuntimeContext>;
37
+ /**
38
+ * Shared runtime body for a tunnel binding: create a scoped token, attach the
39
+ * (narrow) policy, bind the token's outputs into the Worker, then build the
40
+ * client. Pass the result to `Layer.effect(<Binding>, ...)`.
41
+ */
42
+ export declare const makeTunnelClient: <C>(Policy: Binding.Policy<any, any, (token: AccountApiToken) => Effect.Effect<void>>, makeClient: (token: TunnelToken) => C) => Effect.Effect<() => Effect.Effect<C, never, Worker<any>>, never, any>;
43
+ /**
44
+ * Build the deploy-time policy layer for a tunnel binding: attach an allow
45
+ * policy with the given permission groups to the binding's token.
46
+ */
47
+ export declare const makeTunnelPolicyLive: <Self, Id extends string>(Policy: Binding.Policy<Self, Id, (token: AccountApiToken) => Effect.Effect<void>>, sid: string, permissionGroups: ApiTokenPermissionGroupRef[]) => Layer.Layer<Self, never, CloudflareEnvironment>;
48
+ //# sourceMappingURL=TunnelBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TunnelBinding.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Tunnel/TunnelBinding.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEZ,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,KAAK,OAAO,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,eAAe;;;gBAKlD,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,aAAa,GACvB,OAAO,WAAW,MAClB,CAAC,EAAE,CAAC,EACH,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,KACjD,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAWlC,CAAC;AAEN;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAChC,QAAQ,OAAO,CAAC,MAAM,CACpB,GAAG,EACH,GAAG,EACH,CAAC,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAChD,EACD,YAAY,CAAC,KAAK,EAAE,WAAW,KAAK,CAAC,0EAYnC,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,IAAI,EAAE,EAAE,SAAS,MAAM,EAC1D,QAAQ,OAAO,CAAC,MAAM,CACpB,IAAI,EACJ,EAAE,EACF,CAAC,KAAK,EAAE,eAAe,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAChD,EACD,KAAK,MAAM,EACX,kBAAkB,0BAA0B,EAAE,oDAgB7C,CAAC"}