alchemy 2.0.0-beta.14 → 2.0.0-beta.16

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 (175) hide show
  1. package/bin/alchemy.js +2243 -1359
  2. package/bin/alchemy.js.map +1 -1
  3. package/bin/alchemy.ts +4 -0
  4. package/bin/commands/deploy.ts +0 -1
  5. package/bin/commands/login.ts +6 -3
  6. package/bin/commands/profile.ts +86 -0
  7. package/bin/commands/state.ts +8 -5
  8. package/lib/AWS/Lambda/BucketEventSource.d.ts +1 -1
  9. package/lib/AWS/Lambda/BucketEventSource.d.ts.map +1 -1
  10. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts +1 -1
  11. package/lib/AWS/Lambda/EventBridgeEventSource.d.ts.map +1 -1
  12. package/lib/AWS/Lambda/QueueEventSource.d.ts +1 -1
  13. package/lib/AWS/Lambda/QueueEventSource.d.ts.map +1 -1
  14. package/lib/AWS/Lambda/StreamEventSource.d.ts +1 -1
  15. package/lib/AWS/Lambda/StreamEventSource.d.ts.map +1 -1
  16. package/lib/AWS/Lambda/TableEventSource.d.ts +1 -1
  17. package/lib/AWS/Lambda/TableEventSource.d.ts.map +1 -1
  18. package/lib/AWS/Lambda/TopicEventSource.d.ts +1 -1
  19. package/lib/AWS/Lambda/TopicEventSource.d.ts.map +1 -1
  20. package/lib/Agent/lsp/client.d.ts +2 -2
  21. package/lib/Cli/InkCLI.d.ts +0 -1
  22. package/lib/Cli/InkCLI.d.ts.map +1 -1
  23. package/lib/Cli/InkCLI.js +0 -5
  24. package/lib/Cli/InkCLI.js.map +1 -1
  25. package/lib/Cli/index.d.ts +0 -1
  26. package/lib/Cli/index.d.ts.map +1 -1
  27. package/lib/Cli/index.js +4 -1
  28. package/lib/Cli/index.js.map +1 -1
  29. package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts +57 -0
  30. package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -0
  31. package/lib/Cloudflare/ApiToken/AccountApiToken.js +141 -0
  32. package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -0
  33. package/lib/Cloudflare/ApiToken/Common.d.ts +96 -0
  34. package/lib/Cloudflare/ApiToken/Common.d.ts.map +1 -0
  35. package/lib/Cloudflare/ApiToken/Common.js +61 -0
  36. package/lib/Cloudflare/ApiToken/Common.js.map +1 -0
  37. package/lib/Cloudflare/ApiToken/PermissionGroups.d.ts +1549 -0
  38. package/lib/Cloudflare/ApiToken/PermissionGroups.d.ts.map +1 -0
  39. package/lib/Cloudflare/ApiToken/PermissionGroups.js +1856 -0
  40. package/lib/Cloudflare/ApiToken/PermissionGroups.js.map +1 -0
  41. package/lib/Cloudflare/ApiToken/UserApiToken.d.ts +48 -0
  42. package/lib/Cloudflare/ApiToken/UserApiToken.d.ts.map +1 -0
  43. package/lib/Cloudflare/ApiToken/UserApiToken.js +113 -0
  44. package/lib/Cloudflare/ApiToken/UserApiToken.js.map +1 -0
  45. package/lib/Cloudflare/ApiToken/index.d.ts +5 -0
  46. package/lib/Cloudflare/ApiToken/index.d.ts.map +1 -0
  47. package/lib/Cloudflare/ApiToken/index.js +5 -0
  48. package/lib/Cloudflare/ApiToken/index.js.map +1 -0
  49. package/lib/Cloudflare/Artifacts/Artifacts.d.ts +101 -0
  50. package/lib/Cloudflare/Artifacts/Artifacts.d.ts.map +1 -0
  51. package/lib/Cloudflare/Artifacts/Artifacts.js +92 -0
  52. package/lib/Cloudflare/Artifacts/Artifacts.js.map +1 -0
  53. package/lib/Cloudflare/Artifacts/ArtifactsBinding.d.ts +83 -0
  54. package/lib/Cloudflare/Artifacts/ArtifactsBinding.d.ts.map +1 -0
  55. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js +65 -0
  56. package/lib/Cloudflare/Artifacts/ArtifactsBinding.js.map +1 -0
  57. package/lib/Cloudflare/Artifacts/index.d.ts +3 -0
  58. package/lib/Cloudflare/Artifacts/index.d.ts.map +1 -0
  59. package/lib/Cloudflare/Artifacts/index.js +3 -0
  60. package/lib/Cloudflare/Artifacts/index.js.map +1 -0
  61. package/lib/Cloudflare/Auth/AuthProvider.js +2 -2
  62. package/lib/Cloudflare/Auth/AuthProvider.js.map +1 -1
  63. package/lib/Cloudflare/Container/ContainerBinding.d.ts +1 -1
  64. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  65. package/lib/Cloudflare/Providers.js +6 -1
  66. package/lib/Cloudflare/Providers.js.map +1 -1
  67. package/lib/Cloudflare/StateStore/Api.d.ts +7 -8
  68. package/lib/Cloudflare/StateStore/Api.d.ts.map +1 -1
  69. package/lib/Cloudflare/StateStore/Api.js +6 -4
  70. package/lib/Cloudflare/StateStore/Api.js.map +1 -1
  71. package/lib/Cloudflare/StateStore/State.d.ts +1 -1
  72. package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
  73. package/lib/Cloudflare/StateStore/Store.d.ts +2 -2
  74. package/lib/Cloudflare/StateStore/Store.d.ts.map +1 -1
  75. package/lib/Cloudflare/StateStore/Store.js +6 -4
  76. package/lib/Cloudflare/StateStore/Store.js.map +1 -1
  77. package/lib/Cloudflare/StateStore/Token.d.ts +6 -4
  78. package/lib/Cloudflare/StateStore/Token.d.ts.map +1 -1
  79. package/lib/Cloudflare/StateStore/Token.js +8 -4
  80. package/lib/Cloudflare/StateStore/Token.js.map +1 -1
  81. package/lib/Cloudflare/Workers/InferEnv.d.ts +1 -1
  82. package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
  83. package/lib/Cloudflare/Workers/InferEnv.js +0 -1
  84. package/lib/Cloudflare/Workers/InferEnv.js.map +1 -1
  85. package/lib/Cloudflare/Workers/Worker.d.ts +2 -1
  86. package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
  87. package/lib/Cloudflare/Workers/Worker.js +25 -18
  88. package/lib/Cloudflare/Workers/Worker.js.map +1 -1
  89. package/lib/Cloudflare/index.d.ts +2 -0
  90. package/lib/Cloudflare/index.d.ts.map +1 -1
  91. package/lib/Cloudflare/index.js +2 -0
  92. package/lib/Cloudflare/index.js.map +1 -1
  93. package/lib/Deploy.d.ts +1 -1
  94. package/lib/Deploy.d.ts.map +1 -1
  95. package/lib/Destroy.d.ts +1 -1
  96. package/lib/Destroy.d.ts.map +1 -1
  97. package/lib/GitHub/AuthProvider.d.ts +37 -0
  98. package/lib/GitHub/AuthProvider.d.ts.map +1 -0
  99. package/lib/GitHub/AuthProvider.js +154 -0
  100. package/lib/GitHub/AuthProvider.js.map +1 -0
  101. package/lib/GitHub/Credentials.d.ts +29 -0
  102. package/lib/GitHub/Credentials.d.ts.map +1 -0
  103. package/lib/GitHub/Credentials.js +54 -0
  104. package/lib/GitHub/Credentials.js.map +1 -0
  105. package/lib/GitHub/Providers.d.ts +14 -0
  106. package/lib/GitHub/Providers.d.ts.map +1 -0
  107. package/lib/GitHub/Providers.js +15 -0
  108. package/lib/GitHub/Providers.js.map +1 -0
  109. package/lib/GitHub/Secret.d.ts +8 -10
  110. package/lib/GitHub/Secret.d.ts.map +1 -1
  111. package/lib/GitHub/Secret.js +16 -14
  112. package/lib/GitHub/Secret.js.map +1 -1
  113. package/lib/GitHub/Variable.d.ts +8 -10
  114. package/lib/GitHub/Variable.d.ts.map +1 -1
  115. package/lib/GitHub/Variable.js +12 -13
  116. package/lib/GitHub/Variable.js.map +1 -1
  117. package/lib/GitHub/index.d.ts +3 -0
  118. package/lib/GitHub/index.d.ts.map +1 -1
  119. package/lib/GitHub/index.js +3 -0
  120. package/lib/GitHub/index.js.map +1 -1
  121. package/lib/Output.d.ts.map +1 -1
  122. package/lib/Output.js +4 -0
  123. package/lib/Output.js.map +1 -1
  124. package/lib/Plan.d.ts.map +1 -1
  125. package/lib/Plan.js +4 -0
  126. package/lib/Plan.js.map +1 -1
  127. package/lib/Stack.d.ts +5 -4
  128. package/lib/Stack.d.ts.map +1 -1
  129. package/lib/Stack.js +27 -8
  130. package/lib/Stack.js.map +1 -1
  131. package/lib/State/HttpStateStore.js +1 -1
  132. package/lib/State/HttpStateStore.js.map +1 -1
  133. package/lib/Test/Bun.d.ts +2 -2
  134. package/lib/Test/Bun.d.ts.map +1 -1
  135. package/lib/Test/Bun.js +2 -4
  136. package/lib/Test/Bun.js.map +1 -1
  137. package/lib/Test/Vitest.d.ts +1 -1
  138. package/lib/Test/Vitest.d.ts.map +1 -1
  139. package/lib/Test/Vitest.js +11 -7
  140. package/lib/Test/Vitest.js.map +1 -1
  141. package/lib/cli/index.d.ts +2 -6
  142. package/lib/cli/index.d.ts.map +1 -1
  143. package/lib/cli/index.js +2 -43050
  144. package/lib/cli/index.js.map +1 -1
  145. package/package.json +5 -5
  146. package/src/Cli/InkCLI.tsx +0 -10
  147. package/src/Cli/index.ts +4 -1
  148. package/src/Cloudflare/ApiToken/AccountApiToken.ts +207 -0
  149. package/src/Cloudflare/ApiToken/Common.ts +153 -0
  150. package/src/Cloudflare/ApiToken/PermissionGroups.ts +1910 -0
  151. package/src/Cloudflare/ApiToken/UserApiToken.ts +166 -0
  152. package/src/Cloudflare/ApiToken/index.ts +4 -0
  153. package/src/Cloudflare/Artifacts/Artifacts.ts +139 -0
  154. package/src/Cloudflare/Artifacts/ArtifactsBinding.ts +188 -0
  155. package/src/Cloudflare/Artifacts/index.ts +2 -0
  156. package/src/Cloudflare/Auth/AuthProvider.ts +2 -2
  157. package/src/Cloudflare/Providers.ts +8 -0
  158. package/src/Cloudflare/StateStore/Api.ts +6 -4
  159. package/src/Cloudflare/StateStore/Store.ts +6 -4
  160. package/src/Cloudflare/StateStore/Token.ts +10 -4
  161. package/src/Cloudflare/Workers/InferEnv.ts +5 -4
  162. package/src/Cloudflare/Workers/Worker.ts +12 -1
  163. package/src/Cloudflare/index.ts +2 -0
  164. package/src/GitHub/AuthProvider.ts +309 -0
  165. package/src/GitHub/Credentials.ts +99 -0
  166. package/src/GitHub/Providers.ts +26 -0
  167. package/src/GitHub/Secret.ts +22 -24
  168. package/src/GitHub/Variable.ts +16 -23
  169. package/src/GitHub/index.ts +3 -0
  170. package/src/Output.ts +3 -0
  171. package/src/Plan.ts +3 -0
  172. package/src/Stack.ts +33 -7
  173. package/src/State/HttpStateStore.ts +1 -0
  174. package/src/Test/Bun.ts +2 -2
  175. package/src/Test/Vitest.ts +11 -7
