alchemy 2.0.0-beta.48 → 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 (74) hide show
  1. package/bin/exec.js +28 -5
  2. package/bin/exec.js.map +1 -1
  3. package/lib/AdoptPolicy.js +1 -1
  4. package/lib/AdoptPolicy.js.map +1 -1
  5. package/lib/Binding.d.ts +5 -1
  6. package/lib/Binding.d.ts.map +1 -1
  7. package/lib/Binding.js.map +1 -1
  8. package/lib/Cloudflare/AiGateway/AiGateway.d.ts +1 -1
  9. package/lib/Cloudflare/ApiToken/Common.d.ts +10 -1
  10. package/lib/Cloudflare/ApiToken/Common.d.ts.map +1 -1
  11. package/lib/Cloudflare/ApiToken/Common.js.map +1 -1
  12. package/lib/Cloudflare/Dns/DnsBinding.d.ts +52 -0
  13. package/lib/Cloudflare/Dns/DnsBinding.d.ts.map +1 -0
  14. package/lib/Cloudflare/Dns/DnsBinding.js +59 -0
  15. package/lib/Cloudflare/Dns/DnsBinding.js.map +1 -0
  16. package/lib/Cloudflare/Dns/DnsRead.d.ts +80 -0
  17. package/lib/Cloudflare/Dns/DnsRead.d.ts.map +1 -0
  18. package/lib/Cloudflare/Dns/DnsRead.js +70 -0
  19. package/lib/Cloudflare/Dns/DnsRead.js.map +1 -0
  20. package/lib/Cloudflare/Dns/DnsReadWrite.d.ts +79 -0
  21. package/lib/Cloudflare/Dns/DnsReadWrite.d.ts.map +1 -0
  22. package/lib/Cloudflare/Dns/DnsReadWrite.js +72 -0
  23. package/lib/Cloudflare/Dns/DnsReadWrite.js.map +1 -0
  24. package/lib/Cloudflare/Dns/DnsWrite.d.ts +113 -0
  25. package/lib/Cloudflare/Dns/DnsWrite.d.ts.map +1 -0
  26. package/lib/Cloudflare/Dns/DnsWrite.js +100 -0
  27. package/lib/Cloudflare/Dns/DnsWrite.js.map +1 -0
  28. package/lib/Cloudflare/Dns/index.d.ts +5 -0
  29. package/lib/Cloudflare/Dns/index.d.ts.map +1 -0
  30. package/lib/Cloudflare/Dns/index.js +5 -0
  31. package/lib/Cloudflare/Dns/index.js.map +1 -0
  32. package/lib/Cloudflare/Hyperdrive/Hyperdrive.d.ts +1 -1
  33. package/lib/Cloudflare/KV/KVNamespace.d.ts +1 -1
  34. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  35. package/lib/Cloudflare/Providers.js +5 -1
  36. package/lib/Cloudflare/Providers.js.map +1 -1
  37. package/lib/Cloudflare/Queue/Queue.d.ts +1 -1
  38. package/lib/Cloudflare/R2/R2Bucket.d.ts +1 -1
  39. package/lib/Cloudflare/SecretsStore/Secret.d.ts +1 -1
  40. package/lib/Cloudflare/StateStore/Api.d.ts +1 -1
  41. package/lib/Cloudflare/Vectorize/VectorizeIndex.d.ts +1 -1
  42. package/lib/Cloudflare/Workers/WorkerBinding.d.ts +2 -2
  43. package/lib/Cloudflare/index.d.ts +1 -0
  44. package/lib/Cloudflare/index.d.ts.map +1 -1
  45. package/lib/Cloudflare/index.js +1 -0
  46. package/lib/Cloudflare/index.js.map +1 -1
  47. package/lib/Output.d.ts +13 -1
  48. package/lib/Output.d.ts.map +1 -1
  49. package/lib/Output.js +43 -11
  50. package/lib/Output.js.map +1 -1
  51. package/lib/Plan.d.ts.map +1 -1
  52. package/lib/Plan.js +8 -0
  53. package/lib/Plan.js.map +1 -1
  54. package/lib/Platform.d.ts.map +1 -1
  55. package/lib/Platform.js +5 -2
  56. package/lib/Platform.js.map +1 -1
  57. package/lib/Resource.d.ts +1 -1
  58. package/lib/Resource.d.ts.map +1 -1
  59. package/lib/tsconfig.test.tsbuildinfo +1 -1
  60. package/package.json +7 -7
  61. package/src/AdoptPolicy.ts +1 -1
  62. package/src/Binding.ts +5 -1
  63. package/src/Cloudflare/ApiToken/Common.ts +13 -3
  64. package/src/Cloudflare/Dns/DnsBinding.ts +123 -0
  65. package/src/Cloudflare/Dns/DnsRead.ts +129 -0
  66. package/src/Cloudflare/Dns/DnsReadWrite.ts +99 -0
  67. package/src/Cloudflare/Dns/DnsWrite.ts +209 -0
  68. package/src/Cloudflare/Dns/index.ts +4 -0
  69. package/src/Cloudflare/Providers.ts +7 -0
  70. package/src/Cloudflare/index.ts +1 -0
  71. package/src/Output.ts +67 -11
  72. package/src/Plan.ts +9 -0
  73. package/src/Platform.ts +11 -3
  74. package/src/Resource.ts +1 -1
@@ -107,7 +107,7 @@ export const stripUnowned = (attrs) => {
107
107
  delete out[UnownedTag];
108
108
  return out;
109
109
  };
