alchemy 2.0.0-beta.15 → 2.0.0-beta.17
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.
- package/bin/alchemy.js +1661 -710
- package/bin/alchemy.js.map +1 -1
- package/bin/alchemy.ts +2 -0
- package/bin/cli.js +9 -7
- package/bin/commands/deploy.ts +11 -2
- package/bin/commands/login.ts +6 -3
- package/bin/commands/profile.ts +106 -0
- package/bin/commands/state.ts +91 -1
- package/lib/Auth/Credentials.d.ts +6 -0
- package/lib/Auth/Credentials.d.ts.map +1 -1
- package/lib/Auth/Credentials.js +12 -1
- package/lib/Auth/Credentials.js.map +1 -1
- package/lib/Auth/Profile.d.ts +5 -0
- package/lib/Auth/Profile.d.ts.map +1 -1
- package/lib/Auth/Profile.js +11 -0
- package/lib/Auth/Profile.js.map +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts +4 -4
- package/lib/Cloudflare/ApiToken/AccountApiToken.d.ts.map +1 -1
- package/lib/Cloudflare/ApiToken/AccountApiToken.js +16 -11
- package/lib/Cloudflare/ApiToken/AccountApiToken.js.map +1 -1
- package/lib/Cloudflare/ApiToken/Common.d.ts +11 -12
- package/lib/Cloudflare/ApiToken/Common.d.ts.map +1 -1
- package/lib/Cloudflare/ApiToken/Common.js +4 -14
- package/lib/Cloudflare/ApiToken/Common.js.map +1 -1
- package/lib/Cloudflare/ApiToken/UserApiToken.d.ts +2 -3
- package/lib/Cloudflare/ApiToken/UserApiToken.d.ts.map +1 -1
- package/lib/Cloudflare/ApiToken/UserApiToken.js +4 -4
- package/lib/Cloudflare/ApiToken/UserApiToken.js.map +1 -1
- package/lib/Cloudflare/Artifacts/Artifacts.d.ts +101 -0
- package/lib/Cloudflare/Artifacts/Artifacts.d.ts.map +1 -0
- package/lib/Cloudflare/Artifacts/Artifacts.js +92 -0
- package/lib/Cloudflare/Artifacts/Artifacts.js.map +1 -0
- package/lib/Cloudflare/Artifacts/ArtifactsBinding.d.ts +83 -0
- package/lib/Cloudflare/Artifacts/ArtifactsBinding.d.ts.map +1 -0
- package/lib/Cloudflare/Artifacts/ArtifactsBinding.js +65 -0
- package/lib/Cloudflare/Artifacts/ArtifactsBinding.js.map +1 -0
- package/lib/Cloudflare/Artifacts/index.d.ts +3 -0
- package/lib/Cloudflare/Artifacts/index.d.ts.map +1 -0
- package/lib/Cloudflare/Artifacts/index.js +3 -0
- package/lib/Cloudflare/Artifacts/index.js.map +1 -0
- package/lib/Cloudflare/Container/ContainerBinding.d.ts +1 -1
- package/lib/Cloudflare/Providers.d.ts.map +1 -1
- package/lib/Cloudflare/Providers.js +3 -1
- package/lib/Cloudflare/Providers.js.map +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts +1 -1
- package/lib/Cloudflare/Workers/InferEnv.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/InferEnv.js +0 -1
- package/lib/Cloudflare/Workers/InferEnv.js.map +1 -1
- package/lib/Cloudflare/Workers/Worker.d.ts +2 -1
- package/lib/Cloudflare/Workers/Worker.d.ts.map +1 -1
- package/lib/Cloudflare/Workers/Worker.js +25 -18
- package/lib/Cloudflare/Workers/Worker.js.map +1 -1
- package/lib/Cloudflare/index.d.ts +1 -0
- package/lib/Cloudflare/index.d.ts.map +1 -1
- package/lib/Cloudflare/index.js +1 -0
- package/lib/Cloudflare/index.js.map +1 -1
- package/lib/GitHub/AuthProvider.d.ts +37 -0
- package/lib/GitHub/AuthProvider.d.ts.map +1 -0
- package/lib/GitHub/AuthProvider.js +154 -0
- package/lib/GitHub/AuthProvider.js.map +1 -0
- package/lib/GitHub/Comment.d.ts +2 -1
- package/lib/GitHub/Comment.d.ts.map +1 -1
- package/lib/GitHub/Comment.js +1 -0
- package/lib/GitHub/Comment.js.map +1 -1
- package/lib/GitHub/Credentials.d.ts +29 -0
- package/lib/GitHub/Credentials.d.ts.map +1 -0
- package/lib/GitHub/Credentials.js +54 -0
- package/lib/GitHub/Credentials.js.map +1 -0
- package/lib/GitHub/Providers.d.ts +12 -1
- package/lib/GitHub/Providers.d.ts.map +1 -1
- package/lib/GitHub/Providers.js +14 -3
- package/lib/GitHub/Providers.js.map +1 -1
- package/lib/GitHub/Secret.d.ts +8 -10
- package/lib/GitHub/Secret.d.ts.map +1 -1
- package/lib/GitHub/Secret.js +16 -14
- package/lib/GitHub/Secret.js.map +1 -1
- package/lib/GitHub/Variable.d.ts +8 -10
- package/lib/GitHub/Variable.d.ts.map +1 -1
- package/lib/GitHub/Variable.js +12 -13
- package/lib/GitHub/Variable.js.map +1 -1
- package/lib/GitHub/index.d.ts +2 -0
- package/lib/GitHub/index.d.ts.map +1 -1
- package/lib/GitHub/index.js +2 -0
- package/lib/GitHub/index.js.map +1 -1
- package/package.json +4 -4
- package/src/Auth/Credentials.ts +17 -1
- package/src/Auth/Profile.ts +15 -0
- package/src/Cloudflare/ApiToken/AccountApiToken.ts +25 -14
- package/src/Cloudflare/ApiToken/Common.ts +12 -19
- package/src/Cloudflare/ApiToken/UserApiToken.ts +6 -8
- package/src/Cloudflare/Artifacts/Artifacts.ts +139 -0
- package/src/Cloudflare/Artifacts/ArtifactsBinding.ts +188 -0
- package/src/Cloudflare/Artifacts/index.ts +2 -0
- package/src/Cloudflare/Providers.ts +3 -0
- package/src/Cloudflare/Workers/InferEnv.ts +5 -4
- package/src/Cloudflare/Workers/Worker.ts +12 -1
- package/src/Cloudflare/index.ts +1 -0
- package/src/GitHub/AuthProvider.ts +309 -0
- package/src/GitHub/Comment.ts +4 -1
- package/src/GitHub/Credentials.ts +99 -0
- package/src/GitHub/Providers.ts +29 -3
- package/src/GitHub/Secret.ts +22 -24
- package/src/GitHub/Variable.ts +16 -23
- package/src/GitHub/index.ts +2 -0
package/bin/alchemy.ts
CHANGED
|
@@ -18,6 +18,7 @@ import {
|
|
|
18
18
|
} from "./commands/deploy.ts";
|
|
19
19
|
import { loginCommand } from "./commands/login.ts";
|
|
20
20
|
import { logsCommand } from "./commands/logs.ts";
|
|
21
|
+
import { profileCommand } from "./commands/profile.ts";
|
|
21
22
|
import { stateCommand } from "./commands/state.ts";
|
|
22
23
|
import { tailCommand } from "./commands/tail.ts";
|
|
23
24
|
|
|
@@ -30,6 +31,7 @@ const root = Command.make("alchemy", {}).pipe(
|
|
|
30
31
|
tailCommand,
|
|
31
32
|
logsCommand,
|
|
32
33
|
loginCommand,
|
|
34
|
+
profileCommand,
|
|
33
35
|
stateCommand,
|
|
34
36
|
]),
|
|
35
37
|
);
|
package/bin/cli.js
CHANGED
|
@@ -21,24 +21,26 @@
|
|
|
21
21
|
//
|
|
22
22
|
// foreground-child forwards stdio + signals and exits with the child's code,
|
|
23
23
|
// so the launcher is transparent to the invoking shell / npm script.
|
|
24
|
-
import {
|
|
25
|
-
import { createRequire } from "node:module";
|
|
24
|
+
import { fileURLToPath } from "node:url";
|
|
26
25
|
import path from "pathe";
|
|
27
26
|
import { foregroundChild } from "foreground-child";
|
|
28
27
|
|
|
29
|
-
const require = createRequire(import.meta.url);
|
|
30
|
-
|
|
31
28
|
const execpath = (process.env.npm_execpath ?? "").toLowerCase();
|
|
32
29
|
const userAgent = (process.env.npm_config_user_agent ?? "").toLowerCase();
|
|
33
30
|
const invokedByBun = execpath.includes("bun") || userAgent.startsWith("bun/");
|
|
34
31
|
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
// Derive the bin dir from this launcher's own location rather than
|
|
33
|
+
// require.resolve("alchemy/bin/alchemy.js"). The bundled alchemy.js is a
|
|
34
|
+
// build artifact (tsdown output) and may not exist in a fresh checkout
|
|
35
|
+
// (e.g. CI before `bun run build`); resolving it would throw
|
|
36
|
+
// MODULE_NOT_FOUND before we get a chance to fall back to the .ts source.
|
|
37
|
+
const binDir = path.dirname(fileURLToPath(import.meta.url));
|
|
38
|
+
const jsEntry = path.join(binDir, "alchemy.js");
|
|
37
39
|
const tsEntry = path.join(binDir, "alchemy.ts");
|
|
38
40
|
|
|
39
41
|
// Treat any install-tree path as published; only a raw checkout uses .ts.
|
|
40
42
|
const useTs = !(
|
|
41
|
-
|
|
43
|
+
binDir.includes("/node_modules/") || binDir.includes("\\node_modules\\")
|
|
42
44
|
);
|
|
43
45
|
|
|
44
46
|
// .ts only runs under bun. Force bun in dev even if node was the invoker.
|
package/bin/commands/deploy.ts
CHANGED
|
@@ -84,7 +84,14 @@ const execStack = Effect.fn(function* ({
|
|
|
84
84
|
if (dryRun) {
|
|
85
85
|
yield* cli.displayPlan(updatePlan);
|
|
86
86
|
} else {
|
|
87
|
-
|
|
87
|
+
const hasChanges =
|
|
88
|
+
Object.keys(updatePlan.deletions).length > 0 ||
|
|
89
|
+
Object.values(updatePlan.resources).some(
|
|
90
|
+
(node) =>
|
|
91
|
+
node.action !== "noop" ||
|
|
92
|
+
node.bindings.some((b) => b.action !== "noop"),
|
|
93
|
+
);
|
|
94
|
+
if (!yes && hasChanges) {
|
|
88
95
|
const approved = yield* cli.approvePlan(updatePlan);
|
|
89
96
|
if (!approved) {
|
|
90
97
|
return;
|
|
@@ -92,7 +99,9 @@ const execStack = Effect.fn(function* ({
|
|
|
92
99
|
}
|
|
93
100
|
const outputs = yield* apply(updatePlan);
|
|
94
101
|
|
|
95
|
-
|
|
102
|
+
if (outputs !== undefined) {
|
|
103
|
+
yield* Console.log(outputs);
|
|
104
|
+
}
|
|
96
105
|
}
|
|
97
106
|
}).pipe(Effect.provide(stack.services));
|
|
98
107
|
}).pipe(Effect.provide(services));
|
package/bin/commands/login.ts
CHANGED
|
@@ -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
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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,106 @@
|
|
|
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 { deleteProfileCredentials } from "../../src/Auth/Credentials.ts";
|
|
10
|
+
import {
|
|
11
|
+
deleteProfile,
|
|
12
|
+
getProfile,
|
|
13
|
+
readConfig,
|
|
14
|
+
withProfileOverride,
|
|
15
|
+
} from "../../src/Auth/Profile.ts";
|
|
16
|
+
import { AwsAuth } from "../../src/AWS/AuthProvider.ts";
|
|
17
|
+
import { CloudflareAuth } from "../../src/Cloudflare/Auth/AuthProvider.ts";
|
|
18
|
+
import { loadConfigProvider } from "../../src/Util/ConfigProvider.ts";
|
|
19
|
+
import { fileLogger } from "../../src/Util/FileLogger.ts";
|
|
20
|
+
|
|
21
|
+
import { envFile, profile } from "./_shared.ts";
|
|
22
|
+
|
|
23
|
+
const showCommand = Command.make(
|
|
24
|
+
"show",
|
|
25
|
+
{ profile, envFile },
|
|
26
|
+
Effect.fnUntraced(function* ({ profile, envFile }) {
|
|
27
|
+
const stored = yield* getProfile(profile);
|
|
28
|
+
if (stored == null) {
|
|
29
|
+
const config = yield* readConfig;
|
|
30
|
+
const names = Object.keys(config.profiles);
|
|
31
|
+
yield* Console.log(`Profile '${profile}' not found.`);
|
|
32
|
+
if (names.length > 0) {
|
|
33
|
+
yield* Console.log(`Available profiles: ${names.sort().join(", ")}`);
|
|
34
|
+
} else {
|
|
35
|
+
yield* Console.log("No profiles configured. Run `alchemy login`.");
|
|
36
|
+
}
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
yield* Console.log(`Profile: ${profile}`);
|
|
41
|
+
|
|
42
|
+
const providerNames = Object.keys(stored).sort();
|
|
43
|
+
if (providerNames.length === 0) {
|
|
44
|
+
yield* Console.log("(no providers configured)");
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const authProviders: AuthProviders["Service"] = {};
|
|
49
|
+
const authRegistry = Layer.succeed(AuthProviders, authProviders);
|
|
50
|
+
const services = Layer.mergeAll(
|
|
51
|
+
authRegistry,
|
|
52
|
+
ConfigProvider.layer(
|
|
53
|
+
withProfileOverride(yield* loadConfigProvider(envFile), profile),
|
|
54
|
+
),
|
|
55
|
+
Logger.layer([fileLogger("out")]),
|
|
56
|
+
// Building these layers triggers their AuthProviderLayer effect, which
|
|
57
|
+
// registers the provider into the shared `authProviders` registry.
|
|
58
|
+
Layer.provide(Layer.mergeAll(CloudflareAuth, AwsAuth), authRegistry),
|
|
59
|
+
);
|
|
60
|
+
|
|
61
|
+
yield* Effect.gen(function* () {
|
|
62
|
+
for (const name of providerNames) {
|
|
63
|
+
const cfg = stored[name]!;
|
|
64
|
+
yield* Console.log("");
|
|
65
|
+
yield* Console.log(`── ${name} ──`);
|
|
66
|
+
const provider = authProviders[name];
|
|
67
|
+
if (provider == null) {
|
|
68
|
+
// Unknown provider — fall back to a JSON dump so the user can still
|
|
69
|
+
// see what's stored even if its module isn't bundled into the CLI.
|
|
70
|
+
yield* Console.log(`method: ${cfg.method}`);
|
|
71
|
+
const { method: _method, ...rest } = cfg as Record<string, unknown> &
|
|
72
|
+
{ method: string };
|
|
73
|
+
for (const [k, v] of Object.entries(rest)) {
|
|
74
|
+
yield* Console.log(
|
|
75
|
+
`${k}: ${typeof v === "string" ? v : JSON.stringify(v)}`,
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
continue;
|
|
79
|
+
}
|
|
80
|
+
yield* provider.prettyPrint(profile, cfg);
|
|
81
|
+
}
|
|
82
|
+
}).pipe(Effect.provide(services));
|
|
83
|
+
}),
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
const clearCommand = Command.make(
|
|
87
|
+
"clear",
|
|
88
|
+
{ profile },
|
|
89
|
+
Effect.fnUntraced(function* ({ profile }) {
|
|
90
|
+
const removed = yield* deleteProfile(profile);
|
|
91
|
+
yield* deleteProfileCredentials(profile);
|
|
92
|
+
if (removed) {
|
|
93
|
+
yield* Console.log(
|
|
94
|
+
`Cleared profile '${profile}' and all its credentials.`,
|
|
95
|
+
);
|
|
96
|
+
} else {
|
|
97
|
+
yield* Console.log(
|
|
98
|
+
`Profile '${profile}' not found in profiles.json; removed any stray credentials directory.`,
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
}),
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
export const profileCommand = Command.make("profile", {}).pipe(
|
|
105
|
+
Command.withSubcommands([showCommand, clearCommand]),
|
|
106
|
+
);
|
package/bin/commands/state.ts
CHANGED
|
@@ -3,6 +3,7 @@ import * as Console from "effect/Console";
|
|
|
3
3
|
import * as Effect from "effect/Effect";
|
|
4
4
|
import * as Layer from "effect/Layer";
|
|
5
5
|
import * as Logger from "effect/Logger";
|
|
6
|
+
import * as Option from "effect/Option";
|
|
6
7
|
import { Argument, Command, Flag } from "effect/unstable/cli";
|
|
7
8
|
|
|
8
9
|
import { AuthProviders } from "../../src/Auth/AuthProvider.ts";
|
|
@@ -10,10 +11,11 @@ import { withProfileOverride } from "../../src/Auth/Profile.ts";
|
|
|
10
11
|
import { Stage } from "../../src/Stage.ts";
|
|
11
12
|
import * as State from "../../src/State/index.ts";
|
|
12
13
|
import { encodeState } from "../../src/State/StateEncoding.ts";
|
|
14
|
+
import * as Clank from "../../src/Util/Clank.ts";
|
|
13
15
|
import { loadConfigProvider } from "../../src/Util/ConfigProvider.ts";
|
|
14
16
|
import { fileLogger } from "../../src/Util/FileLogger.ts";
|
|
15
17
|
|
|
16
|
-
import { envFile, importStack, main, profile, stage } from "./_shared.ts";
|
|
18
|
+
import { envFile, importStack, main, profile, stage, yes } from "./_shared.ts";
|
|
17
19
|
|
|
18
20
|
/**
|
|
19
21
|
* When set, the State service is replaced with the on-disk
|
|
@@ -222,6 +224,93 @@ const treeCommand = Command.make(
|
|
|
222
224
|
}),
|
|
223
225
|
);
|
|
224
226
|
|
|
227
|
+
const clearStackArg = Argument.string("stack").pipe(
|
|
228
|
+
Argument.withDescription(
|
|
229
|
+
"Stack name to clear. Omit to clear ALL stacks in the store.",
|
|
230
|
+
),
|
|
231
|
+
Argument.optional,
|
|
232
|
+
);
|
|
233
|
+
|
|
234
|
+
const clearStageArg = Argument.string("stage").pipe(
|
|
235
|
+
Argument.withDescription(
|
|
236
|
+
"Stage to clear within the stack. Omit to clear all stages in the stack.",
|
|
237
|
+
),
|
|
238
|
+
Argument.optional,
|
|
239
|
+
);
|
|
240
|
+
|
|
241
|
+
/**
|
|
242
|
+
* Destructive: removes resource state from the store. The actual cloud
|
|
243
|
+
* resources are NOT touched — this only affects what alchemy thinks
|
|
244
|
+
* exists. Always confirms before deleting unless `--yes` is passed.
|
|
245
|
+
*/
|
|
246
|
+
const clearCommand = Command.make(
|
|
247
|
+
"clear",
|
|
248
|
+
{
|
|
249
|
+
stack: clearStackArg,
|
|
250
|
+
stageName: clearStageArg,
|
|
251
|
+
main,
|
|
252
|
+
envFile,
|
|
253
|
+
stage,
|
|
254
|
+
profile,
|
|
255
|
+
local: localFlag,
|
|
256
|
+
yes,
|
|
257
|
+
},
|
|
258
|
+
Effect.fnUntraced(function* ({ stack: stackOpt, stageName: stageOpt, yes: yesFlag, ...rest }) {
|
|
259
|
+
const stackName = Option.getOrUndefined(stackOpt);
|
|
260
|
+
const stageName = Option.getOrUndefined(stageOpt);
|
|
261
|
+
|
|
262
|
+
if (stageName !== undefined && stackName === undefined) {
|
|
263
|
+
yield* Console.log(
|
|
264
|
+
"Error: cannot specify <stage> without <stack>. Pass the stack name as the first argument.",
|
|
265
|
+
);
|
|
266
|
+
return yield* Effect.fail(new Error("missing stack"));
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
yield* withStateService(rest, (state) =>
|
|
270
|
+
Effect.gen(function* () {
|
|
271
|
+
const targets: ReadonlyArray<{ stack: string; stage?: string }> =
|
|
272
|
+
stackName === undefined
|
|
273
|
+
? [...(yield* state.listStacks())]
|
|
274
|
+
.sort()
|
|
275
|
+
.map((s) => ({ stack: s }))
|
|
276
|
+
: stageName === undefined
|
|
277
|
+
? [{ stack: stackName }]
|
|
278
|
+
: [{ stack: stackName, stage: stageName }];
|
|
279
|
+
|
|
280
|
+
if (targets.length === 0) {
|
|
281
|
+
yield* Console.log("(nothing to clear)");
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
const scope =
|
|
286
|
+
stackName === undefined
|
|
287
|
+
? `ALL stacks (${targets.length}): ${targets.map((t) => t.stack).join(", ")}`
|
|
288
|
+
: stageName === undefined
|
|
289
|
+
? `stack '${stackName}' (all stages)`
|
|
290
|
+
: `stage '${stageName}' in stack '${stackName}'`;
|
|
291
|
+
|
|
292
|
+
if (!yesFlag) {
|
|
293
|
+
const ok = yield* Clank.confirm({
|
|
294
|
+
message: `About to delete ${scope} from the state store. This cannot be undone. Continue?`,
|
|
295
|
+
initialValue: false,
|
|
296
|
+
});
|
|
297
|
+
if (!ok) {
|
|
298
|
+
yield* Console.log("Cancelled.");
|
|
299
|
+
return;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
for (const target of targets) {
|
|
304
|
+
yield* state.deleteStack(target);
|
|
305
|
+
yield* Console.log(
|
|
306
|
+
`cleared ${target.stack}${target.stage ? `/${target.stage}` : ""}`,
|
|
307
|
+
);
|
|
308
|
+
}
|
|
309
|
+
}),
|
|
310
|
+
);
|
|
311
|
+
}),
|
|
312
|
+
);
|
|
313
|
+
|
|
225
314
|
export const stateCommand = Command.make("state", {}).pipe(
|
|
226
315
|
Command.withSubcommands([
|
|
227
316
|
stacksCommand,
|
|
@@ -229,5 +318,6 @@ export const stateCommand = Command.make("state", {}).pipe(
|
|
|
229
318
|
resourcesCommand,
|
|
230
319
|
getCommand,
|
|
231
320
|
treeCommand,
|
|
321
|
+
clearCommand,
|
|
232
322
|
]),
|
|
233
323
|
);
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import * as Effect from "effect/Effect";
|
|
2
2
|
import * as FileSystem from "effect/FileSystem";
|
|
3
3
|
import * as Redacted from "effect/Redacted";
|
|
4
|
+
export declare const profileCredentialsDirPath: (profile: string) => string;
|
|
4
5
|
export declare const credentialsFilePath: (profile: string, provider: string) => string;
|
|
5
6
|
export declare const readCredentials: <T>(profile: string, provider: string) => Effect.Effect<T | undefined, never, FileSystem.FileSystem>;
|
|
6
7
|
export declare const writeCredentials: <T>(profile: string, provider: string, credentials: T) => Effect.Effect<void, import("effect/PlatformError").PlatformError, FileSystem.FileSystem>;
|
|
7
8
|
export declare const deleteCredentials: (profile: string, provider: string) => Effect.Effect<void, never, FileSystem.FileSystem>;
|
|
9
|
+
/**
|
|
10
|
+
* Recursively remove the `~/.alchemy/credentials/{profile}` directory
|
|
11
|
+
* containing all per-provider secrets for `profile`. No-op if it doesn't exist.
|
|
12
|
+
*/
|
|
13
|
+
export declare const deleteProfileCredentials: (profile: string) => Effect.Effect<void, never, FileSystem.FileSystem>;
|
|
8
14
|
export declare function displayRedacted(r: Redacted.Redacted<string>, visibleChars?: number): string;
|
|
9
15
|
//# sourceMappingURL=Credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Credentials.d.ts","sourceRoot":"","sources":["../../src/Auth/Credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAM5C,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"Credentials.d.ts","sourceRoot":"","sources":["../../src/Auth/Credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAM5C,eAAO,MAAM,yBAAyB,GAAI,SAAS,MAAM,WACjB,CAAC;AAEzC,eAAO,MAAM,mBAAmB,GAAI,SAAS,MAAM,EAAE,UAAU,MAAM,WACF,CAAC;AAEpE,eAAO,MAAM,eAAe,GAAgC,CAAC,kGAc3D,CAAC;AAEH,eAAO,MAAM,gBAAgB,GAAgC,CAAC,gJAS5D,CAAC;AAEH,eAAO,MAAM,iBAAiB,0FAQ5B,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,wBAAwB,wEAOnC,CAAC;AAEH,wBAAgB,eAAe,CAC7B,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC5B,YAAY,SAAI,GACf,MAAM,CAIR"}
|
package/lib/Auth/Credentials.js
CHANGED
|
@@ -4,7 +4,8 @@ import * as Redacted from "effect/Redacted";
|
|
|
4
4
|
import path from "pathe";
|
|
5
5
|
import { rootDir } from "./Profile.js";
|
|
6
6
|
const credentialsDirPath = path.join(rootDir, "credentials");
|
|
7
|
-
export const
|
|
7
|
+
export const profileCredentialsDirPath = (profile) => path.join(credentialsDirPath, profile);
|
|
8
|
+
export const credentialsFilePath = (profile, provider) => path.join(profileCredentialsDirPath(profile), `${provider}.json`);
|
|
8
9
|
export const readCredentials = Effect.fnUntraced(function* (profile, provider) {
|
|
9
10
|
const fs = yield* FileSystem.FileSystem;
|
|
10
11
|
const data = yield* fs
|
|
@@ -31,6 +32,16 @@ export const deleteCredentials = Effect.fnUntraced(function* (profile, provider)
|
|
|
31
32
|
.remove(credentialsFilePath(profile, provider))
|
|
32
33
|
.pipe(Effect.catch(() => Effect.void));
|
|
33
34
|
});
|
|
35
|
+
/**
|
|
36
|
+
* Recursively remove the `~/.alchemy/credentials/{profile}` directory
|
|
37
|
+
* containing all per-provider secrets for `profile`. No-op if it doesn't exist.
|
|
38
|
+
*/
|
|
39
|
+
export const deleteProfileCredentials = Effect.fnUntraced(function* (profile) {
|
|
40
|
+
const fs = yield* FileSystem.FileSystem;
|
|
41
|
+
yield* fs
|
|
42
|
+
.remove(profileCredentialsDirPath(profile), { recursive: true })
|
|
43
|
+
.pipe(Effect.catch(() => Effect.void));
|
|
44
|
+
});
|
|
34
45
|
export function displayRedacted(r, visibleChars = 4) {
|
|
35
46
|
const raw = Redacted.value(r);
|
|
36
47
|
if (raw.length <= visibleChars)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Credentials.js","sourceRoot":"","sources":["../../src/Auth/Credentials.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,IAAI,MAAM,OAAO,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAe,EAAE,QAAgB,EAAE,EAAE,CACvE,IAAI,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"Credentials.js","sourceRoot":"","sources":["../../src/Auth/Credentials.ts"],"names":[],"mappings":"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"}
|
package/lib/Auth/Profile.d.ts
CHANGED
|
@@ -45,6 +45,11 @@ export declare const readConfig: Effect.Effect<{
|
|
|
45
45
|
export declare const writeConfig: (config: AlchemyConfig["Service"]) => Effect.Effect<void, import("effect/PlatformError").PlatformError, FileSystem.FileSystem>;
|
|
46
46
|
export declare const getProfile: (name: string) => Effect.Effect<AlchemyProfile, never, FileSystem.FileSystem>;
|
|
47
47
|
export declare const setProfile: (name: string, profile: AlchemyProfile) => Effect.Effect<void, import("effect/PlatformError").PlatformError, FileSystem.FileSystem>;
|
|
48
|
+
/**
|
|
49
|
+
* Remove `name` and all its provider credentials from the on-disk config.
|
|
50
|
+
* Returns `true` if the profile existed and was removed, `false` otherwise.
|
|
51
|
+
*/
|
|
52
|
+
export declare const deleteProfile: (name: string) => Effect.Effect<boolean, import("effect/PlatformError").PlatformError, FileSystem.FileSystem>;
|
|
48
53
|
/**
|
|
49
54
|
* Returns a `ConfigProvider` that overrides `ALCHEMY_PROFILE` with the
|
|
50
55
|
* given `profile` (when explicitly passed via the CLI `--profile` flag),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Profile.d.ts","sourceRoot":"","sources":["../../src/Auth/Profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAExE,eAAO,MAAM,OAAO,QAAsC,CAAC;AAC3D,eAAO,MAAM,cAAc,QAAsC,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,eAAe,uBAE3B,CAAC;AAEF,eAAO,MAAM,cAAc,IAAI,CAAC;;aAKnB,OAAO,cAAc;cACpB;QACR,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC;KACvC;;AANL,qBAAa,aAAc,SAAQ,kBAQX;CAAG;AAE3B,MAAM,WAAW,cAAc;IAC7B,CAAC,YAAY,EAAE,MAAM,GAAG;QACtB;;;;;;;;;WASG;QACH,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAOD,eAAO,MAAM,UAAU;aA5BV,OAAO,cAAc;cACpB;QACR,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC;KACvC;gCAyCJ,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,QAAQ,aAAa,CAAC,SAAS,CAAC,6FAQzD,CAAC;AAEJ,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,gEACyB,CAAC;AAEjE,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,SAAS,cAAc,6FAM7D,CAAC;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,cAAc,CAAC,cAAc,EACnC,SAAS,MAAM,GAAG,SAAS,KAC1B,cAAc,CAAC,cAWjB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/D,MAAM,YAAY,CAAC,MAAM,CAAC,EAC1B,aAAa,MAAM,EACnB,KAAK,gBAAgB;
|
|
1
|
+
{"version":3,"file":"Profile.d.ts","sourceRoot":"","sources":["../../src/Auth/Profile.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,cAAc,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAExE,eAAO,MAAM,OAAO,QAAsC,CAAC;AAC3D,eAAO,MAAM,cAAc,QAAsC,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,eAAe,uBAE3B,CAAC;AAEF,eAAO,MAAM,cAAc,IAAI,CAAC;;aAKnB,OAAO,cAAc;cACpB;QACR,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC;KACvC;;AANL,qBAAa,aAAc,SAAQ,kBAQX;CAAG;AAE3B,MAAM,WAAW,cAAc;IAC7B,CAAC,YAAY,EAAE,MAAM,GAAG;QACtB;;;;;;;;;WASG;QACH,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAOD,eAAO,MAAM,UAAU;aA5BV,OAAO,cAAc;cACpB;QACR,CAAC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC;KACvC;gCAyCJ,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,QAAQ,aAAa,CAAC,SAAS,CAAC,6FAQzD,CAAC;AAEJ,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,gEACyB,CAAC;AAEjE,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,EAAE,SAAS,cAAc,6FAM7D,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,gGASvC,CAAC;AAEJ;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,cAAc,CAAC,cAAc,EACnC,SAAS,MAAM,GAAG,SAAS,KAC1B,cAAc,CAAC,cAWjB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAC/D,MAAM,YAAY,CAAC,MAAM,CAAC,EAC1B,aAAa,MAAM,EACnB,KAAK,gBAAgB;IA1GnB;;;;;;;;;OASG;YACK,MAAM;+GAwGf,CAAC"}
|
package/lib/Auth/Profile.js
CHANGED
|
@@ -34,6 +34,17 @@ export const readConfig = FileSystem.FileSystem.asEffect().pipe(Effect.flatMap((
|
|
|
34
34
|
export const writeConfig = (config) => FileSystem.FileSystem.asEffect().pipe(Effect.tap((fs) => fs.makeDirectory(path.dirname(configFilePath), { recursive: true })), Effect.flatMap((fs) => fs.writeFileString(configFilePath, JSON.stringify(config, null, 2))));
|
|
35
35
|
export const getProfile = (name) => readConfig.pipe(Effect.map((config) => config.profiles[name]));
|
|
36
36
|
export const setProfile = (name, profile) => readConfig.pipe(Effect.tap((config) => Effect.sync(() => (config.profiles[name] = profile))), Effect.flatMap(writeConfig));
|
|
37
|
+
/**
|
|
38
|
+
* Remove `name` and all its provider credentials from the on-disk config.
|
|
39
|
+
* Returns `true` if the profile existed and was removed, `false` otherwise.
|
|
40
|
+
*/
|
|
41
|
+
export const deleteProfile = (name) => readConfig.pipe(Effect.flatMap((config) => {
|
|
42
|
+
if (!(name in config.profiles)) {
|
|
43
|
+
return Effect.succeed(false);
|
|
44
|
+
}
|
|
45
|
+
delete config.profiles[name];
|
|
46
|
+
return writeConfig(config).pipe(Effect.as(true));
|
|
47
|
+
}));
|
|
37
48
|
/**
|
|
38
49
|
* Returns a `ConfigProvider` that overrides `ALCHEMY_PROFILE` with the
|
|
39
50
|
* given `profile` (when explicitly passed via the CLI `--profile` flag),
|
package/lib/Auth/Profile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Profile.js","sourceRoot":"","sources":["../../src/Auth/Profile.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Profile.js","sourceRoot":"","sources":["../../src/Auth/Profile.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,9 +3,8 @@ import * as Provider from "../../Provider.ts";
|
|
|
3
3
|
import { Resource } from "../../Resource.ts";
|
|
4
4
|
import { CloudflareEnvironment } from "../CloudflareEnvironment.ts";
|
|
5
5
|
import type { Providers } from "../Providers.ts";
|
|
6
|
-
import { type
|
|
7
|
-
export type
|
|
8
|
-
export type AccountApiToken = Resource<"Cloudflare.AccountApiToken", AccountApiTokenProps, {
|
|
6
|
+
import { type ApiTokenProps } from "./Common.ts";
|
|
7
|
+
export type AccountApiToken = Resource<"Cloudflare.AccountApiToken", ApiTokenProps, {
|
|
9
8
|
tokenId: string;
|
|
10
9
|
name: string;
|
|
11
10
|
status: "active" | "disabled" | "expired";
|
|
@@ -33,6 +32,7 @@ export type AccountApiToken = Resource<"Cloudflare.AccountApiToken", AccountApiT
|
|
|
33
32
|
* ```typescript
|
|
34
33
|
* const token = yield* Cloudflare.AccountApiToken("ci-token", {
|
|
35
34
|
* name: "my-ci-token",
|
|
35
|
+
* accountId,
|
|
36
36
|
* policies: [
|
|
37
37
|
* {
|
|
38
38
|
* effect: "allow",
|
|
@@ -40,7 +40,7 @@ export type AccountApiToken = Resource<"Cloudflare.AccountApiToken", AccountApiT
|
|
|
40
40
|
* "Workers Scripts Write",
|
|
41
41
|
* "Workers KV Storage Write",
|
|
42
42
|
* ],
|
|
43
|
-
* resources: {
|
|
43
|
+
* resources: { [`com.cloudflare.api.account.${accountId}`]: "*" },
|
|
44
44
|
* },
|
|
45
45
|
* ],
|
|
46
46
|
* });
|
|
@@ -1 +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,
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,eAAe,4DAE3B,CAAC;AASF,eAAO,MAAM,uBAAuB,mRA2HjC,CAAC"}
|
|
@@ -23,6 +23,7 @@ import { buildConditionPayload, conditionFingerprint, policyFingerprint, resolve
|
|
|
23
23
|
* ```typescript
|
|
24
24
|
* const token = yield* Cloudflare.AccountApiToken("ci-token", {
|
|
25
25
|
* name: "my-ci-token",
|
|
26
|
+
* accountId,
|
|
26
27
|
* policies: [
|
|
27
28
|
* {
|
|
28
29
|
* effect: "allow",
|
|
@@ -30,7 +31,7 @@ import { buildConditionPayload, conditionFingerprint, policyFingerprint, resolve
|
|
|
30
31
|
* "Workers Scripts Write",
|
|
31
32
|
* "Workers KV Storage Write",
|
|
32
33
|
* ],
|
|
33
|
-
* resources: {
|
|
34
|
+
* resources: { [`com.cloudflare.api.account.${accountId}`]: "*" },
|
|
34
35
|
* },
|
|
35
36
|
* ],
|
|
36
37
|
* });
|
|
@@ -48,12 +49,12 @@ const resolveName = (id, name) => Effect.gen(function* () {
|
|
|
48
49
|
return name ?? (yield* createPhysicalName({ id }));
|
|
49
50
|
});
|
|
50
51
|
export const AccountApiTokenProvider = () => Provider.effect(AccountApiToken, Effect.gen(function* () {
|
|
51
|
-
const { accountId } = yield* CloudflareEnvironment;
|
|
52
|
+
const { accountId: defaultAccountId } = yield* CloudflareEnvironment;
|
|
52
53
|
const createToken = yield* accounts.createToken;
|
|
53
54
|
const updateToken = yield* accounts.updateToken;
|
|
54
55
|
const deleteToken = yield* accounts.deleteToken;
|
|
55
56
|
const getToken = yield* accounts.getToken;
|
|
56
|
-
const buildAttributes = (tokenData, value) => ({
|
|
57
|
+
const buildAttributes = (tokenData, value, accountId) => ({
|
|
57
58
|
tokenId: tokenData.id ?? "",
|
|
58
59
|
name: tokenData.name ?? "",
|
|
59
60
|
status: tokenData.status ?? "active",
|
|
@@ -65,13 +66,15 @@ export const AccountApiTokenProvider = () => Provider.effect(AccountApiToken, Ef
|
|
|
65
66
|
diff: Effect.fn(function* ({ id, olds, news, output }) {
|
|
66
67
|
if (!isResolved(news))
|
|
67
68
|
return undefined;
|
|
68
|
-
|
|
69
|
+
const newAccountId = news.accountId ?? defaultAccountId;
|
|
70
|
+
const oldAccountId = output?.accountId ?? olds?.accountId ?? defaultAccountId;
|
|
71
|
+
if (oldAccountId !== newAccountId) {
|
|
69
72
|
return { action: "replace" };
|
|
70
73
|
}
|
|
71
74
|
const oldName = output?.name ?? (yield* resolveName(id, olds?.name));
|
|
72
75
|
const newName = yield* resolveName(id, news.name);
|
|
73
|
-
const oldPolicyFp = policyFingerprint(resolvePolicies(olds?.policies ?? []
|
|
74
|
-
const newPolicyFp = policyFingerprint(resolvePolicies(news.policies
|
|
76
|
+
const oldPolicyFp = policyFingerprint(resolvePolicies(olds?.policies ?? []));
|
|
77
|
+
const newPolicyFp = policyFingerprint(resolvePolicies(news.policies));
|
|
75
78
|
const oldCondFp = conditionFingerprint(olds?.condition);
|
|
76
79
|
const newCondFp = conditionFingerprint(news.condition);
|
|
77
80
|
if (oldName !== newName ||
|
|
@@ -83,8 +86,9 @@ export const AccountApiTokenProvider = () => Provider.effect(AccountApiToken, Ef
|
|
|
83
86
|
}
|
|
84
87
|
}),
|
|
85
88
|
create: Effect.fn(function* ({ id, news }) {
|
|
89
|
+
const accountId = news.accountId ?? defaultAccountId;
|
|
86
90
|
const name = yield* resolveName(id, news.name);
|
|
87
|
-
const policies = resolvePolicies(news.policies
|
|
91
|
+
const policies = resolvePolicies(news.policies);
|
|
88
92
|
const result = yield* createToken({
|
|
89
93
|
accountId,
|
|
90
94
|
name,
|
|
@@ -96,11 +100,12 @@ export const AccountApiTokenProvider = () => Provider.effect(AccountApiToken, Ef
|
|
|
96
100
|
if (!result.value) {
|
|
97
101
|
return yield* Effect.die(`Cloudflare did not return a value for token "${name}".`);
|
|
98
102
|
}
|
|
99
|
-
return buildAttributes(result, Redacted.make(result.value));
|
|
103
|
+
return buildAttributes(result, Redacted.make(result.value), accountId);
|
|
100
104
|
}),
|
|
101
105
|
update: Effect.fn(function* ({ id, news, output }) {
|
|
106
|
+
const accountId = news.accountId ?? defaultAccountId;
|
|
102
107
|
const name = yield* resolveName(id, news.name);
|
|
103
|
-
const policies = resolvePolicies(news.policies
|
|
108
|
+
const policies = resolvePolicies(news.policies);
|
|
104
109
|
const result = yield* updateToken({
|
|
105
110
|
accountId,
|
|
106
111
|
tokenId: output.tokenId,
|
|
@@ -112,7 +117,7 @@ export const AccountApiTokenProvider = () => Provider.effect(AccountApiToken, Ef
|
|
|
112
117
|
});
|
|
113
118
|
// Cloudflare doesn't return the value on update; preserve the
|
|
114
119
|
// value captured at creation.
|
|
115
|
-
return buildAttributes(result, output.value);
|
|
120
|
+
return buildAttributes(result, output.value, accountId);
|
|
116
121
|
}),
|
|
117
122
|
delete: Effect.fn(function* ({ output }) {
|
|
118
123
|
yield* deleteToken({
|
|
@@ -130,7 +135,7 @@ export const AccountApiTokenProvider = () => Provider.effect(AccountApiToken, Ef
|
|
|
130
135
|
return yield* getToken({
|
|
131
136
|
accountId: output.accountId,
|
|
132
137
|
tokenId: output.tokenId,
|
|
133
|
-
}).pipe(Effect.map((token) => buildAttributes(token, output.value)), Effect.catchTag("InvalidRoute", () => Effect.succeed(undefined)), Effect.catchTag("TokenNotFound", () => Effect.succeed(undefined)));
|
|
138
|
+
}).pipe(Effect.map((token) => buildAttributes(token, output.value, output.accountId)), Effect.catchTag("InvalidRoute", () => Effect.succeed(undefined)), Effect.catchTag("TokenNotFound", () => Effect.succeed(undefined)));
|
|
134
139
|
}),
|
|
135
140
|
};
|
|
136
141
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccountApiToken.js","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/AccountApiToken.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,sCAAsC,CAAC;AACjE,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,QAAQ,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,QAAQ,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EACL,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,GAEhB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"AccountApiToken.js","sourceRoot":"","sources":["../../../src/Cloudflare/ApiToken/AccountApiToken.ts"],"names":[],"mappings":"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"}
|