package/bin/alchemy.ts CHANGED
@@ -6,6 +6,7 @@ import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
6
6
 
7
7
  import packageJson from "../package.json" with { type: "json" };
8
8
  import { AlchemyContextLive } from "../src/AlchemyContext.ts";
9
+ import { inkCLI } from "../src/Cli/InkCLI.tsx";
9
10
  import { PlatformServices, runMain } from "../src/Util/PlatformServices.ts";
10
11
 
11
12
  import { handleCancellation } from "./commands/_shared.ts";
@@ -17,6 +18,7 @@ import {
17
18
  } from "./commands/deploy.ts";
18
19
  import { loginCommand } from "./commands/login.ts";
19
20
  import { logsCommand } from "./commands/logs.ts";
21
+ import { profileCommand } from "./commands/profile.ts";
20
22
  import { stateCommand } from "./commands/state.ts";
21
23
  import { tailCommand } from "./commands/tail.ts";
22
24
 
@@ -29,6 +31,7 @@ const root = Command.make("alchemy", {}).pipe(
29
31
  tailCommand,
30
32
  logsCommand,
31
33
  loginCommand,
34
+ profileCommand,
32
35
  stateCommand,
33
36
  ]),
34
37
  );
@@ -42,6 +45,7 @@ const services = Layer.mergeAll(
42
45
  Layer.provideMerge(AlchemyContextLive, PlatformServices),
43
46
  FetchHttpClient.layer,
44
47
  ConfigProvider.layer(ConfigProvider.fromEnv()),
48
+ inkCLI(),
45
49
  );
46
50
 