110
- export const adopt = ((enabled) => (eff) => eff.pipe(typeof enabled === "boolean"
110
+ export const adopt = ((enabled = true) => (eff) => eff.pipe(typeof enabled === "boolean"
111
111
  ? Effect.provideService(AdoptPolicy, enabled ?? true)
112
112
  : Effect.provideServiceEffect(AdoptPolicy, enabled)));
113
113
  //# sourceMappingURL=AdoptPolicy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdoptPolicy.js","sourceRoot":"","sources":["../src/AdoptPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAAwB,CACtE,aAAa,CACd;CAAG;AAEJ;;;;;;GAMG;AACH,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAS3E;CAAG;AAEL;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,OAAO,GAGhB,MAAM,CAAC,MAAM,CACf,CAAmB,KAAQ,EAAK,EAAE;IAChC,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,EAAO,CAAC;IACjC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE;QACxC,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,EACD;IACE,EAAE,EAAE,CAAC,KAAc,EAAW,EAAE,CAC9B,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAa,CAAC,UAAU,CAAC,KAAK,IAAI;CACtC,CACF,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAmB,KAAQ,EAAK,EAAE;IAC5D,MAAM,GAAG,GAAQ,EAAE,GAAG,KAAK,EAAE,CAAC;IAC9B,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAWd,CAAC,CAAC,OAAqD,EAAE,EAAE,CAC7D,CAAC,GAAiC,EAAE,EAAE,CACpC,GAAG,CAAC,IAAI,CACN,OAAO,OAAO,KAAK,SAAS;IAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC;IACrD,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CACtD,CAAQ,CAAC"}
1
+ {"version":3,"file":"AdoptPolicy.js","sourceRoot":"","sources":["../src/AdoptPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,IAAI,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,WAAY,SAAQ,OAAO,CAAC,OAAO,EAAwB,CACtE,aAAa,CACd;CAAG;AAEJ;;;;;;GAMG;AACH,MAAM,OAAO,kBAAmB,SAAQ,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAS3E;CAAG;AAEL;;;;;;;;;GASG;AACH,MAAM,UAAU,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,CAAC,MAAM,OAAO,GAGhB,MAAM,CAAC,MAAM,CACf,CAAmB,KAAQ,EAAK,EAAE;IAChC,MAAM,MAAM,GAAG,EAAE,GAAG,KAAK,EAAO,CAAC;IACjC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE;QACxC,KAAK,EAAE,IAAI;QACX,UAAU,EAAE,KAAK;QACjB,QAAQ,EAAE,KAAK;QACf,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,EACD;IACE,EAAE,EAAE,CAAC,KAAc,EAAW,EAAE,CAC9B,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAAa,CAAC,UAAU,CAAC,KAAK,IAAI;CACtC,CACF,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAmB,KAAQ,EAAK,EAAE;IAC5D,MAAM,GAAG,GAAQ,EAAE,GAAG,KAAK,EAAE,CAAC;IAC9B,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,UAAU,CAAC,CAAC;IAC9C,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAWd,CAAC,CAAC,UAAwD,IAAI,EAAE,EAAE,CACpE,CAAC,GAAiC,EAAE,EAAE,CACpC,GAAG,CAAC,IAAI,CACN,OAAO,OAAO,KAAK,SAAS;IAC1B,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,OAAO,IAAI,IAAI,CAAC;IACrD,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC,WAAW,EAAE,OAAO,CAAC,CACtD,CAAQ,CAAC"}
package/lib/Binding.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as Context from "effect/Context";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Layer from "effect/Layer";
4
+ import type { Input } from "./Input.ts";
4
5
  import type { ResourceLike } from "./Resource.ts";
5
6
  import { RuntimeContext } from "./RuntimeContext.ts";
6
7
  export interface ServiceLike {
@@ -13,7 +14,10 @@ export interface Service<Self, Identifier extends string, Shape extends (...args
13
14
  new (_: never): ServiceShape<Identifier, Shape>;
14
15
  bind: <Req = never>(...args: BindParameters<Parameters<Shape>, Req>) => Effect.Effect<Effect.Success<ReturnType<Shape>>, Effect.Error<ReturnType<Shape>>, Self | Effect.Services<ReturnType<Shape>> | Req>;
15
16
  }
16
- type BindParameters<Parameters extends any[], Req = never> = Parameters extends [infer First, ...infer Rest] ? [First | Effect.Effect<First, never, Req>, ...BindParameters<Rest, Req>] : [];
17
+ type BindParameters<Parameters extends any[], Req = never> = Parameters extends [infer First, ...infer Rest] ? [
18
+ Input<First> | Effect.Effect<First, never, Req>,
19
+ ...BindParameters<Rest, Req>
20
+ ] : [];
17
21
  /**
18
22
  * Creates a runtime binding service.
19
23
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Binding.d.ts","sourceRoot":"","sources":["../src/Binding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAMtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAIrD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,YAAY,CAC3B,UAAU,SAAS,MAAM,EACzB,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAE9D,SAAQ,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,WAAW;CAAG;AAEvE,MAAM,WAAW,OAAO,CACtB,IAAI,EACJ,UAAU,SAAS,MAAM,EACzB,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAE9D,SAAQ,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,WAAW;IACjD,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAChD,IAAI,EAAE,CAAC,GAAG,GAAG,KAAK,EAChB,GAAG,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,KAC5C,MAAM,CAAC,MAAM,CAChB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EACjC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAC/B,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAChD,CAAC;CACH;AAED,KAAK,cAAc,CACjB,UAAU,SAAS,GAAG,EAAE,EACxB,GAAG,GAAG,KAAK,IACT,UAAU,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,GAC/C,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,GACxE,EAAE,CAAC;AAEP;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,GACjB,IAAI,EAAE,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,QACpE,UAAU,SAAS,MAAM,EAAE,IAAI,UAAU;oBAOtB,UAAU,CAAC,KAAK,CAAC;CAYpC,CAAC;AAEJ,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,WAAW,CAC1B,UAAU,SAAS,MAAM,EACzB,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAE9D,SAAQ,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,UAAU;CAAG;AAEtE,MAAM,WAAW,MAAM,CACrB,EAAE,CAAC,GAAG,CAAC,IAAI,EACX,EAAE,CAAC,GAAG,CAAC,UAAU,SAAS,MAAM,EAChC,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CACrE,SAAQ,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;IACzC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAC/C,KAAK,EAAE;QACL,OAAO,CACL,EAAE,EAAE,CACF,GAAG,EAAE,YAAY,EACjB,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KACvB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GACvB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,CAAC,GAAG,GAAG,KAAK,EAChB,EAAE,EAAE,MAAM,CAAC,MAAM,CACf,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EACtE,KAAK,EACL,GAAG,CACJ,GACA,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;KAClC,CAAC;IACF,IAAI,CACF,GAAG,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,GACzB,MAAM,CAAC,MAAM,CACd,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EACjC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAC/B,IAAI,GAAG,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAC3D,CAAC;CACH;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,MAAM,GAChB,IAAI,EAAE,KAAK,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,QACrE,UAAU,SAAS,MAAM,EACxB,YAAY,UAAU,KACrB,MAAM,CAAC,IAAI,EAAE,UAAU,UAAU,GAAG,EAAE,KAAK,CAmF7C,CAAC"}
1
+ {"version":3,"file":"Binding.d.ts","sourceRoot":"","sources":["../src/Binding.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Binding.js","sourceRoot":"","sources":["../src/Binding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Binding.js","sourceRoot":"","sources":["../src/Binding.ts"],"names":[],"mappings":"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"}
@@ -347,7 +347,7 @@ export declare const AiGateway: import("../../Resource.ts").ResourceClassWithMet
347
347
  * Bind this gateway to the surrounding Worker, returning an Effect-native
348
348
  * client for the runtime AI Gateway binding.
349
349
  */
350
- readonly bind: (<Req = never>(args_0: AiGateway | Effect.Effect<AiGateway, never, Req>) => Effect.Effect<import("./AiGatewayBinding.ts").AiGatewayClient, never, AiGatewayBinding | Req>) & ((gateway: AiGateway) => Effect.Effect<any, any, any>);
350
+ readonly bind: (<Req = never>(args_0: import("../../Input.ts").Input<AiGateway> | Effect.Effect<AiGateway, never, Req>) => Effect.Effect<import("./AiGatewayBinding.ts").AiGatewayClient, never, AiGatewayBinding | Req>) & ((gateway: AiGateway) => Effect.Effect<any, any, any>);
351
351
  }>;
352
352
  export declare const AiGatewayProvider: () => import("effect/Layer").Layer<Provider.Provider<AiGateway>, never, import("effect/unstable/http/HttpClient").HttpClient | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment>;
353
353
  //# sourceMappingURL=AiGateway.d.ts.map
@@ -21,11 +21,20 @@ export type ApiTokenPermissionGroupRef = PermissionGroupName | {
21
21
  value?: string;
22
22
  };
23
23
  };
24
+ /**
25
+ * Value of a resource entry in an {@link ApiTokenPolicy}. Usually `"*"`, but
26
+ * account-owned tokens must nest zone resources under the account resource —
27
+ * e.g. `{ "com.cloudflare.api.account.<id>": { "com.cloudflare.api.account.zone.*": "*" } }`
28
+ * — so a nested object is also allowed.
29
+ */
30
+ export type ApiTokenResourceScope = string | {
31
+ [K in ApiTokenResourceKey]?: string;
32
+ };
24
33
  export interface ApiTokenPolicy {
25
34
  effect: "allow" | "deny";
26
35
  permissionGroups: ApiTokenPermissionGroupRef[];
27
36
  resources: {
28
- [K in ApiTokenResourceKey]?: string;
37
+ [K in ApiTokenResourceKey]?: ApiTokenResourceScope;
29
38
  };
30
39
  }
31
40
  export interface ApiTokenCondition {
@@ -1 +1 @@
1
- {"version":3,"file":"Common.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/Common.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAC3B,8BAA8B,MAAM,EAAE,GACtC,mCAAmC,MAAM,EAAE,GAC3C,iCAAiC,MAAM,EAAE,GACzC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAClC,mBAAmB,GACnB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE5D,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,gBAAgB,EAAE,0BAA0B,EAAE,CAAC;IAC/C,SAAS,EAAE;SAAG,CAAC,IAAI,mBAAmB,CAAC,CAAC,EAAE,MAAM;KAAE,CAAC;CACpD;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE;QACV,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,cAAc,EAAE,GAAG,SAAS,EACnC,UAAU;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,EAAE,KACpC,cAAc,EAGhB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,gBAAgB,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;IAC5E,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,KAAK,0BAA0B;;;;;;cA1ErC,MAAM;gBAAU,MAAM;;CAuFtD,CAAC;AAaF,eAAO,MAAM,eAAe,GAAI,UAAU,cAAc,EAAE,KAAG,cAAc,EAKtE,CAAC;AAEN,eAAO,MAAM,iBAAiB,GAAI,UAAU,cAAc,EAAE,KAAG,MAW5D,CAAC;AAEJ,eAAO,MAAM,oBAAoB,GAC/B,WAAW,iBAAiB,GAAG,SAAS,KACvC,MAIC,CAAC;AAEL,eAAO,MAAM,qBAAqB,GAChC,WAAW,iBAAiB,GAAG,SAAS;;;;;aAW3B,CAAC"}
1
+ {"version":3,"file":"Common.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/Common.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,uBAAuB,CAAC;AAE/B;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAC3B,8BAA8B,MAAM,EAAE,GACtC,mCAAmC,MAAM,EAAE,GAC3C,iCAAiC,MAAM,EAAE,GACzC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElB;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAClC,mBAAmB,GACnB;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN;KAAG,CAAC,IAAI,mBAAmB,CAAC,CAAC,EAAE,MAAM;CAAE,CAAC;AAE5C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,gBAAgB,EAAE,0BAA0B,EAAE,CAAC;IAC/C,SAAS,EAAE;SAAG,CAAC,IAAI,mBAAmB,CAAC,CAAC,EAAE,qBAAqB;KAAE,CAAC;CACnE;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE;QACV,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;CACH;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;IAC5B,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GAAG;IAC5B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,cAAc,EAAE,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,OAAO,cAAc,EAAE,GAAG,SAAS,EACnC,UAAU;IAAE,IAAI,EAAE,eAAe,CAAA;CAAE,EAAE,KACpC,cAAc,EAGhB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,gBAAgB,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE;YAAE,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,EAAE,CAAC;IAC5E,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,KAAK,0BAA0B;;;;;;cApFrC,MAAM;gBAAU,MAAM;;CAiGtD,CAAC;AAaF,eAAO,MAAM,eAAe,GAAI,UAAU,cAAc,EAAE,KAAG,cAAc,EAKtE,CAAC;AAEN,eAAO,MAAM,iBAAiB,GAAI,UAAU,cAAc,EAAE,KAAG,MAW5D,CAAC;AAEJ,eAAO,MAAM,oBAAoB,GAC/B,WAAW,iBAAiB,GAAG,SAAS,KACvC,MAIC,CAAC;AAEL,eAAO,MAAM,qBAAqB,GAChC,WAAW,iBAAiB,GAAG,SAAS;;;;;aAW3B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Common.js","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/Common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Common.js","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/Common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
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 * as Output from "../../Output.ts";
8
+ import { RuntimeContext } from "../../RuntimeContext.ts";
9
+ import { AccountApiToken } from "../ApiToken/AccountApiToken.ts";
10
+ import type { ApiTokenPermissionGroupRef } from "../ApiToken/Common.ts";
11
+ import type { Zone } from "../Zone/Zone.ts";
12
+ /**
13
+ * Runtime accessor for a DNS binding's token, obtained by binding the
14
+ * {@link AccountApiToken}'s `value` output in the Worker's Init phase. Reads the
15
+ * value back from the Worker's environment at runtime. DNS record operations
16
+ * are zone-scoped (the `zoneId` is passed per call), so the account id is not
17
+ * needed at runtime.
18
+ */
19
+ export interface DnsToken {
20
+ /** The token's plaintext value (injected as a `secret_text` binding). */
21
+ value: Effect.Effect<Redacted.Redacted<string>>;
22
+ }
23
+ /**
24
+ * Bind an {@link AccountApiToken}'s `value` output into the Worker (as a
25
+ * `secret_text` binding) and return the {@link DnsToken} accessor.
26
+ */
27
+ export declare const bindDnsToken: (token: AccountApiToken) => Effect.Effect<{
28
+ value: Output.Accessor<Redacted.Redacted<string>>;
29
+ }, never, never>;
30
+ /**
31
+ * Resolve credentials from a bound token and provide them (plus the
32
+ * fetch-based HTTP client) to a raw SDK operation.
33
+ */
34
+ export declare const authorizeDns: (token: DnsToken) => <A, E>(eff: Effect.Effect<A, E, Credentials | HttpClient>) => Effect.Effect<A, E, RuntimeContext>;
35
+ /**
36
+ * Shared runtime body for a DNS binding: create a token scoped to the requested
37
+ * zone, attach the (narrow) policy, bind the token's value and the zone's id
38
+ * into the Worker, then build the client. Pass the result to
39
+ * `Layer.effect(<Binding>, ...)`.
40
+ *
41
+ * The zone's `zoneId` is bound into the Worker at init time, so the resulting
42
+ * client closes over it and callers never pass it per request — the
43
+ * provisioned token only grants access to that one zone anyway.
44
+ */
45
+ export declare const makeDnsClient: <C>(Policy: Binding.Policy<any, any, (token: AccountApiToken, zone: Zone) => Effect.Effect<void>>, tokenId: string, makeClient: (token: DnsToken, zoneId: Effect.Effect<string>) => C) => Effect.Effect<(zone: Zone) => Effect.Effect<C, never, never>, never, any>;
46
+ /**
47
+ * Build the deploy-time policy layer for a DNS binding: attach an allow policy
48
+ * with the given permission groups, scoped to the requested zone
49
+ * (`com.cloudflare.api.account.zone.<zoneId>`).
50
+ */
51
+ export declare const makeDnsPolicyLive: <Self, Id extends string>(Policy: Binding.Policy<Self, Id, (token: AccountApiToken, zone: Zone) => Effect.Effect<void>>, sid: string, permissionGroups: ApiTokenPermissionGroupRef[]) => Layer.Layer<Self, never, never>;
52
+ //# sourceMappingURL=DnsBinding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DnsBinding.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Dns/DnsBinding.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,EAAE,KAAK,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,KAAK,OAAO,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,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,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB,yEAAyE;IACzE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CACjD;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,eAAe;;gBAI/C,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,YAAY,GACtB,OAAO,QAAQ,MACf,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;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAC7B,QAAQ,OAAO,CAAC,MAAM,CACpB,GAAG,EACH,GAAG,EACH,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAC5D,EACD,SAAS,MAAM,EACf,YAAY,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,8EAY/D,CAAC;AAEL;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,IAAI,EAAE,EAAE,SAAS,MAAM,EACvD,QAAQ,OAAO,CAAC,MAAM,CACpB,IAAI,EACJ,EAAE,EACF,CAAC,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAC5D,EACD,KAAK,MAAM,EACX,kBAAkB,0BAA0B,EAAE,oCAoB7C,CAAC"}
@@ -0,0 +1,59 @@
1
+ import { Credentials, fromApiToken, } 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 * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
6
+ import {} from "effect/unstable/http/HttpClient";
7
+ import * as Output from "../../Output.js";
8
+ import { RuntimeContext } from "../../RuntimeContext.js";
9
+ import { AccountApiToken } from "../ApiToken/AccountApiToken.js";
10
+ /**
11
+ * Bind an {@link AccountApiToken}'s `value` output into the Worker (as a
12
+ * `secret_text` binding) and return the {@link DnsToken} accessor.
13
+ */
14
+ export const bindDnsToken = (token) => Effect.gen(function* () {
15
+ const value = yield* token.value;
16
+ return { value };
17
+ });
18
+ /**
19
+ * Resolve credentials from a bound token and provide them (plus the
20
+ * fetch-based HTTP client) to a raw SDK operation.
21
+ */
22
+ export const authorizeDns = (token) => (eff) => token.value.pipe(Effect.flatMap((value) => eff.pipe(Effect.provide(fromApiToken({ apiToken: Redacted.value(value) }).pipe(Layer.provideMerge(FetchHttpClient.layer))))));
23
+ /**
24
+ * Shared runtime body for a DNS binding: create a token scoped to the requested
25
+ * zone, attach the (narrow) policy, bind the token's value and the zone's id
26
+ * into the Worker, then build the client. Pass the result to
27
+ * `Layer.effect(<Binding>, ...)`.
28
+ *
29
+ * The zone's `zoneId` is bound into the Worker at init time, so the resulting
30
+ * client closes over it and callers never pass it per request — the
31
+ * provisioned token only grants access to that one zone anyway.
32
+ */
33
+ export const makeDnsClient = (Policy, tokenId, makeClient) => Effect.gen(function* () {
34
+ const Token = yield* AccountApiToken;
35
+ const attach = yield* Policy;
36
+ return Effect.fn(function* (zone) {
37
+ const token = yield* Token(tokenId);
38
+ yield* attach(token, zone);
39
+ const zoneId = yield* zone.zoneId;
40
+ return makeClient(yield* bindDnsToken(token), zoneId);
41
+ });
42
+ });
43
+ /**
44
+ * Build the deploy-time policy layer for a DNS binding: attach an allow policy
45
+ * with the given permission groups, scoped to the requested zone
46
+ * (`com.cloudflare.api.account.zone.<zoneId>`).
47
+ */
48
+ export const makeDnsPolicyLive = (Policy, sid, permissionGroups) => Policy.layer.succeed((_host, token, zone) => token.bind `${sid}(${zone})`({
49
+ policies: [
50
+ {
51
+ effect: "allow",
52
+ permissionGroups,
53
+ resources: zone.zoneId.pipe(Output.flatMap((zoneId) => Output.interpolate `com.cloudflare.api.account.zone.${zoneId}`), Output.map((zoneId) => ({
54
+ [zoneId]: "*",
55
+ }))),
56
+ },
57
+ ],
58
+ }));
59
+ //# sourceMappingURL=DnsBinding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DnsBinding.js","sourceRoot":"","sources":["../../../src/Cloudflare/Dns/DnsBinding.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import type { GetRecordError, GetRecordResponse, ListRecordsError, ListRecordsRequest, ListRecordsResponse } from "@distilled.cloud/cloudflare/dns";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import * as Binding from "../../Binding.ts";
5
+ import type { RuntimeContext } from "../../RuntimeContext.ts";
6
+ import type { AccountApiToken } from "../ApiToken/AccountApiToken.ts";
7
+ import type { Zone } from "../Zone/Zone.ts";
8
+ import { type DnsToken } from "./DnsBinding.ts";
9
+ /** List-records request, minus the zone id (bound at `.bind(zone)` time). */
10
+ export type ListRecordsRequestInput = Omit<ListRecordsRequest, "zoneId">;
11
+ /**
12
+ * Read-only DNS record operations. Backed by the `DNS Read` permission group.
13
+ * The zone is fixed when the client is bound, so no `zoneId` is passed per call.
14
+ */
15
+ export interface DnsReadClient {
16
+ /** Fetch a single DNS record by id. */
17
+ getDnsRecord(dnsRecordId: string): Effect.Effect<GetRecordResponse, GetRecordError, RuntimeContext>;
18
+ /** List the DNS records in the bound zone. */
19
+ listDnsRecords(request?: ListRecordsRequestInput): Effect.Effect<ListRecordsResponse, ListRecordsError, RuntimeContext>;
20
+ }
21
+ /** Build the read-only client over a bound token and zone id. */
22
+ export declare const dnsReadClient: (token: DnsToken, zoneId: Effect.Effect<string>) => DnsReadClient;
23
+ declare const DnsRead_base: Binding.Service<DnsRead, "Cloudflare.DnsRead", (zone: Zone) => Effect.Effect<DnsReadClient>> & {
24
+ bind: (zone: Zone) => Effect.Effect<any, any, any>;
25
+ };
26
+ /**
27
+ * Binding that lets a Worker read Cloudflare DNS records at runtime.
28
+ *
29
+ * Creates a least-privilege {@link AccountApiToken} with only the `DNS Read`
30
+ * permission, scoped to the single zone passed to `bind`, and binds its value
31
+ * into the Worker so runtime code can authenticate.
32
+ *
33
+ * @binding
34
+ *
35
+ * @section Reading DNS records at runtime
36
+ * @example Read records from inside a Worker
37
+ * Bind the client in the Worker's Init phase and provide {@link DnsReadLive}.
38
+ * The zone is fixed by `.bind(zone)` — the provisioned token only grants
39
+ * access to that zone, so calls take no `zoneId`. Pass the {@link Zone}
40
+ * resource directly (it's an `Effect`), or `yield* Zone` for a resolved value.
41
+ * ```typescript
42
+ * import * as Cloudflare from "alchemy/Cloudflare";
43
+ * import * as Effect from "effect/Effect";
44
+ * import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
45
+ *
46
+ * const Zone = Cloudflare.Zone("MyZone", { name: "example.com" });
47
+ *
48
+ * export class DnsReaderWorker extends Cloudflare.Worker<DnsReaderWorker>()(
49
+ * "DnsReaderWorker",
50
+ * { main: import.meta.filename },
51
+ * Effect.gen(function* () {
52
+ * // Init phase — bind the read client scoped to the zone.
53
+ * const dns = yield* Cloudflare.DnsRead.bind(Zone);
54
+ *
55
+ * return {
56
+ * fetch: Effect.gen(function* () {
57
+ * const { result } = yield* dns.listDnsRecords({ type: "A" });
58
+ * const record = yield* dns.getDnsRecord(result[0].id);
59
+ * return yield* HttpServerResponse.json({ id: record.id });
60
+ * }),
61
+ * };
62
+ * }).pipe(Effect.provide(Cloudflare.DnsReadLive)),
63
+ * ) {}
64
+ * ```
65
+ */
66
+ export declare class DnsRead extends DnsRead_base {
67
+ }
68
+ declare const DnsReadPolicy_base: Binding.Policy<DnsReadPolicy, "Policy<Cloudflare.DnsRead>", (token: AccountApiToken, zone: Zone) => Effect.Effect<void>>;
69
+ /**
70
+ * Deploy-time policy for {@link DnsRead}. Attaches the `DNS Read` permission to
71
+ * the token via its binding contract.
72
+ */
73
+ export declare class DnsReadPolicy extends DnsReadPolicy_base {
74
+ }
75
+ /** Runtime layer for {@link DnsRead}. */
76
+ export declare const DnsReadLive: Layer.Layer<DnsRead, never, any>;
77
+ /** Live deploy-time policy layer for {@link DnsReadPolicy}. */
78
+ export declare const DnsReadPolicyLive: Layer.Layer<DnsReadPolicy, never, never>;
79
+ export {};
80
+ //# sourceMappingURL=DnsRead.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DnsRead.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Dns/DnsRead.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAEL,KAAK,QAAQ,EAGd,MAAM,iBAAiB,CAAC;AAEzB,6EAA6E;AAC7E,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;AAEzE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,YAAY,CACV,WAAW,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,CAAC,iBAAiB,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;IACpE,8CAA8C;IAC9C,cAAc,CACZ,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,CAAC,CAAC;CACzE;AAED,iEAAiE;AACjE,eAAO,MAAM,aAAa,GACxB,OAAO,QAAQ,EACf,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAC5B,aAkBF,CAAC;kFA4CO,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;;;AA1C9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,OAAQ,SAAQ,YAGJ;CAAG;sGAQlB,eAAe,QAAQ,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAN7D;;;GAGG;AACH,qBAAa,aAAc,SAAQ,kBAGV;CAAG;AAE5B,yCAAyC;AACzC,eAAO,MAAM,WAAW,kCAGvB,CAAC;AAEF,+DAA+D;AAC/D,eAAO,MAAM,iBAAiB,0CAI7B,CAAC"}
@@ -0,0 +1,70 @@
1
+ import * as dns from "@distilled.cloud/cloudflare/dns";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Layer from "effect/Layer";
4
+ import * as Binding from "../../Binding.js";
5
+ import { authorizeDns, makeDnsClient, makeDnsPolicyLive, } from "./DnsBinding.js";
6
+ /** Build the read-only client over a bound token and zone id. */
7
+ export const dnsReadClient = (token, zoneId) => {
8
+ const authorize = authorizeDns(token);
9
+ return {
10
+ getDnsRecord: Effect.fn("Cloudflare.Dns.getDnsRecord")(function* (dnsRecordId) {
11
+ return yield* authorize(dns.getRecord({ zoneId: yield* zoneId, dnsRecordId }));
12
+ }),
13
+ listDnsRecords: Effect.fn("Cloudflare.Dns.listDnsRecords")(function* (request) {
14
+ return yield* authorize(dns.listRecords({ zoneId: yield* zoneId, ...request }));
15
+ }),
16
+ };
17
+ };
18
+ /**
19
+ * Binding that lets a Worker read Cloudflare DNS records at runtime.
20
+ *
21
+ * Creates a least-privilege {@link AccountApiToken} with only the `DNS Read`
22
+ * permission, scoped to the single zone passed to `bind`, and binds its value
23
+ * into the Worker so runtime code can authenticate.
24
+ *
25
+ * @binding
26
+ *
27
+ * @section Reading DNS records at runtime
28
+ * @example Read records from inside a Worker
29
+ * Bind the client in the Worker's Init phase and provide {@link DnsReadLive}.
30
+ * The zone is fixed by `.bind(zone)` — the provisioned token only grants
31
+ * access to that zone, so calls take no `zoneId`. Pass the {@link Zone}
32
+ * resource directly (it's an `Effect`), or `yield* Zone` for a resolved value.
33
+ * ```typescript
34
+ * import * as Cloudflare from "alchemy/Cloudflare";
35
+ * import * as Effect from "effect/Effect";
36
+ * import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
37
+ *
38
+ * const Zone = Cloudflare.Zone("MyZone", { name: "example.com" });
39
+ *
40
+ * export class DnsReaderWorker extends Cloudflare.Worker<DnsReaderWorker>()(
41
+ * "DnsReaderWorker",
42
+ * { main: import.meta.filename },
43
+ * Effect.gen(function* () {
44
+ * // Init phase — bind the read client scoped to the zone.
45
+ * const dns = yield* Cloudflare.DnsRead.bind(Zone);
46
+ *
47
+ * return {
48
+ * fetch: Effect.gen(function* () {
49
+ * const { result } = yield* dns.listDnsRecords({ type: "A" });
50
+ * const record = yield* dns.getDnsRecord(result[0].id);
51
+ * return yield* HttpServerResponse.json({ id: record.id });
52
+ * }),
53
+ * };
54
+ * }).pipe(Effect.provide(Cloudflare.DnsReadLive)),
55
+ * ) {}
56
+ * ```
57
+ */
58
+ export class DnsRead extends Binding.Service()("Cloudflare.DnsRead") {
59
+ }
60
+ /**
61
+ * Deploy-time policy for {@link DnsRead}. Attaches the `DNS Read` permission to
62
+ * the token via its binding contract.
63
+ */
64
+ export class DnsReadPolicy extends Binding.Policy()("Cloudflare.DnsRead") {
65
+ }
66
+ /** Runtime layer for {@link DnsRead}. */
67
+ export const DnsReadLive = Layer.effect(DnsRead, makeDnsClient(DnsReadPolicy, "DnsReadToken", dnsReadClient));
68
+ /** Live deploy-time policy layer for {@link DnsReadPolicy}. */
69
+ export const DnsReadPolicyLive = makeDnsPolicyLive(DnsReadPolicy, "Cloudflare.DnsRead", ["DNS Read"]);
70
+ //# sourceMappingURL=DnsRead.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DnsRead.js","sourceRoot":"","sources":["../../../src/Cloudflare/Dns/DnsRead.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,GAAG,MAAM,iCAAiC,CAAC;AACvD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAI5C,OAAO,EACL,YAAY,EAEZ,aAAa,EACb,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAoBzB,iEAAiE;AACjE,MAAM,CAAC,MAAM,aAAa,GAAG,CAC3B,KAAe,EACf,MAA6B,EACd,EAAE;IACjB,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO;QACL,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,6BAA6B,CAAC,CACpD,QAAQ,CAAC,EAAE,WAAW;YACpB,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,GAAG,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CACtD,CAAC;QACJ,CAAC,CACF;QACD,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC,+BAA+B,CAAC,CACxD,QAAQ,CAAC,EAAE,OAAO;YAChB,OAAO,KAAK,CAAC,CAAC,SAAS,CACrB,GAAG,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC,CACvD,CAAC;QACJ,CAAC,CACF;KACF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,OAAO,OAAQ,SAAQ,OAAO,CAAC,OAAO,EAGzC,CAAC,oBAAoB,CAAC;CAAG;AAE5B;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,OAAO,CAAC,MAAM,EAG9C,CAAC,oBAAoB,CAAC;CAAG;AAE5B,yCAAyC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CACrC,OAAO,EACP,aAAa,CAAC,aAAa,EAAE,cAAc,EAAE,aAAa,CAAC,CAC5D,CAAC;AAEF,+DAA+D;AAC/D,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAChD,aAAa,EACb,oBAAoB,EACpB,CAAC,UAAU,CAAC,CACb,CAAC"}
@@ -0,0 +1,79 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import * as Binding from "../../Binding.ts";
4
+ import type { AccountApiToken } from "../ApiToken/AccountApiToken.ts";
5
+ import type { Zone } from "../Zone/Zone.ts";
6
+ import { type DnsToken } from "./DnsBinding.ts";
7
+ import { type DnsReadClient } from "./DnsRead.ts";
8
+ import { type DnsWriteClient } from "./DnsWrite.ts";
9
+ /** Combined read + write DNS record operations. */
10
+ export interface DnsReadWriteClient extends DnsReadClient, DnsWriteClient {
11
+ }
12
+ /** Build the combined read + write client over a bound token and zone id. */
13
+ export declare const dnsReadWriteClient: (token: DnsToken, zoneId: Effect.Effect<string>) => DnsReadWriteClient;
14
+ declare const DnsReadWrite_base: Binding.Service<DnsReadWrite, "Cloudflare.DnsReadWrite", (zone: Zone) => Effect.Effect<DnsReadWriteClient>> & {
15
+ bind: (zone: Zone) => Effect.Effect<any, any, any>;
16
+ };
17
+ /**
18
+ * Binding that lets a Worker perform the full Cloudflare DNS record CRUD
19
+ * surface at runtime.
20
+ *
21
+ * Creates a least-privilege {@link AccountApiToken} with both the `DNS Read`
22
+ * and `DNS Write` permissions, scoped to the single zone passed to `bind`, and
23
+ * binds its value into the Worker so runtime code can authenticate.
24
+ *
25
+ * @binding
26
+ *
27
+ * @section Managing DNS records at runtime
28
+ * @example Full CRUD from inside a Worker
29
+ * Bind the client in the Worker's Init phase and provide
30
+ * {@link DnsReadWriteLive}. The zone is fixed by `.bind(zone)` — the
31
+ * provisioned token only grants access to that zone, so calls take no
32
+ * `zoneId`. Pass the {@link Zone} resource directly (it's an `Effect`), or
33
+ * `yield* Zone` for a resolved value.
34
+ * ```typescript
35
+ * import * as Cloudflare from "alchemy/Cloudflare";
36
+ * import * as Effect from "effect/Effect";
37
+ * import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
38
+ *
39
+ * const Zone = Cloudflare.Zone("MyZone", { name: "example.com" });
40
+ *
41
+ * export class DnsWorker extends Cloudflare.Worker<DnsWorker>()(
42
+ * "DnsWorker",
43
+ * { main: import.meta.filename },
44
+ * Effect.gen(function* () {
45
+ * // Init phase — bind the full CRUD client scoped to the zone.
46
+ * const dns = yield* Cloudflare.DnsReadWrite.bind(Zone);
47
+ *
48
+ * return {
49
+ * fetch: Effect.gen(function* () {
50
+ * const { result } = yield* dns.createDnsRecord({
51
+ * type: "A",
52
+ * name: "app.example.com",
53
+ * content: "192.0.2.1",
54
+ * ttl: 1,
55
+ * });
56
+ * const record = yield* dns.getDnsRecord(result.id);
57
+ * yield* dns.deleteDnsRecord(result.id);
58
+ * return yield* HttpServerResponse.json({ id: record.id });
59
+ * }),
60
+ * };
61
+ * }).pipe(Effect.provide(Cloudflare.DnsReadWriteLive)),
62
+ * ) {}
63
+ * ```
64
+ */
65
+ export declare class DnsReadWrite extends DnsReadWrite_base {
66
+ }
67
+ declare const DnsReadWritePolicy_base: Binding.Policy<DnsReadWritePolicy, "Policy<Cloudflare.DnsReadWrite>", (token: AccountApiToken, zone: Zone) => Effect.Effect<void>>;
68
+ /**
69
+ * Deploy-time policy for {@link DnsReadWrite}. Attaches both the `DNS Read` and
70
+ * `DNS Write` permissions to the token via its binding contract.
71
+ */
72
+ export declare class DnsReadWritePolicy extends DnsReadWritePolicy_base {
73
+ }
74
+ /** Runtime layer for {@link DnsReadWrite}. */
75
+ export declare const DnsReadWriteLive: Layer.Layer<DnsReadWrite, never, any>;
76
+ /** Live deploy-time policy layer for {@link DnsReadWritePolicy}. */
77
+ export declare const DnsReadWritePolicyLive: Layer.Layer<DnsReadWritePolicy, never, never>;
78
+ export {};
79
+ //# sourceMappingURL=DnsReadWrite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DnsReadWrite.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/Dns/DnsReadWrite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,KAAK,QAAQ,EAGd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAkB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpE,mDAAmD;AACnD,MAAM,WAAW,kBAAmB,SAAQ,aAAa,EAAE,cAAc;CAAG;AAE5E,6EAA6E;AAC7E,eAAO,MAAM,kBAAkB,GAC7B,OAAO,QAAQ,EACf,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAC5B,kBAGD,CAAC;iGAoDM,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;;;AAlDnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,qBAAa,YAAa,SAAQ,iBAGJ;CAAG;qHAQvB,eAAe,QAAQ,IAAI,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAN7D;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,uBAGV;CAAG;AAEjC,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,uCAG5B,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,sBAAsB,+CAIlC,CAAC"}
@@ -0,0 +1,72 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import * as Binding from "../../Binding.js";
4
+ import { makeDnsClient, makeDnsPolicyLive, } from "./DnsBinding.js";
5
+ import { dnsReadClient } from "./DnsRead.js";
6
+ import { dnsWriteClient } from "./DnsWrite.js";
7
+ /** Build the combined read + write client over a bound token and zone id. */
8
+ export const dnsReadWriteClient = (token, zoneId) => ({
9
+ ...dnsReadClient(token, zoneId),
10
+ ...dnsWriteClient(token, zoneId),
11
+ });
12
+ /**
13
+ * Binding that lets a Worker perform the full Cloudflare DNS record CRUD
14
+ * surface at runtime.
15
+ *
16
+ * Creates a least-privilege {@link AccountApiToken} with both the `DNS Read`
17
+ * and `DNS Write` permissions, scoped to the single zone passed to `bind`, and
18
+ * binds its value into the Worker so runtime code can authenticate.
19
+ *
20
+ * @binding
21
+ *
22
+ * @section Managing DNS records at runtime
23
+ * @example Full CRUD from inside a Worker
24
+ * Bind the client in the Worker's Init phase and provide
25
+ * {@link DnsReadWriteLive}. The zone is fixed by `.bind(zone)` — the
26
+ * provisioned token only grants access to that zone, so calls take no
27
+ * `zoneId`. Pass the {@link Zone} resource directly (it's an `Effect`), or
28
+ * `yield* Zone` for a resolved value.
29
+ * ```typescript
30
+ * import * as Cloudflare from "alchemy/Cloudflare";
31
+ * import * as Effect from "effect/Effect";
32
+ * import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
33
+ *
34
+ * const Zone = Cloudflare.Zone("MyZone", { name: "example.com" });
35
+ *
36
+ * export class DnsWorker extends Cloudflare.Worker<DnsWorker>()(
37
+ * "DnsWorker",
38
+ * { main: import.meta.filename },
39
+ * Effect.gen(function* () {
40
+ * // Init phase — bind the full CRUD client scoped to the zone.
41
+ * const dns = yield* Cloudflare.DnsReadWrite.bind(Zone);
42
+ *
43
+ * return {
44
+ * fetch: Effect.gen(function* () {
45
+ * const { result } = yield* dns.createDnsRecord({
46
+ * type: "A",
47
+ * name: "app.example.com",
48
+ * content: "192.0.2.1",
49
+ * ttl: 1,
50
+ * });
51
+ * const record = yield* dns.getDnsRecord(result.id);
52
+ * yield* dns.deleteDnsRecord(result.id);
53
+ * return yield* HttpServerResponse.json({ id: record.id });
54
+ * }),
55
+ * };
56
+ * }).pipe(Effect.provide(Cloudflare.DnsReadWriteLive)),
57
+ * ) {}
58
+ * ```
59
+ */
60
+ export class DnsReadWrite extends Binding.Service()("Cloudflare.DnsReadWrite") {
61
+ }
62
+ /**
63
+ * Deploy-time policy for {@link DnsReadWrite}. Attaches both the `DNS Read` and
64
+ * `DNS Write` permissions to the token via its binding contract.
65
+ */
66
+ export class DnsReadWritePolicy extends Binding.Policy()("Cloudflare.DnsReadWrite") {
67
+ }
68
+ /** Runtime layer for {@link DnsReadWrite}. */
69
+ export const DnsReadWriteLive = Layer.effect(DnsReadWrite, makeDnsClient(DnsReadWritePolicy, "DnsReadWriteToken", dnsReadWriteClient));
70
+ /** Live deploy-time policy layer for {@link DnsReadWritePolicy}. */
71
+ export const DnsReadWritePolicyLive = makeDnsPolicyLive(DnsReadWritePolicy, "Cloudflare.DnsReadWrite", ["DNS Read", "DNS Write"]);
72
+ //# sourceMappingURL=DnsReadWrite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DnsReadWrite.js","sourceRoot":"","sources":["../../../src/Cloudflare/Dns/DnsReadWrite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAG5C,OAAO,EAEL,aAAa,EACb,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAsB,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,cAAc,EAAuB,MAAM,eAAe,CAAC;AAKpE,6EAA6E;AAC7E,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,KAAe,EACf,MAA6B,EACT,EAAE,CAAC,CAAC;IACxB,GAAG,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;IAC/B,GAAG,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC;CACjC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO,CAAC,OAAO,EAG9C,CAAC,yBAAyB,CAAC;CAAG;AAEjC;;;GAGG;AACH,MAAM,OAAO,kBAAmB,SAAQ,OAAO,CAAC,MAAM,EAGnD,CAAC,yBAAyB,CAAC;CAAG;AAEjC,8CAA8C;AAC9C,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAC1C,YAAY,EACZ,aAAa,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,CAAC,CAC3E,CAAC;AAEF,oEAAoE;AACpE,MAAM,CAAC,MAAM,sBAAsB,GAAG,iBAAiB,CACrD,kBAAkB,EAClB,yBAAyB,EACzB,CAAC,UAAU,EAAE,WAAW,CAAC,CAC1B,CAAC"}