47
51
  cli.pipe(
@@ -59,7 +59,6 @@ const execStack = Effect.fn(function* ({
59
59
  ConfigProvider.layer(
60
60
  withProfileOverride(yield* loadConfigProvider(envFile), profile),
61
61
  ),
62
- CLI.inkCLI(),
63
62
  Logger.layer([fileLogger("out")]),
64
63
  Layer.succeed(Stage, stage),
65
64
  );
@@ -1,3 +1,4 @@
1
+ import * as Cause from "effect/Cause";
1
2
  import * as Config from "effect/Config";
2
3
  import * as ConfigProvider from "effect/ConfigProvider";
3
4
  import * as Console from "effect/Console";
@@ -51,9 +52,11 @@ export const loginCommand = Command.make(
51
52
  );
52
53
 
53
54
  yield* Effect.gen(function* () {
54
- // Build the stack — this triggers each provider's AuthProviderLayer,
55
- // which registers itself into the shared `authProviders` registry.
56
- yield* stackEffect;
55
+ yield* Effect.catchCause(stackEffect, (cause) =>
56
+ Console.warn(
57
+ `Ignoring error while building stack for login (likely due to missing or broken credentials):\n${Cause.pretty(cause)}`,
58
+ ),
59
+ );
57
60
 
58
61
  const ci = yield* Config.boolean("CI").pipe(Config.withDefault(false));
59
62
  const providers = Object.values(authProviders);
@@ -0,0 +1,86 @@
1
+ import * as ConfigProvider from "effect/ConfigProvider";
2
+ import * as Console from "effect/Console";
3
+ import * as Effect from "effect/Effect";
4
+ import * as Layer from "effect/Layer";
5
+ import * as Logger from "effect/Logger";
6
+ import { Command } from "effect/unstable/cli";
7
+
8
+ import { AuthProviders } from "../../src/Auth/AuthProvider.ts";
9
+ import {
10
+ getProfile,
11
+ readConfig,
12
+ withProfileOverride,
13
+ } from "../../src/Auth/Profile.ts";
14
+ import { AwsAuth } from "../../src/AWS/AuthProvider.ts";
15
+ import { CloudflareAuth } from "../../src/Cloudflare/Auth/AuthProvider.ts";
16
+ import { loadConfigProvider } from "../../src/Util/ConfigProvider.ts";
17
+ import { fileLogger } from "../../src/Util/FileLogger.ts";
18
+
19
+ import { envFile, profile } from "./_shared.ts";
20
+
21
+ const showCommand = Command.make(
22
+ "show",
23
+ { profile, envFile },
24
+ Effect.fnUntraced(function* ({ profile, envFile }) {
25
+ const stored = yield* getProfile(profile);
26
+ if (stored == null) {
27
+ const config = yield* readConfig;
28
+ const names = Object.keys(config.profiles);
29
+ yield* Console.log(`Profile '${profile}' not found.`);
30
+ if (names.length > 0) {
31
+ yield* Console.log(`Available profiles: ${names.sort().join(", ")}`);
32
+ } else {
33
+ yield* Console.log("No profiles configured. Run `alchemy login`.");
34
+ }
35
+ return;
36
+ }
37
+
38
+ yield* Console.log(`Profile: ${profile}`);
39
+
40
+ const providerNames = Object.keys(stored).sort();
41
+ if (providerNames.length === 0) {
42
+ yield* Console.log("(no providers configured)");
43
+ return;
44
+ }
45
+
46
+ const authProviders: AuthProviders["Service"] = {};
47
+ const authRegistry = Layer.succeed(AuthProviders, authProviders);
48
+ const services = Layer.mergeAll(
49
+ authRegistry,
50
+ ConfigProvider.layer(
51
+ withProfileOverride(yield* loadConfigProvider(envFile), profile),
52
+ ),
53
+ Logger.layer([fileLogger("out")]),
54
+ // Building these layers triggers their AuthProviderLayer effect, which
55
+ // registers the provider into the shared `authProviders` registry.
56
+ Layer.provide(Layer.mergeAll(CloudflareAuth, AwsAuth), authRegistry),
57
+ );
58
+
59
+ yield* Effect.gen(function* () {
60
+ for (const name of providerNames) {
61
+ const cfg = stored[name]!;
62
+ yield* Console.log("");
63
+ yield* Console.log(`── ${name} ──`);
64
+ const provider = authProviders[name];
65
+ if (provider == null) {
66
+ // Unknown provider — fall back to a JSON dump so the user can still
67
+ // see what's stored even if its module isn't bundled into the CLI.
68
+ yield* Console.log(`method: ${cfg.method}`);
69
+ const { method: _method, ...rest } = cfg as Record<string, unknown> &
70
+ { method: string };
71
+ for (const [k, v] of Object.entries(rest)) {
72
+ yield* Console.log(
73
+ `${k}: ${typeof v === "string" ? v : JSON.stringify(v)}`,
74
+ );
75
+ }
76
+ continue;
77
+ }
78
+ yield* provider.prettyPrint(profile, cfg);
79
+ }
80
+ }).pipe(Effect.provide(services));
81
+ }),
82
+ );
83
+
84
+ export const profileCommand = Command.make("profile", {}).pipe(
85
+ Command.withSubcommands([showCommand]),
86
+ );
@@ -23,7 +23,9 @@ import { envFile, importStack, main, profile, stage } from "./_shared.ts";
23
23
  * bootstrap.
24
24
  */
25
25
  const localFlag = Flag.boolean("local").pipe(
26
- Flag.withDescription("Read from local .alchemy/state instead of the stack's configured state store"),
26
+ Flag.withDescription(
27
+ "Read from local .alchemy/state instead of the stack's configured state store",
28
+ ),
27
29
  Flag.withDefault(false),
28
30
  );
29
31
 
@@ -62,7 +64,10 @@ const withStateService = <A, E>(
62
64
  const services = Layer.mergeAll(
63
65
  Layer.succeed(AuthProviders, {}),
64
66
  ConfigProvider.layer(
65
- withProfileOverride(yield* loadConfigProvider(args.envFile), args.profile),
67
+ withProfileOverride(
68
+ yield* loadConfigProvider(args.envFile),
69
+ args.profile,
70
+ ),
66
71
  ),
67
72
  Logger.layer([fileLogger("out")]),
68
73
  Layer.succeed(Stage, args.stage),
@@ -171,9 +176,7 @@ const getCommand = Command.make(
171
176
  fqn,
172
177
  });
173
178
  if (value === undefined) {
174
- yield* Console.log(
175
- `(not found: ${stackName}/${stageName}/${fqn})`,
176
- );
179
+ yield* Console.log(`(not found: ${stackName}/${stageName}/${fqn})`);
177
180
  return;
178
181
  }
179
182
  // encodeState produces a JSON-friendly view: redacted secrets
@@ -22,7 +22,7 @@ import type { S3EventType } from "../S3/S3Event.ts";
22
22
  * );
23
23
  * ```
24
24
  */
25
- export declare const BucketEventSource: Layer.Layer<S3BucketEventSource, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../ExecutionContext.ts").ExecutionContext<import("../../ExecutionContext.ts").BaseExecutionContext> | import("../../Auth/AuthProvider.ts").AuthProviders | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | Binding.PolicyLike | import("../../Provider.ts").Provider<any> | import("../../Provider.ts").ProviderCollectionLike | import("@distilled.cloud/aws/Region").Region | import("@distilled.cloud/aws/Credentials").Credentials>;
25
+ export declare const BucketEventSource: Layer.Layer<S3BucketEventSource, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../ExecutionContext.ts").ExecutionContext<import("../../ExecutionContext.ts").BaseExecutionContext> | import("../../Auth/AuthProvider.ts").AuthProviders | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | import("../../Cli/Cli.ts").Cli | Binding.PolicyLike | import("../../Provider.ts").Provider<any> | import("../../Provider.ts").ProviderCollectionLike | import("@distilled.cloud/aws/Region").Region | import("@distilled.cloud/aws/Credentials").Credentials>;
26
26
  declare const BucketEventSourcePolicy_base: Binding.Policy<BucketEventSourcePolicy, "Policy<AWS.S3.BucketEventSource>", (bucket: Bucket, props?: NotificationsProps<S3EventType[]>) => Effect.Effect<void>>;
27
27
  /**
28
28
  * Deploy-time policy for attaching an S3 bucket as a Lambda event source.
@@ -1 +1 @@
1
- {"version":3,"file":"BucketEventSource.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/BucketEventSource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACL,iBAAiB,IAAI,mBAAmB,EAEzC,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,0uBAqD7B,CAAC;iIAYU,MAAM,UACN,kBAAkB,CAAC,WAAW,EAAE,CAAC,KACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAR1B;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,4BAMd;CAAG;AAElC,eAAO,MAAM,2BAA2B,oDAuCvC,CAAC"}
1
+ {"version":3,"file":"BucketEventSource.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/BucketEventSource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EACL,iBAAiB,IAAI,mBAAmB,EAEzC,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAIpD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,iBAAiB,2wBAqD7B,CAAC;iIAYU,MAAM,UACN,kBAAkB,CAAC,WAAW,EAAE,CAAC,KACtC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAR1B;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,4BAMd;CAAG;AAElC,eAAO,MAAM,2BAA2B,oDAuCvC,CAAC"}
@@ -93,7 +93,7 @@ export declare const isEventBridgeEvent: (event: any) => event is lambda.EventBr
93
93
  * );
94
94
  * ```
95
95
  */
96
- export declare const EventSource: Layer.Layer<EventBridgeEventSource, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../ExecutionContext.ts").ExecutionContext<import("../../ExecutionContext.ts").BaseExecutionContext> | import("../../Auth/AuthProvider.ts").AuthProviders | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | Binding.PolicyLike | import("../../Provider.ts").Provider<any> | import("../../Provider.ts").ProviderCollectionLike | import("@distilled.cloud/aws/Region").Region | import("@distilled.cloud/aws/Credentials").Credentials>;
96
+ export declare const EventSource: Layer.Layer<EventBridgeEventSource, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../ExecutionContext.ts").ExecutionContext<import("../../ExecutionContext.ts").BaseExecutionContext> | import("../../Auth/AuthProvider.ts").AuthProviders | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | import("../../Cli/Cli.ts").Cli | Binding.PolicyLike | import("../../Provider.ts").Provider<any> | import("../../Provider.ts").ProviderCollectionLike | import("@distilled.cloud/aws/Region").Region | import("@distilled.cloud/aws/Credentials").Credentials>;
97
97
  declare const EventSourcePolicy_base: Binding.Policy<EventSourcePolicy, "Policy<AWS.EventBridge.EventSource>", (descriptor: Parameters<EventSourceService>[0]) => Effect.Effect<void, never, any>>;
98
98
  /**
99
99
  * Deploy-time policy/service bridge for EventBridge subscriptions.
@@ -1 +1 @@
1
- {"version":3,"file":"EventBridgeEventSource.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/EventBridgeEventSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,WAAW,IAAI,sBAAsB,EAKrC,KAAK,kBAAkB,EACxB,MAAM,+BAA+B,CAAC;AAIvC;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,GAAG,KACT,KAAK,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAEH,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AACH,eAAO,MAAM,WAAW,6uBAqCvB,CAAC;4HAWc,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC;AAVtC;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,sBAKL;CAAG;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,8CAYjC,CAAC"}
1
+ {"version":3,"file":"EventBridgeEventSource.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/EventBridgeEventSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EACL,WAAW,IAAI,sBAAsB,EAKrC,KAAK,kBAAkB,EACxB,MAAM,+BAA+B,CAAC;AAIvC;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,OAAO,GAAG,KACT,KAAK,IAAI,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAEH,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AACH,eAAO,MAAM,WAAW,8wBAqCvB,CAAC;4HAWc,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,KAC1C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC;AAVtC;;;;;GAKG;AACH,qBAAa,iBAAkB,SAAQ,sBAKL;CAAG;AAErC;;;;;;GAMG;AACH,eAAO,MAAM,qBAAqB,8CAYjC,CAAC"}
@@ -5,7 +5,7 @@ import * as Binding from "../../Binding.ts";
5
5
  import type { Queue } from "../SQS/Queue.ts";
6
6
  import { QueueEventSource as SQSQueueEventSource, type QueueEventSourceProps } from "../SQS/QueueEventSource.ts";
7
7
  export declare const isSQSEvent: (event: any) => event is lambda.SQSEvent;
8
- export declare const QueueEventSource: Layer.Layer<SQSQueueEventSource, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../ExecutionContext.ts").ExecutionContext<import("../../ExecutionContext.ts").BaseExecutionContext> | import("../../Auth/AuthProvider.ts").AuthProviders | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | Binding.PolicyLike | import("../../Provider.ts").Provider<any> | import("../../Provider.ts").ProviderCollectionLike | import("@distilled.cloud/aws/Region").Region | import("@distilled.cloud/aws/Credentials").Credentials>;
8
+ export declare const QueueEventSource: Layer.Layer<SQSQueueEventSource, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../ExecutionContext.ts").ExecutionContext<import("../../ExecutionContext.ts").BaseExecutionContext> | import("../../Auth/AuthProvider.ts").AuthProviders | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | import("../../Cli/Cli.ts").Cli | Binding.PolicyLike | import("../../Provider.ts").Provider<any> | import("../../Provider.ts").ProviderCollectionLike | import("@distilled.cloud/aws/Region").Region | import("@distilled.cloud/aws/Credentials").Credentials>;
9
9
  declare const QueueEventSourcePolicy_base: Binding.Policy<QueueEventSourcePolicy, "Policy<AWS.SQS.QueueEventSourcePolicy>", (queue: Queue, props: QueueEventSourceProps) => Effect.Effect<void>>;
10
10
  export declare class QueueEventSourcePolicy extends QueueEventSourcePolicy_base {
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"QueueEventSource.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/QueueEventSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,gBAAgB,IAAI,mBAAmB,EACvC,KAAK,qBAAqB,EAE3B,MAAM,4BAA4B,CAAC;AAIpC,eAAO,MAAM,UAAU,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,MAAM,CAAC,QAGZ,CAAC;AAE7C,eAAO,MAAM,gBAAgB,0uBA8B5B,CAAC;oIAIQ,KAAK,SAAS,qBAAqB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAFrE,qBAAa,sBAAuB,SAAQ,2BAGP;CAAG;AAExC,eAAO,MAAM,0BAA0B,mDAsCtC,CAAC"}
1
+ {"version":3,"file":"QueueEventSource.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/QueueEventSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,gBAAgB,IAAI,mBAAmB,EACvC,KAAK,qBAAqB,EAE3B,MAAM,4BAA4B,CAAC;AAIpC,eAAO,MAAM,UAAU,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,MAAM,CAAC,QAGZ,CAAC;AAE7C,eAAO,MAAM,gBAAgB,2wBA8B5B,CAAC;oIAIQ,KAAK,SAAS,qBAAqB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAFrE,qBAAa,sBAAuB,SAAQ,2BAGP;CAAG;AAExC,eAAO,MAAM,0BAA0B,mDAsCtC,CAAC"}
@@ -5,7 +5,7 @@ import * as Binding from "../../Binding.ts";
5
5
  import type { Stream as KinesisStream } from "../Kinesis/Stream.ts";
6
6
  import { StreamEventSource as KinesisStreamEventSource, type StreamEventSourceProps } from "../Kinesis/StreamEventSource.ts";
7
7
  export declare const isKinesisStreamEvent: (event: any) => event is lambda.KinesisStreamEvent;
8
- export declare const StreamEventSource: Layer.Layer<KinesisStreamEventSource, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../ExecutionContext.ts").ExecutionContext<import("../../ExecutionContext.ts").BaseExecutionContext> | import("../../Auth/AuthProvider.ts").AuthProviders | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | Binding.PolicyLike | import("../../Provider.ts").Provider<any> | import("../../Provider.ts").ProviderCollectionLike | import("@distilled.cloud/aws/Region").Region | import("@distilled.cloud/aws/Credentials").Credentials>;
8
+ export declare const StreamEventSource: Layer.Layer<KinesisStreamEventSource, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../ExecutionContext.ts").ExecutionContext<import("../../ExecutionContext.ts").BaseExecutionContext> | import("../../Auth/AuthProvider.ts").AuthProviders | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | import("../../Cli/Cli.ts").Cli | Binding.PolicyLike | import("../../Provider.ts").Provider<any> | import("../../Provider.ts").ProviderCollectionLike | import("@distilled.cloud/aws/Region").Region | import("@distilled.cloud/aws/Credentials").Credentials>;
9
9
  declare const StreamEventSourcePolicy_base: Binding.Policy<StreamEventSourcePolicy, "Policy<AWS.Kinesis.StreamEventSource>", (stream: KinesisStream, props: StreamEventSourceProps) => Effect.Effect<void>>;
10
10
  export declare class StreamEventSourcePolicy extends StreamEventSourcePolicy_base {
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StreamEventSource.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/StreamEventSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACL,iBAAiB,IAAI,wBAAwB,EAE7C,KAAK,sBAAsB,EAE5B,MAAM,iCAAiC,CAAC;AAIzC,eAAO,MAAM,oBAAoB,GAC/B,OAAO,GAAG,KACT,KAAK,IAAI,MAAM,CAAC,kBAG6B,CAAC;AAEjD,eAAO,MAAM,iBAAiB,+uBAsC7B,CAAC;sIAIS,aAAa,SAAS,sBAAsB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAF/E,qBAAa,uBAAwB,SAAQ,4BAGT;CAAG;AAEvC,eAAO,MAAM,2BAA2B,oDAuDvC,CAAC"}
1
+ {"version":3,"file":"StreamEventSource.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/StreamEventSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EACL,iBAAiB,IAAI,wBAAwB,EAE7C,KAAK,sBAAsB,EAE5B,MAAM,iCAAiC,CAAC;AAIzC,eAAO,MAAM,oBAAoB,GAC/B,OAAO,GAAG,KACT,KAAK,IAAI,MAAM,CAAC,kBAG6B,CAAC;AAEjD,eAAO,MAAM,iBAAiB,gxBAsC7B,CAAC;sIAIS,aAAa,SAAS,sBAAsB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAF/E,qBAAa,uBAAwB,SAAQ,4BAGT;CAAG;AAEvC,eAAO,MAAM,2BAA2B,oDAuDvC,CAAC"}
@@ -5,7 +5,7 @@ import * as Binding from "../../Binding.ts";
5
5
  import { TableEventSource as DynamoDBTableEventSource, type StreamsProps } from "../DynamoDB/Stream.ts";
6
6
  import type { Table } from "../DynamoDB/Table.ts";
7
7
  export declare const isDynamoDBStreamEvent: (event: any) => event is lambda.DynamoDBStreamEvent;
8
- export declare const TableEventSource: Layer.Layer<DynamoDBTableEventSource, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../ExecutionContext.ts").ExecutionContext<import("../../ExecutionContext.ts").BaseExecutionContext> | import("../../Auth/AuthProvider.ts").AuthProviders | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | Binding.PolicyLike | import("../../Provider.ts").Provider<any> | import("../../Provider.ts").ProviderCollectionLike | import("@distilled.cloud/aws/Region").Region | import("@distilled.cloud/aws/Credentials").Credentials>;
8
+ export declare const TableEventSource: Layer.Layer<DynamoDBTableEventSource, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../ExecutionContext.ts").ExecutionContext<import("../../ExecutionContext.ts").BaseExecutionContext> | import("../../Auth/AuthProvider.ts").AuthProviders | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | import("../../Cli/Cli.ts").Cli | Binding.PolicyLike | import("../../Provider.ts").Provider<any> | import("../../Provider.ts").ProviderCollectionLike | import("@distilled.cloud/aws/Region").Region | import("@distilled.cloud/aws/Credentials").Credentials>;
9
9
  declare const TableEventSourcePolicy_base: Binding.Policy<TableEventSourcePolicy, "Policy<AWS.DynamoDB.TableEventSource>", (table: Table, props: StreamsProps) => Effect.Effect<void>>;
10
10
  export declare class TableEventSourcePolicy extends TableEventSourcePolicy_base {
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TableEventSource.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/TableEventSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EACL,gBAAgB,IAAI,wBAAwB,EAE5C,KAAK,YAAY,EAElB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIlD,eAAO,MAAM,qBAAqB,GAChC,OAAO,GAAG,KACT,KAAK,IAAI,MAAM,CAAC,mBAG8B,CAAC;AAElD,eAAO,MAAM,gBAAgB,+uBAuC5B,CAAC;mIAIQ,KAAK,SAAS,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAF5D,qBAAa,sBAAuB,SAAQ,2BAGR;CAAG;AAEvC,eAAO,MAAM,0BAA0B,mDAqFtC,CAAC"}
1
+ {"version":3,"file":"TableEventSource.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/TableEventSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EACL,gBAAgB,IAAI,wBAAwB,EAE5C,KAAK,YAAY,EAElB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAIlD,eAAO,MAAM,qBAAqB,GAChC,OAAO,GAAG,KACT,KAAK,IAAI,MAAM,CAAC,mBAG8B,CAAC;AAElD,eAAO,MAAM,gBAAgB,gxBAuC5B,CAAC;mIAIQ,KAAK,SAAS,YAAY,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAF5D,qBAAa,sBAAuB,SAAQ,2BAGR;CAAG;AAEvC,eAAO,MAAM,0BAA0B,mDAqFtC,CAAC"}
@@ -5,7 +5,7 @@ import * as Binding from "../../Binding.ts";
5
5
  import type { Topic } from "../SNS/Topic.ts";
6
6
  import { TopicEventSource as SNSTopicEventSource, type TopicEventSourceProps } from "../SNS/TopicEventSource.ts";
7
7
  export declare const isSNSEvent: (event: any) => event is lambda.SNSEvent;
8
- export declare const TopicEventSource: Layer.Layer<SNSTopicEventSource, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../ExecutionContext.ts").ExecutionContext<import("../../ExecutionContext.ts").BaseExecutionContext> | import("../../Auth/AuthProvider.ts").AuthProviders | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | Binding.PolicyLike | import("../../Provider.ts").Provider<any> | import("../../Provider.ts").ProviderCollectionLike | import("@distilled.cloud/aws/Region").Region | import("@distilled.cloud/aws/Credentials").Credentials>;
8
+ export declare const TopicEventSource: Layer.Layer<SNSTopicEventSource, never, import("../../AlchemyContext.ts").AlchemyContext | import("effect/Path").Path | import("effect/FileSystem").FileSystem | import("effect/unstable/process/ChildProcessSpawner").ChildProcessSpawner | import("effect/unstable/http/HttpClient").HttpClient | import("../../ExecutionContext.ts").ExecutionContext<import("../../ExecutionContext.ts").BaseExecutionContext> | import("../../Auth/AuthProvider.ts").AuthProviders | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | import("../../Cli/Cli.ts").Cli | Binding.PolicyLike | import("../../Provider.ts").Provider<any> | import("../../Provider.ts").ProviderCollectionLike | import("@distilled.cloud/aws/Region").Region | import("@distilled.cloud/aws/Credentials").Credentials>;
9
9
  declare const TopicEventSourcePolicy_base: Binding.Policy<TopicEventSourcePolicy, "Policy<AWS.SNS.TopicEventSource>", (topic: Topic, props?: TopicEventSourceProps) => Effect.Effect<void>>;
10
10
  export declare class TopicEventSourcePolicy extends TopicEventSourcePolicy_base {
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TopicEventSource.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/TopicEventSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,gBAAgB,IAAI,mBAAmB,EACvC,KAAK,qBAAqB,EAG3B,MAAM,4BAA4B,CAAC;AAIpC,eAAO,MAAM,UAAU,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,MAAM,CAAC,QAEe,CAAC;AAExE,eAAO,MAAM,gBAAgB,0uBAwC5B,CAAC;8HAIQ,KAAK,UAAU,qBAAqB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAFtE,qBAAa,sBAAuB,SAAQ,2BAGb;CAAG;AAElC,eAAO,MAAM,0BAA0B,mDAqCtC,CAAC"}
1
+ {"version":3,"file":"TopicEventSource.d.ts","sourceRoot":"","sources":["../../../src/AWS/Lambda/TopicEventSource.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,YAAY,CAAC;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,gBAAgB,IAAI,mBAAmB,EACvC,KAAK,qBAAqB,EAG3B,MAAM,4BAA4B,CAAC;AAIpC,eAAO,MAAM,UAAU,GAAI,OAAO,GAAG,KAAG,KAAK,IAAI,MAAM,CAAC,QAEe,CAAC;AAExE,eAAO,MAAM,gBAAgB,2wBAwC5B,CAAC;8HAIQ,KAAK,UAAU,qBAAqB,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAFtE,qBAAa,sBAAuB,SAAQ,2BAGb;CAAG;AAElC,eAAO,MAAM,0BAA0B,mDAqCtC,CAAC"}
@@ -96,9 +96,9 @@ export declare const makeLSPClient: (id: string, proc: Subprocess, root: string)
96
96
  readonly character: number;
97
97
  };
98
98
  };
99
- readonly source?: string | undefined;
100
99
  readonly code?: string | number | undefined;
101
100
  readonly severity?: number | undefined;
101
+ readonly source?: string | undefined;
102
102
  }[], never, never>;
103
103
  getDiagnostics: (path: string) => Effect.Effect<never[] | {
104
104
  readonly message: string;
@@ -112,9 +112,9 @@ export declare const makeLSPClient: (id: string, proc: Subprocess, root: string)
112
112
  readonly character: number;
113
113
  };
114
114
  };
115
- readonly source?: string | undefined;
116
115
  readonly code?: string | number | undefined;
117
116
  readonly severity?: number | undefined;
117
+ readonly source?: string | undefined;
118
118
  }[], never, never>;
119
119
  onDiagnostics: (callback: (uri: string, diagnostics: Diagnostic[]) => Effect.Effect<void>) => Effect.Effect<void, never, never>;
120
120
  shutdown: Effect.Effect<void, never, never>;
@@ -1,5 +1,4 @@
1
1
  import * as Layer from "effect/Layer";
2
2
  import { Cli } from "./Cli.ts";
3
3
  export declare const inkCLI: () => Layer.Layer<Cli, never, never>;
4
- export declare const inkCLIAutoApprove: () => Layer.Layer<Cli, never, never>;
5
4
  //# sourceMappingURL=InkCLI.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"InkCLI.d.ts","sourceRoot":"","sources":["../../src/Cli/InkCLI.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAA0B,GAAG,EAAE,MAAM,UAAU,CAAC;AAMvD,eAAO,MAAM,MAAM,sCAQhB,CAAC;AAEJ,eAAO,MAAM,iBAAiB,sCAQ3B,CAAC"}
1
+ {"version":3,"file":"InkCLI.d.ts","sourceRoot":"","sources":["../../src/Cli/InkCLI.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAA0B,GAAG,EAAE,MAAM,UAAU,CAAC;AAMvD,eAAO,MAAM,MAAM,sCAQhB,CAAC"}
package/lib/Cli/InkCLI.js CHANGED
@@ -12,11 +12,6 @@ export const inkCLI = () => Layer.succeed(Cli, Cli.of({
12
12
  displayPlan,
13
13
  startApplySession,
14
14
  }));
15
- export const inkCLIAutoApprove = () => Layer.succeed(Cli, Cli.of({
16
- approvePlan: () => Effect.succeed(true),
17
- displayPlan,
18
- startApplySession,
19
- }));
20
15
  const approvePlan = Effect.fn(function* (plan) {
21
16
  let approved = false;
22
17
  const { waitUntilExit } = render(_jsx(ApprovePlan, { plan: plan, approve: (a) => (approved = a) }));
@@ -1 +1 @@
1
- {"version":3,"file":"InkCLI.js","sourceRoot":"","sources":["../../src/Cli/InkCLI.tsx"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,EAA0B,GAAG,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA8B,CAAC;AAC3D,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,sBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA+B,CAAC;AAE7D,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE,CACzB,KAAK,CAAC,OAAO,CACX,GAAG,EACH,GAAG,CAAC,EAAE,CAAC;IACL,WAAW;IACX,WAAW;IACX,iBAAiB;CAClB,CAAC,CACH,CAAC;AAEJ,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE,CACpC,KAAK,CAAC,OAAO,CACX,GAAG,EACH,GAAG,CAAC,EAAE,CAAC;IACL,WAAW,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;IACvC,WAAW;IACX,iBAAiB;CAClB,CAAC,CACH,CAAC;AAEJ,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAkB,IAAO;IAC9D,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAC9B,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAI,CAC5D,CAAC;IACF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAiB,IAAO,EAAuB,EAAE,CACnE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC,CAAC;IAC1D,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEL,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAkB,IAAO;IACpE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IACzD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CACxB,KAAC,YAAY,IACX,IAAI,EAAE,IAAI,EACV,MAAM,EAAE;YACN,SAAS,CAAC,QAAQ;gBAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;SACF,GACD,CACH,CAAC;IACF,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;YACvB,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,8CAA8C;YACvE,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC;QACF,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,KAAK,MAAM,QAAQ,IAAI,SAAS;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC;KACuB,CAAC;AAChC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"InkCLI.js","sourceRoot":"","sources":["../../src/Cli/InkCLI.tsx"],"names":[],"mappings":";AAAA,6BAA6B;AAC7B,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAE7B,OAAO,EAA0B,GAAG,EAAE,MAAM,UAAU,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA8B,CAAC;AAC3D,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,sBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA+B,CAAC;AAE7D,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE,CACzB,KAAK,CAAC,OAAO,CACX,GAAG,EACH,GAAG,CAAC,EAAE,CAAC;IACL,WAAW;IACX,WAAW;IACX,iBAAiB;CAClB,CAAC,CACH,CAAC;AAEJ,MAAM,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAkB,IAAO;IAC9D,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,CAC9B,KAAC,WAAW,IAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAI,CAC5D,CAAC;IACF,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACrC,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAiB,IAAO,EAAuB,EAAE,CACnE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;IACf,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAC,aAAa,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC,CAAC;IAC1D,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC,CAAC;AAEL,MAAM,iBAAiB,GAAG,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAkB,IAAO;IACpE,MAAM,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAC;IACzD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CACxB,KAAC,YAAY,IACX,IAAI,EAAE,IAAI,EACV,MAAM,EAAE;YACN,SAAS,CAAC,QAAQ;gBAChB,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACxB,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;SACF,GACD,CACH,CAAC;IACF,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC;YACvB,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,8CAA8C;YACvE,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC;QACF,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CACd,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE;YACf,KAAK,MAAM,QAAQ,IAAI,SAAS;gBAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpD,CAAC,CAAC;KACuB,CAAC;AAChC,CAAC,CAAC,CAAC"}
@@ -1,3 +1,2 @@
1
1
  export * from "./Cli.ts";
2
- export * from "./InkCLI.tsx";
3
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Cli/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Cli/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
package/lib/Cli/index.js CHANGED
@@ -1,3 +1,6 @@
1
1
  export * from "./Cli.js";
2
- export * from "./InkCLI.js";
2
+ // Note: do NOT re-export InkCLI here. The Ink-based renderer pulls in
3
+ // `react`/`ink`, which we do not want consumers of `alchemy/Cli` to
4
+ // transitively depend on. Import `alchemy/Cli/InkCLI` directly when needed
5
+ // (currently only from `bin/alchemy.ts`, which is bundled).
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Cli/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Cli/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,4DAA4D"}
@@ -0,0 +1,57 @@
1
+ import * as Redacted from "effect/Redacted";
2
+ import * as Provider from "../../Provider.ts";
3
+ import { Resource } from "../../Resource.ts";
4
+ import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
5
+ import type { Providers } from "../Providers.ts";
6
+ import { type ApiTokenProps } from "./Common.ts";
7
+ export type AccountApiToken = Resource<"Cloudflare.AccountApiToken", ApiTokenProps, {
8
+ tokenId: string;
9
+ name: string;
10
+ status: "active" | "disabled" | "expired";
11
+ /**
12
+ * The plaintext token value. Cloudflare returns this only once, on
13
+ * creation, so we persist it here for downstream consumers (e.g. a
14
+ * GitHub Actions secret).
15
+ */
16
+ value: Redacted.Redacted<string>;
17
+ accountId: string;
18
+ }, never, Providers>;
19
+ /**
20
+ * A Cloudflare account-owned API token (`POST /accounts/{account_id}/tokens`).
21
+ *
22
+ * Account-owned tokens are managed at the account level and persist
23
+ * independently of any single user. Use these for CI tokens, third-party
24
+ * integrations, or anywhere the token should outlive an individual user's
25
+ * session.
26
+ *
27
+ * Creating account-owned tokens requires the caller to have the
28
+ * `API Tokens > Write` account permission.
29
+ *
30
+ * @section Creating a Token
31
+ * @example A token for managing Workers and KV from CI
32
+ * ```typescript
33
+ * const token = yield* Cloudflare.AccountApiToken("ci-token", {
34
+ * name: "my-ci-token",
35
+ * policies: [
36
+ * {
37
+ * effect: "allow",
38
+ * permissionGroups: [
39
+ * "Workers Scripts Write",
40
+ * "Workers KV Storage Write",
41
+ * ],
42
+ * resources: { "com.cloudflare.api.account": "*" },
43
+ * },
44
+ * ],
45
+ * });
46
+ *
47
+ * yield* GitHub.Secret("cf-api-token", {
48
+ * owner: "me",
49
+ * repository: "my-repo",
50
+ * name: "CLOUDFLARE_API_TOKEN",
51
+ * value: token.value,
52
+ * });
53
+ * ```
54
+ */
55
+ export declare const AccountApiToken: import("../../Resource.ts").ResourceClass<AccountApiToken>;
56
+ export declare const AccountApiTokenProvider: () => import("effect/Layer").Layer<Provider.Provider<AccountApiToken>, never, import("effect/unstable/http/HttpClient").HttpClient | import("../../Stage.ts").Stage | import("../../Stack.ts").Stack | import("@distilled.cloud/cloudflare").Credentials | CloudflareEnvironment>;
57
+ //# sourceMappingURL=AccountApiToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountApiToken.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/AccountApiToken.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAG5C,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;AACjD,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,eAAe,GAAG,QAAQ,CACpC,4BAA4B,EAC5B,aAAa,EACb;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C;;;;OAIG;IACH,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB,EACD,KAAK,EACL,SAAS,CACV,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,eAAO,MAAM,eAAe,4DAE3B,CAAC;AASF,eAAO,MAAM,uBAAuB,mRA2HjC,CAAC"}
@@ -0,0 +1,141 @@
1
+ import * as accounts from "@distilled.cloud/cloudflare/accounts";
2
+ import * as Effect from "effect/Effect";
3
+ import * as Redacted from "effect/Redacted";
4
+ import { isResolved } from "../../Diff.js";
5
+ import { createPhysicalName } from "../../PhysicalName.js";
6
+ import * as Provider from "../../Provider.js";
7
+ import { Resource } from "../../Resource.js";
8
+ import { CloudflareEnvironment } from "../CloudflareEnvironment.js";
9
+ import { buildConditionPayload, conditionFingerprint, policyFingerprint, resolvePolicies, } from "./Common.js";
10
+ /**
11
+ * A Cloudflare account-owned API token (`POST /accounts/{account_id}/tokens`).
12
+ *
13
+ * Account-owned tokens are managed at the account level and persist
14
+ * independently of any single user. Use these for CI tokens, third-party
15
+ * integrations, or anywhere the token should outlive an individual user's
16
+ * session.
17
+ *
18
+ * Creating account-owned tokens requires the caller to have the
19
+ * `API Tokens > Write` account permission.
20
+ *
21
+ * @section Creating a Token
22
+ * @example A token for managing Workers and KV from CI
23
+ * ```typescript
24
+ * const token = yield* Cloudflare.AccountApiToken("ci-token", {
25
+ * name: "my-ci-token",
26
+ * policies: [
27
+ * {
28
+ * effect: "allow",
29
+ * permissionGroups: [
30
+ * "Workers Scripts Write",
31
+ * "Workers KV Storage Write",
32
+ * ],
33
+ * resources: { "com.cloudflare.api.account": "*" },
34
+ * },
35
+ * ],
36
+ * });
37
+ *
38
+ * yield* GitHub.Secret("cf-api-token", {
39
+ * owner: "me",
40
+ * repository: "my-repo",
41
+ * name: "CLOUDFLARE_API_TOKEN",
42
+ * value: token.value,
43
+ * });
44
+ * ```
45
+ */
46
+ export const AccountApiToken = Resource("Cloudflare.AccountApiToken");
47
+ const resolveName = (id, name) => Effect.gen(function* () {
48
+ return name ?? (yield* createPhysicalName({ id }));
49
+ });
50
+ export const AccountApiTokenProvider = () => Provider.effect(AccountApiToken, Effect.gen(function* () {
51
+ const { accountId: defaultAccountId } = yield* CloudflareEnvironment;
52
+ const createToken = yield* accounts.createToken;
53
+ const updateToken = yield* accounts.updateToken;
54
+ const deleteToken = yield* accounts.deleteToken;
55
+ const getToken = yield* accounts.getToken;
56
+ const buildAttributes = (tokenData, value, accountId) => ({
57
+ tokenId: tokenData.id ?? "",
58
+ name: tokenData.name ?? "",
59
+ status: tokenData.status ?? "active",
60
+ value,
61
+ accountId,
62
+ });
63
+ return {
64
+ stables: ["tokenId", "accountId"],
65
+ diff: Effect.fn(function* ({ id, olds, news, output }) {
66
+ if (!isResolved(news))
67
+ return undefined;
68
+ const newAccountId = news.accountId ?? defaultAccountId;
69
+ const oldAccountId = output?.accountId ?? olds?.accountId ?? defaultAccountId;
70
+ if (oldAccountId !== newAccountId) {
71
+ return { action: "replace" };
72
+ }
73
+ const oldName = output?.name ?? (yield* resolveName(id, olds?.name));
74
+ const newName = yield* resolveName(id, news.name);
75
+ const oldPolicyFp = policyFingerprint(resolvePolicies(olds?.policies ?? [], oldAccountId));
76
+ const newPolicyFp = policyFingerprint(resolvePolicies(news.policies, newAccountId));
77
+ const oldCondFp = conditionFingerprint(olds?.condition);
78
+ const newCondFp = conditionFingerprint(news.condition);
79
+ if (oldName !== newName ||
80
+ oldPolicyFp !== newPolicyFp ||
81
+ oldCondFp !== newCondFp ||
82
+ (olds?.expiresOn ?? undefined) !== (news.expiresOn ?? undefined) ||
83
+ (olds?.notBefore ?? undefined) !== (news.notBefore ?? undefined)) {
84
+ return { action: "update" };
85
+ }
86
+ }),
87
+ create: Effect.fn(function* ({ id, news }) {
88
+ const accountId = news.accountId ?? defaultAccountId;
89
+ const name = yield* resolveName(id, news.name);
90
+ const policies = resolvePolicies(news.policies, accountId);
91
+ const result = yield* createToken({
92
+ accountId,
93
+ name,
94
+ policies,
95
+ condition: buildConditionPayload(news.condition),
96
+ expiresOn: news.expiresOn,
97
+ notBefore: news.notBefore,
98
+ });
99
+ if (!result.value) {
100
+ return yield* Effect.die(`Cloudflare did not return a value for token "${name}".`);
101
+ }
102
+ return buildAttributes(result, Redacted.make(result.value), accountId);
103
+ }),
104
+ update: Effect.fn(function* ({ id, news, output }) {
105
+ const accountId = news.accountId ?? defaultAccountId;
106
+ const name = yield* resolveName(id, news.name);
107
+ const policies = resolvePolicies(news.policies, accountId);
108
+ const result = yield* updateToken({
109
+ accountId,
110
+ tokenId: output.tokenId,
111
+ name,
112
+ policies,
113
+ condition: buildConditionPayload(news.condition),
114
+ expiresOn: news.expiresOn,
115
+ notBefore: news.notBefore,
116
+ });
117
+ // Cloudflare doesn't return the value on update; preserve the
118
+ // value captured at creation.
119
+ return buildAttributes(result, output.value, accountId);
120
+ }),
121
+ delete: Effect.fn(function* ({ output }) {
122
+ yield* deleteToken({
123
+ accountId: output.accountId,
124
+ tokenId: output.tokenId,
125
+ }).pipe(
126
+ // Already gone — Cloudflare may report this as either an
127
+ // `InvalidRoute` (token-id no longer routable) or a generic
128
+ // `TokenNotFound`. Either is fine; we just want the resource gone.
129
+ Effect.catchTag("InvalidRoute", () => Effect.void), Effect.catchTag("TokenNotFound", () => Effect.void));
130
+ }),
131
+ read: Effect.fn(function* ({ output }) {
132
+ if (!output?.tokenId)
133
+ return undefined;
134
+ return yield* getToken({
135
+ accountId: output.accountId,
136
+ tokenId: output.tokenId,
137
+ }).pipe(Effect.map((token) => buildAttributes(token, output.value, output.accountId)), Effect.catchTag("InvalidRoute", () => Effect.succeed(undefined)), Effect.catchTag("TokenNotFound", () => Effect.succeed(undefined)));
138
+ }),
139
+ };
140
+ }));
141
+ //# sourceMappingURL=AccountApiToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccountApiToken.js","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/AccountApiToken.ts"],"names":[],"mappings":"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"}